1964 10_#26_Part_1 10 #26 Part 1

User Manual: 1964-10_#26_Part_1

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

Download1964-10_#26_Part_1 1964-10 #26 Part 1
Open PDF In BrowserView PDF
CONfERENCE
PROCEED\ NGS
VOLUME 26

'964
fALL jO\Nl
CO MPU1ER
CONfERENCE

The ideas and opinions expressed herein are
solely those of the authors and are not
necessarily representative of or endorsed
by the 1964 Fall Joint Cf)mputer Conference
Committee or the American Federation of
Information Processing Societies.

Library of Congress Catalog Card Number: 55-44701
Copyright © 1964 by American Federation of Information Processing
Societies, P. O. Box 1196, Santa Monica, California. Printed in the
United States of America. All rights reserved. This book or parts
thereof, may not be reproduced in any form without permission of
the publishers.
Sole Distributors in Great Britain, the British
Commonwealth and the Continent of Europe:
CLEAVER-HUME PRESS
10-15 St. M~irtins Street
London W. C. 2

ii

CONTENTS
Page

Preface
PROGRAMMING TECHNIQUES AND SYSTEMS
CPSS-A Common Programming Support System
Error Correction in CORC
The Compilation of Natural Language Text into
Teaching Machine Programs
Method of Control for Re-Entrant Routines
XPOP: A Meta-Language Without Metaphysics

D. BORETA
D. N. FREEMAN
L. E. UHR
G. P. BERGIN
M. 1. HALPERN

EXPANSION OF FUNCTION MEMORIES
A 10Mc NDRO BIAX Memory of 1024 Word,
48 Bit per Word Capacity

W. 1. PYLE
R. M. MACINTYRE
T. E. CHAVANNES
Associative Memory System Implementation
J. E. McATEER
and Characteristics
J. A. CAPOBIANCO
R. L.·KoPPEL
2Mc, Magnetic Thin Film Memory
E. E. BITTMANN
A Semi-Permanent Memory Utilizing Correlation Addressing
G. G. PICK
A lOu Bit High Speed Ferrite Memory SystemH. AMEMIYA
Design and Operation
T. R. MAYHEW
R. L. PRYOR
NEW COMPUTER ORGANIZATIONS
An Associative Processor
A Hardware Integrated General Purpose
Computer/Search Memory
A Bit-Access Computer in a Communication System
Very High Speed and Serial-Parallel
Computers HITAC 5020 and 5020E
IBM System 360 Engineering

iii

1
15
35

45
57

69
81

93
107
123

R. G. EWING
P. M. DAVIES
R. G. GALL

147

E. U. COHLER
H. RUBINSTEIN
K. MURATA
K. NAKAZAWA
J. L. BROWN
P. FAGG
D. T.·DoODY
J. W. FAIRCLOUGH
J. GREENE
J. A. HIPP

175

159

187
205

Page
MANAGEMENT APPLICATIONS OF SIMULATION
UNISIM-A Simulation Program for
Communications Networks
The Data Processing System Simulator (DPSS)

The Use of a Job Shop Simulator in the Generation
of Production Schedules
DIGITAL SOFTWARE FOR ANALOG COMPUTATION
HYTRAN-A Software System to Aid the Analog
Programmer
PACTOLUS-A Digital Analog Simulator Program
for the IBM 1620
MIDAS-How It Works and How It's Worked

INPUT AND OUTPUT OF GRAPHICS
The RAND Tablet: A Man-machine Communication
Device
A System for Automatic Recognition of
Handwritten Words
A Laboratory for the Study of Graphical ManMachine Communication
Operational Software in a Disc-Oriented System

Image Processing Hardware for a Man-Machine
Graphical Communication System

L. A. GIMPELSON
J. H. WEBER
D. D. RUDIE
M. 1. YOUCHAH
E. J. JOHNSON
D. R. TRILLING

233

W. OCKER
S. TEGER
R. D. BRENNAN
H. SANO
H. E. PETERSEN
F. J. SANSOM
R. T. HARNETT
L. M. WARSHAWSKY

291

M. R. DAVIS
T. O. ELLIS
P. MERMELSTEIN
M. EDEN
E. L. JACKS
M. P. COLE
P. H. DORN
C. R. LEWIS
B. HARGREAVES
J. D. JOYCE
G. L. COLE

251

277

299
313

325
333
343
351
363

E. D. Foss

Input/Output Software Capability for a ManMachine Communication and Image
Processing System
A Line Scanning System Controlled from an
On-Line Console
MASS MEMORY
A Random Access Disk File with Interchangeable
Disk Kits
The Integrated Data Store-A General Purpose
Programming System for Random Access
Memories
The IBM Hypertape System
Design Considerations of a Random Access
Information Storage Device Using Magnetic
Tape Loops

iv

R. G. GRAY
R. A. THORPE
E. M. SHARP
R. J. SIPPEL
T. M. SPELLMAN
T. R. ALLEN
J. E. FOOTE
F. N. KRULL
J. E. FOOTE

387
397

E. C. SIMMONS
C. W. BACKMAN
S. B. WILLIAMS

411

B. E. CUNNINGHAM
A. GABOR
J. T. BARANY
L. G. METZGER
E. POUMAKIS

423
435

TIME-SHARING SYSTEMS
The Time-Sharing Monitor System
JOSS: A Designer's View of an Experimental
On-Line Computing System
Consequent Procedures in Conventional Computers
COMPUTATIONS IN SPACE PROGRAMS
The Jet Propulsion Laboratory Ephemeris Tape System
JPTRAJ (The New JPL Trajectory Monitor)
ACE-S/C Acceptance Checkout Equipment
Saturn V Launch Vehicle Digital Computer and
Data Adapter
The 4102-S Space Track Program
HYBRID/ANALOG COMPUTATION-METHODS
AND TECHNIQUES
A Hybrid Computer for Adaptive Nonlinear
Process Identification
The Negative Gradient Method Extended to the
Computer Programming of Simultaneous Systems
of Differential and Finite Equations
Quantizing and Sampling Errors in Hybrid Computation
NON-NUMERICAL INFORMATION PROCESSING
Real-Time Recognition of Hand-Drawn Characters
A Computer Program Which "Understands"
A Question-Answering System for High School
Algebra Word Problems
The Unit Preference Strategy in Theorem Proving
Comments on Learning and Adaptive Machines
for Pattern Classification
HARDWARE DESIGNS AND DESIGN TECHNIQUES
FLODAC-A Pure Fluid Digital Computer

Design Automation Utilizing a Modified Polish
Notation
Systematic Design of Cryotron Logic Circuits
Binary-Compatible Signed-Digit Arithmetic
HYBRID/ANALOG COMPUTATIONAPPLICATIONS AND HARDWARE
A Transfluxor Analog Memory Using Frequency
Modulation
The Use of a Portable Analog Computer for Process
Identification, Calculation and Control
Progress of Hybrid Computation at United Aircraft
Research Laboratories
A Strobed Analog Data Digitizer with Paper
Tape Output
Hybrid Simulation of Lifting Re-Entry Vehicle

v

HOLLIS A. KINSLOW
J. C. SHAW

Page
443
455

D. R. FITZWATER
E.J. SCHWEPPE

465

E. G. OROZCO
N. S. NEWHALL
R. W. LANZKRON
M. M. DICKINSON
J.B.JACKSON
G. C. RANDA
E. G. GARNER
J.OSEAS

477
481
489
501

B. W. NUTTING
R. J. Roy
A. I. TALKIN

527
539

C. R. WALLI

544

W. TEITEL MAN
B. RAPHAEL
D. G. BOBROW

559
577
591

L. Wos
D. CARSON
G. ROBINSON
C. H. MAYS

615

517

623

R.S.GLUSKIN
M. JACOBY
T. D. READER
W. K. ORR
J. M. SPITZE
C. C. YANG
J.T.Tou
A. AVIZIENIS

ff31

W. J. KARPLUS
J. A. HOWARD
L. H. FRICKE
R.A. WALSH
G. A. PAQUETTE

673

R. L. CARBREY

707

A. A. FREDERICKSON, JR.
R. B. BAILEY
A. SAINT-PAUL

717

643
651
663

685
695

CPSS
A COMMON PROGRAMMING SUPPORT SYSTEM
Dushan Boreta
System Development Corporation, Falls Church, Virginia
INTRODUCTION
Over the years many computer software systems have been developed to serve the program
production process. These systems, variously
known as "production" systems, "utility" systems, or "support" systems, are designed and
produced for the same purpose: to provide programmers the tools required to produce computer programs. Beyond this common purpose
these systems have little in common and, in
fact, are unique systems individually tailored
to a particular application. In each system
much of the tailoring occurs because of the particular computer configuraton, operational system support requirements, computer manufacturer's software characteristics, experience of
the designers, schedule pressures, and style
preferences of the programmers producing the
system. The tailoring is reflected in the design
of each program production system and is evident. in many features, for example, the programming languages used, the computer operating procedures, the programmer's inputs, the
outputs provided to the programmer, and the
program organization in the system.

What this paper describes is a program production system, CPSS, that should assist programmers and managers in the performance of
their tasks. The principle characteristics of
CPSS provide for programmers an efficient and
effective means for producing their programs.
For managers, CPSS provides for the minimization of costs for producing programs, and a
relatively inexpensive means for achieving an
effective and efficient program production capability.
The CPSS characteristics that make' these
claims a reality are: first, it provides to programmers the attributes of higher order languages in each program production task; second, that both the functions of CPSS and its
computer programs largely are transferable;
and third, the totality of functions of a comprehensive program production system is provided in CPSS. Further, the design features
embodied in CPSS should afford the minimization of its maintenance costs, reduction in the
possibility of programmer errors, and simplification of the programming task itself.
Additionally, the design of CPSS provides
for its "common" applicability. It may be used
in "open-" or "closed-shop" operations in supporting the development and production of system, non-system, and "one-shot" programs.

In examining program production systems,
most are found to have functional capabilities
for generating code, code-checking the object
programs, and maintaining magnetic tapes containing programs.

Effectively, its design characteristics, language power, scope of applicability, and transferability make CPSS an off-the-shelf program
production system.

In some instances these capabilities are of the
most rudimentary sort. In other instances, very
sophisticated and complete capabilities exist.
1

2

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

CPSS is programmed in a subset of the JOVIAL language, and in design is compatible
with the full JOVIAL language. Currently,
CPSS is implemented on an IBM 7090 and is
being used to support the development and production of a computer program system. This
installation and continued testing will be the
source for refinements to CPSS's design as the
system continue& under development.
CPSS DESIGN CRITERIA
AND REQUIREMENTS
Providing "off-the-shelf" capability is a different type of programming problem than normally is encountered. The problems in providing
CPSS with the "off-the-shelf" capability stem
from the class of computers on which it may
be installed; the nature of the transferability
task; some aspects of the programmer training
tasks; the CPSS maintenance task; the programming language it provides; and the scope
of its applicability to the operational system
development process.

Class of Computers
CPSS is directly applicable to medium- and
large-scale computers. The computer configuration should have, but need not be restricted
to, a word size of 30 bits, a 32K one-instructionper-word or a 16K two-instruction-per-word
core memory, peripheral storage units consisting of four tape drives (or three tape drives
plus drum or disc units), an on-line printing
device, an on-line input device, and some external switches or keys.
The computer configuration need not be defined explicitly in that there are many possible
trade-offs between the computer's characteristics, the programming conventions and techniques used in CPSS, and the capacity of the
system. For example, by altering the labeling
convention used in the coding of CPSS~ the
class of computers could be expanded to include
machines with a word size of 24 bits.

The Transferability Task
The transferability of a program production
system is important for many reasons. The cost
of installing a program production system is
minimized. For applications employing a variety of computers, there is a standard system

and methodology that contributes to programmer transferability. The difficulties and costs
inherent in the transition from one computer
to another are reduced. And, a bench mark is
identifiable from which further technology development may progress.
The goal, transferability of programs, usually
is interpreted as requiring a program coded
and operating on one computer to be operable
on a different computer and still retain the
capability to perform its functions. The transfer should be completed at least semi-automatically, utilizing clerical or junior personnel and
fixed procedures. The current state of the art
does not afford 100 per cent transferability.
Therefore, we have interpreted this goal to
mean that CPSS is to be transferable with only
a minimum of known code change. In order
that CPSS be transferable, the functions and
services provided by CPSS also must be transferable. Additionally, the CPSS documentation,
program and system tests, operating procedures, transferability techniques, and transfer
procedures are designed to be transferable.

It must be emphasized that the transferability task being discussed is that of getting CPSS
to run on another computer, different from its
current application (the IBM 7090). CPSS is
designed to be transferred as a system. Although it is modular, the transferability of any
module is a distinctly different task from that
of transferring the whole of CPSS.
One natural design feature of a transferable
system is its independence from machine characteristics. It must be noted that machine independence is a two-way street. Not only is the
code of CPSS to be machine-independent, but
the functions performed by the code also must
be machine-independent. For example, programs making transfers to and from storage
should not assume some given unit availability,
transfer rate, segmentation of the transferred
data, unit positioning, or even that it is the only
user of a unit. In CPSS, this example of machine-independence (transferability) is provided by a central I/O program in the CPSS
Computer Operations Subsystem (the design of
which is discussed later in this 'paper).

It will be difficult to measure how transferable CPSS is until it has been transferred

CPSS-A COMMON PROGRAMMING SUPPORT SYSTEM

across several computers. The system's transferability could be measurable in several dimensions, for example, in time elapsed from
start to installation, in dollar costs for each
economic factor involved in the transfer, in
amounts and types of computer time required,
in the amount of code to be altered per program
and per function, and in the number of errors
discovered in each phase, including installation
and post-installation. Detailed records should
be maintained that identify the transfer costs
and the factors that influenced the cost. Some
of these factors are: the differences in the machine instruction word format and addressing,
the types and quality of programs available on
the "new" machine, the frequency of occurrence
and amount of down-time per occurrence of
machine failure, and the location and availability of the staging and target computers.
'/

Some of the principal technical problems that
will arise in transferring CPSS to other computers lie in the sophistication of the design
embodied in the system, the power of the language provided by the system, the systerriization of the CPSS design, and the broad class
of computers to which CPSS may be applied.
For example, consider the problem of designing
CPSS so that it will operate on a four-tape
drive computer configuration. The task of compiling a JOVIAL program can use (1) an input
device for the source program, (2) an input
device for the library tape, (3) an input device
for the system Compool, (4) a temporary storage device for the intermediate language, (5)
a permanent storage device for the object program, (6) an output device for the listings, and
(7) an output device to communicate with the
computer operator (as will be noted later, a
compilation may require other additional "storage devices"). Further complicate the task and
allow the programmer to generate a test case
and operate his program on the test case, and
allow all this to occur in an uninterrupted single job. This problem is resolved in the design
of the CPSS executive and I/O functions (discussed later in the paper). In essence, the I/O
problem was resolved by constructing a central
I/O program that provided machine-independent I/O functions for the remainder of CPSS.
The control problem was resolved by allowing
p:ogrammers the freedom of directing CPSS

3

via control card inputs (functionally oriented
to the program production tasks).
All the tasks related to transferability are
not involved in subsequent transfers of CPSS.
Consider the input card; once we have coded
routines to accept floating-field cards and have
levied no special format requirements on the
card, the card input processing functions are
totally independent of the machine. The information processed from card inputs in one
application need not appear on cards in another
application but could be processed from other
input media in a different input form, e.g.
punched paper tape or teletypewriter.
The methods employed in achieving transferability, or machine-independence, vary depending on the function being performed in the
program. Some of the more commonly applied
techniques were: the parameterization of certain machine characteristics (word length,
number of characters per print line, number of
print lines per page, etc.) ; the establishment
of programming conventions regarding the use
of constants and tags; the use of floating-field
card formats; and the use of "all-core" indexing
to relocate data and to compute addresses. In
many instances, special methods were required
to achieve transferability. Some of these are
discussed later in the paper during the discussions of the various CPSS subsystems.

Programmer Training
One of the principal benefits achieved by employing a higher order language and requiring
transferability in CPSS is in the potential reduction of programmer training costs.
When a programmer is transferred from one
application to another, a training or learning
period is required to familiarize him with the
particular computer and the program production system he will use. This retraining period
varies from a week to a month-and-a-half or
more. During this period a programmer's effectiveness is almost nil; and thereafter, it is
less than it should be until the programmer becomes expert in the use of the "new" computer
and system.
CPSS should afford a reduction of training
and retraining costs by permitting programmers to code and test their programs in a higher

4

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

order language. If CPSS achieves a broad
patronage, these costs are further reducible
since CPSS is designed to reflect a stable form
regarding its interfaces with the programmer.
In effect, CPSS could become a means for
achieving some level of programmer transferability.

CPSS Maintenance
In producing CPSS, a primary concern has
been maintenance costs. These costs are related
to error correction, program improvement, augmentation of the system's capability, program
and system documentation, and product release.
The design of CPSS provides for the minimi~a­
tion of such costs by isolating, identifying and
documenting the program- and system-type
functions that comprise CPSS.
The system and program documentation are
designed to facilitate the maintenance task. A
CPSS program's documentation consists of a
heavily commented program manuscript, a detailed flow chart, a functionally organized flow
chart, a program description document containing descriptions of data referenced, each routine coded, each procedure used, the input data
formats and structures, the output tables, items
and messages, and the function served by the
program. Another document describes each
machine dependency contained in the program.
Also, a system design document describes each
program function and the interfaces between
programs.
CPSS is designed and documented to facilitate the maintenance task. Also, the system is
capable of maintaining itself or of producing
itself.

The Programming Language
Perhaps the most significant decision made
in the CPSS project was the selection of a language for the programming of CPSS. The design of each function contained in a program
production system is influenced by the language
provided by the system. Therefore, certain design features are required to assure that the
program production system is capable of responding to the operational system's programming needs. In a sense, a transferable program
production system must be "overdesigned". The
design must reflect the current capability of the

language being provided, and also needs to provide for logical extensions of the language. Consider the situation that exists with CPSS.
There are three levels of JOVIAL represented
in CPSS which form a hierarchy of language
that is upward compatible in language power
and in the language processing algorithms. The
formal JOVIAL, J-3, is subset into two levels:
J-S, being a subset of J-3; and J-X, being a
subset of J-S. The program generation subsystem is coded in J-X and processes programs
that are written in J-S. All other subsystems
are coded in J-S and perform their functions
compatibly with J-3.
The decision range as to which level of language capability is to be provided in the program production system is bounded on the
upper end by the formal definition of the programming language, and on the lower end by
the language capability provided by the program generation subsystem.
In the program generation subsystem, the
language capability to be provided is influenced
by such factors as the subsequent use of the
language, the design of the compiler, the level
of transferability desired, and the expected
characteristics of existing languages and compilers having the same generic name.
Other factors influencing the decision in
CPSS were the transferring procedures and
techniques, the testing techniques established to
test the system, and the availability of computers with JOVIAL compilers.

CPSS-Scope of Applicability
CPSS serves programmers and managers in
their performance of several tasks related to
the system development process. Figure 1.
shows a simplified representation of the system
development process that has beeen employed
for several systems, both large and small. The
scope of CPSS is indicated by its applicability
to the program production process, which encompasses parts of the program design, program genera~ion, program test, and assembly
test stages.
Figure 2. is a simplified representation of
the program production process as served by
program production systems. The programs of

CPSS-A COMMON PROGRAMMING SUPPORT SYSTEM

r- -.- -

1
DETERMINE

REQUIREMENT

1
ESTABLISH
PROGRAM
SYSTEM
REQUIREMENTS

I
I

PROGRAM

PROGRAM

ASSEMBLY

GENERATION

TEST

TEST

I
·w
r --t-ESTABLISH
PROGRAM
SYSTEM
DESIGN
(OP SPECS)

DEFINE
OPERATIONAL
MISSION
REQUIREMENT

SYSTEM

PROGRAM
DESIGN

SYSTEM
DESIGN

SYSTEM
DEFINITION

~

ESTABLISH
OPERATIONAL
SYSTEM
DESCRIPTIDN
(05D)

ESTABLISH
DATA BASE
DESIGN
AND DATA
ACQUISITION

~
I

I
I
I

IL
Figure 1.

II

I

~

1
DESIGN
INDIVIDUAL

I ,I

PROGRAM PRODUCTION PROCESS- -

TEST
INDIVIDUAL
PROGRAMS
CODE CHECKING
PARAMETER
TEST)

CODE AND
TRANSLATE
PROGRAMS

1

,

DESIGN
INDIVIDUAL
PROGRAM
TESTS

DESIGN
ASSEM.LY
TESTS

...

PRODUCE
ASSEM.LY
TESTS

r ~-~l·-·
I

II
___________ ---I
PROORAMS

,

--,

I

SYSTEM
TEST

SYSTEM
OPERATION

I
I

PROGItAM
INTEGRATION
AND
ASSEMLY
TEST

J€}
--,rr
_

.J

5

,.TEST

PRODUCE

SYSTEM
TURNOY1[R AND
PERFORMANCE
IN THE
OPERATIONAL
MISSION

SYSTEM
TESTS

DESIGN
SYSTEM
TESTS

Program Production Process in the System Development ProGess

the production system are designed to assist
programmers and managers in their performance of these four tasks: program generation,
program test, system· generation, and assembly
test.
The principal product derived from the program production process is the operational program system master tape. Other products are
a system data dictionary (referred to as a
Compool) with its documentation and listings,
the program system documents, listings, test
plans, and test results, and the programs that
comprise the program system with their documents, listings, test plans, and test results.

between the various functions is automatic. The
execution of the functions is controlled by the
programmer. The four program production
tasks, program generation, program test, system generation, and assembly test are served by
this data and information flow.
The preceding figures, ,Figure 1., Figure 2.,
and Figure 3., depict the scope of applicability
for CPSS in the system development process.

A maj or task, related to the system generation task, is the acquisition and management of
a data base. This paper will not delve into the
data base tasks except where such tasks directly interface with the program production
system.

Program Generation. The programmer, employing the JOVIAL language, encodes a program to satisfy the program design specifications. The code, the symbolic programming
language statements (the source program), is
input to the compiler which translates the code
into machine instructions. During the compilation, the source program is appropriately augmented by routines from the procedure library
tape and by system data descriptions from the
Compool.

Figure 3. depicts the information and data
flow provided for in CPSS. The flow of data

The principal output from the compiler is a
binary program (object program). The re~

Figure 2.

Program Production Process

6

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

r-------------T-----------=-----------------r-'
I
I
I

I
I

I

I

r------ -

I

I
II

I

r--++

I
I

I
I
I

I
I
I
I

I

I

I
IL __ ..J,I _ _ _ _ ... _ _ _ _ _ _ _ _ _ _ _ •

Figure 3.

___________

~

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .II

Program Production Process, Information and Data Flow

mainder of the outputs provide information to
the programmer (and to other parts of CPSS)
that facilitate the testing and correction of the
program. The process of compilation in the
early phases of program coding sometimes is
referred to as "grammar-checking"-where the
result of the grammar-checking is a "good" program; that is, one that is syntactically correct.

Program Test. In order to test a programthat is, validate that the program performs its
functions correctly-the programmer must define a test case. A test case is comprised of a
simulated data environment for the program,
recording controls to retrive .data from the program's environment, and any program modifications required to correct the program as
shown by previous tests.
The test Gase is input to CPSS which translates the programmer's inputs into a test environment. When requested, CPSS loads the
test environment and the object program into
the computer for operation. During the operation of the test, data is recorded as requested
by the programmer in the test case. After the
operation of the test, the recorded data is processed to provide, as outputs, the hard copy test
results.
CPSS appropriately interprets data descriptions from the program Compool or the system

Compool to translate the test case inputs and
process the recorded data. Essentially, the system Compool and the program Compool are the
significant means through which CPSS affords
the programmer the ability to test a program
at a language level comparable to a higher order
programming language.
This loop, the program test phase, is repeated
for as many test cases as are required to satisfy
that the program performs its functions correctly.
The two tasks discussed so far, program generation and program test, are common to all
program production processes-whether the
programs are system programs or independent
programs. In this light, the applicability of
CPSS is extended to include both system and
non-system programming tasks.

System Generation. One of the principal
tasks in building a system is to define the system
data dictionary, more commonly known as a
Compool. Essentially, the Compool is the means
for defining the data that comprises a system's
data base. A Compool can be thought of as being a central repository of data descriptions
used both by programmers and programs.
Usually, a Compool exists in two forms. The
first is a document containing descriptions of
the system's data environent, data structures,

CPSS-A COMMON PROGRAMMING SUPPORT SYSTEM

data organizations, some commentary related to
the reasons why the data exists in the system,
and a description of the usage of the data. The
second form is a binary tape containing information describing data structures, and data organizations. The binary Compool, in some cases
(including CPSS) , contains information that is
usable in the constructing of the Compool document. The program production system itself is
a principal user of the binary Compool in that
it retrieves data descriptions from the Compool
during the various phases of the program production process.
The Compool, being a central collecting point
for system data descriptions, serves as an integrating device in the program production
process. In this manner the Compool provides
to program system managers a means for controlling a system's data environment.
CPSS provides both for the building of the
binary Compool and for the Compool documentation. A programmer employing the appropriate data descriptors, encodes data description statements that des c rib e the data
comprising the data base. These statements
are interpreted by the Compool generator which
produces a binary Compool. Other outputs provided by CPSS are quality analysis aids, and
data description listings.
The tape file maintenance function provides
the means for building tapes containing programs. Further, the function provides for modifying, correcting, cataloguing, and in general
maintaining computer tapes.

Assembly Test. The assembly test task, functionally, is similar to the program test task.
The purpose of the assembly test task is to provide a means for testing a complex of programs
that form a system or a logical subset of a system. In other words, the purpose served in assembly testing is to validate that a complex of
programs acting in concert perform a system
function correctly. Assembly testing can be
thought of as a hierarchy of testing-ranging
from simple program interface tests to complex
full system tests.
Figure 3. depicts an assembly test as being
performed in a controlled environment. The
system control parameters, initializing data,
simulated inputs, and recording controls are

7

prepared as a test case via an assembly test system. The test case is run against the appropriate complex of programs during which record
ing is performed. A'fter operation on the test
case, the recorded data is processed via a data
reduction and test analysis subsystem which
provides the hard copy test results. This loop,
assembly testing, is performed for as many test
cases and test levels as are required to validate
that the program system performs its functions
correctly.
Although CPSS is not designed explicitly to
serve the assembly test task, it does contain
programs that are usable in an assembly test
system; for example, the data recording, data
reduction, and data generation programs. With
very minor modifications to the test environment load and data reduction programs, CPSS
further could be used to provide a very sophisticated string test (program interface test) capability.
The reason for not explicitly providing an
assembly test capability in CPSS is that the
higher' levels of assembly testing usually require programs that reflect the design of the
operational program.system-(such as height
reply message simulators, and radar correlation analysis programs) .
CPSS PROGRAM DESIGN
One of the principal design characteristics
of CPSS is the functional modularity embodied
both in CPSS and its programs. CPSS has been
separated logically into subsystems, in general,
corresponding to the common program production functions: program generation, data environment simulation, data recording, data
reduction, test environment load, computer operation, Compool generation, and tape file maintenance. These subsystems are comprised of
programs which further are partitioned into
functional subroutines. An attempt was made
to isolate each system function and each program function into an identifiable subpart of
CPSS. Some of the common program-type
functions have been programmed as JOVIAL
procedures and loaded onto the CPSS procedure
library tape. Additionally, the CPSS programs,
tables, items and the Compool itself are defined
in the Compool. Thus, CPSS is an integrated
system constructed of modules, each of which

8

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

are program-type or system-type functions,
which are organized as 22 major programs, 35
library procedures, 10 common executive entries, 25 system tables with 330 items, and 53
parameter items. The size of CPSS is approximately 20,000 JOVIAL statements that result
in approximately 65,000 IBM 7090 machine instructions.

Program Generation Subsystem
The program generation function is provided
in CPSS by the JOVIAL language and a JOVIAL compiler. With the development of CPSS,
a powerful and comprehensive subset of the
JOVIAL language was developed that should
be sufficient to produce most computer software
systems. This subset, the JOVIAL core-subset
language, J-S, is the language employed in the
programming of CPSS. The power of J -S is
demonstrated by the fact that the programming
of CPSS did not require the totality of J -So
The principle reasons for developing J-S, and
the goals achieved by this development were:
(1) The definition of a "comprehensive minimum" JOVIAL language that is sufficient for producing most computer program systems.
(2) The definition of a JOVIAL subset language that affords the production of
transferable programs.
(3) The design, development, and production
of a JOVIAL compiler that can be produced on shorter schedules than more
comprehensive J-3 compilers.
( 4) The improvement of the language processing speed of a JOVIAL compiler.
(5) The retention of the significant language
and compiler features normally expected
of JOVIAL, for example: Compool sensitivity, procedure library capability,
partitioning of programs into procedures
and closed routines, memory allocation,
packing of items into tables, processing
of packed data, grammar checking, subscripting and indexing, bit and byte
addressing, machine assembly language
coding, logical and arithmetic operations, and program "debug" listings and
aids.

In general, the differences between the J-S
and J-3 languages should be more than offset
by the improvements in the compiler design
and its compatibility to CPSS. It should be
noted that J-S is a proper subset of JOVIAL,
i.e., that the programs coded in J-S are legal
and valid inputs to J-3.
Some of the significant design features of the
J-S compiler are:
(a) The J-S compiler is a "two-pass" compiler. That is, a program is processed
twice to produce a binary output. First,
in the JOVIAL language form; and second, in an intermediate language form.
The principal result of having only two
passes is that compiling speed has been
significantly increased.
(b) The J-S compiler provides an "altermode" of recompilation. That is, the
programmer can add modifications to
the source program during compilation
without altering the original source program. The compiler will produce an updated version of the source program as
one of its selectable options.
(c) The J-S compiler produces a program
Compool. That is, the J-S compiler produces a Compool containing complete
data descriptions of all data and labels
referenced or declared by the program.
The program Compool is usable interchangeably with the system Compool
throughout CPSS and is compatible in
form and structure with the system
Compool.
(d) The J-S compiler is capable of being
expanded to incorporate additional language capability. The practical limitation on this expandability is the size of
core memory.
Additionally, the programmer can select the
outputs he wants, override the Compool, specify
the Compool he wants used, and in general, exercise those options that specifically control the
inputs to and the outputs from the compiler.
In general, the CPSS program generation
subsystem provides the language power, compiler speed, and flexibility of use that affords a
programmer the ability to generate almost any
program conceivable.

CPSS-A COMMON PROGRAMMING SUPPORT SYSTEM

Data Environment Simulation Subsystem
The data environment simulation function is
provided in CPSS by a computer program that
processes data assignment statements. The
program produces data records containing the
programmer specified data, and control information that is used by the test environment
load subsystem.
The programmer specifies his data environment requirements in a POL-type language. The
program employs either a program Compool or
a system Compool as selected by the programmer. The programmer also may identify the
data being produced, thereby affording future
selective use of the data. The program is compatible with the JOVIAL J-3 data forms and
data structures.
The data itself can be coded as floating-point,
fixed-point, integer, Hollerith, Standard Transmission Code, and status-variable, where such
data is organized and structured as tables,
items, strings, or arrays. Subscripting and indexing also is allowed.
The program allows the programmer to set
values into any variable defined or referenced
by his program if the program Compool is used.
If a system Compool is used, the programmer
may set values into any variable defined in the
system Com pool. The program imposes no
limits on the volume of data it processes. It
does perform legality checks on the programmer's inputs to determine the compatibility of
the inputs with the defined data environment.

Data Recording Subsystem
The data recording function in CPSS is separated into two parts, where the actual data
recording is provided under the CPSS computer
operation subsystem. The CPSS data recording
preparation function is performed by a computer program that processes recording request
statements. The program produces a data record containing control information for use by
the computer operation subsystem, the test environment load subsystem, and the data reduction subsystem.
The programmer describes his recording requests in a fully symbolic language. The CPSS
program employs either a program Compool or
a system Compool as selected by the program-

9

mer. The programmer also may identify the
recording that would be performed per his requests, thereby affording future selective use of
the recording controls produced by the CPSS
program.
The programmer may select the data to be
recorded under any name defined in the program Compool or system Compool and/or any
block of memory. The location in his program
at which recording is to take place can be specified symbolically (if a program Compool is selected) .
The programmer may request a memory
register change survey, or dumps before, during, and/or after his program's operation. The
dumps may be formatted as octal, machine language instructions, floating-point, and/or alphameric.

Data Reduction Subsystem
The data reduction function is provided in
CPSS by a SUbsystem of computer programs
that process either CPSS recorded data or miscellaneous data formats. There are four general
classes of printouts produced by CPSS: Compool-defined data, memory dumps, survey
dumps, and tape dumps.
Compool-defined data is processed and appropriately formatted entirely dependent upon
the Compool definition. CPSS interrogates
either the system Compool or program Compool
to determine the appropriate formatting. The
information in a printout reflects the page number, table name, recording identity, recording
location, table size, entry number, data name,
data type, the converted data, and a security
classification.
Memory dump processing is performed in any
of four formats: octal, machine language instructions, floating-point, and/or alphameric. A
printout contains the page number, security
classification, recording location, recording
identity, the beginning and ending locations of
the dump, the contents of the addressable machine registers, and the contents of the computer words dumped. The page formatting is
determined by the program and is printed as
four or eight words per print line.
The survey dump processing is similar to the
memory dump processing. The significant dif-

10

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

ference is that those memory locations which
contain changed values are printed. The dumps
to be compared are made by the CPSS recording program before and after the operation of
a program in a test. A printout contains the
page number, security classification, the recording identity, the beginning and ending locations
of the survey area, the contents of the addressable machine registers in the "before" and
"after" states, and a print-line for each changed
computer word containing the address and both
values.
In the tape dump function CPSS provides the
means to print out any tape. The format of the
printout is similar to the memory dump format,
except that the addressable machine register
print lines are not output.
The programmer can request that his data
reduction be performed in either of three
modes: recording, general, or binary.
The recording mode is used to process data
recorded by CPSS. The programmer can select
a subset of the data to be processed, or he can
allow CPSS to process the data automatically
per his recording requests. Processing selection
is performed in exactly the same manner as
specifying recording requests.
The binary mode is used to process tape
dumps. The programmer can specify the "limits
of processing" and the print formats (octal,
floating-point, etc.). The limits of processing
bounds the range of tape that is to be processed.
The general mode is used as a mixture of the
recording and binary modes. All the controls
available to the programmer under these two
modes are available under the general mode.
Further, if a tape containing records similar
to CPSS-type records is to be processed, the
general mode may be used to reduce the data
per Compool definitions even though the tape
was not built by the CPSS recording program.

Test Environment Load Subsystem
The test environment load function is provided in CPSS by a computer program that
loads a test case into the computer for operation.
The CPSS test environment load subsystem
provides for loading recording patches to a pro-

gram; loading a data environment; loading
octal correctors to a program; and loading the
program that is to be tested (currently, on the
IBM 7090, CPSS is capable of loading and operating a 25,000 register test case).

Computer Operation Subsystem
The computer operation function is performed in CPSS by a subsystem of programs
that provide for the uninterrupted operation of
the computer.
The functions performed by the computer operation subsystem can be grouped into four
classes: system control, operator communication, test control, and I/O monitor.

System Control. The system control function
provides for the continuous operation of CPSS.
It interrogates programmer supplied control
"cards" to determine which function (or subsystem) is required. The system operates on
stacks of jobs (usually prestored on tape in the
sequence desired) where each job may be comprised of many dissimilar requests. For example, a job may be to compile a program,
specify several sets of recording controls,
specify several data environments, to load and
execute the compiled program in various test
environments, and to process the data recorded
in the several program runs. The sequence of
CPSS's operation is specified by the ordering
of the programmer supplied control cards. In
addition to the sequence control function, system control provides the normal control-type
functions such as position tapes, clear core, job
error recovery, loading of octals to cycling system programs, etc. Essentially, the system provides uninterrupted operation as long as there
are jobs to be processed, and a test program
does not loop or write into "permanent" core.
Controls are provided through which the computer operator (or the programmer in one special case) may interrupt the computer's operation.
Operator Communication. The operator's
communication function provides three methods
for interrupting the system's operation, (1) at
each I/O operation, (2) between control cards,
and (3) recovery from test program loops,
halts or other errors. When the operator has
completed his tasks, he may recover the sys-

CPSS-A COMMON PROGRAMMING SUPPORT SYSTEM

tem's operation, as appropriate, in any of five
ways, (1) skip forward in the job to the next
control "card", (2) skip forward to the next
job, (3) skip forward to a specified job, (4)
reinitialize the system, or (5) continue from
the point of interruption. Recovery may be performed automatically by CPSS as a result of
the operator's request, or the operator manually
may enter the system as he desires. While the
system is interrupted, the operator. may reassign I/O units, list the I/O unit/file allocation,
take dumps, position to a particular job, or perform other similar tasks. The operator may
perform his tasks in response to programmersupplied instructions (as printed by CPSS or
otherwise), messages printed by CPSS relating
to the system's needs, or recognizable error
conditions requiring his actions.
CPSS provides a method'/.for programmers to
"simulate" certain computer operator actions.
They may specify I/O allocations, list the I/O
unit/file allocations, or perform other operator
type tasks. By the judicious use of control cards
the programmer may "directly" communicate
with the computer operator to effect the job
desired.

Program Test Control. The program test control provides for the operation of a test case
loaded by the test environment load subsystem.
Also, the program test control function executes the recording program for dumps and surveys, and loads system recovery type p~ogram
modifications to the object program. The interfacing between the test environment load subsystem and other computer operation functions
provides to programmers almost complete flexibility in the running of tests. CPSS allows any
one of its functions to be run independently or
in any sequence. Some of the types of computer
runs a programmer might make are:
(1)
(2)
(3)
(4)
( 5)
(6)

Compile only
Load and execute his program
Compile, load, and execute his program
Generate test data
Specify recording requirements
Load his program, recording controls,
test data and execute his program
(7) Reload data and re-execute his program
(8) Load a different program, its recording
controls, and execute the "new" program
on the "old" data environment

11

(9) Re-execute his program

Effectively, CPSS imposes no operating restrictions on the programmer in the generation
or testing of a program. In this manner the
programmer is able to selectively test subparts
of his program, his whole program, or strings
of programs all as one job or independent jobs.

I/O Monitor. The principle function performed by the CPSS central I/O program is to
provide machine-independent I/O operations
for other programs. The I/O program performs
all the I/O operations required by the programs
comprising CPSS. The program provides a
comprehensive set of I/O operators: Read,
Read-search, Write, Position, Position-search,
Close, Wait (for a specific file), Wait (on all
files), Repeat (the preceding request), Rewind
(initialize the file), and File-status (feed back
the current status of the file). Additionally, the
program provides some elementary data conversion and manipulation functions in conjunction with requested I/O transfers, i.e., transfer
to or from packed or unpacked BCD data images, convert data to or from "standard transmission code", convert data to or from BCD,
and/ or combinations thereof. Also, the program will transfer data to or from specific locations or standard locations. The program will
either wait for a transfer to be completed or
return immediately as requested.
A program requests I/O operations by setting items in a CPSS communication table and
transferring control to the I/O program. These
items specify the name of the file on which the
operation is requested, the operation to be performed, a wait or no wait condition, and other
information related to the operation such as
data conversion and manipulation, location of
the data to be transfered, amount of data to be
transferred, etc.
Upon completing the operation, the I/O program automatically enters information into the
communication table relating to the requested
operation and returns control to the requesting
program. This information is usable to determine the status of the file, file addressing, status
of the requested operation, amount of data
transferred, etc.
In essence the I/O program determines the
appropriate device, record fragmentation (or

12

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

accumulation), labeling, unit positioning, and
other functions to effect a transfer of data to
or from memory via an I/O device. The program monitors each transfer to determine the
validity of the transfer and takes whatever
corrective action is appropriate. The manner
in which these functions are performed provides CPSS programs their independence from
a machine's .I/O and yet allows the referencing
programs to perform "efficient" I/O.
Compool Generation Subsystem
The Compool generation function is provided
in CPSS by a subsystem of computer programs
that build and interpret a Compool. The CPSS
Compool subsystem provides for a comprehensive definition of data. The inputs to the Compool assembler contain the normal type of data
definitions, and a variety of supplementary data
descriptive information (see Appendix B).
Further the Compool assembler provides for
assigning data addresses symbolically, and
allocates core memory for data or program storage. Effectively, the Compool assembler program provides the ability to define data for system applications, normal utility type needs, and
for the programmer's information needs. It
facilitates the data description task by accepting a fully symbolic input. In that the contents
of a Compool usually are operational systemdependent, the Compool assembler program
provides for the definition of the Compool's content. The program interrogates a series of
legality matrices to determine the acceptability
of data, the validity of the input, and the completeness of the data definition. In this manner
the Compool constructed by CPSS can be tailored to the operational system's needs.
Also, the Compool subsystem contains a program whose function is to retrieve the information contained in the Compool. This retrieval
program provides two levels of information:
first, that information which is required for the
normal utility type functions, and second, all
the information contained in the Compool. In
the first case the data is printed in alphabetical
order, and in the second case is alphabetized by
data class. The third function provided by the
CPSS Compool subsystem is a quality analysis
of the information contained in the Compool.

The program performs a tag analysis function that checks for duplicated tags and ambiguous cross-reference tags. The program also
determines the validity of the memory allocation by checking for violations of reserved
areas, and overlapped allocations of data. In
addition the program performs a capacity analysis by checking for unallocated addresses, and
by tallying each data occurrence by data type
and amount of memory required. Essentially,
CPSS provides a Com pool that is tailored to a
system by its content and the tools needed to
build, interrogate and provide quality control
on a Compool.

Tape File Maintenance SUbsystem
The tape file maintenance function is provided in CPSS by a computer program that
performs those functions necessary to maintain
tapes produced by or for CPSS. Further, the
CPSS program is capable of performing the
same set of functions on almost any tape regardless of format or structure.
Some of the more significant characteristics
of the CPSS program are: it can duplicate, reformat, position, read, write, close, skip, backspace, rewind, compare, list the contents of, and
load octals to tapes containing programs, Compools, files, records or any combinations thereof.
The CPSS program interrogates control
cards containing information that describes the
operation to be performed, the units on which
the CPSS program will operate, and the structure of the data stored on the unit. The CPSS
program provides for labeling of each transfer,
and thereby can handle overlaid and interspersed files of varying structures.
The CPSS program is designed in modules
such that each operator, and each modifier to
the operator are procedures or closed routines.
With this design the CPSS program easily can
be modified to delete, add or modify the tape
file maintenance functions as the particular application requires.
The tape file maintenance program establishes information in "dummy entries" for use
by the CPSS central I/O program. In this manner the only machine-specifics in this program
lie in its processing of binary cards .

CPSS-A COMMON PROGRAMMING SUPPORT SYSTEM

APPENDIX A

CPSS Control
The sequence of the tasks performed by CPSS
is dictated by the ordering in the programmer's
job deck. A job deck is comprised of system
control cards, and data and/or function control cards. Data and function control cards im'ASSIGN, INPUT, unit $
'CLEAR, area to be cleared $
'COMMENT $ commentary
'COMPILE $
'COMPOOL, ANALYSIS, control information $
'COMPOOL, ASSEMBLE $
'COMPOOL, AUDIT $
'COMPOOL, DISASSEMBLE, control information $
'COMPOOL, LIST, control information $
'ENDJOB $
'GO, address $
'JOB $
'LOAD, control information $
'OCTAL $
'OPSIM $
'POSN, file name, control information $
'PROCESS, control information $
'RECORD, control information $
'RETURN, address $
'TABSIM, control information $
'UTILITY $
'WAIT $
APPENDIX B

CPSS Compool
The CPSS Compool assembler builds a Compool from information coded on data declaration "cards". The program processes nine data
declarator types which are used to define a system's data base, i.e., Program, Table, Item,
String, Array, Free Item, Constant, File, and
Task declarations. Also, the program processes
four declarator types that are used in the building of a Compool, i.e., Ident, Locate, Reserve,
and End declarations.
1. I dent. The Ident declaration is used to identify the Compool itself.

13

mediately follow their related system control
card in the job deck. The first card in a job
deck is the 'JOB card and the last card is an
'ENDJOB card.
The system control cards acceptable to CPSS
are listed below and summarize some of the
system's capabilities.
Pairs the CPSS INPUT file to the given unit.
Clears the given area of core to plus zero.
The comment is printed.
Initialize the program generation subsystem.
Analyze a Compool as requested.
Assemble a Compool from the data cards.
Legality check the Compool data cards.
Format and print the binary Compool specified.
Format, order, and print the Compool specified
with commentary added.
The end bracket for a job deck.
Transfer control to the given address.
The begin bracket for a job deck.
Load the environment specified.
Load and save octals for CPSS programs.
Initialize the operator "simulation" function.
Position the given file as directed.
Format and print the data as directed.
Prepare recording parameters as directed.
Load a transfer to the CPSS executive at the
given address.
~repare a data environment as directed.
Initialize the tape file maintenance subsystem.
Stop the system's operation.

2. Locate. The Locate declaration is used to
pair address labels to core memory addresses. These labels are usable in lieu of
actual memory addresses. In this manner,
the programmer is able to allocate memory
and define data addresses in a completely
symbolic method.
3. Reserve. The Reserve declaration is used to
prevent the allocation of data to certain core
memory areas.
4. End. The End declaration terminates the
program's processing of declarations.
The type of information the programmer
may use to describe data is quite comprehen-

14

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

sive. For example, a program description may
contain the program name, mod, length, memory location status (absolute, relocatable, or
dynamically relocatable) , memory location, program type (closed or open, system program,
parameterless subroutine, or parameterized
subroutine), storage location (unit, label, unit
addressing) , subsystem name, title, related
commentary, and input and output parameters.
BIBLIOGRAPHY
The following represents a collection of general material on the subject of "program production" type systems and supplementary references for CPSS and JOVIAL.
1. BARNETT, N. L., FITZGERALD, A. K., "Operating System for the 1410/7010-360
philosophy", Datamation, Vol. 10, No.5,
pp. 39-42, May 1964.
2. BLATT, J. M., "Ye Indiscreet Monitor",
Communications of the ACM, Vol. 6, No.8,
pp. 506-510, September 1963.
3. BORETA, D., "Introduction to CPSS", (soon
to be published as a System Development
Corporation tech memo, TM-WD-800/
002/00) .
4. BOUVARD, J., "Operating System for the
800/1800-admiral", Datamation, Vol. 10,
No.5, pp. 29-34, May 1964.
5. HOWELL, H. L., The Q-32 JOVIAL Operating System, System Development Corporation, TM-1588/000/00, Nove m b e r
1963.
6. OLIPHINT, C., "Operating System for the
B5000-Master Control Program", Datamation, Vol. 10, No.5, pp. 42-45, May
1964.
7. PERSTEIN, M. H., The JOVIAL Manual,
Part 2, The JOVIAL Grammar and Lexicon, System Development Corporation,
TM-555/002/02, March 1964.
8. SCHWARTZ, J. 1., COFFMAN, E. G., WEISSMAN, C., A General-Purpose Time-Sharing
System, Proceedings Spring Joint Computer Conference, Washington, D. C., pp.
397-411, April 21-23, 1964.
9. SHAW, C. J., "A Specification of JOVIAL",
Communications of ACM, Vol. 6, No. 12,
pp. 721-735, December 1963.

10. SHAW, C. J., The JOVIAL Manual, Part 1,
Computers, Programming Languages and
JOVIAL, System Development Corporation, TM-555, Part 1, December 1960.
11. SHAW, C. J., The JOVIAL Manual, Part 3,
The JOVIAL Primer, System Development
Corporation, TM-555/003/00, December
1961.
12. STEEL, T. B., Jr., "Operating Systemsboon or boondoggle", Datamation, Vol. 10,
No.5, pp. 26-28, May 1964.
13. SUTCLIFFE, W. G., Program Production
System User's Manual (1604-A JOVIAL
Compiler-OASIS Utility), System Development Corporation, TM-WD-402/000j
00, January 1964.
14. SWANSON, R. W., SPASUR Automatic
System Mark 1, Utility System Users
Manual, System Development Corporation,
TM-WD-28, July 1964.
15. VER STEEG, R. L., "TALK-A High-Level
Source Language Debugging Technique
with Real-Time Data Extraction", Communications of the ACM, Vol. 7, No.7, pp.
418-419, July 1964.
16. CO-OP Manual, Control Data 1604 User's
Group, Control Data Corporation, No.
067a, December 1960.
17. Cosmos IV Manual, System Development
Corporation, TM-LX-81/001/00, October
1963.
18. H 800 Survey Guide, Honeywell, Electronic Data Processing Division.
19. IBM System/360 Special Support Utility
Programs, IBM Corporation, File No.
S360-32, Form C28-6505-0, 1964.
20. IBM System/360 Programming Systems
Summary, IBM Corporation, File No.
S360-30, Form C28-6510-0, 1964.
21. IBM 7090/7094 IBSYS Operating System,
System Monitor (lBSYS), IBM Corporation, File No. 7090-36, Form C28-6248-1,
1963.
22. Phil co 2000 Operating System SYS Version E, Philco Corporation, January 1963.
23. RCA 5Ql Electronic Data Processing System, EDP Methods, Radio Corporation of
America, Technical Bulletin No. 16.
24. SCOPE/Reference Manual, CDC 3600,
Control Data Corporation, August 1963.

ERROR CORRECTION IN CORC,
THE CORNELL COMP.UTING LANGUAGE
David N. Freeman
IBM General Products Division Development Laboratory
Endicott, New York .
I. INTRODUCTION

The current paper describes the error-correction procedures in greater detail.

CORC, the Cornell Computing Language, is
an experimental compiler fanguage developed at
Cornell University. Although derived from
FORTRAN and ALGOL, CORC has a radically
simpler syntax than either of these, since it was
designed to serve university students and
faculty. Indeed, most of the users of CORC are
"laymen programmers," who intermittently
write small programs to solve scientific problems. Their programs contain many errors, as
often chargeable to fundamental misunderstandings of the syntax as to "mechanical
errors." A major objective of CORC is to reduce the volu~e of these errors. This objective
has been achieved to the following extent: the
average rate of re-runs for 4500 programs submitted during the fall semester of 1962 was
less than 1.1 re-runs/program.

II. THE CORC LANGUAGE
CORC was designed by a group of faculty
and students in the Department of Industrial
Engineering and Operations Research at Cornell. This group has coded and tested two
similar compiler /monitor systems, one for a
medium scale decimal computer an9 the other
for a large binary computer.
During the definition of the language, the design group surrendered potency to simplicity
whenever the choice arose. Certain redundancies have been incl~ded in CORC, serving
two functions: to facilitate error-correction during source-deck scanning, and to aid novice
programmers' grasp of compiler-language syntax. Excepting these redundancies, CORC is
quite frugal with conventions. For example, all
variables and arithmetic expressions are carried
in floating-point form, avoiding the confusing
notion of "mode." At the same time, programmers are spared all knowledge of floating-point
arithmetic.

Three features of CORC have enabled it to
achieve this low re-run rate:
(1) Inherent simplicity of the syntax;
(2) Closed-shop operation of the Cornell
Computing Center on CORC programs,
including keypunching, machine operation, and submission/return of card
decks;
(3) A novel and extensive set of errorcorrection procedures in the CORC
compiler /monitors.

Each CORC card deck is divided into three
required sub-decks plus an optional sub-deck of
data cards:
(a) The preliminary-description cards supply heading data for each page of the
output listing.

The CORe language is briefly described below; it is more fully documented elsewhere. 1

15

16

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

(b) The dictionary cards declare all variables used in the program, simple as well
as subscripted.
(c) Each statement card may have an indefinite number of continuation cards.
Statements may bear labels having the
same formation rules as variables. Continuation cards may not be labelled.
Variables, ,labels, numbers, reserved words,
and special characters comprise the symbols of
CORC. Each symbol is a certain string of at
most eight, non-blank characters. Numbers may
have up to twelve digits; decimal points may
be leading, trailing, or imbedded in the numbers. There are forty-three reserved words in
CORC, e.g., LET, and ten special characters:
+ - * / $ = ( ) ., The character string defining each label, variable, or reserved word is
terminated by the first blank space or special
character. The character string defining each
number is terminated by the first character
that is neither a digit nor a decimal point. Each
special character is a distinct symbol. There
are forty-six legal characters in CORC: letters,
digits, and special characters.
A subset of the reserved words is the set of
fifteen first-words: LET, INCREASE, INC,
DECREASE, DEC, GO, STOP, IF, REPEAT,
READ, WRITE, TITLE, NOTE, BEGIN, and
END. The first symbol in each statement
should, if correct, be one of these first-words.
There are eight executable-statement types,
plus a NOTE statement for editorial comments
on the source-program listing. (NOTE statements may be labelled; in this case, they are
compiled like FORTRAN "CONTINUE" statements.) To simplify the description of the statement types, single letters denote entities of the
CORC language:
V ...... a variable, simple or subscripted
E ...... an arithmetic expression, as defined in FORTRAN
L ...... a statement label
B ...... a repeatable-block label (see below)
R ...... one of the six relational operators:
EQL, NEQ, LSS, LEQ, GTR, and
GEQ. A relational expression is a
predicate comprising two arith-

metic expressions separated by a
relational operator, e.g., 2*X NEQ
0.9.
The statement types are as follows:
(1) LET V = E, and two variants IN-

CREASE V BY E and DECREASE V
BY E. (INCREASE may be abbreviated to INC, DECREASE to DEC.)
(2) IF El R E;!

THEN GO TO Ll
ELSE GO TO L:!,
IF Ell Rl El:!
AND E21 R2 E22

AND E~l R~ Ex:!
THEN GO TO Ll
ELSE GO TO L2

and two variants

IF Ell Rl E12
OR E:!l R2 E22

OR E~l R~ EX2
THEN GO TO Ll
ELSE GO TO L 2.

(3) GO TO L.
(4) STOP, terminating execution of a program.
(5) READ Vl' V 2 , • • • , bringing in data cards
during the execution phase. Each data
card bears a single new value for the
corresponding variable.
(6) WRITE VI' V 2 , • • • , printing out the
variable names, the numerical values of
their subscripts for each execution of
the WRITE statement, and the numerical values of these variables.
(7) TITLE (message), printing out the remainder of the card and the entire statement fields of any continuation cards.
(8) REPEAT B ... , comprising four variants
(8a) REPEAT BETIMES,
(8b) REPEAT B UNTIL Ell Rl E12
AND E2l R2 E22

AND E~l Rx E x2 ,
(8c.) REPEAT B UNTIL Ell Rl E12
OR E2l R2 E22

ERROR CORRECTION IN CORC

(8d) REPEAT B FOR V = E 1 , E 2 , • • • ,
Eb E j , E k ), • • • , where (E i , Ej, E k )
is an iteration triple as in ALGOL.
Closed subroutines-called repeatable blocks
in CORC-are defined by two pseudo-statements
as follows:
B

BEGIN

17

A principal tenet of the CORC philosophy is
to detect errors as early as possible in:
(1) c"haracters within symbols,
(2) symbols within expressions,
(3) expressions within statements, e.g., the
left and right sides of an assignment
statement, and
(4) statements within the sequencing of
each program.

BEND,
where the "B" labels appear in the normal label
field. A repeatable block can be insert~d anywhere in the sub-deck of statement cards; its
physical location has no influence on its usage.
It can only be entered under control of a REPEAT statement (with a few erroneous-usage
exceptions) .
Repeatable blocks may be nested to any reasonable depth. Any number of REPEAT statements can call the same block, although the
blocks have no dummy-variable calling sequences. All CORC variables are "free variables" in the logical sense, which avoids
confusing the novice programmer no less than
it hampers the expert programmer.
III. ERROR ANALYSIS IN CORC
In the CORC compiler/monitor, the author
and his colleagues have attempted to raise the
number of intelligible error messages and
error-repair procedures to a level far above
the current state-of-art for similar systems.
The success of these messages and procedures
is measured by three economies:

An explicit message for each error is printed
on the output listing. This listing is the only
output document from a CORC program; all
programs are compiled and executed, and machine code is never saved on tape or punched
cards.
After detecting a statement-card error,
CORC always "repairs" the error by one of the
two following actions:
(a) CORC refuses to compile a "badly
garbled" statement. Instead, CORC replaces it with a source-program "message statement" reminding the programmer oJ the omitted statement.
(b) CORC edits the contents of a "less
badly garbled" statement into intelligible source language. The edited statement is subsequently compiled into
machine code.
Errors in cards other than statement cards are
repaired by similar techniques.

(c) less faculty/student time devoted to tedious analyses of errors.

Thus, the machine code produced by CORe
is always executable, and compilation-phase and
execution-phase error messages are provided
for every program. By continuing compilation
in the presence "of errors, CORC provides diagnostic data simultaneously on structural levels
(1)-(4) cited above. By also executing these
programs, CORC detects additional errors in
program flow, subscript usage, improper function arguments, etc.

The detection of each error invokes a message describing the relevant variables, labels,
numbers, etc.; why they are erroneous; and
what remedial actions are taken by CORC. Exhibiting errors in detail has improved student
comprehension of the CORC syntax. Of course,
certain errors defy detection, e.g., incorrect
numerical constants.

The correction of a programming error is defined to be the alteration of relevant sourcelanguage symbols to what the programmer
truly intended. Under this operational definition, many errors are incapable of "correction,"
e.g., the programmer may have intended a
statement or expression not even offered in
CORC. Other errors are capable of "correc-

(a) reduced re-run loads,
(b) reduced costs of card preparation, and

18

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

tion" by the programmer himself but by no
critic unfamiliar with the complete problemdefinition; an incorrect numerical constant is
again an example.
A third class of errors can be corrected by
an intelligent critic after scanning the sourcedeck listing, without recourse to the problem
definition. Some errors in this class require a
profound use of context to elicit the programmer's true intention. Other errors in this class
can be detected and corrected with little use
of context, e.g., the omission of a terminal right
parenthesis.
The author defines a corrigible error to be
one whose correction is automatically attempted
by the CORC compiler/monitor. Thus, this
definition is by cases, for a specific version of
CORC. CORC may correct one error and fail
to correct a second, nearly-identical error.
Error correction is a fundamentally probabilistic phenomenon; the CORC error-correction
procedures attempt to maximize the "expected
useful yield" of each program by strategies
based on a priori probabilities associated with
the different errors. ~*
The majority of corrigible errors are detected
during the scanning of source decks by the
CORC compiler. A few corrigible errors are
detected during the execution of object programs. For each error, one or more correction
procedures have been added to CORC, representing certain investments in core memory
and operating speed.
The following paragraph discusses the selection of corrigible errors, and section IV catalogues these errors. The catalogue will be
somewhat peculiar to the structure of CORC,
a population of novice programmers, and the
operation of a university computing center.
However, the discussion of control-statement
errors, arithmetic-expression errors, and misspellings is relevant to most compiler languages.
The author has roughly ranked various error
conditions by two criteria: a priori probabilitiest of their occurrence, and a priori probabilities of their correction (if correction is at-

* References 2 and 5 also propose probabilistic correction of misspellings.
t Probabilities in the sequel are estimates based on
human scrutiny of several hundred student programs.

tempted). Correction procedures were designed
for some errors, while other chronic errors had
such low a priori probabilities of correction
that only explicit error-detection messages were
printed out. For example, omission of a subscript is a common error which is difficult to
correct, although easy to detect and "repair."
CORC "repairs" a subscript-omission error by
supplying a value of 1.
On the other hand, misspellings are common errors whose a priori probabilities of correction are high if sophisticated procedures are
used. The author hopes to achieve at least 75
percent correction of misspellings with the current procedures; many have not yet been tested
in high-volume operation. 3 !
IV. ERROR CORRECTION DURING
SCANNING
First, the general procedures for card scanning will be described. The second, third, and
fourth subsections deal with dictionary cards,
data cards, and statement cards, respectively.
The last subsection describes the error-correction phase which follows scanning, i.e., after the
last statement card has been read but before
machine code is generated by the compiler.
A. CARD SCANNING
Each CORC source deck should have all cards
of one type in a single sub-deck:
(1) Type 1, preliminary description cards
(2) Type 5, dictionary cards
(3) Type 0, statement cards
(4) Type 4, data cards (if used).
The type of each card is defined by the punch
in column 1 (although CORC may attempt to
correct the type of a stray source card).
At the beginning of each new source program, CORC scans the card images (usually
on magnetic tape) for the next type 1 card,
normally a tab card bearing any non-standard
time limit and page limit for this program.
(The tab cards are used to divide the decks,
facilitating batch processing and other handling.) This scanning procedure skips any
extraneous data cards from the previous pro:j: Damereau has achieved over 95 % cOl'l'ection of misspellings in an information-retrieval application.

ERROR CORRECTION IN CORC

gram deck. If the preceding deck was badly
shuffled, misplaced dictionary cards and statement cards will also be skipped.
An indefinite number of type 1 cards may be
supplied: CORC inserts data from the first two
cards into the page headings of the output listing. This serves to label all output with the
processing date and programmer name, avoiding losses in subsequent handling.
The problem identification should be duplicated into each deck; any deviations from this
identification generate warning messages. The
serialization of cards is checked, although no
corrective action is taken if the cards are out of
sequence. If the serialization is entirely
omitted, CORC inserts serial numbers into the
print-line image of each card, so that subsequent error messages can reference these print
lines without exception.
The. general procedure on extraneous or
illegal punches is as follows: illegal punches
are uniformly converted to the non-standard
character "*"; extraneous punches are ignored
except in non-compact variable/label fields and
in the statement field of type 0 cards, where all
single punches are potentially meaningful.
Rather than discard illegal punches, CORC reserves the possibility of treating them as misspellings. Likewise, any non-alphabetic first
character of a variable/label field must be
erroneous and is' changed to "*," furnishing a
later opportunity to treat this as a misspelling.
All hyphen punches are converted to minus
signs during card reading; the keyboard confusion of these two characters is so chronic-and
harmless-that CORC even refrains from a
warning message.
B. DICTIONARY CARDS
Although the dictionary and data cards are
processed in entirely different phases of a
CORC program, their formats are identicalwith the exception of column I-and common
procedures are used to scan them.· As mentioned in the preceding subsection, nonalphabetic first characters are changed to
Embedded special characters are similarly
changed with the following exception: character strings of the form "(I)" or "(I ,J)" are
omitted. Fixed-column subscript fields have al-

"*."

19

ready been provided and students consistently
and correctly use them. However, a common
student error is to supply redundant parenthesized subscripts in the label field; these are
ignored by CORC, although a \-varning message
is supplied.
N on-numeric characters in the subscript
fields and the exponent field are changed to
"I"s. Vector subscripts can appear in either
the first-subscript field or the second-subscript
field. These subscripts need not be right-justified in their respective fields. After an array
has been defined, subsequent subscripts of excessive magnitude are not used; the corresponding data entries are put into the highest legal
cell of the array.
C. DATA CARDS
All of the foregoing procedures apply with
these exceptions: if a data card has its variable field blank or, in the case of subscripted
variables, its subscript fields blank, the data
can still be entered with a high probability of
correcting the omission. Information in the
READ statement overrides incorrect or missing entries on the corresponding data cards.
CORC insists on exact agreement of the variables and subscripts if warning messages are to
be avoided. Symbolic subscripts may be used
in READ statements, but their execution-phase
values must agree with the numeric subscripts
on the type 4 cards.
D. STATEMENT CARDS
Correction of erroneous statement cards is
a complex technique-and the most fruitful of
those currently implemented in CORC. Statement cards comprise over 80 % of student
source decks, on the average. Students commit
the overwhelming majority of their errors in
communicating imperative statements to a
compiler, rather than header statements, declarative statements, or data cards. Statementcard errors fall into two major categories:
those detectable at compilation time and those
detectable only at execution time. The second
category is discussed in section V. Some of
the most useful correction techniques for the
first ca.tegory-tested and modified during the
past two years of CORC usage--are described
in the following eight sub-sections.

20

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

( 1) Misspellings 4 ,5
At the end of Section III, misspellings were
cited as a class of errors that both occur frequently and have attractively high a priori
probabilities for correction. Accordingly, CORC
now contains a subroutine that compares any
test word to any list of words (each entry being denoted a list word), determining a "figure
of merit" for the match of each list word to the
test word. Each figure of merit can be considered as the a posteriori probability that the
test word is a misspelling of this particular list
word. The list word with the highest figure of
merit is selected as the spelling of the test word
"most likely" to be correct.
Various categories of misspelling are defined
in CORC; to each category is assigned an a
priori probability of occurrence. When the test
word and a list word maUrh within the scope
of a category, i.e., the test word is some particular misspelling of the list word, the a priori
probability for this category is added to the figure of merit for this list word. Actually, the
figures of merit are integers rather than probabilities; they can be converted to probabilities
by the usual normalization, but this is unnecessary-they are used merely to rank the possible
miss pellings.
All increments used in misspelling analyses
reflect the number N of non-blank characters
in the test word, as follows: a certain basevalue increment is specified for each misspelling; if a match is found, this base value is
multiplied by the ratio N/8, then added to the
corresponding figure of merit.
(a) A concatenation misspelling occurs when
a delimiting blank is omitted between
two symbols, e.g., "LET X ... " is a concatenation misspelling of "LET X ... "
When such a misspelling is detected,
any relevant list of words is compared
against the concatenated symbol. The
increment to the figure of merit for each
list word is computed as follows:
( i) If the list word and the test word
do not have at least their initial
two characters in common, the increment is o.
(ii) For every consecutive character in
common with the list word (after

the first character), an increment
of 2 is added to the figure of merit.
Example: Assume that the test
word is ENTRYA and that two of
the list words are ENT and ENTRY. The corresponding figures
of merit are 6 and 10, respectively.
The higher figure reflects the more
exact agreement of ENTRY to
ENTRYA.
(b) Single-character misspellings provide
four different increments to the figure of
merit, corresponding to mutually exclusive possibilities:
(i) A keypunch-shift misspelling occurs when the IBM 026 keypunch
is improperly shifted for the
proper keystroke, e.g., a "1"-"U"
error. There are fourteen possible
misspellings of this type, corresponding to the seven letter-number pairs on the keyboard. The
special character row, including
"0," does not seem susceptible to
misspelling analysis, since special
characters are always segregated,
never imbedded in symbols.
For each list word which agrees
within a single keypunch-shift
misspelling with the test word, an
increment of (20N/8) is added to
the corresponding figure of merit,
where N is the number of nonblank characters in the test word.
(ii) An illegal-character misspelling
occurs either (a) when a variable/
label has previously required a
"single-letter perturbation" using
the character "-=1=" or (b) when an
illegal punch in the card is changed
to "-=1=." Single-letter perturbations are used when the same symbol occurs at both a variable and
a label, or when a reserved word
is used as a variable or label. In
either case, conflicting usage cannot be tolerated, and CORC appends "-=1=" to the symbol for the
current usage. In subsequent
searches of the symbol dictionary,
one may wish to recognize the orig-

ERROR CORRECTION IN CORC

inal spelling. Thus, for each list
word which agrees within a single
illegal-character misspelling with
the test word, an increment of
(20N/8) is added to the corresponding figure of merit, where
N is as above. This increment is
higher than that for a random
misspelling, reflecting the peculiar
origins of the character "=1=."
(iii) A rresemblance misspelling occurs
whenever any of the following
character pairs is confused: "1""1," "0" (the letter) -"0" (the
number) and "Z"-"2." For each
list word which agrees within
a single resemblance misspelling
with the test word, an increment of
(40N /8) is added to the corresponding figure of merit, where N
is as above.
(iv) A rrandom misspelling occurs when
any other single character is mispunched in a symbol. For each list
word which agrees within a single
random misspelling with the test
word, an increment of (10N/8) is
added to the corresponding figure
of merit, where N is as above.
( c) A permutation misspelling provides a
single increment to a figure of merit
whenever the test word matches the corresponding list word within a pair of
adjacent characters, this pair being the
same but permuted in the two words,
e.g., LTE is a permutation misspelling
of LET. For each list word which
agrees within a single permutation misspelling with the test word, an increment of (20N/8) is added to the corresponding figure of merit, where N is as
above. Other permutations may deserve
consideration at some future date, but
adjacent-pair permutations seem to have
the highest a priori occurrence probabilities.
(d) Simple misspellings of the foregoing
types have high probabilities of successful correction insofar as the following
conditions are met:
(i) The list of words does not contain

21

man y near ly-identical entries.
Otherwise, there will be many
reasonable misspelling possibilities
from which the program may select only one.
(ii) Neither test words nor list words
are single-character symbols. The
program excludes such list words
from consideration during a misspelling analysis; experience has
shown that only a small proportion-perhaps 10 percent-of single-character symbols are successfully corrected.
(iii) Context can be extraordinarily
helpful. Associated with each list
word is a set of attributes such as
the count of its usage in the current program, its function (variable, label, constant, reserved
word, etc.) , and any peculiar
usages already detected (such as
being an undeclared variable) .
Certain misspelling possibilities
can be immediately discarded if
the context associated with the
corresponding list words does not
match the context of the test word.
For example, if an arithmetic
statement is being analyzed, any
test for misspelled· variables can
immediately discard all misspelled
label possibilities.
The first two ·of these three conditions
are controlled by the vocabulary of the
source-deck programmer; CORC gives
far better assistance to programs using
only a few variables and labels of highly
distinctive spelling with at least three
characters apiece.
(e) The increments corresponding to different misspellings were arbitrarily
selected; they can be readily raised or
lowered as experience indicates. The
current values reflect the following
observations:
(i) The weakest communication link
is between the handwritten coding
sheets and their interpretation by
the keypunch operator. Hence, the

22

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

largest increment is assigned to
resemblance misspellings.
(ii) In lieu of exact information, permutation misspellings and keypunch-shift misspellings have been
judged equally probable.
(iii) Illegal punches in a card image
arise from three sources: illegal
hole patterns, improper use of a
character (e.g., non-alphabetic
character beginning a first word,
or the duplicate use of a symbol as
two entities), and card-reading
failures. Lacking other evidence,
the author considered the increment to be approximately the same
as in (ii).
(iv) Other single-character misspellings seem only half as likely to
occur.
Examples of the current CORC misspelling
analyses may be found at the end of subsection
E on Post-Scanning Spelling Corrections.
(2) Subscripts
Correction attempts for subscript errors
have low success probabilities, on the whole.
Isolated omission of one or both subscripts
seems almost hopeless. CORC edits such an
omission by appending" (1)" to a vector variable and "( 1, 1)" to a matrix variable. Likewise, if a matrix variable has other than two
subscripts, CORC uses primitive editing techniques to produce executable machine code. Excessive commas are changed to "+" signs, and
"(E)" is changed to "(E, 1) ," where "E" is
the arithmetic expression for the first subscript
of a matrix variable.

followed by a parenthesized expression, these
compilers could change the status of this variable before the final code-generation scan.
To reduce compilation time, the current version of CORC scans each source statement once
and must make an immediate decision when it
finds a left parenthesis juxtaposed to a supposedly simple variable: should "V ( . . . )" be
changed to "V* (. .. ) ," i.e., implied multiplication, or should it be treated as a subscript (and
re-designate "V" as an array variable)? The
present error-correction procedure is to encode
"V ( ... )" into the intermediate language without change; special counters for usage as a vector /matrix variable are incremented, depending on one/two parenthesized arguments. At
the conclusion of scanning, these usage counters are tested for all "simple" variables. Any
variable used preponderantly as a vector variable causes CORC to test for the misspelling
of some declared vector variable. Failing this,
CORC changes the status of the variable to a
vector of 100 cells. Any variable used preponderantly as a matrix variable causes CORe
to test for the :rpisspelling of some declared
matrix variable. Failing this, CORC changes
the status of the variable to a matrix of 2500
cells, comprising a 50 X 50 array.

Missing right parentheses are supplied and
extra right parentheses are deleted as necessary, although not always correctly.

If a variable is infrequently juxtaposed to
parenthesized expressions, CORC treats these
juxtapositions as implied multiplications. Deferral of this decision necessitates a procedure
for inserting the mUltiplication operator during
the conversion of intermediate language to
machine code, together with the appropriate
message. This error-correction procedure is
one of the few in the code-generation phase.
The message appears at the end of the sourcedeck listing rather than adjacent to the offending card image; the gain in error-correcting
power seems to justify deferring the message.

Definition of new array variables after the
dictionary is complete (Le., after all type 5
cards have been processed) is an attractiveif difficult-error-correction procedure. Most
algebraic compilers scan source decks several
times; they have a leisurely opportunity to accumulate evidence for undeclared array variables. If such evidence is overwhelming, i.e., if
every usage of a certain variable is immediately

The a priori probabilities of omitted arrayvariable declarations and implied multiplications are both high. Since the two possibilities
are mutually exclusive, CORC bases its choice
on the percentage occurrence of the ambiguous
usage. If the usage is chronic, i.e., comprising
more than 50 percent of the total usage of some
variable, an undeclared array variable seems
more probable. If the ambiguous usage is a

ERROR CORRECTION IN CORC

small percentage of the total usage, implied
multiplication seems more probable.
(3) Arithmetic and relational expressions

The rules for analyzing and correcting arithmetic expressions are as follows:
(a) Extraneous preceding plus signs are deleted, and preceding minus signs are
prefixed by zero, i.e., H - E" becomes
"0- E."
(b) Thereafter, u+," "-," "*," and "/"
are all binary operators. If an operand
is missing before or after a binary operator, the value "1" is inserted. This
merely preserves the coherence of the
syntax; to correct this error seems hopeless.
( c ) If an expression using two binary operators might be ambiguous (irrespective
of the formal syntax), CORC prints out
its resolution of the ambiguity, e.g.,
"A/B*C IS INTERPRETED AS
(A/B) *C."
(4) LET, INCREASE-BY, and DECREASE-

BY
Four components are essential to each correct statement in this category: the first-word,
the assigned variable, the middle symbol, and
the right-hand-side (RHS) arithmetic expression.
(a) The first-word of the statement has been
identified by a generalized pre-scan of
the statement. If "LET" has been
omitted but "=" has been found, CORC
furnishes the former symbol.
(b) The assigned variable may be subscripted; if so, CORC supplies any missing arguments, commas, and right parentheses when" =" or "BY" terminates
the left-hand-side (LHS) of the statement. If other symbols follow the assigned variable but precede "=" or
"BY," they are ignored.
(c) "EQU," "EQL," and "EQ" are erroneous but recognizable substitutes for

,,- "

(d) Any arithmetic expression is legal for
the RHS.

23

(5) GO TO, STOP, and IF
(a) With one exception-(b) just belowall unconditional branches begin with
"GO," followed by an optional "TO."
(b) STOP is a complete one-word statement.
Also, it may be used in the conditionalbranch statement, e.g., "IF ... THEN
STOP ELSE GO TO .... "
(c) A conditional branch always follows one
or more relational expressions in an IF
or REPEAT statement. For IF statements, the first incidence of "THEN,"
"ELSE," "GO," "TO," or "STOP" terminates the last relational expression;
missing operands, commas, and right
parentheses are then inserted as needed.
Thereafter, the two labels are retrieved
from any "reasonable" arrangement
with two or more of the above five
words.
Missing labels are replaced by dummy
Hnext statement" labels, which later inhibit the compilation of machine-code
branches. Thus, if an IF statement
lacks its second label, the falsity of its
predicate during execution will cause no
branch. At the end of scanning, certain
labels may remain undefined; here also,
CORC inhibits the compilation of machine-code branches.
(6) REPEAT
(a) If the repeated label is omitted,e.g., in
the statement REPEAT FOR ARG = 2,
CORC scans the label field of the following source card. Programmers often
place repeatable blocks directly after
REPEAT statements using these blocks:
Hence, any label on this following card
is likely to be the missing repeated
label: it is inserted into the-REPEAT
statement. If no such label is found,
CORC creates a dummy label for the
repeatable block. During the execution
of the program, usage of this erroneous
REPEAT statement can be monitored
by this dummy label.
(b) If the REPEAT-FOR variant is used,
CORC tests for three components in
addition to the repeated label:
(i) The bound variable, i.e. ARG in
the example in 6 (a) .

24

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

(ii) The character "=" or its erroneous variants "EQU," "EQL," and
"EQ."
(iii) Any collection of iteration triples
and single arithmetic expressions,
separated by commas. In any iteration triple, CORC will supply a
single missing argument with
value "1."
(c) As in IF statements, an iIi definite number of relational expressions can be used
in REPEAT-UNTIL statements.

existence of a "nest" of unclosed blocks.
If so, the label of the innermost unclosed
block is used in the current END pseudostatement. Otherwise, the card is
ignored.
( c) If the label in an END pseudo-statement
does not match the label of the innermost unclosed block, the current label is
tested against the labels of the entire
nest of blocks. If a "crisscross" has
occurred, i.e.,
A

• BEGIN

B

• BEGIN

A

END,

(7) BEGIN and END
REPEA T statements and repeatable blocks
require consistent spelling of labels and matching BEGIN/END pseudo-statements. Through
misunderstanding or carelessness, novice programmers commit grie.yous errors in using
REPEAT statements and their blocks. CORC
attempts to correct a certain subset of errors
whose correction probabilities are attractively
high:

CORC inserts the END pseudo-statement for block B before the current
END pseudo-statement for block A.
(d) If the preceding test fails, CORC again
tests the current label against the nest,
looking for a misspelling. If the current
label is misspelled, procedure ( c) is
used. If the misspelling tests fail, CORC
ignores the END pseudo-statement.
(e) If the student has programmed an apparent recursion, CORC prints a warning message but takes no further action.
Although unlikely, there may be a legitimate use for the construction:

(a) If the label of a BEGIN pseudo-statement is missing, the preceding and following cards are tested for clues:
(i) if the preceding card was a REPEAT statement using a yetundefined label, this label is
supplied to the BEGIN pseudostatement.
(ii) If (i) fails to hold and if the following card is labelled, this label
is shifted to the BEGIN pseudostatement.
(iii) Otherwise, a dummy label is supplied, awaiting further clues to the
identity of the repeatable block. If
such clues never appear, the block
is closed by a CORC-supplied END
pseudo-statement after the last
statement card of the deck.
Should an unpaired END
pseudo-statement be subsequently
found, the dummy label (on the
BEG I N pseudo-statement) is
changed to match this unpaired
END label.

(8) READ and WRITE

(b) If the label for an END pseudo-statement is missing, CORC tests for the

Only simple or subscripted variables can appear in READ statements. The subscripts can

A

BEGIN

REPEAT A ...

A

END.

In this situation, CORC makes no attempt to preserve the address linkages
as a truly recursive routine would require. Thus, the program is likely to
terminate in an endless loop.

ERROR CORRECTION IN CORC

be any arithmetic expressions. If a label appears in the argument list of a WRITE statement, the current count of the label usage will
be printed. Constants, reserved words, and special characters are deleted from the argument
lists of READ jWRITE statements.
E. POST-SCANNING SPELLING
CORRECTIONS
The misspelling of labels and variables is
corrected-insofar as CORC is capable-after
scanning an entire deck, with the exceptions
mentioned in section D. After scanning, much
usage and context data have been accumulated.
CORC attempts to resolve suspicious usages by
equating two or more symbols to the same entity.

25

resent the variable in question. Since
any misspelled variable is equated to a
properly-spelled variable after scanning
but before code generation, CORC corrects the misspelling merely by giving
the variables identical pointer-cell contents.
(b) Each new array variable is paralleled by
a pointer-cell containing the base address
of the array. As for simple variables,
only one pointer cell is changed if this
variable is equated to another array
variable.

When the implementation of CORC was
originally under study, heavy weight was given
to the potential benefits from correcting misspellings. Efficient correction of misspellings
seemed to require one of the following similar
strategies:
(a) Two or more complete scans of the
source deck, the first serving primarily
for the collection of data on suspicious
usages such as possible misspellings.

( c) To each label corresponds a pointer-cell
containing a branch instruction to the
appropriate machine location (when the
latter becomes defined during the generation of machine code). For an undefined label equated to some other label,
its cell is filled with a branch instruction to the pointer-cell for the other
label. Thus, execution of GO TO
LABELA, where LABELA is a defined
label, requires two machine-language
branch instructions; if LABELA is an
undefined label equated to LABELB,
three machine-language branch instructions are required.

(b) Encoding' of the source deck into an intermediate language which is tightly
packed and substantially irredundant
but which also permits re-designation of
labels and variables after misspelling
analyses.

The penalty in cor.npilation speed for using
the intermediate language is modest: the average time to complete compilation for CORC
programs-after the last statement card has
been read-is less than one second; few decks
require more than two seconds.

A third alternative to these strategies was to
compile the source deck directly into machine
code, then attempt to repair this code after determining the set of corrigible misspellings.
However, this procedure seemed less flexible to
use and more difficult to program than the first
two strategies; it was rejected from consideration.

( 1) Correction of misspelled labels
If a label has been referenced but never defined in a label field, it is tested for being a
possible misspelling of some defined label. The
defined label with the highest figure of merit is
selected and the following message is printed:

The second alternative was selected and appears in both current implementations of
CORC. Details of the strategy are as follows:
(a) Each new simple variable entered into
the dictionary is paralleled by a pointercell containing the address of a second
cell. This address is ordinarily used
during machine code-generation to rep-

LABELA IS CHANGED TO LABELB,
where LABELA and LABELB are the undefined and defined labels, respectively. If no defined label has a non-zero figure of merit with
respect to the undefined label, the following
message is printed:
LABELA IS UNDEFINED
Subsequently, all references to this label during the generation of machine language are

26

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

treated as "next-statement" branches. At execution time, any GO TO or REPEA T statements referencing this label cause the following messages, respectively:
IN STATEMENT
,
GO-TO NOT EXECUTED.
IN STATEMENT
,
REPEAT NOT EXECUTED.
(2) Correction of misspelled simple variables
(a) If an undeclared variable is never used
in suspicious juxtaposition to parenthesized expressions (cf. subsection D (2)
above), CORC attempts to find a declared simple variable meeting the following criteria:
(i) The undeclared variable is a potential misspelling of the declared
variable.
(ii) The LHS-RHS usage of the declared variable is complementary
to that of the undeclared variable.
By LHS-RHS usage is meant the
following two frequencies:
(aa) Usage on the LHS of an assignment statement, in a
READ statement, or in the
initial dictionary. This usage corresponds to assigning
the variable a new value.
(bb) Usage on the RHS of an assignment statement, in a relational expression, or in a
WRITE statement. This usage corresponds to using the
current value of the variable.
The motivation for LHS-RHS analysis
is the following: if two variables are
spelled almost identically, if one has a
null RHS usage and the other a null
LHS usage, then the a priori probability
that the programmer intended a single
entity is higher than the probabilities
for most alternative misspellings.
CORC does not use LHS-RHS analysis alone to determine the best misspelling possibility. Instead, an increment of
5 is added to the figure of merit of each
declared variable whose null usage complements any null usage of the current
test word, i.e., undeclared variable. Un-

declared variables can be equated only
to declared variables, not to other undeclared variables.
(b) If a declared variable has a null RHS
usage, it may be an erroneous dictionary
spelling of some variable which is thereafter consistently spelled. However,
CORC will announce that the dictionary
spelling is "correct" in this case, after it
detects the misspelling; all "misspelled"
incidences of the variable are equated
to the declared variable.
(3) Examples
Four groups of nearly-matching symbols are
illustrated in Table 1. In. the first group, the
label ABC requires testing for misspelling. The
label ABCDE is a concatenation misspelling,
figure of merit (FOM) = 6. The label ABD is
a random misspelling, FOM = 3. The label BAC
is a permutation misspelling, FOM = 7. The
label AB+ is an illegal-character misspelling,
FOM = 7. Thus, CORC would choose at random between BAC and AB+ for the defined
label to which ABC should be equated.
In the second group, the defined label DEI
has FOM = 15 with respect to the undefined
label DEL
In the third group, three simple variables
have not been declared in the dictionary and
require testing for misspelling. One should remember that only declared simple variables,
i.e., XYZ and XYU, are eligible for identification with the undeclared variables. With respect to XYV, XYZ has misspelling FOM = 3;
to this must be added the null-RHS increment
of 5, making a total FOM = 8. Since XYU has
only the misspelling FOM of 3 with respect to
XYV, XYV is equated to XYZ.
With respect to YXZ, XYZ has a misspelling
FOM of 7, plus the null-RHS increment of 5,
making a total FOM of 12: since XYU has a
zero FOM for YXZ, CORC equates YXZ to
XYZ.
With respect to YXW, neither XYZ nor
XYU has a positive FOM; thus, YXW is not
equated to a declared variable.
In the fourth group, GHI was invariably
used as a vector variable. Since it is a res em-

27

ERROR CORRECTION IN CORC

TABLE 1. SAMPLE PROBLEMS IN POST-SCANNING SPELLING CORRECTIONS
LHS
Usage

RHS
Usage

Usage as
Vector

Usage as
Matrix

1
2

o
1

1

1

o
o

o
o
o
o

o
o

2

o

2
2
2

4

2

o

Symbol

Type

Declared/
Defined?

ABC
ABCDE
ABD
BAC
AB=i=

label
label
label
label
label

no
yes
yes
yes
yes

DEl
DEI

label
label

no
yes

XYZ

YXW

simple variable
smp. var.
smp. var.
smp. var.
smp. var.

yes
yes
no
no
no

GHI
GH1
GHJ
GHK

vector variable
smp. var.
smp. var.
smp. var.

yes
yes
yes
no

2
2
1
2

XYU
XYV
YXZ

blance misspelling of the declared vector variable GHI, it is equated to this variable and its
status changed to a vector. GHJ was used 67
percent of the time as a vector variable; since
it is a random misspelling of GHI, it is equated
to the latter. GHK has a positive figure of
merit with respect to each of the three preceding entries. However, GHK was never used as
a vector variable. Since the GHJ and GHI have
been set to vector status, GHK can no longer
be equated to either of them; it thus remains a
distinct, undeclared variable.
V. ERROR MONITORING DURING
EXECUTION
CORC prefaces each compiled statement by
a sequence of machine language instructions to
monitor object-program flow. Additional "overhead" instructions for monitoring appear in
four types of statements: labelled statements,
statements containing subscripted variables,
REPEAT statements, and READ statements.
The monitoring effort has three objectives:
(a) Prevent the object program from overwriting the CORC compiler/monitor or
itself;

1

4
2

o

Total
Usage

1

3
2

o
o

1
2

o
o
o

4
4

o

3
4

(b) Continue the execution phase through
untested code when the flow of the obj ect program becomes confused (through
misuse of REPEA T statements or incomplete GO TO, IF, and REPEAT
statements) ;
( c) Provide explicit diagnostic messages for
each error detected at execution time,
followed by an unconditional postmortem dump of simple-variable values
and other helpful data. 6 §
A. THE GENERAL MONITOR
(1) CORC accumulates a count of all statements executed, the statement count.
This count is printed in the post-mortem
dump, together with the number of errors committed during the entire program and the total elapsed time for the
program. The statement count has two
minor functions: to aid debugging of
§ Many debugging languages such as BUGTRAN
(cf. 6) furnish trace and snapshot information if requested by the programmer. CORC furnishes such
diagnostic information unconditionally; the overhead
instructions cannot be suppressed after programs are
debugged.

28

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

short programs in conjunction with the
"label tallies" (see (3) below) andlooking towards future CORC research-to exhibit the different speeds
of execution for various programs, e.g.,
with/without heavy subscript usage.
The per-statement overhead of the statement count is 13.2 microseconds, comprising a single "tally" instruction.
(2) Before executing each statement, its

source-card serial number (converted to
a binary integer) is loaded into an index
register. Execution-phase messages resulting from this statement retrieve the
serial number and print it as an introductory phrase to each message, e.g.,
IN STATEMENT 1234, THE PROGRAM IS STOPPED.
Each load-index instruction requires 3.3
microseconds. The percentage of execution time devoted to items (1) and (2)
is usually less than 3 percent; see (5)
below.
(3) The execution of each labelled statement
is tallied, by label. These tallies are
printed in the post-mortem dump; they
show the progress of the program,
which branches were never taken, endless loops, etc. Each tally instruction
requires 13.2 microseconds.
(4) At each labelled statement, a two-position console switch is interrogated. In
the normal position, the switch has no
effect on program flow. If set, the
switch causes the program to terminate
at once, printing the message,
IN STATEMENT
, THE
PROGRAM IS MANUALLY INTERRUPTED,
followed by the usual post-mortem
dump.
Thus, any endless loop can be manually interrupted without stopping the
computer, although this is rarely necessary. (Cf. the subsequent section on
Terminations.) The switch interrogation is required only at labelled statements, since endless loops must include
at least one label. Each switch "interro-

gation requires 7.2 microseconds. The
percentage of execution time devoted to
items (3) and (4) is usually less than
1 percent, as exhibited by the following
analysis.
(5) Assuming that 100,000 statements are
executed per minute, an average statement requires some 600 microseconds.
Since items (1) and (2) aggregate 16.5
microseconds per stateTI?-ent, the overhead for these items is 2.75 percent. Assuming that every fourth statement is
labelled, items (3) and (4) are incurred
once every 2400 microseconds on the
average; since these times aggregate
20.4 microseconds, their overhead is
approximately 0.8 percent.
(6) No tracing features are offered in
CORC. If a student requires more diagnostic data than is already furnished,
he is encouraged to use WRITE and
TITLE statements generously. However,
he is also warned to print such data
compactly:
(a) If two consecutive pages print less
than 30 percent of the 14,400 char~
acter spaces available (2 pages X
60 lines/page X 120 characters/
line), CORC prints out the follow~
ing message:
-TRY TO USE MORE EFFICIENT WRITE AND TITLE
STATEMENTS AND AVOID
WASTING SO MUCH P APER(b) A page-count limit is set for all normal programs; when this limit is
reached, the program is terminated
at once.

(7) Each untranslatable source card has
been replaced by a TITLE card during
scanning, bearing the following message:
CARD NO.
NOT EXE~
CUTED, SINCE UNTRANSLATABLE.
These messages remind the programmer
of omitted actions during the execution
phase.

ERROR CORRECTION IN CORC

B. MONITORING ARITHMETIC ERRORS
CORC uses conventional procedures for
arithmetic overflow junderflow errors, but
somewhat novel procedures for special-function
argument errors. The machine traps of the
computer detect overflow junderflow conditions,
which are then interpreted into CORC messages:
(1) IN

STATEMENT
EXPONENT UNDERFLOW. (CORC zeros
the accumulator and proceeds.)
(2) IN STATEMENT _ _ _ _ _ , EXPONENT OVERFLOW. (CORC sets
the accumulator to 1 rather than to some
arbitrary, large number. This tends to
avoid an immediate sequence of identical messages, allowing the execution
phase to survive longer before termination from excessive 'errors.)

, DIVI(3) IN STATEMENT
SION BY ZERO. ASSUME QUOTIENT
OF 1.0.
For each special function error, CORC
creates an acceptable argument and proceeds,
instead of taking drastic action, e.g., immediate
program termination, as many monitor systems
do.
(4) IN STATEMENT

, {'

E~P
t
SIN j

ARGUMENT TOO LARGE. THE RESULT IS SET TO 1.
(5) IN

STATEMENT
, LN 0
YIELDS (or . . . LOG 0 YIELDS) 1.

(6) IN STATEMENT

/ LN }
LOG
, lSQRT

j

OF NEGATIVE ARGUMENT.
ABSOLUTE VALUE IS USED.

THE

(7) IN STATEMENT
, ZERO TO
NEGATIVE POWER-ASSUME 1.
(8) IN STATE ME-NT
. , $-NEGATIVE ARGUMENT. THE RESULT
IS SET TO 1.
C. TERMINATIONS
Two abnormal terminations were discussed
in the General Monitor section. Altogether,

29

there are five terminations, caused by the following events:
(1) Console switch set.
(2) Page count limit exceeded.
(3) Time limit exceeded.

Overflow of the
real-time clock produces a machine trap
which is intercepted by CORC. For each
program, a time limit ( ordinarily of
sixty seconds) is set. (The tab cards
separating the source decks can bear
any non-standard page-count and time
limits. II) When this time is exhausted,
the program is terminated with the following message preceding the postmortem dump:

IN STATEMENT _ _ _, THE
TIME IS EXHAUSTED.
Endless loops are terminated by this
procedure, avoiding the necessity of
operator intervention with the console
switch.
( 4) Error count too high. After each program has been compiled, the total error
count is interrogated. When it exceeds
100, then or thereafter, the program is
terminated with the appropriate message.
(5) Normal execution of STOP. The message
IN STATEMENT _ _ _, THE
PROGRAM IS STOPPED
identifies which STOP statement-possibly of several such statements-has
been met. For all terminations, the postmortem dump includes the following:
(a) The final values of all simple variables. Since arrays may comprise
thousands of cells, CORC cannot afford paper or machine time to dump
them too.
(b) The usage tallies for all labels.
(c) The first fifteen (or fewer) data
card images.
(d) The error-count, statement-count,
and elapsed-time figures.

II Ordinarily the tab cards are blank. A special rerun drawer is used for programs which require unusual
output volume or running time; the computing center
inserts special tab cards with non-standard page-count
and time limits before these decks.

30

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

D. MONITORING SUBSCRIPTED
VARIABLES

(b) Negative numbers are also changed
to 1:

One of CORC's most radical innovations is
the universal monitoring of subscripts. CORC
is attempting to trade execution efficiency for
two other desiderata:

IN STATEMENT
, SUBSCRIPT FOR VARIABLE _ _
IS NEGATIVE. IT IS SET TO 1.
(c) If non-integral, the subscript is
rounded to an integer. If the roundoff error is less than 10-9 , no error
message is incurred; earlier calculations may have introduced small
round-off errors into a theoretically
exact subscript. If the round-off
error exceeds 10-9 , the following
message appears:

(a) Protection of the in-core compiler/monitor against accidental overwriting by
student programs.
(b) Provision of complete diagnostics on all
illegal subscripts: in which statements,
for which variables, and the actual erroneous values of the subscripts.
CORC's excellent throughput speed has depended on infrequent destruction of the in-core
compiler /monitor; in the author's opinion, subscript monitoring is CORC's most important
protective feature.
Criterion (b) -full diagnostic information
on subscript errors-is also of significance,
since erroneous subscript usage comprises at
least 30 percent of all execution-phase errors.
Students quickly learn that these errors are
among the easiest to commit-although they
are spared the hardship of their detection and
isolation.
Subscript usage is monitored as follows:
(1) Each reference to a subscripted variable
incurs a load-index instruction corresponding to the dictionary entry for this
variable. If subsequent troubles arise
in the subscripts, CORC can retrieve the
name and other particulars of the variable by using this index register.
(2) The subscript is an arithmetic expression, whose floating point value is transmitted in the machine accumulator to a
closed subroutine for un floating numbers.
(3) The latter subroutine checks for a positive, integral subscript.
(a) 0 is changed to 1 with the following
message:
IN STATEMENT
, SUBSCRIPT FOR VARIABLE _ _
IS O. IT IS SET TO 1.

IN STATEMENT
, SUBSCRIPT FOR VARIABLE _ _
IS NON -INTEGRAL. IT IS
ROUNDED TO AN INTEGER.
(d) After verifying (or changing to) a
positive, integral subscript, the
closed subroutine for unfl.oating
subscripts returns control to the
size test peculiar to this variable.
(4) The subscript is tested for exceeding the
appropriate dimension of the array variable. Thus, the first subscript of a
matrix variable is tested against the
declared maximum number of rows, and
the second subscript is tested against the
declared maximum number of columns;
a vector subscript is tested against its
declared maximum number of elements.
An excessive value incurs one of the
three following messages:
IN STATEMENT _ _ _ _ __
IS THE

{S~~~JD}
SUBSCRIPT FOR
VECTOR

THE VARIABLE
. SINCE
IT IS EXCESSIVE, IT IS REPLACED
BY THE VALUE _ __
The second blank in the message is filled
with the current execution-phase value
of the subscript. The. third and fourth
blanks are filled with the variable name
and its maximum allowable SUbscript.
This action serves to repair the erroneous subscript but hardly to correct it.

ERROR CORRECTION IN CORC

The overhead for each error-free
usage of a subscript is 85 microseconds.
With obvious waste of effort, this overhead is incurred six times for the statement:
LET A (I,J) = B (I,J) + C (I,J) .
Future versions of CORC may treat
such repeated usage of identical subscripts with more sophistication. However, one must remember that "A," "B,"
and "C" could have different maximum
dimensions, in this example. A row subscript legal for "A" might be excessive
for "B," etc. Also, in statements such as
LET A(I) = A(I + 1),
one must corroborate the legal size of
"(I + 1)" as well as that of "I."
The per-program overhead of subscript monitoring varies between 0 percent and 90 percent of the execution
time, as one might guess. An average
overhead of 15 percent has been measured for a representative batch of
programs.
E. MONITORING REPEATED BLOCKS
(1) Each repeatable block is legally used

only as a closed subroutine. Hence, the
exit instruction from the block-machine
code generated by its END pseudostatement-can be used to trap any
illegal prior branch to an interior statement of the block. (One cannot enter
a block by advancing sequentially
through its BEGIN pseudo-statement.
However, one can illegally branch to an
interior statement of a repeatable block
from a statement physically outside the
block.) When the block is properly
entered by a REPEAT statement, the
address of the exit instruction is properly set; after the repetitions have been
completed, a trap address is set into this
exit instruction before the program advances beyond the REPEAT statement.
Thus, program flow can physically
leave and re-enter a repeatable block in
any complex pattern, as long as the block
has been properly "opened" by a REPEAT statement and has not yet been

31

"closed" by completion of the repetitions. In this respect, CORC allows more
complex branching than most compilers.
When the exit instruction traps an
illegal prior entry, CORC prints the following message:
IN STATEMENT
, AN ILLEGAL EXIT FROM BLOCK _ __
HAS JUST BEEN DETECTED. IN
SOME PREVIOUS GO-TO STATEMENT, THE BLOCK WAS ILLEGALLY ENTERED. THE PROGRAM
CONTINUES AFTER THE END
STATEMENT OF THIS BLOCK.
(2) To protect against various illegal usages

of the bound variable in REPEAT-FOR
statements, CORC pr"e-calculates the
number of repetitions and conceals this
count from the repeatable block; the
count is fetched, decremented, and
tested only by the REPEAT statement.
This discussion is amplified in (d) below.
Consider the statement: REPEAT B
FOR V = (E 1 , E;!, E3):
(a) If E 1 ::;:;:: E 3, the block is executed
once.
(b) Otherwise, if E2 is zero, CORC
prints the following message: IN
STATEMENT
, IN REPEAT-FOR TRIPLE, SECOND
ARGUMENT IS O. THE REPEAT
IS EXECUTED ONCE.
(c) Otherwise, if (E3 - E 1 )/E 2 is negative, CORC prints the following
message:
IN STATEMENT
, IN
REPEAT-FOR TRIPLE, SECOND
ARGUMENT HAS WRONG SIGN.
THE REPEAT IS EXECUTED
ONCE.
(d) Otherwise, CORC uses the count
E3 - El ]
.
E2
to determIne the num[
ber of repetitions. This count is reduced by 1 for each iteration, irrespective of the subsequent values of
"V," "E2'" or "E3." Novice programmers often manipUlate "V" inside repeatable blocks; CORC pre-

32

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

vents many potentially endless loops
by ignoring this manipulation.
F. MONITORING DATA-CARD INPUT
The reading and checking of data cards was
introduced in Section IV. In brief, a READ
statement causes the following steps to occur.
(1) A new card is read in; if it is of type 1,
CORC assumes it to be the first card of
the next source deck. Thereupon, the
following messages appear:
THE INPUT DATA HAS BEEN
EXHAUSTED. IN STATEMENT
_ _ _, CORC SUPPLIES A
DATA CARD FOR THE VARIABLE
_ _ _ WITH VALUE 1.0.
Thus, CORC enters a value of 1 for the
READ variable and proceeds with the
program; subsequent READ statements
incur only the second message above.
(2) If the new card is neither type 1 nor
type 4 (i.e., the correct type), CORC
prints this message:
IN STATEMENT
, THE
CARD IS ASSUMED TO BE A
DATA CARD.
(3) If the new card is type 4-possibly as
the result of (2) above-CORC checks
the variable field against the variable
name in the READ statement. If they
disagree, CORC considers the name in
the READ statement to be correct; the
following message is printed:
IN STATEMENT
, THE
VARIABLE
WAS READ
FROM THE CARD. THE VARIABLE IN THE READ STATEMENT
WAS _ _ __
(4) When the variable names have been
reconciled CORC checks for none, one,
or two subscripts on the card, as appropria te to the READ variable. Missing
or erroneous subscripts incur the following message:
IN STATEMENT
THE
SUBSCRIPT (
,
) WAS
READ FROM THE CARD'. THE

SUBSCRIPT IN THE READ STATEMENT WAS (
),
or
IN STATEMENT
, THE
SUBSCRIPT (
) WAS READ
FROM THE CARD. THE SUBSCRIPT IN THE READ STATE).
MENT WAS (
In every case, CORC uses the value in
the READ statement.
VI. CONCLUSIONS
A. EXPERIENCE IN PRACTICE
Throughout the 1962-63 academic year,
CORC was in "pilot project" status; in 1963-64
CORC was established as the fundamental computing tool for undergraduate engineering
courses at Cornell. In the spring semester of
1964, over 15,000 CORC programs were run,
peaking at 2500 programs in one week.
The performance of CORC programmers far
surpassed the preceding years' performance by
ALGOL programmers at Cornell in such respects as speed of language acquisition, average
number of re-runs per program, and average
completion time for classroom assignments.
Actual processing time can be evaluated from
the following figures, which are rough estimates based on last year's experience with
CORC programs:
(a) Average processing time (tape/tape configuration)-500 programs per hour.
(b) Average machine-code execution rate100,000 source-language statements per
minute, for a random sample of twenty
student programs.
(c) Average compilation time for CORC programs-less than two seconds.
(d) Turnaround time for programs-one
day or less, with rare exceptions.
The author has automated the operation of
the compi,ler/monitor to the following degree:
only a random machine malfunction can cause
the computer to halt. Since programming errors
cannot produce object code that erroneously
diverts control outside the CORC system, the

ERROR CORRECTION IN CORC

role of the machine operator is merely to mount
input tape reels and remove output tapes: the
computer console needs almost no attention.
A few error-detection procedures were
altered during 1962-64, primarily to make
diagnostic messages increasingly explicit. A
new CORC manual was prepared for instructional use in 1963-64; this manual omitted any
catalogue of errors, since the author expected
that the compiler/monitor systems could describe the errors-and the corresponding remedial actions-in satisfactory detail.
CORC has imposed a modest load on the two
computers at Cornell. The computing center
is satisfied that neither FORTRAN nor ALGOL
can lighten this load, which is rarely as much
as two hours of CORC runs daily. (FORTRAN
and ALGOL systems have greater capability
but require more' facility in programming. The
class of problems for which CORC has been
developed would not warrant the expenditure
of time required to program in the advanced
languages.) In the author's opinion, this small
commitment of resources is well-justified by
the educational value of the CORC project.
B. POTENTIAL UTILITY OF CORC
The author feels that many universities and
technical colleges can profitably utilize CORC
for introductory instruction. The designers of
CORC are convinced that a simple language is
well suited for initial study; many Cornell students have already easily advanced to FORTRAN or ALGOL after mastering CORC.
With respect to the error-detection and errorcorrection features, CORC demonstrates the
modest effort required to furnish intelligible
messages and how little core memory and
machine time are consumed. Many CORC errormonitoring procedures deserve consideration in
future implementations of compiler languages:
unconditional counts of statement labels (or
statement numbers), source-program citations
in diagnostic messages, and brief dumps following all program terminations. The monitoring of subscripts would not be burdensome if
the latter were carried as integers-index
registers are used in most current compiled
codes. Ninety percent of the CORC subscript-

33

usage execution time is devoted to unfloating
numbers, and only ten percent is devoted to
testing these numbers for size.
C. POTENTIAL IMPROVEMENTS IN CORC
Four areas for significant improvements in
CORC are as follows:
(1) Identification of integer-mode variables
by their context. Index registers can
then be used for arrays and loop counting as in FORTRAN.
(2) A problem-grading mechanism. Each instructor can assign a scale of penalties
for various errors. CORC will process
his batch of student programs and assign the appropriate grades.
(3) A permanent file for tabUlating errors.
Each time that CORC programs are
run, an auxiliary output device-paper
tape or punched cards-will record the
serial number of each error committed.
Periodically, these tapes or cards will be
summarized. This data will furnish statistical estimates for the a priori occurrence probabilities of the errors.
(4) Remote consoles. These are much discussed in current computer literature,
and they hold unusual promise for highvolume university operation. Students
would type in their programs from keyboards distributed around a campus
covering hundreds of acres. Either these
programs would interrupt a large computer programmed for real-time entry,
or they would be stacked on tape/disk
by a satellite computer. Perhaps results
could be printed/typed at these remote
stations by the satellite computer.
The author and his colleagues are well aware
of shortcomings in the language. However, they
intend to resist changes which increase the
power of the syntax at the expense of linguistic
simplicity. Changes on behalf of additional
simplicity or clarity are willingly accepted.
Continuing efforts will be made to improve the
clarity and explicitness of the djagnostic messages, so that classroom instruction can be
further integrated with output from the
computer.

34

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

VII. ACKNOWLEDGMENTS
The author is a former student of Professors
Conway and Maxwell; he gratefully acknowledges their assistance to the error-correction
project.
Other contributors were R. Bowen, J. Evans,
C. Nugent, J. Rudan, and R. Sanderson.

2. DAMEREAU, F. J., "A Technique for Computer Detection and Correction of Spelling
Errors," Gomm. AGM, 7, 171 (1964).
3. DAMEREAU, F. J., op. cit.
4. Ibid.

VIII. REFERENCES

5. BLAIR, C. R., "A Program for Correcting
Spelling Errors," Inform. and Gtrl., March
1960, pp. 60-67.

1. CONWAY, R. W., and MAXWELL, W. L.,
"CORC: The Cornell Computing Language,"
Comm. ACM, 6, 317 (1963).

6. FERGUSON, H. E., and BERNER, E., "Debugging Systems at the Source Language
Level," Gomm. AGM, 6, 430 (1963).

THE COMPILATION OF N,ATURAL LANGUAGE TEXT
INTO TEACHING MACHINE PROGRAMS*
Leonard Uhr
University of Michigan
Ann Arbor, Michigan
Consultant, System Development Corporation
Santa Monica, California
appears to be an acceptable minimum of conventions, and then compile it (TMCOMPILE),
and (2) interpret the compiled program, thus
giving a running program that interacts with
students (TEACH).

Programmed instruction, via digital computers, must be made as painless as possible,
both in the writing and the changing of programs, for the author of the programmed text.
Otherwise we will only slowly accumulate a
body of expensive programs that we will never
succeed in testing adequately. It is crucial,
given that we are investigating programmed
instruction at all, that it become easy to write
and re\vrite the programs.

In effect, then, this is a compiler-interpreter
for programs that are written in relatively unconstrained natural language (no matter
which), so long as they are oriented toward
the specific problem of programmed instruction, in that they conform to the format constraints described below. It is thus similar in
spirit to problem-oriented compilers. Similar
compilers have been coded at IBM (referred to
in Maher3 ) and SDC (Estavan 1 ) . Despite what
appear to be a significantly simpler logic and
fewer conventions that must be learned, the
present compiler, by means of its branching
features, appears to handle a larger set of programs than IBM's, uses a somewhat simpler
set of formatting rules, and offers the ability
to make loose, partially ordered andlor unordered matches, to use synonyms, and to delete
and insert questions conveniently. Estavan has
written a program that assembles instructions
telling a student where to look in a pre-assigned
textbook. This program is restricted to multiple-choice questions.

A great deal of research is needed as to the
effectiveness of different types and sequences
of items; therefore, programs must be flexible
and easily changed. A large number of different programs will be needed, from many different content areas. These programs should
be written by people whose competence is in
these content areas. Such people cannot be expected to learn about computers, or about programming. Ideally, the problems of writing a
program for computer teaching of a course in,
for example, logic, French, botany, or computer
programming should be no greater than the
problems in writing a good book.
This paper describes a set of two programs
that have been written to (1) allow someone
to write a program in his content area without
having to learn anything new other than what

* The author would like to thank Ralph Gerard for bringing the magnitude of the practical need for such a
compiler to his attention, William Dttal for discussions of some of the features that such a compiler should have,
and Peter Reich for suggestions as to format.
35

36

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Description of the Program and the Inputs
It will Accept
If he wishes, the author of a programmed
text might sit down at the keypunch or flexowriter and compose in ihteraction with the
computer. Or he might retire to his study
and write down the set of information, questions, alternate possibilities for answers, and
branches that he wants, and ask a keypunch
operator to put these onto cards for compiling.
In either of these two modes he must follow a
few conventions, as described below. Or, if he
insists upon his freedom, he might simply be
asked to write his text in any way he desired,
subject only to the restriction that it follow the
very general format of containing only: (1)
statements giving information to the student,
and (2) questions about this information,
either (a) multiple-choice, (b) true-false, or
(c) correctly answerable in a concise way, with
the various acceptable crucial parts of answers
listed by the author right after the question
and acceptable synonyms listed in a synonym
dictionary. In addition, for each alternative
answer (or set of alternatives), the author
should say what question or statement of fact
the program should ask of the student next.
(Or, alternatively, if the author does not bother
to specify this, the program will simply go to
the next item-the next statement or question-according to the order that the author
has given them.) A text written in such a way
could easily be formatted by the keypunch operator who punched it onto cards.
In general, then, the type of text that the
author must write must be a set of strings
which are either statements (of information)
or questions. The questions must be followed
by the alternate possible answers, and each set
of alternate possible answers must be followed
by an explicit or implied branch to another
string in the text. Figures lA and 2A give examples of such texts.
If the author is willing to go to a little bit of
trouble, he will produce the texts of Figures lA
and 2A in a form that will be compiled directly. Figures IB and 2B show what these
texts would look like then.
If the author makes use of the computer as
he writes, he can delete strings that he would

like to change, by means of an instruction to
"erase string i,-" and then, if he wishes, write
in the new version of string i. He can also ask
the program to begin teaching him (or others) ,
to collect data on successes and failures, and to
give him a feeling of the program from the
student's point of view.

Rules for Format
A. The peculiarities of this language that the
user must learn are as follows:
1. A new item must be identified by
*NAME.
2. Items are composed of elements, and all
elements are bounded by slashes (I).
3. The following things are elements: (a)
the entire statement giving information
or advice, (b) the entire question, (c)
each alternative possible answer to a question, (d) the branch to the next string to
be presented to the subject.
4. The branch element must start with an
asterisk (*).

B. If he so desires, the author can gain a
good bit of additional flexibility by using
the following additional features of the language:
5. The NAME is optional: if none is given,
the program names this string with the
integer one greater than the last integer
name given. The name can either be an
integer (in which case care must be taken
that it is never automatically assigned by
the program) or a string of alphanumeric
character.
6. An "otherwise" branch (**) for the entire question is optional, and goes at the
end of the answer portion of a question.

7. Partial matches between a student's answer and an acceptable answer will be
accepted if they fulfill the following criteria: (a) if a word in the answer is
listed in a synonym dictionary that has
been read into the program as equivalent
to a word that the student uses, (b) if
the correct answer is a connected substring of the student's answer, (c) if a
correct answer is specified as a list of substrings separated by commas and pe-

THE COMPILATION OF NATURAL LANGUAGE TEXT
A.

In Need of Pre-editing.

TO TELL WHEl'HER AN OBrAINED DIFFERENCE IS SIGNIFICANT, YOU MUST KNOW
WHEl'HER IT IS IARGER THAN MIGHT ARISE FROM SAMPLING VARIABILITY.

SAMPLING

VARIABILITY IS DUE TO ACCIDENTAL OR CHANCE FACTORS THAT AFFECT THE
SELECTION OF OBSERVATIONS INCLUDED IN THE SAMPIE.

THESE CHANCE FACTORS

OBEY THE rAWS OF PROBABILITY; FROM THESE rAWS YOU CAN CALCUIATE HOW BIG
A DIFFERENCE MIGIn' BE EXPECTED BETWEEN TWO SAMPIES DRAWN FROM THE SAME
THE rAWS OF PROBABILITY APPLY ONLY TO SAMPLrn THAT CAN BE

POPUIATION.

SHOWN TO BE RANDOM SAMPIES.

A RANDOM SAMPIE MUST BE
THE

-

SE~

IN A WAY THAT GIVES EVERY OBSERVATION IN

BEING SAMPIED AN EQUAL CHANCE OF BEING INCLUDED.

ANSWER:

POPUIATION.

WHEN THE NAMES OF THE STUDENTS IN A COLLEGE ARE WRITTEN ON IDENTICAL

SLIPS AND ARE DRAWN
DRAWN IS A
AN

-

-

-

our

OF A HAT BY A BLINDFOIDED PERSON, THE SAMPIE SO

SAMPLE BECAUSE EACH MEMBER OF THE POPUIATION WOUID HAVE

OF BEING INCLUDED.

ANSWER:

A SAMPIE THAT IS Nor RANDOM IS BIASED.

RANDOM ••• ~UAL CHANCE.

IF SOME OF THE STUDENTS'

NAMES WERE Nor IN THE HAT, THE SAMPLE DRAWN WOUID BE
ANSWER:

B.

BIASED.

Prepared for Automatic Compilation.

*/TO TELL WHETHER AN OBI'AINED DIFFERENCE IS SIGNIFICANT, YOU MUST KNOW
WHErHER IT IS IARGER THAN MIGHT ARISE FROM SAMPLING VARIABILITY.

SAMPLING

VARIABILITY IS DUE '{'O ACCIDENTAL OR CKA..NCE FACTORS THAT A.FFECT THE
SELECTION OF OBSERVATIONS INCLUDED IN THE SAMPLE.

THESE CHANCE FACTORS

OBEY THE lAWS OF PROBABILITY; FROM THESE rAWS YOU CAN CALCUIATE HOW BIG
A DIFFERENCE MIGHT BE EXPECTED BETWEEN TWO SAMPLES DRAWN FROM THE SAME
POPUIATION.

THE lAWS OF PROBABILITY APPLY ONLY TO SAMPLES THAT CAN BE

SHOWN TO BE RANDOM SAMPIES/

*/A RANDOM SAMPLE MUST BE SELECTED IN A WAY THAT GIVES EVERY OBSERVATION
IN THE

BEING SAMPLED AN ~UAL CHANCE OF BEING INCLUDED/POPUIATION/

-

* /WHEN THE NAMES OF THE STUDENTS IN A COLLEGE ARE WRITTEN ON IDENI'ICAL
SLIPS AND ARE DRAWN

our

OF A HAT BY A BLINDFOIDED PERSON, THE SAMPIE SO

DRAWN IS A

-

SAMPIE BECAUSE EACH MEMBER OF THE POPUIATION WOUID

HAVE AN

-

OF BErm INCLUDED/RANDOM. EQUAL CHANCE.=l/

-

*/A SAMPIE THAT IS Nor RANDOM IS BIASED.

IF SOME OF THE STUDENTS'

NAMES WERE Nor IN THE HAT, THE SAMPLE DRAWN WOUID BE

-

/BIASED/

Figure 1. A Sequence Typical of Those Found in Programmed Instruction
Texts.
Figure la. In Need of Pre-editing.
Figure lb. Prepared for Automatic

Compilatio~.

37

38

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

A.

In Need of Pre-editing.

JOHN LIKES MARY BROWN.
WHO DOES JOHN LIKE?

MARY BROWN. B •

MARY. A.

A.

MARY WHO?

B.

Bur MARY LIKES PHIL AND PHIL LIKES BETTY.

BROWN. B; OTHERWISE TO 1ST

DOES MARY LIKE BETTY?
C.

YES OR NO.O.

DON'T KNOW. D.

YOU REALLY CAN'T KNOW FROM WHAT YOU'VE BEEN TOLD.

IF ONE PERSON LIKES

A SECOND PERSON WHO LIKES A THIRD, IT'S NOT CERTAIN THAT THE FIRST PERSON
LIKES THE THIRD.
D.

JOHN LIKES BETTY TOO, ALONG WITH JANE, AND CAROL.

WHO DOES JOHN LIKE?
E.

GENERALIZE.

JOHN LIKES F.

RIGHT.

•

GIRLS, OR WOMEN.F.

WHAT DO BETTY, MARY, JANE AND CAROL HAVE IN COMMON?
GIRIS, OR WOMEN. F •

WHO JOHN LIKES. G •

BUl' NOT NECESSARILY ALL.

YES, OR MAYBE.H.
G.

BErTY, MARY, JANE, OR CAROL.E.

DO YOU THINK JOHN LIKES MOST GIRIS?

NO, OR DON'T KNOW, OR NOT ENOUGH INFORMATION.I.

IT DOESN'T ADD MUCH TO

SAY "JOHN LIKES THAT WHICH JOHN LIKES. tI

SUCH A

STATEMENl' IS CALLED A TAUTOIOOY -- THERE'S NO POINT IN SAYING THE SECOND
HAlF ONCE YOU'VE SAID THE FIRST HAIF. I.
H.

NO.

THIS IS A VERY FALLIBLE AND UNLIKELY SORr OF INFERENCE TO DRAW.

FOR INSTANCE, JOHN CERrAINLY DOESN'T EVEN KNOW MOEn' GIRLS.

GENERALIZATIONS

OF THIS SORT ARE RISKY AT BEST, Bur AT THE LEAS!' YOU MUS!' KNOW MUCH MORE
AOOtJr THE TarAL GROUP -- GIRIS -- AND ITS REIATION TO JOHN AND HOW THE
PARrICULAR EXAMPLES GIVEN WERE CHOSEN.
I.

IT SO HAPPENS THAT JOHN DOES LIKE MOST OF THE GIRLS THAT HE KNOWS.

MEN AND OOYS DO.

Bur THERE ARE AIHIAYS EXCEPl'IONS.

DOESN'T LIKE ALICE.

msr

FOR EXAMPLE, JOHN

ON THE OTHER HAND, HE USUALLY LIKES THE GIRLS THAT

PHIL LIKES.
IS I'i' LIKELY THAT JOHN LIKES BETTY?
J.

RIGHT.

YES. J •

orHERWISE. K.

SINCE PHIL LIKES BErTY AND JOHN TENDS TO LIKE GIRLS AND TENDS

TO LIKE GIRLS THAT PHIL LIKES. L.
K.

THERE IS SOME REASON TO THINK YES, SINCE PHIL LIKES BETTY.

L.

READ PAGES 7-13 OF THE TEXT.

Figure 2. A Contrived Example Exhibiting Some Features of the Program.

THE COMPILATION OF NATURAL LANGUAGE TEXT

39

* / JOHN LIKES MARY BROWN/
*/WHO DOES JOHN LIKE/MARY BROWN/*B/MARY/*A/**l/
*A/MARY WHO/BROWN/*B/**l/
*B/Bur MARY LIKES PHIL AND PHIL LIKES BNrTY/
*/DOES MARY LIKE BETTY/YES/NO/*C/N.T.KNOW.=2/*D/
*C/YOU REALLY CAN'T KNOW FROM WHAT YOU',VE BEEN TOrno
A SECOND PERSON WHO LIKES A THIRD,

rr' S

IF ONE PER.,~N LIKES

Nor CERTAIN THAT THE FIRsr PERSON

LIKES THE THIRD/
*D/JOHN LIKES BRrI'Y TOO, ALONG WITH JANE, AND CAROL/
*/WHO DOES JOHN LlKE/BETTY,MARY,JANE,CAROL,=O/*E/GIRLS,WOMEN,=O/*F/
WHAT DO BEl'rY, MARY, JANE, AND CAROL HAVE IN COlIJIIJW/

*E/GENERALlZE.

* / JOHN. LIKES-/G IRIB, WOMEN, =0/ *Ii' /WHO. JOHN .·LIKES. =2/ '*G / **11
*Ii' fRIGHT.

Bur Nor NECESSARILY ALL.

DO YOU THINK JOHN LIKES MOOT GIRIB/

YES/MAYBE/*H/NO/DON'T KNOW/NOT ENOUGH INFORMATION/*I/
*G/I!!! DOESN'T ADD 'MUCH TO SAY ItJOHN LIKES THAT WHICH JOHN LIKES.

Tf

SUCH

A STATEMENr IS CALLED A TAurOIOOY -- THERE1'S NO POINT IN SAYING THE SECOND
HArF ONCE YOU'VE SAID THE FIRST HAIF/*I/

*H/NO.

THIS IS A VERY FALLIBLE AND UNLIKELY SORr OF INFERENCE TO DRAW.

FOR INSTANCE, JOHN CERTAINLY DOESN'T EVEN KNOW MOST GIRIB.

GENERALIZATIONS

OF THIS SORr ARE RISKY AT BEST, Bur AT THE !FAST YOU MUgI' KNOW

~H

MORE ABOtJr

THE TOTAL GROUP -- GIRIB -- AND ITS REIATION TO JOHN AND HOW THE PARTICUIAR
EXAMPIES GIVEN

WERE

CHOSEN/

*I/rr SO HAPPENS THAT JOHN DOES LIKE MOST OF THE GIRIB THAT HE KNOWS.
MEN AND BOYS DO.

Bur THERE ARE ALWAYS EXCEPI'IONS.

DOESN'T LIKE ALICE.
PHIL LrKFf3/

MOST

FOR EXAMPIE, JOHN

ON THE OTHER HAND, HE USUALLY LIKES THE GmIB THAT

(Cont inued )

40

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

*/IS IT LIKELY THAT JOHN LIKES BFJJ!rY/YF13/*J/**K/
*J/RIGHT.

SINCE PHIL LIKES BErrY AND JOHN TENDS TO .LIKE GIRIB AND TENOO

.TO LIKE GIRLS THAT PHIL LIKES/ *L/
*K/THERE IS SOME REASON TO THINK YES, SINCE PHIL LIKES

mm'Y/

*L/READ PAGES 7-13 OF THE TEY:r/

Figure 2b. Prepared for Automatic Compilation.

riods, and ending with a number, e.g.,
/XX,XX,XX.XX.=N/, the program will
look for an unordered match of the substrings terminating in commas, and an
ordered match (starting from the first
ordered substring) of the substrings terminating in periods. It will count the
number of such matches it gets, and, if
this is greater than N, it will accept the
student's answer.
To summarize briefly, a new item must start
with an *. Its elements (statement of fact,
question, alternate answer, branch) must be
bounded by /. An item with more than one
element is treated as a question. An item can
have an optional numerical or symbolic name.
A branch for any set of alternate answers can
be specified by * , and an "otherwise" branch
by **.
The following is a short example:
*l/JOHN LIKES JANE,SALLY,JO,AND
BETTY./
*AIWHO DOES JOHN LIKE/JANE,SALLY,BETTY,JO,=O/*B/GIRLS/*C/MA,SANTA,MO,=O/* /**1/
*IDON'T BE IRRELEVANT/* AI
*C/BE MORE SPECIFIC/* A/
*B/BILL L IKE S MARY,ANN,JANE,
RUTH,SALLY,AND JO./
*/NAME TWO GIRLS BOTH J9HN AND
BILL LIKE./JA,SA,JO,=l/* I**B/

DISCUSSION
Optional Modes of Operation

The program will automatically refrain from
asking a question that has previously been answered correctly with a frequency above a tolerance parameter, t, or if the student, at the
time he answered the question correctly, also
said "*EASY*."
Several other features are optional, dependent upon whether special flags have been raised
for the particular run. Thus, when desired, the.
program will print out any or all of the following in response to a student's answer when a
set of answers is required: "YOU ARE RIGHT
TO SAY-" followed by the correct elements
of the student's answer, "YOU ARE WRONG
TO SAY-" followed by the incorrect elements
of the student's answer, and "YOU SHOULD
HAVE SAID-" followed by those elements
that the student left unsaid.
The compiler and interpreter programs were
coded in SNOBOL (Farber 2 ) for the IBM 7090.
As presently coded, the interpreter program
handles only one student, accumulating the frequency of his success and failure on each question. If many consoles were used, each console
would have a name and the different students
would time-share the program. It s~emed futile
to add this to the present program (although it
would be trivial to do so), since SNOBOL has
no provision for reading in from on-line
sources.

THE COMPILATION OF NATURAL LANGUAGE TEXT

Figure 3 gives examples of a compiled program and its interactions with a student.

Some Examples of Types of Material
That Can Be Handled
The person writing the text to be compiled
has a great deal of latitude in formatting his
material. The present set of programs will
handle a wide variety of question and statement
formats, including multiple-choice, true-false,
fill-ins (either connected or disconnected, ordered or unordered), short answer questions,
and essays. The limitations of the short answer type of question lie in the ability of the
people who specify the alternate acceptable answers and the synonym dictionary. The key
parts to the answer might be very loosely
stated. A statement might impart information,
or make a comment about the student's performance, or it might command the student to
read a certain section of a certain book or perform a certain series of exercises. A branch
might be to a question that underlies, forms a
part of, or supplements the question missed (or
got). Separate branches can be established for
different answers with different implications
and for different partial answers.
With such programs the distinction between
teaching, testing and controlling the student becomes an arbitrary one. Thus a compiled program might be used to train the student in
some content area, to simultaneously train and
test, to give a final examination, or to run an
experiment that explored the student's abilities
under some specified conditions and treatments.

Possible Extensions to the Present Program
The program that has been coded is a simple
first attempt toward what might be done, such
as the following.
A. Rather than branch to a single string, the
strings could belong to one or more classes, and
the branch could then be to a class that contained several strings. For each particular execution of the branch, a random choice could
be made; or, better, this choice could be a function of the difficulty of the different members of
the class.
B. Frequencies of successes and failures
could be collected for (1) each student, (2) all

41

students, (3) given types of students (e.g., high
IQ, impulsive). Then the choice of the particular branch could be a function of the appropriate individual and/or group information as
to what is likely to benefit this student.
C. The decision as to what group to put a
student into could be made by the program, if
it compared the patterns of successes and failures across students, and put students with
similar patterns into the same group (e.g., by
Kendall's tau).

D. The decision as to what string to branch
to after each string could be made by the program, by some rule such as the following: (1)
branch to a string who.se success-failure frequencies are similar to this string's, (2) branch
to a string whose answer is a substring of the
answer to this failed string, (3) branch to a
string whose answer contains this correctly answered string.

E. Weights of specific strings can be not
merely functions of success-failure of themselves, but also functions of success-failure of
other strings that are related to them by, for
example, (1) equivalence-relatedness as specified by the author in a simple equivalence dictionary, (2) connectedness in the sense of the
graph formed by the branches cycling through
the strings.
F. At least simple methods could be programmed for taking an ordinary book, breaking it up into a set of statements, interspersing
questions composed by the program) and then,
by pretesting with human experimental students, winnowing the questions down to a good
set (e.g., (1) non-redundant, (2) suitably difficult, (3) reliable, (4) valid).
G. Answers could be recognized by additional partial and loose matches that would
allow for a wider variety of alternate forms,
for example, misspelled words, than can be recognized at present.
H. The program could systematically collect
alternate answers (e.g., from students that it
judges to be pretty good) and occasionally ask
its teacher whether these would in fact be acceptable alternates. It would then add these to
its memory. It could similarly augment its
synonym dictionary.

42

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

*/SUPPOSE WE HAVE TWO SENTENCES, 'A' AND 'e'.
THEN THE SENTENCE
'(A)V(B)' IS CALLED THE DISJUNCTION (OR ALTERNATION, OR LOGICAL
SUM) OF THE SENTENCES 'A' AND 'B'.I
*1 A SENTENCE SUCH A.S t (C)V(D)' IS CALLED THE LOGICAL SUM, OR
ALTERNATION, OR ------ ./DISJUNCTION/*I**11
~(-AI WE AGREE THAT THE DISJUNCTION' (A)V(B)' IS TRUE IF AND ONLY
IF AT LEAST ONE OF THE TWO SENTENCES 'A' AND 'B' IS TRUE, I.E.,
I F E I THE R tAt I S TR UE, 0 R t B' 1ST RUE, 0 R BOT H 0 F THE 1','1 ARE TRUE • I
*81 IF IT IS NOT KNOWN WHETHER 'A' IS TRUE, CAN' (A)V(B)' BE
TRUE/Y.E.S.=l/*I**AI
*C/IF 'A' IS FALSE, CAN' (A)V(Sl' BE TRUE/YESI1(-/*-*,AI
*DI IF 'A' AND 'B' ARE FALSE, CAN '(A)V(R1V(C)' BE
TRUE/(CA1N.T.SA(Yl.=2/*F/**GI
*EI YES, IN FACT IT CAN. BUT THIS DOES NOT YET FOLLOW FRO~ WHAT
YOU HAVE BEEN TOLD.I
*FI YOU ARE RIGHT IN SAYING THAT YOU DONT KNOW IF YOU MEAN
THAT THIS IS NOT YET DECIDED.I
*GI IN FACT IT CAN. BUT THIS HAS NOT YET BEeN STATED EXPLICITLY IN
THE SYSTEM BEING ~EVELOPED FOR YOU.I
*rll THE SIGN 'V' dF DISJUNCTION CORRESPONDS WITH FAIR EXACTNESS
TO THE ENGLISH WORD 'ORt IN THOSE CASES WHERE 'OR' STANDS BETWEEN
TWO SENT[NCES AND IS USFD (AS IT MOST FREQUENTLY IS) IN THE
NON-EXCLUSIVE SENSE.I
*11 WITH WHAT COMMON ENGLISH WORD DOES THE SIGN 'V' CORRESPOND
HOST CLOSEL YICR/1~/*i~HI
~-J/GOOD. 'OR' IS CORRECT.
CONGRATULl~,TIONS ON FINISHING
THIS LESSON.I

Figure 3. A Short Example of a Computer Run That Demonstrates Some Simple Uses of the Partial Match Features.
Figure 3a. Listing of the Program to be Compiled.

43

THE COMPILATION OF NATURAL LANGUAGE TEXT
INTERACTlONS WITH STUDENTS FOLLOW.
IIIIFORMA1:LON- SUPPOSE wE HAVE TWO SE;IlTEIIICES,
E SENTENCES 'A' AND 'B'.!
QlJESTION- A SENTENCE SUCH liS 'IC)V(O)'
SrlJDENT ANSWERED- 'SUM'
NI1I, WRONG.

'0.'

AIIID 'B'.

'tA)V(rl)'

IS

CALL~D

THE DiSJUNCTIO\l IL1R ALTER\jATION, OR llJGICAL SU,")

IS CALLED THE LOGICAL SUr-,· 0". AU[;{;Ilf,T10.,

IIIIFORMATI.ON- SUPPOSE WE HAVE TWO SENTE\lCF.S,
E 9EIHENCES 'A' AND '8'.!

'/I'

AIIID

'B'.

'(A)VI!;)'

U~

------

•

IS CALLED THE OISJU,'KTION IUR

QUESTlON- A SENTENCE SUCH AS 'IC1V(D)' IS CALLED THl: LOGICAL SUM. OR ALTERNATlO,\j, OR -----STlJDfNT AN5WERED- 'DISJUNCTION'
RPGHl'.
A GOOD ANSWER IS-DISJUNCTION
INFORMATION- WE AGREE THAT THE DISJUNCTION 'IAIVISI' IS TRUE IF A;IlD ONLY IF AI' LEflST ONE UF
I.E •• IF EITHER 'A' IS TRUE, OR 'B' IS TRUE, OR BOTH OF THEM ARE TRUE.!
QIJESTHINIF IT IS NOT KNOWN WHE1HER 'A'
STlJDfNT ANSWERED- 'NO'
NID, WRONG.

UF TH

ALTER'~ATION,

OR LOGICAL SUM)

OF TH

•

TH~

r..O SE,\jTENCES 'A' A:\jfl

'tl'

IS TRUL,

'tl'

IS TRUE,

IS TRUE, CAN 'IAIVIB)' BE TRUE

INFORMAtI.ON- WE AGREE THAT THE DISJUNCTION' (A)VIB)' IS TRUE IF AND ONLY IF AT LEAST ONE OF THE TWO
I.E •• IF EITHER 'A' IS TRUE, OR 'B' IS TRUE, OR BOTH· OF THEM ARE TRUE.!

SENTE'JC~S

'A'

A.-J'1

QllESTIONIF IT IS NOT KNOWN WHETHER 'A' IS TRUE,. CAN 'lAIV(BI' BE TRUE
S TIJDENT ANSWERED- 'Y AS'
R~GH1'.

A GOOD ANSWER IS--

YES

QUESTIONIF 'A' IS FALSF, CAN '(AlVIS)' BE TRUE
SWDENT ANSWERED- 'WHY SHOULDN'T I SAY IT IN FRENCH- MAIS OUI, CERTAINEMENT'
R)GHT.
A GOOD ANSWER 15-YES OUI

QUESTlONIF 'Ar AND 'B' ARE FALSE, CAN' IAIVIBIV(C)' BE TRUE
STIJDENT ANSWERED- 'THAT CAN'T REALLY BE SAID'
R)GHT~
A GOOD ANSWER IS-CAN T SAY

INFORMATI.ON-

YOU ARE RIGHT

IN SAYING THAT YOU DONT KNOW IF YOU MEAN THAT THIS IS NOT YET DECI01OO./

ItIIFORMATI.ON-

IN FACT IT' CAN.

BUT THIS HAS NOT YET BEEN STATE!) EXPLICITLY IN THE SYSTEM BEING

IIIIFORMATION- THE SIGN 'V' OF DISJUNCTION CORRESPONDS WITH FAIR EXACTNESS TO THE ENGLISH WORD
BETWEEN TWO SENTENCES AND IS USED lAS IT MOST FREQUENTLY IS) IN THE NON-EXCLUSIVE SENSE.!
Q~E5T'rCN--"

~r,TH

WHAT COMMON ENGLISH WORD DOES THE S!GN

'V'

D~VELUPED

'a'"

I~

FUR YOU.!

THOSE CASES WHERE

'OR' STAN[JS

CORRESPOND MOST CLOSELY

STUDENT ANSWERED- 'AND'
NlI, WRONG.
JIIIFORMATLON- THE SIGN 'V' OF DISJUNCTIO'l/ CORR[SPO'lflS WITH FAIR EXACTNESS TO THE EIIIGLISH ."UK!) 'OR'
BlETW8EN TWO SENTENCES AND IS USED (AS IT MOST FREQUENTLY IS) IN 1'I-IE NON-EXCLUSIVE S~NSE.!

IN THOSE C,\SES WHERE 'OR' STANDS

QUESTlON- WITH WHAT COMMON ENGLISH WORD nOES THE SIGN 'V' CORRESPOND MOST CLOSELY
S TIJDENiT ANSWERED- 'NON-EXCLlJS I VE 'OR"
R)GHT.
A GOOD ANSWER IS-OR

INFfj)RMATLON- GOOD. 'OR'

IS CORRECT.

CONGRATULATIONS 0\1 FINISHING THIS LESSO,•• !

Figure 3b. Printout of Interactions with a Simulated Student.

1. It could further try to boil down sets of
equivalent alternate answers, by finding things
in common among them, composing a summarIZIng statement, and asking its teacher
whether this new statement is equivalent to all
the specific alternates it is presently storing. It
could then substitute this new statement for
the alternates that in fact were equivalent, and
now look only for this common element in students' future answers.

J. It could have various methods for computing branches when appropriate to the problem domain; for example, (1) using a transform dictionary to analyze mistakes in logic or

arithmetic, (2) using similarity between substrings to analyze types of mistakes in spelling.
K. The program could itself compute the correct answer, rather than having this answer
stored in memory. It might then also do such
things as check the sequence of a student's answer (which it would get simply by commanding the student "GIVE YOUR ANSWER
STEP BY STEP") and try to analyze at what
point the student went astray. It could then
generate a new question either on the basis of
such an analysis or as a function of the student's present level of competence.

44

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

L. Some simplifications in the basic formatting rules could be implemented with relatively
little trouble. For example, the program might
accept several alternative identifications for
questions; e.g., "*,, could be replaced by "*Q"
or "*QUESTION" or ""QUESTION""; "."
could be replaced by ""THEN""; "," could
be replaced by " "AND" "; "/" in the answer
section could be replaced by " "OR" "; the "*"
that marks the branch by " "GO TO" "; the "-"
that designates erase by ""ERASE"". Experiments might be run to see which form is
preferable. If, as seems likely, the presently
implemented form is somewhat harder to learn
at first, but slightly faster to use once learned
(if only because fewer symbols need be typed),
novices could be trained on the form that looks

more English-like and then given the option of
using the shorter, more cryptic symbols.
REFERENCES
1. ESTAVAN, D. P. "Coding for the class lesson assembler." FN-5633. Santa Monica,
Calif.: System Development Corp., 1961.
2. FARBER, D. J., GRISWOLD, R. E., and POLONSKY, 1. P. "SNOBOL, a string manipulation language." J. Assoc. Compo Machinery,
Vol. 11, No.1, Jan. 1964, 21-30.
3. MAHER, A. "Computer-based instruction:
Introduction to the IBM research project."
RC-1114. Yorktown Heights, N.Y.: IBM,
1964.

METHOD OF CONTROL FOR RE-ENTRANT PROGRAMS
Gerald P. Bergin
Programming Systems
International Business Machines Corporation
New York, New York
INTRODUCTION

lowed to produce a routine that satisfies the
requirements of re-entrability.

The use of multiprogramming and multiprocessing raises a question as to the number
of copies of a routine, needed in memory for
multiple concurrent use. In the case where two
or more scientific programs are in core at the
same time, each needing the use of a SINE
routine, a private copy can be provided for
each program's own use, or one copy can be
loaded for all to use. A message processing
program that services multiple terminals can
run into a situation where message A interrupts the processing of message B and because
of priority consideration~, .. message A must be
processed immediately by~he program. Again,
the question of how many copies of the program are required in core occurs. Finally, a
multiprocessing configuration with two or more
computers sharing a common core memory may
each be using the FORTRAN compiler. Each
computer could have its own copy of the compiler or a single copy of the compiler could be
executed by all computers concurrently. Intuitively, the provision of one copy of the routine
or program appears more elegant.

The terms used in this paper are defined to
eliminate possible misinterpretation.
routine-an ordered set of computer instructions which is entered by an explicit call
program-a set of routines and associated
data areas
context-the information which a routine
needs to perform its functions
instance-the execution of a routine with a
particular context
read-only routine-a sequence of machine instructions which is not self modifiable or
modifiable by others
re-entrant routine - a read-only routine
which accepts and uses the context associated with an instance of a routine, such
that multiple entrances and executions can
occur before prior executions are completed
subexecution-an instance of a re-entral)t
routine
task-a set of one or more routines which
define a unit of work, and which can compete independently for computer time
job-a collection of tasks organized and submitted by a user under a single accounting
number
LIFO-Abbreviation for Last In, First Out.
This pertains to the retrieving of data in
the reverse order in which it was stored.
Also called a push-down, pop-up list

Assuming the use of only one copy of each
routine, the possibility that a cQPlmonly used
routine may not run to completion pefore being
entered again must now be considered. A routine which permits unlimited multiple entrances
and. executions before prior executions are complete is called a re-entrant routine. This paper
describes a method of controlling these routines
and sets forth conventions that must be fol45

46

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

SCL-Abbreviation for Single Cell available
space List
A TQ-Abbreviation for Active Task Queue
TCL-Abbreviation for Task Control List
SCB-Abbreviation for Subexecution Control
Block
BAL-Abbreviation for Block Available space
List

available space List (SCL). This space is
available for use by the monitor only. The
Block Available space List (BAL) permits
blocks of space of variable size to be allocated
for both program and monitor storage needs.
A description of the Space Allocation scheme
is contained in Appendix A.

RE-ENTRANT PROBLEMS
The biggest problem a re-entrant routine
poses is that of referencing proper context. The
routine can be made to conform to a welldefined set of conventions for its references to
input, output, and working storage-this solves
only part of the problem. The remainder must
be resolved through the use of a monitor capable of associating context with each instance
of the re-entrant routine, ancl, of accepting responsibility for providing context reference
during re-entrant executions.

Functions
The monitor functions discussed are not intended to be all inclusive even for re-entrant
routines. Functions such as I/O and interrupt
control are virtually ignored since they are of
little concern in this paper.

The amount of control information which a
lTIonitor must create and maintain is a function of:
1. The number of unfinished instances of
each re-entrant program
2. The number of unfinished sub-executions
(or current levels down) for each program instance
3. The number of context pointers to data
for each unfinished subexecution.
In addition, each routine requires working
storage and data areas associated with a
given instance. To pre-allocate all the space
required for some maximum activity seems
unreasonable in a dynamic environment.
When activity is minimal, a large number of
cells would be unusable for other purposes,
and any change in the size of data blocks
would require re-assembly of the system.
Dynamic space allocation will circumvent
some of these problems; space can be allocated
as needed. When the space for a sub execution
is no longer required, it is returned to available
space and can be used by other subexecutions.
To provide dynamic space allocation, both a
single cell and block allocation scheme were
considered essential. A small block of space
is pre-linked and constitutes the Single Cell

RE-ENTRANT CONTROL

The monitor functions which are of importance for re-entrant control include:
1. Obtaining and returning single cells and

2.
3.
4.
5.

6.

blocks of cells needed for control
information
Determining priority of tasks and task
queuing
Creating and terminating tasks
Maintaining context for each unfinished
instance
Maintaining the data structures which
reflect the activity of the re-entrant
routines
Handling all inter-routine and intraroutine communication

Structure
To perform these functions, the monitor must
have control information organized in some
manner. The following data structures are,
therefore, the basis of achieving the required
monitor control.
Job Description Block (JDB)
Pertinent information about each job is contained in a set of contiguous locations called a
Job Description Block. One JDB is created for
each job. These blocks are the source of all
activity to be done in regard to job processing,
especially the sequence of tasks to be accomplished within each job. The set of all JDBs
need not reside permanently in core although
information pertaining to some tasks may be
used frequently enough to dictate its presence.

METHOD OF CONTROL FOR RE-ENTRANT ROUTINES

The major concern this paper has with JDBs
is that they exist.
Active TCLsk Queue (ATQ)
The Active Task Queue is a list of the tasks
which are in some phase of execution in the
computer. There is a scheduling procedure applied to this list to determine the next task to
be activated or reactivated when interrupts
occur or when a subexecution relinquishes
control.

The A TQ is a simple list structure composed
of cells obtained from the SCL. The monitor
adds or inserts an entry to the list when a new
task is to become a candidate for processing in
the multi program environment. An entry is
deleted from the queue when a task is terminated, and the cell is returned to the SCL.
Each entry in the ATQ contains status information, task identification, priority number,
pointer to the associated task control list, and
a link to the next entry in the A TQ.
TCLsk Control List (TCL)
Associated with each ATQ entry is a Task
Control List. This list is used to establish and
associate context for each level of subexecution
within a task. When a task is added to the
ATQ, a TeL is created for it. The first entry
contains the name of the associated JDB and
the second entry points to a Subexecution Control Block (SCB) . This SCB contains the
pointers to the context needed for the execution of the main control routine of the task.
When the execution of the control routine is
initiated, each level of descent into nested subexecutions causes an entry to be added to the
TCL which points to the associated SCB. When
a sub execution terminates, returning to the
prior level of execution, its entry is removed
from the TCL. It should be noted that all transfer of control to and from subexecution is
through the monitor.

The TCL is a push-down, pop-up (LIFO) list
with entry to the list through a header cellthe cell containing the name of the JDB. The
header cell and push down cells are obtained
from (and later returned to) the SCL. New
entries to the LIFO list are added to the top
of the list with prior entries pushed down. Termination of a subexecution results in the LIFO

47

list being popped up and the cell returned to
the SCL (also returning the SCB space). When
the control section terminates, its entry in the
TCL, the TCL header, and the entry in the
ATQ are deleted thereby terminating the
task. The job description may get updated at
this point.
The first entry of the TCL contains a pointer
to and the name of the JDB, and a link to the
top of the LIFO list. Each entry on the LIFO
list points to a SCB, links to the previous entry
on the list, and contains the name of the
subexecution.
Subexecution Control Block (SCB)
Each Subexecution Control Block contains
the context or references to context associated
with its related unfinished subexecution. The
monitor creates an SCB when a subexecution is
called. The pointer to the SCB is pushed down
on the TCL as explained earlier. As a subexecution requests more space or asks for data
pointers, the monitor uses the proper SCB to
store or fetch the necessary information. When
space is returned, the monitor updates the
proper SCB appropriately. Termination of a
subexecution results in its SCB being returned
to available space along with the space no
longer needed by the calling subexecution.
An SeB is a block of contiguous cells ob=
tained from the block-space pool. The number
of cells per block may vary depending on the
anticipated requirements of the subexecution.
A minimum number of cells will always be
allocated to contain immediate data and point~
ers to normal data requirements.
There are two types of entries in an SCB:
immediate data entries and data pointers. Immediate data consists of "save console" infor~
mati on when a subexecution is entered, and
"save console" and other program status information when an interrupt occurs that does not
return to the interrupted code after its servic~
ing. Data pointers are used to define the loca~
tion of input, output, working storage blocks,
extension of the SCB, etc. Each data pointer
contains the name of the data block, the loca~
tion of a cell which points to the cell containing
the upper and lower boundaries of the block,
the register to be loaded witI). a boundary, and
information concerning the return of the space
which is being pointed to.

48

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

RE-ENTRANT CONTROL EXAMPLE
Table I shows five jobs which are known to
the system. Each job has a Job Description
Block (JDB) which was created when the job
entered the system. Within each JDB is the
list of Tasks to be done.
The monitor has scheduled three Tasks,
which in this case are from different jobs. The
ATQ shown in Table II indicates that Task
"MSG Processor T" is waiting for I/O to complete, Task "MSG Proc.essor T" (a different
instance of the previous Task) is in execution,
and Task "GO" is pending and will be executed
when both instances of "MSG Processor T"
Terminate or cannot proceed.
Each entry in the ATQ points to a TCL,
shown in Table III. Task "MSG Processor T"
points to the Header cell K which contains the
name of its JDB (Terminal A) and points to
the top of its LIFO list, k2i. The "T control"
routine has "called" the routine "Update 3"
which will resume when its wait condition
Terminates.
Task "MSG Processor T" (2nd instance)
points to its TCL entry S. The Header cell
names the JDB (Terminal N) and points to the
Top of the LIFO list S4. The main routine "T
control" is three levels down in routines "Interpret," SCAN, and SCAN (SCAN has re-entered
itself once). The Tasks at locations E1 and E2
of the A TQ are both using program "MSG
Processor T" with the first using the context at
WI and W 2, the second using the context at Xl
through X-/. Task "GO" is associated with
TCL U. Its Header cell names the JDB (JobB) and points to the top of its LIFO list Ua. A
program "Integrate" has been loaded and is
now ready for execution with context at Y 1.

Each entry on a LIFO list points to an SCB
which associates context with the instance of a
routine. A minimum of m cells has been allocated for each SCB. Table IV shows the content
of the SCB for one instance of a routine.
If another task can be accommodated by the
computer, a task will be chosen from the Job
Description area. The following example shows
what occurs to this new contender for computer
time. The scheduler selects Task "Load" of
J ob-C whose priority has changed to 4.
The monitor gets a cell from the SCL (cell
E4). This cell is inserted in the ATQ by changing the link of cell El to El and putting E:! in
the link of cell E-/. The console information
associated with task "MSG Processor T" (of
Terminal N instance) is saved in its SCB (X 4 ) ,
and its status in the ATQ is set to P. The
name of the Task (Load), its priority (4), and
the status (E) are inserted in cell E-/. Two
more cells V and VI are obtained from the SCL
to establish the TCL at V. A block of space is
obtained for the SCB of the main routine of
"Load." The initial context for the task is then
entered in the SCB beginning at Zl and Load
is then executed. Table V is a graphic representation of the structure created in the preceding example.
RE-ENTRANT ROUTINE CONVENTIONS
By definition, a re-entrant routine is readonly in nature. Address calculations, internal
indicators, subroutine parameters, and similar
information must be stored and used external
to the routine. The association of context to an
instance of the routine is a function of the
monitor and has already been treated. The
following conventions are those considered im-,

TABLE I. JDB'S (AUXILIARY OR MAIN STORAGE)

Terminal N

Job-B
Compile
Load
Go
Print

Terminal A
MSG Processor T

I
I

MSG
essor
MSG
essor

ProcT
ProcR

Job-C
Load
Go
Compile
Go
Print

Terminal Q
MSG
essor
MSG
essor

ProcH
ProcR

METHOD OF CONTROL FOR RE-ENTRANT ROUTINES

49

TABLE II. ACTIVE TASK QUEUE (ATQ)
Status

Priority

Pointer
to TCL

Name

E1~E2

W

3

K

MSG Processor T

E2~Ea

E

6

S

MSG Processor T

Ea

P

7

U

Go-Integrate

Link

Location

°

W = waiting status due to I/O, etc.
P = pending
E = in execution

portant at present to get, use, and store the
external data (context) required in any routine.
1. All routines must be called through the
monitor.
2. Parameters requir~d for inter-routine
communication are contained in the calling routine's context. Return of control
to the higher level routine is through the
monitor also, so that return can be considered an implied call. To call a routine,
the monitor is entered indicating:
a. The name of the routine being called
(or returned to)
b. The name of the register which contains the pointer to the required context (if necessary).

TABLE III. TASK CONTROL LIST (TCL)
Location

Link

Ky(k'°

Routine
Name

Pointer
toSCB

Terminal A loco of JDB
T control

W1

k1

Update

W2

S4

Terminal N loco of JDB

>0

T control

Xl

S2

Sl

Interpret

X2

S3

S2

Scan

X3

S4

Sa

Scan

X4

k1
k2
S

u / u1
U1
10-

Job-B
Integrate

loco of JDB
Y1

3. To· get a new block of cells for use, the
monitor must be entered indicating:
a. N arne to be assigned to the block
allocated
b. N umber of contiguous cells needed
c. N arne of the register to be used (if
any)
d. Value to be put in the register (either
upper or lower boundary)
e. Return location or action if space is
not available.
4. To re-establish a pointer in a register
whose contents have been changed, the
monitor must be entered indicating:
a. N arne of the block
b. Value to be used (either upper or
lower boundary)
c. N arne of the register to be used if
other than the previously associated
register (if named, the previous association is lost).
5. To drop a register from use as a context
pointer so that it can be used for other
purposes, the monitor must be entered indicating the name of the pointer.
6. To return block space to the available
space pool the monitor must be entered
indicating the name of the block to be
returned or the name of a list containing
the blocks to be returned.
7. The responsibility of returning space
rests with the routine which obtained the
space. The termination of a subexecution will, however, result in all space
requested for private use being returned
to the block allocation pool.

50

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

TABLE IV. SUB-EXECUTION CONTROL BLOCK (SCB) FOR THE TASK "INTEGRATE"
I

I

Location
Y1-0

Control

Name

Register

Pointer to loc. pointing to Data

1

IN 1

a

f3

IN 2

-1

2

-2

c

OU 1

!

I

I

3

OU 2

-3
-4

1

d

WS 1

-5

WS 2

-6

SCB

-7

CONS

(immediate data

Y l -7

+i

CONI

(immediate data

-m
Control 1
2
3

IN
OU
WS
SCB
CONS
CONI

can be returned
Returned
common data base
INPUT
OUTPUT
Working storage
Additional SCB for additional space if required
Console save data
Console save data plus program status information at an interrupt

SUMMARY
Association of context for an instance of a
routine has been achieved through the use of
control information created by the monitor or
furnished to the monitor via program conventions. The organization of the control information is in the form of a list structure
for ease of inserting and deleting new data.
The Active Task Queue is a list, ordered on

priority, used primarily for task sequencing.
The Task Control Ljsts are LIFO lists which
relate context in the Subexecution Control
Blocks to routines which are associated with
Tasks in the Active Task Queue.
This method of control, in conjunction with
the conventions that a routine must follow,
allows multiple entrances and executions of a
routine before prior executions are completed.

TABLE V. GRAPHIC REPRESENTATION OF THE MONITOR DATA STRUCTURE
SCB

TCL

ATQ
----

Location Link Status Priority
El

E4

W

3

Pointer
to TCL Name
K

Location Link Name

MSG Processor T

.------~

K

Pointer to SCB

I Location

0

T Control

Location of JDB
~Wl-O~
W,-: (CB Data
Wl-m

kl

Update 3

W,-

84

Terminal N

Location of JDB

0

T Control

j,kz

Terminal A

~W2-0t
: (CBData
W 2-m

P

6

S

MSG Processor T

---------~

S

/

X,

~XcOt

:

~

M
f-3
P=1
0

(CB Data

Xl-m
Interpret

S2

Scan

tj

0

_X2-0)

X,

:
Xz-m
_ X 3 -0

~

\ 8CB Data

0

0

Z

t

f-3

~

0

x;-mj 8CB Data

X,

~

~

0

~

S4
P

7

U~U/U,
Ul

E4

Ez

E

4

. S3

V

Load

0

V/V,
Vl

0

~

_____X.-O}

Scan

X 4---

Job-B

Location of JDB

Integrate

~Yl-O~
Y,
: j8CB Data

Job-C
Load

M
I
M

:
SCB Data
X 4-m

~
~
>
Z
f-3

~

0

q

Yl-m
Location of JDB
~Zl-O{

Z,-

:
Zl-m

f-3

1-1

Z

M

W.

1

8CB Data
I

10"1
~

52

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

APPENDIX A
SPACE ALLOCATION
The structure of the control data needed for
re-entrant and recursive routines is based on
list-structure concepts. The use of a list structure approach requires being able to obtain and
return space dynamically. Part of the space
needed must be prestructured or linked in the
IPL-V (Newell, Simon and Shaw) * manner.
Availability of space in blocks of contiguous
cells is also required to gain a compromise for
efficient use of core storage.
The following is a description of a s~ngle cell
and block allocation scheme that was developed
and implemented on the IBM 7094 by Mr. M. R.
Needleman of WDPC-VCLA.t
SINGLE CELL ALLOCATION
A relatively small number of contiguous
cells are linked together to fornl the Single Cell
available space List (SCL). A fixed cell is
maintained which always points to the next
available cell on the list. Table A-I shows this
construction.
The allocation routine allocates a cell by giving the requestor the name of a cell (the address a) and updates the link of A to point to
the next available cell on the list which is f3.
Table A-II shows the result of allocating 1 cell.
When a cell T is returned to the available
space list, it is inserted at the top of the SCL
as follows:
1. Cell A, which contains the pointer to the
next available cell on the SCL, is modified
to point to T.
2. The former pointer f3 is put into the link
portion of the cell T.

Table A-III shows the results of this process.

* The

Rand Corp., Santa Monica, Calif., Newell A.
Editor, "Information Processing Language-V Manual," Prentice-Hall, Inc., Englewood Cliffs, New Jersey,
1961.

t Western Data Processing Center, University of
California, Los Angeles 24, California. The scheme was
developed by WDPC under contract with the Advanced
Research Projects Agency (Contract No. SD 184), Office
of Director of Defense, Research and Engineering,
Pentagon, Washington, D. C.

TABLE A-I. SINGLE CELL AVAILABLE
SPACE LIST (SCL)
Location

Link

Information

A (fixed loc.)

f3

y

o
BLOCK ALLOCATION
The second type of space allocation is called
block allocation. A block of contiguous cells is
reserved for this type of allocation. Two lists
are used to identify the space available and
space allocated. Cells for both lists are obtained from the Single Cell available space List.
Each entry in the block allocation list contains: a flag indicating whether or not the
block is currently available; a pointer to the
cell containing the addresses of the first and
last locations of the block; and a link to the
next cell on the Block Allocation List. The first
cell on the list (header cell) always links to the
last cell put on the list. Table A-IV shows the
block allocation list after three requests for
space.
Each cell on the block-limits list contains the
address of the first and of the last cell allocated
as a block by the block allocation routine and
is in one-to-one correspondence to the Block
TABLE A-II. SINGLE CELL AVAILABLE
SPACE LIST (SCL) AFTER ALLOCATING
ONE CELL
Location

Link

A (fixed loc.)

f3

f3
y

o

Information

METHOD OF CONTROL FOR RE-ENTRANT ROUTINES

TABLE A-III. SINGLE CELL AVAILABLE
SPACE LIST (SCL) AFTER RETURN
OF ONE CELL
Location

Link

A (fixed loc.)

T

Information

y

o
f3

TABLE A-IV. BLOCK ALLOCATION LIST
(BAL)
Location

Link

Flag

Pointer

a

~

0

B

y

~

B

0
1
1
1

f3

y

e
'l}

BLOCK LIMITS LISTS (BLL)

f3
De
'l}

10K
40K
30K
20K

+1
+1
+1

Last
Location

(Allocated
to)

20K
45K
40K
30K

(available)
(Zl)
(Z2)
(Z3)

SPACE POOL MAP
10K
15K
20K
25K
30K
35K
40K
45K

a

Available
Z 3
Z 2

Z1

In general, the user requests a block of N
cells. The allocator assigns space and returns
to the user via the monitor. The monitor sets
the address of the cell containing the address
of the first and of the last cell assigned in the
SCB and places the base value in the register
specified. To return space, the user indicates
the name of the block, via the monitor, to be
returned to the block space pool by the space
allocation routine.

D-

Flag = 0, block is available
Flag = 1, block is being used

First
Location Location

Allocation List. An example of this list used
in conjunction with the Block Allocation List
(BAL) . and core map of the block allocation
space pool is shown in Table A-IV.
The method of block space allocation is best
illustrated by some examples. The first is a
request for a block which is immediately available, the second is the return of a block, and
finally a request for space which exceeds the
length of anyone available block. These examples will assume the previous state of the
lists and blocks allocated and indicate only the
allocation routine action. The monitor is the
implied user. The first example starts with
Table A-IV state.

f3

T

53

Example 1
A user (Z 4) requests 3000 cells of block
storage. The block allocation routine goes
through the following sequence.
1. From cell a (in the BAL), get the limits
cell f3 and the subsequent limits. In the
rare case where the block is in use (Flag
= 1) the coalescing of blocks, as outlined
in Example 3 is done first.
20 Determine the number of cells available
and determine if the request can be filled.
(In this case assume the affirmative.)
3. Decrease the upper limit in cell f3 by the
number of cells needed.
4. Get two cells «(), L) from the Single Cell
available space List (SCL).
5. Insert cell () in the BAL with a link of
~ (obtained from cell a) and pointer to L.
The address of () is put in the link field
of a and the flag of () set to 1.
6. Set the block limits in cell L equal to
17,001 and 20,000 respectively.
7. Return to the user with the address of
cell L.

54

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE. 1964

TABLE A-VI. BLOCK ALLOCATION
LIST (BAL)

Table A-V shows the result of requesting a
block of cells.
Example 2

User (Z 2) returns the block of space whose
limits are found in cell e. The address of this
cell is used to search the BAL for the pointer
to this cell. As can be seen in Table A-VI, only
the flag of the cell (8) which contains the
pointer to the block limits returned is changed
(from 1 to 0). The block limits list is not
altered.

Location

Link

a

e

y

0

8

y

~

8

e

~

User (Z 5) requests 15,000 cells of block
storage. The block allocation routine does the
following.
1. Using cell a (in the BAL) the contents
of cell f3 are obtained. The number of
'/

TABLE A-V. BLOCK ALLOCATION LIST
(BAL)
Location

Link

Flag

a

e

y

0

8

y

~

8

e

~

0
1
1
1
1

Pointer

---

f3
~

e
1]

Pointer

0
1
0
1
1

f3
~

e
1]

BLOCK LIMITS LIST (BLL)
First
Location Location

Example 3

Flag

--

f3
~

e
1]

10K
40K
30K
20K
17K

+1
+1
+1
+1

Last
Location

(Allocated
to)

17K
45K
40K
30K
20K

( available)
(Z 1)
( available)
(Z 3)
(Z 4)

SP ACE POOL MAP
10K
15K
20K
25K
30K
35K
40K
45K

Available
Z 4
Z 3
Available
Z 1

BLOCK LIMITS LIST (ELL)
First
Location Location
f3
Do
e
1]

10K
40K
30K
20K
17K

+1
+1
+1
+1

Last
Location

(Allocated
to)

cells available is determined to be less
than the number requested.

17K
45K
40K
30K
20K

(available)
(Z 1)
(Z 2)
(Z 3)
(Z 4)

2. Link through BAL putting the limits
pointer of each "in use" entry (Flag = 1)
on a push down list. Each entry with a
Flag = 0 (space returned) is returned
to the single cell available space list along
with its associated limits cell. The BAL
cell returned is also deleted from the
BAL list. The push down list cells are
obtained from the Single Cell available
space List. The entries in the list are
now ordered such that the name of the
cell containing the highest block limits is
last on the list (therefore 1st off) and the
name of the cell containing the lowest
block limits is first on the list (therefore
last off).

SP ACE POOL MAP
10K
15K
20K
25K
30K
35K
40K
45K

Available
Z 4
Z 3
Z 2
Z 1

METHOD OF CONTROL FOR RE-ENTRANT ROUTINES

which is done when each new block of
unused space is encountered. Table
A-VII shows the results of coalescing
space. Since the user points to a pointer
to the block, the block can be moved and
the pointer to it changed without concern
by the user.

3. The method to coalesce available blocks
is as follows. Move each used block up
in core so as to pack them to the upper
boundary of the space pool. This will
push any scattered available space
further and further down in core until it
is engulfed by the limits of {3; i.e., all unused space is in one block at the lower
boundary of the space pool. To implement the coalescing, the pointers to the
used space limits are popped-up and limits are changed to reflect data movement

4. If the request for space can now be filled
from the space available limits at {3, the
method of allocating the block is the same
outlined in Example 1.

TABLE A-VIII. BLOCK ALLOCATION
LIST (BAL)
Location

Link

Flag

Pointer

a

()

{3

y

0

~

y

()

~

0
1
1
1

Ll
YJ

BLOCK LIMITS LIST (BLL)
First
Location Location
{3
Ll
YJ

10K
40K
30K
27K

+1
+1
+1

Last
Location

(Allocated
to)

27K
45K
40K
30K

(available)
(Z 1)

SP ACE POOL MAP
10K
15K
20K
25K
30K
35K
40K
45K

55

Available
Z 4
Z 3
Z 1

(Z 3)
(Z 4)

XPOP: A META- LANGUAGE WITHOUT METAPHYSICS
J.7IJark I. Halpern
Research Laboratories
Lockheed Missiles & Space Co.
Palo Alto, California

pseudo-operations to modify and extend XPOP
itself, which then becomes the desired compiler.

INTRODUCTION
The XPO P programming system is a
straightforward and practical means of implementing on a computer a great variety of languages-in other words, of writing a variety
of compilers. The class of languages it can
handle is not easy to characterize by syntactic
form, since the system permits syntax specification to be varied freely from statement to
statement. in a program being scanned; the
permitted class includes the best-known programming languages, as well as something
closely approaching natural language. We believe that this distinguishes the XPOP processor from the syntax-directed compilers,1,2,3
although it shares with them the fundamental
idea that the process of programming-language
translation can be usefully generalized by a
compiler to which source-language syntax is
specified as a parameter.

The use of these facilities involves the creation by the programmer of functional units
that superficially resemble the programmerdefined macro-instructions of, for example,
IBMAP (and in fact include such macros as a
subset), but whose effects may be radically different from those obtained by use of conventional macros. * An XPO P macro does not
necessarily generate coding; its possible effects
are so varied that it can best be defined simply
as an element of the source program that, when
identified, causes the processor to take some
specified action. That action may be any of the
following:
(1) The parameterization of XPOP's scanning routine to make it recognize, either
for the remainder of the source program
or within some more limited domain, a
new notation
(2) The compilation of coding for immediate or remote insertion into the object
program
(3) The immediate assembly and execution
of any of the instructions compiled from
a source-language statement.

This paper describes only the more novel
features of XPOP; a fuller treatment is available elsewhere. 4
DISCUSSION
XPOP consists of two major parts: (1) a
generalized skeleton-compiler that performs
those functions common to all compilers, and
(2) a battery of pseudo-operations for specifying the notation, operation repertoire, and
compiling peculiarities of a desired programming language. The programmer creates the
compiler for such a language not by programming it from scratch but by using the XPOP

* By "conventional macros" we mean the user-defined
operators that some programming systems allow. The
definition of a macro consists essentially of the assignment· of a name to a block of coding, after which every
appearance of that name as an operator causes the
system to insert a copy of that coding into the object
program.

57

58

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

(4) The preservation on cards and/or tape
of the language description currently in
use, in a condensed format that can be
redigested by XPOP at tape speed when
read back in; also the reading-in of such
a language from a tape file created
earlier in the same machine run or during an earlier run
(5) The production by XPOP of a bug-finding tool called an XRAY-a highly specialized core-and-tape dump giving the
programmer the tables and strings produced by the system in structured, interpreted, and captioned form
In the illustrations of these features, some
conventions that require explanation will be
used. All programming examples offered are
exact transcripts of the symbolic parts of
actual XPOP listings. Lines prefixed by a dollar sign are records output by the processor
as comments; these originate either as sourceprogram statements printed out as comments
for documentary purposes or as processorgenerated messages notifying the programmer
of errors or other conditions he should be
aware of. No attempt is made to illustrate
XPOP facilities by coding examples of any
intrinsic value. The examples used are merely
vehicles for the exhibition of those facilities
and are therefore generally trivial in size and
effect. The discussion that follows takes up the
chief features of the system in the order of the
five-point outline given earlier.
Notation-Defining Pseudo-Operations
Consider a macro, LOGSUM, created to store
the logical sum of two boolean variables, A and
B, in location C.
$LOGSUM
$
$
$
$

MACRO
CAL
ORA
SLW
END

A,B, C
A
B
C

Having been defined, this macro may at once
be called upon in XPOP's standard form,
which requires that the macro's name be im-

mediately followed by the required parameters
with commas separating these elements and
the first blank terminating the statement. A
standard-form call on LOGSUl\1: would have
this appearance and effect:
$

LOGSUM,ALPHA,BETA,GAMMA
CAL
ALPHA
ORA
BETA
SLW
GAMMA

Suppose we find standard-form notation unsatisfactory and want to call upon the function
LOGSUM in the following form:
STORE INTO CELL 'C' THE LOGICAL
SUM FORMED BY 'OR'ING THE BOOLEAN VARIABLES 'A' AND 'B'.
There are, from the XPOP programmer's
viewpoint, four differences between the standard and the desired form:
( 1) The name of the function is no longer
LOGSUM, but STORE.
(2) The order in which parameters are expected by STORE differs from that of
LOGSUM.
(3) The punctuation required by the two
forms differs; in standard form, the
comma is the sole separator, blank the
sole terminator. In the desired form,
three kinds of separator are used:
(a) The one-character string 'blank'
(b) The two-character string 'blankapostrophe'
(c) The two-character string 'apostrophe-blank'
and one terminator
(a) The two-character string 'apostrophe-period'
( 4) The desired form contains several
"noise words"-that is, character strings
present for human convenience but
which XPOP is to ignore.
In the following illustration, we use its
pseudo-ops to teach XPOP the new statement
form, then demonstrate that the lesson has
been learned by offering it the new form as input and verifying that it produces the correct
coding. An explanation of each pseudo-op used
follows the illustration.

XPOP: A META-LANGUAGE WITHOUT METAPHYSICS

$STORE
$
$
$
$
$NEW
$
$
$
$NEW
$
$
$NEW
$
$
$
$
$
$
$

59

A,B,C
MACRO
LOGSUM B,C,A
END

CHPUNC
PARAMETER-STRING PUNCTUATION ADOPTED AT THIS POINT

CHPUNC 3S1 2 '2' 1T2'.
PARAMETER-STRING PUNCTUATION ADOPTED AT THIS POINT
CHPUNC 1S2.. 1Tl.
PARAMETER-STRING PUNCTUATION ADOPTED AT THIS POINT
NOISE

4INTO 4CELL 3THE 6LOGICA 6FORMED 2BY 60R'ING 6BOOLEA

NOISE

6V ARIAB 3AND 3SUM

STORE INTO CELL 'GAMMA' THE LOGICAL SUM FORMED BY 'OR'ING THE ...
BOOLEAN VARIABLES 'ALPHA' AND 'BETA'.
ALPHA
CAL
ORA
BETA
SLW
GAMMA

The definition of STORE with which the
above illustration begins deals with the first
two of the four differences noted betw.een the
desired and the standard statements. It causes
XPOP to recognize STORE as an operator
identical in effect to LOGSUM, and specifies
that the parameter expected as the third by
LOGSUM will be expected as the first by
STORE. The pseudo-op CHPUNC (CHange
PUNCtuation) deals with the third difference.
Its first use, with blank variable field, erases all
punctuation conventions from the system; the
comma is no longer a separa tor nor is the
blank a terminator. Having thus wiped the
slate clean, CHPUNC is used again to specify
the required punctuation. The variable field
that follows this second CHPUNC may be
read: "Three separators-the one-character
string blank, the two-character string blankapostrophe, and the two-character string apostrovhe-blank; also one terminator-the two-

character string apostrophe-per'iod." (The additional punctuation specified by the third
CHPUNC was introduced because the signal to
XPOP that a statement is continued on the
next card is the occurrence, at the end of each
card's worth, of a separator immediately followed by a terminator; here the programmer
wanted to use the string , ... ' for this purpose.
A separate CHPUNC was necessary simply
because the additional punctuation came as an
afterthought.) The fourth and last difference
is dealt with by means of the pseudo-op
NOISE, which permits the programmer to
specify character strings to be ignored by the
processor. Since strings longer than six characters are taken as noise words if their first
six characters are identical to any noise word,
such strings as VARIABLE, VARIABLES,
and VARIABILITY are effectively made noise
words by the definition of 6VARIAB as an
explicit noise word.

60

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

With these pseudo-ops given, XPOP has
been taught the desired statement form, as
proof of which it generates correctly parameterized coding when used as input. That statement was created, of course, only for illustrative purposes; few programmers would care to
use so many words to generate three lines of
machine-language coding. For an application
in which documentation was an unusually important requirement, however, so elaborate a
statement might serve a useful purpose-and
real macros would average closer to 100 instructions than to 3.
The most important property of this technique for describing a notation to a processor,
though, is the flexibility with which a notation
so specified may be used. All that the XPOP
programmer has explicitly defined is a number
of individual words and punctuation marks,
with no constraints on their combination; they
may be used to form any statement that makes
sense and conveys the necessary information
to the processor. The programmer will often
have a particular model statement in mind
when specifying the vocabulary he wishes to
use in calling for some function, but he will
find that in implementing the model he has incidentally implemented an enormous number
and variety of alternative forms.
If we add to our list of noise words the two
strings OF and AS, we can use any of the
following to generate the required coding:
(a) STORE INTO GAMMA THE SUM OF
ALPHA AND BETA.
(b) STORE AS GAMMA THE LOGICAL
SUM OF A.LPHA AND BETA.
(c) STORE AS LOGICAL GAMMA THE
SUM OF THE VARIABLES ALPHA
AND BETA.
(d) STORE LOGICALLY INTO GAMMA
'ALPHA' AND 'BETA.'
(e) STORE GAMMA ALPHA BETA.
(f) LOGICALLY STORE INTO 'GAMMA'
THE VARIABLES 'ALPHA' AND
'BETA.'
(g) INTO GAMMA STORE THE SUM OF
ALPHA AND BETA.

As (f) and (g) indicate, both noise words
and operands may precede the operator, provided only that they are not themselves mistakable for operators. If, for example, INTO
were an operator as well as a noise word (such
multiple roles are possible arid sometimes useful) , statement (g) would be misunderstood
as a call on INTO. Excepting such uncommon
cases, the operator and operands in a statement may float freely with respect to noise
words, and the operator may float freely with
respect to its operands; the sole constraint is
that the operands must be given in the order
specified when the operator was defined. Even
this last constraint will be relaxed when the
QWORD feature is fully implemented. A
QWORD is a noise word that, like an English
preposition, identifies the syntactic role of the
word it precedes; its use enables the programmer to offer operands in an order independent
of that specified when the operator is defined.
Applied to the statement type dealt with so
far, the QWORD feature might be used thus:
STORE MACRO
CAL
ORA
SLW
END

$INTO$C,A,B
A
B
C

The string $INTO$C informs the system that
if the QWORD "INTO" appears in a call on
STORE, the first operand following it is to be
taken as corresponding to the dummy variable
C. The use of the QWORD would override the
normal C,A,B order and enable the user of
STORE to write, as another alternative:
(h) LOGICALLY STORE THE SUM OF
ALPHA AND BETA INTO GAMMA.
Practically all notation-defining pseudo-ops
may be used within macros as well as outside
them, and the difference in location determines
whether the conventions thereby established
are 'local' or 'global.' If such pseudo-ops are
given at the beginning of a macro definition
that includes some non-pseudG-op lines as well,
they are taken as local in effect. They will
temporarily augment or supersede any notational conventions already established, and be

XPOP: A META-LANGUAGE WITHOUT METAPHYSICS

nullified when the macro within which they
were found has been fully expanded. 'Local'
notation-defining pseudo-ops will be put into
effect in time to govern the scan of the very
statement that calls on their containing macro.
Such internally defined statements need respect
the earlier conventions only to the e~tent necessary to permit their operators to be isolated.
When pseudo-ops constitute the sole contents
of a macro, they are taken as applying to the
rest of the program in which they appear; the
effect of calling on such a macro-ful of pseudoops is as if each pseudo-op were giyen as a
separate input statement. Insofar as the notation a programmer requires is regular and selfconsistent, then, it may be described in a single
macro whose name might well be that of the
language itself, and which would be called on
at the beginning of any program written in
that language. Statement forms that have special notational requirements in conflict with
any global conventions would include the necessary local conventions within the bodies of
their macro definitions. The local-notation
feature will be illustrated in the next section.
As should be evident at this point, it is
possible to teach XPOP to recognize an enorll10US nurnber of logically identical but notationally different statements by means of a
few uses of just those pseudo-ops introduced
so far. It should be possible, in fact, to define
a programming language empirically-that is,
to treat a language as a cumulative, open-ended
corpus of those statement forms that experience shows to be desirable. The full set of
notation-defining pseudo-ops, of which about
one-third is exhibited here, permits the description of the notations of FORTRAN,
COBOL, and most other existing compiler
languages.

Compilation-Control Pseudo-Operations
The compiler designer also needs, of course,
various kinds of control over the compilation
process. One requirement is for the ability to
call for remote compilation. To meet this need
XPOP provides the pseudo-ops WAIT and
W AITIN. Both signify that the part of any
macro lying within their range is to be ex-

61

panded as usual-that is, parameters substituted for dummy variables, system-generated
symbols inserted where called for, and so onbut that the resulting coding is not to be inserted into the object program yet. Instead,
these instructions are put aside, to be inserted
into the object program only when a sourceprogram statement is found bearing the statement label specified by the WAIT or W AI TIN.
(The label to wait for is specified in the pseudoop's variable field, where it may be given as a
literal constant or-more likely-represented
by a dummy to be replaced by a parameter.)
In any case, all instructions waiting for such
a label will appear just after those resulting
from the translation of the statement so
labeled.
The instructions waiting for a label may have
come originally from several various macros,
or several uses of the same macro; if so, the
one difference between WAIT and W AITIN
will make itself felt. If, for example, a group
of instructions lay within range of WAIT
ALPHA, they would be appended to the
threaded list of those already waiting for
ALPHA; if the pseudo-op were WAITIN, they
would be prefixed to it. Those groups of instructions made to wait by W AITIN's will,
therefore, appear in the object program in the
inverse of the order in which they occurred
in the source program-hence "WAITIN"
(WAIT INverse). If the label for which a
batch of instructions is waiting never appears,
the instructions do not appear in the object
program. If no label is specified, they appear
at the very end of the object program.
The following example shows the use of
W AITIN in a simplified version of FORTRAN's
"DO"~ne that permits only the special case
of subscripting that is formally. identical to
indexing. First, the source program that defines "DO" to XPOP, and then uses it in a twolevel-deep DO nest: *

* Note that XPOP can process algebraic expressions.
These may be used as source~language statements or
within macros; when used within macros, they may
contain dummy variables to be replaced by parameters
when the macros are used, and those parameters may be
arbitrarily long subexpressions. SUbscripts, not now
allowed, are being provided for.

62

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

J
K

DO
)A

15

EQU
EQU
CHPUNC
MACRO
AXT
WAITIN
TXI
TXL
END

2
4
4S1=11,2, 1T2
A,B,C,D,Ol
C,B
{ definition
A
of "DO"
*+l,B,Ol
)A+1,B,D

~

DO 15 J=1,3
)
DO 15 K=2,20,2
~
PHI,J=RHO,J +BETA,J ( "DO" nest
TAU,K=PHI,J +4
)
END
And below, the object program produced by the above:

EQU
2
J
EQU
4
K
$
CHPUNC
481 1 = 1,2,
1T2
$
$NEW PARAMETER-STRING PUNCTUATION ADOPTED AT THIS POINT
$
A,B,C,D,Ol
$DO
MACRO
$)A
AXT
C,B
WAITIN
A
$
TXI
*+l,B,Ol
$
TXL
)A+1,B,D
$
END
$
$
$
DO 15 J=1,3
$
)0001
AXT
1,J

$
DO 15 K=2,20,2
$
)0002 AXT
2,K
$
PHI,J=RHO,J +BETA,J
CLA
BETA,J
FAD
RHO,J
PHI,J
STO
$15
TAU,K=PHI,J+4
15
CLA
=4
FAD
PHI,J
STO
TAU,K
TXI
*+1,K,2
TXL
) 0002 + 1,K,20
TXI
* +l,J,Ol
TXL
) 0001 + 1,J,3
END

XPOP: A META-LANGUAGE WITHOUT METAPHYSICS

Another obvious use for WAIT or W AITIN
is the handling of closed subroutines. The
programmer will frequently want a macro to
generate only a calling sequence to a closed
subroutine, with the subroutine itself appearing
only once in the object program, at the end.
To secure this effect, the programmer would
define the macro in question as starting with
the calling sequence; then he would incorporate
a WAIT with blank variable field, a ONCE
pseudo-op, and then the subroutine. If the
macro were not used in a given source program, the subroutine would not be made part

63

of the obj ect program. If used, the first such
use would output the calling sequence normally,
and the subroutine as waiting instructions to
be put into the object program at its end.
Subsequent uses of the macro in that program
would cause the compilation of the calling
sequence only, the ONCE pseudo-op reminding
XPOP that it had already compiled the subroutine. The following examples will illustrate
uses of W AI TIN, ONCE and local notation-defin,ing pseudo-ops. The first is the pseudo-DO
with its punctuation defined within its own
body:

A,B,C,D,01
MACRO
$DO
4S1 1=1,2,
1T2
CHPUNC
$
C,B
$)A
AXT
A
WAITIN
$
TXI
*+1,B,01
$
)A~i,B,D
TXL
$
END
$
$
$
DO 15 J=1,3
$
CHPUNC 4S1 1 = 1,2,
1T2
$
$NEW PARAMETER-STRING PUNCTUATION ADOPTED AT THIS POINT
)0001
AXT
1,J
$
DO 15 K=4,48,TWO
$
)0002
AXT
4,K
PHI,J=RHO,J +BETA,J
$
CLA
BETA,J
FAD
RHO,J
PHI,J
STO
$15
TAU,K=PHI,J +4.
15
CLA
=4.
FAD
PHI,J
STO
TAU,K
TXI
*+l,K,TWO
TXL
) 0002 + 1,K,48
TXI
*+1,J,01
TXL
)0001+1,J,3
END
A use of ONCE is shown next. ONCE may
be used in either of two ways, depending upon
whether its variable field is blank or not.
When the macro in which it occurs is being
expanded and a ONCE with blank variable
field is encountered, the name of the macro is
searched for in a table. If it is found, the rest
of that macro is skipped; if not, it is entered

in the table to be found on later searches and
expansion continues. The procedure followed
if a symbol is found in the variable field differs
only in that the symbol found is used rather
than the name of the macro being expanded.
This type of use permits copies of a subroutine,
a set of constants, or a storage reservation to
be incorporated into the definitions of many

64

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

different macros, with assurance that they will
appear in the object program if and only if
one of the macros is used, and not more than
once no matter how many of them are used.
It is this second type of use that is now shown:
$FIRST
$
$
$
$
$
$
$
$
$SECOND
$
$
$
$
$
$
$
$

$
$

MACRO
CLA
ADD
ONCE
STO
END

A,B,C
A
B
M
C

MACRO
LDQ
MPY
ONCE
STO
END

X,Y,C
X
Y
M
C

FIRST,ALPHA,BETA,GAMMA
CLA
ALPHA
ADD
BETA
STO
GAMMA
SECOND,PHI,RHO,GAMMA
LDQ
PHI
MPY
RHO

$
END
Last among the compilation-control pseudoops that will be discussed here is XPIFF,
which permits the programmer to specify conditions whose satisfaction is a prerequisite to
the compilation of the next line of coding. (It
is, of course, a direct development of the IFF
familiar to users of the FAP-IBMAP family
of assemblers.) The IFF is almost entirely restricted to testing conditions involving sourceprogram symbols; the direction in which
XPIFF is being developed is that of greater
range of reference. The conditions upon which
XPOP compilation may be made contingent
will include many referring not to sourceprogram symbols but to the system itself.
When fully developed, this facility should bring
within the compiler-writer's reach the means

of specifying as much object-program optimization as he wishes, short of that which, like
FORTRAN's, depends on a flow-analysis of the
entire compiled program.
The kind of optimization available through
XPIFF in its present state is indicated by the
following illustration, where it is used to avoid
compiling loop-initializing and -testing instructions where they are unnecessary.
$MOVE
$
$
$
$
$
$
$
$MOVMOR
$
$)A
$
$
$
$
$
$MOVEL
$
$
$
$
$
$
$
$

$
$
$
)0002

$

MACRO
XPIFF
MOVMOR
XPIFF
MOVEL
END

A,B,O
O,X,X
A,B,O
O,X,Y
A,B

MACRO
AXT
CLA
STO
TIX
END

Q,E,D
D,4
Q+1,4
E+1,4
)A,4,1

MACRO
CLA
STO
END

L,M
L
M

MOVE,ALPHA,BETA
O,X,X
XPIFF
O,X,Y
XPIFF
ALPHA
CLA
BETA
STO
MOVE,ALPHA,BETA,5
XPIFF
5,X,X
AXT
5,4
CLA
ALPHA + 1,4
STO
BETA+1,4
TIX
) 0002,4,1
XPIFF
5,X,Y
END

XECUTE Mode-A Compile-Time Execution
Facility
The XPOP processor may at any point in a
source program be switched into XECUTE
mode, in which succeeding source-language

XPOP: A META-LANGUAGE WITHOUT METAPHYSICS

statements are not only compiled but assembled and executed. The programmer switches
into this mode by using the pseudo-op
XECUTE, and reverts to normal processing
by using the pseudo-op COMPYL; the' coding
between each such pair is assembled as a batch,
then executed. XECUTE mode may be used
with great freedom. The programmer may
enter and depart it within a macro; while in
the mode he may use macros (with full notational flexibility), algebraic expressions, and
everything else that XPOP normally processes
except certain pseudo-ops that would be meaningless at compile time. XECUTE mode was
originally implemented by those' working on
the XPOP processor for their own use in maintaining and developing that program, and has
proved itself better for such tasks than any
other method we know. It enables us to patch
XPOP in a symbolic language practically identical to the F AP language in which the processor itself is written, and to cause these
patches to become effective at such points during a compilation as we choose-not necessarily at load time. The effectiveness of any
such patch can be made contingent on results
of program execution thus far, so that tests
otherwise requiring several machine runs can
be accomplished in one. A F AP-like assembly
listing is produced by XPOP \vhile in XECUTE
mode, and the symbolic language employed is
so nearly identical to F AP that the very
cards used for XECUTE-mode patches can
later be used for F AP assembly-updating. *
But this facility is by no means usable only
by those working on the processor itself. It
has the further role of giving the compilerdesigner working with XPOP the ability to
specify pseudo-ops for his compiler, and make
it perform any compile-time functions it requires that are not built into XPOP-building
special tables, setting flags, and so on. It enables the designer to make his system, to any
extent he wishes, an interpreter rather than
a .compiler, or a monitor /operating system
rather than a language processor.
Compile-time execution makes a great variety of special effects readily available to the

* We have produced a subroutine, entirely independent of XPOP, equivalent to XECUTE mode, and hope
soon to announce its general availability.

65

programmer. For example, it allows any macro
to be used recursively: just before calling on
itself, such a macro switches into XECUTE
mode, makes whatever test is required to determine whether further recursion is indicated,
then switches back to compile normally either
at or just after the internal call, depending on
the outcome of that test. Another useful facility it affords is that of trapping any sourcelanguage statement type for such purposes as
counting the number of uses made of it, taking
snapshots of its variables before their values
are changed, or debugging by testing the values
of a procedure's variables just before exiting
from it. Such trapping could be done even at
the machine-language level. If the programmer
wanted to trap all TRA instructions, for example, he would define TRA to be a macro,
enter XECUTE mode within that macro to
take the desired compile-time action, then return to normal processing. (The psuedo-op
ULTLEV-ULTimate LEVel of expansionwould be used within such an op-code/macro
to prevent the taking of a TRA instruction
within the TRA macro as a recursive call,
with resulting infinite regress.)
One purpose of replacing op codes by macros
of the same name might be to cause each such
extended operator to step a programmed clock
at execution time (as well as executing the
original op code, of course), so that the programmer can learn exactly how long his routines take to run-a critically important matter in real-time applications, which require that
programmed procedures fit into time slots of
fixed size. This capability, together with its
notational-flexibility and immediate-execution
features, makes XPOP particularly suitable
for command and control programming. 6

Language-Preserving Pseudo-Operations
XPOP provides the programmer with a
group of three pseudo-ops that enable him to
order, at any points in his program, that all
macros so far defined be punched onto binary
cards, written onto tape, or both. The use of
any of these- pseudo-ops preserves all macros
then in the system in a highly compact form
(binary-card representation takes about onesixth the number of cards that symbolic takes)
and, more important, a form that can be read

66

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

into the system at tape speed on any later
XPOP run, without the time-consuming process of scanning and compressing the symboliclanguage definitions. Notation-defining macros
may, of course, be preserved on cards and/or
tape along with code-generating macros. The
tape and/or card deck produced may thus contain a complete programming language of the
programmer's own design in both vocabulary
and notation. This language may then be
changed in any respect during the course of
any ordinary production or debugging run.
Functions may be added or deleted, notation
elaborated or simplified. Because any of these
pseudo-ops can be used as often as desired in
a single program, it is possible to preserve successively larger sets of macros, each set containing its predecessors as subsets, as well as
any macros defined since. Each time macros
are punched or written out by means of any
of these pseudo-ops, a report is generated, giving a-n alphabetized list of the macros preserved and the percentage of the system's
macro capacity they occupy.
Another two pseudo-ops are available for
ordering, either during a later XPOP run, or
later in the same run, that predefined macros
be read in either from the input tape (if they
had been preserved on cards) or a reserved
tape (if they had been preserved on tape).
Sets of preserved macros may be read into the
$
$THE
$
$
$
$ 00
$
$ALL

system at any point in any program, making
it possible to switch languages in mid program.
This greatly facilitates the consolidation into
one program of sections written by several programmers using different XPOP-based languages-each section simply begins by reading
into the system the language in which it was
written.
The five pseudo-ops, and their exact effects,
are given in Table 1.
As is shown in the following example, the
programmer may override XPOP's built-in assumptions about the tapes that WMDT,
W APMD, and RMDT refer to. He does so
simply by specifying, either by logical or by
FORTRAN tape designation, the unit he
wishes to address. He may also assign a name
to each file when he creates it, and later retrieve it by name; this permits many languages
to be stacked on a tape while sparing the programmer any concern over the position of the
one of interest to him. In the example below,
the programmer has used WMDT to write his
language onto logical tape A6 under the name
'TEST'. His language consists of three macros,
whose names are then listed by XPOP. (Since
the amount of available core storage used by
these three was less than one-half percent, it
is given as zero percent.) He then read this
language back in again, this time addressing
the tape by its FORTRAN designation, 11.

WMDT
TEST,~6
FOLLOWING MACROS HAVE BEEN OUTPUT ON TAPE
TEST2
TESTER
TESTXC
PER CENT OF AVAILABLE SPACE HAS BEEN USED
RMDT
TEST,ll
PREVIOUS MACROS HAVE BEEN DESTROYED BY THE USE OF RMDT

Debugging Tools-The XRA Y
XPOP provides one unconventional tool for
finding bugs that our experience has shown
to be highly useful, and which might readily be
incorporated into other systems. This is the
XRA Y-a structured, interpreted, and captioned dump of core memory and the output
tape. It prints out the chief buffers, tables,
and character-strings in the system in meaningful format and (where one exists) external
representation, as well as all the program com-

piled so far (whether still in core or already
on tape), and a standard octal dump of as
much of core memory as the programmer may
require. In case of system trouble or sourceprogram trouble not covered by one of XPOP's
50-odd error messages, the first thing the
XPOP programmer will want to check is that
the macro definitions were properly accepted
and packed away, and these definitions are
accordingly converted back to original input
form and exhibited first. Because these defini-

XPOP: A META-LANGUAGE WITHOUT METAPHYSICS

TABLE 1
Pseudo-op

67

THE LANGUAGE-PRESERVING PSEUDO-OPERATIONS
Action Caused

Meaning

WMDT

Write Macro-Definition tape

Writes definitions and associated information in binary on logical tape A5

PMDC

Punch Macro-Definition Cards

Writes definitions and associated information in card-image format on system
punch tape

WAPMD

Write and Punch Macro Definitions

RMDT

Read Macro-Definition Tape

Causes both tape files described above to
be written
Reads in from logical tape B5 a binary
file created by a 'WMDT' or 'WAPMD'

RMDC

Read Macro-Definition Cards

tions, as seen in an XRAY, have undergone
both compression into internal form and expansion back into input form, the programmer
who can recognize his macros there can feel
some assurance that they were properly digested by XPOP. He will next want to see how the
system has scanned the last statement it saw;
for this purpose he is given a print-out of the
table that shows what symbols XPOP extracted from that statement as the parameters,
and how it paired them off with dummy variables. Following this he is shown that part
of the compiled program still in the system's
output buffer, then that part already written
out onto tape. Finally, the XRAY will present
as much of core memory in standard octal
dump format as the programmer may have
specified in the variable field of the XRAY
pseudo-op that triggers this output.
XRA Ys can be obtained in two ways. One
is to use the pseudo-op explicitly at whatever
points trouble has shown up in a previous run,
or is to be feared; the other is to order compilation in XPER (eXPERimental) mode, which
may be started at any point in the program by
use of the pseudo-op XPER. In this mode,
the detection by XPOP of any error in the
source program or the system itself causes the
generation of an XRAY-and one will be generated at the end of the program in any case.
The two methods may be combined, the programmer calling explicitly for XRAYs at some
points as well as compiling all or parts of his

Reads in from the input tape binary records representing a deck produced by a
'PMDC' or a 'wAPMD'
program in XPER mode. The information
presented by an XRA Y as presently constituted is not fully adequate (hence the selective
octal dump as a backup), and additions to it
are being made, but experience indicates that
the gain in intelligibility of information presented in XRAY form over that given in octal
dumps is great enough to mark a step forward
in bug-finding methods, as we think that
XECUTE mode does in bug-correction. The
joint power of the two source language facilities suggests the possibility of some experiments in on-line debugging; we hope to report
on these later.
ACKNOWLEDGMENTS
The general macro-instruction concept, as
well as many details of format, are derived
from the BE-SYS systems created at Bell Telephone Laboratories and generally associated
with the names D. E. Eastwood and M. D.
McIlroy.
Three projects similar at least in spirit to
XPOP but which came to the author's attention
too late to play any part in the XPOP design
are the Generalized Assembly System (GAS)
of G. H. Mealy,' the Self-Extending Translator
(SET) of R. K. Bennett and A. H. Kvilekval,8
and the Meta-Assembly Language of (presumably) D. E. Ferguson.!)
.
At Lockheed Missiles & Space Company the
author's principal debt is to B. D. Rudin, W. F.

68

PROCEEDINGS~F ALL

JOINT COMPUTER CONFERENCE, 1964

Main, and C. E. Duncan for steady faith and
support over long bleak stretches. Much of the
coding of the processor and most of the daily
problems fell to W. H. Mead, Marion Miller,
M. Roger Stark, and A. D. Stiegler.
The author is grateful to C. J. Shaw of System Development Corporation for an acute
critique of XPOP that has helped to improve
the presentation and to pinpoint the areas in
which further development is most needed. 10
Thanks are also due to P. Z. Ingerman of
Westinghouse Electric Corporation for useful
discussions on the relationship between XPOP
and syntax-driven compilers, and for the opportunity to read part of his forthcoming book
on such compilers. 3
REFERENCES
1. IRONS, E. T., "A Syntax Directed Compiler
for ALGOL 60," Communications of the
ACM, January 1961, pp. 51-55.

4. HALPERN, M. I., An Introduction to the
XPOP Programming System, Lockheed
Missiles & Space Co., Electronic Sciences
Laboratory, January 1964.
5.

, "Computers and False Economics,"
Datamation, April 1964, pp. 26-28.
6.
, A Programming System for Command and Control Applications, Technical
Report 5-10-63-26, Lockheed Missiles &
Space Co., July 25, 1963.
7. MEALY, G. H., A Generalized Assembly
System, Memorandum RM-3646-PR, The
RAND Corporation, August 1963 (2nd
printing) .

8. BENNETT, R. K., and A. H. KVILEKVAL,
SET: Self-Extending Translator, Memo
TM-2, Data Processing, Inc., March 3,
1964.

2. FLOYD, R. W., "The Syntax of Programming Languages - A Survey," IEEE
Transactions on Electronic Computers.
EC-13, August 1964, pp. 346-353.

9. FERGUSON, D. E., "The Meta-Assembly
Language," address presented before the
Special Interest Group on Programming
Languages, Los. Angeles Chapter of ACM,
July 21, 1964 [information taken from the
announcement] .

3. INGERMAN, P. Z., A Syntax Oriented Translator (New York: Academic Press, to be
published) .

10. SHAW, C. J., "On Halpern's XPOP," System Development Corporation, unpublished, undated [early 1964].

A 10 Me NDRO BIAX MEMORY OF 1024 WORD,
48 BIT PER WORD CAPACITY
William I. Pyle
Theodore E. Chavannes
Robert M. MacIntyre
Philco Corporation
Ford Road, Newport Beach, California
INTRODUCTION

SYSTEM DESCRIPTION

Most of the approaches to fast read access
memories in the past have been centered about
the achievement of either faster conventional
destructive switching, or the use of various
non-destructive readout techniques and storage
devices. Many of these techniques have inherent drawbacks for very fast read operation,
such as the necessity for rewriting, in the case
of conventional switching approaches, or the
lack of truly non-destructive properties. The
memory system described in this paper solves
these problems by utilizing the BIAX memory
element, with its inherently non-destructive
readout properties, in a system organized to
minimize circuit delays and utilize transmission line properties for the various signal
paths. In this manner it is possible to achieve
random read access times of 85 nanoseconds
maximum since most inductive components are
incorporated into the various transmission
lines with the lines being terminated in their
characteristic impedance. Not only is the
memory designed for very high readout rates
in the non-destructive mode, but it is electrically alterable with conventional linear select
methods in five microseconds or less.
The sections which follow will describe the
system design concepts, operation of the BIAX
memory system, and the circuit and packaging
designs which were used to achieve the system
performance.

System Design Goals
The basic goals of the memory program
were to design and construct an operating
model of a 1024 word, 48 bit per word memory
capable of 10 Mc. random access non-destructive readout (NDRO) while being electrically
alterable with a write cycle time of five microseconds. Although the performance requirements were of prime concern it was nevertheless necessary to utilize state-of-the-art
components to insure that a practical system
would ultimately result. Table I outlines the
system characteristics which resulted.
System Organization
The organization of any memory system is,
in general, related to the desired speed of
operation. If the primary design goal is the
achievement of very short read access time it
is usually mandatory that parallel operation of
• CAPAOTY:

1024 WORDS, 48 BITS PER WORD

• REPETITIVE READ CYCLE TIME:
• READ ACCESS TIME:
(RANDOM ACCESS)

100 NANOSECONDS

85 NANOSECONDS (MAXIMUM)

• REPETITIVE WRITE CYCLE TIME:

5 MICROSECONDS

• REPETITIVE WRITE/READ CYCLE TIME:

10 MICROSECONDS

Table 1. Memory System Characteristics.

69

70

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
~---------------------------

many parts of the memory be employed. The
block diagram of Figure 1 shows how this type
of parallel organization is employed to achieve
10 Mc. NDRO operation. In this diagram it
is seen that the flow of information for a typical readout operation is through the input
buffer, read decoder, interrogate drivers, BIAX
array, sense amplifiers, and output register.
To achieve the goal of 85 nanoseconds read
access time, the propagation delays through
the functional parts of the system as shown in
Figure 2 1 were necessary.
'The achievement of these propagation delays necessitated the use of certain specific
organizations of the circuitry within the memory read system. These organizational factors
and how they were applied to the 10 Mc.
NDRO memory are listed below.
1) Every signal path involved in the read
operation, including interconnections,
must be considered in terms of its transmission line characteristic impedance and
propagation delay. This is especially
true in the BIAX array where the inductance of wires passing through many
elements is substantial.
2) When the array signal transmission
paths are portions of transmission lines,
the total array delay is approximately
the sum of the interrogate line delay plus
sense line delay. Therefore the minimum
total array delay usually results when
the number of array words is approximately equal to the number of bits per
word. In this memory, the 256 word by
192 bit per word array organization permits achievement of near minimum delay
within the array.

NANOSECONDS

100
CYQ.E
TIME

Figure 2. 10 Me. BIAX NDRO Cycle.

3) Read address decoding must be accomplished at as low a signal level as practical, with high level gating kept to a
mInImum. In order to effeetively accomplish this end it is necessary to use
one interrogate driver per array word
and a 1 of 256 decoder. Although 256 interrogate driver circuits are used each
circuit is simple since it drives a transmission line terminated in its characteristic impedance.
4) The BIAX output signals produced by
the interrogation of a word must be
strobed at the earliest possible time following the interrogation. In this memory it is accomplished by strobing the
sense amplifier with timing pulses derived from the array itself. By using
these array-derived strobing pulses each
sense amplifier output is strobed at an
optimum time and variation in signal delays due to physical location of the word
within the array or degradation of the
interrogate pulse rise time is automatically compensated for.
5) All circuits associated with the NDRO
portion of the memory must be located
as close as possible to the array to miniIn the
mize interconnection delays.
memory this is accomplished by arranging the read circuits on two sides of the
array, and making interconnections via
twisted pair lines.

M emory System Design and Operation
The memory described here has two basic
modes of operation, non-destructive readout
and, a writing mode, both of which utilize
linear or word select techniques for address
selections.

Figure 1. 10 Me. NDRO BIAX Memory Organization.

NDRO Mode
The basic concept employed to achieve nondestructive readout in the BIAX element is

A 10MC NDRO BIAX MEMORY OF 1024 WORDS

71

rogate hole contains a single conductor for
interrogation of the memory element.

DIMENSIONS IN MlLLI.INCHES

Figure 3. Nominal BIAX Physical Characteristics.

one involving crossed or quadrature magnetic
fields in a common volume of square loop
magentic material. 2-5 The BIAX element used
in the 10 Mc. memory is a pressed block of
ferrite material having two non-intersecting
orthogonal holes. The physical dimensions are
approximately 50 x 50 x 85 milli-inches (mils)
with two circular holes, one 30 mils in diameter, the other 20 mils in diameter (Fig. 3).
Information is stored by saturating the magnetic material around the 30 mil hole (the
storage hole). 'The storage hole contains the
windings necessary to write into the memory
element and to sense signal output. The inter-

Interrogation of the element is accomplished
by applying a current producing flux in the
same direction as flux already established
around the interrogate hole. The current
causes the domains in the common volume to
be re-oriented toward the direction of the flux
linking the interrogate hole. This reorientation
decreases the flux linking the storage hole and
thereby gives rise to a dcp/ dt voltage on the
sense winding passing through the stor.age
hole. The polarity of this voltage is dependent
on the orientation of the flux linking the storage hole, consequently, a selected polarity of
element output voltage will be observed for a
ONE and the opposite polarity for a ZERO
(See Figure 4C). Upon termination of the
interrogate pulse, the domains in the common
volume revert back to their original permanent
flux condition and a true non-destructive readout is achieved. Several advantages result
from the use of this principle as employed in
the BIAX memory element. First, the interrogate process introduces no measurable delay in
the read operation and is therefore quite applicable to very high speed reading. Secondly,
since the interrogation process involves only
shuttling of flux around the interrogate hole,
the inductance of the wires passing through a

.... AX II.IIIIIIn FLUX PATTIIN

IIf PUll

Figure 4. The BIAX Principle.

72

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

number of elements is sufficiently linear to
permit low loss wide bandwidth transmission
lines to be constructed using the BIAX element
inductance and the associated array capacitance. By using the array construction techniques described later in this paper, it was possible to achieve transmission line impedance
as low as 200 ohms while propagating pulse
rise times less than 5 nsec.

circuits with another level of gating. Since
the memory array is organized as 256 words
of 192 bits, only eight of the ten address bits
are required for decoding at the input to the
memory, with the remaining two address bits
being employed to select the desired 48 bits (of
the 192 available) to be transferred to the 48
hit memory output register.
When a particular interrogate driver has
been activated, it is necessary to extract the
stored information from the array within 10
nanoseconds if the total memory read access
time of 85 nanoseconds is to be achieved. To
understand the difficulty of achieving the 10
nanosecond array delay with conventional constant current techniques, consider the following calculations: Assume that each interrogate
line consists of approximately 200 elements,
each exhibiting an inductance of 30 nanohenries. By lumping all the inductances, a total
inductance of 6 microhenries would result.
U sing conventional constant current drive
techniques, to achieve 80 rna. within 10 nanoseconds would require the following voltage:

NDRO operation of the memory is initiated
upon receipt of a clocked read command after
the address levels have stabilized. The ten
address bits and their complements are converted by the input buffer to levels required by
the read address decoder. The decoder selects
one unique path of the possible 256 and activates the interrogate driver connected to the
decoder output. The actual decoding process
starts with the occurrence of the clocked read
command and proceeds through the various
levels of the decoder at a rate limited only by
the response of the circuits in the path corresponding to that address. Figure 5 shows the
functional breakdown of the input portion of
the memory. To accomplish the required 1 of
256 decoding, it is seen that two decoders, a 64
place, and a 4 place, are used. The primary
advantage of this method is that it minimizes
the number of gating levels since the decoders
operate in parallel. The 4 place decoder is a
clocked unit, while the 64 place is unclocked
and the outputs of the two decoders are combined at the input of the interrogate driver

'L~I

(1)

E== ~T

E

6-10- li (80-10- 3 )
10-8

(2)
(3)

E=48 V

It was felt that not only would a 48 volt current source be impractical since 256 were re-

TO WRITE CIROJITS

~
~

INPUT
BUFFERS

WRI TE COMMAND
~

J

READ COMMAND INHIBIT

..

6 BITS

r

-.

6" PLACE
DECODER

ADDRESS
INPUTS ~
10 BITS

DECODER
OUTPUT "AND"
GATES AND
INTERROGATE
DRIVERS

2 BITS

2 BITS
READ COMMAND"..

r

~

.....

r

SYSTEM CLOCK

.-..I~

DECODE
CLOCK
GENERATORI

"PLACE
DECODER

.. I ADDRESS .1 TO "T" GENERATORS
~ FLIP FLOPS

I

1(2)

-..

Figure 5_ 10 Me. BIAX NDRO Memory Input Block Diagram.

TO BIAX
ARRAY

.

73

A 10MC NDRO BIAX MEMORY OF 1024 WORDS

IHTERIIDGAT!
DRIVER

...

1". ~~

~

I
Figure 6. Simple BIAX Interrogate Line Equivalent
Circuit.

quired, but it also would introduce reactive
transients which would seriously limit the
maximum interrogation rate. In order to bring
the required interrogate drive voltage within
practical limits, and to minimize transients,
the terminated transmission line concept of
operation was employed in the memory array.
Figure 6 shows the schematic representation
of a simple BIAX transmission line. In this
figure, each lumped inductance is represented
by one BIAX element through which an interrogate wire passes, and the capacitance is that
between the wire and the ground plane.
If one calculates the properties of the transmission line 6, assuming an element inductance
of 30 nh per element, with elements spaced at
approximately 0.125 inch intervals and located
above the ground plane, the line will exhibit a
characteristic impedance of approximately 500
ohms. Were a line with such a high characteristic impedance to be used for the memory interrogate line, certain problems would be encountered. First the drive voltage required to
achieve 80 mao interrogate current would be
40V, and even with a constant voltage driver,
it is excessive from a practical circuit standpoint. Secondly, such a large excursion in
voltage on the interrogate line introduces noise
onto the sense line by capacitive coupling
through the element, even though this capacitance is only about 0.01 pf. per element.. Third,
if this transmission line consisted of 200 sections, corresponding to the required word
length in the array, the delay would be approximately 12 nsec. (Fig; 7). In order to
alleviate these problems, several steps were
taken to alter the electrical length, impedance
and driving characteristics of the lines. These
sfeps are described briefly below.
To reduce the driving voltage requirements,
the line impedance was. reduced by two means.
First, the elements were offset as shown in

I
1/

/
I

!

\

J1

I
:I

TIME BASE"' 2D NSEClDlV
VERT. SCALE = 2V/DiV

i

LINE IMPEDANCE

= !500

OHMS

\ \ !

'- bJ.V
Figure 7. Interrogate Pulse Propagation Through 200
Element Transmission Line.

Fig. 8 and treated essentially as two transmission lines in parallel, and further split into
two additional parallel lines. Since each wire
passes through only half as many elements
(and inductance) per unit of capacitance as for
the single line, the impedance is reduced to 0.7
of the single line value. It should be noted that
the delay per section of line is actually greater
for the offset placement by a factor of ·1.4, but
since only half as many sections are employed
(by driving in parallel), the net propagation
delay is reduced to 0.7 of the single line value.
The second means employed to reduce the impedance of the interrogate line is also shown
in Fig. 8. This method consists of introducing
a perforated metallic shielding mask around
each element between the two holes. This increases the capacitance per section by approximately another factor of three, and brings the
characteristic impedance down to approximately 200 ohms.
The methods described above, employed to
reduce the transmission line characteritic impedance, did reduce the drive voltage requirements to about 12 V and as a result, the capacitive coupling to the sense line through the
BIAX element was reduced accordingly. Even
so, an objectionable amount of noise was still
observed due to the coupling. Two measures
were taken to eliminate this problem. The
offsetting of the elements as shown in Fig. 8
necessitated driving the two lines in parallel.
Because of the inherent properties of the
BIAX element, interrogation can be accomplished with either polarity pulse, if it is in the

74

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

!LEMBn' PLACEMBn' • SIDE

Yin

IMTEIIlOG.\TE
DIlIVO

ELBIINT PLACEMENT· TOPYID
Figure.~.

Dual BIAX Interrogate Line-Physical Configuration.

same .direction as the previously established
flux around the interrogate hole. This property
of the BIAX element was used to reduce the
capacitively coupled noise to the sense line by
using pulses of equal amplitude and simultaneous rise times but of opposite polarity applied
to the offset lines. Since a given sense line
crosses both of these offset interrogate lines,
the total capacitive coupling is reduced to a
value proportional to the algebraic sum of the
opposite polarity interrogate voltages during
the rise time. Since this method did not. provide perfert cancellation of the capacitively

coupled noise, an additional method was employed to provide partial cancellation of remaining noise on the sense line. In Fig. 9 it
is seen that the sense line is divided into eight
segments of 32 bits each. Within each segment, the electrical length of the line is short
compared to the interrogate pulse rise time,
and one end of each segment is returned to
ground. When capacitive noise is introduced
into the segment, it propagates to the grounded
end and is reflected back to the source inverted, providing effective cancellation of the
noise pulse.

BIAX OUTPUT WHEN IHTERROGA TED

SENSE AMPLIFIER

20 OHM STRIP TRANSMl6SlON LINES

SENSE LINE LOCALLIZED GROUND PLANES

Figure 9. Sense Line Summing Equivalent Circuit.

A lOMe NDRO BIAX MEMORY OF 1024 WORDS

When an output is produced from an element by interrogation, the isolation resistors
shown in Fig. 9 create, in effect, a constant
current source. The sense amplifier is then
designed with a very low input impedance to
provide compatibility with the sense line summing method. In the present memory, the
sense amplifier has an input impedance of approximately 15 ohms, and receives its input
from the array not more than 10 nsec after the
50 % point of the interrogate pulse.
When the signals are observed at the output
of the sense amplifier the time delay (relative
to the interrogate pulse) depends ~oth upon
the physical word location relative to the sense
amplifier and the location of the bit in the
word relative to the interrogate driver. In
the present memory, this delay ranges from a
minimum of essentially zero to a maximum of
ten nanoseconds, not including the delay
through the sense amplifier. This variation,
added to the variation in decoding delay, renders it difficult, if not impossible to strobe all
192 sense amplifiers reliably with a pulse fixed
in time while still maintaining the required
access time. To avoid this problem, the pulse
used to strobe the sense amplifier is derived
from the same region of the array as is the
information. This can best be understood by
considering Figure 10. Each group of 48

75

sense amplifiers is accompanied by a 49th bit,
identical to the other 48, which provides the
input to a pulse generator ("T" pulse generator) the output of which is used to strobe the
48 sense amplifiers in that group. In so doing
the inherent time variations in signal output
due to word and bit location within the array,
degradation of the interrogate pulse rise time,
and variations in decoding time are automatically compensated for. Figure 10 also shows a
function block called "8" clock generator. The
pulse from this generator, which is also derived from the array, is used to set those output register flip flops which do not receive a
reset input from the "T" gate. This technique
permits the use of simple one input or "D"
flip flops 7 in the output register.
The final operation which occurs in NDRO
is selection, by the two most significant address
bits, of the proper group of 48 sense amplifiers
whose strobed outputs are to establish the state
of the memory output register. This selection
is accomplished by permitting only one of the
four "T" generators to be activated at any time
thus producing an output on only one of the
four "OR" inputs to each of the memory output flip flops.

Write Mode
It will be recalled that the organization of
the array for reading is as 256 words of 192
C819
BIAX ARRAY

256 WORDS

OUTPUT ReSISTER
C4 FLlP.flOPS)

Figure 10. 10 Mc. NDRO BIAX Memory Output Block Diagram.

76

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
.ITICYCU
_WIITI

PULSIS

IIT.ITI
PUUIS

IIT....TI LIllIS

y
-'fttTI
UlIS

Figure 11. BIAX Array Element Orientation and Write Current Program.

bits per word. For writing however, the
array is organized as 1024 words of 48 bits per
word, and conventional linear select techniques
a;e used. The elements are oriented and
wired in the array such that current pulses
pass in both the word and bit directions and
selective writing is accomplished by the coincidence of a word oriented word write pulse
and bit oriented write pulse. The orientations
of the BIAX elements within the array and the
TEWERATURE
CONTROLLED
VOLTAGE
~
REGULATORS

write current program are shown in Figure
11. The word write pulse currents consists of a
fixed sequence of two opposite polarity word
write currents, and a time-overlapping bit
current whose polarity depends upon the
binary state of the information to be stored.
In order to select the appropriate word of the
1024 for writing, a matrix of 16 word drivers
and 64 word switches, organized as shown in
Figure 12, is used.

j

TO:

{BIPOLAR BIT DRIVERS
WORD .1 DRIVERS
WORD.Q DRIVERS

ADDRESS
BUFFER

ADDRESS
...- - - - 1
10 BITS

4 BITS

ARRAY
(ORGANIUnOM FOR WRlnMG)
~-.... •024 WORDS
.. BITS PER WORD

6 BITS

WRITE CDlMAHD
DATAIMPUT

OBITS

Figure 12. Memory Write System Block Diagram.

A lOMe NDRO BIAX MEMORY OF 1024 WORDS

77

Receipt of the write command activates the
write cycle by starting the fixed sequence of
word current pulses and permitting the 48 bipolar bit drivers to generate currents in a direction dictated by the data inputs (Figure
11). 'The portion of the write cycle during
which element switching occurs, if it occurs at
all, is determined by the information carried
by the bit current and the previous history of
the element. Both the bit and word currents
are temperature compensated to permit optimum switching of the elements with minimum
disturb over a temperature range of ooe to
50°C. Nominal write system operating parameters for the memory are given in Table II.
MEMORY SYSTEM FABRICATION AND
PERFORMANCE

Fabrication and Packaging
The complete 1024 x 48 memory described in
the preceding portion of this paper was designed, fabricated and tested. The completed
memory is shown in Figure 13. In this photograph are identified the following essential
parts of the memory.
1. Array and Read Circuits
One of the four memory array planes is
visible in Figure 13. Note that the decoder
and interrogate driver circuits, located above
the array, and the sense circuits and memory
output circuits to the right of the array, both
are mounted as physical extensions of the main
array ground plane. This was done primarily
to minimize propagation times and to avoid .
ground noise problems. Each of the four array
planes is divided into eight sections as shown
in the photograph. This results from the required segmenting of the sense lines (refer to
Fig. 9), and because word write lines must be
terminated at 48 bi·t intervals. The allocation
TOTAL WRITE CYCLE TIME

5" SEC MAX

WRITE. READ CYCLE TIME

10" SEC MAX

WORD CURRENT AMPLITUDE FIRST (lIln)
(25°C)
SECOND (lion)

+200 ala
• 200 ala

BIT CURRENT AMPLITUDE
(25"C)

± 95

Table II. Write System Parameters.

Figure 13. 10 Me. NDRO BIAX Memory.

of spare word and bit lines is made so that
each of the eight sections contains two word
spares and two bit spares and a spare for the
'''T'' line. Therefore each section contains 34
x 52 or 1768 elements. Since each section is
identical, each array plane contains 14,144
BIAX elements and the entire memory array
consists of 56,576 elements. Figure 14 shows

ala

Figure 14. Detailed View of 10 Me. NDRO Array.

78

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

a detailed view of one section of the array.
From this photograph can be seen the dual
interrogate lines, offset to permit straight wire
looming. The element-to-element spacing in
both the horizontal and vertical directions is
0.125 inches. A shielding mask can be seen,
positioned between the holes of the BIAX
element forming the ground plane for the interrogate transmission line. In the lower
center of Figure 14 in the gap between the
shielding masks 'are the sense lines with their
isolation resistors, and the bit lines. Seen near
the top of the picture are the twisted pairs
which connect to the interrogate drivers, the
word write lines and word select diodes.
2. Write Circuits
The write circuits used in the memory can
be seen in Fig. 13 mounted in two card racks
below the array. These circuits are of conventional design and are the same type of circuits -used in other BIAX memory systems.
3. Power Supplies and Cooling Fans
Power supplies and blowers occupy the
lower regions of the memory cabinet, and are
of standard off-the-shelf variety. All power
supplies have voltage regulation of 0.170 or
better and are current limited to provide protection to the memory circuits.
M emory System Performance
The 10Mc. NDRO memory has been extensively tested to determine its performance
characteristics. Figures 15 and 16 show waveforms at various locations in the memory for
NDRO operation. Figures 15A through F

_Zi

'(

rr II..

If

\

II. MEMORY SYSTBI CLOCK

I, SLOWEST ADDRESS lIT

= '!CV!~v.

ERT. =5Y/DIV.

ERT. = 'lV/DIY.

fJ

'" J

....... 1-"

r"-'i'\

-

"

I

([\ (

:'\

\J \l!\J
I\..~ I\..r
oJ

U

C. INTERIOGATE PULSE

I>- SE"SE AMPLIFIER OUlPUT

./" ~.,.;"
E. TillE STROlE ("T") GATE OUTPUT

""

ERT.:: 2V/DlY.

J

\

f ... BIOIY OUTPUT IEGISTER FLIP.flOP

E,CEPT AS HOTEl> TIME lASE = 1II "SEC/I"
YERT, SCALE = 7¥/DI¥

Figure 15. 10 Mc. NDRO BIAX Memory Read Cycle
Timing Waveforms.

show the read operation from the beginning of
decoding, through the decoder and interrogate
driver selection, and through the sense amplifier and time strobing, and to the memory output register. Figure 16 shows detailed photographs of read circuit waveforms. In Figures
16C and D are shown the access time measurement from the 50 % point of the system clock
(negative going) to the response of the
memory output flip flop. This acces,s time represents the longest access time for any word
or bit in the memory.
The memory also underwent considerable
testing to determine its operating reliability
under various conditions of patterns and cycle
rates for both the NDRO and write/read
modes. To' facilitate th~ testing, a memory
exerciser which was capable of generating an
almost unlimited number of bit and word
patterns and error checking each pattern in
both NDRO and write/read, was employed. By

"~' ~-~;~ ~:~~~,

VIRT. = IIV/DIV.

"n.•

I(

A. IIITIRIOGATI I'IILSI

L

L INTIRIOGATI I'ULSiS
(POSITIve AND MlGATlY!)
NOR. • !M SIC/DIY.

VlRT. = 2VIDIV.

Figure 16. 10 Me. NDRO BIAX Memory Read Circuit Waveforms.

A lOMe NDRO BIAX MEMORY OF 1024 WORDS

utilizing this exerciser, errors from any origin
caused the equipment to stop and indicate the
word and bit location of the error. During the
equipment checkout phase, tests representing
voltage and write current variations, as well
as worst-case patterns and cycle times, were
run as a matter of course. To demonstrate
that reliable system operation was being obtained, each pattern was run for a ten minute
period of time; resulting in a total of 3.10 11 bits
having been error checked. In this time, each
bit in the memory was error checked 6.10 6
times, and because of the memory organization, had actually been interrogated 24.10 6
times. As an acceptance test for the memory,
fourteen patterns were each run for the required ten minute period, representing a total
of approximately 42.10 11 error checks of stored
information. Each pattern was also run for
the write-read-error check mode for a thirty
minute period with a read-after-write error
check at a write-read cycle time of 9 microseconds. 'The entire acceptance test procedure
involved approximately 40 hours of error free
system operating time.
FUTURE AREAS OF INVESTIGATION
Although work has been completed on the
memory system described in this paper, many
extensions of the techniques are possible. Below are described a few of the more promising
approaches and areas in which further work
is being done.

Variations in Word Organization
Although the memory. described in this
paper is organized as 1024 words of 48 bits per
word, since the array is organized for reading
as 256 words of 192 bits per word, many variations in effective memory organization are possible. For example, a read organization of 256
words of 192 bits per word could be readily
achieved with minimum modifications. Similarly, word lengths between 48 and 192 bits
can be achieved. In summary, many combinations of word lengths and bits per word can be
realized for NDRO operation with the existing
array design, as long as the total storage capacity is not exceeded, although with the present array, writing must still be performed on
a 48 bit per word basis.

79

Access Time Reduction
In Figure 2 at the beginning of this paper,
it was noted that the BIAX array contributed
only about 10 nanoseconds to the 80 nanosecond
typical access time. In view of this it appears
quite feasible to reduce the access time substantially by appropriate circuit design effort,
as the NDRO operation of the BIAX element
is not a limiting factor.
Faster Read Cycle Times
In the same way that the access time can be
reduced, it is quite possible to increase the
reading rate to 20 Mc. or more while still using
the same array and system organization principles.
Increased Storage Capacity
The present memory capacity of 1024 words
in no way represents the practical limit for
this fast NDRO technique. It seems quite
likely that word capacities of two or four times
the present memory could be achieved with
perhaps a 120 nanosecond access time.
Reduced System Volume
No effort was made to minimize the physical
size of the present memory, rather it was designed specifically for physical access to the
array. By appropriately folding the array and
repackaging the circuits, the physical size of
a system should be consistent with other· core
memories of similar capacities.
Airborne Applications
The BIAX element and its low power nondestructive readout properties are particularly
well suited for airborne applications. For this
reason, BIAX elements for use at temperatures
from -55°C to+100°C have been developed
by Aeronutronic and are being employed in
various systems. 'The techniques used in the
10 Mc. NDRO BIAX memory can be readily
applied to this type of element to produce very
fast NDRO operation over a wide range of
temperature.
MicroBIAX Applications
The BIAX element used in the 10 Mc. NDRO
memory employed elements developed before
the start of the memory project. A major inhouse program is now underway to develop a
MicroBIAX element having outside dimensions
of 30 x 30 x 50 mils. These elements offer

80

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

greatly improved characteristics, particularly
for write cycles of 1-2 JJ. sec. In addition,
faster NDRO operation, better performance
over wide temperature ranges, simpler array
wiring configurations, as well as the obvious
sIze advantages are offered by the MicroBIAX
element. The potential applications for this
class of new elements is almost unlimited, and
it is expected that MicroBIAX elements will
be employed in most of the new memory systems which are developed in the future.
ACKNOWLEDGMENT
This work was sponsored in part by ·the Department of Defense. Many people in addition
to the authors have contributed to the success
of the program, but in particular the efforts of
C. M. Sciandra in preparation of elements and
C. L. Cantor and M. J. VanZanten in the design and testing of the system are greatly
appreciated.
REFERENCES.
1. J. A. RAJCHMAN: "Magnetic Memories;
Capabilities and Limitations", Computer
Design, September 1963.

2. C. L. WANLASS and S. D. WANLASS, "BIAX
High Speed Computer Element", WESCON, 1959.
3. DUDLEY A. BUCK and WERNER 1. FRANK,
"Nondestructive Sensing of Magnetic
Cores", AlEE Technical Paper 53-409,
October 1953.
4. ATHANASIOS PAPOULIS, "The Nondestructive Read-Out of Magnetic Cores", Proceedings of the IRE, Vol. 42, pp. 1283-1288,
August 1954.
5. U. F. GIANOLA and D. B. JAMES, "Ferromagnetic Coupling between Crossed Coils",
Journal of Applied Physics, Vol. 27, No.5,
pp. 608-609, June 1956.
6. JACOB MILLMAN and HERBERT TAUB, Pulse
and Digital Circuits (Mc Graw-Hill Book
Co., Inc., New York, 1956), Chap. 10, pp.
291-295.
7. MONTGOMERY PHISTER, JR., Logical Design
of Digital Computers, (John Wiley & Sons,
Inc., New York, 1958), Chap. 5, p. 126.

ASSOCIATIVE MEMORY SYSTEM
IMPLEMENTATION AN D CHARACTERISTICS
J. E. McAteer and J. A. Capobianco
Hughes Aircraft Company, Ground Systems Group
Fullerton, California
and
R. L. Koppel
Autonetics Division of North American Aviation
Anaheim, California

choice of the mechanization methods is dependent on the application and would be a result of
detailed system analysis and tradeoff studies.
The first part of this paper details the mechanization techniques of an associative memory with
the BIAX element. In particular, a new mode
of use of the BIAX element is presented which
enables extremely fast search times to be realized. The number of functions which an AM
can perform are many and varied. These functions may be broadly classified in the following
way:

1. INTRODUCTION

The implementation of a new system utilizing
state-of-the-art technologies requires a careful
engineering evaluation of all parameters affecting such a design. In particular, when new system concepts are needed and the available devices for mechanization have been designed for
a different class of system, the problems become
much more severe. Such is the case with Associative Memory (AM) systems where an entirely new system organizational concept places
exacting requirements on the existing technology of information storage, as is evidenced by
the many techniques which have been proposed
for implementation. 2 - 8

1. Search Functions
2. Write Functions
3. Readout Functions

It has been determined through study and
evaluation of storage media that the BIAX*
element,l a rYlultiaperture ferrite core, possesses
the most desirable characteristics for implementing an associative memory today. The
utilization of the BIAX element in the mechanization of an AM is not limited to -one configuration. The repertoire of possible methods
consists of one-BIAX-per-bit and two-BIAXper-bit schemes, and, within each of these areas
there exist different ways of utilization. Th~

* Registered

The functions which are provided in a given
system are, as mentioned, dependent on the application. In addition, the methods of performing some of these functions, in particular the
searching types, are dependent on the speed requirements. These in turn will, to some extent,
determine the mechanization method chosen.
The second part of this paper details the various functional characteristics an associative
memory might have. A chart is presented
which delineates the pertinent characteristics
as a function of the mechanization technique.

Trademark, Philco Corp.

81

82

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

The last part of the paper shows the results
obtained from a demonstration model of an AM
which utilizes the BIAX in the new mode of operation mentioned above.
2. BIAX IMPLEMENTATION OF ASSOCIATIVE MEMORIES

2.1.0 Normal BIAX Operation, Using TwoBIAX-Per-Bit
The BIAX is a rectangular block- of ferrite
having two orthogonal holes: the storage (information) hole and interrogate hole are as
shown in Figure 1. Also shown in the figure
are the read and write wave shapes and the
readout signal produced by the BIAX element
when operating in the normal mode. Note that
the sense signal is bipolar and occurs during
both the rise and fall time of the interrogate
current and that the phase of the signal is information dependent. THe sense signal is
caused by a domain rotation phenomenon which
results from the interaction of storage and interrogate hole flux, in the material between the
holes, during interrogation. An AM implemented with the normal mode of the BIAX operation requires a serial-by-bit interrogation to
prevent possible cancellation of pulses on the
word-oriented sense lines.

Figure 2 depicts the technique used in the
two-BIAX-per-bit method. The normal and
complement of each word are stored. In order
to decrease the required search time, the interrogate currents are staggered by an amount
equal to or greater than the rise time of the current and left on until the last bit has been
searched. This prevents the output signals
produced by the trailing edge of the interrogate
current from interfering with sense signals produced by subsequent interrogate pulses.
If the sense signal polarities are as shown in
Figure 1, and if the normal bit is searched when
looking for 0 at a bit position and the complement bit is searched when looking for a 1, then
the input to the sense amplifier will consist of
a series of negative pulses for a matching word.
This is due to the fact that all elements interrogated would be in the 0 state. Should a mismatch occur at a bit position, a positive pulse
will occur on the sense line. For example, in
Figure 2, drivers C1, N2, N3, and C4 wouJd be
turned on. In Word No.1, several elements in
the 1 state are interrogated resulting in a mismatch (positive) signal, while in Word No.2
all elements interrogated contain 0 and only
negative pulses occur on the sense line.

2.2.0 Operation of the BIAX in the Hughes
Unipolar Mode
2.2.1 Description of Operation
In the course of the mechanization studies, a
technique for using the BIAX which greatly enh~nces the search speed has been invented. This
new mode of operation results in a signal for a

WRITE

r- ___

+1/3 I

~'1':

___ """

W,

~~~--~(

,

,)~------

,

-1/3 IW ~ -

+2/3

-

-

~'O" -

- -

WORD NO.3

--'
WORD NO.2

'w

ww

WORD NO.1

-2/3

'w

INTERROGATE
DRIVERS

READ
INTERROGATE

,~--------------~~~------

SENSE "1" "~---------~v---SENSE "0"

~

f""\

~---

Figure 1. Conventional BIAX Operation.

Figure 2. Typical Search Operation.

ASSOCIATIVE MEMORY SYSTEM IMPLEM.ENTATION

83

stored 1 and no signal for a stored 0, with a
very high element signal-to-noise ratio. Thus,
unipolar rather than the conventional bipolar
operation is obtained. This technique allows
parallel-by-bit interrogation. Thus, the search
time is not directly proportional to the number
of bits per word, as in the serial-by-bit approach, but is proportional to the number of
bits, per word divided by the number of elements interrogated simultaneously.

tory basis twenty-bit words have been interrogated with resultant word signal-to-noise ratios
(twenty 0 signals versus one 1 signal) greater
than 3: 1 (see Section 7). In a practical system, the number interrogated simultaneously
would be smaller due to environmental conditions and circuit tolerances. However, since the
decrease in search time is directly related to
the number of elements interrogated simultaneously, dramatic improvements result.

Using the same criteria for selecting the normal or complement driver as before, it can be
seen that for the matching word, no signal will
occur on the sense line since all O's are' being
interrogated. Therefore, if the lements are interrogated simultaneously, only 0 noise buildup
will be seen. For a word which mismatches
(interrogation of an element in the 1 state), a
large output signal will result.

The method of obtaining this mode of operation is shown in Figure 3. The element is first
written to the 1 state by a current pulse large
enough to saturate the storage hole (Figure
3B) . This pulse is then followed by a smaller
pulse of the opposite polarity which is the Word
Write 0 current. If a 0 is to be written then, in
coincidence with the Word Write 0 current, a
current pulse (Bit Write 0) is produced in the
interrogate hole and the flux around the storage
hole is reduced to a very small value. If a 1 is
to be written, the Bit Write 0 pulse does not

The number of elements which may be interrogated simultaneously is a function of the signal-to-noise ratio of the elements. On a labora-

WORD

WRTE----'

"1"

INTERROGATE
HOLE

"1"

BIT W R I T E - - - - - C \ j J . . . - - -

INTERROGATE---lJ1j

"1"
FLUX DUE

ELEMENT OUT--

TO INTERROGATE
HOLE

RESULTANT
FLUX
VECTOR
FLUX DUE TO
STORAGE HO LE
MATERIAL

INTERROGAT~TWEEN
FIELD

RESULTANT

HOLES

Ay-""';"-"0"

~RESULTANT

.Lp---~~

REDUCTION
IN STORAGE
FLUX

.",,"

I
I
,,"
I
-------~-~
~INTERROGATE
.""""

INTERROGATION OF
STORED "ONE."

Figure 3. BIAX Element Operation in the Unipolar Mode.

84

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

occur and the storage hole flux remains in a
saturated condition. Part C of Figure 3 illustrates the technique by showing what occurs in
the common volume of material between the
two holes.
This technique has one main disadvantage:
Where writing into fields of words is desired,
the disturb characteristics of the element in the
o state result in a lowered signal-to-noise ratio.
This is due to the fact that the flux around the
storage hole of the unselected bits will "creep"
to a higher value due to the word oriented disturb currents and thus produce a larger output
for the 0 state than is desired. However, the
method has many advantages. One which has
been mentioned is that of decreasing the search
time. This reduction in the basic search time
can be traded for hardware cost by permitting
time-sharing of sense amplifiers and thus reducing the number of circuits required. In addition, it can be seen from Figure 3A that all
windings are orthogonal and thus the array
noise problem is reduced and, since no woven
windings are needed, the array fabrication is
extremely simple.

2.2.2 Ternary-State Reading 1'n the Hughes
Unipolar Mode
A significant aspect of the unipolar mode of
operation is that by reversing the sense winding between the normal and complement words
and using serial-by-bit interrogation, a ternary
output results. That is, if a bit matches the
search, then no output results; if a bit mismatches, then the output can be positive or
negative dependent upon whether the normal or
complemeht bit was interrogated. In this manner it is possible to classify all words at one
time as less than, greater than, or equal to the
search word.
This can be explained by Figure 2. Assume
that an element in the 1 state (signal output
during interrogation) in the normal word produces a positive output due to the reversed
sense winding. If the same criteria are used
as before for selecting interrogate drivers,
Word No.2 will again produce no signal since
it exactly matches the search word, and thus
all elements interrogated are in the 0 state.
However, vVord No.1 mismatches in the first
bit position and, since the complement bit is in-

terrogated, will produce a negative output indicating that Word No.1 is less than the search
word. Word No. 3 agrees in the first bit position with the search word and thus will produce no output for that interrogation. However, in the second bit position a mismatch occurs and, since the normal bit is ~nterrogated, a
positive pulse occurs indicating that Word No.
3 is greater than the search word. Thus, (1)
if a positive pulse appears on the sense line
first, that word is greater than the input word;
(2) if a negative pulse appears on the sense
line first, that word is less than the word; and
(3) no pulse on the sense line indicates an exact
match.
The technique described is quite significant in
that the search time now is independent of the
search type for these three searches and, with a
tristable sense circuit, all words are classified
simultaneously. With the conventional mode of
operation described previously, only two sense
signals may be derived: positive and negative.
Therefore, in order to accomplish limit type
searches, a stepping algorithm (see the section
on Associative Memory Search Functions)
which alters the search word between steps
must be used or logic in the sense amplifier is
necessary to determine if the first mismatch
occurs when a 1 or a 0 is searched for (if the
first mismatch occurs when a 1 is being
searched for the search word is obviously
larger than the stored word and vice versa).

2.3.0 Operation Using One BIAX Per Bit
Mechanizing an AM with one BIAX per bit
requires a serial-by-bit interrogation. However,
the method of accomplishing this interrogation
can take several forms.
One possible way to interrogate is to ripple
through the bits serially and gate the sense signal logically at each amplifier against the information in the corresponding bit position of
the input word. In this manner, mismatches
can be detected and, if a tristable sense circuit
is available, the limit searches (LESS THAN
and GREATER THAN) can be directly implemented without use of an algorithm.
Another way to interrogate involves an interrogate-priming cycle and does not require logic
in the sense amplifier. Referring to Figure 1,
it can be seen that the sense signals for a 1 and

ASSOCIATIVE MEMORY SYSTEM IMPLEM.ENTATION

o are out of phase for the same interrogation
pulse. If the sense output were examined during the rise time of the interrogate when
searching for a 1 and during the fall time when
searching for a 0, it can be seen that, if a match
occurs, the pulses on the sense line would all be
positive. If a mismatch occurs (for example,
examining the output of an element in the 1
state during the fall time of the interrogate
pulse); then a negative sense signal occurs.
The above process can be implemented in a
straightforward manner by merely turning on
(priming) all interrogate drivers which are
to search for O's before rippling through the interrogate cycle and turning them off at the
proper time during the interrogate cycle. Figure 4 depicts the procedure for accomplishing
the interrogation. 11 and Is are turned on during the priming period since they are to search
for 0 as indicated by the contents of the Data
Register. In Word No.1, the corresponding
bit positions contain a 0 and 1 respectively, and
hence no output will appear on Sense Line 1
during the priming period because of cancellation. However, Word No. 2 contains 0 in both
positions and therefore a double amplitude
negative pulse will appear on Sense Line 2. During the interrogate period, a negative pulse appears on Sense Line 1 indicating that the word
mismatches, while Sense Line 2 has all positive
pulses which indicates a matching condition.

SENSE LINE
NO.2

SENSE liNE
NO.1

INTERROGATE
DRIVERS

SENSE
LINE - " ' - - - - - '
NO.1
SENSE
LINE
NO.2

Figure 4. Interrogation Using One-BIAX-Per-Bit.

85

The method of implementation described here
is quite straightforward and is such that conventional random access BIAX array windings
with some modifications can be used. In addition, conyentional memory circuitry, with the
exception of the word-oriented sense circuits,
can be used, and data readout is provided with
relative ease. This technique would, how-ever,
be somewhat slower than the parallel-by-bit
two-BIAX-per-bit scheme. Since the BIAX is
operated in its normal mode, the disturb characteristics and writing mode are such that alteration of arbitrary fields within a word can
be provided.
3. ASSOCIATIVE MEMORY SEARCH
FUNCTIONS

3.1.0 EXACT-MATCH Search
There are a variety of search types which can
be implemented in an associative memory.9,1'2
These searches can be performed on an entire
data word or on specified fields. The selection
of fields is accomplished by having the ability to
mask the data word. That is, any bit of the
comparison word can be masked to a "don't
care" state, and only those bits not masked will
participate in the search. Thus, there is inherently a ternary search characteristic (1,0, don't
care) which may be taken advantage of in some
cases to decrease the search time. A brief description of search types follows:
The most commonly used search operation is
the EXACT-MATCH search. This search, as
the name implies, would locate all words in
memory which have a one-to-one correspondence with the bits of the search word. That
is, any word in memory which mismatches the
search word in one or more bit positions does
not satisfy the search criterion. The search
time is proportional to the number of bits in
the word with the exception of the parallel-bybit techniques.

3·2.0 Limit-Type Searches
Under this category are included GREATER
THAN, GREATER THAN OR EQUAL TO,
LESS THAN, and LESS THAN OR EQUAL
TO searches. The functions of these search
types are fairly obvious. The time involved in
performing these searches is dependent upon
the method of mechanization. In the two-

86

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

BIAX-per-bit scheme, with the ternary output
described previously, the search time is the
same as an EXACT-MATCH search and no
logic gating is required in the sense circuitry.
In order for the other techniques to have a comparable search time, logical gating is necessary
in the sense circuitry at each bit interrogate
time.
Another technique for accomplishing the
limit-type searches is to have an algorithm
which alters the search word and then looks
for exact matches at each step. In its simplest
form this would consist of incrementing or decrementing a counter for each step and performing an EXACT MATCH search. However,
by taking advantage of the ternary characteristics of the interrogation (1, 0, don't care), it
is possible to reduce the number of steps required. With this method the maximum number of steps required is eqiial to the length of
the field participating in the search and, on the
average, will be one-half the length of the field.
For example, if a 12-bit field were being used in
a LESS THAN OR EQUAL search the maximum number of steps required to perform the
search is 12 (contrasted to a maximum of 4096
in the simpler counter approach). Thus, if any
word matches at one of the steps, it satisfies the
search criterion. This method, while not requiring logical gating of the sense circuits, results in a significant increase in component
count if the field.s are not restricted. The process of finding all words in memory which lie
between some specified bounds can be accomplished by the successive application of the
GREATER THAN OR EQUAL TO and LESS
THAN OR EQUAL TO searches to the same
field with a change of the search word. A LESS
THAN OR EQUAL TO search is performed on
the upper bound search word which therefore
eliminates all words greater than the upper
bound. The GREATER THAN OR EQUAL TO
search on the lower bound search word then
leaves those words lying within the bounds indicating a matching condition. A somewhat
more efficient algorithm can be implemented if
the upper and lower bounds are available simultaneously.

3.3.0 Pattern Recognition
Another useful function which can be provided in an associative memory is a form of

pattern recognition. As an example, consider
the case where it is desired to compare incoming
patterns with stored patterns in the associative
memory.
An incoming pattern is normalized, sampled,
and quantized at set intervals. These quantized
samples then become the keys with which the
search is conducted. Since exact pattern
matches are impractical, there are two words
stored in memory (two-BIAX-per-bit mechanization is used) for a single pattern. The word
outputs, which indicate match or mismatch, are
OR'd together and "don't care" bits are written
into the words in memory. That is, if a bit
position is in the "don't care" state, no response
will be obtained from the bit during interrogation for a 1 or a O. This has the effect of performing a BETWEEN LIMITS search in memory and thus effectively establishes an envelope
about the desired pattern. For example, if there
are 32 quantization levels and one sample point
has the value of 23, then the words stored in
memory might by 101XX and 110XX (where X
indicates a "don't care" bit) thus allowing a
match indication for that point if the incoming
waveform has a value between 20 and 27. Thus,
the tolerance allowable is accounted for in the
memory and is subject to control. This is illustrated in Figure 5.

3.4.0 Supplementary Search Operations
Ordered Retrieval-In some problems it is
desired to retrieve information in an ordered
manner. In a conventional system this can be

30

25

a
:::;

~

10

QUANTIZATION POINTS

Figure 5. Tolerance Envelope Used in Pattern
Recognition.

ASSOCIATIVE MEMORY SYSTEM IMPLEM.ENTATION

87

a very time-consuming process. Using the ternary characteristics of the associative memory,
much more efficient ordering is possible. 10, 11, 13

and extend its range of usefulness. The writing functions which are provided in a system
would be strongly application dependent.

Minimum and Maximum Searches-In some
applications it is desired to find the word in
memory which has the minimum value, within
the field, with respect to all other words in
memory. The algorithm for accomplishing
this is that which would be used for ordered retrieval. The algorithm would terminate when
the first single response occurs.

Sequential Load-In some applications,
blocks of data may be transferred to the associative memory for use in subsequent searches.
Sequential load starting from the first word location is then useful as it allows the words to
be loaded very rapidly by minimizing the controls necessary while retaining a spatial relationship with respect to the source store. In a
partial load, word locations not written into can
be prohibited from responding to subsequent
searches.

The maximum search would use the same algorithm as for inverse ordered retriev~l.
Nearest Neighbor-The capability of determining the nearest numerical neighbor above or
below the value of the selected key can be implemented by the use of an ordered retrieval
algorithm. This is accomplished by using either normal or inverse ordered retrieval starting from the initial value of the key. A more
complex algorithm can be implemented to obtain the nearest neighbor on either side if it is
desired.
Composite Searches-In some instances it is
desirable to perform searches on different keys
and to specify a logical relationship between
the separate key searches. Accordingly, only
those ·words \vhich satisfy the logical relationship and key searches are retained. For example, if there are five keys, A, B, C, D, and E, it
might be desired to perform an EXACT
MATCH on key A, GREATER THAN OR
EQUAL TO on key B, BETWEEN LIMITS on
key C, and LESS THAN OR EQUAL TO on
keys D and E. In addition, logical relationships
such as ABCDE, ABC+DE, may be required.
This type of search can be very useful in a variety of applications. The possibility of providing a match indication if a ·portion of the search
keys match could also prove useful.
4. AM WRITING FUNCTIONS
As with the search functions there are a number of different writing functions which may
be provided with an AM. As might be expected
some of these functions are identical with the
normal writing modes encountered in conventional memories. However, there are also those
modes which are peculiar to the AM organization and which add to the power of the system

Random Load-Another loading feature
which is often useful is the random load. This
is the same as for a conventional random access
memory and requires that the physical location
(address) to be written into be specified.
Load First Empty Location-An associative
memory can be implemented to keep track of
its own empty locations, such that when a word
is to be entered, it is automatically writtten into
the first empty location. In a memory where
the retrieval time is location dependent, this is
very effective since all data is held at the
"front" of the memory, thus minimizing access
time. This data-packing feature can be very
useful.
W rite "Don't Care" Bit-Masking within the
data word in the associative memory itself can
be accomplished by writing a bit to the "don't
care" state. With this technique bounds can
be stored in the memory as described previously. This is one of the more interesting features which should find great utility. The twoBIAX-per-hit schemes are, at present, the only
techniques which can be used to accomplish this.
Field Alteration-The ability to alter a single
bit or field of all words or selected words as a
consequence of the result of a search is another
writing characteristic which might be provided.
This feature is particularly useful when using
the memory as an aid to parallel computation.
The element must be operated in the conventional mode to implement thiB feature. This
could also be termed "writing through a mask."
Memory Partitioning-It is possible to partition an associative memory so that there effec-

88

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

tively exists "micro-associative memories" within the main associative memory. This feature
is useful when several types of data are stored
and the access time needs to be kept to a minimum. Thus, only that portion of the memory
containing the data to be interrogated is accessed and the non-pertinent data for that
search is bypassed. This of course assumes that
the memory contains multiple planes and the
normal search process consists of a sequential
search of the planes (all words in a plane are of
course searched in parallel) .
5. AM READOUT FUNCTIONS
As with the other characteristics of an associative memory, there are a number of different
types of readout possible. The type of readout
necessary is, of course, dependent upon the application.
Address Readout-In an application where
the key or keys are well defined, the use of an
associative memory with a conventional random
access memory may be advantageous. In this
mode, a block of keys is transferred from the
conventional memory to the associative memory
in a specified seq~ence so that the physical location of the keys in the associative memory
is spatially linked with data stored in the conventional memory. Upon searching the associative memory, the output indicates the addresses of the words in the random access memory which satisfy the applied search criteria.
This mode may be particularly useful where the
ratio of the search key to the remaining data
word is small, since at present the associative
memory is expensive relative to conventional
random access memory.
Data Readout-The ability to read out the
contents of an associative memory is another
feature which is useful. The flexibility that
this allows in a system can be significant, since
any portion of the data word may be searched
on, and the data word itself, or perhaps the portion of the data word not searched, can be read
out.
Multiple Match Resolution-In any search the
possibility of more than one word matching the
applied criteria has to be contended with. The
ability to retrieve all matching words is, in most
cases, a necessity. This is usually accomplished

by retrieving them sequentially through a commutating network. An efficient design of the
commutating network is necessary since it can
be an important factor in the retrieval time.
Yes-N o-In some applications a decision is
made regarding the next course of action after
interrogation of the memory, bas"ed only on information as to whether or not the search has
been matched. The Yes-No operation is a relatively easy feature to provide.
Count Matches-When the memory is
searched there is a possibility, dependent on the
application, that a significant portion of the
memory could respond to the search. In such
cases, an indication of the number of matches
which exists may be wanted before output occurs. If the dump is excessive, then the search
may be refined to reduce the number of response.
6. CHARACTERISTICS OF AM SYSTEMS
The foregoing has been a brief description of
some of the more salient features of AM mechanization techniques and functions. Table I
lists the techniques mentioned and shows the
relative performance of the mechanization
schemes. It can readily be seen from the discussion above and Table I that an absolute comparison of techniques is not practical. For an
absolute comparison, detailed knowledge of the
system application would be required, so that the
various factors and tradeoffs could be intelligently evaluated.
N one of the schemes shown in Table I requires logical gating of the sense circuits for
performing limit-type searches. Thus, for
Schemes 11, 3, and 4, a stepping algorithm
(similar to that in Ref. 11) is used for these
search types and therefore the limit search time
is a function of the length of the field used in
the search. However, by providing logic in the
sense circuit, the limit search time for these
three schemes becomes proportional to M, the
number of bits per word. The merits of providing this mode would be ascertained from the
total system analysis.
In the equations for the relative limit search
time, the first term represents the time required for storage of intermediate results (considering one unit of time as the time between

89

ASSOCIATIVE MEMORY SYSTEM IMPLEM.ENTATION
Table 1.

Scheme
1

Mechanization

Relative
Exact
Match
Relative Limit Data
Search
Writing
Time
Search Time

Two-BIAX-per-bit
Signal-no signal

M

it

Binary sense
output
2

Associative Memory System Characteristics.

E+~
-2k (ave)
2
3F

+

~

k

Whole word
only.
M

M

Ternary sense
output

3

E+~
-2 (ave)
2

Two-BIAX-per-bit
Signal-signal

M

3F

+

3F

+

Restriction
On Fields For
L:ilJ11.t Search*

Additional
array windings
required.

Fixed fields
only.

Additional
array windings
required.

No restrictions
(any combination
of bits selected
by mask permissable)

Wrih'
IIDon't Care"
Bit
Available
Yes

I

(max)

Two-BIAX-per-bit
Signal-no signal

Whole word
only.

Data Reading
(Additional
Array
Reauirements)

~ (max)

Yes

Unrestricted
No new windings Fixed fields only
required.
as to
location and
number of bits

Yes

No new windings Fixed fields only
Unrestricted
required
as to
location and
number of bits

No

Binary sense
output
4

One-BIAX-per-bit
Signal-signal

M

~

2

(ave)

6F + ~ (max)

Binary sense
output
:r..mEND:

M
k
F

Number of bits per word
Number of bits per word interrogated simultaneously
Field length used in limit search

successive interrogations). Thus, since the average number of steps (field interrogations) in the
incrementing algorithm is one-half the field
length, the number of storage cycles required is
F /2 and, in the type of system being considered,
the storage cycle is about three times the "ripple" time, hence the term 3F /2 in Scheme 1.
The second term represents the total "ripple"
interrogate time. Since again F /2 steps are required on the average, and there are F /k ripple
times, the total is F2/2k. Of course if k = 1

ilSee text..

(serial-by-bit interrogation) there results the
equations shown in Scheme 3. In Scheme 4 the
first term is increased due to the priming cycle
and the need for sense amplifier recovery due
to the priming cycle.
The table attempts to compare systems of approximately· equal logical complexity, hence the
restriction on the fields in the limit searches.
Obviously, it is logically possible to have completely variable fields for the limit searches in

90

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

all Schemes at the expense of additional components (which can be quite significant in number) .

of information are stored, there are therefore
340 bits in the array (the complement of the
20-bit word is not needed for the experiments
for which this word is intended).

7. THE ASSOCIATIVE MEMORY MODEL

The block diagram of Figure 6 is not complete
in every detail but shows the more pertinent
features. The Data and Mask Registers con'sist of a bank of 10 manual switches each with
the provision for patching the address counter
into the Data Register to permit dynamic
search and write operations. The model is also
capable of performing "write" and "read" in a
single step process by means of push button control. The search timing can be controlled to
allow serial-by-bit operation or parallel-by-bit
with k from two to ten.

Of the techniques for mechanization described earlier, the only one which departs significantly from the conventional use of the
BIAX is that which produces signal-no signal
operation. For this reason it was decided to
verify the approach experimentally by the construction of a model which utilized this new
mode of operation.
The block diagram of the model is shown in
Figure 6. The array portion of the system consists of 16 words of 10 bits each, and one word
of 20 bits for purposes of signal-to-noise experiments. Since both the normal and complement

Figure 7 shows three photographs of the
demonstration model. The top figure is inter-

WORD WRITE
DRIVERS
WORD WRITE
DECODER

SENSE
AMPLIFIERS
WORD WRITE
SWITCHES

CLOCK
INPUT

WRITE

READ

Figure 6. Simplified Block Diagram of Model of Associative Memory.

ASSOCIATIVE MEMORY SYSTEM IMPLEMENTATION

91

The model has been operated at search clock
rates of 2Mc (limited by external equipment)
with simultaneous interrogation of all bits of
the word (k = 10).

8. CONCLUSIONS
This paper has presented several techniques
for the utilization of the BIAX in an associative
memory system. The techniques presented have,
in some cases, significantly different operating
parameters. In addition, the influence of the
various techniques on the search speeds has
been pointed out. From this discussion it can
be seen that the number of trade-off areas
which exist, and the resulting influence on system complexity and performance, make it necessary to have an intimate knowledge of ultimate
system utilization in order to effect a proper
associative memory design.
ACKNOWLEDGMENTS

Figure 7. Photographs of Associative Memory Model.

esting in that it shows that no woven windings
are necessary in the array. This suggests an
array structure with all elements in contact
which provides highly compact and noise-free
systems. The model proved that the technique
is valid and could be applied to larger systems.
Figure 8 shows waveform photographs obtained from the 20-bit evaluation word. The
write program is shown in part (a); part (b)
shows the interrogate current waveform and
the disturbed 1 output of a single element.
Part (c) shows the 0 output of a single element, which together with part (b) indicates
SIN ~ 40. Part (d) shows the result of interrogating a string of 20 elements, 19 of which
have stored O's while the 20th has stored in it a
1. Part (e) shows the result of interrogating
the same string of 20 elements while all are in
the 0 state. Comparison of parts (d) and (e)
clearly indicates a sense winding output signalto-noise ratio of better than 3 :1, which permits
relatively straightforward amplitude discrimination.

The work presented in this paper is the result of the contributions of many people. The
authors would particularly like to acknowledge
the contributions of L. H. Adamson and D. A.
Savitt.
REFERENCES
1. WANLASS, C. L., and S. D. WANLASS,
"BIAX High Speed Magnetic Computer
Element," WESCON Convention Record,
Part 4, pp. 40-54, San Francisco, California, August 18-21, 1959.
2. KrSEDA, J. R., H. E. PETERSEN, W. C. SEELBACH, and M. TEIG, "A Magnetic Associative Memory," IBM Journal of Research
and Development, Vol. 5, pp. 106-121, April
1961.
3. BROWN, J. R., Jr., "A Semi-Permanent
Magnetic Associative Memory and Code
Converter," Special Technical Conference
on Nonlinear Magnetics, Los Angeles, California, November 1961.
4. LEE, E. S., "Solid State Associative Cells,"
Proceedings of the Pacific Computer Conference, California Institute of Technology,
March 15-16, 1963.
5. SLADE, A. E., and C. R. SMALLMAN, "Thin
Film Cryotron Catalogue Memory," Sym-

92

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

(A)

200 MA/CM,

WRITE PROGRAM
UPPER TRACE WSI, WSO
LOWER TRACE PWIO

ill SEC,CM

(8)

UPPER TRACE - INTERROGATE CURRENT
LOWER TRACE - DISTURBED "ONE"
OUTPUT FROM SINGLE ELEMENT

400 MA. CM,
IIlSECCM

100 MA,CM,
0.111 SEC CM

50 MV, CM,

O.ill SEC CM

(C)

LOWER TRACE - "ZERO" OUTPUT FROM
SINGLE ELEMENT

50 MV CM,

O.ill SEC CM

(0)

LOWER TRACE -INTERROGATION OF 20
ELEMENTS; A SINGLE DISTURBED "ONE"
IN SERIES WITH 19 "ZERO'S"

50 MV CM,

O.ill SEC CM

(E)

LOWER TRACE - INTERROGATION OF
20 ELEMENTS - ALLIN"ZERO"STATE

50 MV CM,
0.111 SEC CM

Figure 8. Waveforms Showing Unipolar Operation in the Associative Memory Model.

posium on Superconductive Techniques for
Computing Systems, Washington, D. C.,
May 1960.
6. NEWHOUSE, V. L., and R. E. FRUIN, "A
Cryogenic Data Addressed Memory," Proceedings of the Spring Joint Computer
Conference, May 1-3, 1962.
7. DAVIES, P. M., "A Superconductive Associative Memory," Proceedings of the Spring
Joint Computer Conference, May 1-3,1962.
8. ROWLAND, C., and W. BERGE, "A 300 Nanosecond Search Memory," Proceedings of
the Fall Joint Computer Conference, N 0vember 1963.
9. ESTRIN, G., and R. FULLER, "Algorithms
for Content Addressable Memories," Pro-

ceedings of the Pacific Computer Conference, November 1963.
10. SEEBER, R. R., "Associative Self Sorting
Memory," Proceedings of the Eastern Joint
Computer Conference, pp. 179-188, December 13-15, 1960.
11. SEEBER, R. R., and A. B. LINDQUIST, "Associative Memory with Ordered Retrieval,"
IBM Journal of Research and Development, Vol. 6, pp. 126-136, January 1962.
12. FALKOFF, A. D., "Algorithms for ParallelSearch Memories," Journal of the ACM,
Vol. 9, pp. 488-511, October 1962.
13. LEWIN, M. H., "Retrieval of Ordered Lists
from a Content-Addressed Memory," RCA
Review, Vol. XXIII, No.2, pp. 215-229.

A 16k-WORD, 2-Mc, MAGNETIC THIN-FILM MEMORY
Eric E. Bittmann
Burroughs Corporation
Defense and Space Group
Great Valley Laboratory
Paoli, Pennsylvania
INTRODUCTION
Small magnetic thin-film temporary-data
memories 1 ,2 have been in use in operational
computers since mid-1962, when the prototype
Burroughs D825 Modular Data-Processing System3 ,4 was installed at the U. S. Naval Research
Laboratory. To the present, some 43 additional
D825 systems have been placed in use or ordered. The experience gained in the successful
operation of these small thin-film stores has encouraged the more ambitious construction of a
large, random-access memory for a modular
processing system.

assigned a number. If two or more requests
appear simultaneously on different party lines,
the signal on the lowest-numbered line receives
priority. A separate party line interconnects all
memory modules, allowing communication from
memory to memory.
The memory module is physically divided into
two cabinets, each storing 8,192 words of 52
bits each, for a total capacity of 16,384 words.
The 52-bit word contains 48 data bits, three
control bits, and one parity bit. The control
bits act as tags which tell the program whether
or not the instruction has been executed.

Control of the memory module is effected by
descriptor words containing 52 bits. The descriptors originate at either a computer or I/O
control module. A memory module can receive
four descriptors during one request.

The read/write cycle of each memory is 0.5
p,sec, and the access time is 0.3 p,sec. During
the remaining 0.2 p,sec, the word is rewritten
or replaced at the selected address.
The two cabinets of a module can be tested
independently of each other. Several test features are built into each cabinet. A test word
can be written into all addresses, or into alternate addresses, or into a selected address. A
continuous stop-on-error mode compares every
readout with the test word. Operation halts on
an error, and the faulty word and its address
are displayed on the control panel. Single-cycle
and single-pulse operation are also possible.

Each memory module can perform a number
of logic manipulations independently of other
modules. A memory module can: execute the
conventional read or write instructions on a
single word, or on two, three, or four consecutive words simultaneously; read n words, where
n is a quantity contained in the descriptor; perform a block transfer operation from one area
in memory to another, or to another memory
module; or perform a search for a requested
word or a requested digit, either in itself or in
any other memory module, matching against a
word or digit supplied.

MEMORY MODULE ORGANIZATION
Figure 1 is a block diagram of one memory
module; the interwiring in the memory stack
is shown in Fig. 2. To keep the total sense

"Party lines" interconnect the memories
with either computer or I/O. Each party line is
93

94

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964
PARTY LINES

104

1\ SPUT BIT CONDUCTOR

STROBE REFERENCE
STROBE
BUFFER

1. .. \

EASY (BIT.FIELD) AXIS

~(LDNGITUDINAL

~ ~~
_
FILM SPOT

DIRECTION)

RECTANGULAR B·H LOOP
HARD (WORD· FIELD) AXIS
(TRANSVERSE DIRECTlONl
SQUARE B·H LOOP

WORD CONDUCTOR

SENSE CONDUCTOR

Figure 1. Memory Module, Block Diagram.

delay and sense signal attenuation reasonably
low, we organized the stack into a configuration
of 4096 words, of 104 bits each, rather than
8192 words, 52 bits each. This kept the total
sense delay below 100 nsec for the worst-case
address location.
Film elements are deposited 768 per substrate, in a 32 X 24 array. Five substrates
in a row provide storage for 32 words, 120 bits
each. A single five-substrate film word, therefore, can easily store two 52-bit computer language words. Four such rows (or 128 words
on 20 substrates) comprise a plane. A plane
with certain associated circuit caras, connectors, and structures is assembled as an integral
plug-in unit called a frame; 32 frames comprise
a 4096-word stack.
A pair of computer words requires 105 bits,
including two parity, six control, and one reference hit. The unused bits, or spares, are distributed through the stack for possible replacement use. A row of spare bits can be easily
wired into position to replace another row, if
necessary. This is normally performed during
testing of memory planes, prior to module assembly.
A descriptor word arriving at the control
unit receivers initiates a memory cycle. The
address data is transferred to the address
registers, and a memory cycle is initiated.

The address (6 bits) is decoded at the input
of every word driver and at the input of every
word switch. Selection of a film word occurs
in a diode-transformer matrix. The matrix
contains 4096 transformers and the selection
diodes. The memory is addressed by the wordorganized (linear-select) scheme; each film
word line is driven from a single transformer.
The current from a selected word driver flows
through the matrix to the selected word switch.
The transformers have linear (not square-loop)
characteristics, and the selected film word line
receives a word current pulse. This current
interrogates all the film bits, inducing signals
into the sense amplifiers.
Planar films remagnetize under the influence
of two orthogonally opposed fields. (See inset
in Fig. 1.) A word field applied parallel to the
film's hard direction rotates the magnetization
vectors from their rest position (easy axis)
into the hard direction. (Vectors of a bit storing a ONE and a bit storing a ZERO rotate
from opposite directions, each passing essentially through 90°, to an almost common harddirection alignment.) This rotational switching induces a readout signal into the associated
sense line. A second field, the bipolar bit or information field, applied parallel to the easy direction (by a bit conductor lying in the hard
direction), while the film is still magnetized
in the hard direction, determines the future

2-MC MAGNETIC THIN FILM MEMORY

95

Figure 2. Memory Stack Interwiring.

state of the cell after the word field has been
removed. (Vectors fall back through 90° toward either the ONE or ZERO orientation,
along the easy axis.)
Interrogation of a word occurs during the
leading edge of the word current, and data is
written into the films during the trailing edge
of this current. Bit currents, present in all
lines during word-current turn-off, ensure correct storage of data to be written. The polarity
of each bit current determines the storage of a
ONE or a ZERO.
A reference bit in each film word (104 bits)
was included for the following reason. The
sense readout signal has a width of only 50 to
60 nsec, and the delay in the stack can vary as
much as 70 nsec for different address locations.
To generate a variable time strobe pulse, a
strobe reference bit, storing always a ONE,
is included in the stack as the 105th bit. The
strobe reference bit sense amplifier drives a
clock buffer amplifier (strobe buffer) which

supplies a 25-nsec-wide strobe pulse to the information register flip-flops. The strobe pulse
sets each bit in the flip-flops to the data state
represented by the sense signal passing at that
moment through the corre'sponding sense amplifier.
The bit current flows parallel to the sense
conductor, and induces large inductive noises
into the sense signal. Transposition of each
sense line with the corresponding bit line by a
crossover connection in the middle of the memory plane reduces this noise. This connection
in every sense line is made after the glass has
been sandwiched between the printed-circuit
boards. Due to mechanical imbalance between
each sense-line/bit-line pair, some noise (as
much as 5 mV) remains. Further reduction
of this noise is possible by manually adjusting
the small sense end-around loop on the plane.
Bit-noise cancellation prevents sense amplifier
overloading, and ensures reliable operation at
high speed.

96

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

As an additional means of keeping noise in
the sense lines at a minimum, we included another feature in the design; during a write
cycle, the flow of bit current is restricted to a
single memory 'plane, rather than being permitted to flow through the entire stack. Each
information switch circuit is associated with
one plane (32 per stack). One of the switches
is enabled by the decoding of five address bits.
The information (bit) drivers connect to the
appropriate bit lines on each frame through a
diode-transformer assembly (Fig. 2). Employing four (rather than two) diodes per transformer has the advantage that the bit switch
circuit can be designed for single-polarity current pulses even though bipolar bit currents
flow in the plane. Also, the same amount of
current flows through the switch, regardless of
the information being written into the films,
and only two conductors per bit are needed to
interconnect the corresponding bit lines between frames. Sneak ground currents are also
eliminated with a four-diode scheme. The information drivers see high impedances in every
plane but the selected one. This arrangement
eliminates the time delay in the bit current, because the bit lines are effectively connected in
parallel.
Words are stored 128 to a memory plane, on
32 planes, rather than in the more conventional
fashion of a plane storing one bit position for
all words. Because of this geometry, and the
restriction of bit currents to a single memory
NAN~

plane, each plane is effectively a 128-word memory stack in itself, functionally isolated from
other planes, during write. The sense lines, on
the other hand, are series-connected through all
bits in the stack, one line per bit position.
MEMORY TIMING
The memory timing waveforms are shown in
Fig. 3; waveforms of actual word current, bit
current, sense readout, and strobe pulse are
shown in Fig. 4.
Memory read operation begins with an initiate pulse received from the memory control
unit. Storing the address information in the
address register requires 20 nsec. Address decoding occurs in a single gate level, and requires an additional 20 nsec. The decoding enables the selected word switch circuit, and also
one of the 32 information switches. A word
gate pulse turns on the chosen word driver at
100 nsec. With a circuit delay in the driver of
50 nsec, current flows in the selected word line
at 150 nsec. The sense signals are induced on
the sense lines during the word current rise,
but, depending upon the location of the word in
the stack, may be retarded at the sense amplifier input by as much as 70 nsec. The earliest
time at which a signal can appear at this input
is at 160 nsec, the latest at 320 nsec. An amplifier delay of 40 nsec allows signals to arrive
at the information register at between 200 and
270 nsec. The strobe pulse clocks the informa300

100

400

500

I

INITIATE (CLOCKlPULSE
ADDRESS REGISTER
WoRO SWITCH{
WORD GATE ~---""'I
WORD DRIVER ~-.j..---I---"""1
WORD CURRENT I - - - - I - - - - - ! - - SENSE SIGNAL
SENSE AMPLIFIER

I---..:....-.-+--~
~-+-

______

~=-+-_--o<.:~

Tr-"",

STROBE PULSE

~_"':"-_-+-

_____________

",,-- wRiTE -NOrSE -

--"-~

-~-LA-TE-ST-S";;TROBE - - - - - - - -

_ _....Ji

INFORMATION REGISTER I - - - - I - - - - + - - - - ! - -...~
INFORMATION SWITCH (
INFORMATION GATE I-------!----!--~--_I__--V"
RECOVER GATE
INFORIIATION/RECOVER{
CURRENT

=='1~-t---t----t---;--t----:::=::4--. . . .

Figure 3. Memory Module Timing Diagram.

~

- - - - - - ......,
- - - -

2-MC MAGNETIC THIN FILM MEMORY

Word Current:

200 mAl em vertical scale

Bit Current,
Write ONE:

100 mAl em vertical scale

97

40 nsec I cm horizontal scale

Word Current:

200 mAl cm vertical scale

Bit Current,

Write ZERO:

100 mAl cm vertical scale

40 nsec I cm horizontal scalB

Amplified Sense
Signal, ONE Readout:

1 V I cm vertical scale

Strobe Pulse:

2 V I cm vertical scale
40 nsec I cm horizontal scale

-

f.

~

~-.;

Amplified Sense
Signal, ZERO Readout:

1 V I em vertical scale

Strobe Pulse:

2 V I cm vertical scale
40 'nsec I cm horizontal -scale

•

-~-~

I

.. --- ..

:

-----;~.-----

_.-

Amplified Sense
Signal, ZERO Readout:

1 V/cm vertical scale

Strobe Pulse:

2 V I cm vertical scale

~

~.-~-1-_

O.llJ.Sec/cm horizontal scale

Amplified Sense
Signal, ONE Readout:

1 VI cm vertical scale

Strobe Pulse:

2 V I cm vertical scale
0.1 ,",sec I cm horizontal scale

Figure 4. Waveforms: Word and Bit Currents, Sense Readout, and Strobe Pulse.

tion register, which has a delay of 20 nsec. At
the latest possible time of 290 nsec, the information register contains the read data.
The write operation begins at 300 nsec. The
write cycle either replaces the data read out
during the previous read (and contained in the
information register), or enters new data into
the selected word location, via information
drivers. The new data is taken from the buffer
register, and is substituted for the signals from
the information register. With a circuit delay
of 40 to 50 nsec in the information driver, bit

current flows at 350 nsec for a duration of 100
nsec. While the bit current is at its crest, the
word current (which has continued to flow
since initiation of read) is terminated. Termination of the word current allows the magnetization vectors of the films to rotate in the
directions established by the bit currents, and
the word is written. To eliminate magnetizing
energy which would otherwise remain stored
in the pulse transformers employed in the bit
circuits, a recover pulse is selectively applied to
bit lines. The recover pulse, opposite in polarity to the bit current, and of about the .same

98

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

duration, terminates at 550 nsec, to complete
the write portion of the memory cycle.
MECHANICAL CONSTRUCTION

A single cabinet (Fig. 5) houses one stack
and all associated circuitry; two such cabinets,
one containing certain common circuitry (that
shown in the middle of Fig. 1) make up
a memory module. The front-opening door
on each cabinet carries the control panel for
that stack and permits full access to the interior. The interior of the cabinet (Figs. 6 and
7) contains two circuit-card racks which may
be locked together, and can be swung either
separately, or in unison, around a vertical
hinge. The stack, mounted in the lower portion

--.... _--

-

•••

Figure 6. Memory Cabinet, Door Open and Racks
Extended.

of one of these racks, as shown in Fig. 6, has
the following dimensions: height 30 in., width
26 in., and depth 12 in. The stack housing is
an integral part of the rear card rack, which
can be swung completely out of the cabinet.
The memory frames slide into the stack en. closure from the front, and engage with bit
connectors located in the rear panel. The 32
frames lie in the stack horizontally, with a
frame-to-frame spacing of 0.7 in. The word
driver and switch lines engage the frames
through "side-entry" connectors located at the
left side of the stack. Placing the word-driver
cards and the word-switch cards to the left of
the stack keeps the interconnecting wires quite
short. (The address decoding matrix is contained on the 32 memory frames.)
The five rows of cards above the stack (Fig.
7) contain, in bottom-to-top order, sense amplifiers, information register, bit drivers, address
register, and timing and control circuits.

Figure 5. Memory Cabinet, Front Door and
Control Panel.

The separately hinged front rack (Fig. 6)
includes space for five rows of logic cards for
the party-line transmitters and receivers, input

2-MC MAGNETIC THIN FILM MEMORY

99

under the influence of a magnetic field. The
films are 1000A thick; the glass measures 70
by 43 mm, and is 0.2 mm (8 mils) thick. An
etching process, applied after deposition, removes the unwanted material from the glass.
The 768 rectangular cells contained on one substrate measure 30 by 80 mils each, spaced on
50-mil and 100-mil centers, respectively. The
easy direction of film magnetization is along
the length of the cell, hard direction along the
width, to accommodate shape anisotropy-the
demagnetizing effect of the air return path is
less significant in this orientation. Two sman
registration holes, drilled into the glass prior
to deposition, help in the alignment of the glass
with the conductors during test and assembly.
Each substrate stores 32 words of 24 bits
each. Twenty such glass substrates are assembled into one memory plane, as shown in Fig. 8.
Arrangement of the substrates into five rows
of four each provides storage for 128 words of
120 bits each. (Each word includes 15 spare
bits, which are distributed evenly, for possible
later replacement of weak or faulty bits.)

Figure 7. Memory Cabinet, Showing Rear Rack and
Bit Switches.

and output decoding, receiving and transmitting registers, and parity-generating and check
circuits.
A magnetic shield surrounding the memory
stack reduces the disturbing influence of the
earth's magnetic field.
A separate power supply is located in the
rear of each cabinet, behind the card racks.
The unit operates in a temperature range
from 0° to 50° C. Fans, located in the top and
bottom of the cabinet, provide air to cool the
equipment.
THE MEMORY PLANE
The magnetic thin films employed in this
system are produced by vacuum deposition of
nickel-iron alloy onto glass substrates, while

The glass substrates of each memory plane
are sandwiched between two printed-circuitboard assemblies which measure 20 in. in length
and 9 in. in width. Three conductors address
every memory cell: a word conductor, a sense
conductor, and a bit conductor. The word conductor, 20 mils wide, is parallel to the film easy
direction, and lies orthogonally to the sense and
bit conductors. (The p.elds associated with the
conductors are, of course, orthogonal to the conductors.) A split bit conductor, each half 20
mils wide, and separated from the other by 50
mils, embraces the 10-mil-wide sense conductor.
Five printed-circuit boards, each with 24 bit
and 24 sense conductors, bond to a single flat
backing board 0.1 in. thick (Fig. 8). The 128
word lines, printed onto 1-mil-thick Mylar,
bond to the rigid sense-bit assembly. All conductors terminate into tab connections on 50mil centers, located at the edges of the printedcircuit boards.
A 9-mil-thick glass epoxy spacer separates
the two printed-circuit assemblies, and prevents
excessive forces from pressing onto the glass
substrates. A small amount of epoxy glue holds
each substrate in its proper location.

100

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

and one secondary winding-with a turns ratio
of 1: 1:1. To maintain balanced drive conditions between the word drivers and the word
switches, we included two selection diodes, one
in each primary winding of the transformer.
The third diode in the secondary circuit speeds
transformer recovery (Fig. 11). The transformer reduces the capacitive noise induced
into the sense signal from the word current, as
well as the noise generated during transition of
the address selection. Each word line is electrically isolated from all other word lines. Reverse biasing of all diodes in a selection matrix
prevents undesired sneak currents. During a

Figure 8. Elements of Memory Plane.

MEMORY FRAME CIRCUIT BOARDS
A frame (Figs. 9 and 10) surrounds each
completed plane. Three types of circuit boards
mounted on the edges of the frame--the word
selection matrix, five sense boards, and five bit
boards-=-connect to the plane. (There are five
rows of substrates in the plane.) The attachment of connectors to the frames helps greatly
during debugging and testing, and during replacement of faulty semiconductor components
on the plane. (The circuits employed on these
boards-for word selection, sensing, and bit
selection-are described in greater detail in the
next section. )
Word Selection Matrix
The word selection matrix, which is part of
the frame, contains 128 selection elements.
Each element consists of a pulse transformer
and three diodes. The transformer is wound
with three windings-two primary windings

Figure 9. Complete Memory Frame, Front.

101

2-MC MAGNETIC THIN FILM MEMORY

nectors. The 128 paired output terminals of the
matrix, spaced on 50-mil centers, align with
the film word lines, and connect to the word
lines through welded-on jumper wires. Welded
"end-around" connections jumper the far ends
of the word lines on the plane, to complete the
return path. The nominal word-current amplitude is 400 rnA, with a tolerance of ±10 percent.
Sense Boards
The five sense boards are located at one edge
of the plane, and the five bit boards at the opposite edge. Therefore, all sense connections
are made from the same edge. A small wire
loop shorts the far ends of each sense line. The
near end connects to the secondary winding of
a transformer, as shown in Fig. 12. Each board
contains 24 transformers. Each sense transformer contains three windings; one connects
to the film sense line, and the other two connect
to an edge-board connector. -Four output connections. per sense line are required. The cO.nnector terminals are spaced on 50-mil centers.

Figure 10. Complete Memory Frame, Back.

memory cycle, this bias is removed from the
row of diodes connecting to the enabled switch.
In a matrix without transformers, a large voltage swing would be coupled into the sense line,
because of the capacity which exists between
word line and sense line. The capacitive currents would induce a normal-mode signal which
cannot be removed in a differential input circuit.
The memory operates at 2 Mc; this selection
scheme, however, operates 6 at speeds up to
6 Mc.
The word-drive and word-switch connections
are made through "side-entry" edge-board con-

Bit Boards
The bit-line selection spheme employed in this
memory utilizes a transformer in every line
(Fig. 13). The secondary winding connects to
the corresponding bit_ line. A bit current of
100 rnA is required to write a single bit. The
printed-circuit end tabs on the bit boards mate
with the edge-board connectors located in the
backplane of the stack (Fig. 7).
FROM
WORD
DRIVER

t

~ ~Ir
I~
~

~I~
II~
~

WORO UNE

*

END-AROUND DIDOE
&4 PAIRS

'i
TO WORD

TO WORD

SWITCH

SWITCH

'------,v,....-----'
64 PAIRS

Figure 11. Word Selection Matrix.

102

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

150 ohms. Drivers contain a 7-input AND gate
at the input, and the switches contain a 6-input
AND gate. Delay in the circuits is 35 nsec.

Figure 12. Sense Line'Interwiring.

CIRCUIT DESCRIPTION
Word-Current Drivers and Switches
The word driver and word switch circuits
which resemble those described by Bates and
D' Ambra,6 can generate currents with 20-nsec
rise and fall times when loaded by a small
(128-word) memory, such as that employed in
the computer module of the D825. The loading
of the 4096-word selection matrix (Fig. 11) increases the current rise time to 35 nsec, the fall
time to 50 nsec. The driver supplies both a
positive pulse and a negative pulse to the interconnecting twisted pair of conductors. The
balanced drive arrangement eliminates ground
currents and radiating fields which can greatly
add to the noise problem. The closeness of the
driver and switches to the stack keeps the interconnecting wires short. The total delay (about
10 nsec) from a driver to the word-line endaround short is less than the current rise time,
and does not deteriorate the current shape. The
drivers and switches supply a current of 200
mA to the selection matrix. The word transformers in the matrix have a 1:1:1 turns ratio,
and the output winding receives a current of
400 mAo The drivers and switches connect to
the stack through twisted-pair conductors, and
both circuits have output impedances of 100 to

Sense Amplifiers
The sense lines are effectively series-connected through all of the bits in the stack. The
sense transformer output windings of corresponding bits connect together from plane to
plane in series fashion. Every sense line contains an end-around loop which shorts the far
end of the line. This short reflects to the beginning of the line connecting to the transformer. The sense signal which travels through
a transformer on an unaddressed plane receives
only a small attenuation after the short is reflected to the output winding. This reflection
appears at the input after two line delays, and
accounts for the signal delay in the stack. The
pickoff is taken from the middle of each line,
to halve the delay, as shown in Fig. 12. Signal
attenuation for worst-case locations is 6 dB.
Nominal sense output at the plane is 1.5 mY.
The amplifier has a gain of close to 3000, and a
delay of 40 nsec. The amplifier is tr~nsformer­
coupled into a differential input stage, which is
succeeded by two amplifying stages. The amplifier digitalizes the signal, and sends both
true signal and complement signal to the associated information register flip-flop.
Information or Bit Drivers
The bit drivers supply bipolar current pulses,
100 nsec wide, to the stack. The bit-driver input circuit contains the decision elements which

Figure 13. Bit Selection Scheme.

2-MC MAGNETIC THIN FILM MEMORY

either copy the word stored in the information
register or allow new data, obtained from the
buffer register, to be written into the stack. In
addition, the logic function which determines
whether a ONE should be stored as a ONE or
a ZERO is included. This is necessary because
of the sense-line transposition in the center of
every plane. The sense amplifier amplifies only
single-polarity signals, and all ONEs stored in
the stack must appear as negative signals at
the input to the sense amplifier. Therefore, all
ONEs are stored as ONEs in half of the stack,
and as ZEROs in the other half. The reverse
is true for the storage of ZEROs.
The driver input contains two OR gates
driven from four two-input AND gates. The
bit driver delay is 35 nsec, and the output stage
is transformer-coupled and has an output impedance of 50 ohms.
All lines connecting the stack to the backplane are impedance-matched. The bit drivers,
located in the second and third rows, connect
to the middle of the stack through five groups
of coaxial lines, as shown in Fig. 7. On the
frame bit connectors (hidden by wiring and
c i r cui t s), corresponding bits interconnect
through twisted pairs, with an impedance of
150 ohms. A matching transformer connects
the coaxial line to the twisted pair.
The bit switches for the eight frames shown
installed in Fig. 7 cover the coaxial bit lines.
Each bit switch circuit is contained in a strip
which aligns with the associated memory
frame. One switch circuit handles the currents
from one row of substrates. Five such circuits
on a strip are driven from a common drive circuit (visible at the far right in the photograph) .
The bit line impedance on the frame is 10
ohms. The nominal bit current is 100 mAo The
bit transformer has a turns ratio of 2:2 :1,
which requires 25 mA of current in the primary. The matching transformer which connects the interconnecting twisted pair to the
coaxial drive line has a 1:2 turns ratio. This
transforms the impedance from 160 ohms to 40
ohms, which is close enough to match the 50ohm coaxial cables. The current necessary
from a bit driver, to produce 100 rnA of bit

103

current in a plane, is 50 rnA.
The total of 105 times 25 rnA of current is
received by the selected information switch.
The switch is divided into five individual circuits, operating in parallel, each handling a
total of 500 mA; each circuit handles the bit
currents in one substrate row.
SUBSTRATE TESTER
A substrate tester (Fig. 14) submits every
bit on a substrate to a pulse test which subjects
the bit to disturbing fields resembling worstcase examples of those encountered during actualoperation.
The films exhibit pronounced magnetic anisotropy; the B-H hysteresis loop along the
film easy axis is rectangular, while that along
the hard axis is linear. The films also exhibit
various disturbing thresholds for fields applied
in different directions. Because of the film's

104

PROCEEDINGS~F ALL

JOINT COMPUTER CONFERENCE, 1964

linear loop in the hard direction, a low disturb
threshold exists for fields parallel to the transverse (hard) direction. (See Fig. 2.)
The test fixture (Fig. 15) is assembled from
circuit boards similar to those surrounding the
memory plane in the actual memory stack. S ubstrates are inserted and removed through a narrow slit located at the word end-around connections. Two pins through holes in the glass, used
to register substrates and circuit boards in the
actual memory-plane sandwiches, furnish similar registration ill the substrate tester.
A relay rack contains the circuitry necessary
to test the substrates. Indicators for alI" flip-flop
circuits, located on a control panel, allow observation of the test, and help during operational maintenance.
The worst disturb condition exists when a
stored ONE bit is surrounded by all ZEROs,
or when a ZERO is surrounded by all ONEs.
The test word 10001000100. . . , disturbed by
all ZEROs in adjacent locations, is tested for
ONEs; the test word 01110111011. ~ .., disturbed by all ONEs in adjacent locations, is
tested for ZEROs.
At the beginning of an operation, the test
word (ONEs) is written into all 24 bits of the
first address. Next, all ZEROs are written into
the adjacent word location; the latter is repeated as many as 32,000 times. The rewrite

process subjects the test word to transverse
and longitudinal disturbing fields applied simultaneously. The test word is read after the completed disturb cycle, and its content compared
with a program register. A match continues
the test, by shifting the test word to the next
bit (0100010 ... ), and the disturbing continues.
After three shifts, every bit in the first address
has been tested for ONEs. The test word for
ZEROs follows. This test continues until all
bits are checked for ONEs and ZEROs. The
disturb word can be written to the right or to
the left of the test word, alternatively to the
right and then to the left, or parallel to the
right and left. The parallel writing of two
words which embrace the test. word constitutes
a more than worst-case· condition-a condition
that never occurs during memory operationbut allows grading of the substrates.
Substrates which pass the 32k disturb test
are assembled into memory frames. These substrates tolerate about 4k to 8k disturb pulses,
when tested in the more-than-worst-case parallel mode. The test is fully automatic, and the
output signal of the sense lines is not monitored. The tester operates at a frequency of 1
Mc; one disturb test requires 8 seconds if no
error occurs. Evaluation of a good substrate
requires about 30 to 60 seconds, because the
substrate is also retested in the parallel mode.
Operation stops on a bad bit, and panel indicator lights display the location of the bad bit,
and whether the failure represents a bad ONE
or a bad ZERO.
Film disturbance shows dependence upon
current rise times. Slower current pulses tend
to disturb less. Current rise and fall times of
20 nsec are available in the tester, as compared
with 35 nsec in the stack. The size and the
larger number of selection elements reduce the
current rise and fall times in the stack.
Substrates which pass the- 32k disturb-pulse
test also pass consistently a test of 4 million
word and 250 million bit disturb pulses in the
frame tester.
FRAME TESTER

Figure 15. Substrate Tester Test Fixture.

Evaluation of fully assembled memory planes
(frames) takes place in a frame tester (Fig.
16). A relay rack houses the circuitry and

2-MC MAGNETIC THIN FILM MEMORY

105

power supplies. A specially designed fixture
allows the frame to slide into the word connector in an upright position. This provides the
connection necessary to address all 128 word
lines. A movable rack, containing sense amplifiers and bit drivers for the examination of 24
bits, can slide vertically to the desired group
of lines. Printed-circuit edge-board connectors
mate with the appropriate conductors. With
this mechanical arrangement, an equal conductor length is consistently maintained during
the examination of the five groups of substrates, to correspond to the actual stack construction.
The evaluation consists of two phases: first,
the bit-write noise is reduced by manual adjustment of the "end-around loops." Secondly,
a disturb test, similar to that performed on
the substrates, is run. The frame tester operates as a memory exerciser, with the capability
of inserting worst-case patterns into the plane.
The automatic program rewrites the disturb
word up to 32,000 times; manual operation allows any desired number of disturb operations.
The tester operates at one of three different
frequencies: 2 Me, 4 Mc, or 250 kc. Single-pulse
operation is also available. Although substrates
cannot easily be removed frOlTI an assembled
plane, up to three bad bits can be tolerated in
each of the five sense-bit groups. The spare
lines can replace lines containing faulty or
marginal bits, but a small wiring change is
necessary.
Figure 16. Frame Tester.

CONCLUSIONS
The operation of this half-microsecond-cycle
memory module represents a significant
achievement in a program of magnetic thinfilm development for computer storage which
was begun at these laboratories in 1955. Large
numbers of substrates were processed and
tested, and memory plane assembly ~nd test are
now routine operations.
Memory frames which contain 20 substrates
(15,360 bits) can be assembled without great
difficulty. The limitations were imposed by the
printed-circuit boards, and were due to dimensional tolerances.

Cost-per-bit reduction can be achieved by increasing the number of bits contained in a single pluggable unit, because the interconnections
in the stack contribute significantly to the total
memory cost.
A shorter memory cycle can be made possible
by reducing the total sense delay, and by the
elimination of the bit recover pulse. The pulse
transformers 'will be replaced by active solidstate devices. A reduction of 150 nsec-50 nsec
from a shorter sense delay and 100 nsec from
elimination of the bit recover pulse-make a
cycle time of 350 nsec, or 3-Mc operation, possible.

106

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

The capacity and speed attained with this
memory are clear indication that magnetic thin
films have become the optimum storage elements for reliable, nonvolatile, fast-access
memory.
ACKNOWLEDGMENT
The author wishes to express thanks ~o the
many people at these laboratories who we:te responsible for the successful completion of this
memory, especially to F. C. Doughty, A. M.
Bates, P. A. Hoffman, J. W. Hart, J. S. Jamison, and L. N. Fiore, for their technical assistance; J. H. Engelman and R. P. Himm~l
for film fabrication; G. Sabatino, K. McCardell,
and S. V. Terrell for film and memory testing;
B. C. Thompson and F. Rehhausser for logic
design; and R. E. Braun, G. J. Sprenkle, and
G. J. Kappe for mechanical design.
REFERENCES
1. BITTMANN, E. E., "Thin-film memories:
some problems, limitations, and profits," an
invited paper presented at the International

Nonlinear Magnetics Conference (INTERMAG), April 1963, and published in the
Proceedings.
2. RAFFEL, J. 1., et al., "The FX-1 magnetic
film memory," Report: MIT Lincoln Laboratories TR278, November 1962.
3. ANDERSON, J. P., et al., "The D825: a multicomputer system for command and control," AFIPS Proceedings, 1962 Fall Joint
Computer Conference, December 1962.
4. ANDERSON, J. P., "The Burroughs D825,"
Datamation, April 1964.
5. THOMPSON, R. N., and WILKINSON, J. T.,
"The D825 automatic operating and scheduling program," AFIPS Proceedings, 1963
Spring Joint Computer Conference, May
1963.
6. BATES, A. M., and D' AMBRA, F. P., "Thinfilm drive and sense techniques for realizing
a 167-nsec read/write cycle," Digest of
Technical Papers, 1964 International SolidState Circuits Conference, February 1964.

A SEMIPERMANENT MEMORY UTILIZING
CORRELATION ADDRESSING
George G. Pick
Applied Research Laboratory, Sylvania Electronic Systems
A Division of Sylvania Electric Products., Inc.
W alth.am, Massachusetts
scribed in an earlier paper.l In previously
reported work~' :>.1 inductive coupling was also
used, but electrical connection had to be made
to the stored data, or else the capacity was
very limited. Some work:;' allowed use of
connection less data containing media, but in
each case, precise data alignment and interleaving structures were needed. The described
memory uses thin copper clad "Mylar" printed
circuit sheets which are placed adjacent to each
other with no interleaving of any sort. All coupling, into and out of the data planes, is by
inductive coupling from and to two respective
solenoid arrays which pass loosely through
holes in the data planes.

SummcLry: A mechanically changeable, semipermanent, random access memory with a
16,384 twenty bit word capacity is described.
This solenoid array memory is useful for stored
programs and tables in computers, character
generation and as a combined input and storage device for special purpose computers. It
utilizes an associative technique to allow addressing of any of its 1024 sixteen word datacontaining sheets, which completely avoids any
need for electrical connections to the data-containing sheets or for any ordering of the sheets
wi thin the memory. Each sheet is a very thin
printed circuit onto which data is entered by
etching or punch-card controlled cutting. The
data is inductively interrogated by means of
solenoids which pass loosely through the sheets.
The sheets are contained in loose-leaf notebooklike magazines which fit into a file drawer.

(i

The addressing solenoid array is driven by
an input address which has been transformed
into an error-correction type code. The address
is simultaneously correlated or matched to the
stored addresses on each data plane with the
result that the autocorrelation on one plane is
a voltage positive enough to exceed its diode
conduction voltage, and on all unselected planes
the cross-correlations result in voltages which
are well below, or negative, to that voltage.
In consequence, a current is allowed to flow in
only the selected plane's data path, allowing
only that plane's data to be sensed by the
pick-up solenoids.

The present memory's access time is 0.7
microsecond and its cycle is below two microseconds.
INTRODUCTION
In recent years there has been an increasing
interest in read-only random access memories.
This class of memory has developed along two
paths, those electrically alterable and those
mechanically alterable. This device falls into
the latter class. The solenoid array memory
described here is a development which followed
the solenoid array correlator and memories de-

This association between a coded address and
its plane's data allows the mechanical flexibility mentioned earlier. The data plane may
107

108

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

be positioned anywhere along five inches of the
solenoids' lengths, and as long as there is only
one data plane in the stack with that address,
it is uniquely accessible.
Each sheet contains sixteen words or 320
bits. To avoid the need for 320 amplifiers, the
four lower order address bits are used to select
the appropriate group of solenoids and connect
them to the sense amplifiers. This technique
allows the packing of many words on a single
data plane, thereby efficiently multiplying the
capacity of the memory and radically increasing
its effective bit packing density on normal
length words. Single data sheets of practical
size can contain upwards of a thousand bits.
The ease of data change and the low cost of
the storing medium allow this memory to be
considered for tasks where it acts not only as
a memory, but as an input device as well. Magazines, containing tens or even hundreds of
thousands of bits, can be stored on a shelf and
inserted into the memory when required with
an ease comparable to changing a modern magnetic tape cartridge. Thus for some computing
systems, mechanical input reading devices lnay
be replaced by a rugged, mechanically static,
semi-permanent memory of this type.
Overall Description
The solenoid array device described utilizes
long, thin solenoids to provide a simple, noncritical magnetic coupling between the data
containing planes and the array memory structure. The memory is organized so that the
data-containing planes need have no connections other than magnetic, and this realization
required hyo basic functions-unique data plane
drive and appropriate sensing of the driven
plane for the selected stored data. These two
functions are almost independent and are
realized by a driver solenoid array and a sense
solenoid array. The driver solenoid array is in
essence a substitute for a 1024 line linear addressing matrix and the resultant connection
pair that would be needed to each of the 1024
data planes.
The sense or pick-up array detects if the various bit positions on each driven plane contain
a one or zero. The sense solenoid outputs are
connected so that appropriate gating can con-

nect the output of only one group of solenoids,
a word group, to the sense amplifiers. The
arrays are shown in Figure 1.
The principle of operation of the solenoid
array is based on the transformer. On any
transformer, if a wire passes around its flux
path, there is coupling, and if it bypasses its
flux path, there is only stray or minimal coupling. With solenoids, the same rules apply
with little modification.
In the memory, the drive array and the sense
array are separate components which are only
connected through the stored data planes. In
series with this connection on each plane is a
diode which acts as a switch that allows one
and only one plane to be connected at one time
during the interrogation. See Figure 2.
The address is stored on each plane on that
portion which slips over the addressing array.
This matrix of mutual inductances which couple
a digital input address word simultaneously to
all the data planes perform a correlation or dot
product operation. The operation thus performed is given by
15

Tj

= ~WjkUk
. k= 1

j = 1, 2, ... 1024; where Uk and \V jk are the
klh components or cells of the input address
word U and the stored address word Wj, respectively, and T j are the simultaneous individual output voltages generated on each plane.

The correlation is formed by simultaneously
energizing 15 solenoid pairs, in either the "zero"

Figure 1. Solenoid Array Without Planes.

109

A SEMI-PERMANENT MEMORY UTILIZING CORRELATION ADDRESSING

two rows or words can be placed on one loop.
(The coupling loops are the paths starting on
the right of the data portion, going to the left,
up a short distance and returning to the right.
All these loops are in series with all the others,
the diode and the addressing array loops on
the right.)

Figure 2. Data Plane.

or "one" positions-depending on the input
address. The individual multiplications that result are shown in Figure 2A and these positive
and negative voltages on each plane are
summed together because all of the paths are
in a series circuit.

Figure 2B shows the operation of the sense
solenoids and the manner in which they pick
up the stored data. In a later section the organization for solenoid selection switching will
be described more fully, however, it should be
clear that the interrogation of a data plane
results in parallel output of all data bits on the
plane. The selection switching circuit is used
only to reduce the number of sense amplifiers
and subsequent gating circuits. If each plane
contained only one word, selection would be
eliminated.

The right portion of the photograph in
Figure 2 shows the addressing paths, plus bias
positions to be described later. It may be noted
that the loops on vertically adjacent aperture
pairs always encircle one and bypass the other.
At the bottom of the photograph is a small
component, a diode, which "detects," and allows current to flow only in that plane where
the addressing correlation resulted in a posi~
tive voltage sum with respect to the diode conduction polarity.

. o£L
!::-D"i!Z
INPUT

o

LFTPUT

a

. o.JL

The described addressing operation is, as was
explained earlier, a substitute for a connection
pair to the left portion of the data plane, which
stores the actual data.
The data portion of the plane on the left side
of Figure 2 is organized into 16 rows, each
representing a 20 bit word. Two rows are
paired into one major loop and there are eight
loops on the plane, one above the other. The
sense solenoids are not paired like the drive
solenoids, hence the data for each bit is stored
by cutting the path so that each solenoid, or
bit, is either inside· or outside the enclosed area
or loop. The distance between the two sides of
each major loop is of little consequence, hence

/::__
~DZERO-+i!-+-Z_~~._ -_---O~oOnTPUT
'NM,

:g-

"Z~

Figure 2A. Data Plane Driving Solenoid.

110

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

I

i_

Figure 3. Block Diagram.

-

---t---L---+-----"'~-DATA PLANE CURRENT

.. ONE" OUTPUT

·2

--O.f---+--+-...l...-_-" ZERO" OUTPUT
2B. Addressing Solenoids Driving Stored Address.

The error-correcting code's first function is to
allow unique selection of Qne plane, thereby
addressing many planes with a modest number
of drivers and solenoids. The long "distance"*
of the code brings with it the advantage of
redundancy which results in high reliability and
driver load sharing. (In practice, it has been
found that degraded or missing drive pulses on
a few drivers have little effect on memory
operation.)
The operation of the memory can be described by Figure 3. The address is stored in
the address register. The addresses' lower order
bits are decoded into sixteen sub-addresses for
selecting the appropriate sensing solenoid
group. The higher order address bits are operated on by the coder to form a Hamming code
which operates the addressing solenoids. When
the addressing array is driven, current rises on
the selected plane and the pick-up or sense solenoid array emits the selected word to a bank
of sense amplifiers.
Addressing by Correlation
A solenoid array memory has previously been
built in which the data planes were conductively connected and were addressed by a relatively straightforward coincident voltage technique in rectangular matrix with a diode connected in series with each plane's path at each
crosspoint. Another memory was built in which
a single solenoid was used to drive each single

* In !1

coding sense.

data plane with a unique and orthogonal address. The first memory required connections
to the data planes, which was acceptable only if
data was to be changed infrequently, and the
latter memory was limited to a modest number
of planes equal to a practical number of drive
solenoids, namely, about fifty planes.
Addressing by correlation provided an exit
from these limitations. Well developed correlation techniques were available 1 from which a
correlator could be designed that would accurately correlate a binary address and thereby
achieve a form of connectionless associative
addressing. However, the original solenoid array correIa tor used air cored solenoids whose
output voltages were too low to generate
enough voltage to drive a data pla:Qe. Ferrite
cored solenoids were designed which improved
the coupling, allowing much higher drive voltages to be delivered to the data planes. However, in spite of compensation, the cored solenoid's coupling to the data planes was much
less uniform than that of the air cored units
(e.g., 15 per cent versus 1 per cent), and, even
wIth the high outputs available, single output
voltages were too low for reliable operation.
Hence, the need for load sharing and the requirement for less critical drive voltage amplitudes combined to recommend an error-correction type code.
Use of a non-orthogonal code causes the requirement for a nonlinear component which
would detect the positive selection voltage and
allow the drive current to flow in the plane-a
diode. Since the diode could be a permanently
prefabricated part of each plane, and a mechanical arrangement was found that did not
increase the total thickness of a stack of planes,
the diode was not considered objectionable.
Applicable Error-Correcting Codes
Mathematics recognizes many types of codes
that could be applied to the present device.

A SEMI-PERMANENT MEMORY UTILIZING CORRELATION ADDRESSING

The memory field has seen the use of the usual
binary codes and classes of orthogonal load
sharing codes i for addressing or driving core
memory selector matrices. In the case of the
described memory, binary codes would be unsatisfactory because the difference between a
matched or selected correlation and the closest
un selected one is too small, namely, one bit. The
aforementioned orthogonal codes excel in that
the selected address correlation would receive
the sum of all or most of the driving bits, and
all the unselected addresses would have no
drive at all, by mathematical definition of orthogonality, but unfortunately, orthogonal
codes always require at least as many bits as
there are addresses. They would fulfill the described memory's load sharing requirement,
but would sharply limit the possible number of
data planes.
The error-correcting alphabets were designed
to encode relatively long blocks of bits, hence
the number of possible a~dresses is relatively
large. The use of a diode detector removes the
need for code orthogonality, and error-correcting codes are inherently efficient in their use
of redundant bits to achieve long coding distances or weights.
Two codes were found that were easily
applied to the addressing problem. The first is
the well known Hamming code, in particular a
code with 10 information bits, 5 redundant bits
and a "distance" of 4 bits. A second code, even
more attractive, is the Golay code, which for
this application would represent 10 information
bits, with 12 redundant bits and a distance of
8 bits. Both codes can be conveniently generated by either shift register encoders or parallel modulo-2-sum networks. Many variants of
these codes are available for both larger or
smaller addressing capacity requirements.
For magnetic reasons to be discussed subsequently, correlating by means of single solenoids, where zero or one is represented by
absence or presence of an input drive, is undesirable. A more practical arrangement is to
drive pairs of solenoids in parallel, and to drive
them with one polarity for a "zero," and the
other for a "one."
The effect of this arrangement is that the
range of correlation outputs is extended from

111

o to + N

(N = number of bits) to a range of
- N to + N, thereby doubling the distance or
weight of the code. As a result, using the
Hamming code, an autocorrelation is + 15 units
of voltage, and the nearest cross-correlation is
+7. In the Golay code, the respective figures
are + 22 and + 6. This distribution of Hamming code outputs, with no bias, is shown in
Figure 4.

The correlation outputs, as they stand, possess the necessary "distance" properties, but
their absolute levels are not optimum for practical operation. The distribution of the unselected outputs must be shifted so that a diode
(or diode-Zener diode) detector on the plane
can efficiently prevent current flow. (The reasons for choosing either type of detector are
discussed subsequently.) The output distribution shift is readily achieved by adding fixed
bias in the form of additional solenoid drivers
which always operate in the same polarity.
Application of the Data Plane Addressing
Techniques
This section describes the technique of generating the codes, the circuitry of the solenoid
drivers, the structure and design criteria of the
drive solenoid themselves and the data plane
detector considerations.
Input Register and Coder
The binary address of the desired data plane
is entered into a buffer register. This address
contains the data plane address along with the
additional address bits "for the subselection of
data within the plane. The data plane address
bits, in ordinary binary code, are themselves
DISTRIBUTION FREQUENCY
OF DRIVE OUTPU IS

1

I

-15

I..y-I
0.5 VOLT
INTERVALS

J
+7

+15

Figure 4. Output Distribution on "Paired" Hamming
Code.

112

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

4 SHIFT PULSES AFTER OAT A ENTRY

Figure 5. Shift Register Coder.
MODULO - 2 - SUM

used to each control a solenoid drive polarity;
and redundant bits must be generated from the
original bits by one of several common techniques.
The best technique for generating the codes
is the shift register encoder as shown in Figure
5. In this device, the original address is entered as shown in shift register positions 2-11
and the modulo-2 adder operates to set position
1 accordingly. The register is shifted, a new
bit generated and the operation is repeated
until the data has been shifted to the left-most
position. For a Hamming code with 5 redundant bits, 4 shifts are necessary. This technique is simple to instrument, uses a small
number of circuits and is most attractive with
the following exception. The coding must be
done before interrogation, hence the speed of
this operation directly affects the access time.
Thus for a given logic speed, the minimum
access time is clearly limited by the time consumed by the required shifting operations.
The alternative is to generate all the redundant bits in parallel. It can be shown~ that
all redundant bits can be determined as modulo-2 sums of the original information or input bits. Hence by instrumenting parallel modulo-2 adder logic (exclusive-or), all redundant
hits were generated at once. This is shown in
Figure 6. Unfortunately, efficient codes have
little logical overlap between their redundant
bits, hence the amount of circuitry is not inconsiderable. (Typically, a Hamming coder
requires about 50 NAND circuits and a Golay
coder about 110.) Alternative simplified circuits and magnetic configurations are available,
but some degree of complexity remains.
For the Hamming codes used in the described memory, the code generation was parallel. A second unit now under construction,
uses a Golay code and its redundant bits are
generated serially, with higher speed logic to
partially compensate for the multiple logic
cycles. In that unit, with modest access time,
it was found more economical to supply a sepa-

rate, faster clock and control counter, all instrumented in higher speed logic, than to generate the Golay code in a parallel.
Drive Solenoids
The drive solenoids are operated in pairs,
with their respective windings connected in
parallel so that for one given drive polarity
the solenoid flux polarities are opposite as
shown in Figure 7. This balanged configuration
achieves an approximation of a closed magnetic
circuit without the need for an actual closure.
Although, because of the air gaps, the mutual
inductance between the two solenoids of a pair
is not large, the superposition of the individual
solenoid fields radically reduces the stray flux.
Further, although the correlation used for addressing is very non-critical, the drive pattern
sensitivity of individually driven solenoids
would be unacceptable. Thus, to minimize the
need for magnetic shielding between the drive
and pick-up arrays, to minimize drive pattern
sensitivity and to somewhat improve mutual
coupling to the data planes, paired solenoids
can be fully justified.
As a bonus, as was mentioned earlier
.
, the
availability of two bit positions on the plane
allows the storage of positive and negative corDATA PLANE ADDRESS

MOD
2
SUM

MOD
2

SUM

I

REDUNDANT
BIT II

12

13

14

Figure 6. Parallel Coder.

15

A SEMI-PERMANENT MEMORY UTILIZING 'CORRELATION ADDRESSING

relation weights, thereby automatically doubling the correlation distance, when the solenoids are reversibly driven for one and zero
inputs.
Magnetic Structure
A solenoid using no ferromagnetic core has
a very uniform coupling to a surrounding loop
over almost its whole length as is shown in
Figure 8. However, for a given number of
turns, an air core solenoid has a relatively low
self-inductance, therefore presenting a low
impedance to its driver. Hence many turns
must be used for practical air core solenoids
with the consequence that the transformer stepdown turns ratio is large. To allow a smaller
number of turns, larger diameter air cores or
ferrite cores must be utilized to maintain a
practical level of self-inductance. The resulting
coupling to a loop unfortunately becomes very

113

nonuniform as shown in Figure 9 by the dashed
line, an undesirable situation since the drive
voltages induced in the planes would vary depending on the position of the plane along the
solenoid.
To compensate for the nonuniform coupling,
two techniques were evolved. The simplest was
to vary the turns density along the winding so
that regions near the end were more densely
wound than near the middle. For good results,
this technique will require careful control of
winding density, which will be easy to achieve
on production machinery but is difficult to do
in the laboratory. The alternative technique
was to use a linear winding and to vary the
ferrite permeability by using short ferrite rods
butted against each other. Since the reluctance
of the solenoid return path is relatively large,
small air gaps between the rods were found

SOLENOID DRIVERS

114

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

f

OUTPUT

L
I

I
,

~X

~SlTlON~
~

DRIVE

OUTPUT~

Figure 8. Air Cored Solenoid and its Relative Coupling
to a Loop.

quite unobjectionable. Figure 9 shows a solenoid constructed in this way with a middle rod
of low permeability and the two end rods with
higher permeability. It may be interesting to
note that this technique bears a similarity to
a triple-tuned bandpass filter with a broadly
tuned middle section and more sharply tuned
end sections. This techniqueiwas applied in the
memory described.
The question may reasonably be asked why
it is necessary to use all these techniques and
to pay the price of higher drive currents instead of using a closed toroidal-like structure.
The reasons are as follows:
1. A very elongated thin-legged closed struc-

ture is likely to have high leakage flux
between its long members when the leakage reluctance becomes comparable to the
path reluctance.
2. The need for an easy data exchange
would require split cores whose alignment
would need to be carefully maintained.
Since this memory is intended to applications where data is frequently changed,
precisely mated surfaces would require
critical protection and very precise alignment mechanisms.

Solenoid Drivers
The solenoid drivers are designed to supply
a 16 volt, half microsecond long pulse to an
inductive load of about twenty microhenries,
with ample margin. They are also designed to
withstand an inductive overshoot equal to the
drive pulse, or about 32 volts peak.
As was mentioned earlier, each solenoid pair
is connected in parallel, as shown in Figure 7,
so that the solenoids in each pair always have
opposite polarities. A second consideration is
that
"one" input should drive the pair one
way, and a "zero" the other. In earlier designs,
a transformer with two input drive windings
of opposite winding polarity, one from each of
two separate drivers, coupled to an output
winding that was connected to the solenoid
load. When "one" was asserted, one switch
closed and drove the transformer, and when a
zero was asserted, the other switch and winding drove the transformer, thereby generating
opposite drives on the output winding for the
two states. Unfortunately, the transformers
were relatively bulky and somewhat inefficient.

a

Instead, each driver solenoid wag cut with
2 grooves instead of one to allow a bifilar winding, and one winding on each solenoid was
driven for a "one," and the other for a "zero."
Both of the respective pairs of windings on the
solenoids were connected in parallel, in order
to maintain opposite magnetic polarity on the
solenoids for either drive.
The drivers themselves are arranged to be
controlled by the input address code. The state
of the address turns on either of two currents
II or 10 in the driver, which flow as soon as
the input address code bits are set up. The currents are shunted to -18 volts by transistors
• .. I ~

f '" .... t

-

~ ". '- I....

~..

•

:!

T;

8l "'!"' r-...;

Further, since the operating pulse widths are
short because of access and cycle time requirements, the maximum drive currents remain at
acceptable levels.
To give the structure mechanical strength,
the ferrites are inserted into a phenolic-paper
tube and appropriately glued in, and the windings are laid into a shallow threaded groove
cut on the outside of the tube. The entire assembly is then appropriately varnished or
epoxy coated.

OUTpuTl~-- -~
'oo~'_~
~

x"_

Figure 9.

FOR SINGLE
UNIFORM ROC

Ferrite Cored Solenoid and its Relative
Coupling to a Loop.

A SEMI-PERMANENT MEMORY UTILIZING CORRELATION ADDRESSING

T 1 or T 2 which are saturated continually except
during the drive pulse. T 1 and T 2 turn on as
soon as power is applied to form a fail safe
timing circuit for the solenoid drivers. Tl and
T:! can only be shut off by a negative drive
pulse to their bases, and the resistance-capacitance time constant in their base input circuit
is made long enough to allow them to open only
slightly over the maximum desired drive pulse
width. When either II or 12 flows, the opening
of T 1 and T 2 shunts the current into T 3 or T 4.
This turns on one drive transistor, causing the
required drive voltage pulse. At the end of the
drive pulse, T 1 and T 2 again saturate, rapidly
shutting off the conducting transistor- with a
low impedance drive.
The fail-safe circuit of T 1 and T 2 is needed
since the D. C. resistance of the solenoid circuit
is very low, and the drive transistor would soon
be destroyed if allowed to stay on.
It should be noted, that when T 3 is switched
on, the transformer coupling between the two
solenoid windings causes the collector of T -1 to
go to double the supply voltage. Similarly, when
T -t is switched on, T/s collector rises. For this
reason alone, the inductive overshoot clamp
diodes on T;-; and T -t must be tied to almost
twice the supply voltage. Thus, the inductive
transient causes an overshoot approximately
equal to the drive pulse both in amplitude and
pulse width. (Volt-time areas are equal.)
The large overshoot transient is desirable
because it shortens the transient duration, but
tends to produce other unwanted transients.
These transient currents in the data planes
occur after the data has been strobed, hence
they do not affect data read-out, but they do
require a few microseconds to settle, thereby
lengthening the cycle time. These transients,
and means to suppress them, are discussed
later.
Correlation Selection Techniques
The addressing solenoid drive causes a parallel correlation operation on all the stored addresses on each respective plane. Figure 10
shows the outputs of one selected plane, and
three typical outputs of un selected planes, the
former being the positive drive pulse. A means
must be provided to uniquely separate the selected plane by allowing a current to flow in

I

~

.

.

f'

:

(\.

\

/

.
.

115

..

-\

OUTPUT OF

-

DRIVER CORRELATION

2V /em
0.5 fJS/ div

Figure 10. Correlation-Coder Outputs.

its path which is much larger than the linear
sum of ALL the unselected data plane currents. t An ordinary silicon epitaxial diode has
a forward-to-reverse resistance ratio of over a
million to one. Its capacitance of a few picofarads in series with the data plane impedance
of perhaps ten micro henries and three ohms
allows only an extremely short transient current in the un selected planes, and the sum of
all these currents is still far exceeded by the
select current over the drive pulse interval.
The outputs of the stored address code correlations may be represented by a distribution as
shown in Figure 4 if no bias is applied. If a
four or five microsecond memory is desired, a
simple diode may be placed in series with the
path on each data plane and additional solenoid
drive bias of minus nine units may be added to
shift the distribution to that shown in Figure
llA. The diode characteristics in Figure lIB
will allow current to flow in that addressed
plane whose output is to the right of the origin.
Unfortunately, after the data has been
strobed out, and after the drive pulse is. terminated, the overshoot reverses the distribution
so that the unselected planes then go into conduction as shown in Figure llC. As a result,
current flows in many planes for a few microseconds with a period determined by plane inductance~ resistance and diode conduction voltage drop. Due to less than perfect coupling
from solenoids to planes, the sum of the currents is far less than would be expected in a
good transformer, hence the solenoid flux collapses rapidly.
The technique used to prevent the flow of
current during the overshoot period is as folt This statement is actually a simplification intended
to clarify. Actually, the differential of the desired current flow over the interrogation period must greatly
exceed the sum of all the un selected differentiated currents. Since the small, unselected' current transients
are very short, their positive and negative differentials
essentially cancel out during the first fraction of the
driver pulse period.

116

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

t

FREQUENCY
OF OCCURRENCE

A. DISTRIBUTION OF OUTPUTS
DURING DRIVE
+7

OUTPUT

_OUTPUT

OF SENSE SOLENOIDS
'50 my/em

0.51'1/ div
B. DIODE CHARACTERISTIC

Figure 13.
C. DISTRIBUTION OF OUTPUTS
DURING OVERSHOOT

Figure 11. Distribution of Outputs for Given Drive and
Diode Characteristic.

lows. First, the drive bias is changed so that
the distribution of outputs is that shown in
Figure 12A. Second, a zener diode with a breakdown voltage VIis placed in series with the
diode. Its voltage is chosen such that the sum
of the diode forward conduction voltage drop
and the zener breakdown voltage drop equals
a voltage which is two units higher than the
right limit of the distribution at + 11 as is
shown in Figure 12B. Now, during drive, only
the selected current flows just as before. However during the overshoot period, the distribution'is such that no current flows at all, as is
shown in Figure 12C. Hence, a new memory
cycle can begin in less than a microsecond. The
oscillograph in Figure 13 shows the voltage
sensed by a solenoid in an array loaded with
fifty planes using simple diodes, and the oscillograph in Figure 14 shows a similar output due
to fifty planes utilizing the diode combination.

t

FREQUENCY OF OCCURRENCE

The diodes are ordinary planar epitaxial
types, but "gold bonded" germanium paint contact types work almost as well. The zener diodes
most commonly available have relatively high
capacitance since they have large junctions designed for high dissipation. The emitter-base
junctions of a small silicon transistor such as
a 2N706 have very sharp and uniform zenerbreakdown voltages, and low junction capacitances on the order of a few picofarads. These
transistors, used as zener diodes, may be seen
in the photograph of the ~emory in Figure 15
hanging from the sides of the data planes. However, the diodes are mounted integrally on the
data plane in small holes, staggered around
the planes' peripheries as shown in Figures 2
and 16. In later units, where the zener diodes
are needed, the diode-zener diode would be in
one component mounted as the diodes are now
mounted as shown in Figure 16. The dual component is a commonly built one, and is in
essence a transistor with no base lead connection, in which the usual collector j unction is

-

,----

---/

---- -

A. DISTRIBUTION OF OUTPUTS
DURING DRIVE

--~---"--~+~13--":'iy

Worst Case "Ones" and "Zeros"-Diode
Detector.

0.5 fJVdiv

100 mV / em - SOLENOID OUTPUT
0.5 fJl/ em - IN PLANE

I. 0100( - ZENER DIODE
CHARACTERISTIC

VI

0.5 "./ div

I) ~ ~-~~ '" ,,' , ~C. DISTRIBUTION OF OUTPUTS
DURING OVERSHOOT
-19

Figure 12. Distribution of Outputs for G~v~n Drive and
Diode-Zener Diode CharacterIstic.

_.//\

---./''''--'

"\ '--

50 mV / em - SOLENOID OUTPUT
0.5

AI div

Figure 14. "One" and "Zero" Outputs for 3,as and
1.5ps Cycle Time with Zener Diode-Diode Detector.

A SEMI-PERMANENT MEMORY UTILIZING CORRELATION ADDRESSING

the diode and the emitter j unction is the zener
diode. Dozens of silicon epitaxial type transistors were found to have the desired characteristics, shown in Figure 12B, hence no problems
are anticipated in obtaining these "integrated"
circuits.
Data Readout
The device described up to this point of the
paper constitutes a substitute for a pair of
connections to each plane, with appropriate gating and drive circuitry. Little has been mentioned as to how the current in the plane is
detected and used. The organization for data
readout is the subject of the following
paragraphs.
The current ramp in the data plane constitutes a primary drive to a multitude of long
sense solenoids or transformers. Each loop or
enclosure of a solenoid on a driven plane is a
primary coupled to the solenoid secondary, or a
"one" and each bypassed solenoid constitutes a
"zero" when that plane is interrogated. A
"one': causes a voltage output of one polarity,
and a zero causes a smaller voltage of opposite
polarity.
Figure 17 is an oscillograph that shows the
drive current in the data plane, and Figures 13

117

and 14 the outputs of a number of "ones" and
"zeros" from the respectively driven solenoids.
Obviously, all bits on a plane are emitted in
parallel, hence some gating is usually desirable
to connect only the desired subset, or word, to
the output amplifiers. The method of achieving this is quite simple. One terminal of each
solenoid in a word group is tied together with
the similar terminals of the solenoids in that
group. This common terminal becomes the
word-select control terminal. All the other
word-groups of solenoids are similarly tied
together. This is shown in Figure 18.
In each word group, the other terminal of
each solenoid representing each bit of the word
is tied to all the other respective solenoids in
the other words by means of diodes. All the
common "word line" terminals are biased so
that their respective diode switches are backbiased except for those of the addressed word.
The diodes on the addressed word's solenoids
are forward-biased before the data plane is
pulsed, hence effectively connecting the addressed solenoids to the preamplifiers before the
interrogating pulse. Since a fraction of a microsecond is needed for currents to change and for
diodes to switch, this word preselection proced ure is timed ahead of the main pulse.

Figure .15. Photograph of System.

118

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 16. Diode Mounting Close-Up.

The solenoids themselves for most applications are air-cored. These are simply phenolic
paper tubing which is wound with a helix of
thin copper wire, typically, number 30 wire
gauge. After winding, it is suitably coated to
protect it with either varnish or epoxy coating.
For applications where higher outputs .are
. desired, ferrite cored solenoids, smaller in diameter than those in the drive array (quarter inch
diameter instead of three eighths) may be
used. To minimize pattern sensitivity, they
should either be paired and connected in series
or spaced far apart.
Output Circuitry
The diodes used at the output of the solenoids
could be matched to those on each bit line to
allow the use of a direct coupled, single ended

system. However, for signals below 100 millivolts, typical of the simpler air-cored pick-up
solenoids, capacitor coupling is indicated.
Hence the gated signal is amplified in a linear
amplifier, along with any pedestal shifts due
to word-line switching, and voltage restoration
is applied. If the access time is to be short
compared to the pulse width, keying or gating
of the restoring voltage is required. If the
access time is long compared to the pulse, an
ordinary resistance-capacitance high-pass filter
is adequate.
The waveforms of the connectionless memory
shown in Figures 13 and 14 require strobing
for reliable operation, and it is timed to occur
just before the end of the drive pulse.
+v

-v

-v

CURRENT IN PLANE
100 mal em
0.5 .,./ div

-v

f

SELECTION
VOLTAGES

Figure 17. Drive Current in Plane Due to Hamming
Correlation.

BIT 2

BIT 3

Figure 18. Word Pre-Selection Matrix.

A SEMI-PERMANENT MEMORY UTILIZING CORRELATION ADDRESSING

In the limit, with a pick-up array of paired
ferrite-cored solenoids, which may deliver outputs of as much as a volt, output flip-flops
could be strobed directly from the solenoids.
In a more typical case, one or two transistors
can be used for amplification, and another for
slicing and strobing. For increased speed, a
two-stage amplifier followed by the voltage restoring switch, followed by a slicer and output
stage is desirable, and the memory described
here used this system and is shown in Figure
19. It should be emphasized, that in all cases,
the amplifiers were single-ended and differential amplifiers were not required.
Data Planes
The data planes in the earliest work were
simply thin wire, wound on plastic sheets with
small bobbins attached. However, this technique did not allow for quick and easy exchange
of individual circuits paths or planes. Copperclad Mylar was soon found to the applicable to
the requirement.
The tooling technique involves accurately
drawing the printed circuit layout, drilling a
master template which fairly accurately matches
the layout, and having a stainless steel mesh
"silk screen" fabricated from the printed circuit layout.
To avoid critical alignment and fabrication
problems, copper path widths are made about
0.040" wide, distances between closest conductors are also 0.040" and the closest a copper
path passes to a hole is nominally 0.060". The
solenoid array base plate and the data planes
themselves are drilled through the same template, hence with only modest care, alignment
is no problem. The holes in the planes are about
0.1" larger than the solenoids; hence they fit
quite loosely.

119

All data planes contain both alternate paths
around the solenoids. In the laboratory, the
data is entered by simply scraping off the etch
resist before the planes are etched. The result
of this operation can be seen in Figure 2. A
machine has been constructed that mills away
the copper path, under control of an ordinary
punch card, at the rate of six bits per second,
and this is shown in Figure 20, and can be
seen operating on a large 1428 bit plane.
The fabrication of the planes themselves is
straightforward. Silk-screening, mass drilling
under the template, data insertion and etching
comprise the laboratory process. Screening,
drilling and etching are the large scale process
with subsequent data insertion by punching,
scraping or milling on the aforementioned
machine. In the field, the copper paths can be
severed with a knife.
The material used mostly so far has been
one ounce copper (0.00135") on 2 mil Mylar
(0.002") which has a total thickness of about
0.004", allowing well over two hundred planes
per lineal inch along the solenoid.
Mechanical Considerations
In a memory in which changes are not frequent, it is simple enough to slide the planes on
or off individually. For greater convenience,
many planes can be prealigned to thin· base

OUT

STROlE

Jr"7
-\I'

WOlD SOL£NOID UNE

]f.'
VOlTAG£·

-0.7

~ESTORATION

DftMS

Figure 19. Pre-Amplifier.

Figure 20. Punch-Card Controlled Cutter for 1428 Bit
Planes.

120

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

plates, covered with another thin sheet, and
handled as magazines. In either case, the only
disadvantage is that in removing data behind
or below other data, which is inaccessible until
the covering data is removed.
A "file cabinet'" like mechanism has been designed to avoid this problem. In this technique, shown in Figure 21, the solenoid array
is fastened to the stationary back panel behind
a drawer section, with the solenoids extending
through the drawer when the file is closed. The
solenoids are withdrawn from the drawer when
the file is opened. Thus when the file is open,
magazines can be removed or replaced individually, and closing the file mates the data containing drawer and the solenoid array. A unit
such as this is now under construction.
The magazines themselves contain one to two
hundred planes each, which are aligned to the
magazine by several pins.
Changing one data plane requires opening of
the drawer, opening of the magazine much as
a loose-leaf notebook, finding the "page," and
exchanging it.
In some operations, entire programs or tables
would be stored or shipped in magazines, and
when the data was to be used, that magazine
simply dropped into the drawer, and the drawer
closed.

Conclusions
At present, a 360,000 bit memory has been
built and about a hundred planes placed in it.
The signal degradation in increasing the number of planes from a few to a hundred was very
minor, hence extrapolation to full capacity appears justified. The unit built used a Hamming code and has operated well. However, for
the small increase in complexity, the Golay
code more than doubles the selected current,
hence a unit now under construction will use
that code.
A practical limit to this technique is about
4,000 data planes since the practical but powerful Golay code is extendable to a 23-12 code.
Physical dimensions also suggest that a stack
of 4,000 planes, or about twenty inches, is a
reasonable limit. Lengthening the solenoid
causes linearly increased driver voltage requirements, and they show practical limits which are
equivalent to between 2,000-4,000 planes, with
presently available transistors.
The limits on the number of bits per plane
is also between 2,000 and 4,000, imposed by the
limits of the correlation voltage output drives
versus the data planes' path resistance and inductance as well as the propagation time in
the data planes' paths.
In summary, the size limit per module is
about 10 i bits, and 2 X 106 bits appears easy
to reach.
As to access and cycle times, the limits vary
with module capacity, and for a 1 megabit
memory 0.5 microsecond access and 1 microsecond cycle probably are close to the limit,
and twice this is relatively straightforward. Decreases in memory capacity, particularly data
plane bit capacity, should be followed linearly
by access and cycle times down to a limit of
about 0.25 and 0.5 microseconds respectively.
Below this, directly connected data plane memories should be considered.

Figure 21. "File Cabinet" Mechanism.

The cost of these memories is low but highly
variable since the associated electronics, inputoutput buffers, coder, sense amplifier and word
line selectors set up an "overhead" that is
almost invariant over a range from under a
hundred to a thousand planes, and goes up very
slowly beyond that. The cost of the array, even

A SEMI-PERMANENT MEMORY UTILIZING CORRELATION ADDRESSING
in hand-made versions, amounts to only a small
fraction of a cent per bit capacity. The data
plane cost is between a quarter and one cent
per bit, including data entry and all fabrication; and a full electronics complement can add
anywhere from a quarter to two cents a bit
depending on memory size and speed. In summary, this memory has a bit cost ranging from
half a cent per bit for large memories to a few
cents per bit for relatively small ones, with some
downward revision when produced in quantity.

It is believed that this type of memory will
find application in digital computers where
large, infrequently changed blocks of data are
used, and other applications where the memory's rapid data change capabilities allow it to
be used as an input device as well.
ACKNOWLEDGMENTS
The author would like to acknowledge the
valuable'suggestions and discussions with many
of the members of Sylvania's Applied Research
Laboratory and particularly those of Messrs.
Stephen Gray, Benjamin Eisenstadt, Allan
Snyder, Gerald Ratcliffe; Doctors Donald Brick,
Richard Turyn and Paul Johannessen and our
Director, Dr . James Storer.

REFERENCES
1. PICK, G. G., GRAY, S. B., and BRICK, D. B.,
"The Solenoid Array-A New Computer
Element," IEEE Transactions on Electronic
Computers, Vol. EC-13, Number 1, February 1964.

121

2. YOUNKER, E. L., et aI., "Design of an Experimental Multiple Instantaneous Response
File," AFIPS Conference Proceedings, Vol.
25, Washington, D. C., pp. 515-527, April
1964.
3. KUTTNER, P., "The Rope Memory, a SemiPermanent Storage Device," AFIPS Conference Proceedings, Vol. 24, Las Vegas,
Nevada, pp. 45-58, October 1963.
4. BUTCHER, 1. R., "A Prewired Storage Unit,"
IEEE Transactions on Electronic Computers, Vol. EC-13, No.2, April 1964.
5. ISHIDATE, T., YOSHIZAWA, S., and NAGAMORI, K., "Eddycard Memory-A SemiPermanent Storage," Proc. of the Eastern
Joint Computer Conference, Washington,
D. C., December 1961, pp. 194-208.
6. FOGLIA, M. R., McDERMID, W. L., and
PETERSON, M. E., "Card Capacitor-A SemiPermanent Read-Only Memory," IBM J.
Res. and Dev., Vol. 68, p. 67, January 1961.
7. MINNICK, R. C., and HAYNES, J. L., "Magnetic Core Access Switches," IEEE Transactions on Electronic Computers, Vol. EC11, No.3, June 1962, pp. 352-368.
8. TURYN, R., "Some Group Codes," Internal
Applied Research Laboratory Note Number
404.
9. DONNELLY, J. M., Card Changable Memories, Computer Design, Vol. 3, No.6,
June 1964.

A lOs. BIT HIGH ·SPEED FERRITE

MEMORY SYSTEM - DESIGN AND OPERATION
H. Amemiya, T. R. Mayhew, and R. L. Pryor
Radio Corporation of America
Camden, New Jersey
dividual word lines. This arrangement reduces
the noise voltages that are coupled into the
memory stack from the word drive system.

INTRODUCTION
With the advancement of computer technology in recent years, the demand for a veryhigh-speed memory has greatly 'increased.
Scratch-pad memories of smaller than 100
words with cycle times faster than 500 nanoseconds are commonly found in computers on
the market. However, larger memories of the
same speed range are not yet commercially
available, due to the fact that the problems in
building a large memory are much more complicated than those in building a small memory.
These problems center around the transients
generated in the digit sense system.

The sense amplifier is a differential amplifier
in which a delay line is used to minimize dc
imbalances and level shift. A tunnel-diode
strobe circuit is used to provide low-level
thresholding and high-speed operation.
Some portions of the electronics of the
memory system are located very close to the
memory stack. Interconnections are made either
by cables or by microstrips. The use of these
techniques has resulted in a memory cycle time
of 450 nanoseconds for the, memory system.

In order to understand these problems, a
1024-word 100-bit memory was built. The storage cells consist of ferrite cores (30 mils O.D.,
10 mils LD., 10 mils thick) used in a two-coreper-bit arrangement in a linear organiz~d array.
In order to simplify the core-threading work,
only two conductors per core are used; one conductor is plated, leaving only one wire to be
threaded.

MEMORY CELL OPERATION
Linear selection (word-organized memory)
and partial switching1 , 2, 3, 4, 5, 6, 7 are the two
techniques commonly. employed to achieve a
cycle time of one microsecond for a high-speed
ferrite memory. Linear selection offers the advantage that read currents of large amplitude
(limited only by drivers) can be used to increase
speed. This method contrasts with coincident
current selection, where read currents are dictated by the threshold characteristics of the
ferrite cores used.

As a new approach, digit lines are treated as
a set of mutually coupled parallel transmission
lines and are terminated accordingly. Recognition that different modes of wave propagation
exist on digit lines was probably the most important step in obtaining the high-speed operation of the present memory.

As the memory speed is increased by narrowing the width of the write and the digit pulses
and subsequently the width of the read pulse, a
point is reached where two-core-per-bit operation becomes necessary. There are two reasons

The word drive system uses a square selection matrix with transformer coupling to in123

124

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

for this: the sense signal generated on reading
a ZERO becomes large as the rise time of the
read pulse is decreased; and the sense signal
difference between reading a ONE and reading
a ZERO becomes small because the digit pulse
in the presence of the write pulse switches only
a small fraction of the core irreversibly. Figure
1 illustrates these reasons qualitatively. The
ZERO signal is due to reversible flux change,
and the ONE signal is due to both irreversible
and reversible flux changes, with the former
contributing .to the net -signal difference between a ONE and a ZERO.
Two-core-per-bit operation provides a means
of cancelling the reversible flux contribution to
the total sense signal. There are many schemes
employing two cores per bit,8, 9, 10 but the one
used in this memory is shown in Figure 2. Here,
each core is threaded by two conductors, one in
the word direction and the other in the digit
direction. When writing, both core A and core
B of the same bit pair receive a write pulse. In
addition, either core A or core B receives a
digit pulse depending on the information being
written in. When reading, a read pulse is applied to both core A and core B in the direction
opposite to that of the write pulse. Digit pulses
are always applied through the cores in the
direction which is the same as that of the write
pulse, because the digit disturb threshold of a
core becomes much lower if opposite~polarity
digit pulses are used. 7 , 9,10

R

--------111

--------111

WRITE ONE
WRITE ZERO

CORE A

CORE B

W+O
W

W
W+O

(b)

~

V.....
(e )

TIE

ZERO

Figure 2. Two-core-per-bit scheme: (a) basic read-write
scheme, (b) magnetization applied to cores when
reading, (c) net sense signals.

The sense signals generated at core A and
core B are added differentially in a differential
sense amplifier, where the signal due to the
reversible flux change is cancelled. Therefore,
only the net signals as shown in Figure 2 ( c)
reach the threshold circuit of the sense
amplifier.
This two-core-per-bit scheme has the following features:
1. Bipolar sense signals provide more reli-

able sensing compared to a unipolar sense
signal.
2. Word line impedance ·is constant regardless of the information pattern because
each bit (a pair of cores) presents a constant impedance to word pulses even if a
ONE or a ZERO is stored.
3. Read and write pulses may have loose
tolerances.

t:::>
t:::>

4. Balanced digit lines that are paired for
one bit location offer a possibility of controlling wave propagation inside a
memory stack. This point will be described in more detail later.

Q.

o

o

100

Figure 1. Sense signals of one-core-per-bit memory at
increased speed.

The ferrite cores used in this memory have
an outer diameter of 30 mils, an inner ,diameter
of 10 mils, and a thickness of 10 mils. The operating conditions are shown in Table I. A test
has shown that the worst-case disturb pattern
changes the sense signal by less than 10 per
cent.

A 105 BIT HIGH SPEED FERRITE MEMORY SYSTEM

125

Table I
OPERATING CONDITIONS OF THE FERRITE CORES
30 mils O.D., 10 mils J.D., 10 mils thick

CORE DIMENSIONS
DRIVE PULSES

AMPLITUDE

RISE TIME

READ
80 nsec
630 ma +5%
WRITE
220 ma +5%
40 nsec
DIGIT
30 nsec
70 ma +3%
SENSE SIGNAL FROM CORES
KICKBACK VOLTAGE WHEN READING

FALL TIME

WIDTH (50% point)

30 nsec
40 nsec
30 nsec
+50 mv
0.25 v/bit

80 nsec
80 nsec
75 nsec

WAVE PROPAGATION IN THE MEMORY
STACK AND TERMINATIONS

inherent coupling due to digit lines running in
parallel and the coupling due to word lines.

It is a very basic requirement that a memory
system· must be able to store any ,information
pattern desired at any word location. Since
some words are located close to the digit drivers
and sense amplifiers whereas others are located
far away from them, it is required that digit
lines must be able to carry digit pulses and
sense signals without distortion. These requirements make it essential that the wave propagation inside a memory stack be well understood.n,12 The problem is complicated because
many digit lines are parallel for a considerable
distance and because many word lines cross the
digit lines at right angles, with ferrite cores at
the intersections. A relatively simple mathematical analysis of this structure can be made
if one assumes that the delay on the word lines
is zero. Then, the presence of word lines may be
considered as contributing only to the coupling
between digit lines. With this assumption, the
problem of two-dimensional wave propagation
changes into that of one-dimensional wave
propagation on multiple parallel transmission
lines with mutual coupling. The mutual cou:'
pIing now consists of two parts, namely, the

To fulfill the requirement that digit lines
carry digit pulses and sense signals without distortion, it is necessary that digit lines be lossless
and that there be no interference among waves
propagating on separate digit lines. The first
condition is met approximately by a memory
stack. The second condition is normally not sat.:.
isfied because of mutual coupling. However,
there is a wave mode that propagates on a pair
of lines without interference, provided that i a
certain manipulation of coupling is made.

LINE

n

LINE

n'

Sl-

PAIR n
{

1...[ -

EQUAL
COUPLING

k
Equalization of coupling and differential
mode.

UNE

Figure 3.

In Figure 3, line n and line n' belong to pair
and line k is a line outside pair n. Assume
that the coupling between line n and line k is
made equal to that between line n' and line k.
Then, the differential-mode propagation on pair
n (Le., simultaneous propagations of same
amplitude but of opposite polarities on lines
nand n') does not induce propagation on line k,
because of cancellation effect. In other words,
if digIt lines are paired, each pair can have independent differential-mode propagation without interference, provided that equalization of
coupling is made. * The transposition method
used in the stack to obtain equalization of coupling will be explained later.
11,

Therefore, it is desirable to have all the
propagations in differential mode. However,
this is not the case with the memory being discussed here. In Figure 2 (a) it is shown that
digit lines are paired, a result of the consideration given above. But the digit pulses are not
applied differentially because negative digit

* Proof is given in the appendix.

126

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

pulses are not permitted. Since either of the
two lines of a pair is always driven by a digit
pulse, whether a ONE or a ZERO is being written in, digit pulse propagation can be regarded
as a superposition of the differential-mode
component and the common-mode component as
shown in Figure 4, with current amplitude onehalf that of the digit pulse on each line.
The differential mode component consists of a
number of differential mode propagations, one
for every digit line pair, that are made independent of each other by equalization of coupling. The common mode component obviously
has no interference problem, since all the digit
lines carry the same current pulses simultaneously. The information is carried by the differential mode component and not by the common
mode component, as the latter merely serves as
a fixed bias, independent of the information
being written in.
Digit lines are terminated to eliminate reflections, since undesired reflections reduce system reliability and prolong cycle time. For
instance, a proper termination is the only means
to minimize the waiting time between writing
and reading, as the digit pulses must be completely dissipated before sense signals can be
detected.

{"

1.....1'"

1.....1'"

.rt.

{Ii
()

n

Z. •

Zc-Zd

2

{"

{"

I

..It.

.IL..

-

.IL..

()

(j

II

AAIR

.IL..

{ I,

PA.. {" n

.l"""'\.

()

1.....1'"

Ii

(a)

(b)

{""

.IL..
Ie)

Figure 4. Propagation of digit pulses: (a) digit pulses
on digit lines, (b) differential mode component, (c)
common mode component.

The differential mode component and the
common mode component require different impedance for termination. As shown in Figure
5, let Zd and Zc be the proper termination for
the differential mode and the common mode,
respectively. Zd is smaller than Zc,and the difference between the two is rather appreciable
due to the effect of word lines. To terminate
both modes, either a T network or a 7r network
may be used, as shown in Figure 5 (c) and (d).

(b)

>11
(e)

.IL..

..11..

Ci

11

(a)

PAIR [:

{Ii

PAI.{" n

PAIR

r::

:$::::

Z • 2 Zc Zd
Zc-Zd

(d)

Figure 5. Digit line terminations: (a) differential mode termination, (b) common mode
termination, (c) T termination (both modes), (d) 11' termination (both modes).

A 105 BIT HIGH SPEED FERRITE MEMORY SYSTEM

When reading, signals are sensed by differential sense amplifiers. It is noted that the net
signal is propagated in the differential mode,
and there is no interference problem. Since
common-mode voltage is not sensed by the
amplifiers, the common-mode termination is less
critical than the differential mode termination.
The fact that the digit lines are terminated
means that only one-half of the raw sense signal reaches the sense amplifier. This seeming
disadvantage is far outweighed by the advantage of being able to control the wave propagation generated in the memory stack.
Since the actual memory stack consists of
eight memory planes, digit lines are folded.
Figure 6 shows digit lines unfolded in order to
show the transposition details. This transposition method equalizes coupling between any two
adjacent line pairs if transpositwns are done at
short intervals. Figure 6 also shows that the
digit lines are terminated on both ends by T
terminations and that digit drivers and sense
amplifiers are connected to the mid-points of
digit lines. This connection minimizes the digit

127

line delay measured from the driving and sens- .
ing point. Yet, the digit line delay across 1024
words of 40 nanoseconds requires two different
timings for the read and write pulses. Digit
pulses used have negative polarity and are applied through diodes. These diodes disconnect
digit driver cables and digit drivers from digit
lines to avoid loading the sense signals. The
emitter followers are the first stage of a sense
amplifier and work as impedance transformers.
Thes~ diodes and emitter followers are mounted
on the stack assembly.
The effect of the new termination method on
the digit pulse waveform and on the digit
transient will be shown later.
DESIGN OF MEMORY STACK
In the memory, one of the two conductors
that go through cores is a conventional wire and
the other is a plated conductor. Figure 7 shows
the plated conductor as well as how memory
cores are assembled into a strip. Individual
cores are first metallized by vacuum deposition
and then inserted into a groove cut in the mid-

PAIR

DIGIT DRIVER CABLES

1=~!:i;~=iE~§~§~FROM
DIGIT
I
DRIVERS
SENSE AMPLIFIER
FIRST STAGE

' - - - - - ' ( L _ _ _ _ _J

TO SECOND
STAGE

Figure 6. View of unfolded digit lines showing trans-positions to obtain equalization of coupling and connections to digit drivers and sense amplifiers.

128

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

INSULATOR

Figure 8. Memory plane.
Figure 7. Ferrite core strip.

dIe of an insulator strip, with connecting conductors already etched. Then the.strip is electroplated to improve contact and also to lower the
over-all resistance of the conductive path. 9 Since
the connecting conductors on an insulator strip
connect two neighboring cores on the same side,
the resulting conductive path has a zig-zag
pattern.
Each ferrite core strip contains 128 cores,
with each memory plane holding 200 strips.
Since plated conductors are used as digit lines,
each memory plane contains 128 words of 100
bits each with 8 planes comprising a full
memory stack. Plated conductors were used as
digit lines because they permit pairing two
neighboring conductors to form a bit pair. Such
pairing is helpful in maintaining a good balo.:
ance between the two lines of a pair and also
to simplify transposition. If, on the other hand,
the plated conductors are used as word conductors, it will be necessary to pair two nonadjacent digit lines because of the zig-zag pattern
of the plated conductors.
As shown in Figure 8, a memory plane consists of a substrate and 200 ferrite core strips,
of which 100 are mounted on the top surface
and the remaining 100 on the bottom surface.
This packaging technique causes the word lines
to be folded into hair-pin shape to facilitate connection to the word drive system. Two opposing
sides are used for word line'; c:onnections; i.e.,
on each memory plane 64 word lines have their
ends brought out to one side and the other 64
word lines to the other side. Ground planes are
provided on the top and the bottom surfaces

of a substrate, over which ferrite core strips
are placed. The ground planes are connected
to the supporting structure on the four corners
of the memory stack assembly.
When eight memory planes have been assembled, ferrite core strips are connected to form
digit lines. Since each strip contains 128 cores,
eight strips connected in series make up a full
digit line. One group of 50 bit pairs (100 digit
lines) is made up of core strips mounted on the
top surfaces of the eight memory planes;
another group of 50 bit pairs consists of core
strips on the bottom surfaces of the memory
planes. This packaging technique is shown in
Figure 9. It is noted that these two groups have
symmetry; i.e., (b) is obtained by rotating (a)
180 degrees. The digit system is divided into
two groups to make the best use of the. stack
surface areas· for external connections, which
include 200 transistors, 400 diodes, 600 termination resistors and 300 cable connectors for
the digit system. (See Figure 6.) Figure 10
shows the utilization of the memory stack surfaces for the digit and the word connections;
all usable surfaces are being used. The top and
bottom surfaces are actually the top surface of
the top memory plane and the bottom surface
of the bottom memory plane, and are not usable
for external connections.
In the construction of the present memory,
bit sense signal testing was done after each
memory plane had been completed with core
strips. Bad cores were then replaced. The resistance of the digit lines (plated conductors)
across 1024 words was found to fall between
1.6 and 2.0 ohms.

A 105 BIT HIGH SPEED FERRITE MEMORY SYSTEM

"'==========---o END

MIDPOINT
MIDPOINT
MEMORY
PLANE
SUBSTRATE

1...=:=====---oEND

(a)

( b)

Figure 9. Methods of connecting ferrite core strips: (a) one group of 50 bit-pairs is
obtained by connecting ferrite core strips on the top surfaces of all eight planes, and
(b) the other group of 50 bit-pairs is obtained by connecting ferrite core strips on the
bottom surfaces.

WORD
. / /""'- -- CONNECTIONS

512WORD~

DIGIT //",-...---- / /
CONNECTIONS
,., 50 BITS

.///

f "" "" . . . .

r:_
I

I
I
I
I
I

".................

. //

~/
I

/- . .

""--...... //

I
I

~,

"'"

I

-',1//

"(
I
I

I

/""-,

I
I

I

------/1:::,

MEMORY STACK
1024 WORDS
X 100 BITS

//

I

/- I
//

///

./

I
I

./'

I
I

DIGIT
CONNECTIONS)
50 BITS

//

/

//

/

/

/

. . . --....J.-/.

Figure 10. Utilization of the memory stack surfaces for external connections.

129

130

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

ELECTRONICS FOR THE 1024-WORD
MEMORY

CONTROL SYSTEM

Figure 11 is a block diagram of the memory
system, which has four major portions:

block,\Whichhasatypicalrtwo-leve~AND\-OR !logic

1.
2.
3.
4.

The control system is built of a logic building

Memory stack assembly,
Control system,
Word system,
Digit system.

The memory stack has been described. The
control system generates and supplies all timing
pulses for the drive system and for transferring
data. The word system at the command of the
control system supplies the proper read and
write current pulses to a selected word for
reading and writing information out of or into
the memory. The digit system is used in a dual
fashion: to provide sensing of the information
stored; and to write back into the memory,
simultaneously with the write pulse, formerly
stored or new information. Parts of both the
word system and the digit system are packaged
on the memory stack.

WORD
SYSTEM

l

•

ADDRESS

MEMORY ADDRESS REGISTER
10 BITS

,

,5 BITS

-r~ABLE;

SWITCHES
32

o 100ETRANSFORMER
MATRIX
32 X 32

•

I
I

I

100 BITS

,

1
READ
DRIVER
32

WRITE
DRIVER

TIMING
PULSES

1
WRITE
DRIVER
32

I

TERMINATIONS
AND SE'NSE
AMPLIFIER
FIRST STAGES

MEMORY STACK AND
SURROUNDING ELECTRONICS

•

X8

I 100
I
CABLES

~

I

.J

DATA

DIGIT
SYSTEM

l

MEMORY REGISTER
100 BITS

T
SENSE
AMPLIFIER
SUCCEEDING
STAGES

100
CABLES

DIGIT
DRIVER
ONE

I 100
I CABLES

DIGIT
DRIVER
ZERO

-,

COM!AND

TIMING ·GENERATOR

~CODER

J32 CABLES
.JL32_CABLES
_ _ _ _ -,

MEMORY STACK
1024 WORDS

CONTROL
SYSTEM

t

5 BITS

READ
DRIVER
DECODER
4X8

SWITCH DECODER
4X8

___

delay of seven nanoseconds with fan-out of six.
The system controls all the necessary timing
pulses for each of three cycle types: 1) read
cycle, 2) write cycle, 3) split cycle. The first
two are standard for destructive random access
memories, the first being the standard read-out
operation which must be followed by regeneration while the information is still in the memory
register. The second is the standard means of
getting new information into the memory, the
read half of the cycle being used only to clear
the memory while the strobe pulse is inhibited.
The memory register is loaded with the new
information which is then written into the
memory. The only feature which is unusual is
the split cycle. The first command for this cycle
generates only a read operation accompanied
by a strobe of the sense amplifier. The retrieved
information is available for processing but is
not regenerated since the entire memory cycle
has been temporarily suspended. When the con-

Figure 11. Block diagram of the memory system.

......

A 10· BIT HIGH SPEED FERRITE MEMORY SYSTEM

tinue command is given, the memory register
is reset a second time to receive the newly processed information which is then stored in
memory. Thus, the first half starts a conventional "read" cycle which stops itself in the
middle, upon later command to continue as a
"write" cycle after clearing the memory register. The time-saving features of this type of
cycle are compatible with many of the common
computer operations. The timing pulses generated by the control system for a read cycle
are shown in their time relationships in
Figure 12.
WORD SYSTEM

The word system is required, with the generation of minimum noise, to distribute a large
read pulse, followed by a smaller write pulse
of opposite polarity, to any of the 1024 words
which happens to be addressed by the 10-bit
address register. The bulk of this decoding is
done in a bipolar diode matrix driven by 32
pairs of read and write drivers along one side
-1l~

READ COMMAND PULSE

and 32 switches along the other side. The 1024
intersections of this main matrix are transformer-coupled to the 1024 word lines of the
memory stack. The dc level of the word line is
restored by a diode-resistor network in the
secondary of the transformer. Without this
network a dc level shift will appear, as the read
current pulse is greater in amplitude and duration than the write current pulse. The circuitry
of the main matrix is shown in Figure 13. Each
of the drivers and each of the switches has its
own preamplifier channel complete with an
AND gate having one negative and one positive input. The complete read and write driver
channels are shown in Figure 14, and the
switch channel in Figure 15. These driver and
switch channels are arranged in three 4 X 8
matrices. These matrices permit the selection
of one of 32 switch channels and one each of
32 read drivers and write drivers to select any
word and drive it.
The main problem encountered in designing
a word drive system for a high-speed, high-bit-

__________________

-1'____________________
ADDRESS TRANSFER PULSE
SWITCH TIMING PULSE

~

\

/I

READ TIMING PULSE

\~

WRITE TIMING PULSE

/I

DIGIT TIMING PULSE

I

MEMORY REGISTER
RESET PULSE
STROBE PULSE

131

~\

,

..J\
__________

~f\~

_______________

DATA AVAILABLE PULSE
(COM MUN ICATION PULSE)

______----~f\~-------------

CYCLE COMPLETE PULSE
(COMMUNICATION PULSE)

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

Figure 12. Timing diagram for a read cycle. Read and write timing pulses shift in time
depending on the word address. (Solid lines show "Timing A" and broken lines show
"Timing B").

132

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

WRITE
DRIVER
CHANNEL

W

R
READ
DRIVER
CHANNEL

liB

WRITE
DRIVER
CHANNEL

WORD LINE

S

SWITCH
CHANNEL

S

SWITCH
CHANNEL

Figure 13. Portion of the 32 x 32 bipolar matrix.

capacity memory is that of minimizing the
noise introduced into the stack. As the electronics are a significant cost factor, it is desirable to use a bipolar diode matrix performing
selection with drivers and switches; such a
matrix reduces the cost of the word-system elec-

tronics for a 1024-word memory about ten to
one. It has been our experience, however, that
with all the types of bipolar matrices that we
can devise, severe switching transients are introduced on n lines of an n2 matrix when the
switch selection is made. Moreover, it is found

NEGATIVE
"AND" 0 - - - - - - - ,
INPUT

430pf
750pf

34.enlWt 1°/.

2N828
OUTPUT TO
BIPOLAR
MATRIX

POSITIVE
"AND"~~"""'....I
INPUT
30n

,..-~=--,

560n
(a)

NEGATIVE

nANDn 0 - - - - - - ,
INPUT

430pf

OUTPUT TO
BIPOLAR
___-...-0 MATRIX

POSITIVE
"AND·~~""""...J

INPUT,

30n

(b)

Figure 14. Word drivers: (a) read driver channel, (b) write driver channel.

A 105 BIT HIGH SPEED FERRITE MEMORY SYSTEM

133

NEGATIV,E

HAND"

INPUT

POSITIVE

"AND"
INPUT

Figure 15. Switch channel.

that the characteristics of the memory stack,
both with conventional core memories and with
our partially automated fabrication techniques,
show much tighter capacitive coupling between
the network of word lines and the network of
digit lines than can be made to exist between
either of these networks and a ground plane.
The result is a tendency for the conventional
word selection matrix to introduce a very sizable common-mode noise onto the network of
digit lines.
An analysis of the switch-noise injection procedure in the memory, where the word lines
connected to a single switch are uniformly intersected along the terminated digit line, shows
that a voltage step on the selected switch couples via the 32 word lines controlled by the
switch all along the digit line simultaneously.
Thus, a step at the switch generates a commonmode noise, the amplitude of which can be predicted from the inter-line and line-to-ground
plane capacitances. The portion of this common-mode signal which the stack converts into
the differential mode depends on the balance
between the two digit lines of a pair and varies
from one line-pair to another.
A pulse transformer for each word line was
used for capacitive decoupling between the
word selection matrix and the memory stack.
The interwinding capacitance of the transformer is a maximum of 7 picofarads, whereas
the capacitance between a word line and all the
digit lines connected together is about 60 pico-

farads, resulting "in a switching noise attenuation of about 10 to 1. Starting with a 35-volt,
30-nsec rise time step for switch selection, the
half-selected word lines experience only a 3-volt
step because of the isolatIon afforded by the
transformer. " This condition in turn cal1-ses a
0.5-volt common-mode spike to exist on the digit
line. In the worst case this spike generates a
differential noise signal almost as large in
amplitude as a sense signal. This noise must
be displaced in time from the. sense signal by
causing the timing pulse for the switch to start
earlier than the timing pulse for the read driver.
As shown in Figure 12, the switch timing
pulse is used to select a switch. This technique
differs from normal practice, which does without a timing pulse, with the result that at least
one switch is turned on all the time. In the present memory, a switch is turned on for a specific length of time to let the read and the write
currents go through; otherwise, no switch stays
turned on. The switch noise is appreciably reduced by holding the switches off until after the
memory address register has completely settled
from the address transfer transient, as otherwise a spurious selection of switches during the
address transfer transient will inject additional
noise into the stack. By turning off the switch
as soon as the write pulse is terminated, the
problem of slow switch turn-off can be easily
eliminated.
Another closely associated problem is injection of noise via the half-selected word lines

134

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

controlled by the same switch during the read
pulse. This is due to the passage of the read
pulse through the finite impedance of the switch
circuit, with its mechanism of noise injection
being very similar to the one described above.
This type of noise is a threat due to the fact
that it always coincides with the sense signal.
It is obvious that this problem can be minimized
by lowering the impedance of the switch circuit. A low switch impedance is also desirable
from the standpoint of matrix operation because it permits unimpeded flow of the read and
the write pulses. The problem was solved by
avoiding cables for connecting the switch channels and the word selection matrix altogether,
and instead packaging the output stages of the
switch channels at the memory stack. Here
again the isolation provided by the use of coupling transformers alleviates the noise problem
greatly.
Another advantage in using coupling transformers is the speed increase of the switch operation due to the capacitive isolation afforded
by the transformers. Actually, this speed increase and the switch turn-on noise reduction
brought about by the coupling transformers are
closely related. The capacitive charging and
discharging currents that must come from a
switch when it is turned on and off are made
small by the use of the transformers. Thus,
the switch speed is increased. Since the switch
noise is caused by the same charging current
entering the memory stack, the noise is reduced
by the transformers.
As shown in Figures 6 and 12, the read and
the write pulses have two different timings, depending on the word address. This feature is
necessary because the digit line delay of 20
nanoseconds from the driving and sensing point
to the termination is not negligible compared
with the drive current widths. The problems
here are basically that of aligning the read and
the strobe pulses and that of aligning the write
and the digit pulses. In the present memory,
the strobe and the digit pulses are fixed and
the read and the write pulses are shifted according to the word address. The 1024 words of the
memory are divided into two groups of 512
words. One group is closer to the digit-driving
and sensing points while the other group is
closer to the terminations as showri in Figure

6. The former group uses Word Pulse Timing
A, and the latter group Word Pulse Timing
B. Figure 12 shows that the read pulse of
Timing A is delayed compared to that of Timing B, and the write pulse of Timing A is advanced compared to that of Timing B. The
difference is 10 nanoseconds, which is one-half
of the effective digit line delay.
DIGIT SYSTEM
The digit system (Figure 16) is composed
of the circuits that are used to detect and to
write or regenerate information in each of the
one hundred bits of a selected word. The circuits include 100 sense amplifiers, 100 digit
drivers and the 100 flip-flops that form the
memory information register.

Digit Driver
During the write time, the digit driver provides a 70-milliampere current pulse into one
of the two digit lines in a direction to add to
the write pulse in one of the two cores of a
memory bit. The digit driver consists of two
identical current drivers which are under the
dual control of the timing generator and the
flip-flop in the memory information register.
The width of the digit pulse, 75 nanoseconds, is
controlled by the digit timing pulse.
The first stage of the digit driver produces
a gated 10-volt pulse. The pulse is produced in
one of the current drivers by the coincidence of
the positive digit timing pulse and a low voltage
level from one side of the flip-flop in the
memory information register. The second current driver is inhibited by the positive level
from the second side of the flip-flop.
The gated pulse is applied to the second stage
through a capacitor that is used to give the
pulse a negative level shift so that at the input
to the second stage the pulse goes positive to
- 25 volts from a reference level of - 35 volts.
The second stage is a double emitter follower
which is used to provide a voltage drive for the
output stage.
The output stage is a nonsaturating current
driver whose output current is determined by
the resistance in the emitter circuit and the
voltage swing at the base of the transistor. The
output stage drives the center of the digit line

A 10· BIT HIGH SPEED FERRITE MEMORY SYSTEM

-r

~T
~,:

,DIGIT DRIVER

I

-riE.MORY STACK-

~~~I

FIRST STAGE

I

I

,

SENSE AMPLIFIER- 200

SECOND STAGE

--l
I

~

I
I
I
I
I

i
I

I
II

30/10 CORES

62

1·81<1

1

I

137

4.22 IIA

I

~

'~i l'
I
I
I~

MEMORY

REGISTER
ZERO SIDE

L_

CURRECTOR

I

TIMING

f

I
J
I

I
I

I
I
I
I
I
I
I

I

I
V:'D ~
D«;t.:.~:.:

__
-I V

133

135

I

I

It(

II

1

~~~

,I

62

26

2N708:
IN3605

IN3605

I
I

+3V

I
-30

I
I
1.Jl!.;

1- _____ ~ ~08E

TO MENORV

REGISTER
IK
3.91(

IK

200
IIf3851

2N96SA

+~ _~_ _

__

t

I

-.J

Figure 16. Digit system.

through a 100-ohm cable and a series diode, providing a 70-milliampere pulse into each half of
the digit line. The diode is used at the memory
stack to isolate the digit driver cable from the
digit line when the driver is not in use so that
low-level signals in the memory are not loaded
by the cable.

Sense Amplijier13 , 14, 15, 16
The digit lines are terminated at both ends
in order to reduce the recovery time of the
memory stack. As a result, only half of the
difference signal from the two cores of a bit is
available at the sense amplifier input. The
difference signal is bipolar where one polarity
represents a ONE and the other polarity represents a ZERO. The sense amplifier amplifies
the difference signal and is strobed during a
portion of the read time. The polarity of the
sense signal at strobe time is sensed and if a
ONE is detected, the sense amplifier produces
a 3-volt negative-going output pulse which sets
a flip-flop in the memory information register.
If a ZERO is sensed, no change occurs at the
sense amplifier output. During the write time,
a negative digit pulse of approximately 20 volts

is applied to one of the two digit lines, depending on whether a ONE or a ZERO is being written into the memory. The sense amplifier is
inhibited during the write time by the strobe
circuit and recovers in less than 50 nanoseconds
after the last difference-mode reflections from
the digit pulse have ceased to exist on the digit
lines.
The first stage of the sense amplifier consists
of two emitter followers which are connected
to the center of the digit lines as shown in
Figure 16and are used to provide a high input
impedance so that the sense amplifier does not
load the digit lines and does not interfere with
the termination of the lines. The emitter followers and series diodes are physically mounted
near the center of the memory stack and are
connected to the plug-in board that contains the
regeneration loop circuits by means of a 125ohm shielded twisted-pair cable.
The twisted-pair cable is terminated at the
input to the second stage with resistors connected to a decoupled power supply. When the
negative digit pulse is applied to one of the
digit lines, the corresponding emitter follower

136

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

is turned off and the transient at the input to
the second stage is limited to 300 millivolts,
since the currents in the cable termination are
reduced to zero. The diodes are used in series
with the emitter-follower outputs in order to
prevent the flow of current if the base-to-emitter
breakdown voltage is exceeded by the digit
pulse.
The second stage of the sense amplifier is a
differential amplifier, with the transistor collectors connected together through a delay line.
This stage amplifies the difference between the
input signals and sums the inverted amplified
difference signal and the delayed amplified difference signal. This produces output voltage
waveforms at the collectors that do not have a
dc level shift with repetition rate variations.
The output waveforms are on a well-determined
reference voltage level which is determined by
the current in the large resistance in the emitter
circuit. Practically all of the emitter current
reaches the transistor collectors and produces
a constant operating voltage across the parallel
combination of the collector resistors. The operating voltage is constant even if the current
is not shared equally by the two transistors,
since' the delay line provides a dc short circuit
between the collectors. The collector resistors
are used to terminate the delay line so that
there will be no reflections and the outputs of
the second stage will recover to the reference
level in a minimum of time after the end of
the digit transient.
The delay of the delay line is long enough that
a usable amount of the inverted amplified sense
signal is passed before the output is reduced
by the delayed amplified sense signal. The delay in this system is 25 nanoseconds, which is
approximately one-half the base width of a
sense signal.
The third stage of the sense amplifier is an
ac-coupled differential amplifier. One output is
used as a test point for observing amplified
sense signals, and the other output drives the
next stage. The third stage has a maximum
output current swing that is limited by the current in the emitter current sources. This prevents the digit transient from overpowering the
inhibit current in the strobe circuit.

The last stage is the strobe and pulse-stretching circuit. This stage contains a bistably biased
five-milliampere germanium tunnel diode which
drives an output transistor. The tunnel diode
has two inputs. One input is from the third
stage which provides the amplified sense signal
and also provides the normal bias current for
the tunnel diode. The second input is from the
strobe circuit which during the inhibit time
provides sufficient reverse current through the
tunnel diode to keep it in the low-voltage state
during the digit transient.
The operation of this stage is illustrated in
Figure 17, which shows the tunnel diode voltampere characteristic and its load line. The
tunnel diode is normally biased in the lowvoltage state at point A and is unable to switch
to the high-voltage state during the digit transient because of the current-limiting action of
the third stage. During a portion of the read
time the sense amplifier is strobed by removing
the inhibit current, thereby biasing the tunnel
diode in the low-voltage state near the knee at
point B. A difference signal of five millivolts
at the input of the sense amplifier and the
polarity of a ONE signal is sufficient to trigger
the tunnel diode to point C in the high-voltage
state. The tunnel diode turns on the output
transistor which produces a three-volt negativegoing pulse used to set a flip-flop in the memory
information register. The tunnel diode remains in the high-voltage state until the inhibit

TUNNEL DIODE
CHARACTERISTIC

Figure 17. Tunnel diode characteristic and load line.

A 105 BIT HIGH SPEED FERRITE MEMORY SYSTEM

137

current is applied by the strobe circuit. The
inhibit current resets the tunnel diode to point
A and terminates the output pulse.

Figure 18 (d) shows the strobe pulse which
is positive only during the first peak of· the
amplified sense signal shown in Figure 18 (c) .

The operation of the sense amplifier is illustrated by the waveforms in Figure 18. Figure
18 (a) shows superimposed the read-out signals
and digit transients on the two lines of a digit
line-pair. The stored information is represented
in the difference between the two signals that
appear on the lines at read time.

Figure 18 ( e) shows the sense amplifier output. The negative-going pulse indicates the detection of a ONE.

Figure 18 (b) shows the signals that appear
at the sense-amplifier test point when the delay
line is removed from the circuit. The solid
line shows reading and regenerating a ONE
and the dotted line shows reading and regenerating a ZERO. The amplifier has amplified
the difference in the read-out signals and has
limited the digit transient. It can be observed
that these waveforms have a dc component
which would result in a dc shift in an ac amplifier. This shift would be particularly objectionable at high repetition rates. In addition, the
waveform base line is dependent on the dc
balances of the previous stages.
Figure 18 (c) shows the test point signals
with the delay line in the circuit. The waveforms represent the sum of the inverted
amplified difference signal and the delayed
amplified difference signal. These waveforn1s
have no dc component other than the base-line
voltage, which is well determined.
READ TIME

PACKAGING
The circuitry of the memory, except for
those parts that had to be near the memory
stack for special reasons, is packaged in four
nests surrounding the memory stack as seen
in the photograph in Figure 19. Each nest
has 10 removable motherboards, each of which
could potentially contain up to 56 small plug-in
modules. Individual modules contain such parts
as logic blocks, portions of drivers, portions of
the sense amplifiers, etc. When a nest is completely assembled, all of the circuitry within it
is interconnected by 70-ohm-impedance printed
strip lines on both sides of the motherb()ards
and perpendicular grandmother boards. Interconnections between nests are made by coaxial
cables. Some of the memory circuitry which
did not lend itself to modular packaging be..
cause of power dissipation or size considera..
tio~s, such as driver output stages, was pack..
aged on specially built motherboards by removing some or all of the provisions for pluggable
modules. All logic level interconnections are
made via 70-ohm cables. Re~d and write driver
outputs are transmitted to the bipolar diode
matrix at the stack via 70-ohm cables. To ob-

WRITE TIME

(al SIGNALS ON DIGIT LINE PAIR

WAVEFORMS AT TEST POINT
{b 1 WHEN DELAY LINE IS REMOVED
FROM CIRCUIT

--O---f\-,!?\
\

I

,

,

:
'

,

I.. __ .J

{ 1 WAVEFORMS AT TEST POINT
C WITH DELAY LINE IN CRCUIT

(d1 STROBE PULSE
(el SENSE AMPLIFIER OUTPUT

-..1\______
o
---u----I

Figure 18. Sense amplifier operation.

Figure 19. Memory system.

138

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

tain a lower impedance, the output stages of
the switch channels are located at the memory
stack. These stages are connected to the rest
of the switch channels via 50-ohm cables. The
digit driver outputs are transmitted to the
stack via 100-ohm cables, and the sense amplifier first stages are connected to the rest of the
sense amplifier by twisted-pair balanced cables
having a common ground sheath and a differential impedance of 125 ohms.
TEST RESULTS
The 1024-word two-core-per-bit memory was
built with a complete word system and a full
digit system of 100 bits. Also, a special memory exerciser was built to thoroughly test the
memory system.
Figure 20 shows a switch voltage, read and
write currents and a digit current. The switch
waveform was observed at the center tap of a
word line transformer primary winding (see
Figure 13). The undulations on the plateau
were caused by the flow of read and write currents through the switch circuit. These undulations would have been much larger if the
switches had not been mounted on the memory
stack. Read and write pulses of both Timing A
and Timing B are shown in the figure. Note
that the read and the write pulses of Timing

A are close together, while those of Timing B
are slightly separated. The digit pulse was
observed at the end of a digit line.
As shown in Figure 21 (a), T termination
networks are used to terminate digit lines. The
termination impedances are Zrl = 137 ohms and
Zs = 133 ohms. For practicality, the same termination networks are used for all the 100 digit
line-pairs, although there is some indication
that the optimum value changes from bit to bit,
not so much for Zd but to some extent for Zs.
The calculated value of the common-mode termination is Zc = 403 ohms. The word lines
crossing digit lines are responsible for the large
difference between the differential mode and
the common-mode termination impedances.
Figure 21 (b) shows the voltage waveforms
at the three points on a termination network
as indicated in Figure 21 (a). It is seen that
the voltage waveform at the end of the undriven line B and that at the junction C in the
T termination are the same. This is important
because it means that no current flows out of
the undriven digit line, which is a basic requirement for memory operation as shown in
Figure 2. To make the net current propagation
on the undriven line zero, there must be a voltage propagation on it. (Here, the same velocity
is assumed for all the propagation modes that
exist in the memory operation.) It is to be
CURRENT PULSE

SWITCH
WAVEFORM

LlN~IG~~'R{

--u-

NO CURRENT

(a)

READ AND
WRITE PULSES
(TIMING A)

200 MA/DIVISION

VOLTAGE AT A
(DRIVEN LINE)
READ AND
WRITE PULSES
(TIMING B)

VOTAGE AT B
(UN DRIVEN LINE)

IOV/DIVISION

200MA /DIVISION
VOLTAGE AT C
DIGIT PULSE
AT THE END)
( OF DIGIT LINE

74 MA/DIVISION

_

lOONS/ DIVISION

(b)
-

lOONS/DIVISION

Figure 20. Switch voltage, read and write pulses
("Timing A" and "Timing B"), and'digit pulse.

Figure 21. Voltage waveforms at a termination network: (a) T termination network (Zd = 137 ohms and
Zs = 133 ohms), (b) voltage waveforms.

A 105 BIT HIGH SPEED FERRITE MEMORY SYSTEM

noted that the condition shown in Figure 21 is
realized only when all the 100 digit drivers are
operating.
Figure 22 shows waveforms at a sense amplifier test point, together with related waveforms. Figure 22 (a) shows two bits, one at
the edge of the memory stack and the other at
the center, regenerating ONES and ZEROS
alternately over the entire memory of 1024
words. Note that the sense signals are delayed
to avoid the switch noise. The switch noise, although comparable in amplitude to the sense
signal, could have been made as small as it
is only by the use of coupling transformers.
The negative-going sense signal represents a
ONE and the positive-going sense signal a
ZERO. The digit transient takes about 350
nanoseconds to die down, measured from the
start of the digit pulse. This time includes
approximately 300 nanoseconds attributed to
the base width of the digit pulse and the stack
recovery time, plus 50 nanoseconds attributed
to the sense amplifier. This relatively slow recovery of the stack, even with the elaborate T

WAVEFORM
AT TEST POINT
(EDGE OF MEMORY
STACK)

IV/DIVISION

WAVEFORM
AT TEST POINT
(CENTER OF MEMORY
STACK)

IVIOIVISION

139

termination, seems due to the imperfection of
digit lines as transmission lines.
Figure 22 (b) shows regeneration of ONES
on all the 1024 words. It is seen that the information is available at the memory register in
about 230 nanoseconds from the beginning of
the read command pulse. Figure 22 ( c) shows
a higher repetition rate operation of about 450nanosecond cycle time. I t shows regeneration
of ONES and ZEROS on alternate words over
the entire memory. Here, the switch noise and
the digit transient recovery are made concurrent without affecting the sense signals.
The waveforms shown above represent only
a small portion of the tests performed on the
memory with the aid of the memory exerciser.
These tests confirmed the soundness of the design philosophy, the effectiveness of the problem solving approach, and the practicality and
reliability of the memory system actually built.
CONCLUSION
Development of the present memory system
evolved the method of control of wave propagation. Unless wave propagation is controlled, it
is almost impossible to operate a high-speed
memory. The basic requirements for control
are:
1. Use of two neighboring digit lines as a
pair for one-bit location
2. Equalization of coupling between the
digit lines

READ COMMAND
PULSE
WAVEFORM
AT TEST POINT

WAVEFORM NO. 2
lV/DIVISION

STROBE PULSE
SENSE AMPLIFIER
OUTPUT

5V/DIVISION
OTHERWISE

MEMORY REGISTER
ONE SIDE

READ COMMAND
PULSE
WAVEFORM AT
TEST POINT
STROBE PULSE
SENSE AMPLIFIER
OUTPUT
MEMORY REGISTER
ONE SIDE

WAVEFORM NO. 2
lV/DIVISION

5V1DIVISION
OTHERWISE
te)
- 1 0 0 NS/DIVISION

Figure 22. Waveforms at sense amplifier
test points: (a) regenera tion of ones and
zeros, (b) regeneration of ones, (c) regeneration of ones and zeros at 450-nsec cycle
time.

3. Use of differential sense amplifiers
4. Termination of digit lines on both ends
for all the existing wave propagations
with particular emphasis on the differential-mode termination.
The last requirement is met by the present
memory due to the particular digit drive
scheme used. It requires careful study to choose
a digit drive scheme, as otherwise, a simultaneous termination for all the possible propagations becomes a very complex problem, with no
practical answer. Although not applicable to
the present memory, it is preferred that only
the differential-mode propagations exist. This
may be accomplished by the proper selection
of memory cell types and digit drive schemes,
and will simplify the propagation problem

140

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

greatly. It should be emphasized that the
approach used in this paper in treating wave
propagations in a memory stack is applicable
to any word-organized memory.
The use of transformers to couple read and
write pulses to individual word lines proved
very successful in alleviating the noise problem
associated with the word selection matrix.
There is still a possibility of reducing the noise
further by reducing the transformer interwinding capacity, which will increase the system reliability and at the same time enable a
faster access time.
The use of a delay line in a differential sense
amplifier minimized the problems of dc imbalances and level shift when sensing sm:),ll
signals in an environment of large digit pulses.
In addition, the use of a tunnel diode strobe
circuit provided low-level thresholding and
high-speed operation.
There seems to be no basic difficulty in building a memory with twice as many words, using
the basic design described here. It is expected,
however, that the cycle time will be slightly
longer since the digit lines are twice as long.

4. A ground plane is present. This assumption is also made to permit a mathematical analysis.
A similar problem of multiple line wave
propagation was studied a long time ago.17 The
solution given here is more general than the
one given in the reference and more readily
applicabl~ to memories.
Let the number of lines be 2n, where n is an
arbitrary integer. From these, we form n
pairs. Pair i consists of line i and line - i,
where i = 1,2, ... ,n. This is shown in Figure
A-I. Pair-to-pair coupling is equalized, which
implies that, when we consider pair i and pair j
(i *- j, and i, j = 1, 2, ... , n), the coupling is
the same between line i and line j, line i and
line - j, line - i and line j, and line - i and line
- j. To be general, the coupling is made a function of i and j. The case in which the coupling
is constant regardless of i and j has been
treated elsewhere.!'
Using matrix notation, the pertinent differential equations are

[-

[- ;~J

APPENDIX
WAVE PROPAGATION ON MULTIPLE
PARALLEL LINES WITH EQUALIZED
COUPLING

(A-I)

= [Y][V]

(A-2)

r ~-~ 1

1. Propagation is in the direction of the

[V] =

digit lines only. This implies that the
word lines are considered as contributing
only to the coupling among digit lines.

3. Digit lines are uniform and have no discontinuities. This assumption may not
hold precisely in practice, but is made to
permit a mathematical analysis.

= [Z] [I]

The above factors are defined as follows:

The analysis given below shows the modes
of wave propagation that can exist on a set
of multiple parallel lines with equalized coupling. The following assumptions are made:

2. Digit lines are distributed constant lines.
This is justified because for the frequencies of interest, it is not necessary to consider the line irregularities caused by
memory cells.

~: ]

I
I
I
I
I

Vn
L V-n

L~ 1
[I]

I

J

where
Vi = Voltage on line i
V- i = Voltage on line - i
Ii = Current on line i
Li = Current on line - i
= 1,2,3, ....... , n.

I
I

I

J

A 10· BIT HIGH SPEED FERRITE MEMORY SYSTEM
PAIR I
~
0

0

PAIR 2

PAIRi

~

r-"'----.

0

0

0

0

0

0

0

1

GROUND

····PAIRn
~

PAIR j
~

0

0

0

0

0

0

I utI

LINE i
LINE -i

141

0

0

0

LINE -j

Figure A-l. Cross section of a system of 2n parallel lines.

where

[Z]

................. J

Y si

=

Self parallel admittance per unit
length of line i or line - i, i = 1, 2, 3,
..... ,n.

Ymi

=

Mutual parallel admittance per unit
length between line i and line - i,
i = 1, 2, 3, ...... , n.

Y ij

= Mutual parallel admittance per unit

Znl Znl Zn2 Zn2. . . . .. Zsn Zmn
L-Znl

Znl Zn2 Zn2. . • . •. Zmn Zsn

where
ZSi

= Self

series impedance per unit length
of line i or line - i, i = 1, 2, 3, ....... , .

n.

Y ij

Zmi

=

Zij

= Mutual

Zij

Mutual series impedance per unit
length between line i and line - i,
i = 1, 2, 3, ....... , n.

=

Zji

I

i =I=- j and i, j

=

i =I=- j and i, j

Y ji

[~:J =

[Z] [Y] [V] = [1'] [V] (A-3)

where
[/L]

= 1, 2, 3, ....... , n.

[Z] [Y]

I

1'" I'm, 1'''

YIn YIn -,

Y l2
Y ml Y SI Y l2 Y l2
Y 21 Y 21 Y S2 Y m2
Y 21 Y 21 Y m2 Y S2

" Ym , Y"

YIn YIn
Y 2n Y 2n
Y 2n Y 2n

.................
.................
Y nl Y nl Y n2 Y n2
Y nl Y nl Y n2 Y n2 . . • • . .

/Ls; = Zsi Y Si

JLmi

+

= Zsi Y mi +

Zmi Y Si

+
+

2

2

/LIn /LIn
/L2n /L2n

/L21 /L21 /Lm2 /Ls2

/L2n /L2n

/Lnl /Lnl /Ln2 /Ln2

/Lsn /Lmn

1,2,3, ...... , n

Zik Y ki ;

i

~

Zik Y ki ;

i

=

1, 2, 3, ...... , n

kli

/Lij

=

Zij (YSj

+ Y mj ) +

Y ij (ZSi

/LIn /LIn

/L21 /L21 /Ls2 /Lm2

and

~

k,.

/L12

/Lml /LsI /L12 /L12

/Lnl /Lnl /Ln2 /Ln2 . . . . • . /Lmn /Lsn

L-

Y sn Y mn
Y mn Y sn

Zmi Y mi

= 1, 2, 3, ...... , n.

From Equations (A-I) and (A-2) ,

series impedance per unit
length between either line i or line - i
and either line j or line - j, i =I=- j and
i, j = 1, 2, 3, ....... , n. (equalized)

Y

[Y]

length between either line i or line
- i and either line j or line - j, i =I=- j
and i, j = 1, 2, 3, ..... , n.

+ Zmi) + 2 ~

k"I
k

and i, j = 1, 2, 3, .... , n.

i

j

Zik Y kj ;

142

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

In general
P,ij =FJLji; i =F j, and i, j = 1,2,3, .... , n.
Assume a solution for Equation (A-3) of the form
Vi

=

"f.X

V oje

1

i = 1, 2, .... , n.

In order that the solution not to be trivial (Le., VOl = 0, i = 1, 2, .... , n), the following must
hold:
p,ml
P,sl - y2
P,21
P,21
p,nl
p,nl

P,nl
P,nl

P,12
P,12

P,12
P,12

p,m2

p,m2

p,s2 - . /.

p,s2 - y2

p,n2
p,n2

/LIn
P,ln

=0

JLn2

p,n2

or
(P,SI - p,ml - y2) (P,S2 - p,m2 - y2)
(P,Sl - p,ml - y2)

x

2JL21

2JL12
P.S2

+ P.m2

- y2

=0

This is a 2n th degree equation in y2. Let the roots be
2

Yk

=

{P,Sk - JLmk
k
Root of the determinant

= 1, 2,
k

.... , n

= n + 1, n + 2,

.... , 2n

Consider only the forward propagation, because the backward propagation is the same except for
direction. Then

- VJLsk -

Yk =

1

P,lllk
- VRoot of the determinant

k

= 1, 2, .... , n
k = n + 1, n + 2,

.... t 2n

Now the solution of Equation (A-3) is

=~v'keY"l i = 1, 2, .... , nand
k == 1, 2, .... , 2n
Y
V_. == ~ V••• e " }
V.

(A-4) lit

Substituting Equation (A-4) into Equation (A-3) to find relationships among V 1k and V- ik ,
~ JLlj (V jk

+ V- Jk ) +

~/tiJ (V jk

+ V- Jk ) + p,ml V ik + (P.Si -

J"rf
~
* Here it is assumed that

(P.Si - y!) V ik + /tllli V- ik
y=) V- ik

=0

(A-5)

== 0

(A-6)

A"'oS are all single roots. Inclusion of multiple roots, however, does not change the
form of Equations (A-ll) and (A-12), because the terms of the form xPe"Y", where p is a non-zero integer, cannot appear in the solution.

A 105 BIT HIGH SPEED FERRITE MEMORY SYSTEM

143

where
i = 1, 2, .... , nand k = 1, 2, .... , 2n.
By substracting Equation (A-6) from (A-5),

Y: =1= O.

If k =1= i, /Lsi - /Lmi -

Therefore

V ik = V- ik , where k =1= i, and k = 1,2, .... , 2n

(A-7)

Then, Equation (A-5) can be rewritten as

~ 2/Lij V jk +
j
j

'I

I-

(}Lsi + /Lmi -

y

2k) V ik

+ /Lik (Vkk + V-kk )

(A-8)

= 0

i
k

where
k =1= i, and i, k

=

1, 2, .... , n.

If k == i, /Lsk - y~ = /Lmk (k = 1, 2, .... , n).
Then, from Equation (A-5)
(A-9)

(n - 1) equations, because i can take (n - 1)
different values. Therefore,

where
k

=

1,2, .... , n.

For a given k, Equations (A-8) and (A-9) together form n simultaneous equations in V jk
(j =1= k; and j = 1; 2, .... , n) and (Vkk + V -kk).
In other words, if k is fixed, Equation (A-9)
gives one equation and Equation (A-8) gives
V ik

=

-V-ik

V ik = V- ik
V ik = V- ik

=0

V jk

=0

j =1= k, and j, k

+ V-kk =

0

= 1, 2,

.... , n

and
V kk

k = 1,2, '" 0' n

These are combined with Equation (A-7) to
obtain

i = k = 1, 2, .... , n
}
i =1= k and i, k = 1, 2, 0 00 0, n
i = 1,2, 000 .,nand k = n + 1,n + 2, 0000' 2n,

(A-I0)

Now Equation (A-4) becomes

i = 1,2,0000, n

(A-II)

= 1,2, .000' n

(A-12)

U sing Equation

_Vii 1'i% + ~.2n
Ii -e
Zoi
k =n + 1
2n

k

~

=n +1

i

144

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE,

1964

where

Z·=
01

J

ZSi - Zmi
Y~i - Ymi

i = 1,2, .... , n

Equations (A-II) and (A-12) show that the
possible modes of propagation are:
1) Independent differential mode for each
line-pair
2) Common modes in which the two lines of
a pair have identical wave propagation.
ACKNOWLEDGMENT
The authors wish to acknowledge the assistance given on this project by the members of
the Computer Advanced Product Research
Group. Credit is due to them for designing the
two-level logic modules, developing the new
packaging techniques, and designing and constructing the memory exerciser. Special credit
is due to. H. C. Nichols for his invaluable contribution in the fabrication of the memory
system. Additional acknowledgment is due to
Memory Products Department, RCA Electronic
Components and Devices, for the construction
of the memory stack.
REFERENCES
1. V. L. NEWHOUSE, "The Utilization of Domain Wall Viscosity in Data Handling Devices," Proc. IRE, vol. 45, no. 11, pp. 14841492, November 1957.
2. W. S. KOSONOCKY, "Memory System," U.S.
Patent 3,042,905, filed December 11, 1956,
issued July 3, 1962.
3. J. A. RAJCHMAN, "Ferrite Aperture Plate
for Random Access Memory," Proc. IRE,
vol. 45, no. 3, pp. 325-334, March 1957.
4. M. M. KAUFMAN and V. L. NEWHOUSE,
"Operating Range of a Memory Using Two
Ferrite Plate Apertures per Bit," Journal
of Applied Physics, vol. 29, no. 3, pp. 487488, March 1958.

5. R. E. McMAHON, "Impulse Switching of
Ferrites," Solid State Circuit Conference
Digest, pp. 16-17, February 1959.
6. R. H. TANCRELL and R. E. McMAHON,
"Studies in Partial Switching of Ferrite
Cores," Journal of Applied Physics, vol.
31, no. 5, pp. 762-771, May 1960.
7. R. H. JAMES, W. M. OVERN, and C. W.
LUNDBERG, "Flux Distribution in Ferrite
Cores under Various Modes of Partial
Switching," Journal of Applied Physics
Supplement to vol. 32, no. 3, pp. 385-395,
March 1961.
8. C. J. QUARTLY, "A High Speed Ferrite
Storage System," Electronic Engineering,
vol. 31, no. 12, pp. 756-758, December
1959.
9. H. AMEMIYA, H. P. LEMAIRE, R. L. PRYOR,
and T. R. MAYHEW, "High-Speed Ferrite
Memories," AFIP Conference Proceedings,
vol. 22, pp. 184-196, Fall 1962.
10. W. H. RHODES, L. A. RUSSEL, F. E. SAKALAY, and R. M. WHALEN, "A 0.7-Microsecond Ferrite Core Memory," IBM Journal,
vol. 5, no. 3, pp. 174-182, July 1961.
11. G. F. BLAND, "Directional Coupling and
Its Use for Memory Noise Reduction,"
IBM Journal of Research and Development, vol. 7, no. 3, pp. 252-256, July 1963.
12. W. T. WEEKS, "Computer Simulation of
the Electrical Properties of Memory Arrays," IEEE Transactions on Electronic
Computers, vol. EC-12, no. 5, pp. 874-887,
December 1963.
13. G. H. GOLDSTICK and E. F. KLEIN, "Design
of Memory Sense Amplifiers," IRE Transactions on Electronic Computers, vol. Ee11, pp. 236-253, April 1962.

A 105 BIT HIGH SPEED FERRITE MEMORY SYSTEM

14. T. R. MAYHEW, "The Design of a Sense
Amplifier for a Thin Film Memory," Master's Thesis, University of Pennsylvania,
June 1962.
15. R. T. LURVEY and D. F. JOSEPH, "RCA
N7100 Microferrite Array," Application
Note SMA-9, RCA Semiconductor and
Materials Division, Somerville, N.J., August 1962.

145

16. B. A. KAUFMAN and J. S. HAMMOND, III,
"A High Speed Direct-Coupled Magnetic
Memory Sense Amplifier Employing Tunnel-Diode Discriminators," IEEE Transactions on Electronic Computers, vol. EC-12,
pp. 282-295, June 1963.
17. J. R. CARSON and RAY S. HOYT, "Propagation of Periodic Currents over a System of
Parallel Wires," Bell System Tech. Journal, vol. 6, no. 3, pp. 495-545, July 1927.

AN ASSOCIATIVE PROCESSOR
Richard G. Ewing and Paul M. Davies
Abacus Incorporated, Santa Monica, California
1. INTRODUCTION

simple modules, but the memory capacity and
computing capability of each module were limited. Others, such as the Solomon Computer 2,
provide greater memory capacity and computing capability in the module, but each module
approaches the complexity of a small computer.

This paper describes the computer system designed under an Air Force sponsored study program to develop a non-cryogenic Associative
Processor organization and to study its possible
use in a variety of Aerospace applications. Two
approaches were considered to this problem:
one in which an associative memory would be
added to a more or less conventional computer
and another in which a new organization would
be developed around the principle of memory
distributed logic. The latter approach was
chosen because it appears to result in a more
efficient form of parallel processor.

Another serious problem is that of communication. For a periodic computing structure to
be useful, it is essential that there be efficient
paths for the communication of control signals
and operands among the modules. In some
parallel processors, the communication networks are more complex than the processing
modules themselves.

Because of the nature of the intended use of
the processor, emphasis was placed on network
simplicity, on reduction of size and power, and
especially, on reliability. While the processor
organization was designed in terms of a particular mechanization-wire memory and integrated circuitry-the organization and algorithms are described here in general terms, and
questions of mechanization are postponed to a
final section.

The associative memory suggest itself as a
basis for another approach to the problem of
parallel processing. Logical operations are performed within the individual memory cells of
this memory, and communication within the
structure is particularly efficient. Extension of
these principles to permit full logical and arithmetic capability within each memory cell would
provide a high degree of processing parallelism.
We shall call an associative memory structure
and its control logic, which is capable of performing such distributed computation, an Associative Processor.

When the fundamental limits of electrical
and optical signal propogation speeds are
reached, there are just two ways to further reduce the time to perform a given computation.
One of these is by making things smaller, and
the other is by performing parallel processing.
But efforts to achieve efficient parallel processors have encountered several difficulties. First
is the problem of providing sufficient memory
and computing capability within a simple
module. Some parallel processors, such as the
Holland 1 machine, have employed relatively

In addition to the parallel computing capability, there are several other advantages which
one may expect to achieve in the Associative
Processor. These are:
1. The data storage and retrieval capabilities of the Associative Memory, which
greatly simplify or eliminate such common data manipulations as sorting, col-

147

148

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

lating, searching, matching, cross referencing, updating and list processing;
2. Programming simplifications based upon
the possibility of ignoring the placement
of data in memory and the extensive use
of content addressing and ordered retrieval;
3. The periodic structure of a large portion
of the processor. Periodicity of structure
lends itself to integrated circuit techInterniques and batch fabrication.
connections between components become
shorter and less tangled, reducing propogation delays and simplifying layout and
checkout. Since the structure is periodic,
it can easily be expanded in size;
4. Fault Tolerance. The periodic structure
may permit an organization which is tolerant of memory or circuit element failures. If a cell fails, it may be possible to
avoid its further use with little loss to the
system capability. A program for an associative structure makes little or no reference to a unique cell so that loss of a
cell "vould not confuse the program.
Two approaches have been taken in the past
to solve the problems of parallel processing by
using associative processing techniques. Rosin 3
and Fuller 4, 5 have considered an associative
memory under control of a general purpose
computer. In Fuller's work, algorithms for a
variety of arithmetic operations are built up as
sequences of elementary operations performed
by the rather limited word logic of the associative memory. In Davies 6, more extensive
word logic is provided, and the control is integrated into the associative processor. The present paper represents an attempt to achieve the
higher speed of the second approach with a
considerably simpler logical structure, which
could be mechanized from non-cryogenic components.
The design which was adopted provides a
random access memory for program storage
and a bit serial associative memory for data
storage and parallel processing. The ability to
write tags (i.e. to simultaneously write data in
a selected bit position of a number of selected
words), coupled with simplified word logic networks, permits relatively efficient bit serial
algorithms for many kinds of parallel searches,

parallel arithmetic and ordered retrieval.
Methods were developed for treating certain
classes of memory and circuit failures. For
these cases, the processor can continue to operate in spite of a failure with only slight impairment of the overall system capability. In
the area of communication, methods were developed for treating operand pairs in a variety
of relative locations.
2. MEMORY DISTRIBUTED LOGIC

One of the fundamental features of the associative memory is that logical operations are
performed within the memory cells. However,
even in the random access memory a limited
amount of logic is performed in the memory
cell. The boolean function Xi 'Y j 'Sij is performed, where Xi is the selected X address coordinate, Y j the selected Y address coordinate,
and Sij the bit stored at location ij. The value
of the function is read out on the sense line. In
an associative memory, the memory logic is extended to permit selection of a memory cell on
the basis of stored data. In some associative
memories, this is accomplished by the function
(Sl~Rl)

.

(S:!~R:!)

...

(Sn~Rn)

which is mechanized in each memory word cell.
"Si~Ri'" the equivalence function, is the same
as Si . Ri + Sj • R i. Si is the bit stored in the
i-th bith position of a typical word, while Ri is
the corresponding bit of a reference word
stored in an external register. The function
selects all words whose stored contents match
the reference word. This can be improved to
permit masking of selected bits as follows:
[(Sl~Rl)

+ Md r (S2~R2) + M2]
[(Sn~Rn)

+Mn]

where Mi indicates whether the i-th bit is to be
ignored in the comparison.
In addition to providing logic in each memory bit position, it is also profitable to have logic
associated with each word cell. This is the case
in certain word organized random access memories and in associative memories. In the first
case, there is the word driver which may be a
magnetic or semiconductor amplifier which responds to X and Y coordinate selection lines
just as the typical bit cell does in a coincident
current memory. In associative memories,
there is usually a match detector with each

AN ASSOCIATIVE PROCESSOR

word which responds to the match logic described above. Ordinarily, the match detector
has memory. These operatiotls at both the bit
level and the word level suggest the possibility
of providing sufficient distributed logic to permit parallel computation throughout the memory structure.
In arriving at an Associative Processor capable of such parallel computation a number of
important decisions must be made. One basic
choice is whether to use a separate random access memory or the associative memory itself
for program storage. The first choice is probably more practical since the random access
memory is less expensive; furthermore, it will
be easier to protect the associative portion from
fault if the program is kept separate.
A second choice to be made is between bit
parallel and bit serial operation. Certain associative operatibns such as the matching of fields
for equality can be performed in bit parallel.
On the other hand, to perform the more complex functions of arithmetic, it appears more
convenient to use the bit serial approach,· simplifying the bit cell by time sharing one logic
module among all bits of a word.
A third problem is that of communication.
To· perform parallel computation, one must
have access to the operands and operand pairs.
In some cases, the operand pairs are stored
together in the same word. In other cases,
they are in adjacent words, while in still others,
they are in non-adjacent words, but always
some fixed number of words apart. Another
common requirement involves operand pairs in
which the first operand of each pair is common
while the second operands are distinct. In this
case, the common operand, in an external register, must be communicated to the others,
stored in various memory cells. Still another
communication problem is based upon the fact
that while large portions of a problem may be
susceptable to parallel processing, other parts
may be essentially sequential. These also must
be performed efficiently by the Associative
Processor if they are not to offset the ad vanta~es gained in the parallel processing .
. Techniques for solving these communication
problems include the following:
1. Transmission of a common operand to all
memory word cells.

149

2. Flexible control of field selection to permit operation on pairs of operands in the
same words.
3. Use of shift registers for communication
between words. These can be uni-directional orbi-directional and can be extended to two or more dimensions to give
greater flexibility.
4. Forms of entry-exit ladder networks
which permit rapid communication between non-adjacent word cells.
The following sections will describe the Associative Processor, which is based upon specific choices of these options.
3. ORGANIZATION
A block diagram of the Associative Processor is shown in Figure 1. It contains both
a conventional random access memory (RAM)
and an associative memory. The RAM provides storage for instructions and constants;
it is accessed parallel by bit and serial by
word. In processing operations, the Associative Memory is accessed parallel by word and
serial by bit. In the organization under consideration, RAM contains 4000 twenty-four
bit words, and the Associative Memory contains 500 ninety-six bit words.
Instructions accessed from RAIVI are transferred to the Instruction ·Register where they
are held during execution. The D-Register,
WORD
ASSOCIATIVE
MEMO~Y

La G I c}
SENSE

&
W~I

TE
AM P'S

INPUT

Figure 1. Block Diagram of Associative Processor.

150

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

which has the same length as a RAM word,
serves as temporary storage for operands
which participate in associative operations.
For instance, the D-Register may hold the
argument of a search, may receive data being
retrieved from the Associative Memory, or
may communicate with the external world.
Data originating from outside of the Associative Processor can be transferred directly to
either the Associative Memory or RAM. Direct
input to the memories is under an automatic
interrupt control.
In the Associative Memory, only one bit
column at a time may be operated upon. The
particular bit column is selected by either the
A Counter, the B Counter, or the C Counter.
Associated with the A and B Counters are the
A and B Limit Registers. Each may contain
a value which serves to define a maximum or
minimum value of its companion counter. Together, each counter and limit register define a
field which can be any length up to the number
of bits in the Associative Memory word, and
may overlap the field defined by the other counter and limit register.
, The design of the Associative Processor is
sufficiently general to permit implementation
by' a variety of memory elements and logic
techniques. Therefore, the following description of the Associative Memory, shown in
Figure 2, will present those characteristics
which are essential to the design of the Associative Processor.
Storage for one bit is provided at each intersection of a word and a bit line. A pulse on
a bit line causes a signal to be emitted by each
bit on that line. The signals are transmitted
through the word lines to the sense amplifiers.

l
BIT DRIVERS

Figure 2. Associative Memory.

The equivalence function is obtained in one of
two ways depending upon the particular memory element. In some memories it is sufficient
to exercise control over the polarity of the
interrogating pulse, thereby achieving a signal
output for a match and no output for a mismatch. In these cases, the bit element itself
performs the equivalence function, S~R. In
other memories, the stored bit is merely read
out; the reference bit is transmitted to all
sense amplifiers and logic associated with each
sense amplifier generates the equivalence function.
Writing at a particular bit location is accomplished by passing a current through the
intersecting bit and word lines. The polarity
of the current in the world line, or in some
cases the word and bit lines, determine the
state of the written bit. By energizing all the
word drivers and one bit driver, one bit of each
word can be written into. The latter operation, which is sometimes referred to as "tagging", plays a significant role in the design of
the Associative Processor.
The logic associated with each word gives
great power to the Associative Processor. This
logic 'is identical for all words and consists of
a sense amplifier, storage flip-flop, write amplifier, and control logic. Refer to Figure 3.3.
The sense amplifier is bistable and remembers
the match state from one interrogation to the
next. The output ",of the sense amplifier determines the state of the storage flip-flop in
various ways as determined by the control
signals, Es, Er, and Ec. In addition, the contents of each storage flip-flop can be shifted to
the storage flip-flop in the word above under
control of the signal, Esh. This provides communication between words.
One of the functions of the storage flip-flops
is to control writing. In this operation, the
storage flip-flops in the "1" state select the
words that are to be written into, while the
signals, W1 and WO, determine whether "l's"
or "O's" are written by the selected write
amplifiers. In addition, the output of each
storage flip-flop is "ANDed" with the output
of the corresponding sense amplifier. The outputs of these AND gates are ORed together
to provide an output channel from the Associative Memory to the remainder of the Processor.

AN ASSOCIATIVE PROCESSOR

Control of the word logic networks is exercised through a Control Unit. This unit interprets the contents of the Instruction Register
and D Flip-flop to determine the control signals, Es, Er, Ec, Esh, WI, and WO which are
transmitted to all word logic networks.
The D flip-flop and D Register are the data
link between the Associative Memory and the
Random Access Memory. Data, such as the
argument for a search, are transferred from
RAM in parallel to the D-Register. Each bit
is then shifted into the D Flip-flop where it
participates in the search operation. Data
retrieved from the Associative Memory are
transferred through an adder to the D Flipflop and then to the D Register.
The Associative Processor offers a variety of
processing options in terms of operand location and processing speed. The following list
illustrates 'some of the possibilities:
1. D+ M~D
2. D,+ Mj~Mj
3. M j + Mj~Mj
4. M j + Mk~Mk

(1) represents an operation occurring between the D Register and one selected word in
the Associative Memory. The result goes to
the D Register. (2) illustrates a process between D Register and many words in the
Associative Memory. The third operation
occurs between pairs of operands, each pair
stored in a separate word.
(4) represents an
operation occurring between operands in different words. The same operation may simultaneously occur in many such pairs of words.
In addition to these operations, many variations are possible, e.g. the operands may be
located in different words with the results
going to a third word.
The capability of the storage flip-flops to act
as a shift register provides the communication
link between adjacent words. Another use of
this shift register occurs in counting the number of words which satisfy a search algorithm.
This is accomplished by operating the storage
flip-flops as a shift register and counting the
number of "1's" shifted out. Each "I" corresponds to a word that satisfies the search.

151

4. COMMAND STRUCTURE
There are two types of instructions in the
Associative Processor. Instructions which exercise control over the Associative Memory
shall be referred to as associative instructions.
Instructions which provide access to the Random Access Memory or that perform control
transfers shall be referred to as non-associative instructions. A list of non-associative
instructions follows:
LA Load the contents of memory location
M into the A-Counter and Limit Register.
LB Load the contents of memory location
M into the B-Counter and Limit Register.
LC Load the contents of memory location
M into the C-Counter.
LD Load the contents of memory location
M into the D-Register.
LM Load the contents of the D Register into
Memory Location M.
TD Transfer to location M if the D flip-flop
equals "zero", otherwise proceed sequentially.
TO Transfer to location M if the output of
the OR gate equals "'zero", otherwise
proceed sequentially.
TI Transfer to the location specified by
memory location M.
TU Unconditionally transfer to location M.
SH Up-shift the storage flip-flops a number
of times equal to M.
SC Up-shift the storage flip-flops a number
of times equal to M. The C Counter
counts the number of ones shifted into
the highest level storage flip-flop.
CD Transfer the contents of the C Counter
to the D Register.
ID Input data wo;rd from external device to
the D register *.
OD Output data word from the D register
to external device *.
*The input and output commands generally work
in conjunction with the automatic interrupt facility.
An external devicE' requests an interruption by turning
on an interrupt flip-flop. This causes the Processor
to complete the present instruction, store the contents
of the Instruction Address Counter in memory, and
jump to an Input or Output routine. These routines
can transfer 1-0 data between the D Register and
either the RAM or the Associative Memory_

152

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

CS

TC

CC

AC

RS

f-.i
0

:J

f;J

~

0

~
0

~~

~~

O~

00

00

~~

~O

\/)~
Z~

~O

[So

fE~

A~

A~

~O

0

IC

is

~

#Sf-;

f4~

D$

~\/)

~

A

Each associative instruction controls the
processing during a single bit time, except
when it is executed in a Repeat Mode. The
instructions are divided into a number of fields,
each of which specifices the control of a separate part of the Processor. Figure 3 summarizes these fields which are described below:

Column Select (CS) : The contents of this field
determine what bit column of the Associative
Memory is to be interrogated or written into,
either by specifying the A, B, or C counter,
which in turn selects the bit column, or by directly specifying one of the four bit columns.
The four directly specified columns are ordinarily used for the storage of tag bits.
A A counter
B B counter
C C counter
T1 Column 1
T2 Column 2
T3 Column 3
T4 Column 4
Counter Control (CC): The contents of this
field determine whether the counter selected
in CS will be modified. A counter may be decremented or incremented by one.
IN Increment
DE Decrement
NC No Change
Transfer Control (TC): In general, instructions are accessed from sequential memory locations in RAM. To facilitate exiting from a
subroutine, it is desirable to be able to transfer
to another location when the contents of a
counter become equal to the associated Limit
Register.
Ta Transfer to memory location 0 when the
A-Counter becomes equal to the A-Limit
Register

WC

IT

SC

00

O~
~~

~O

fSo

~

~.~

~

fS~
I--;f-;

~~
0

~O

Dg

.~~

~O

20

t/)

&

~

~.

~~

RM

0

0
~

~

Of:4

O~
gf-;

f-.i

~

~

[g
I--;

f:4

~

Tb Transfer to memory location 1 when the
B-Counter becomes equal to the B Limit
Register
NC Proceed sequentially.

Adder Control (AC) : The contents of this field
control the manner in which the output of the
OR gate is transferred into the D Flip-flop.
L

OR gate output copied into the D Flipflop.
C Complemented OR gate output copied
into the D Flip-flop.
A OR gate output added to the D Flip-flop.
The carry is stored in a flip-flop associated with the Adder.
S OR gate output subtracted from the D
Flip-flop
NC No transfer

D-Register Shift (RS) : The D Register can be
made to shift one bit in either direction. The
shift is end around when the contents of the
AC field indicate that no transfer is to take
place.
R Right shift
L Left shift
NC No Change
•

r----L...I

Figure 3. Word Logic.

TO

O~

GATE

AN ASSOCIATIVE PROCESSOR

Interrogate Control (IC) : Upon interrogation,
the sense amplifier responds with a "1". output to a· match condition between the interrogated bit and what previously has been labled
a reference bit. The IC field defines the reference bit:
1 Interrogate for "I". If the stored bit is
equal to "1", the sense amplifier will be
set.
Z Interrogate for "0". If the stored bit is
equal to "0", the sense amplifier will be
set.
D If the D flip-flop is equal to "I", interrogate for "1", if "0", interrogate for
"0" .
D If the D flip-flop is equal to "0", interrogate for "I", if "I", interrogate for
"0" .
Write Control (WC): This field specifies writing to occur in the words for which the storage flip-flop is equal to "I". During writing,
the IC field is available to determine whether
"1's" or "O's" are to be written.
W-Write
NC-Do not Write

Storage Flip-fiop Control (SC): This field
specifies the state of the control signals which
are common to the input logic of each of the
storage flip-flops. This logic influences the
transfer of data from the sense amplifiers to
the storage flip-flops.
NC

O~Es, O~Er

No transfer takes place.
Es

Er

Esr

I~Es, O~Er

The Storage flip-flop is set if the
sense amplifier is equal to "I".
O~Es, 1 ~Er
The Storage flip-flop is reset if
the sense amplifier is equal to
"0" .
I~Es, I~Er

The state of the sense amplifier
is copied by the storage flipflop.
D

15

153

O~Es, I~Er,

if the D flip-flop is equal to "I".
I~Es, O~Er,

if the D flip-flop is equal to "0".
OR

I~Er

if the output of the OR gate is
equal to "I".
Ec

I~Ec

The storage flip-flop is complemented if the sense amplifier
is equal to "1".

Instruction Type (IT): This field appears in
both associative and non-associative instructions. The contents designate the instruction
as being associative or not.
A Associative

A Non-associative
Repeat Mode (RM): It is sometimes desirable
to repeat an instruction during the execution
of a simple search.

R Repeat until the counter specified by CS
becomes equal to its limit register.
R Do not repeat instruction.
The time required to execute one associative
instruction is measured from the time the instruction is transferred into the Instruction
Register to the time the sense amplifier outputs are transferred into the storage flip-flops.
During this time, the next instruction is accessed, and the previous output of the storage
flip-flops can be transferred to the D flip-flop.
This time will be referred to as a "bit time".
Associative instructions are accessed at a rate
of one per bit time. It should be noted that
the AC field of the associative instruction will
control the disposition of storage flip-flop data
that resulted from an interrogation specified
by the previous associative instruction. Nonassociative data tranferring instructions require two bit times for execution (Both an instruction and an operand must be accessed
from the Random Access Memory). N onassociative instructions which transfer control
require one bit time for execution.

I~Es, O~Er,

if the D flip-flop is equal to "1".
O~Es, I~Er,

if the D flip-flop is equal to "0".

5. MICROPROGRAMMED ALGORITHMS
The method by which associative instructions are controlled constitutes one of the

154

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

major factors contributing to the flexibility of
the Associative Processor. Each field of the
instruction directly specifies some. control function, so that numerous associative instructions
can be micro-programmed by the appropriate
selection of fields. Despite the large number
of options available, the central control unit is
very simple since the control functions are obtained directly from the instruction fields.
Following, is a description of several important categories of associative instructions with
typical microprograms; algorithms are also
given for more complex data retrieval and
arithmetic processes built up for microprogrammed associative instructions.
Possibly the most often used algorithm is
ordered retrieval. A number of algorithms for
retrieval have appeared in recent publications.
Among these, the algorithm presented by
Lewin 11 appears to be fastest, making its' implementation in the Associative Processor an
attractive consideration. However, in view of
its' unique hardware requirement, (Le., the
equivalent of a three state sense amplifier on
each bit column), an algorithm was developed
which utilizes logic of a more general nature.
In fact, the development of this algorithm
greatly influenced the design of the word logic.
The algorithm, presented in detail later in this
section, retrieves one bit of data for each bit
time of execution.
The ordered retrieval algorithm is used
whenever data is to be retrieved from the Associative Memory or whenever it is necessary
to select a word in which to write data. Since
the time required to identify a word is related
to tIie number of bits that must be searched,
it is often desirable to have stored in each
word a compact address field. Having such a
field also provides a convenient way to distinquish between two words which might otherwise contain the same data.
In most instances, before the execution of an
associative search, it is necessary to precondition the storage flip-flops either by setting or
resetting them all, or by setting those corresponding to the set of words which is to be
searched. Accomplishing this last operation
requires transferring the contents of the tag
bit (or whichever bit position holds the infor-

mation) into the sense amplifiers and then
copying the states of the sense amplifiers into
the storage flip-flops. These operations can
be executed with a single associative instruction.
CS CC TC AC RS IC Wc S.c IT RM
Tl NC NC NC NC

1

NC Esr A

R

Setting (or resetting) all the storage flipflops requires two associative instructions. The
procedure is to interrogate the same bit column
twice; once for "1's", and once for "O's". The
following instructions reset the storage flipflops.
CS CC TC AC RS IC WC SC IT RM
1. Tl NC NC NC NC Z NC Er A
2. Tl NC NC NC NC 1 NC Er A

R
R

The following associative searches have been
microprogrammed:
Equality
Less than
Less than or equal
Greater than
Greater than or equal

Maximum value
Minimum value
Similarity
Ordered Retrieval

Except for Similarity, the execution time or
each search is one bit time for each bit of the
argument.
'The object of most searches is to leave the
storage flip-flops in a state which defines the
locations of those words which meet the conditions of the search. However, it is possible
to obtain the complementary set of words, as
well as the set obtained by ORing or ANDing
the results of several different searches. Following are a few examples of search microprograms:
Equality Search
CS CC TC AC RS IC WC S.C IT RM
A IN TA NC

R

D

NC Er

A

R

This instruction searches the words in memory whose storage flip-flops are initially true.
At the end of the search, the storage flip-flops
identify those words containing a field exactly
matching the field in the D Register. The field
in memory is defined by the A Counter and
Limit Register. Each bit of the field is interrogated starting with the least significant bit.

155

AN ASSOCIATIVE PROCESSOR

The D flip-flop specifies the match conditions.
A mismatch will cause the appropriate storage
flip-flop to be reset.

AddD +

SP
Add Ml +

Less Than
IN NC NC

R

Z

NC

DAR

This instruction causes a storage flip-flop to
be set if the .interrogated memory bit is "0"
and the D flip-flop "I" and reset if the memory
bit is "I" and the D flip-flop "0". Otherwise the
storage flip-flJPs are unchanged. Essentially,
this logic is the same as borrow logic with the
contents of the D Register being subtracted
from the contents of each memory word. When
the storage flip-flop is equal to one, the memory
word is less than the data register word.
Ordered Retrieval
CS CC TC AC RS IC WC SC IT RM
A

DE NC

L

L

1

NC Or

A

R

This instruction transfers to the D Register
the maximum value field of the set of fields
which are identified by the true storage flipflops, Starting with the most signicant bit
position of the search field, each bit position is
sequentially interrogated for a one. When any
sense amplifier indicates a match for a field still
in the search set, the storage flip-flops corresponding to those sense amplifiers indicating a
mismatch are reset. Each time a bit position
is interrogated and is found to contain a "I"
in any of the words remaining in the search
set, a "I" is transferred into the D flip-flop.
Many arithmetic and logical microprograms
have been developed for the Associative Processor. Below is a partial list. The operations
are identified by S when they apply to an
operation between a single pair of operands.
An SP refers to an operation betwen one operand in the D Register and many operands in
the memory, and P refers to simultaneous
operations between many pairs of operands in
memory.
The number of bit times required for the
execution of each operation appears in parenthesis
Add M +

(12 X no. of operand bits)

M2~M2

P

CS CC TC AC RS IC WC SO IT RM
A

M~M

D~D

S

(1 + no. of operand bits)

(12 X no. of operand bits)

Multiply Ml X
S

M2~D,M3

Multiply Ml X
P

M2~M3

Divide

(20 X no. of multiplier bits)
for a 24 bit mUltiplicand
(no. of multiplier bits X no.
of multiplicand bits)

D/Ml~M2

S
Add (M 1 +

(30 X no. of operand bits)

M2~M2)

Field Ml is added to field M2 in all words
which contain a "I" in bit column (T1). Field
Ml is defined by the A counter and Limit Register. Field M2 is defined by the B counter. Bit
column T2 is temporary storage for the carry.
Addition is executed in the following steps:
1. The jth bit of Ml is transfered to the storage flip-flops.
2. The contents of the storage flip-flops are
added to the jth bit of M2. The carry is
developed in the storage flip-flops during
the addition.
3. The partial carry resulting from the carry addition_ (preceding step 1) to the j th
bit of lVI2 is ORea with the partial carry in
the storage flip-flop. The final carry results in the storag~ flip-flop.
4. The carry is added to the j+1 bit of M2;
the resulting partial carry is stored in T2.
The following program executes this addition
algorithm:
CS CC TC AC RS IC WC SC IT RM
1. T1 NC NC
2. A IN NC
3. B NC NC
4. B NC NC
5. B IN TB
6. T2 NC NC
7. T2 NC NC
8. B NC NC
9. B NC NC
10. B NC NC
11. T2 NC NC
12. Transfer to

NC NC
NC NC
NC NC
NC NC
NC NC
NC NC
NC NC
NC NC
NC NC
NC NC
NC NC
1 (TU)

1
1
1
1
0
1
0
1
1
0
1

NC
NC
NC
W
W
NC
W
NC
W
W
W

EsrA
Er A
NC A
Er A
NC A
Es A
NC A
NC A
Er A
NC A
NC A

A

R
R
R
R

R
R
R
R

R
R
R

156

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Instruction one transfers T1 to the storage
flip-flops. Instruction two interrogates the jth
bit of MI and resets the storage flip-flop where
mismatches occur. The resulting contents of
the storage flip-flops constitute the AND function of T1 and the jth bit of MI' Instructions
three, four, and five have the effect of complementing the jth bit of M2 in words for which
the storage flip-flop is equal to "1". In addition,
if the jth bit of M2 were equal to "1", the storage flip-flop would remain equal to "1", thereby
representing the partial carry. Instruction six
OR's the carry resulting from addition of the
last carry to the jth bit of M2 to the partial
carry in the storage flip-flop. Instruction seven
clears the T2 column in preparation for the next
carry storage. Instructions eight, nine, and
ten add the carry to the j 1 bit of M2 using the
same technique as instructions three, four, and
five. Instruction eleven stores the partial carry
in T2. The routine is exited after instruction
five has been executed and the addition of the
most significant bits completed.

+

6. FAULT TOLERANCE
An interesting characteristic of this particular associative memory is its structural periodicity. Each bit driver is identical to any
other, and the logic of each word is identical
to that of any other. There is no addressing
matrix and no ladder network. The existence
of these characteristics suggest the possibility
of making the system operation insensitive to
local malfunctions in the memory stack and
memory circuits.
There are numerous possible causes of malfunction in the Associative Memory. However;
most malfunctions can be placed in one of four
categories. The first is characterized by the inability of the sense amplifier to change state.
The second is characterized by the inability of
the storage flip-flop to change state. The third
category consists of those malfunctions which
cause a write amplifier to fail, and the fourth
consists of those malfunctions which cause a bit
driver to fail.
The procedures to be described below consist
of exercising control over the functions common to the logic of each word in such a way
as to gain a system tolerance to these malfunctions. Other malfunctions may occur for which

the only safeguard would be the utilization of
component redundancy techniques. In the following discussion it will be assumed that no
more than one type of malfunction exists in
anyone word.
To cope with these malfunctions, it is of primary importance to guard against spurious results in the retrieval operations. It is of little
importance if, in a particular word, some other
operation goes awry as a result of a malfunction. This merely produces meaningless data in
that word, which is unimportant if provisions
are made never to write into and never to retrieve information from such a word. Since a
word is selected for writing by means of the
retrieval algorithm, the fundamental problem
is to guard against incorrect retrieval as a result of a malfunction.
Malfunctions of the first category cause the
sense amplifier to permanently store either a
"1" or a "0". If a "0" is stored, the storage
flip-flop can never be set. The retrieval of data
from a particlular word and the ability to write
into a particular word are dependent upon the
storage flip-flop of that word being in the "1"
state. If the storage flip-flop can never be set,
the word appears to be nonexistent. If information were stored in the word prior to the
malfunction, it would become irretrievable;
however, as long as the malfunction existed it
would be impossible for data to be inadvertantly stored in that location.
A "1" locked in the sense amplifier presents
a different problem. If the storage flip-flop of
such a malfunctioning word is true, execution
of the retrieval algorithm will result in the retrieval of a word of "1's". To prevent this, it
is necessary to perform an operation prior to
the retrieval algorithm which will reset the
storage flip-flops in words whose sense amplifiers are locked in the "1" state without altering the states of the other storage flip-flops.
Furthermore, this operation must not turn on
a storage flip-flop in a word whose sense amplifier is locked in the "0" state. This can be accomplished as follows: Reset the sense amplifiers by interrogating a column of "O's". Then
by executing the complement control Ec, complement all storage flip-flops corresponding to
sense amplifiers still in the "1" state.

AN ASSOCIATIVE PROCESSOR

Malfunctions of the second category are those
in which the storage flip-flop does not change
state. If the storage flip-flop is locked in the
"0" state, the associated word can not participate in any reading or writing operations. Such
a condition will cause that word to appear to be
nonexistent. A permanently stored "I", however, may cause an erroneous readout during
execution of the retrieval algorithm. To avoid
this, in the case of maximum value retrieval,
the affected word should be loaded with "O's"
prior to retrieval. A method of determining
whether any storage flip-flops are malfunctioning is first to interrogate a column of "1's" so
as to set the sense amplifiers, then to execute
the Es and then Ec functions. The output of
the OR gate will be "I" if any storage flipflops remain true.
The third category consists of those malfunctions which disable a write amplifier. If a disabled write amplifier can be detected and the
word uniquely marked, further operations upon
that word can be avoided. Detection is accomplished by writing a pattern of "1's" and "O's"
in each word. An equality search is then made
using the same pattern to identify any words
in which the pattern was not successfully recorded. On each successive execution of this
procedure, a pattern different from the last
pattern must be used. If the pattern which is
read out of a given word is not identical to the
current pattern, then the write amplifier driving that word is malfunctioning. The erroneous pattern cannot be used again. If the length
of the pattern is N bits, then N bits in each
word of the memory must be relegated to storage of the checking patterns at the time of
execution of the checking procedure. The number of different patterns must exceed by two
the number of malfunctions which can be tolerated.
The malfunctions of the last category are associated with the bit drivers. Once a bit driver
has failed there is no way of writing into or
interrogating that particular bit column. Therefore, it is necessary to isolate malfunctioning
bit drivers. Detection of a malfunctioning bit
driver is accomplished by designating two
words of memory as test words, one of which
would contain stored "1's" and the other, stored
"O's'. Special logic on each of these two word

157

lines would compare the real output to the
theoretical output upon each interrogation. A
discrepancy would interrupt the program,
thereby allowing the execution of a programmed corrective action.
7. MECHANIZATION
The critical problem in mechanizing the Associative Processor is, of course, the implementation of the associative memory. The
critical requirements of this memory are the
following:
1. Non-destructive readout. This is essential
for the Processor described above; however, with slight modification, destructive
readout could be tolerated provided the
write time was comparable to the read
time.
2. Small ratio of word write current to read
signal. This significantly influences the
complexity of the sense amplifier and
write amplifier and limits the number of
words in memory.
3. Short write cycle. This makes tagging
operations practical.
4. Short interrogation cycle. This is especially important for a bit serial processor.
5. Limited power consumption.

A number of memories were analyzed for
compliance with these requirements, including:
1. Plated Wire 7,8
2. Laminated Ferrite 9
3. Bi-core
4. Biax
At this time, the most promising of these for
both the Associative Memory and RAM appears to be the Plated Wire Memory. It can
be operated in a nondestructive readout mode,
requires a word current of approximately 25
ma, and can be interrogated or written into at
a 10 mc rate.
The closed flux path, rotational switching
mode and lose coupling of the switched flux to
the sense line contribute to the high ratio of
read signal to word write current and to the
low power consumption of each bit.
Our laboratory evaluation of the Plated Wire
has indicated the feasibility of using integrated

158

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

circuitry for both the word logic and the bit
drivers. The periodic structure of large portions of the Associative Processor and the requirement for a relatively small number of
circuit types facilitate mechanization with integrated circuits.
The optimum sizes of the Associative Memory and the Random Access Memory depend
greatly upon the application. For the class of
Aerospace applications for which the Processor
was conceived, the following dimensions and
parameters were chosen:
RAM: 4096 words of 24 bits each.
Associative Memory: 512 words of 96 bits
each.
Bit time = Memory cycle time = .1 fLsec.
8. CONCLUSIONS

plications and Mr. T. Stupar who assisted in
evaluating the technical feasibility of the system.
REFERENCES
1. HOLLAND, J. H., "A Universal Computer
Capable of Executing an Arbitrary N umber of Sub-Programs Simultaneously,"
Proc. Eastern Joint Computer Conference,
(1959) .
2. SLOTNICK, D. L., BORCK, W. C., and McREYNOLDS, "The Solomon Computer,"
Proc. Fall J oint Computer Conference,
(1962) .
3. ROSIN, R. J., "An Organization of an Associative Cryogenic Computer," Proc.
Spring J oint Computer Conference, San
Francisco, (May 1962).

The Associative Processor possesses several
virtues as a parallel processor. The basic
processing module, i.e. one word of Associative
:Memory with its word logic, possesses considerable computing and memory capability for
its size and complexity. This implies a large
amount of parallel processing per dollar. Communication within the Processor is relatively
efficient, especially where associative techniques
can be employed. Most of the Processor is periodic in structure and, therefore, compatible
with batch fabrication techniques and integrated circuitry. Fault tolerance techniques
can be employed, at least to a degree. The nonperiodic control structure of the Processor is
relatively simple. And, finally, the microprogramming characteristics of the instructions
permit and encourage programming experiments.

4. ESTRIN, G. and FULLER, R., "Algorithms
for Content Addressable Memory Organizations," Proc. Pacific Computer Conference, Pasadena, (March 1963) .

ACKNOWLEDGEMENT

9. R. SHAHBENDER, et al., "Laminated Ferrite Memory." Proc. Fall Joint Computer
Conference, Las Vegas, (Nov. 1963).

5. ESTRIN, G. and FULLER, R., "Some Applications for Content-Addressable Memories," Proc. Fall Joint Computer Conference, Las Vegas. (Nov. 1963).
6. DAVIES, P. M., "Design for an Associative
Computer," Proc. Pacific Computer Conference, Pasadena, (March 1963).
7. I. DANYLCHUCK, A. J., PERNESKI, M. W.
SAGAL, "Plated Wire Magnetic Film Memories," Intermag Proceedings, Washington,
D.C., (April 1964) .
8. K. FUTAMI, et al., "The Plated-Woven Wire
Memory Matrix", Intermag Proceedings,
Washington, D.C., (April 1964).

The authors gratefully acknowledge the support of the Space Systems Division of the Air
Force under whose study contract the work
was done and Space Technology Laboratories,
Inc., who participated with Abacus, Inc. in the
study.

10. C. A. ROWLAND, W. O. BUGE, "A 300 Nanosecond Search Memory," Proc. Fall Joint
Computer Conference, Las Vegas, (Nov.
1963) .

We wish particularly to thank Mr. M. Waxman of S.T.L. for his work in evaluating the
Associative Processor in several aerospace ap-

11. M. H. LEWIN, "Retrieval of Ordered Lists
from a Content-Addressed Memory," RCA
Review, (June 1962).

A HARDWARE-INTEGRATED GPC/SEARCH MEMORY
Russell G. Gall
Goodyear Aerospace Corporation, Akron, Ohio
as curves for ease of comparison of performance of the three systems.

SECTION I-INTRODUCTION
A search memory that can be operated in
conjunction with a USQ-20 computer using
only the standard input-output channels is, being developed by Goodyear Aerospace Corporation. This approach is referred to as the peripheral search memory. On the other extreme,
there is the possibility of completely integrating the search memory with the USQ-20 computer. That is, the instruction repertoire can
be modified to include associative instructions"
the control logic cap. be modified extensively,
and additional registers can be added as necessary. Neither integration can be considered
the optimum since the latter involves costs
that are out of proportion with the advantages,
and the former involves undue transfer time
penalties and more complex programming.

While the integration methods described
could conceivably be applied with some study to
any general-purpose computer, this document is
particularly oriented toward integration of the
Goodyear Aerospace Corporation (GAC) search
memory with the Univac 1206 general-purpose
computer. The actual military designation of
this computer is CP642A/USQ-20 (V) . This
indicates that it is one of a number of components included under the designation AN /
USQ-20 (V) . USQ-20 is a general term used
informally to identify this computer and is
used throughout this paper.
SECTION II-SEARCH MEMORY
DESCRIPTION

This paper presents, a method of integrating
the search memory with the Univac 1206 (AN/
USQ-20) computer more intimately than is possible through a standard input-output channel.
The saving of search time that results approaches that of a completely integrated system. The hardware modifications required are
relatively minor, and therefore increases in
cost are held to a minimum. A typical fourvariable search problem is formulated and its,
solution by the following three separate systems is analyzed: (1) AN/USQ-20 computer,
(2) AN /USQ-20 computer in conjunction with
a peripheral search memory tied to a standard
I/O channel of the computer, and (3) the proposed hardware-integrated USQ-20/search
memory. Search solution times are derived for
each of the three systems. They are displayed

GENERAL
The particular search memory model upon
which this study is based is shown in block diagram form in Figure 1. A brief functional description is considered sufficient background for
understanding the ideas presented herein.
More detailed information is available in the
literature. 1
1.

The memory proper has a capacity of 256
words. Each word contains 30 bits. (The
word size of the USQ-20 computer is also 30
bits.) The memory is limited to three types of
search:
1. Exact match (=)

2. Equal to or greater than (»
3. Equal to or less than «)
159

160

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

MEMORY
30 BITS--"
256 WORDS

ADDRESS
SELECTION
MATRIX

RESPONSE
RESOLVER

RESPONSE
STORE

+
Figure 1.

Search Memory Block Diagram

memory, when to accept criteria, what type of
search to perform, and what type of response
is required.

The search types may be combined without
limit with the logic AND connective. For example, the equal-to-or-Iess-than search logically
ANDed with the equal-to-or-greater-than
search is, equivalent to a between-limits search.

c. Data
A total of (n) words (0 < n < 256) of data
may be transferred from the USQ-20 computer
to the search memory at a maximum rate of 8
p'sec per word using the internal interrupt mode
of data transfer. The USQ-20 program then
will be interrupted internally after transferring the nth data word to the search memory
and will jump to an interrupt routine. This
routine will generate an "erase" instruction if
required, load the first set of criteria in an output buffer for the forthcoming transfer to the
search memory, and initiate the first search instruction. The search memory will accept a
search instruction even though it is not finished
erasing, although it will not act upon this instruction until erasing has been completed.

2. SEARCH MEMORY INPUT (FROM
USQ-20)

a. Information Types
Three general types of information are transferred from the USQ-20 computer to the
search memory: instructions, data, and criteria.
b. Instructions
The instruction information consists of a
single instruction word, the format of which is
shown in Table 1. The instruction word is the
only type of information that is transferred
from the USQ-20 computer via the external
function mode of data transfer. The configuration of the instruction word tells the search
memory when to start writing data into the
memory, when to erase remaining words in

d. Criteria
The criteria consists of either (1) a mask
word followed by a key word or (2) a key word

TABLE I-INPUT INSTRUCTION WORD FORMAT
Bit
d22 • • • d15
Address
(random
write or
start)

d7
Response
count
required

d6

d5

d4

d3

d2

Mask
word
follows

Response
required

LIT
search

G/T
search

Exact
match
search

d1
Stop
write
(erase)

do
Start
write

A HARDWARE INTEGRATED GENERAL PURPOSE COMPUTER/SEARCH MEMORY

transferred from the USQ-20 to the search
memory. The search instruction cues the
search memory as to whether the criteria will
be transferred according to (1) or (2) (see
bit d6 in Table I). It is considered sufficient
that the criteria be transferred from the USQ20 to the search memory in the normal buffer
mode of data transfer. The internal interrupt
mode of data transfer is not considered necessary in this case since the USQ-20 need not
take further action until an end-of-search signal response is received from the search memory via the input channel.
3. SEARCH MEMORY OUTPUT (TO USQ20)
The output of the search memory can be
either response address, response count, or no
response. Either may be selected by the instruction. A no-response instruction indicates
the response to the present search should be
saved for logically ANDing with the next
search. Two address responses per 30-bit word
are packed for transfer to the USQ-20. There
can never be more than a single count response
for any given search. It is placed in the least
significant portion of the 30-bit word transferred to the USQ-20. The normal buffer mode
is used to transfer address or count responses
to the USQ-20. An end-of-search signal must
be sent to the USQ-20 whether or not an address or count response is desired or available.
This signal is transferred via the USQ-20 external interrupt. The end-of-search signal always follows the transfer of address or count
responses if any have occurred.
4. SEARCH TIME
a. Exact-Match Search
Search time is variable, depending on the
type of search. The exact-match search is performed in 5 p'sec and is independent of the
memory size (number of words), number of
words actually loaded into the memory, and the
number of unmasked bits searched.

b. Equal-to-or-Less-Than Search
The equal-to-or-Iess-than search is actually
the result of one or more exact-match searches.
The number of exact-match searches performed
depends on the number of unmasked zeros in

161

the key word. Therefore, the total search time
is 5mo p'sec, where mo is the number of unmasked zeros in the key word.

c. Equal-to-or-Greater-Than Search
The equal-to-or-greater-than search is similar to the equal-to-or-Iess-than search, except it
depends on the number of unmasked ones in
the key word. The total search time then is
5m1 p'sec, where ml is the number of unmasked
ones in the key word.
5. ADDITIONAL CONSIDERATIONS
Masked shift load capability is a method of
specifying n high-order bits of the 30-bit USQ20 word, and specifying a particular field of
the search memory into which this n-bit byte
should be entered. Although this actual search
memory model does not have this capability,
for the purposes of this paper the memory is
assumed to have it. Although there are several methods and variations of methods to update the search memory, the masked shift load
affords the fastest way to update both the peripheral search memory and the proposed hardware-integrated GPC/search memory. It also
allows less complex programming procedures
in the USQ-20 computer, which will ease the
analysis and evaluation to follow.
The USQ-20 is a one's complement machine.
The search memory must have data in straight
binary form, from smallest (most negative)
value to the greatest (most positive) value to
perform the equal-to-or-greater-than and equalto-or-Iess-than searches properly. Therefore,
the most significant bit of each data word transferred to the search memory must be inverted.
This may be handled either by USQ-20 software or search memory hardware. The actual
search memory does not incorporate this hardware at present, but is assumed to have this
capability to simplify the ideas to be presented.
SECTION III-PROPOSED METHOD OF
INTEGRATION
1. SYSTEM CONSIDERATIONS

The hardware-integrated search memory will
require relatively minor modifications to both
the presently contracted peripheral search
memory and the USQ-20 computer. The over-

162

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

all system function of the integrated search
memory will be identical to that of the peripheral search memory. A block diagram for the
integrated search memory is given in Figure 2.
The block diagram shows that the integrated
search memory system still uses an output
channel of the USQ-20 computer. This output
channel will provide the following functions:
1. Initial loading of the search memory by
means of block transfer (masked shift
load)
2. A means of providing instructions to the
search memory utilizing the external
function mode of data transfer
3. An additional method of updating dynamic data in the search memory by block
transfer if considered appropriate in a
given system application.

The external function mode of data transfer
is a very efficient method of providing instructions to the search memory, since a single programmed instruction in the USQ-20 computer
can effect the transfer of a single instruction
to the search memory.
The main modifications involve supplying the
search memory direct access to several of the

, I•

C'NES FOR '56-WORD ..EMORV

e

..

e'

S4

e

I

LINES FOR 2SS'WORO MEMORY

II

I
I

I..ot-------'

I

RESPONSE ADDRESS

~--_

CLEAR

e

7

iENSE 2'· BIT OF 8

7

8

d

CHANNEL

~

Figure 2.

CQMPARANO OR LOAD DATA

I

~
___
UTPUT

_I

I
1

_ _ _ _ _....

INSTRUCTION
IEXTERNAL FUNCTION MOCE)

OR

LOAD DATA (NORMAL. BUFFER

MOOE~

L _______

~

Hardware-Integrated USQ-20 ISearch
Memory Block Diagram

internal registers of the USQ-20. Specifically,
output access to the 30-bit A register and output access to the 30-bit Q register is required.
In addition, two-way access to the Bl index
register is provided. Although the Bl register
contains 15 bits, only an 8-bit access is necessary for a 256-word search memory. Output
access to the Bl register is not used in the time
analysis that follows, but can be useful in many
applications. As shown in Figure 2, there are
only two lines remaining in the interface between the search memory and the USQ-20. One
line allows the search memory to clear the B7
index register of the USQ-20. The other line
allows the search memory to sense the most
significant bit of the B7 index register. These
are the only two lines necessary to effect synchronization between the search memory and
the USQ-20. Absolutely no modification to the
complex control circuitry of the USQ-20 computer is required. Without further explanation, one might reasonably question the fact
that only two leads in the interface between
the search memory and the B, index register
could effect complete control and synchronization between the two devices. The answer is,
of course, that the two leads cannot alone provide the required control and synchronization
of the two devices. However, in conjunction
\vith judicious use of certain USQ-20 instructions, they provide for the control and synchronization of the two devices mainly by
economical software utilization rather than
expensive hardware modification. The key
USQ-20 instruction for synchronization is REPEAT, described as follows: Clear B7 and
transmit the lower 15 bits of Y (the operand)
to B 7 • If Y is nonzero, transmit (j) to r
(designator register), thereby initiating the repeat mode. This mode executes the instruction
immediately following the REPEA T instruction Y times; B7 contains the number of executions remaining throughout the repeat mode.
The instruction selected to follow the REPEA T instruction is the ENTER Bo instruction. It was the shortest instruction that could
be found in the repertoire, and is normally
used as a NO-OP instruction since there is no
Bo register. In the repeat mode, the first execution of the ENTER Bo consumes 8 fLsec; each
succeeding execution requires only 4.8 fLsec.
The repeat mode described above and the added

A HARDWARE INTEGRATED GENERAL PURPOSE COMPUTER/SEARCH MEMORY

single leads (Figure 2) that control and sense
the status of the repeat mode synchronize the
USQ-20 and the search memory during transfer of search data. Details will be clarified
during the analysis to follow later.
2. HARDWARE CONSIDERATIONS

a. General
The hardware considerations discussed below
are based on data contributed by R. Horvath. Z
Since synchronization and control of these integrated devices will be handled by judicious
use of the USQ-20 software, the only USQ-20
hardware modifications will be those necessary
to provide the search memory two-way access
with the Bl and B7 registers (18 bits) , and output access from the A and Q registers (60
bits). The hardware changes that will be
necessary to the present peri pheral search
memory to modify it for use in the integrated
system are the circuitry to terminate and gate
69 additional input lines, and circuitry to drive
9 additional output lines.
b. USQ-20 Modifications
Each additional input to a register stage in
the USQ-20 must be ORed with the existing
inputs to that stage. This is accomplished by
removing the collector resistor and clamp diode
from the output transistor of a standard USQ20 gated input amplifier. The open collector is
then directly connected to the proper output
side of the given register stage.
Each additional output from the USQ-20 is
handled in a straightforward manner by providing a standard USQ-20 data line driver with
the feedback circuitry removed to decrease the
rise and fall times. Removal of the feedback
circuitry may be unnecessary.
All B registers are located in Chassis No. 7
of the USQ-20 computer. The required nine
modified gated input amplifiers and the nine·
modified data line drivers may be located in
Chassis No.8, which has 30 spare card locations
available. The interchassis connectors have a
sufficient number of spare pins to allow the
necessary interchassis wiring.
The A and Q registers are located in Chassis
4 and 5. The 60 modified data line drivers may
be located in spare card locations in Chassis 3,
4,5, and 6.

163

SECTION IV-SEARCH TIME ANALYSIS
1. GENERAL
In this section, a typical search problem is
defined and three separate solution methods are
analyzed: (1) USQ-20 computer only, (2) peripheral search memory, and (3) integrated
search memory. The resulting equations and
curves represent the USQ-20 computer arithmetic time used. The over-all task can be divided into three basic time-consuming steps no
matter what the search system configuration
might be: (1) loading data and updating dynamic data, (2) providing search criteria and
instructions, and (3) handling the resulting
responses.
2. TYPICAL SEARCH PROBLEM DEFINITION
The typical search problem parameters are
shown graphically in Figure 3. The problem is
stated verbally as follows. Find the addresses
of all items that are hostile AND between the
limits of Xl and Xz AND between the limits of
Y l and Y2 AND equal-to-or-greater than Zz.
The solution approaches are governed by the
following assumptions:
1. Six bits are used to describe each of the
four variables for all items.
2. Initially, each of the 4 variables occupies a complete 30-bit word in the USQ20 memory.
3. Mask word will always be part of the
criteria supplied by the USQ-20 computer (that is, criteria will always consist of two words-mask and match).
4. The search memory capacity is 256
words and 30 bits; however, the number
of words is treated as a variable in the
equations to be developed.
5. Xl and Y 1 are positive.
6. X2 and Y z are negative.
7. Zl and Z2 are positive.
8. 128 items (or half the total items) will
be found between the limits of Xl and
X2•
9. 128 items (or half the total items) will
be found between the limits of Y land
Y2•

164

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE,

1964

10. 64 items (or one-fourth the total items)
greater than Z2 will be found.
11. 16 items (or one-sixteenth of the total
items) will prove to be hostile.
12. Only a single item will meet the logical
product of all the criteria.
13. Distribution of items is shown in Figure
3.
3. USQ-20 COMPUTER SOLUTION
The USQ-20 computer method of solution
uses only the USQ-20 computer without benefit of the search memory and serves as a basis
for comparison of solution times with those of
forthcoming solution methods.
A USQ-20 instruction-oriented flow diagram
was drawn (Figure 4) to solve the typical
search problem stated in Item 2, above. Note
that a step of the over-all search task, that of
updating dynamic data, is not included in the

-y

-z
NOTE:
FOURTH DIMENSION IS CLASSIFICATION
OBLIQUE VIEW

I

I

I
--t---

EB:

I
__ 1..._

EB!EB

--+----+-.- x

I

I
---1--

:EB

I
I

--+-I
I

I

I

EB:EB
EB:EB
EB:EB
EB!EB

---t- - -

---~-

I

x,
X-v PLANE

-

EB:EB
EB:EB
EBlEB
--+-EB!EB
r
x,

4.

USQ-20 Computer Search Flow

flow. When only the USQ-20 computer is used,
updating is not considered part of the search
task. Only when an external search memory is
used, which must be updated in addition to the
conventional core memory, must updating time
be considered. A typical distribution of the
items in the four-dimensional space was assumed as shown in Figure 3. From this assumed distribution, the number of cycles
through all the loops in the flow diagram can
be determined and, therefore, a very close estimate of solution time is possible. The expression for the solution time as a function of the
number of items (N 1 ) and the number of typical mixed searches (N s) is handled by four
possible equations:

tZ

y

Figure

--+ --

x

m) + 0.240m]
+ 0.016ImNs, (1)
T,'o:l = [0.048 + 0.0192 (N
m) + 0.240m]
Ns + 0.016ImN s,
(2)
Teo:! = [0.48 + 0.224 (N
m) + 0.240m]
Ns + 0.016ImNs,
(3)

Teol = [0.048

+ 0.0866(N

I -

Ns

1 -

X-Z PLANE

1 -

PROBLEM: FINO ALL HOSTILE TARGETS THAT ARE BETWEEN THE LIMITS OF Xl AND X

~ BETWEEN THE LIMITS OF Y, AND Y 2 AND GREATER THAN Z2'

2

ASSUMED TARGET DISTRIBUTION:

,. EB

SHOWS THE DISTRIBUTION OF HOSTILE TARGETS.

2. THERE ARE FOUR TARGETS (TOTAL) IN EACH OF THE 64 X-Y-Z SPACE CUBES.

and
[0.048

Figure

3.

Test Problem Geometry

+ 112 (TcQ3 + 0.1216 (N

Tco4 = Tco2

1

Ns

T co2 )
-

+

m) + 0.240m]
0.016ImNs.
(4)

A HARDWARE INTEGRATED GENERAL PURPOSE COMPUTER/SEARCH MEMORY

With reference to the above equations,
1. T is search solution time in milliseconds.
2. The subscript co refers to computer
(USQ-20) only.
3. NI is the number of items.
4. m is the average number of responses per
typical mixed search.
5. Equation 1 assumes the typical (see Figure 3) distribution.
6. Equation 2 assumes best item distribution
for the indicated solution sequence.
7. Equation 3 assumes worst item distribution for the indicated solution sequence.
8. Equation 4 is the mean item distribution
(between worst and best).

Equation 4 is plotted as Curve 1 in Figures 11
through 13. The term 0.0161mNs appears in
all four equations and expresses the time required to perform some system function based
on the responses.
1. 0.016 (msec) is the time per average in-

struction.
2. I is the number of average instructions
per response.
3. m is the average number of responses per
typical mixed search.
4. Ns is the number of typical mixed
searches.
The term 0.016ImNs, for reasons that are explained in Section V of this paper, is disregarded when the equation is plotted.
4. PERIPHERAL SEARCH MEMORY SOLUTION

a. Dynamic Case
As explained earlier, the peripheral search
memory consists of the search memory model
that interfaces with the USQ-20 computer
strictly by means of the standard I/O channels
of the USQ-20 computer. The typical problem
will be programmed using this system configuration.
The solution for the dynamic case requires
periodic search memory updating since the
parameters describing each item are assumed
to be variable with time. The single parameter table block-transfer method of updating
will be used since this appears to be the fastest

165

method of updating the search memory. An
equation describing search problem solution
time will be developed by actually writing an
abbreviated symbolic program for each of the
three basic steps of the overall search problem:
(1) updating, (2) supplying criteria, and (3)
handling responses. Since instruction execution times are known quantities, one or more
terms can be developed for each of these three
basic steps of the search problem. A collection of terms results in the required equation.
The generalized functional flow diagram for
this configuration is given in Figure 5. The
broken line blocks are not considered part of
the search problem, while the solid blocks contain the search functions that are executed
from the main program. The remainder of the
search functions are handled by interrupt
routines that begin with the updating routine
shown in Figure 6. Internal interrupt routines
handle the updating, while the search routines
are handled by external interrupt routines.
Updating time is determined by adding the
time to perform the updating functions of
Blocks F, G, H, and J in Figure 5 to the total
instruction execution time for performing all
the instructions found in Figure 6. In addition, every word that is transferred into or out
of the USQ-20 computer via a standard I/O
channel requires 16-p.sec memory-access time
that otherwise could be used for arithmetic access time. The total updating time is shown in
Table II.
Figure 7A displays the instruction list for
supplying criteria to the search memory. The
total instruction execution time required to supply criteria to the search memory is 1176 p.sec.
TABLE II-UPDATING TIME,
PERIPHERAL SEARCH MEMORY
Function
Blocks F, G, H, and J (Figure 5)
Updating routine (Figure

Time (msec)
0.080
0.684

6)

I/O output access (0.016 X
4 X NI )
Total

0.064N I
0.764 + 0.064N I

166

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
START MAIN PROGRAM

I-.

Ir-

INITIALIZE

L

24 pSEC
SEND WRITE INSTRUCTION TO
SEARCH MEMORY VIA EXTERNAL
FUNCTION [STORE CONTENTS OF
OUTPUT BUFFER (X) INTO SUC- .
CESSIVE LOCATIONS OF SEARCH
MEMORY INTO FIELD DESIGNATED
BY INSTRUCTION]

K

r------,
.---.l ADDITIONAL SYSTEM

I FUNCTIONS AS REQUIREDI
L _ _ _ _ _ -.J

16 pSEC

STORE· A • L (DOG)

:

____ J

256 TIMES THROUGH LOOP (n

= 0 THROUGH 255)
24 pSEC
ACTIVATE 256-WORO
OUTPUT BUFFER (X)
TO SEARCH MEMORY
WITH MONITOR

Figure 5.

Peripheral Search Memory Search Flow

This is, of course, for a single search. The
total execution time for N s searches per updating therefore becomes 1.176Ns (in milliseconds).
Here again, every word that is transferred in
or out of the USQ-20 by a standard I/O channel requires 16-f-tsec memory-access time that
otherwise could be used for arithmetic access
TITLE UPDATING
PAGE
LABEL

~PDATING

I

R()l1TlNE

16 f-tsec/word X 12 words/search X Ns searches
or
O.192Ns (in milliseconds).

PERIPHERAL SEARCH MEMOR Y

d

CODING FORM

OPERATOR

1

OPERANDS

AND

_TYPf

•

PAT

·JUMP
.ENTER
•

SUBTRACT

•

ENTER

RETURN JUMP' PA T

~~E-_EXT _ _ M S -

NOTES
INSTR EXEC
(I.l~l"r.I

EXEC PER

"l",,,,r.'

TOTAL
fJLSl"r.I

24

5

120

"P + 1
"A" U (120 + j)

8
16

4
4

32
64

"A' X + 255i l · SKIP· A ZERO
"A • U (120 + j) • SKIP

20

4

80

24

3

72

8

1

8

.JUMP

"RAT

.SUBTRACT

"A • Y + 25s.to " SKIP-A ZERO

20

3

60

.ENTER

"A' U(120+j)' SKIP

24

2

48

.JUMP

"TAR

.SUBTRACT

"A " Z + 255 10 • SKIp·A ZERO

8

1

8

20

2

40

.JUMP

"CAN

8

1

8

.JUMP

"TAP

8

1

8

•

ENTER

"A· L (PAT)

16

1

16

•

STORE

• A " L (ABLE) [FIGURE 7AJ

16

1

16 .

"SEARCH [fIGURE 7AJ
"Cn • MONITOR !?56-WORD Y-BUFFER]

8

1

8

24

1

24

8

1

8

24

I

24

.JUMP
RAT

.OUTPUT

TAR

.OUTPUT

• PAT
• C n " MONITOR [256-WORD Z-BUFFER]

.JUMP

"PAT

.OUTPUT

• Cn • MONITOR [256-WORD C-BUFFER]

.JUMP

• PAT

.JUMP

TAP

PROGRAMMER

TIMl"

INTINT

CAN

time. Since 12 criteria words are supplied for
each search, the total memory access time to
supply criteria to the search memory is:

8

I

8

24

1

24

8

I

8

TOTAL

Figure 6.

Peripheral Search Memory Updating Routine

684

A HARDWARE INTEGRATED GENERAL PURPOSE COMPUTER/SEARCH MEMORY

167

The total computer real-time consumption necessary to supply criteria to the search memory
therefore is
1.176Ns + 0.192Ns (in milliseconds).

time for Ns searches per updating and m responses per search becomes:

Figure 7B shows the instruction list for
handling responses from the search memory.
The total instruction execution time required
to handle responses from the search memory
is 216 + 161 p.sec. This is for a single search
and a single response. The total execution

where

TITLE SEARCH ROUTINE
cri
LABEL

T

n~

I

OPERANDS

+ ENTER

·A· RET

+ SUBTRACT
+ STORE

'A' L (DOG)' SKIP' A NOT
• DOG
• C n - CAT

+ ENTER

'A • W (CAT) • SKIP - A NOT

+JUMP

• TARE

PROGRAMMER
~iE-_EXT- _ _ M S -

NOTES

ff

RETN [+IJ

JUMP

-ABLE

8

1

8

16
24

5
5

80
120

8

0

0

8

6

48

24

1

24

+ EXT FUNCTION-cn [SEARCH' NO REPLY]

24

1

24

+ RETURN JUMP· DOG
+OUT
• C n - CRIT IX? [2 WORDS]
+EXT FUNCTION-C n [SEARCH' NO REPLY]

24

1

24

24

1

24

24

I

24

24

I

24

24

1

24

+EXT FUNCTION-Cn [SEARCH· NO REPLY]

24

I

24

+ RETURN JUMP' DOG

24

I

24

+OUT

24

I

24

24

I

24

24

1

24

+OUT

• Cn - CRIT 1 Z, [2 WORDs.!
+ EXT FUNCTION-C n [SEARCH· NO REPLY]

24
24

1

I

24
24

+ RETURN JUMP' DOG
+OUT
• C n - CRIT IC [2 WORDSJ
+IN
• C n - RESPONSES [128 WORDS]
+ EXT FUNCTION" C n [SEARCH. REQUEST REPLY]

24
24

1
I

24
24

24

1

24

24

1

~

+ RETURN JUMP' DOG

24

1

24

l? WORD~

_.
[?

- Cn-CRIT IY

WORDS]

• Cn - CRIT I Y? [2 WORD§]
JUrviP~

. . RETURr.;

RET 6

120

24

• cn.- CRIT IX

+EXT FUNCTION-Cn [SEARCH· NO REPLyl

RET 5

5

48

OUT

RET 4

80

24

1

+ RETURN JUMP- DOG

RET 3

5

6

+OUT

RET 2

144
48

6
6

16

8

+ EXT FUNCTION-Cn [STOP WRITE]

RET 1

~::iCf,ER ru~i~~

24

+JUMP

ff

AND

the greatest integer in - - 2
number of responses per search,
and

INSTR EXEC
TIME (llSECl
24
8

SEARCH

RET

(in milliseconds),

m

+ RETURN JUMP' ABLE
+JUMP
• P + 1 !lvrAIN PROGRAM]

+JUMP

+ 0.016ImNs
m+l

EX TINT
ABLE

DOG

m+1]
2
Ns

CODING FORM

OPERATOR

__
SUPPLYING CRITERIA

[

PERIPHERAL SEARCH MEMORY

PAGE
~

0.216

DOG

CONTINUED IN FIGURE 7B. HANDLING RESPONSES PORTION
TOTAL EXECUTION TIME FOR SUPPLYING CRITERIA

LABEL

T

OPERATOR

~ANDLING RESPONS~"""
BEG

OPERANDS
Q • L (BUFFER COUNT)
Q • L (BUFFER LIMIT) • SKIP

+ ENTER
+ COMPARE
+

NI IF ~ Q

+JUMP

RET 7

+ STORE Q
DOT

I

+ ENTER
+ ENTER

L(DOT)
•. A' U ( ) - SKIP
B n • A • SKIP

A ZERO

ODE

+JUMP

PERFORM I RESPONSE HANDLING INSTRUCTIONS
ODE

+

LOW

+ ENTER

STORE

NOTES
EXEC PER
"-",,,-,,rt:
2

Tu~;~~

16

2

32

8

I

8

16

I

16

24

I

24

16

0

0

8

1

8

16

0

0

INSTR EXEC
TIME (Il"-Fr,
16

Q • L (LOW)

16

I

16

24

1

24

)

16

I

161

24

I

24

BEG

8

1

8

DOG

24

I

24

+ REPLACE

L (BUFFER COUNT) • 1

+JUMP
+ RETURN JUMP'

TOTAL EXECUTION TIME FOR HANDLING RESPONSES

Figure 7.

32

Bn • L (

+ PERFORM I RESPONSE HANDLING INSTRUCTIONS

RET 7

AND

1176

Peripheral Search Memory Search Routine

2J6 + lhT

168

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

I =

number of instructions per response to perform some system
function based on the response.

greatest integer in

m = number of responses per
search,

or
0.016

m+
2 IJ Ns (in .milliseconds)

[

where
[m ; 1

J= the greatest integer in m ;

m

==

1 and

number of responses per search.

The total real-time consumption necessary to
handle responses from the search memory
therefore is
0.216 [m; 1

JNs + 0.016ImNs
+ 0.016 [

m; 1

JNs.

== 0.764 + 0.064N1 + 1.368Ns + 0.232

[ m: 1

JNs + 0.016ImNs•

(5)

where
T

=

PSD (subscript)

==

=

search solution time expressed in milliseconds.
system configuration (peri pheral search memory,
dynamic) ,

N r == number of items,
N s = number of typical mixed
searches per search memory updating,

undetermined (depends
upon application) number
of average (16 p.sec) instructions required to perform some system function that is based on each
response address.

Equation 5 is plotted as Curve 2D in Figures
11 through 13. However, the last term
(0.016ImNs ) of the equation is disregarded
whene plotted for reasons that are explained in
Section V of this paper.

b. Static Case
In some applications of the search memory,
it is recognized that the search memory data
could be static. Under this assumption, the
equation for search solution time is similar to
Equation 5 with the updating terms removed.
The equation then becomes
T pss = 1.368Ns

The final equation that expresses the complete
search solution time for this system configuration can be found by combining the double underlined expressions that describe each of the
three basic search steps:
TpSD

I

J

response words per search X N s searches

,

2

Again, every word that is transferred in or out
of the USQ-20 by a standard I/O channel requires 16 p'sec memory-access time that otherwise could be used for arithmetic access time.
Therefore, the total memory access-time-totransfer responses from the search memory is
16 !'Sec per response word X [m ; 1

m+l

+ 0.232 [m: 1 JNs
+ 0.016ImNs ,

(6)

where
PSS (subscript)

=

system configuration (peripheral search memory,
static) .

The first two terms of this equation are plotted
as Curve 2S in Figures 11 through 13.
5. INTEGRATED SEARCH MEMORY

a. Dynamic Case
An integrated search memory has been proposed and is described in Section III above.
The typical problem will be programmed using
this system configuration.
The solution for the dynamic case requires
periodic search-memory updating since the
parameters describing each item are assumed
to be variable with time. The single parameter table block-transfer method of updating
will be used since this appears to be the fastest
method of updating the search memory and

A HARDWARE INTEGRATED GENERAL PURPOSE COMPUTER/SEARCH MEMORY

TABLE III-UPDATING TIME,
INTEGRATED SEARCH MEMORY

also since this is the same method used to update the peripheral search memory above.
An equation describing search problem solution time will be developed by actually writing
an abbreviated symbolic program for each of
the three basic steps of the over-all search
problem: (1) updating, (2) supplying criteria,
and (3) handling responses. The generalized
functional flow diagram for this configuration
is given in Figure 8. The broken line blocks
are not considered part of the search problem;
the solid blocks contain the search functions
that are executed from the main program. The
remainder of the search functions are handled
by internal interrupt routines that begin with
the updating routine shown in Figure 9.
Updating time is determined by adding the
time to perform the updating functions of
Blocks F and G in Figure 8 to the total instruction execution time required to perform all the
instructions found in Figure 9.
In addition, every word that is transferred
into or out of the USQ-20 computer via a
standard I/O channel requires 16-J-tsec memoryaccess time that otherwise could be used for
arithmetic access time. The total updating
time is shown in Table III.
The instructions necessary to perform the
remaining portions of the over-all search problem, those of supplying criteria to the search
memory and handling responses from the
search memory, are found in Figure 10. The

256 TUES THROUGH LOOP In

Figure 8.

=

0 THROUGH 255J

Integrated Search Memory Search Flow

169

Time (msec)

Function
Blocks F and G (Figure 8)
Updating routine (Figure

0.048
0.708

9)

I/O output access (0.016 X
4 X Nr
Total

0.064N1
0.756

+ 0.064Nr

total time is (481 + 24m + 161m) microseconds. This, of course, is for a single search.
The total execution time for Ns searches per
updating, therefore, becomes:
0.481Ns

+ 0.024mNs +

0.016ImNs (in milliseconds) ,

where
m = number of responses per search, and
I = number of instructions to perform
some system function based on each
response.
The final equation that expresses the complete search solution time for this system configuration can be found by combining the foregoing double underlined expressions. The
equation becomes
T rSD = 0.756 + 0.064N r + 0.481Ns 0.024m N s
+ 0.016ImNs, (7)
where
T
search solution time in
milliseconds,
system configuration (inISD (subscript)
tegrated search memory,
dynamic),
N r - number of items,
Ns
number of typical mixed
searches per search memory updating,
number of responses per
m
search, and
undetermined (depends
I
upon application) number
of average (16 J-tsec) instructions required to perform some system function that is based on each
response address.

+

170

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
TITLE UPDATING ROUTINE
PAGE
of

-

LABEL

1

_
......

OPERATOR

INTEGRATED SEARCH MEMORY

CODING FORM
T

OPERANDS

AND

PROGRAMMER

PLT. _ _ E)(T _ _ M S _
DATE

NOTES

~~~}..R I ; ;...Er.~

OUTINT

+ RETURN JUMp· PAT [BAT - FIGURE 10 -AFTER PER-

PAT

+JUMP

• P + 1

+ ENTER

24

~;:~r.~ER lj(~i~~
5
4

120

8

.A·U(120+j)

16

4

64

+ SUBTRACT

• A • X + 255, n • SKIP' A ZERO

20

4

80

+ ENTER

• A • U (120 + j)' SKIP

24

3

72

+JUMP

·RAT

8

1

8

+

• A • Y + 255, n' SKIP'A ZERO

20

3

60

+ ENTER

• A • U (120 + j) • SKIP

24

2

48

+JUMP

• TAR

8

1

8

FORMING CA'l]

SUBTRACT

+ SUBTRACT

• A • Z + 255, n

20

2

40

+JUMP

• CAN

8

1

8

+JUMP

·TAP
• C n • MONITOR

8

1

8

24

1

24

•

SKIP'A ZERO

GWOR!]

CAN

+

+ ENTER

·A· BAT

16

1

16

CAT

+

·A· L (TAB)

16

1

16

OUTPUT
STORE

• PRESEARCH 1FIGURE 10J
• C n • MONITOR [256-WORD Y-BUFFER]

8

1

8

24

1

24

• PAT
• cn • MONITOR [256-WORD Z-BUFFER]

8

1

8

+OUTPUT

24

1

24

+JUMP

• PAT

8

1

8

+OUTPUT

• Cn • MONITOR [256-WORD C-BUFFERl
• PAT

24
8

1
1

24
8

+JUMP
RAT

+OUTPUT
+JUMP

TAR

TAP

+JUMP

708

TOTAL

Figure 9.

Integrated Search Memory Updating Routine

Equation 7 is plotted as Curve 3D in Figures
11 through 13. However, the last term
(0.016ImNs) is disregarded when plotting for
reasons that are explained in Section V.

b. Static Case
In some applications of the search memory,
it is recognized that the search memory data
can be static. Under this assumption, the equation for search solution time is similar to Equation 7 with the updating terms removed. The
equation then becomes
T1ss = 0.481Ns + 0.024mNs
+ 0.016ImNs, (8)
where
ISS (subscript)

32

system configuration (integrated search memory,
static) .

The first two terms of Equation 7 are plotted
as Curve 3S in Figures 11 through 13.
SECTION V-SEARCH TIME COMPARISONS AND CONCLUSIONS
A search time analysis was performed in
Section IV for each of three search system
configurations. For each system configuration
several equations were derived. The dependent

variable in all equations is search time, T. All
equations contain the independent variable N s,
which is the number of searches per search
memory updating, and m, which is the average
number of responses per search. Most equations contain a third independent variable, NT,
which is the number of items carried in the
system. T versus Ns is plotted for each system
configuration on each of the three graphs (Figures 11, 12, and 13). Figure 11 treats NI as
a constant 256 items; Figure 12 treats NI as
a constant 512 items; Figure 13 treats NI as a
constant 1024 items. In all cases, m is assumed
equal to one. The search time equations that
describe all the curves are derived in Section
IV. Note that one term, 0.016ImN s, is common to all the equations for all system configurations. This term describes ·the time required to perform some system function, based
on the search response address and must be
performed in the USQ-20 computer in all
cases. This function is not considered part of
the search but only related to the search in
that it is based on the results of the search.
This term is, therefore, disregarded in the
plots of the equations.
Equations 1, 2, 3, and 4 describe the search
time when only the USQ-20 computer is used.

171

A HARDWARE INTEGRATED GENERAL PURPOSE COMPUTER/SEARCH MEMORY
TITLE SEARCH ROUTINE
fI
PAGE

..,

LABEL

PRESEARCH
SEARCH

I

INTEGRATED SEARCH MEMORY

CODING FORM

OPERATOR
___
TT~

•

I

OPERANDS

AND

ENTER
ENTER

- B n • ZERO
- Q • W (Xl MASK + Bn)

•

ENTER

- A • W (X~ + Bn)

NOTES
INSTR EXEC
TIME (liSE C)
8
16

-

•
•

PROGRAMMER
PLT. _ _ EXT. _ _ _ MS
DATE

•

EXT FUNCTION-Cn [$EARCH - NO REPLyJ
7 TIME~
.REPEAT NI
- 10000
R

•

fP

• BO - ZERO ~O OP]

ENTER

* ON COMPLETION OF SEARCH,

SEARCH MEMORY CLEARS B 7
"ENTER
• Q • W (X 2 MASK + Bn)
. . ENTER
• A - W (X 7 + Bn)
• EXT FUNCTION Cn I§EARCH - NO REPLY]
.REPEAT NI
• 10000 R [B? TIMES]
• BO. ZERO [NO OP]

"ENTER

* ON COMPLETION OF SEARCH, SEARCH MEMORY

TOTAL
(ILSEC\

1
1

8
16

16

1

16

24

1

24

8

1

8

6.5 (AVE)

2

13

IN USO-20
16

1

16

16

1

16

24

1

24

8

1
2

13

6.5 (AVE)

8

CLEARS B7 IN USQ-20

•

ENTER

• 0 • W (Y I MASK + Bn)

16

1

16

•

ENTER

• A· W (Y 1 + Bn)

16
24

1

16
24

•

EXT FUNCTION-Cn [SEARCH - NO REPLY]
.REPEAT NI
• 10000 ~ 7 TIME~
R

•

ENTER

• BO. ZERO

[j.lo

* ON COMPLETION OF SEARCH,

OP]

1

8

1

8

6.5 (AVE)

2

13

SEARCH MEMORY CLEARS B7 IN USQ-20

•

ENTER

• 0 • W (Y7 MASK + Bn)

16

1

16

•

ENTER

- A • W (Y 7 + Bn)

16
24

1
1

16
24

1
2

8
13

16

1

16

16

1

16

24

1

24

8

1

8

2

13

16

1

16

16

1

16

24
8

1
1 +m

24
8 + 8m

8

m

8m

• EXT FUNCTICN- Cn [sEARCH - NO REPLY)
.REPEAT NI
- 10000R fu7 TIMES]
8
• BO. ZERO [NO opl
6.5 (AVE)
• ENTER
*'ON COMPLETION OF SEARCH, SEARCH MEMORY CLEARS B7 IN USO-20
•

·0 - W (Z2 MASK + Bn)

ENTER

• A • W (Z1. + Bn)
.EXT FUNCTIO:N~ en [SEARCH - NO REPLY]
.REPEAT NI
• 10000.A B 7 TIMES
•

ENTER

6.5 (AVE)
• BO. ZERO LNO OP]
"ENTER
*ON COMPLETION OF SEARCH, SEARCH MEMOR Y CLEARS B 7 IN USQ-20

• 0 • W (C MASK -+ en)

"ENTER

• A • W (C + Bn)
• EXT FUNCTIO~ c n [sEARCH - REOUEST REPL yJ
.REPEAT NI
• 10000
B 7 TIMES
"ENTER

REP 6

EXEC PER
SFAR r.H

R

• BO·ZERO [NO OP]

"ENTER

'* ENTER RESPONSE ADDRESS FROM SEARCH MEMORY INTO Bl REGISTER AND CLEAR B7
REGISTER

•
BAT

PERFORM (I) RESPONSE HANDLING INSTRUCTIONS

16

1m

161m
8m

8

m

8

0

0

16

1

16

.JUMP

• REP 6

•

JUMP

•

BSKIP

• P +1
n
• B • SEARCH COUNT

.JUMP

• SEARCH [FIGURE 8J

8

0

0

.JUMP

• PAT IFIGURE 22A

8

1

8

TOTAL EXECUTION TIME FOR PERFORMING
SEARCH
"'"THESE ARE NOT USQ-20 INSTRUCTIONS; THEY ARE SYSTEM FUNCTION STATEMENTS.

Figure 10.

Integrated Search Memory Search Routine

481 + 24m + 161m

172

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

100,000

-

2D - PERIPHERAL SEARCH MEMORY
(DYNAMIC CASE)

3D - PROPOSED INTEGRATED SEARCH MEMORY
(DYNAMIC CASE)
3S - PROPOSED INTEGRATED SEARCH MEMORY
(STATIC CASE)
-

=

:\..

10,000

=

"

~

....

",,

1,000

"

,
'"

"-

"'

~

I"\~

~~

"-

I

I'~

"iii

"-

00

"

10

~

..........

Dr-. ~

" ~i

e!

Js

:I

!

""l'\

w
:a

j:

is

e!

1

1000
100
NUMBER OF SEARCHES, NS

10

512

m

1

Ns

1000.

Results are
1. Peripheral search memory (Curve 2D)

provides a performance increase by a fac-

,

u

~

"'
-

~

.... ~

f'J'\..

NI
L'

i'....

1'."'
I'i\,.

~o

-

2S - PERIPHERAL SEARCH MEMORY
(STATIC CASE)

I'~

Curves 2 and 3 display the problem solution
time of the peripheral search memory and the
proposed integrated search memory, respectively. Curves 2D and 3D handle the dynamic
problem situation where the search memory
must be updated in addition to the conventional
memory. Curves 2S and 3S represent a static
problem situation where updating is not required. The curves displayed in Figures 11
through 13 allow unlimited performance comparisons to be made between the three system
configurations. The conditions, however, must
be specifically stated. Two representative comparisons will be made here (see Figure 12).
The conditions are as follows:

-

1 - USQ-20 COMPUTER ONLY SOLUTION
("MEAN" ITEM DISTRIBUTION)

100,000

"' .~,

~

,

1
10,000

Figure 11. Search Time (T) versus Number of Searches
per Updating (N s ), 256-ltem Case, m = 1

!

1 - USQ.20 COMPUTER ONLY SOLUTION
("MEAN" ITEM DISTRIBUTION)

I

"l
II I ~~

~I

2S - PERIPHERAL SEARCH MEMORY
(STATIC CASE)

!

1\30 - PROPOSED INTEGRATED SEARCH MEMORY
1
(DYNAMIC CASE)
~
3S - PROPOSED INTEGRATED SEARCH MEMORY _
(STATIC CASE)
-

!

I!

1\

"

i!

Since the USQ-20 computer must perform the
search sequentially, the resulting search time
is highly sensitive to item distribution (within the space constraints) for any given solution sequence. Equation 1 assumes the typical
distribution found in Figure 3. Equation 2
assumes best case distribution for the solution
sequence used; Equation 3 assumes worst case
distribution for the solution sequence used; and
Equation 4 is the calculated mean between
Equation 2 and 3. Since the item distribution
changes in a dynamic situation, the mean distribution is the most meaningful. Therefore,
Equation 4 was chosen to be plotted (as Curve
1 in Figures 11 through 13) to display the
problem solution resulting from use of only
the USQ-20 computer. Updating is not included in the search time, using the USQ-20
computer only, since it is assumed that updating must occur to meet other system requirements.

j

2D - PERIPHERAL SEARCH MEMORY
(DYNAMIC CASE)

i

!!! ii

i
I

J

I

I

1,000

I

~

til

100

I

~

"I'.: ...,

1'IlII~

:

"

I

!

....

"\1\.

'"

~

~~

I,

'1

"\

~

I

"r'\

t--r-.
20

to....

~

,"
~

3D

t~

~2S

'"

0

"\
3S

"

,

,

~

~

1"\[\ "\
1

1000
100
NUMBER OF SEARCHES, NS

10

Figure 12. Search Time (T) versus Number of Searches
per Updating (N s ), 512-ltem Case, m
1

=

A HARDWARE INTEGRATED GENERAL PURPOSE COMPUTER/SEARCH MEMORY
100,000

::-

1 - US0-20 COMPUTER ONLY SOLUTION
("MEAN" ITEM DISTRIBUTION)
~

['..

['..

'f\..

2D - PERIPHERAl SEARCH MEMORY
(DYNAMIC CASE)

-

2S - PERIPHERAl SEARCH MEMORY
(STATIC CASE)

-

-

3D - PROPOSED INTEGRATED SEARCH MEMORY
(DYNAMIC CASE)

,,~

3S - PROPOSED INTEGRATED SEARCH MEMORY
(STATIC CASE)

10,000

"

~

r\.1

'r'\.

"

1,000

'" ,''''-

"-

,~

]\II'

l'\..

"~ ~

I

.......

100

l'\.

"0

~f'

r--

~

t'-I'- ~D

'"

I

3D
2S

,

,

II~I

, !, , , !

!

!!, !

,

f'
I

I

,1

,

I'N

0

"

!

"'- !!,,'

,

~
~

1

I

III
I

I

1

I

1I

1000
NUMBER OF SEARCHES, NS

1

iii II j

100

"-

1

i

I

,

I
,

j J

~

l'\.

1"-

111 iN

"'-

"

10

Figure 13. Search Time (T) versus Number of Searches
per Updating (Ns ), 1024-Item Case, m
1

=

tor of 38 over the conventional computer
only (Curve 1) solution.
2. Integrated search memory (Curve 3D)
provides a performance increase by a factor of 116 over the conventional computer
only (Curve 1) solution.
Note that the curves show only system search
time of the three system configurations. The
proposed integrated search memory has an additional advantage over the peripheral search
memory-less complex programs. Comparison
of the list of instructions for the two system
configurations (given in Figures 7 and 10) will
indicate that the proposed integrated search
memory approach requires fewer instructions
and allows more familiar and direct programming techniques than for the peripheral search
memory.

173

An important point to remember is the fact
that the updating terms of the search time
equations, for the system configurations that
involve the search memory, only need be considered if the search memory must be updated
in addition to the conventional core memory of
the USQ-20 computer. If only one of the two
memories requires updating then the updating
terms may be ignored and, therefore, only the
straight line plots of Figures 11 through 13
need be considered.
Another consideration is the fact that the
feasibility of transferring large amounts of
data over the standard USQ-20 I/O channels
for one purpose (search memory in this case)
is unpredictable unless the word rate requirements of all the I/O channels are known and
considered. In a complex system, there is the
possibility that the I/O is already heavily
loaded and that the peripheral search memory
I/O requirements could result in overload of
the I/O. The proposed integrated search memory, on the other hand, does not have to depend
on standard I/O channel data transfer, and so
this unpredictable I/O situation can be avoided.
Related to this consideration is the definition
of solution time. The solution times analyzed
and displayed in this paper are based on computer memory access time. In an approach
where standard I/O channel transfers are not
involved, computer memory access time is
identical with real or actual solution time.
Where standard I/O transfer time is involved,
memory access times are not adjacent and the
actual solution time is greater than the solution time based on computer memory access
time alone. This then points to another advantage of the proposed integrated search memory approach.
LIST OF REFERENCES
1. GER-10857: Collection of Technical Notes
on Associative M emory. Akron, Ohio,
Goodyear Aerospace Corporation, 9 October
1962.
2. HORVATH, R.: Integrating the Search Memory with the USQ-20 Computer. GER11621. Akron, Ohio, Goodyear Aerospace
Corporation, 4 June 1963.

A BIT-ACCESS COMPUTER
IN A COMMUNICATION SYSTEM
Dr. Edmund U. Cohler and Dr. Harvey Rubinstein
Sylvania Electronic Systems
A Division of Sylvan:ia Electric Products, Inc.
APPLIED RESEARCH LABORATORY
40 Sylvan Road
Waltham, Massachusetts, 02154
1.0 INTRODUCTION
Systems having computers and communications subsystems are increasing in number.
The application of such systems span such diverse fields as process control, message switching, command and control, and multi-user online computer installations. In these systems, a
significant portion of the information processed
is brought to and sent from the computer on a
large number of communication lines, carrying
peak bit rates generally from 75 bps to 4800
bps.
Often, failure of a portion of the system to
provide services can entail serious consequences
to the system users. Thus severe relability
standards are placed on the system hardware.
Many of these systems must be capable of providing service to a range in the number of
users and must be able to grow as the system
finds more users. Thus, one finds the need for
modularity to meet these demands. Finally, as
these systems are used, they must be capable
of change so that they can be adapted to the
ever changing and wide variety of requirements, problems, formats, codes and other
characteristics of their users. As a result, general-purpose stored program computers should
be used wherever possible.

two computers (full redundancy) to obtain the
required reliability and availability. One computer stood by while the other processed data
on line. When it failed, the computers were
interchanged. To handle the incoming data,
many of these past systems were designed with
costly complex fixed programmed bit and character buffers, and message assemblers. The
buffers operated in such a way that a failure
in one of them could prevent usage of a number of transmission lines. As a rule, the fixed
programs wired into these units did not permit
rapid changes of the characteristics of the line
it handled.
In this report, a design for a low-cost multiprocessor system is described which alleviates
these past deficiencies. This system performs
the store-and-forward operations of a message
switch. A unique design of the input and output interface is central to meeting these objectives, and is the primary topic of this paper.

1.1 Operational Objectives of the Design
The basic objectives of the work described
were to design a message switch which provides:
A. Improved operational reliability,
B. Greater economy, both in the initial installation and in operation, and

Past approaches toward meeting these operating requirements have been made by utilizing
175

176

c.

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Greater adaptability to a wide variety of
communication environments and procedures, initially and during operation.

These goals were achieved through the design features which are summarized below:
1. The design is made modular through the
use of equipment pools. These pools of
processing and storage equipment lead to
a very high order of reliability with low
initial and maintenance costs. In particular, a method has been evolved for using
a number of small digital computers to
provide message switching functions with
a large amount of flexibility and modularity in operation and in installation.
2. A unique method of interfacing lines
with processors has been invented which
decreases buffering costs, failure interaction, and bit processing equipment requirements. The method is a combination
of hardware, logic and software which
ideally suits the problem at hand. It
makes possible to use general-purpose
processors in transferring and processing
messages and thus provides great adaptability to changing environments and requirements. The direct access to memory
of information lines provided by this
technique allows much greater equipment
efficiency in handling incoming and outgoing information in a class of multiuser
computer systems extending well beyond
message processing. The message processing example, however, shows sufficient
details to support the claims of better
efficiency.
3. An efficient method for the orderly storage and retrieval of messages in a modular drum (or other medium-access-time)
storage system has been evolved. This
method reduces the cost of core storage
by allowing frequent drum accesses and
reduces the cost of the drum system by
making efficient use of the storage required by the drum.
1.2 Achieving Operational Reliability
To obtain the reliability offered by redundancy without the impoverishing costs of du-

plexing, we have turned to the use of modular
equipment pools. As an example, the processor
pool serves incoming and outgoing lines. Each
of these lines has a usable service connection to
three separate processors. Thus, if a single
processor fails completeley, its lines can be
serviced by other processors that are not completely occupied. Because there are four processors in the pool, we need only 25 percent overcapacity (redundancy) in each processor to
assure no loss of system capacity on a single
processor failure. Many computer-centered
systems require 100 percent redundancy (complete duplexing to achieve the same result.
Other such systems do not use the pool concept
so that despite similar degrees of modularity,
a loss of a single module causes complete loss
of service to a group of lines until it is either
repaired or replaced. A similar pooled approach
has been taken in the message storage area
where any of three selection units can give a
processor access to the message storage drum
modules.
The modularity of this design also improves
maintenance times by reducing the time required to isolate faults and by simplifying the
training of maintenance personnel. Shorter
times to find a difficulty and correct it result in
greater system reliability.
An important requirement in pool operation
is that failures on one side of an interface do
not cause failures on the other. The magnetically coupled interfaces used in the direct-access-to-memory avoid this difficulty. The magnetic coupling is sufficiently loose that the failure of an active component cannot affect other
equipments across the interface.
1.3 Achieving Greater Economy
We have achieved economy in this system
primarily by the invention of a new type of
line access to a processor which makes the
processor more than five times more efficient
in the acceptance and assembly of bits from a
serial line. In all past such switching systems
either external equipment was assigned to the
task of bit assembly or it was done in the computer at great cost in number of memory cycles
per bit. By making possible a single instruction
time for the handling of a single bit, we have

177

A BIT-ACCESS COMPUTER IN A COMMUNICATION SYSTEM
REFERENCE
FILE

been able both to eliminate external equipments
and to make efficient usage of our computer in
handling the bit transfers and assemblies as
well as the more complex but less frequent jobs
of switching.
Furthermore, the modularity of the processing pool allows us to choose the switch capacity to suit traffic conditions and numbers of
lines in various installations thus minimizing
the required equipment. In addition, the pooled
approach results in much less redundancy so
that we can expect an almost two-to-one cost
reduction over other duplexed systems even at
their optimum capacity.

B
;APES

~

3

~

JOURNAL,
OVERflOW,
INTERCEPT,
TAPES

CROSSPOINT

MESSAGE
IlWM POOL

Iio---~

I

I
I

I;;
I

IOI~
I ~

I

I
I

I::
I ~

IOI~
I

I
I

I

SERVICE
SECTION

1.4 Achieving Greater Operation Adaptability
The advantage of using a programmed processor for flexibility and adaptability to meet
new requirements and situations over the older
techniques of wired-in operations is now well
recognized in the industry. Error correction
and detection schemes may be implemented.
Very sophisticated priority disciplines can be
adopted on a moment's notice to suit the situation at hand. Changes in codes, formats and
routing indications can be handled. With pooled
design, vIe can re-assign lines not only under
failure conditions but under conditions of
changing traffic patterns because line assignments are made electronically and each line can
be assigned to any of three separate processors.
In talking about the adaptability to change,
we should also speak of protection against unwarranted change. We observe that. this system, being primarily under programmed control, permits protection from tampering by
making initial program entry possible only
from protected devices, while subsequent modification through the console or other external
devices would be solely under the control of
some internal program.

2.0 Description of the System
2.1 Description of Switch Operation
The block diagram of Figure 1 shows the
equipment pools and their interconnections.
The most important pools in the normal on-line
operation of the switch are the processor pool,
the message drum pool and the processing

Figure 1. 200-Line Message Switch Major Subsystems
Diagram (Maximum Lines).

drum pool. The tape and console pool playa
subsidiary job as they are only partially utilized
in the routine switch operation. Briefly describing the input processing, the incoming bits
for each line are sent to three processors in the
processing pool. A supervisory program has
previously assigned each line to one of these
three processors. As the bits arrive, the processor assembles them into characters and
checks the characters for special system coordination and control information. Included in
these control information groups are the routing indicators which identify the message destination and precedence characters which indicate the priority of the message. When these
arrive, an access is made to the processing
drum pool by the processor to translate these
groups into outgoing line numbers. When the
outgoing line numbers and the precedence of
the message are known to the processor and the
message has fully arrived, an entry is made
into a table (queue list) to alert the outgoing
line that a message is a waiting transmission.
In addition, the processor enters somewhat different information onto a ledger, which maintains an account of the message status; i.e.,
those lines on which the message is to be transmitted, those on which it has been transmitted
and those which have acknowledged the transmission. Simultaneously, the processor trans-

178

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

fers the incoming message onto the 'in-transit"
message-drum pool and onto the reference-tape
pool. This it does in fixed-size bins. The initial
entries into a journal are also made in the
course of the input message processing. The
journal is a chronological listing of the actions
taken on a message while it is in the switch.
In output processing when a processor finds
that one of its outgoing lines is no longer busy
(or at fixed intervals after a nonbusy condition) , it refers to the queue lists, which are
identified by line and precedence, to obtain the
message-drum address of the next message to
be transmitted on that line. It then makes arrangements to retrieve that message from the
drum and to send out the characters one bit at
a time. In the meanwhile recordings of these
actions are made upon the journal tape. When
the message is completely transmitted, additional entries are made in the ledger to indicate
transmission. When all transmissions of a message have been made the in-transit message and
the ledger are erased.

2.2 The Processor Pool Functions
The processor pool accepts the bits from a
line, assembles them into characters, disassembles them and sends them to a line. Secondly,
it examines the incoming characters and performs a variety of routing, queuing and surveillance functions based on these. Thirdly, it
stores groups of characters in its core memory
for buffering other storage pools (primarily
the message drum pool). Finally, during slack
time and routinely, the processor evaluates
switch operation and traffic for maintenance
and adaptation purposes. It is evident that a
general-purpose processor can handle all of
these functions, and if it is time shared, efficient
hardware usage can be achieved along with
flexible operation.
In Section 3.1, it is demonstrated that bit
and character processing dominate the other
processes in computer usage thus making the
interface techniques important in improving
processor efficiency.
Because this paper is primarily on the interface technique which we have used between the
communication lines and the processing pool,
our discussion will center on this pool.

2.3 Message Drum Pool Functions
The maj or message drum pool function is the
storage of messages to accommodate line availability / demand variations. This variation
shows up as messages stored in "in-transit"
storage awaiting lines to become free for transmission. It is clear that this function requires
orderly and efficient storage of messages.
Orderly storage of information on the message drum and efficient transfer to and from
the processing pool have been achieved by the
use of list processing techniques. Because of
properly chosen accessing procedures, all bins
of information in the processor memory are of
the same size, so that the information may be
stored on the drum in fixed-size bins and successive bins chained to previous ones. A complete empties list keeps track of all available
storage space remaining on the drum, thus
permitting very efficient storage filling. Because
all messages are stored in fixed-size bins, the
problem of cross-office speed conversion is automatically accomplished. A full discussion of the
message drum pool techniques is beyond the
scope of this paper.

2.4 Processing Drum Pool Function
The processing drum pool stores the lists and
registers used in the processing job by the
processor pool. Its lists, as a matter of fact,
are used in common by all of the processors of
the processing pool to provide a record of:
where the message ,viII be kept on the message
drum pool, on what lines the message is to be
transmitted, in what sequence the message is
to be transmitted, to what lines the message
has been sent, which message to transmit next,
where the message is located; and to update
the ledger entry of lines to which the message
has been sent. Even though normal operation
of this pool is independent of the message drum
pool, it makes use of the same drums for storage. This is possible and efficient because both
storage capacities are determined by the maximum probable queue build up.

2.5 Other Equipment Groups
The other equipment groups within the
switch are not as central to the normal operation of the switch, and will not be covered in
this paper.

A BIT-ACCESS COMPUTER IN A COMMUNICATION SYSTEM

3.0 SYSTEM DESIGN

179

regularly or very frequently and are given in
Table IV.

3.1 The Processor Pool
3.1.1 Processing Jobs
Messages on various lines and trunks may
differ in code, bit rate, and message format,
but in each case, the message consists of a
header, text and ending. The header includes
routing and message priority. Some messages
are divided into 80 character blocks for transmission and reception purposes.
In a message store and forward system,
processing of two types are encountered. The
first type centers about the acceptance, storage
and transmission of messages and the second
type about the control of the switching system.
Tables I, II and III indicate typical message
processing functions. Routine functions are
classified in these tables as either of a bit,
character block or message type.
System control functions keep the switching
system performing effectively by supplying the
switching center supervisor with data useful
in the management of the store and forward
center and network, and as an aid in maintaining and testing the switch, its programs, and
data base. They are generally not performed

3.1.2 Discussion of Store and Forward Switch
Functions
An examination of the list of functions given
in Tables I-IV shows the store and forward
switch functions fall into four classes: data
formating, system operation, signal acceptance
and transmission and recording (storage) operations.
In order to obtain an order of the importance
of these functions to message switching, it is
desirable to classify them in the order of their
frequency of occurrence. The acceptance and
forwarding of bits are the most frequently occurring functions. They occur at the incoming
and outgoing bit rates. The next most frequently occurring functions are those associated
with each and every character which enters
or leaves the system, for example, control character check. Most functions are not performed
on each character. Header validations and entries in queue lists for example are performed
on entire messages independent of the number
of characters they contain. The character functions occur lib times as frequently as the bit
function, where b is the number of bits per
character and averages almost 7 bits per char-

TABLE I-INPUT PROCESSING-ROUTINE
Bit
Accept bits and assemble characters
Check parity of characters
Detect system control characters
Assemble characters in words and bins
Write messages in "In-Transit Store"
Initiate preemption for flash messages
Verify header
Perform routing
Enter incoming message data in ledger
Check block parity
Write message on reference tape
Enter data in journal
Acknowledge accepted messages
Count blocks
Enter data in queue lists
Assign serial number for processing

x
x

Character

Block

Message

x
x
x

x
x
x
x
x

x
x
x
x

x
x

180

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

TABLE II-OUTPUT PROCESSING-ROUTINE
Bit
Use queue lists to initiate message transmission
Make journal entries
Updata ledger
Retrieve messages from "In-Transit Store"
Convert formats
Convert codes
Construct block parity
Check security for each block
Remove messages from storage which have been
transmitted
Convert messages to a bit stream

Character

Block

Message
x
x
x
x

x
x

x
x
x
x

x

acter. The next set of operations in the order
of descending frequency of occurrence, are
those which occur for each block. They occur
l/cb as often as the bit functions. Here, c is
the number of characters per block and is
about 80 characters. The remaining functions
occur once per message or so. If there are m
characters per message, the message functions
occur l/mb as often as the other functions
where m is approximately 2000. Then each
character, block or message function occurs
respectively 8, 640, 16,000 times as infrequently as a bit function.

line rates (from 75 bits per second to 4800
bps), and various bits per character (from 5
to 8 depending on their code) must be considered.

The most frequent functions then are the bit
functions. When a bit arrives, it must be stored
in the proper place in a character, used to update the character parity count, and counted to
establish the arrival of a full character. When
a full character is received, it is transferred to
another location in memory for further processing. A similar per line process occurs in
reverse order when information is disassembled
for forwarding. These bit functions are performed on each line at a rate determined by
the information rate on the line. In designing
an equipment to perform this function, various

Two characteristics of these bit and character functions should be noted. The first is
that there exists a variety of functions and the

TABLE III-MESSAGE PROCESSINGNON-ROUTINE
Control errors.
Print or display messages.
Initiate service messages.
Manually retrieve message.

The character operations are somewhat more
complex. Typically, characters must be examined to determine if they are system control
or coordination characters, and if their parities
are correct. When transmitting, the character
codes may require conversion and the block
parity must be determined. The characters also
must be counted to determine block length.

TABLE IV-SYSTEM CONTROL
PROCESSING TASKS
Maintain in-transit storage status.
Maintain status of traffic.
Activate overdue message alarms.
Activate queue threshold alarms.
Execute maintenance routines.
Control program maintenance routines.
Activate and control start-up.
Activate and control recovery.
Check confidence levels on equipments and
links.
Provide line synchronization.
Allocate hardware.
Accept supervisor initiated commands.
Provide statistical analyses of traffic.

A BIT-ACCESS COMPUTER IN A COMMUNICATION SYSTEM

second that these same functions are performed
on all lines. The latter assumptions imply time
sharing of equipment while the former implies
a reasonably complex assortment of equipment.

3.1.3 The Processor Interface With Input and
Output Lines
Because the most frequent operations in the
message switch are the acceptance and the delivery of bits of information, earlier switch designs used special equipment to accept bits
from a line and assemble them into characters
for use by the processor. That approach involved considerable equipment which was peculiar to a particular line type. Recent designs
have made this equipment sufficiently flexible
(generally by pluggable programs) to be suitable for a wide variety of such lines. However,
in so doing, any efficiency derived from specialpurpose equipment was lost. Furthermore, an
efficient method of providing alternate capability (redundancy) in case of equipment failure was not provided. Seeking economy, redundancy, flexibility and simplicity in handling
bits, we use a general-purpose machine, taking
advantage of its high speed to perform service
for a number of lines. A direct and inexpensive
interface is made to each line. Each line interfaces with a number of processors so that in
case of failure, assignments can be made electronically for other processors to take over the
lines formerly served by the inoperative processor.
The communication lines interface directly
with computer memory cores in our design. A
single instruction ( one memory cycle in
length): (1) accepts a bit from the communication lines; (2) puts it in the proper bit location in a memory word which is employed as a
character buffer for that particular line; (3)
checks to see if a complete character has yet
arrived; and (4) computes the parity bit for
the character. The operation is accomplished
almost entirely with existing equipment in the
main computer memory. Additionally, it provides alternate servers for each line with sufficient decoupling to assure that no failure on
one side of the interface can cause a failure on
the other side. Both the method of entry and
the handling of the bits within the machine
will be described in what follows.

181

3.1.3.1 Bit Handlin.q By A New Instruction
The lines coming into the computer are actually wired into the memory of the computer
as described in the next section. Each incoming communication line will be accompanied by
a synchronizing line which specifies timing.
Each of these wires is wired into a memory
core at a location which is permanently reserved for that communication input. A program will cause the line termination memory
locations to be scanned at times specified by
interrupts from a real-time clock and will then
put the received data bits into the proper positi()n in that word. When the word is full, it
will be transferred to another location and
character processing will begin. A new type of
instruction in the processor puts the bit into
the proper place in the memory location for the
line, checks to see if the location is full and
computes the character parity. The entire instruction takes just one memory cycle of the
computer. One additional memory cycle must
be used to determine the line to be scanned
next. This latter instruction is just an unconditional branch instruction whose address portion is determined when scan lists are made up.
The new type of instruction is exteTnally determined which means that its effect is not determined at the time the program is written
but rather is determined by subsequent input.
This is not quite the same as a branch or skip
instruction which merely constitutes a choice
of where the next instruction is taken based on
post-programming inputs.
With the direct interface it allows inexpensive appropriate control of a processor by a
number of external users.
For purpose of accepting bits the instruction
nature is determined by an incoming synch signal and by a marker bit which determines the
end of character. However, the instruction is
programmed in the normal manner as part of
a subroutine which performs line scanning.
The instruction format is as shown in Figure
2. The instruction code part of the instruction
word contains a partial code and two externally
set bits. The address field part of the instruction word contains the operand for the instruction. When the scan program causes this instruction to be read-out from the memory, the

182

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

DATA BIT
INSTRUCTION CODE
GENERAL ORDER

oI
oI
oI
o

0 I 0 0 -

I 0 I 0 I -

oI

INSTRUCTION EFFECT

0 I X X - - - - - - CHECK SYNCH AND MARKER
0 I I 0 - - - - - - SHIFT BITS 1-16 lEFT CLEAR BIT 17 AND
RESTORE. (POSITIONS DAT .... BIT.)
UPDATE PARITY.
- - - - - NO OPERATION.
- - - - - BRANCH TO X AND MARK PLACE.

(THIS STARTS CHARACTER PROCESSING.)
~ AND MARK PLACE. (THIS STARTS
CHARACTER PROCESSING)

0 I I I - - - - - - IlI!ANCH TO

Figure 2. Instruction Formats for Bit Processing.

operation which is executed will then depend
upon the two indeterminate bits. For the time
being, let us assume that the second indeterminate bit is a zero. The first indeterminate
bit is the synch bit, which will be a one if a
new data pulse has come in since the line was
last scanned. The full instruction code is then
010110 which (see Figure 2) entails a shift operation upon part of the instruction word. The
data bit which was in the last significant bit
of the word is shifted left one position and,
thereby, entered into the partly assembled character. Simultaneously, the character parity is
updated. In addition, the synchronization bit is
cleared and the entire word restored in the
same memory location. If when we had read
the line word out, no synch bit had come in,
then the instruction (010100) would be interpreted as a no-op and the word restored
without modification.
The use of the marker bit is fairly simple.
When we arrive at the end of a character, we
would like to know about it so that the entire
character can be moved to another location in
core memory thence to enter on character
processing. To do this, the program sets a "1"
into a particular bit of the input line instruction in the normal address field. Since the- address field is initially all zeros, the marker bit
will be the first one to show up in the second
indeterminate bit of the instruction code (due
to a succession· <)f shifts). Thus, whenever a
"1" appears in this position, it indicates that
a complete character has been received, and the
instruction becomes a branch instruction which
branches to a sub-routine to take care of transferring the character. Two different branches

are indicated here because the asynchronous
nature of the system may allow a data bit to
come in after the character was filled. On the
other hand, there may be no new data bit that
has come in. In one case, a single bit must be
preserved in the memory location and in the
other case, it need not be.
While this is one type of externally determined instruction, there are others possible,
and in fact, the line equipment used in making
the asynchronous to synchronous conversion
can be embodied in an additional indeterminate
synchronous bit possible in the instruction code.
The full power of such an instruction particularly in message switching and command and
control has not yet been realized.

3.1.3.2 Description of Interface Electronics
The basic system of entry into the memory is
illustrated in Figure 3. Each incoming line is
wired into a core which is effectively part of
the main memory. These cores are all in the
same bit position in the memory. The information coming into the core is written into each
core on the basis of a coincidence of input-current and a write-current from the computer;
the latter being supplied on every memory
write cycle (by the y-drivers in Figure 3).
The information is read, out of the core by
the standard read cycle of the memory. Thus,
once having been written in, a data bit is available for read-out with the rest of the word
using the standard memory equipment already
in the computer (with some exceptions to be
covered later) .

INCOMING UNES
CoURY 1/2 - WlfTE CURRENT
DATAl

TO
MINOP:'f
REGISTEl

SYNCH
1
1
1
I

DATAl
SYNCHJ

FROM COR£ MINOP:'f

. CIRCUITS
CORRESPONDING
MEMORY LOCATIONS ARE
RESEItVED FOR A UNE INSTIt\JCTION WORD

Figure 3. Processor-Input Line Interface.

A BIT-ACCESS COMPUTER IN A COMMUNICATION SYSTEM

However, we recognize that a single bit could
be written in and read-out many times since
input pulses are much wider than memory
cycles. Furthermore, a read-out of a zero data
bit is ambiguous since it may indicate no input
rather than zero-input. Thus, we must provide
a synchronizing channel for each line, which
will indicate when a data bit is available for
reading. A similar input to another bit of the
same word will be used for such synchronization purposes. However, the synchronization
pulse must be timed to a single write pulse of
the computer. This means there must be an
asynchronous to synchronous converter timed
from the master timing source (which also
times the computers) for each incoming line.
While we have devised a method of employing
a third channel to obviate the need for the conversion equipment, we will not discuss it here
because the economic tradeoffs are not clear.
Actually, the input lines are not wound
through the cores which are normally located in
the main memory stack. Instead, two additional
very small memory planes (Figure 3, Auxiliary
Memory Cores) are provided which are the
storage locations for those particular bits of
memory. These planes are wired in with the
x and y and z lines of the main memory. A
coincident current memory will provide two
half-writes, x and y. Either the x or the y
write current will be provided to the external
cores as a 1/2 write common to all auxiliary
cores. Thus, coincidence with the external 1/2
write signal will write in a "I". A separate
sense winding will be provided to prevent interference with the normal words of memory and
thus a separate sense amplifier will be provided
for each of these two planes. The output will
be logically added to the output of the normal
sense amplifiers. Thus, all the input lines can
be implemented with the addition of the auxiliary planes, two sense amplifiers, a few diodes
and two gates.
While each line has been described as threading a single memory, in actuality it would
thread cores in three sep~rate processor memories. Thus, anyone of the processors coupled
to this line could service the line if its programmed scan included the line.
On-line program modification could take care
of reassignment if it became necessary. Be-

183

cause the input line is magnetically coupled to
the memory, no processor failure can disable
it; i.e., it will still deliver its write current to
the other processors with which it is associated.
Furthermore, if a portion of the line equipment
fails, it disables the particular line but in no
way prevents the processors from servicing
other lines. Thus, this magnetic coupling has
the sort of ideal loose coupling described earlier.

3.1.4 Programming System
A master control program schedules operating programs and provides for hardware and
line assignments. Consequently, it organizes
routine and non-routine activities. The portion
of the control program which refers to the routine functions resides in the core memory of
each processor and has the facility to call the
remaining program or portions of it from the
processor drum memory to core storage when
required. The operation of the control program
is tied to interrupt signals from a real-time
clock. These signals occur as often as required
for the processor to sample its incoming lines
for signals and to supply information to its outgoing lines. The processor need not keep
track of elapsed time.
The operation of the control program and the
operational programs for the functions proceed
as follows: the control program, on the basis
of information describing the lines assigned to
it, schedules groups of lines to be scanned at a
time. When a real-time interrupt occurs the
program transfers control to an appropriate
program for handling the line scanning functions. If during the line scan a full character is
found to have entered the machine, the character will be entered into core memory with
others in its message. If the character shoul~
be a system control character appropriate action will be noted in a list kept for scheduling
by the control program. When all the lines
have been scanned, control will be returned to
the control program. At this time, the control
program decides what its next course of action
will be through an examination of its scheduling list. It might examine the control characters to determine their significance. If one
of these was a start of message, it would initiate a header verification and then have control

184

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

returned to it for user action. As characters
are accumulated in memory or transmitted
from memory by the operating routines, they
would signal the control program to initiate a
program which would bring more information
from the drum for transmission or would have
information taken from core memory for storage.
Programs for the handling of change in line
assignments due to hardware failures will
either be manually or automatically initiated.
The manual initiation will occur from the supervisor's console. From this position, a computer will be selected and a message sent to
this computer to initiate a program that would
remove a computer from service and reassign
its lines. This program will be retrieved from
the processor drum, together with a list describing line assignments and characteristics.
It will then determine another group of assignments based on an algorithm previously decided on, which is judged to minimize the overloading. Queue lengths would be available to
this program if required. The change in line
assignments requires no hardware change.

3.1.5 Processor Rate and Storage Requirements
The total number of memory cycles required
for the processing job can be divided by the
number of input bits to give a figure of merit
which is independent of the capacity of the
system. At times one sees such a figure expressed as instructions per throughput bit.
However, the number of output bits exceeds the
number of input bits in a system where multiple addresses are allowed. According to one
estimate for a large system, the average output
rate will be 75% higher than the average input
rate. Thus, the proposed figure seems more
natural and allows one to evaluate the required
processor memory speed.
Other system factors do influence the proposed figure of merit. For example, the average number of bits per character, characters
per block and blocks per message will determine the number of instructions per bit used
in character and message processing. These
parameters have been chosen as discussed in
Section 3.1.2.
Trial programs of bit and character functions have been worked out to obtain the data

on which to assess the processor requirements.
In estimating program complexity, a prototype
instruction code containing twenty instructions
was used. The input bit processing takes two
memory cycles per bit of direct input processing and approximately 0.5 memory cycle per
bit attributable to the control program. The
former load may be reduced by limiting the
flexibility of the scan cycle, and in fact may be
reduced to 1 memory cycle per bit for a fixed or
nearly fixed scan. The output bit processing is
similar in memory cycle usage.
Input character processing can be done in 36
memory cycles per character and the output
processing in 28 memory cycles per character.
To determine the full processor rate required
for each incoming bit, the bit and character
process rates must be augmented by the memory cycles required for the block and message
functions. Our analysis of the drum transfer
and other routine block and message functions
indicates that 2500 instructions per message
received and 50 instructions per block received
is a generous allowance for these functions
(Le., 5000 and 100 memory cycles respectively) .
The total number of memory cycles per input
bit is then conservatively fixed at
2.5

+ 1.75

X 2.5

5000
2000 X 7

36

28

7

7

+- +-

---- +

50
80 X 7

X 1.75

+

= 19.5 memory cycles

This is equivalent to ten instructions which is
what most systems require for a single interrupt to process one input bit.
The core memory associated with each processor is used to hold the currently executed
programs (control programs, operating programs, and maintenance programs when required), the data base for the execution of this
program (code conversion tables, empties-registers, queue entries by precedence for each
line, address of next ledger entry, etc.) and the
messages prior to storage on the drum.
I t is expected on the basis of preliminary
estimates that the programming and its data
would consume less than 2000 core memory
words.

A BIT-ACCESS COMPUTER IN A COMMUNICATION SYSTEM
The message buffer is required to hold about
70 words per line. If a double buffer scheme is
used to prevent buffer overlay before transfer
to in-transit storage, for a computer handling
67 lines, about 10,000 words for message buffers are required per computer.
The most important facets of the processor,
the interface with the communication lines and
the memory size and rate have been discussed.
The remaining features of the processors are
of conventional nature.
BIBLIOGRAPHY
1. HELMAN, D. A., et aI, "VADE: A Versatile
Automatic Data Exchange," IEEE Trans.
Communications and Electronics, No. 68,
p. 478, September 1963.
2. HARRISON, G., "Message Buffering In A
Computer Switching Center," IEEE Trans.
Communications and Electronics, No. 68,
p. 532, September 1963.
3. POLLACK, M., "Message Route Control In A
Large Teletype Network," J. ACM, Vol. 11,
No.1, p. 104, January 1964.

185

4. GENETTA, T. L., GUERBER, H. P., RETTIG,
A. S., "Automatic Store and Forward Mes-:sage Switching," WJCC, San Francisco,
AFIPS, Vol. 17, pp. 365-369, May 1960.
5. HELMAN, D. A., BARRETT, E. E., HAYUM, R.,
WILLIAMS, F. 0., "Design of ITT 525
'VADE' Real-Time Processor," FJCC,
AFIPS, Vol. 22, pp. 154-160, 1962.
6. SEGAL, R. J., GUERBER, H. P., "Four Advanced Computers-Key to Air Force Digital Data Communication System," EJCC,
Washington D.C., pp. 264-278, December
1961.
7. WOLF, F. G., "Application of A Modular
Data Processor to Store-and-Forward Message Switching Systems," Proceedings
Ninth National Communications Symposium, pp. 198-207, 1963.
8. "Message Switching and Retrieval In A
Real Time Data Processing System," Comma
Catalyst of Progress, National Communications Symposium, Ninth, pp. 190-197, 1963.

VERY HIGH SPEED SERIAL AND
SERIAL-PARALLEL COMPUTERS HITAC 5020 AND S020E
Kenro Murata and Kisaburo Nakazawa
Hitachi Ltd.
Tokyo, Japan
1. Introduction

(2) Program Flexibility.
The refined and flexible instruction
system, in conjunction with a number -of
multi-purpose registers to be used as
accumulators, index registers, and many
input-output control registers, gives
powerful possibilities to the programming activities.
(3) Simultaneity and Multiprogram Activity.
The memory time sharing, the concurrent operation of various control unit,
the automatic program interruption, the
memory- protection, and the introduction
of priority mode are prepared.

HITAC 5020 family consists of general purpose computing systems designed to solve a
wide variety of problems for both scientific and
business data processing.
HITAC 5020 system is a medium-scale junior
version of this family, and would have the same
performance characteristics as IBM 360/40 50. 1 A purely serial logic construction is the
remarkable feature of this system.
HITAC 5020E (5020 ENHANCED) system
is a large scale senior version of this family,
and would have as much performance as IBM
360/62 - 70. But this system is constructed in
serio-parallel logic form for economical reasons.

This paper reviews the engineering design of
HITAC 5020 and 5020E systems with primary
concentration on central processing unit.

The central processing unit of this family is
designed to rapidly and economically perform
fixed or floating point arithmetic operations in
either single or double precision, and even more
to be able to process bit-wise variable length
data.2, 3 It contains 18 MC, 2-phase serial
transistor-diode logic circuits and helical transmission lines 4 for accumulators, index registers
and other various registers.

2. Outline of HIT AC 5020 and 5020E System
The 5020 system is organized along four basic
lines, Main Memory, Arithmetic and Control
Unit, I/O Channels and I/O Devices.
Figures 1 and 2 show those 5020 and 5020E
system configurations, respectively, and Figures 3 and 4 are pictures of the 5020 system.

Our design goals of 5020 family are as
follows:

2.1 The Main Core Memory
The core storage of the 5020 has a capacity
ranging from 8,192 words to 65,536 words (32
bits each), and is directly accessible from the

(1) High Performance per Cost.
We have realized this feature by introduction of helical transmission lines combined with the 18 MC serial logic system.
187

188

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
Main Memory
16 Kw

(2.Ops)

16 Kw

16 Kw

16 Kw

1

2+1

Ari thmetic end Control Uni t

to other Computer

to other Computer

Figure 1. The System Configuration of HITAC 5020.

central processor and input-output control channels, with read-write cycle of 2.0 sec per 32 bits.
The memory addresses 0 - 31 are transmission line registers and so absent in the main
core memory. The read-write control of the
5020 Arithmetic and Control Unit or Channels
is rather simple one, not overlapped, and the
access to the memory by the central processor
is delayed only if any of the input-output channels or the central processor are attempting to
access the storage at the same time.

in bank 3; 8, 9 in bank 0; and so on). This
increases independent operation efficiency. In
other words, instructions, operands and I/O informations, etc. are referred through the respective exclusive memory refer controls (four
in total as seen in Figure 2). With these features the effective storage speed is doubled,
while the controls are referencing the separate
banks, since more than two banks are simultaneously accessed.

In the case of the 5020E, the core storage can
contain anyone of 16K, 32K, 49K, or 65K words
as a unit. Although the core storage cycle time
is 1.5 microseconds, the effective increase of
the access speed is realized through the completely independent access to each of the separate banks into which the whole core storage is
effectively divided. (i.e., two banks in case of
16K words).

Instructions, operands and I/O data, etc., are,
through their respective controls, transmitted
via the Core Memory Multiplexer which timeshares the data flow between the core storage
and either the processor or the I/O channels.
In addition, during one storage cycle, data of
two word length (64 bits), or three or four
word length (96 bits or 128 bits), in case of
the operand, can be transmitted in parallel,
thereby increasing the storage access efficiency.

Two words (64 bits) in each bank of 16 KW
capacity are referred at a time, so the effective
memory speed is doubled. Moreover, each block,
which is made up of four separate banks, is
addressed as shown in Figure 2 (i.e. address 0,
1 in bank 0; 2, 3 in bank 1; 4, 5 in bank 2; 6, 7

The 5020 instructions can designate up to
65K words (16 bits address field) of the core
storage addresses. However, the 5020E is so
designed that the enlargement of the core storage is possible. A field conversion up to 260K
words of the store capacity is feasible.

VERY HIGH SPEED SERIAL ANDSERIAL-P ARALLEL COMPUTERS
Main

16 Kw

16 Kw

Memory

16 Kw

189

(.1.5 ps)

16 Kw

l6_ 1

16 Kw

16 Kw

40

32

Core Memory Multiplexor

Instruction

Operand

Unit

Channel
Exchange I

Unit

Channel
Exchange II

Execution Unit

Arithmetic and Control
Unit

to other Computer

Figure 2. The System Configuration of HITAC 5020E.

In the case of more than 65 KW capacity of
the 5020E, every 32 KW memory module enlargement is possible.
The effective address field of 16 bits is expanded to 18 bits (theoretically 21 bits) by

Figure 3. Front view of HITAC 5020.

means of a preset instruction and a LMM (large
memory mode) indicator bit.
The preset instruction prepares 21 bits
address information which is added to index
modified address field of next instruction, and

Figure 4. Console and II 0 Devices.

190

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

generates the effective address field of 21 bits.
When the LMM is off, the index modification is
performed on 16 bits field so the information is
performed seen as 0 to 216 - 1. When the LMM
is on, the modification arithmetic is executed
on 16 bits information seen as -2 15 ~ +2 15 -1.
Our choice of the above mentioned convension
is done for assurance of complete compatibility
between the system of less than 65 KW capacity
and the more.

2.2 Arithmetic and Control Unit
The Arithmetic and Control Unit executes
and processes stored programs and data. In the
5020, the arithmetic and logical operations are
all performed in serial logic. Basic cycle time
is 2/Ls for 32 bits information and 4 bits unavailable bits (these are used for multiplication
acceleration) of 18 MC.
In contrast to the 5020, the 5020E is designed
to adopt a four-bit parallel logic configuration
based on the high speed circuit which has been
proved to be completely feasible with the 5020
systems. By this alone, therefore, approximately
four times increase in operation speed over the
5020 is readily possible.
In the 5020 the multiplication of 32-bit by
32-bit word is executed in 8 basic cycles using

four adders, whereas the 5020E can perform
the same multiplication in 2 basic cycles (1.0
microseconds) using a multiplication unit.
The 5020E processor takes instructions and
operands in advance, that is, three controls: the
control for instructions, the control for operands and the control for executions are constantly operating in parallel. Therefore, the
instruction and the operand access times would
scarcely appear in the total execution time required for the instruction.
This is a kind of "advanced control" facility
and will not present any trouble, since the instructions will always be executed sequentially
and the interruption facility will be the same as
the 5020.
Specific comparisons of the internal speeds
of the 5020 and 5020E are illustrated in Table
I. Comparative capacities indicate that the
5020E is approximately 8 to 12 times faster
than 5020 in scientific applications and 8 times
in the other applications.
Table I also shows the performance characteristics of other typical computer systems, for
comparison. 1 ,5
Furthermore, the 5020E can accept the object programs which are written in the 5020

Table I. HITAC 5020, 5020E-Execution Times (in J.L sec)
(Including instruction read and index-modification time)
I

Ooerationa
Add and
INbtract

KultiJll1'

Diude

i

tvce
!1xedDOint
floatingnoint
fixadDOint
floatingnoint
fiDdnoint
fioatingnoint

Shirt
Jump

store
Inner--100p of the fixeelpol;vnaa:l.al. cal.cuPOint
lation
fioatingPx ~ ~ =p
point
Inner--1oop of the fixedmatrix mult1pl1cPoint
at10n
floating:s .. Bi b_1 = ~
point
Inner-loop of the fixedmatrix inversion
POint
by a direct math- f'loatingpoint
eel&[ .. ctb 1
&[

=

single or double
I
-lellgth
5020E
160/W
5020
single
8
0.75 .... 2.2
11.88
double
12
' 1.25 .... 2.2
'3.0 "",1.
sinde
~"l.24
18.66
doUble
16 ..... 26
3.0 ..... 3.
Z1.66
2.0,,- 2.
8L..~
sinde
24
double
~
3. ..... '5
36,,-38' 2.71 '" rs
sinde
~.61
21)9.18
double
72 ..... 74
4.2 '" .25
186
7. "'- .0
sin.d.e
l&2
double
20.0 ... 23.0
.JJ3
9.5
....
12.;75
I
'7
"...
80
12S
sin.d.e
I
1..77
double
13 .... U&2 17.0""2l.0
.... 10
ll.21);v25
s~le
1.0
... 10
double
I 12.;,....43
1.5
jump
0.5 ... 1.5
SoL3
4
non-jUJlll)
8
1.5
S.rb
llinde
1.25
2.1)
10
12'.
1.25 .... 2.5
I
double
16
17.
3.5"",5.5
sinde
36
double
96
6.0"" 7. 5
6.0",- 7.0
sinde
64
double
100
7.01.. 8.0
5.0 .... 7. 5
sinJUe
48
121
double
8.0
112
8.0~10.0
8
125
sinJUe
double
9.0", ll.O
II
317
6.0 .... 10.5
sinde
50
double
8.0'1.10.5
12
sinde
9
10.0 ""12. S
double
11.0 ..... 13.;
13

360/50
4.0
tI.B8
9.69

28.52
2l.5
38.0
33.25 .

3l:IJ/62
1.87

f

3l:IJ/70
1.05

3.2
3.22
tI.12

1.11
1.13
2.8

6.12
9.62
ll.2

2.2
4.2
5.7

I~~~
207

1...21)
6.18
6.70

b:£
20:9
ll.

CIl

~
till

!

!

71

8 , 9 ,",

M

~

'~

tl=

!

,

'

!

,

,

,

,
~

!

,

,

!

,

!

," I

!

________

~

Mask indicator corresponding to the same
bi taddress of address 1/1

r-I C\I
r-I

C\I ....\

'

________

~

"II:, "'" ~
~

",om -d MOO CIS =
trj
§,~
~~
,--_
_~_
_ _ _ _ Channel Control Resist.:..:e=-r_ _ _ _ _ _~
address

Ii'

S.

30

,0

I

!

I

(

I

,

,

!

I

'~

116, ,

I

?O

1

21

,

!

,

,

,

,31

I

~----~v-----~ ~~--~~--~

Command Address

Statios Indicator

Count

Figure 7. Assignment of Special Register Bit.

I; Indirect address bit
A; Channel number specification
B 2 ; M2 part modifier
12 ; Indirect address bit
M2 ; "Command" location specification
D; Device number specification
W; Mask bit setting
L; "PS" instruction variation
4. Input-Output Channel and Its Control

The I/O control of the 5020 family is executed by means of I/O channels, and the Arithmetic and Control Unit or the channel timeshares main memory as occasion arises. An
I/O channel is exclusive to a certain type o~
I/O devices, and the simultaneous operation of
maximum 12 channels is allowed.
The channel operation is initiated in Arithmetic and Control Unit by I/n instruction
(Format IV), which is valid when and only
when the Priority Mode Indicator (the 4th bit
of address 17, of Figure 7) is on.
The L part of an I/O instruction assigns subfunctions such as Read, Read Backward, Write,
Advance, Advance Backward, Rewind, etc.
The channel having received the control,
starts the designated unit and transfers informations between I/O unit.

The transmission area is defined by "commands" (as shown in Figure 8), which are initially- addressed by a I/O instruction and are
fetched from the main core memory also by
use of memory read facility of the channel. The
command operations can be chained by designating a bit in a command.
Each part of a command shown in Figure 8
represents the following:
M; initial main memory address or drum
address
N; number of word or block to be processed
R; transfer or skip
S; variation of operation
T; disconnect or proceed
The adoption of commands in the 5020 and
5020E systems makes the I/O operation more
efficient, as so called scatter read, gather write
or symbol control is possible.
Having left the I/O control to the channel,
the central processor processes ensuing main
program simultaneously with the I/O operations of the channel. Its memory refer process
is delayed only if any of the I/O channels are
attempting to access the main storage at the
same time.
The status of a channel in operation or after
operation is indicated in the channel Control
Register as shown in Figure 7 and can be referred by main control programs.

VERY HIGH SPEED SERIAL AND SERIAL-PARALLEL COMPUTERS

5. Program Interruption and Protections
The program interrupt conditions are:
Memory error
Overflow in fixed point, floating point or
variable
Length arithmetic operations
Memory protection and No operation
Ready conditions of I/O control channels
Real-Time clock interrupt
Manual Console switch, etc.

responding contents of mask register (address
18, as seen in Figure 7).
These program interrupt conditions cause an
interruption only when there is a "one" bit
both in Indicator Register and Mask Register,
and when the Priority Mode Indicator (4th bit
of address 17) is off.
If the program interruption occurs, the main
program routine is turned off, the Priority
Mode Indicator is forced to turn on, the current
content of SCC is stored to the address 32 with
the instruction word count, and a forced jump
is made to the address 33 from where begins
Master Control Program, the routine handling
the specific conditions.

These conditions are indicated in the address
17 Indicator register (Figure 7).
The built-in circuits continuously and automatically check for above conditions and cor11

Fomat I~~~~~~~~~~-L~~~~'~ILv~I~.~,_A~,~I~Ill-Lr~~~'_'L,_FLr~~~~,~,
15 16 17

2D 21 22

M*
,
, 1

24 25

[11 ,Brr

r

202122

, ,

{2,

,

111*
, , I

"'2

V

I

4748 49

I

FomatlV

[

15

0

I

M
I

,

I

32

Command

I ,

o

A

17

11

'

.

I

I

5354

LJ ·1

S
I

1517 18 192D 21

Figure 8. Instruction Format.

I

I

,

I:

L

I

, I
63

F

I

I

31

W

f

I

IWI

N
I

F

, ,

25

5657 58

T

I I

,

I

24 25

,~,

I

, I
63

~ 5758

IBl,

12

1///I/////I/lJ

R

,

~

2D 21 22

47

!

2~

,

,Ill

I

,

I

525354

, D, , I--d ,

I ,

L

565758

;BI

I~'

A

I I

,I
31

'PI

20 21 22

, ,

F
, ,

,

I

, ~I I I

{,

,

31

2425

525354

I

197

I

31

L

, ,

,
63

I

198

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
address
2

4,

I

n

0

P

~

3
0

31

20 21

(a)

d..1

address I
0
2

3

31

21

3)

n
31

20 21

I

P

I

0

20 21

I

31

(b)

Modifier

f
I

displacement

(value)

o

31

15 1&

(e)

index word for word adress modification

, , - - - - - - modifier

(value)

I

,
!

o

20 21

(d)

31

index word for bit address modification

Fig. 9. Repeat Mode Modifier and Index Word.

The right half word of address 16 is the
memory Protection Boundary Register (as
shown in Figure 7), U or L assigns the upper
bound group number or the lower bound, respectively, where a group represents every 256
words memory locations, each group having an
address that is a multiple of 256. (When the
main memory capacity is over 65 KW in a
5020E, every 1024 words.)
The protected memory address X, whose
group number is X, is assigned by U and L,
such as
ifU>L
U>X>L
no region is assigned
if U = L
X < U or L < X
if U < L ,
When and only when Priority Mode Indicator is on, all the instructions which will have
store operation to the above-mentioned protected area are suppressed from storing, and
this is indicated by Transfer Protection Indicator (Oth bit in address 18) and Protection

Indicator (16th bit in address 17). So the program interruption will occur.
The purpose of this protection is to eliminate
the interactive of programs in multiprogramming operation. Especially when the system is
operating under supervision of the monitoring
system, it is necessary to safeguard the monitor from harm of supervised program, for
these situations cause not only a single program but all the system to stop. Moreover,
stop protection facility is provided in the 5020
family.
Thus, automatic program interrupt ion system and protection facility have made effective
multiprogramming possible.

6. Logical Structure
6.1 Logic Circuit
The logic circuit of the 5020 family is fully
synchronous, 2 phase (B phase) static circuit.
Figure 10 (a) shows a basic regenerative ampli-

199

VERY HIGH SPEED SERIAL AND SERIAL-PARALLEL COMPUTERS

32 words cycle time to execute the multiplication of one word by one word. Particularly for
scientific uses it is important to reduce the
execution time of the multiplication. The sumInarized procedures of the multiplication and
the division are as follows.

fier or flip-flop, in which the connection A is
specially added to eliminate the hazard of misoperation and to have room of the clock phase
adj ustment. Figure 10 (b) is the symbolic representation of circuit (a). (c) in the same figure shows the rules of worst case logical connection, that is, two levels of pair logic are permitted. Max number of fan-in of logic circuit
is 7 and max fan out of logic is 6. ( d) shows
the helical-wired transmission line (delay line)
register of 36 bit information in the 5020
system.

( 1 ) Multiplication

The HITAC 5020 has five binary Adder &
Subtracters. In the multiplication, four Adder
& Subtracters of them are connected in series.
The multiplier is divided into eight parts, each
of which contains 4 bits information. When
the multiplicand passed through four Adder in
series according to 4 bits information, the partial product of one-word by one eighth word is
obtained. Therefore the multiplication of one
word by one word is performed only in 8 words
cycle time (16 .p.sec).

6.2 Arithmetic Unit of the 5020

In the 5020 arithmetic unit, the pure serial
logic and the delay line registers feature reveals especially its simple characteristics in
multiplication, division and shift operation.
The multiplication and the division in the serial
computer are performed by a series of additions, subtractions and shifts. Therefore, if the
most simple procedure is adopted, it will take

In the case of Integer Multiply (1M), five
Adders are used. So it takes only 1 word cycle

x
~

'------00 '}"

A....p

~

EF

Q.tu

l

I- 7a.~·"'1- - - - . 7i ---.-..

~

I

ooOC

It

Y

ANf)-c,· EF
rt

OR- AWD

A....p

----4---- _____ ~ ______~

.J.1:"

i

Q-Q

, {ci)I'---...oo
_-,I T___

~ 1=&1 ~ ~ ~ i ~--t@

l

I..

N/O- OR-EF
". OR-ANb

C)

~

I

I

J

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

~.

(C)

'7,

00(

~ •

!.:
~

r

K£ r

d.efAt ~
lei )

Figure 10. Logic Circuit.

~

~

~

200

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

time to carry out the multiplication of one word
by the integer less than 32. This scheme is illustrated in Figure 11.

quotient

.e---

r--- - ----- - -------..,
I

I
"-------®-

(2) D-iv-ision

I

I

~

Add Partial
_R!'!'!.":!.!!d!'!. _ _

-0-+I }
.witchl

I
Adder 1
or Subtracto

---.... a f - - . d - - - - - { ' a

Generally the non-restoring method is suitable for the procedure of the division in computers. According to the test result of signs of
the divisor and the partial remainder, the divisor is added to or subtracted from the partial
remainder shifted one place to the right.

a

Sub Partial
- ~~i.!!9~ __

a

-~~~--

In the HIT AC 5020, this method is more improved to reduce the execution time of the division by using three binary Adder & Subtracters. (See Figure 12.)

Figure 12. Division Unit of the 5020.

The result of the addition or the subtraction
is transferred to the Adder 2 and the Adder 3,
in which the divisor is added to or subtracted
from the result in the Adder 1, respectively.
These two results appear in the Auxiliary Registers 1 and 2. At the end of this operation, the
true result is selected automatically by checking a sign bit of the result in the Adder 1.
Thus, the division of one word by one word is
performed in 16 words cycle time (32 p.sec).
(3) Shift Operation

In the HITAC 5020, the shift operation is
performed by means of the shifter. Owing to
very high clock frequency, the delay lines can
be used as various registers instead of the transistorized register, and the use of delay lines
is very eminent from the viewpoint of economy and reliability. The Shifter, of course, is
made of delay lines. For instance, n bits left
shift is carried out by making the contents of
a register pass through the delay lines of n bits
a}---_

I

I

I

I

I
I
I
L ___ - - - __ --1

L - - - - ________ ..J
contrel line

Figure 11. Multiplication Unit of the 5020.

a

I

}

I

_..J

I

-0--*

,~-------

length. The Shifter of the HITAC 5020 consists of delay lines of 0, 1, 2, 4, S, 16, and 36
bits length. When the number to be shifted n
places is set in the Shift Control Register
(SCR), these delay lines are connected automatically to make the total length n bits. Every
kind of shift operation, thus, can be performed
by very simple logical circuits. Although the
one-word information of the HITAC 5020 is
32 bits, the one-word delay line registers have
36 bits length for certain reason (ex. multiplication). Therefore, the recirculation time of
delay line register is 36 bits cycle. Some consideration must be taken to shift the two or
more-word information because of 4 bits spare
time. For this purpose, the coincidence circuit
between the shift control register and the counter is provided, which controls two output of
the shifter (see Figure 13).
6.3 Arithmetic Unit of the 5020E
(1) Multiplication Scheme of the 5020E

To perform the mUltiplication of one word
by one word only in two words cycle time
(1.0 ft s in the case of the 5020E), we use eight
4-bit-parallel-adders, AI, A2 . . . . . AS (see
Figure 14). The multiplicand is passed through
the fifteen black boxes which are n time circuits, named Nl, N2, . . . . . N15 and we get
15 outputs (Le. y, 2y, 3y, . . . . . 15y) simultaneously. Now, they are fed into eight gates
numbered Gl through GS. On the other hand,
the most significant four bits of the multiplier
control the gate G1. That is, they select one
of the 15 outputs, mentioned above, or inhibit
all of them when the 4 bits are all zeros. The
next more significant 4 bits of the multiplier

VERY HIGH SPEED SERIAL AND SERIAL-PARALLEL COMPUTERS

201

Delay line

4
information

;/0--

input of tl:e shifter

-t..
I

.!

I
I

16

I
I
I
36
IL ____________

I

I

ji---------- ..J

I

L--_.---,------,
co:"ncidence
circuit

+
I
I

I

I
II
I

Shift Control Register

I

b----------~-_J

I
L--_ _
_I _----'I

counter

Figure 13. The Schematic Diagram of the Shifter of the 5020.

control the gate G2 and so on. The outputs of
the gates are fed into the corresponding adders
and the adders are connected in series. So we
can get the two-word product from the output
of the adder A8 in 2 words cycle time.

(2) Division Scheme of the 5020E
To speed up the division process, we modify
the non-restoring method slightly and obtain.
4 bits quotients in one word cycle (0.5 fLS).
In this method, comparing the sign of the
divisor (y) with the sign of the partial remaind~r (ri), we can determine the next quotient
bit (qi) and whether to add or· subtract next.
But still there are eight possibilities left. That
lmltiplier Register
o·

C!I
0

0

0

0

0

(xl

0
0

0

0
0

0

0

0

0

0

0

0

lmltiplicand Reg (yl

Figure 14. Schematic Diagram of the Multiplication
unit of the 5020E.

is, how many times of the divisor should be
added to (or subtracted from) the 16 "'I i.
riH = 16 "'Ii -+- (2k + 1) y (k = 0, 1, ..... 7)
Comparison of the most significant 5 bits of
the divisor (y) with the most significant 6 bits
of the partial remainder' '(r i) allows us ~o restrict the above eight possibilities to onl~ two.
(The divisor must have been normalized.) Suppose that we could find k to be n or n + 1
(n = 0, 1, 2, ... 6). Then, perform three addi.
tions (or subtractions).
riH: = 16Yi ± (2n + 1~ y
riH" = 16 "'Ii ± (2n) y
ri+4'" = 16 "'Ii -+- (2n + 3) y
Test the, sign of ri+4" and we c~n determine
which of the two possible remainders -(r 1H "
ri+4{~). is right. And, of course, we can obtain
the right quotient bits. This method is schematically illustrated in Figure 15 where N1,
N2, .... N15 are then times circuits which are
used also in multiplication operation; G1, G2,
G3 are gates which choose the n multiple of
the divisor by the informatio~ of the most significant 5 bits of divisor (Dl, D2, .•.. D5) and
of the 6 bits of the partial remainder (R1, R2,
... R6). AS1, AS2, AS3 are the Adder-Subtracter. and P is a circuit to select the right
partial remainder out of two possible ones.
7. Circuitry
Recent advancement of transistor technique
is remarkable and enables us to' easily realize

202

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

IlL

mm~m.

00000

Divisor Reg (7)

Figure 15. Schematic Diagram of the Division Unit of the 5020E.

the circuit that operates at over 10 Me clock
frequency. Moreover, we have utilized the current switch mode circuit to make the most of
its high speed feature .. :F.orAND..OR logic circuit, however, the diode logic and emitter follower fan out is adopted, based on economy
and logic density vs. speed studies.
Figure 16 illustrates the circuit configuration
of Amp (which is the same circuit as shown
in Figure 10(a), (b» (a), AND-OR logic (b),
and OR-AND logic.
The "zero" level of signal is ground and the
"one" level is + 3 V as is done in other current
switch mode circuitry. The collector of the
amplifier directly drives the signal transmis-

Figure 16. Circuitry of the 5020 Family.

sion lines, which are twisted pairs or coaxial
cables, and the collector load is the matching
resistance (75 or 100) of these lines. The ANDOR logic circuit is driven by EF's (emitter followers) which are almost uniformly distributed
on signal lines, and transform the source impedance to low. The reasons why we do not
drive the line by EF, but from collector directly, are as follows:
i) The maximum fan out of EF is confined
by its Pc (power dissipation of transistor) .
ii) The direct connection of logic input to
transmission line disturbs the line characteristics.
iii) The problem of damping oscillation of
EF is serious.
iv) It is necessary to decrease the collector
load resistance as far as the characteristic impedance of line in order to attain
very high speed switching of transistor,
so our configuration has no losses.
The signal transmission lines are the
foamed polyethylene twisted pair lines
and coaxial cables, whose length, for the
worst case of half phase 2 level logic,
must be less than 1.8m. The output
lines of EF are single lines less than
0.5m length.

VERY HIGH SPEED SERIAL AND SERIAL-PARALLEL COMPUTERS
The computer is fully taken care of
ground construction and power distribution, for these may otherwise cause very
serious problems in very high speed circuit.

203

and troubleshooting without the aid of the central processor.

These, all added up, have sufficient room for
half phase of 18 MC, clock period, that is 27.8
ns. Actual computer system has been operating
with sufficient margin, and proved to be completely feasible.

9. Summary
The paper has described the outline of hardware aspect of the HITAC 5020 and 5020E.
The design goal of this family, such as high
performance per cost, is achieved by 18MC
fully synchronous 2 phase logic circuit, helical
transmission lines for various purpose registers such as accumulators, and serial or serioparallel logic structure. 10 systems are now in
production, the largest system of which will be
installed at the Tokyo University and consists
of a 5020E and two 5020's. This will be one
of the most advanced integrated systems in
Japan, and in the world as well, which is expected to play an important role and contribute
to the advancement of Japanese sciences and
engineerings with its full-fledged power.

8. Core Memory

ACKNOWLEDGMENT

The 5020 Magnetic Core Memory is a wordarranged, linear-:-select system utilizing one fer- rite core per bit in a partially-switched mode.

The aU,thors ~ish to acknowledge Prof. T.
Simauti, St. Paul's University, Tokyo, for his
considerable--£ontribution to the development
of system philosophy and software considerations. Thanks are also due to S. Anraku,
Hitachi Central Laboratory, for his ,yorks in
the logical design, especially in the design of
5020E control unit, to Y. Onishi and lVL Tsutsumi, Hitachi Central Laboratory, for their
memory design wor ks, and to many other
people associated with the 5020 and 5020E
project.

The circuit data of Figure 16, or Figure 10
are shown below.
Ta; delay time of Ampincluding logic witch
clock, 6.5 ns
Ta; delay time of Amp including logic witch
line, 7.5 ns
T; delay time of two levels of pair logic, 8.5
ns

The basic memory module contains 8,192
words (33 bits per word including one parity
check hit) arranged in an array of 4,096
access lines of 66 bits (2 words) each. This
enables the transfer of 2 words or up to 64
consecutive bits per module in a single memory
cycle which is 2.0 microseconds for 5020 and
1.5 microseconds for 5020E. Expansion of
memory capacity can be made in modules or
banks, as described in 2.1. Each 30-18 mil high
speed core in the memory array is threaded
by three windings: One winding each for the
word read and write currents, one winding for
the common sense-digit line whose winding
scheme is such that optimum noise cancellation
is achieved and the rather liny line is properly
terminated in view of the high speed operation
involved. Word selection is accomplished by
Ineans of a large steering diode matrix in conjunction with a transistorized cross-bar switch;
drive current are derived from the constant
current switch, flow into the selected steering
diode, word winding and finally the voltage
switch. The access control and information
flow control for the memory modules are provided for every 16 KW as a unit. The built-in
checkout circuit serves to quick maintenance

REFERENCES
1. Standard EDP Report, "IBM System/360"
(Auerbach Corporation, Phi I a del phi a,
Penna., June 1964).
2. E. BLOCH, "The Engineering Design of the
STRETCH Computer," Proc. EJCC, No. 16,
p. 48,1959.
3. W. BNCHHOLZ, Planning a Computer System (McGraw Hill Book Co., Inc., N. Y.,
1962),chap.7,p.75.
4. I. A. D. LEWIS and F. H. WELLS, Millimicrosecond Pulse Techniques (Pergamon
Press, London, 1959), chap. 2, 3, p. 47.
5. Standard EDP Report, "CDC 3600," ibid.
6. Hitachi Ltd., The Instruction Manual of
HITAC 5020 (Hitachi Ltd., Tokyo, 1963).

IBM SYSTEM!360 ENGINEERING
P. Fagg, J. L. Brown, J. A. Hipp, D. T. Doody
International Business Machines Corporation, Poughkeepsie, New York

and
J. W. Fairclough

International Business Machines Corporation, Winchester, Hampshire, England
and
J. Greene
International Business Machines Corporation, Endicott, New York
micrologic components that were then being
developed by the IBM Components Division.

INTRODUCTION
The cornerstone of the IBM System/360
philosophy is that the arch~tecture of a computer is basically independent of its physical
implementation. 1 Therefore, in System/360,
different physical implementations have been
made of the single architectural definition
which is illustrated in Figure 1.

The
Logic
which
diodes,

most significant features of this Solid
Technology (SLT) are the module,
replaces discrete transistors, resistors,
etc., and the two-layer printed wiring

'tTT'h;n'h ....
.o:n10na..1 ....... n"'+ n-f +'ha
IH"'n
.... a+a UT;1"'a",
rr''ha
... "',t'.1.u-.......... "'" .I..L.l.Vtrr.:)V V..L.
V.I."',",
""" ... .VV.LVU'-'
Y'f.&..L"'JJ_
yy~~.1.\...-.I.J..

..L. ... .L",

modules are a~embled on small cards in
groups or 6, 12, 24, or 36. The small card is
the basic replaceable unit. These small cards,
in turn, plug into large multilayer printed.
circuit cards (approximately 8.5 x 13 inches).
Interconnections between large cards are made
by flat multiconductor tape cables that plug
into large cards in the same way that the small
cards do, and which run in channels between
the large cards. See Figure 2.

One of the initial decisions was the number
of processors to implement.
Specifically,
should it be four or five (considering the Model
60/62 as one). The original decision of five
was based upon a planned increase of about
2.5 to 3 in internal performance between one
model and the next.
Another fundamental decision was to provide full compatibility, both upward and downward, over the entire range of the IBM
System/360. This decision was motivated
primarily by the advantages, both to IBM's
customens and to IBM, of the interchangeability of software.

Experience with read-only storages was derived from an experimental computer built in
1960-1961 at the IBM Hursley Laboratory in
England. There were two major reasons for
the general adoption. of read-only storages in
System/360.

It was clear to Engineering that the cost

1. Assist downward compatibility due to
the cost advantages. Read-only storage
(ROS) showed an advantage in cost over
the circuitry which it replaced. ROS
is used primarily in the control section
of the system and its advantages be-

targets for each model in System/360 would be
feasible only if a significant breakthrough were
made in costs of building transistorized. computers utilizing the IBM SMS technology.
Therefore, we decided in 1961 to utilize the
205

206

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
INPUT -OUTPUT CHANNELS

MAIN STORAGE

SELECTOR CHANNEL
MULTIPLEX CHAN.
MODEL MAX. NUMBER
MAXIMUM MAXIMUM DATA RATE
SUBCHANNELS
PER CHAN. (KC)
NUMBER
30
40
50
60
62
70

250
400
800
1300
1300

2
2
3
6
6
6

96
128
256
_ }NOT
_ AVAILABLE

1300

MODEL

CAPACITY
8-BITBYTES
lK "1024

WIDTH BITS
EXCLUDING
PARITY

30
40
50
60
62
70

8-64K
16 - 2S6K
32 - 256K
128 -5 r2K
256 - 512K
256 - 512K

8
16
32
64
64
64

CYCLE
)jS

2.0

2.S
2.0
2.0
1.0
1.0

t

ADDRESSES
INSTRUCTIONS

DATA FLOW
CONTROL
TYPE

30
40
50
60
62
70

READ ONLY STORE
READ ONLY STORE
READ ONLY STORE
READ ONLY STORE
READ ONLY STORE
SLT CIRCUITS

)II

1.0
0.625
0.5
0.25
0.25

INDEXED
ADDRESSES

30
40
50
60
62
70

8
16 (8 ADDER)
32
64
64
64

30
30
30
10
10
5

-

RELATIVE INTERNAL PERFORMANCE

30
40
50
60
62
70

CIRCUIT DELAY
PER LEVEL, ns

CYCLE

MODEL

MODEL

MODEL

WIDTH BITS
EXCLUDING PARITY

FIXED

Fi gure 1. IBM System/360 Architecture.

comes more pronounced when more functions are to be performed.
Therefore,
ROS units showed a method of maintaining full compatibility by allowing complex function even in the smallest
systems.
2. Flexibility., such as the implementation
of compatibility features with other IBM
systems. A unique flexibility is achieved
by being able to add to the control section of the computer, when implemented
by a ROS, without significantly affecting
the remainder of the system. One result is to allow certain System/360
models to operate as another computer,
such as the 1401, by adding to but without redesigning the system. This ROS
concept can be combined with software

VARIABLE
FIELD LENGTH

GENERAL REGISTERS
(16 It 32)

INTERNAL PERFORMANCE

1
3
10
20
30
50

I

I

I

FLOATING
POINT

FLOATING POINT
REGISTERS (4 x 64)

LOCAL STORE
MODEL
30
40
SO
60
62
70

TYPE
MAIN STORE
CORE ARRAY
CORE ARRAY
SLT REGISTERS
SLT REGISTERS
SLT REGISTERS

WIDTH BITS
EXCLUDING
PARITY
8
16
32
64
64
64

CYCLE
)jl

2.0

1.25
0.5

-

to offer almost any performance from
pure simulation (no ROS) to maximum
performance (no software). When this
can be done with performance equivalent to the original system, it greatly
simplifies the programming conversion
problem by offering essentially two
computers in one. Note that we have
various technologies for the read-only
memory control, including card capacitor, balanced capacitor, and the transformer approach. Certain choices were
made for initial implementation, but it
should be made clear that the choices,
especially in the slow speed unit are not
critical and that more than one technique could be used to give the desired
performance.

IBM SYSTEM 360 ENGINEERING

The concept of architectural compatibility
was carried a step further in the input/output area by the decision to attach the various
units through the same electrical interface.
The major reasons for this decision were the
added flexibility to the IBM customer, and
the greatly reduced number of different
engineering and manufacturing efforts
which would be involved in producing both
the System /360 I/O channels and the many
I/O units.
Other decisions concerned reliability and
maintainability. The primary improvement in
reliability involved the advantages of SLT
over SMS and obtaining more performance
from a given number of components by using
high-speed circuits and storages. An objective
in maintainability was to have hardware and
software not only detect failures, but to localize them to small areas, such as five specific
small cards. A programming system was
created which takes the machine logic, analyzes
it, and automatically produces a set of programs with the proper patterns and expected
results for that specific logic. These fault locat-

207

ing programs (FLT's) are then capable of
being entered to the appropriate computer
(Model 50, 60/62, or 70) and executed with
the assistance of special hardware. This hardware allows setting up the proper patterns in
the various registers, advancing the clock a
controlled number of cycles, logging these registers into main storage, and comparing the
actual versus expected results. The programming system allows for updating these FLTs
with engineering changes, and they offer a
powerful diagnostic tool in localizing failures.
SYSTEM/360 MODEL 30
Model 30, the smallest member of the System/360 line, was designed for the market area
currently served by the IBM 1401,1440, 1460,
and 1620. The design objective was, of course,
complete function and compatibility with other
System/360 models. However, System/360
architecture includes 142 instructions, decimal,
binary, and floating-point arithmetic, complete
interruption facilities, overlapped channels,
storage .protection, and "other features normallyfound in more expensive computers.
This made maintenance of full compatibility,

Figure 2. Solid Logic Technology (SLT).

208

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

Figure 2b.

,
•

Figure 2c.

IBM SYSTEM 360 ENGINEERING

while achieving the required cost and performance objectives, a very difficult task.
Therefore, a number of different hardware
configurations were examined. Data paths
and storages from four to sixteen bits. wide;
table lookup addition and logical operations;
registers built in SLT hardware, in main storage and in a separate high-speed storage, were
studied in detail to arrive at a configuration
that would meet the cost performance objectives. The availability of the 2-p,sec. storage
at an acceptable cost was also established at
this tim:e and became an overwhelming factor
in our; selections.
The, key engineering decisions which established Model 30 characteristics were:
1. Selection of an 8-bit wide, plus parity,
2-,p,sec storage unit, 64K bytes maximum,
2. Use of 8-bit wide, plus parity, data path,
3. Use of 30-nsec SLT circuits,
4. Implementation of "local storage" in
main storage,
5. Use of a 1-p,sec ROS for control,
6. Provide· integrated, time-shared, multiplex and selector channels,
7. Provide for complete processor growth in
in a single frame,
8. Utilize "byte" packaging to facilitate
checking and fault location.

"By-te" packaging means placing all the circuits required for eight data bits plus parity
on one pluggable small card. This concept,
along with micro-program diagnostics, permits fault location to a resolution that averages
five small cards.
A simplified data-flow diagram ,of the Model
30 processor is shown in Figure 3. The fourteen 8-bit registers, with the 8-bit AL U and
8-bit storage, provide all the functions for the
CPU and multiplex channel. Additional registers ,or buffers are required for selector
channe.ls,: direct control, interval' timer, and
storage-protection features.
Figure 4 is a map of local storage, which is
actually an extension of the main storage unit.
The first 256 bytes are utilized by the processor
for general registers, floating-point registers,
interim storage during multiply time shar-

209

ing, and other scratch-pad functions. The
second 256 bytes are used by the multiplex
channel for channel-control words. Additional
control-word storage is available in larger
storage sizes.
The multiplex channel time shares the processor registers by interrupting the microprogram, holding the return address, storing the
registers in local storage, and then at completion of the I/O operation, restoring the registers to their original state. This is analogous
to a macroprogram interrput.
TIMING AND ROS CONTROL
The basic timing is established by the 1-p,sec
read-only storage. The main storage provides
the read-write cycle in 2 p,sec and a read-compute-write cycle in 3 p,sec. Within the 1-p,sec
ROS cycle are four 250-nsec timing pulses.
The read only storage in the Model 30 is a
card capacitor ROS containing a maximum of
8,000 words with 64 bits per word.
The capacitor ROS consists of a matrix of
drive lines an<;l sense lines with capacitors at
the intersections where a one is required, and
no capacitors at those intersections requiring
a zero. The voltage change on a drive wire
will cause capacitive current to flow in those
sense lines which are coupled to that particular drive wire by a c,apacitor. In the card
capacitor store, the 64 sense lines and one plate
of each capacitor are printed on an epoxy glass
board bonded to a sheet of dielectric material.
The drive wires and the other plate of the
capacitors are printed on mylar cards (program cards) the size of a standard IBM card
(see Figure 5).
Each program card is punched with the information pattern specified by the micro-code
and contains 12 ROS words. A capacitor plate
is punched out at an intersection where a zero
is to be stored; thus, an unpunched card will
give all ones and punching a hole gives a zero
at that bit in the word. Microprogram changes
can be made by inserting new program cards.
MICROPROGRAM
A single microprogram instruction can initiate a storage operation, gate operands to the

210

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

ALU

A
TOW

TOX

TIC

B
B

NEXT ROS
ADDRESS

CN

ROS
BRANCH

CL

ROS
BRANCH

CH

STAT SET

CS

SOURCE "A"

CA

"A" INPUT CTL

CF

SOURCE "B"

CB

"B" INPUT CTL

CG

STORAGE
DATA
BUSS
STORAGE INHIBIT BUSS

CONSTANT

CK~--.

CARRY CTL

CC

TIC ALU CTL

CV

oEST.

"0"

CD

STORAGE
ADDRESS REG.
INH SELECT

CM

LOCAL/MAIN
DEST. CTL.

CU

FROM

U V

X BUSS
WBUSS

Figure 3. System/360 Model 30 Data Flow.

IBM SYSTEM 360 ENGINEERING

4;: 6

211

INTP STATUS

0
OX

LOCAL
STORAGE

I

2

G.P. REG

3
0

lX

I

2X

2

7

f

I

X

8

9

I x+llx+2

10

II

12

13

14

IS

FLOATING POINT REG. 0
0111213141S1617
FLOATING POINT REG. 2

10SO USE

'3X

3

4X

4

FLOATING POINT REG. 4

SX

S

16 I 17 I 18 I 19 120 121 122 123

6X

6

FLOATING POINT REG. 6

7X

7

24 I 2S I 26 I 27 I 28 I 29 I 30 I 3 I

8X

8

9X

9

lOX

10

IIX

II

8 I 9

o

110 III 112 113 I 14 liS

1 L i S I v lUi

G1 J

I

....
....
....
....

K ADDRESSABLE LOCAL
STORAGE BYTES, FOR
TEMPORARY STORAGE OF
INSTRUCTION COUNTER,
STORAGE PROTECTION
MASK, SELECTOR AND
MULTIPLEX CHANNEL
INFORMATION, CONDITION
REGISTER, ETC.

I

l
T

12X

12

13X

13

14X

14

ISX

IS

OX
1)(

MPX
STORAGE

CPU STORAGE DURING MPLX
SHARE

UNIT CONTROL WORD

I

CPU WORKING STORAGE

0

UNIT CONTROL WORD 16

1

17

2X

2

18

3X

3

19

4X

4

20

SX

S

21

6X

6

22

7X

7

23

8X

8

24

9

2S

9X

In

1:~~I~------------------i-j----r------------------~-~--~
,),c,

Figure 4. Model 30 Local Storage,.

ALU input registers, select the ALU function,
store the result in the destination register, and
determine the next micro-word to read from
read-only storage. Each ROS. word is decoded
to operate the gates and control points in that
system. A brief description of the branch,
function and storage-control fields in each ROS
word follows.

Branch Control
The branch control fields provide the address
of the next ROS word to be executed. A ROS
address is a 13-bit binary number. Normally the branch control group provides
only 8 bits (leaving 5 bits unchanged) of

next address information. Of these 8 bits,
the low-order 2 are called "branch" bits and
the remaining 6 are called "next address" bits.
The 6 "next address" bits are specified directly
in a 6-bit field. The two "branch" bits are
speficied by two 4-bit fields. These two fields
are decoded and used in masking and extracting machine conditions and status conditions
contained in data-flow registers G and S.
Another 4-bit branch control group provides
the function of setting several variables to desired values for later use in microprogram
branching.

212

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

MYLAR PROGRAM CARD

~:iE CAPACITANCE

EPOXY GLAss
SENSE PLANE

CONNECTION
TABS

Figure 5. Model 30 Card Capacitor Read-Only Storage.

In summary, every ROS word provides a
branchjng ability. The branch can be 4-way,
2-way, or I-way (simple next address). A
partial next address is normally used, but provision is made for obtaining a full 13-bit next
address when required. The total length of
the branch control group is 18 bits, plus 1
parity bit.

Function Control
The function control· group is subdivided
into four fields: source A, source B, operation,
and destination.
1. Source A (CA)
This 4-bit field selects one of the 10- hardware registers to be gated to the A input
of the ALU.
2. (CF)
The 8 data bits from a register can be
presented to the A input "straight" or
they can be presented "crossed." The
term· "crossed" means that the high-

order four bits of the source register
enter the low-order four bits of the ALU,
and the low-order four bits of the source
register enter the high-order four bits of
the ALU. The A input can further be
controlled by presenting all eight bits,
the low-order four only, the high-order
four only, or none, to the ALU.
3. Source B (CB)
This 3-bit field selects one of three registers to be presented to the B input of the
ALU. The B input is the "true/complement" input and has HI/LO controls
but no straight/crossed controls.
4. (CG)
This field controls the gating of the B
input to the ALU. That is, the low-order
four bits only, the high-order four bits
only, all eight bits, or none of the eight
bits of B may be presented to the ALU.
5. Constant Generator (CK)
This field is gated to the B buss, main
core STAR and ROSAR, thus providing

IBM SYSTEM 360 ENGINEERING

a source for constants, mask configurations, and address constants.
6. Carry (CC)
This 3-bit field controls carry in, AND,
OR, EXCLUSIVE OR functions and permits the setting of carry out into the
carry latch, if desired.
7. True / Complement & Binary / Decimal
Control (CV)
This 2-bit field controls the true/ complement entry of the B input to the ALU,
also whether the operation is decimal or
binary.
8. Destination (CD)
This 4-bit field selects one of the 10 hardware registers to receive the output of
the ALU. A given register may be used
both as a source and as the destination
during a single ROS cycle.
In summary, the Operation group specifies
one of ADD binary, ADD decimal, AND, OR,
or EXCLUSIVE OR. It also specifies true
or complement; 0 or 1 carry input; save or
ignore resulting carry; use true/complement
latch; and use carry latch.
Storage Control.'J
(CM) (CU)
These two fields control core storage operation. Either main storage, local storage, or
MPX (for I/O) storage can be addressed for
storage read-write calls; five values of CM
are used to specify the address register to be
gated to STAR.

An example of the sequence of ROS control,
Figure 6, shows an ADD cycle using a simplified data flow.
Step i-As the routine is entered, the con-

tents of UV are gated to the STAR, a read call
is issued to main storage, and register V is
decremented by 1.
Step 2-The A-field data is regenerated in

storage and the A-field data byte is transferred
from register R to D.
Step 3-The contents of IJ are gated to STAR,

a read call is issued and J (lower -4 bits) are
put in Z.
Step 4-Z is tested for 0 to set up the branch

condition at the next step, the B-field data byte

213

is read out (R) to the adder, as are the Dregister contents (A-field data) and the carry
from a previous cycle. The output (Z) is gated
into R.
Step 5-If the zero test of A in Step 4 is true,-a

write into the B field is performed (the address
is still in STAR), J is decremented by 1 and the
routine is repeated. If the zero test of Z in step
4 is false, then' a branch is made to the write
call and the routine is exited.
As an example of Model 30 microcoding
efficiency, the execute portion of a fixed-point
binary add uses approximately 20 words. However, the add can be combined with 13 additional operation-code executions, such as subtract, AND, OR, EXCLUSIVE OR, etc., using a
total of 45 words. A one-half word multiply
giving a full-word product requires about 95
words. The total floating-point feature, which
utilizes the fixed-point microprograms, requires
approximately 500 words. It should be recognized that the microprogrammer has the choice
of optimizing for minimum words or maximum
performance.
IBM 1401/40/60
FEATURES

COMPATIBILITY

It was a market requirement that Model 30
execute the IBIVI 140.1-40/60. instructions directly. Further, it was desired to provide these
features without disturbing the Model 30 design, which was optimized for System/360 requirements. As a result, these features are
provided by an addition of only four circuit
cards plus extensive microprograms.

The general approach utilizes the following:
1. System/360 input-output devices,
2. Conversion tables in local storage,
3. Microprogram decoding and execution of
the instructions directly.
The internal performance is several times the
1401, based on a typical mix of instructions
found in 1401 programs. For individual instructions, however, the speed ratio varies
widely.
Method

The internal code used in Model 30 for the
compatibility feature is EBCDIC and, further,
Model 30 has a binary-addressed storage. Thus,

214

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

ALU OUTPUT BUSS (Z)

U, V - ADDR. A FIELD
I J - ADDR. B FIELD
ALU

A INPUT

OP - ADD
END-LOW 4 BITS OF
J-EQUAL 0

BINPUT

SENSE OUT

INHIBIT

CORE
STORAGE

STAR = UV
RD
V = V- 1

I

READ

1/
I

WRITE

I
I

I

WR
D=R

I

~

V
I

I

I

~
~
I

STAR = IJ
RD
Z'" J (L)

R=R+D+C

I

~

I
I
I

I
I

I

V
I

I
I
I

'{I

Figure 6. Model 30 Read-Only Storage ADD Cycle.

a certain amount of translation of character
codes and conversion of numbers from decimal
to binary radix, and back again, takes place
during processing. These conversions and
translations are accomplished by table look-up,
using the tables in local storage. These tables
are read into storage as part of the special load
procedure required prior to execution of a 1401
program. The table used to translate the
EBCDIC to BCD requires 128 characters. It is
used ·during the execution of 1401 instructions
such as bit test, move zone and move numeric,
which depend on the actual bit coding.
A 72-byte table is required to hold the constants used to convert the 1401 decimal ad-

dresses to binary addresses and the converse.
This conversion takes place at execute time,
hence the programs can operate correctly no
matter what methods are used in the 1401 program to generate or modify addresses. Each
conversion requires from 6 to 12 microseconds
depending on the value of the address.
Other functions which utilize tables are op
decode and I/O device address assignment. Additional areas in local storage are used for hardware register back-up, sense switches, system
specification, and working area. While most of
the available 512 bytes of local storage are used,
no main storage is used. Hence, an 8K 1401
program will run on an 8K Model 30.

IBM SYSTEM 360 ENGINEERING

Each input or output device type has an individual microprogram routine. Most devices are
attached to the Model 30 multiplex channel.
Magnetic tapes are also available on selector
channels. The throughput for the compatibility
feature requires an analysis of the particular
I/O devices used and the particular program
being run. However, in every practical case it
will exceed the system being simulated.
SUMMARY
The Model 30 effort has helped to prove two
points:
1. Small systems, with the extensive function and facility of the largest systems,
are practical.
2. The microprogram control is sufficiently
general that a good system design can be
used to simulate a wide variety of architecture.
SYSTEM/360 MODEL 40
The performance of Model 40 is approximately three times that of Model 30. To attain
this performance at minimum cost, four major
design decisions were important.
1. The adoption of a 16-bit-wide storage of
2.5 p'sec together with a basic 16-bit wide
data flow; implemented in 30-nsee SLT
circuits, provided an optimum configuration.
2. A 0.625 p.,sec read-only storage as a means
of control for all CPU functions was used
because this technique offered significant
advantages in cost, flexibility, and design
freedom, compared with more orthodox
. control systems.
3. The inclusion of a 1.25 p., sec local storage
of one hundred forty-four 21-bit words to
provide general register storage. This
resulted in a considerable reduction in
accesses to main storage.
4. By using the local storage to preserve the
contents of the CPU during channel operations, much of the CPU data flow can
be used for channel functions, thus considerably reducing the cost of channels.
MICROPROGRAMMING
Microcoded programs, physically residing in
permanent form in a transformer read-only

215

storage (TROS), form the heart of the control
section of the Model 40. To reduce the resulting
physical changes associated with changes in the
microprograms, the microprogram design is
automated and debugged before actual physical
implementation by means of an IBM 7090 programming system, the Control Automation System (CAS). CAS is utilized not only by Model
40, but by all the System/360 models using ROS
control.
The basic input to the system is a logic sketch
page produced by the microprogrammer. The
separate micro-instructions are written on this
page in a formal language, TACT. When this
initial writing phase is complete, the page is
transcribed into punched cards. The control
program for the 7090 is directly derived from
the Model 40 control signal specification and
acts as a set of inviolable rules. Within this
framework, and using associated established
microprograms for reference where necessary,
the 7090 simulates the Model 40 and attempts
to run the microprogram using submitted data.
Errors or violations are detected, stop the program, and cause a diagnostic analysis routine
to be entered.
Facilities are available for various printouts
to provide for analysis and subsequent correction.
The debugged microprogram, in the form of
magnetic tape, is submitted to assignment
checking. This operational phase checks the
manual assignment of the absolute address given to each ROS word, and produces listings giving the absolute address and binary bit pattern
of each assigned ROS word. Two decks of cards
are also produced and used in the production
and testing of the read-only storage.
An output of the CAS program is a fullychecked and redrawn version of the original
logical sketch page. If microprograms are subsequently updated, a revised CAS page is automatically printed on receipt of change.
TROS
The finally-debugged microprogram is translated into a series of micro-instructions, held in
read-only storage.
In Model 40, this takes the form of a transformer read-only storage-TROS. TROS is

216

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

made up of 16 modules, each containing 256
ROS words (micro-instructions) to make a
total capacity of 4096 words. Each module is
made up of 128 tapes, each tape containing two
words. The word tape carries two ladder networks, each of which, after modification, holds
the bit pattern derived from a specific microinstruction.
The tapes are stacked in a module, as shown
in Figure 7, with transformers inserted
through the prepared holes in the tapes. These
54 transformers are in the form of U and I
cores. The I cores carry the sense windings.
Each stage of the ladder network corresponds
to one bit position of the ROS word. Whether
the bit is a 1 or a 0 is determined by breaking
the current path on one side of the ladder with
a punched hole through the printed wiring, so
that the current then either passes through the
core for a 1 or bypasses it for a O.
Signals are taken from the tapes to the sense
amplifiers, the outputs of which are used to set
54 latches.
The total cycle time of the TROS and the
basic cycle time of the CPU are both 625 nsec.

Normally, there are four 625-nsec TROS cycles
for each 2.5-/1 sec main storage cycle.

It is possible, by the inclusion of a feature
which adds additional ROS modules, to simulate
other equipment, such as the 1401 or the 1410.
This enables programs written for these machines to be run on the Model 40. Model 40
implements these features by microprogramming and conventional programming; Model 30
utilizes microprogramming exclusively. For example: the input/output and edit commands
in the 1401 simulated on the Model 40 are executed with System/360 programming, while
most of the remainder of the 1401 instructions
are microcoded.
The primary reason for adopting this approach in the Model 40 is to reduce the added
TROS requirements and the ensuing packaging
problems and costs.
DATA FLOW
Figure 8 is a schematic representation of the
Model 40 data flow.
The data flow may be divided into sections
characterized by their data-handling capabilities:
1. one-byte arithmetic handling (8 bits plus

2.
3.
4.

5.

parity) ,
one-byte local storage addressing,
two-byte storage addressing and data input/output referencing,
one-byte service for the channel data and
one-byte service for flags related to the
channel interface,
two-byte data flow to and from local
storage.

One-Byte Data Flow
One-byte arithmetic handling is performed
by the arithmetic and logical unit (ALU). The
ALU is a one-byte-wide adder/subtracter which
operates in either decimal or hexadecimal mode.
It is capable of producing both arithmetical
and logical combinations of the input data
streams and is checked by means of two-wire
logic, where one true and one complement signal is expected on each pair of wires.
Figure 7. System/360 Model 40 Transformer
Read-Only Storage.

Data bytes are fed to the P and Q busses
from the associated registers or from the emit

217

IBM SYSTEM 360 ENGINEERING

LOCAL STORAGE

field of the current micro-instruction. The data
are then manipulated by the ALU in accordance
with the content of the ROS control word.
Several instructions may have common microprogram subroutines in which the difference
lies only in the ALU function. One of 16 different ALU functions is preset by a 4-bit field
in a ROS control word executed before branching to the common subroutines.

This is a small, high-speed storage which provides registers for fixed and floating-point operations, channel operations, dumping of CPU
working register contents, interrupts, and for
general working areas. Only the fixed and floating-point locations are addressable by the main
program.

Two-Byte Data Flow
Data transfers between local storage, channel
registers, CPU registers and main storage are
carried out in two-byte steps.

The ferrite local store contains 144 locations
allocated as shown in Figure 9. Each location
is 21 bits long. Addressing is completely r~n­
dom and the unit may be split-cycled with reador-write operations in any sequence. A read-

STORE
PROTECT

MAIN STORE
2.5 PSt CYCLE
1881TS

~

BUMP
Q BUS (9 BITS)

1

P BUS (9 BITS)

DIRECT CONTROl
INPUT
REGISTER 0-7

.-J

DIRECT IN

·1

DIRECT OUT

DIRECT CONTROL
OUTPUT
REGISTER 0-7

I

I
Pt O-17
A
REGISTER

Pt O-15
B
REGISTER

ARiTHMETiC

I

I

AND LOGIC UNIT
Pt O-7

I

I

Pt O-17
C
REGISTER

-

Pt O-15
D
REGISTER

I

R BUS (21 BITS)

MPX OUT
SELECT IN
SELECT OUT

1

INCREMENT

SELECTOR
CHANNEL DATA
REGISTER P,O-7

,.

..
MPXIN

I
H

J
P,O-7 P,O-7

LOCAL
STORE
ADDRESS
REGISTER
P,O-7

-

Figure 8. Model 40 Data Flow.

P,O-17
R
REGISTER

READ ONLY
ADDRESS
REGISTER P,O-II

LOCAL
STORE
144 WORDS
21 BITS

READ
ONLY
STORE
P,O-52

-

CONTROL

218

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

000

064
066
067
WORK
AREA

PROGRAM
STATUS
WORD
071
072
073

009

WORK AREA IN
UNDEFINED STATE

WORK
AREA
AND
LOG OUT
AREA

START 1/0 SWITCH

FLOATING
POINT
REGISTERS

1 ST LEVEL
DUMP AREA

015
016

031
032
SELECTOR CHANNEL 1
UNIT CONTROL
WORD
037
038
SELECTOR
CHANNEL 1
BUFFER

MULTIPLEX CHANNEL
WORD AREA
041
042

FIXED

INTERRUPT BUFFER

043
UNASSIGNED
047

III

048

112

POINT

SELECTOR CHANNEL 2
UNIT CONTROL
WORD
053
054
SELECTOR
CHANNEL 2
BUFFER

UNASSIGNED
056
057

2ND LEVEL
DUMP AREA
063

127

ADDRESSES IN DECIMAL

Figure 9. Model 40 Local Storage.

REGISTERS

IBM SYSTEM 360 ENGINEERING

or-write cycle requires 625 nsec. A complete
read-and-write cycle therefore takes 1.25 p.. sec.
One example of use of the local store is the
double-dump routine executed under certain
types of channel operation. If the machine is
currently in CPU mode and a multiplex channel
interrupt occurs, all data relevant to the current
CPU operation are dumped in the local storage
first-level dump area. If, subsequently, a selector channel interrupt occurs, all data relative
to the multiplex service are dumped, and the
selector channel is serviced. When all selector
channel operations are complete the multiplex
data are restored and multiplex servicing is
continued. Similarly, when mUltiplex servicing
is complete, CPU data are restored and CPU
operation is resumed.
MAIN STORAGE
The main storage array (2.5-p.. sec cycle, 1.25p.. sec access) of the machine is divided into two
logical sections. These are the true main storage, and a special area of 256-2048 bytes,
called the bump storage. The bump storage is
used to hold channel control words used in multiplex channel operations and is accessible by
the microprogram only.
CHANNELS
Multiplex Channel
The multiplex channel is an extension of the
CPU in the sense that .the regular CPU data
flow and microprogram are used for all data
transfers. This channel, which allows a number
(maximum of 128) of relatively low-speed units
to be operating simultaneously, normally scans
all attached control units continuously. When
a device reaches the point where it needs to
send or receive a byte of data, its control unit
intercepts the first available scanning signal
and transmits the unit address to the CPU. The
CPU data flow is then cleared and retained in
the local store using the dump routine. After
the byte transfer has been completed, the control unit and device disconnect from the channel, permitting scanning of other devices to be
resumed, and the CPU processing to continue.
Selector Channels
Two types of selector channels are available
on Model 40, the A channel and the B channel.

219

They differ in that the CPU interference caused
by I/O operations on the B channel is approximately one third of that caused by the A
channel.
The A channel time-shares the CPU data flow
and microprogram to a high degree. Data bytes
are never transferred directly between main
storage and the interface busses, but move via a
16-byte buffer in the Model 40 local storage.
The transfer between interface and buffer is
conducted serially, by byte, at the rate dictated
by the I/O device. Each transfer causes the
microprogram to hesitate one 625-nsec cycle.
When the 16-byte buffer is half full, the channel
requests the use of the microprogram and CPU
data flow. Up to 12 microprogram cycles are
required to preserve the current contents of the
data-flow registers and to load the control word.
The 8-16 bytes in the buffer are transferred 2
bytes per storage cycle to main storage as a
block, at a rate of 2 bytes every 2.5 microseconds
The B Channel is more conventional; it uses
SLT hardware and does not use the local storage as a buffer. Data is transferred to main
storage as soon as two bytes are accumulated.
Interference is basically constant at 1.25 p'sec
per byte.
SYSTEM MAINTAlNABILITY
One of the more unique features of Model 40
maintenance hardware is the use of the readonly storage as a source of diagnostic routines.
One module of the TROS contains a complete
set of tests to validate the CPU, local and main
storages. These tests are automatically applied
each time the system reset is operated to ensure
an operational machine.
SYSTEM/360 MODEL 50
The performance range of System/360 Model
50 is approximately ten times the Model 30.
A review of the following key engineering
decisions will highlight the distinguishing characteristics and engineering achievements of
Model 50.
1. The 30-nsec family of SLT circuits is
used.

220

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

2. A small, 0.5 p,sec, local core storage contains the general purpose and floatingpoint registers.
3. A relatively low-cost 2.0 p,sec. main storage is used.
4. The data paths, local storage and main
storage are" each 32 bits wide (plus 4
parity bits) .
5. A 0.5 p,sec read-only storage provides sequence control throughout.
6. Both selector and multiplexor type channels are provided to cover a wide performance range.
7. The CPU and channels utilize common
hardware, yet maintain substantially
overlapped operation.
8. The CPU, channels, and storage are
packaged in a unified structure.
CENTRAL PROCESSING UNIT
The first four decisions are highly interdependent and were reached somewhat simultaneously to produce a system in the right cost and
performance range, utilizing components that
would be available at the right time and that
would fit together in a good physical and speed
relationship. These components were selected
on the basis of good performance per-unit-cost
and a balanced design, rather than for performance alone.
The choice of the 30-nsec family of circuits
allowed an internal clock cycle from register
through adder and back into register of 500
nsec. This family of circuits provides the combination of compact packaging, good fan in-fan
out ratios, and low power dissipation, with a
nominal delay per stage of 30 nsec.

.,,1__-

Figure 10. Solid Logic Technology 30-nsec AOI Circuit.

isters, the main storage, and the local storage
are all 32-bits wide plus 4 parity bits. An
auxiliary 8-bit data path through a logical
processing unit, called the mover, is provided
for processing variable field length information. This path allows a byte to be selected
from each of two working registers under control of two byte counters. The two bytes can
then be combined in a variety of logical functions and returned to one of the working registers. With the mover, decimal operands are
first aligned in the working registers, then
processed arithmetically 32 bits at a time using
the main adder.

A typical 30-nanosecond SLT module is illustrated in Figure 10, together with its circuit
diagram. Such a module has a power dissipation of approximately 30 milliwatts and allows
a fan-out factor ef 5 and a fan-in to the OR of
5. The fan-in to the AND is limited only by
packaging considerations.

The main 2-p,sec storage unit for the Mod 50
is approximately 32" x 14" x 26"; a reduction
by one-third the physical size of the 7090 storage (Figure 12). It is available in capacities
of 64K, 128K, and 256K bytes (8 bits plus
parity). Bump storage which is part of main
storage is used to hold channel control words
for multiplex channel operations. Bump storage area of 1024 to 4096 bytes is accessible only
by microprogram control and not by the problem program. The use of a combined senseinhibit line allowed a three-wire ferrite core
plane which can be machine wired.

Figure 11 illustrates the basic Model 50 data
flow. The main adder path, the working reg-

The local storage contains 64 thirty-six bit
words (32 plus parity) and has a read-write

IBM SYSTEM 360 ENGINEERING

cycle time of 500 nsee. This ferrite core storage
unit provides working locations for the CPU
and channels, as well as the general and floating point registers. Regeneration from either
the L or R register allows a swap of information between the CPU and local storage on a
single cycle.

221

organizing influence on the design procedure.
It not only forced a centralization of all controls, but· also forced an early definition of all
gate signals thereby allowing the design to proceed independently in several areas of the machine. Additional benefits resulted from the
use of the Control Automation System (CAS).
This system not only provides the necessary
record-keeping and generation of manufacturing information for the read-only storage, but
also provides documentation of the instruction

READ-ONLY. STORAGE
The decision to use a read-only storage for
sequence control produced a great unifying and

--L

L2

=+~

I

L.S. ADDRJ
REG.

i

LOCAL STORAGE
32 PLUS PARITY

+

+

~I II

II

+
-A.

+

~

A~~;..

iii

STO!AGE

~~:.

1

t

I

i

i

I

L REG.

i iI IIIi I~I
Ii i
I
R REG.

-r -

T

MD

i

1M REG.

F

-tT-

L..:l_T
I

I

I

f COUNTER

-.i
MAIN
STORAGE

ADDER
32 PLUS PARITY

I

I

STORAGE
DATA REG.
32 PLUS
PARITY

I

+
SHIFTER

,

I

LATCH

-

..L

I

+
I

~-

I

I

I
i

H REG.

I

~

~

MOVER
8 PLUS
PARITY

X

I

.r:-

i

FROM
MULTIPLEXOR
CHANNEL

TRUE/
COMPLEMENT
GATE

I

I I
i

TO
SELECTOR
CHANNELS

l---i..

1

I
TO
MULTIPLEXOR
CHANNEL

LATCH

I

+
FROM
SELECTOR
CHANNELS

Figure 11. System/360 Model 50 Data Flow.

222

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

drive lines running vertically and the sense
lines horizontally. Approximately a 5-inch
pound torque is applied to a system of pressure
pads to maintain constant pressure between the
two plates.
Thus, switching on the array driver provides
a change in voltage that is capacitively coupled
from the drive line to the sense line. For impedance-matching purposes in the sensing circuits, a balancing line is used in conjunction
with each drive line. The appropriate location
of the bit tabs determines whether the signal
received by the sense amplifier is a 1 or a O.

Figure 12. Physical Comparison Model 50 and
IBM 7090.

sequences and allows complete simulation of
these sequences before producing hardware.
The balanced capacitor technology is used in
the read-only storage unit of the Model 50. A
bit plate contains the information content of
the storage in the form of tiny tabs attached to
a long electrical drive line (see Figure 13).
These are etched on a glass epoxy plate by a
process similar to that from which printed circuit cards are manufactured. This bit plate is
covered by a sheet of I-mil mylar which forms
the dielectric of the capacitor. The bit-plate tab
forms one plate of this capacitor and a sense
line running orthogonally to the drive line
forms the other plate.
The sense lines are also etched lines. A pair
of these lines form inputs to the base and
emitter of a differential amplifier at one end
and are terminated to ground at the other end.
One sense plate contains 400 parallel sense
lines.
The bit plates lie over the sense plates and
are separated by the I-mil mylar, with the

The read-only storage of the Model 50 contains 2816 words of 90 bits each. It has a cycle
time of 500 nsec and an access time of 200 nsec.
To allow the result of one cycle to immediately
influence the choice of the next, two words are
read from storage simultaneously, and a choice
between them is made on the basis of the result
of the first cycle. The chosen word then controls the second cycle. This technique allows
the same speed to be'maintained as if sequential
logic circuit controls were used.
CHANNELS
A wide range of channel performance is provided in the Model 50 by the inclusion of two
quite different channel designs. Both types of
channels allow a substantial overlap with CPU
operations.
The multiplexor channel provides concurrent
operation of multiple low to medium speed devices. It makes extensive use of CPU hardware
and contains relatively little hardware of its
own. (Example: Local storage and some CPU
registers are used as working locations.) The
control words for each operating device are
held in an extension to main storage called
bump storage. As each byte is handled, the
channel takes control of the CPU and obtains
the required control word from bump storage.
The CPU registers required for the operation
are dumped into local store. The multiplexor
channel can also operate with a single higher
speed device in a "burst" mode. In this mode
the control word is held in local storage to speed
the operation, but bytes are still handled one
at a time.

223

IBM SYSTEM 360 ENGINEERING

{

TO

TO TERM.
RESISTOR
+6 VOLTS

a

r

TOTERM.
RESISTOR
+6 VOLTS

a

TO TERM.
RES. GND.

a

r

SENSE!
AMP
(A)

TO TERM.
RES.
GND.

-=-

B( + PADS

a

TO TERM.
RES. GND.

a

TO
SENSE
AMP
(B)

:?~E,~~EJL-'
~Mr-. \'"

1
y

TO ARRAY
DRIVER

(X)

TO TERM.
RES. GND.

a

DRIVE
BALANCE
LINE

1

TO ARRAY
DRIVER
(Y)

r~~~~E
TO ARRAY
DRIVER

.ZERO"/lJ------- O-~
BIT

TO ARRAY
DRIVER (X)

DRIVE BALANCE
LINE

(Z)

Figure 13. Model 40 Capacitor Read-Only Storage.

High speed I/O devices use the selector channels (up to three are attachable) which can
handle 8-bit data up to an 800 KC byte rate.
These channels contain sufficient hardware to
assemble a full word of data before requiring
the main storage or CPU facilities. Controlword information is retained in hardware instead of local storage. CPU facilities are used
only when transferring a word to storage or
chaining between I/O commands, resulting in
a much higher maximum data rate than the
multiplexor channel.
An additional selector channel is available
which operates in a lockout fashion a;nd is
capable of operating at a data rate up to 1.3 mc.

MAINTENANCE
Four decisions stand out in the maintenance
area. They are:

224

PROCEEIHNGS-F ALL JOINT COMPUTER CONFERENCE, 1964

1. The decision to include a hardware Log

In-Log Out system for the execution of
fault location tests (FLT's). An integrated approach (using the read-only
storage to control FLT sequencing and log
paths, and using existing hardware where
feasible) reduced the cost from being excessive to being defendable, and in addition provided better fault resolution than
conventional diagnostics. The FLT's can
provide fault localization to within a few
small cards, on the average, and have the
additional advantage of being automatically produced and updated. The Log
Out system is also used with the error
checking circuits, to provide a complete
snapshot of internal status at time of
error.
2. Use of a Progressiive Scan technique
provides a reasonable means of running
fault-location tests on channel hardware; with resultant improved fault
resolution, thus the entire processor

can be examined with high resolution,
non-functional test.
3. The DIAGNOSE instruction allows the
initiation of any micro instructions,
in any order. This permits integration
of the control of various maintenance
techniques into the read-only storage.
This instruction gives the diagnostic
programmer a power tool.
4. The decision to allow for single-man
servicing. This is made possible by
bringing all controls and indicators
together on a single system control
panel which is usable in two positions;
the normal operating position, and
swung left 1800 so that it faces the principle servicing area (CPU logic, main
storage, and channel hardware). See
Figure 14. The small logic cards, which
are the principle replaceable item, are
easily accessible, with the majority
located on the outer sides of the gates.

Figure 14. Model 50 System Control Panel (Open Position).

IBM SYSTEM 360 ENGINEERING

SYSTEM/360 MODELS 60/62
Models 60/62 are large-scale processors with
performances that are approximately 20 and 30
times that of Model 30.
Basic design considerations are:
1. Main storage speeds of 2 p,sec and 1 p,sec.
2. High-speed circuit family with nominal
delay of 10 nsec per logical block,
3. Local storage in transistors, with 125nsec access and non-destructive read,
4. Read-only storage control of CPU functions at a 250-nsec cycle,
5. 64-bit-wide storage, plus 8 parity bits;
64-bit data flow, plus 8 parity bits.
Models 60/62 attach stand-alone storage and
channel units compared to the integrated designs of the smaller models in System/360. The
entire instruction set is standard. Model 60 is
equipped with a 2-p,sec main storage packaged
in two separate frames. Address interleaving
between the frames increases the effective
speed of storage. The combined capacity of the
storage frames varies and is available in 128K,
256K, or 512K byte sizes. Input-output control
is provided through a channel capable of handling 8-bit data at a lo3-mc byte rate. Up to 6
channels are attachable and capable of operating simultaneously. Information is passed
between storage and channel on a 72-bit, double-word basis, minimizing interference with
operating programs. High-speed I/O devices,
tapes, disks, and drums are primarily intended
for direct attachment to the channel. Slower
speed units, terminals, peripheral readers,
punches, and printers, attach to smaller System/360 Models which, in turn, may be connected to one of the Model 60 channels in a
multiprocessing arrangement.
Model 62 differs from Model 60 only in the
speed and configuration of the main storage.
The 1-p,sec storage associated with this model
is available in 256K-byte, self-contained units.
A maximum of two of these units is directly
attachable, providing 512K bytes of storage.
The addressing is conventional and is accomplished without interleaving.
TECHNOLOGIES UTILIZED
The foundation of the central processing unit
design is a basic building block or module con-

225

taining four logical diodes with load resistors,
one emitter follower and inverter transistor,
plus three control diodes fabricated ona single
substrate. This device houses the primary circuit used almost exclusively in Models 60/62.
Variations of diode and transistor arrangements exist within the same circuit family and
these different module types equip the logician
with a full array of AND-OR design elements.
The basic block has a nominal delay of 10 nsec.
Signal swings vary from + 1 to +3 volts. The
circuits display good noise-rejection characteristics in that worst-case simultaneous switching is tolerable under maximum loading situations of five-way AND's driving five-way O,R's
into a ten-load output. Circuit speed has purposely been compromised to improve driving
and loading capability.
All the circuitry is contained on one module,
with the exception of the two collector resistors
which are located external to the module in a
resistor pack. With the exception of the components outlined, the circuit configuration is
essentially the same as the 30-nsec circuit block.
The local store is not required to accommodate integrated I/O channels, consequently a
favorable trade-off is achieved by structuring it
in transistor registers as opposed to ferrite
. cores. In addition to reduced cost faster speeds
are obtained, since the store is not destructively
read, so regeneration time is eliminated. The
unit contains twenty-:five 36-bit registers. Sixteen are general purpose· registers, eight are
floating-point registers and one is a working
register used for variable field· length control.
Since one or more registers participate in the
execution of each System/360 instruction, the
accessibility and maneuverability of local storage contents is mandatory for good.internal
performance. Any of the registers can be easily
read or modified in 125 nsec, a nice fit for the
250-nsec machine cycle. All CPU manipulations
occur within the 250-nsec machine cycle.
A balanced capacitor read-only storage device, similar to that used by the Model 50, provides logical control for the processor. The cycle
time of the read-only storage is 250 nsec, with
the output being available 100 nsec after select.
Sixteen bit planes of 176 words each provide
a total of 2,816 words. Each word is 100 bits
wide.

226

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

To achieve desired CPU speeds, the read-only
storage is supplemented with conventional control hardware. Approximately 500 control lines
are generated in all, of which 400 emanate from
the read-only storage. Conventional control
logic is utilized primarily where sequencing becomes data-dependent and exclusive read-only
storage control would require additional cycles
to be taken.
LOGICAL ORGANIZATION
The size of the CPU-storage interface varies
in width from a byte on Model 30, to half-word
on Model 40, to a full word on Model 50. In the
Models 60/62, it is double-word wide. A reduction in the number of storage cycles required
fo~ program execution is purchased at the price
of hardware. The data path continues double
word throughout. Significant performance im-

provements in the handling of long precision
floating-point arithmetic and variable field
length operations are achieved.
A 64-bit instruction-buffer register is directly fed from storage and initially receives
all instructions (see Figure l5). Four halfwords are loaded and passed, one half-word at
a time, through a I6-bit extender register to a
I6-bit decoding register where instruction execution commences. As the last of the four
half-words enters the extendor register, storage
is signaled to refill the buffer register. The flow
through these three registers neatly overlaps
instruction fetching with execution and adds
substantially to the internal performance of
the CPU.
A parallel adder, 60-bits wide, is the confluence of the data path. Address calculation,
arithmetic, shifts, register-to-register trans-

TX
LOCAL STORE
25 WORDS

~....----..

.....I--+-....

L

ADDR.
BUS

24
SERIAL ADDER
8 BITS

32

24

32

PARALLEL ADDER
60 BITS

LATCH

LATCH
TO AB, T, D, IC, R, E

TO ST

Figure 15. System/360 Models 60/62 Data Flow.

IBM SYSTEM 360 ENGINEERING

fers, and parity generation and checking are
handled in the adder. It is a high-speed unit
split into four sections, four groups per section,
four bits per group for look-ahead propagation.
Worst-case carries ripple out in 135 nsec. The
entire adder output can be held in a latch
register equipped with gates which can shift
the full sum 4 bits right or left into the latch.
Adder input gates provide for left shifts of one
or two bits. The adder accommodates, in one
pass, the 56-bit fraction arithmetic of long precision, floating-point instructions.
Two 64-bit registers operate in concert with
the parallel adder. Both can be directly loaded
from storage and one provides the store path
to main core. At times they participate in an
action as a 64-bit unit. Frequently they are
treated as separate and independent 32-bit registers (identified logically as A-B, S-T). A
finer subdivision into 8-byte units can also be
effected. Both the A-B and S-T registers have
three-position byte counters controlling byte
movements. By utilizing the 32-bit _working
register in local store, in addition to parallel
adder paths, any combination of register-toregister transfer between, A, B, Sand T can
be made. The base registers in local storage
transmit between the S-T registers. A 24-bit
instruction counter and a 24-bit storage address
register connect to the parallel adder for loading and incrementing.
An 8-bit serial adder draped with extensive
gating is woven into the data flow. It drives a
latching register and is byte fed into the working registers. The many variable field ope:t;ations, including arithmetic, work through the
serial adder as do the logical functions AND,
OR and EXCLUSIVE OR.
To provide maximum flexibility in present
or future high-performance system configurations, physically-independent storage and channel units are employed. One common mu1tip1extype interface serves to permit the attachment
of either the 2360 (2 p.Sec) or the 2362 (1 p.Sec)
storage units to the CPU and 2860 channel.
This interface also provides the mechanism for
the attachment of multiple 2361 large-capacity
storage units. Figure 16 shows that the key to
this interface is the cable that serves as the
conductor for multiple driving circuits feeding
multiple receiving circuits. This permits effici-

227

ent time sharing of the inter-unit data and
address paths under the control of just a few
direct connection signal lines.
SYSTEM/360 MODEL 70
System/360 Model 70 is designed to fill a
marketing need for a very-high-performance
data processing system. It may serve as a direct
functional replacement for any member of the
System/360 family, with which it maintains
complete program compatibility.
The sole constraints on program compatibility are storage size, input/output configuration, and the absence of time-dependent program loops.
The fundamental elements contributing to
Model 70 performance are: high-speed circuitry, interleaved 1-ftsec storage units, and logical
organization.
CIRCUITS AND PACKAGING
To achieve the desired performance, the
Model 70 Engineering team specified a circuit
family which would permit an effective balance
between the basic machine cycle, storage-access
time, and storage-cycle time.
The optimum cycle time was established at
200 nsec. This, in turn, coupled with machinepackaging constraints, dictated a circuit with
a nominal switching time of 5 nsec. The resultant circuit is of the AND-OR INVERT
family. The switching time varies from 4 nsec
and longer as a function of fan-in and loading,
i.e., line length and number of loads. The basic
circuit configuration is similar to the 10-nsec
AOI but differs in component characteristics.
These circuits are packaged in modular form;
the modules are mounted on small cards having
a capacity for either 12 or 24 modules. A substantial number of these small cards are functionally packaged to achieve high density and
relatively short line lengths. With a circuit that
performed well, extreme care had to be exercised, not only in defining the functional cards
but also in card placement. More difficulty was
experienced in controlling delays in transmission than logical delays.
STORAGE
Main storage for the Model 70 consists of two
banks of 1-ftsec storage. Each storage bank has

228

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

STORAGE 1
MODEL 60-2360
MODEL 62-2362

~~~

STORAGE 2
MODEL 60-2360
MODEL 62-2362

LCS 2
2361

;

~~~

LCS 4
2361

LCS 3
2361

~~~
r-:
I
'
I
t-------------.. -------------.--------------~---------- ____•______________ J
I
t--------------,------------r- -------- ---r-------- ------~ ------------,-------------,
I:
:
:
:
:
:
:
!
t-.- -r--T- --:-,-"--r-T- -t"--""'T-"~-r-r- -;--1
!

~~~

LCS 1
2361

I

!

~~~

~~~

!
I
!
I
-~--""--+--+---4--""-.~-:---'---~--~
I
:
:
I i :
I

!

I

I

•

•

!

I

•

I

I

~ DR~

•

I

~DR~ ~DR ~ ~DRa
2

--

SIMPLEX CONTROL LINES

I

I

I

~DR~ ~DR~ ~DR~
5

4

3

6

2860 SELECTOR CHANNELS

2860 SELECTOR CHANNELS

CPU
2060

t

~

~

•

7

LEGEND:
- - - STORE BUS
- - - FETCH BUS
-------

}
MULTIPLEX BUSSES

ADDRESS BUS

DR - DRIVER CIRCUIT
REC -RECEIVER CIRCUIT
LCS - LARGE CAPACITY STORAGE

Figure 16. Model 60 Storage-Channel Interface.

a- capacity of 256 K bytes arranged in 32K double words (64 information +8 parity bits).
Data with even double word addresses are
stored in one bank; data with odd double word
addresses are stored in the other. These two
banks a.re independent of each other, having
exclusive drive schemes and data registers.

When accesses are made to sequential storage
addresses, the storage units operate in an interlea ved fashion.
The two units cannot be accessed concurrently but must be offset by at least 400 nsec, a
restriction imposed by the maximum rate of
the storage bus.
LOGICAL ORGANIZATION

The initial design approach was to accentuate the p~rformance of arithmetic operations.

Enlphasis, however, was brought to bear on
those instructions used heavily in the compiling
function, e.g., load, branch, store, and compare.
A data flow schematic is shown in Figure 17.
Instruction buffering is provided via two
double-word registers, each supplied by independent banks of main storage. Instructions
are executed sequentially and as the contents
of each register is exhausted, it is replenished
from storage during which time the contents
of the second register is being used.
Some degree of instruction overlap is
achieved by operand buffering. A sequencing
unit controls the instruction decoding, effective
address generation, and operand fetching, while
the preceding instruction is being executed. The
sequencing unit is not allowed to operate more
than one instruction ahead of the execution
unit and is not allowed to change any addressa-

IBM SYSTEM 360 ENGINEERING

ble registers while the execution unit is still
operating on the previous instruction. This
eliminates recovery problems in the event that
a branch or interrupt causes the abandonment
of the instruction being worked on by the sequencing unit. Address generation is accomplished through the use of a three-input adder
in one machi!le cycle (200 nsec) ; one input is
from the instruction register, the other two
from the general purpose registers specified by
the instruction.
The heart of the execution unit is the main
adder which is a 64-bit adder-shifter' combination. It has a three-stage full carry lookahead
scheme which permits an add operation in one
clock cycle. The main adder is supplemented
with an 8-bit exponent adder for floating point
operations and an 8-bit decimal adder for decimal and VFL operations.

16

229

A read-only storage mechanism was not included in the Model 70 since it did not lend itself to the machine organization, especially in
the area of required cycle time. As a result, the
control functions were implemented through
conventional logic design.
A further attempt to improve performance
was made through utilization of transistor circuitry, rather than core storage, for the general
purpose and floating-point registers. This approach permitted faster access, eliminated regeneration time between fetches, and permitted
accessing more than one register at a given
time.
In view of the storage interleaving and instruction overlap, a precise estimate of machine performance on a particular program,
loop or sub-routine, must involve careful scrutiny of instruction and data addresses and instruction sequences.

GENERAL
PURPOSE
REGISTER

4

I
II

FLOATING
POINT
REGISTER

I

i

MAIN ADDER

ADDRESSING
ADDER

STORAGE
IN BUS

Figure 17. System/360 Model 70 Data Flow.

230

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

CHANNEL
The 2860 Selector Channel is a very high
performance data channel designed to operate
on Models 60, 62 and 70.

LARGE CAPACITY STORAGE
A considerable asset in achieving thruput
improvement is the addition of large capacity
storage (LCS) to the Model 70. This storage
unit, with a read-write cycle of 8 p'sec, may be
attached to the system in increments of 1024K
and 2048K bytes up to a maximum of 8 million
bytes. These units are attached directly to the
storage bus and can be considered an extension
of directly addressable main storage.

The performance of this channel utilizing
30-nsec circuits permits operation at data rates
up to 1.3 megacycles; the rate being measured
by the number of 8-bit bytes that pass, via the
I/O interface, to or from an appropriate input
or output control unit. Any interconnection to
input or output control units is via the I/O interface.

The LCS can also be attached to Models 50,
60 and 62, and has the facility of being shared
between any two of these systems.

,<

ri

r,

The channel is of the selector type, permitting interconnection of multiple I/O control

~SERVIC~EA-------------------~~'
21' O'

~

BOUNDARY

/ /""

I
I

./'"

~--Cl
:

I

/

I

fl:

I

,- -

I

I

M-4
3 AND 4

60~'

!

::

/

17 1 3"

M-4
1 AND 2

I

1

III
!!ii

1/

l
-t

30

I4

(OPTIONAL)

=

31

=

- , IL--_ _-Y

L: -

MCU

-

I

---,

(OPTIONAL)

1 r------+-1

I

I
:

I EXTERNAL

-

L

, \
I \

CABLE

I

_____ ,

\\

__

I
I
I
I

I CONNECTORS

I"

I
I

I

I

, ' II

I

I

!

"'"

CPU

1
'--1- -

1

,

I
:

I

:

3"
604'

L... ' - ' - ' -

I

:

:

I
I

I
I

II

I

I

~

1

I

30"

L_l _______ l ___ J ___ ~L ____ L_~~

L30.1

63'

J. 43.-L-43"-i-43,,J30.J

Figure 18. Model 70 Physical Arrangement.

IBM SYSTEM 360 ENGINEERING

units to a single channel. A maximum of 6
channels may be used. Up to 8 control units
may be attached to one channel. However, the
channel at any given time operates with one,
and only one, device of the many attached. The
channel is "instructed" by the processor system
to commence an operation. An operation performed by an instruction may involve any sequence or list of commands to that particular
device. After being instructed, the channel independently obtains "commands" and transmits
data to or from processor storage until it completes its operation.
In operating with storage, the channel shares
the buss control unit, used by the processor, to
obtain its storage references. The Models 60,
62 and 70 use a double level of priority. In the
first level, each channel vies with the other
channels attached to that particular CPU for
priority, and then in turn vies with the processor for specific priority.
PHYSICAL ORGANIZATION
. Figure 18 shows the Model 70 physical arrangement. Each gate in the CPU contains 20
large cards and 4 half-size cards for termination of interframe cables. Two of the gates contain the Execution-unit, the other contain the
sequencing-unit. The maintenance-control unit
(MCU) frame contains maintenance circuitry,

231

the bulk power supply, and a small amount of
the CPU circuitry.
Mounting the CPU and the storage units on
a common wall helps performance in that it
allows short, direct cable connections between
them, rather than long under-floor cables. It
also means that all installations will have the
same cable lengths in these paths.
The 2860 Selector Channel frame is a threegate stand alone frame housing three swinging
gates, each capable of containing 20 large cards.
Power supplies are mounted in the internal
column between gates. Since each channel occupies one full gate, up to three channels may
be contained in a given three-gate frame.
BIBLIOGRAPHY
1. AMDAHL G. M., BLAAUW G. A., and BROOKS
F.P. JR., "Architecture of the IBM System/

360, "IBM Journal of Research and Development, Vol. 8, No.2 (April 1964).
2. DAVIS E. M., HARDING W. E., SCHWARTZ
R. $., and CORNING J. J., "Solid Logic Technology: Versatile, High-Performance Microelectronics," IBM Journal of Research and
Development, Vol. 8, No.2 (April 1964).
3. CARTER W. C., MONTGOMERY H. C., PREISS
R. J., and REINHEIMER H. J. JR., "Design
of Serviceability Features for the IBM System/360", IBM Journal of Research and Development, Vol. 8, No.2 (April 1964).

UNISIM-A SIMULATION PROGRAM FOR
COMMUNICATIONS NETWORKS
J. H. Weber and L. A. Gimpelson
Bell Telephone Laboratories, Inc.
Holmdel, New Jersey
I. INTRODUCTION

Furthermore, the measured outputs are directly influenced by most or all of the transactions sequenced through the program.

The design and analysis problems associated
with large communications networks are frequently not solvable by analytic means and it
is therefore necessary to turn to simulation
techniques. Even with networks which are
not particularly large the computational difficulties encountered when other than very
restrictive and simple models are to be considered preclude analysis. It has become clear
that the study of network characteristics and
traffic handling procedures must progress beyond the half-dozen switching center problem
to consider networks of dozens of nodes with
hundreds or even thousands of trunks so that
those features unique to these large networks
can be determined and used in the design of
communications systems. Here it is evident
that simulation is the major study tool.

In telephone (and other) traffic simulations,
however, particularly of the network type, the
possible number of alternatives before any call
(demand) is not very great, but the number of
calls which are simultaneously in progress is
quite large, and their interactions are not
predictable. The measure of performance is
typically grade of service (or probability of
blocking), which is normally in the order of
one per cent of the total offered calls. This
measure, furthermore, applies to each traffic
parcel in the network. For example, if there
are 20 nodes in a network, there are 190 two
way traffic items, each with a different demand
rate. If the smallest demand contributes only
1/1000 of the total calls in the network at any
time, then 1000 calls must be processed for
each one from this smallest parcel. A blocking of one per cent should be measured with
reasonable reliability on this smallest parcel,
and even if 1,000,000 calls are processed, only
(1/1000) (1/100) (1,000,000) or ten calls
will be blocked, and therefore contribute directly to the measurement on the smallest parcel. Since many networks must be tested
using different load levels, it is clear that a
primary requirement for a simulator which is
to be used in traffic network studies is that
it be fast. An improvement in speed of 5

II. SIMULATOR REQUIREMENTS
The type of problem to which this simulator
is directed is quite different from many of
the queuing and other problems which are
the primary application for most simulation
programs. Whereas in management simulation and tandenl queuing processes (job
shop simulations, etc.) problems are characterized by a fairly complex sequence of possible alternatives, the number of demands
simultaneously in process is ordinarily not so
great as to tax the capacity of the computer.

233

234

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

per cent or 10 per cent can be worth many
thousands of dollars even for a single study.
The other important characteristic that simulators for this application must have is that
they be capable of handling large networks.
The toll network in the United States has in
the order of 2000 switching centers. Although
it is not possible to incorporate even a substantial fraction of this number into a simulation pl'ogram, the number of nodes which can
be accommodated must be capable of exercising
all of the proposed routing and control parameters, which can ordinarily not be done with
anything fewer than about 20 or 30 nodes,
and preferably should be somewhat larger. In
practice, the capacity of a, simulator is not
governed by the number of nodes in the network, but by the number of calls simultaneously in progress, and this maximum must be
commensurate with the maximum number of
allowable nodes. It would do no good to
simulate a 2000 node network which allowed
less than one simultaneous call in progress
per node pair since this would not be a realistic situation. This requirement, of course, is
in conflict with the speed criterion, since to
take advantage of low speed bulk storage
media such as disc files might cause an intolerable slowing down of the program.
III. SIMULATOR CHARACTERISTICS
The simulator can accommodate systems
with both direct (line switched) and storeand-forward traffic and with two nonpreemptive priority levels allowed for each traffic
mode. It also allows trunk reservation by
mode, priority, or route and can develop its
own alternate routing tables according to
specified rules. These can then be dynamically
changed according to the state of the system.
All congestion is assumed to result from
trunks only: the switching centers offer no
delay or blocking to any call. This assumption, although perhaps somewhat unrealistic
in certain circumstances, allows the simulation
to operate quite rapidly while facilitating the
evaluation of alternate routing patterns
strictly on the basis of their basic structure
and routing doctrine, without introducing obscuring effects of particular switching ma-

chines. It is felt that the structure information will be common to a large variety of
networks, whereas the switching machines are
of course unique to each particular system.
The essential characteristics of the simulator are as follows:
1. Two modes of traffic, direct and storeand-forward, are allowed. Direct traffic
is served upon arrival, using either a
direct or an alternate route. If a direct
call is unable to be served immediately,
it is considered blocked and is either
lost from the system or reattempts after
some fixed interval of time. The reattempt interval may be exponentially
distributed or constant, and calls may
either reattempt after each try or be
lost with a given probability. Store-andforward calls are served immediately,
using the direct or alternate route, if
possible. If the call cannot be served
immediately, it is stored and queued on
the most direct route.
2. Each mode of traffic is allowed two
nonpreemptive priorities, and these can
be distinguished by:
a. Different retrial times for direct
traffic.
b. Head of the line queuing for the
higher priority store-and-forward
traffic.
c. Trunk reservation procedures in
which a certain number of trunks in
a group are reserved for high priority
traffic only.
3. The simulator accommodates networks
with the following maximum dimensions:
63 nodes
1,953 trunk groups
These maxima cannot be simultaneously
realized, the primary limitation being approximately 6,000 calls in progress simultaneously.
The simulator will handle approximately 500,000 calls per computer hour;
this is a maximum speed obtained when a
moderately loaded network of about 35
nodes is being simulated (i.e., the number
of calls in queues and being retried is

UNISIM-A SIMULATION PROGRAM FOR COMMUNICATIONS NETWORKS

determined only by the condition of the
immediately succeeding links. Calls are
not allowed to switch through the same
node twice, and maxima, in the form of
number of links and distance, can be
established for each traffic item. It is
also possible to allow cans to return to a
previous point for rerouting if they are
blocked.

small compared with the number of calls
in progress). The time required to process the simulator output and produce statistics on the run (included in the above
estimate) varies with the network size
and may take as long as the simulation
itself.
4. The alternate routing procedure which
is provided determines its own symmetrical routing arrangement (see Reference 1) based on the shortest paths
between each two points, hierarchial
routing according to preset rules or general routing with the route sections read
in directly. The routing either remains
fixed throughout the run or can be
changed at periodic intervals according
to the dynamic condition of traffic in the
network.
5. The output data are arranged such that
information about probability of blocking, delay distributions, trunk usage and
several other aspects of the system are
summarized over prearranged intervals
of time. The results of these summarizations are then printed out, as well as
placed on magnetic tape, and selected
sections can then be combined using another program to derive means and variances of the appropriate statistics over
any group of intervals which is desired.
6. The simulator has the ability to change
loads at a linear rate during the course
of the run; that is, any load or combination of loads can be made to vary at a
fi'xed rate over a desired period of time,
including a step function in which a
change is made in zero time.
7. Trunk reservation is set up not only to
distinguish between high and low priority calls but also between direct and
store-and-forward calls: it is possible to
reserve some trunks for direct calls only,
as well as for the higher priority. Trunks
may also be reserved for first routed
traffic at the expense of alternate routed
traffic.
8. Routing is of the Hstage-by-stage" variety. As calls progress through the network their next choice of route is

235

IV. SIMULATOR ORGANIZATION
The Simulator Program (Figure 1) is made
up of a number of subprograms, some of which
are simultaneously in core and some of which
are read in sequentially. This subprogram
structure was used in order to accelerate the
programming, maximize the availability of core
storage for any program, simplify debugging
and allow maximum flexibility for future
changes. Briefly, the sequential programs are
as follows:
1. The Traffic Generator accepts as input
data the point-to-point offered loads, the
holding times of the various types of
TRAFFIC
TAPE

TRAFFrC DATA
I

~

I

GENE~AT~R

I

--

~

FACILITY AND
ROUTI NG OAT A

CALL RECORD
AND
SWITCH COUNT
TAPES

STATISTICS

~--4

STATISTICS

~_~

Figure 1. Simulator Organization.

236

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

traffic, and the load changes which can be
expected during the course of the run.
The program generates all the calls
which will be used in a simulation run,
placing their mode and priority, time of
arrival, originating and terminating
points and holding time on the Traffic
Tape in chronological order. This tape
is used as input to the main Simulation
Program.
2. The Simulation Program accepts as input the structure of the network in terms
of nodes and trunks; trunk reservation
information, if any; routing options and
limitations; retrial specifications; and
the Traffic Tape. It then processes the
calls through the simulated system and
reports the results on two tapes. One of
these, called the Call Record Tape, contains a record of all calls which have
been processed; that is, arrival time,
service time, holding time, mode and
priority, origin, destination and number
of links used. The other tape, called the
Switch Count Tape, records the results
of periodic measurements of all of the
trunk groups in the network, reporting
on occupancy and reservation levels.
These two tapes contain all of the raw
output information from the simulation
and are used as input to the Output Processor Programs. The Dynamic Alternate
Router Program, which determines the
routing pattern as a function of the traffic condition of the network, is alternated
in core with the main processing programs, the program not in use being
temporarily stored on a scratch tape or
disc file.
3. The First Output Processor accepts as input the Call Record Tape and the Switch
Count tape, as well as specifications of
the number and length of the time intervals over which the information on the
two tapes are to be averaged. It then prepares mean values of blocking probabilities, delay distributions, average delays,
trunk usages and links-per-call distributions over the specified intervals. This
information is printed out and placed on
magnetic tape. By visual inspection of

these outputs the program user can then
determine the intervals over which the
system was sufficiently close to steady
state operation to allow longer term
averaging. He then can make the appropriate specifications for the Second
Output Processor.
4. The Second Output Processor accepts the
output tape from the First Output Processor and the interval averaging specifications of the program user, and determines over-all means and variances of all
system statistics originally derived by
the First Output Processor.
The detailed operation of the several programs mentioned above will be given in subsequent sections.
V. TRAFFIC GENERATOR
The Traffic Generator Program (Figure 2)
is run prior to the Simulation Program and
the Traffic Tape which is produced can be reused as required. This procedure realizes a
saving in computer time since traffic need not
be regenerated to test several network configurations and routing schemes.
The Traffic Tape contains an entry for each
offered call consisting of essential information such as arrival time, terminal nodes, holding time, etc. The calls are generated by using
input quantities such as offered loads to generate interarrival times using independent
random numbers, selected from a specified
distribution (single parameter with unit
mean). The program continually searches for
the next earliest arrival. Finding that item, a
holding time and direction are determined.
This information is placed on the output tape.
The item then receives a new arrival time, is
placed back into the list, and a new search is
initiated for the next arrival.
The selection of the earliest arrival is expedited by the use of a technique, suggested by
W. S. Hayward, Jr., in which entries in the list
are paired, and the earlier of the two arrival
times of each pair is placed in a second list.
This same process is continued using pairs
from subsequent lists until the earliest arrival
is selected. The node pair and call type associated with the arrival time can be simply

UNISIM-A SIMULATION PROGRAM FOR COMMUNICATIONS NETWORKS

DATA

CONSTRUCT LIST
1 FROM INPUT
DATA; SET UP
CHANGE NUMBERS

CALCULATE
6 i b=hi/Li
ab
a
FOR EACH ITEM
AND REPLACE
ALL Liab BY_
APPROPRIATE 6 i ab

237

LOAD NEW t, AND
t2 AND NEW
CHANGE NUMBERS
DETERMINE
HOLDING TIME
AND DIRECTION
FOR CALL SELECTED

PUT ALL REQUIRED
DATA INTO OUTPUT
BUFFER FOR
WRITING ONTO TAPE

;>-Y_E_S_.....

STOP

CALCULATE INITIAL
ARR.I VAL TIMES =
6 i ab . Ra AND
STORE IN LIST 1

STORE NEW
ARRIVAL TIME IN
LI ST 1; ALTER
LIST 2

aik TO
DETERMINE NEW
AVERAGE INTERARRIVAL TIME
AND THEN NEXT
ARRIVAL TIME
FOR TH IS ITEM

Figure 2. Traffic Generator.

determined. The economy of this technique
results from its ability to change individual
items very rapidly without full reconstruction
of the lists; in particular, it can select the required call more quickly than would be possible with a full search of the first list.
During prespecified time intervals in which
there are to be load changes, a calculation of
each new interarrival time is preceded by a
test for the presence of a flag in the listing of
the current item of traffic. Should there be
one, the interarrival time is modified to produce a linear change in the load.
VI. SIMULATION PROGRAM
A) General Description

The Simulation Program (Figure 3) is
composed of a number of subprograms which
can be grouped into three categories:
1. Operator Program
2. Routing Programs
3. Record Keeping Progr~ms

The division of tasks between the subprograms was made to allow separate writing and
debugging of the programs by a team of programmers.
This technique also permits
changes in operation to be effected in parts of
the simulator without major rewriting of the
entire program; for example, several routing
schemes are available as "plug-in" units.
The Operator Program maintains a single
chronological queue (or linked list) containing
all events which occur in the simulator. This
includes call arrivals, call departures, call retrials and various instructions to perform control actions. For example, if the event at the
head of the queue is the arrival of a new call,
placement is attempted; successful placement
will move the call back in the queue to a point
in time equal to the arrival time plus the holding time; when that time is reached (following
processing of intervening events), this call is
removed from the network.
In order to maximize the number of calls simultaneously in progress, advantage was taken

238

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
INITIALIZE
PROGRAM

OPERATOR
PROGRAM

CONTROL
DIRECTION

DYNIIMIC
ROUTER

ROUTE
AVAILABLE

Figure 3. Simulation Program.

of the statistics of network behavior in organizing the data structure. Since the chronological queue is the basic data item using most of
the memory, the cell size to be used was of
critical importance. It turned out that if a
call used only one, two or three links, then
three words would be sufficient, but if more
links were needed (and a maximum of seven
was a requirement for some calls) a larger cell
would be needed. In most networks at least
95 per cent of the calls use fewer than four
links; so the cell size was set at three words,
with the possibility of adding additional words
if the particular call required them.
The Operator Program presents a new call
to the Direct Router, which determines
whether a single-link placement is possible by
checking trunk availability for the mode and
priority of the new call. If a direct route cannot
be obtained, the call is presented to the Alternate Router, which attempts a multiple-link
connection. The Alternate Router uses a
Trunk and Routing Table (described below) to
find an available route for the call. A valid
route obtained by either routing program is
transmitted to the Call Placer, which updates
the Trunk and Routing Table to account for
the new call. That call (with its event time
changed to its departure time) is returned to
the Operator Program for reinsertion into the
chronological queue. Upon complete failure
to route the call, the Operator will either add

the call to a nonchronological queue (for storeand-forward traffic) or, with a new event time
obtained by adding a retrial interval to the
arrival time, place the call at this event time
in the chronological queue (for direct traffic).
At the conclusion of the call the Operator presents the call to the Call Releaser, which alters
the Trunk and Routing Table to account for
the call's withdrawal and checks each trunk
group previously employed by this call for the
presence of nonchronological queues, reporting
these to the Operator.
The Trunk and Routing Table (Figure 4b)
contains the occupancy status of each equipped
link (Trunk Data) and routing information
for each pair of nodes (Routing). Thus the
same table keeps a record of the traffic on
individual links and provides full routing information for each pair of nodes in the simulated network. The routing information consists of lists of intermediate nodes to be used
for calls which cannot be placed directly.
ADDRESS
ADDRESS
ADDRESS
ADDRESS

1,2
1,3

1,4

2,3
2.4

LIST A
(LOW NUMBERED NODE)

LIST B
(H I GH NUMBERED NODE)

~.

3,4
:5.5

."

'---

--

~

""'-

----..

LISTS FOR ENTERING TRUNK AND ROUTING TABLE

IA I
IA I
1-2
1-2
1-3

1-'I

B
B

I CI
I

0
CI 0

2-1
2-1
3-1
3-1
A

I

8

I cI

0

IA IB I cI0

1-4

4-1

IAIBlclo
I A I B I C 10

TRUNK
DATA

J
)
)

~
)

1,2

ROUTING

1.2
ROUTING

1.'

TRUNK
DATA

1,_

ROUTING

T:~K
DATA
1,5

~
b.

TYPICAL TRUNK AND ROUTING TABLE

Figure 4. Typical Trunk and Routing Table.

UNISIM-A SIMULATION PROGRAM FOR COMMUNICATIONS NETWORKS

The Trunk and Routing Table is constructed
from the input data by an Initialization Program (Figure 5). For symmetrical routing the
program is supplied with point-to-point distances (or other weightings) and the numbers
of trunks installed throughout the network. It
then determines a number of economical routes
in each direction between every two nodes. The
first intermediate node to be tried for each

READ GENERAL PARAMETER CARD AND
GENERAL ROUTING CARD
CALCULATE ADDRESSES OF LlST BAND
TRUNK AND ROUT LNG TABLE
WRITE INPUT DATA ON SWITCH COUNT TAPE
CALCULATE LIST A
READ TRUNK INFORMATION FROM DATA CARDS
FORM TRUNK DATA LlNES
WRITE TRUNK LINES ON TAPE
CALL DYNAMIC ALTERNATE ROUTER TO
SET UP TRUNK AND ROUTING TABLE
AND COMPLETE LIST B TABLE
STORE TRUNI AND ROUTING lABLE
STARTING FROM APPROPRIATE ADDRESS

CALCULATE AND STORE LIST B
STARTING FROM APPROPRIATE ADDRESS

WRITE INITIAL ROUTING DATA
ON SWITCH COUNT TAPE
TRANSFER TO OPERATOR
Figure 5. Initialization Program.

239

route selected, together with the minimum
number of links required using that node, is
entered into the Trunk and Routing Table. This
method of preparing the routing data is especially convenient when large networks are being tested since the number of alternate routes
becomes so large that manual specification is
not feasible.
The Initialization Program also determines
two lists which facilitate entering the Trunk
and Routing Table. Shown in Figure 4a for a
network of N nodes, there are N entries in
List A, each consisting of the address of the
first line of a series of entries in List B. When
either trunk availability or routing information is required for a specific call type between
nodes X, Y (X < Y, numerically; direction of
call is not a consideration at this point), indirect addressing permits use of line X of List
A to immediately obtain that line of List B
which pertains to the node pair X, Y. List B
contains information required to route a call
from X to Y.
B)

Direct Router

When calls of the following classes reach the
top of a chronological queue they are delivered
to the Direct Router:
1. New calls.
2. Calls which are to be retried after having
previously been blocked.
3. Calls at the head of a nonchronological
queue associated with a link on which a
call has just been released.
4. Store-and-forward calls which have just
completed transmission to an intermediate node after having previously failed
to reach their destination.
The Direct Router (Figure 6) must determine the nodes between which a connection is
required. If the node pair is unequipped
(rapidly determined by a sign-bit test in the
Trunk and Routing Table), the Call Data is
sent immediately to the Alternate Router. If
there is a trunk group installed, the Direct
Router enters the Trunk and Routing Table
and, using the call type, determines the availability (considering reservations) of the trunk
group for this call. The lack of an available
trunk sends the Call Data to the Alternate

240

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

ENTER FROM OPERATOR

DETERMINE NODE PAIR: EITHER
TERMINAL NODES OR INTERMEDIATE
TO DESTINATION

YES

NO

ENtER TRUNK
Af40 ROUTlNG
TABLE VIA
LISTS A & B

YES

NO

If there is a direct link between the terminal
nodes, the store-and-forward call will queue on
this link immediately; if there is no such link,
the call will queue along the "first choice
route;" this is a route selected to have no more
links than the minimum number of links specified when the first choice of an intermediate
node was obtained by the Alternate Router.
"Crank-back" or call "back-up" for direct
traffic is available (Figure 8). When used, a
call which has been blocked at some point in
its routing releases the last link accepted, returning to the previous node where it now tries
to reach its destination via another link. The
number of links which may be released before
each forward progression is an input quantity.
D) Call Placer and Releaser

GO TO
CALL PLACER

GO TO
ALTERNATE ROUTER

Upon indication from either router that
there is an available route for the current call,
the Call Placer (Figure 9) determines which

Figure 6. Direct Router.

Router, while availability indicates that the
call can be placed to its destination, and the
Call Placer is supplied with this information.
Since every call is offered to the Direct
Router and most calls are carried over direct
routes, this program was written with particular attention to operating speed. In conjunction with this the structure of the Trunk and
Routing Table was largely determined to
facilitate its use by the Direct Router.
C) Alternate Router

A call is referred to the Alternate Router
(Figure 7) only if it has been determined that
there is no direct route available.
The Alternate Router attempts an immediate
multiple-link connection, progressing through
the network on a node by node basis. Should
the Router either exhaust the list of node
choices or be unable to find a route with no
more than the permitted maximum number of
links, a direct call will be returned to the Operator Program for retrial at a later time (a
specified per cent of the retrial traffic can be
"lost" rather than retried), while a store-andforward call will be queued on a trunk group.

GO TO CALL PLACER

Figure 7. Alternate Router (Without Dynamic Router
or Call Back-Up).

UNISIM-A SIMULATION PROGRAM FOR COMMUNICATIONS NETWORKS

241

BACK-UP TO PRECED I NG
~':'::---------------------.,.jNODEOF ROUTING PATH AND
ATTEr~PT

FURTHER ROUTING

Figure 8. Option 2 Alternate Router (Without Dynamic Router, But With Call Back-Up).

links require updating, enters the Trunk and
Routing Table and alters the appropriate data.
After updating these records the Call Placer
returns the call to the Operator for reinsertion
into the chronological queue at the release
time.
At the conclusion of a call, the Call Releaser
(Figure 10) must update the Trunk Data.
Then the call is sent to either the output queue
(for transfer to the Output Tape) or to a nonchronological queue on a trunk group (for a
store-and-forward call not yet at its destination
and still blocked). Finally, the Call Releaser
checks each of the trunk groups used by the
call just released to determine if there are any
nonchronological queues waiting for these
groups and presents this information and program control to the Operator.
E) Operator Program

The chronological queue is administered by
the Operator Program (Figure 11) using

linked lists, which facilitate the maintenance
of information in the computer by allowing
the ordering of data to be easily altered. In
the simulator, a list number is stored with
each chronological event. This number is the
address of the next event in the queue. The
address (or location in core) of an event remains unchanged from the time it enters the
simulator until it is removed (for example,
from original entry from the Traffic Tape until
the end of processing and placement on the
Call Record Tape). The position of a call in
the queue, however, is easily changed by altering the list numbers of the preceding event
and the event being moved. Vacancies in core
are linked together in the same fashion using
a push down vacancy list. N onchronological
queues are similarly constructed by taking
blanks from the vacancy list. When calls have
been completed they are linked into an output
queue which is periodically read on to the Call
Record Tape; after this the slots are returned

242

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

UPDATE
ACCUMULA TED
DELAY TIME BY
ADO I NG HOLD I NG
TIME

The Second Output Processor collects the appropriate information from the Processor Tape
(generated by the First Output Processor)
and determines means, standard deviations,
and over-all network statistics for a prespecified number of processing intervals.

CHANGE CALL'S CODE
TO INDICATE
DEPARTURE OF A
COMPLETED CALL

""==

...
~
a::

o

"-

....
w
....
w
C[

a::

The first of these, called the First Output
Processor, reads raw system statistics from
the Switch Count and Call Record Tapes and
evaluates the mean values of appropriate system statistics over pre specified subintervals
of time. These statistics are then printed out
and also read onto magnetic tape. The program user can examine the results and, by ascertaining the time periods over which equilibrium was obtained, write the specifications for
the second program, called the Second Output
Processor.

'------

0.25

o.oe

8.06
0.01
0.17
0.24
0.44
0.04
0.11
0.14
0.52
0.78
3.54
0.90
0.17
0.88
0.21
0.36
0.35
0.08
1.51
1.84
0.93
1.53
0.42
0.54
0.63
40.40
56.04
4.01
1.43
1.58
3.08
3.53
144.31
1.92
2.21
2.90
2.12
0.18
1.46
1.61
6.31
7.93
25.80
10.20

Figure 12. Offered Loads as Used in Generation of Input Tape.

246

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

__________________
~E---~W~4XU!~r'~'M~

PAIR

LINKS
cIRErT

--L_~

_____

~

~IN~I~T~f4~I~A~I~TE~R~N~AT~E~R~A~IITWI~N_G~~ES~

_____________________________

______________~R~e'~'T~IN~G~I~e~H~T~e~HulwGH~________~R~e'U'T~IN~G~H~IG~H~T8~lg~W~--____YLE~N~GT~H~___

NIce

________________

~4~

AF LINK
t INKS

NICE

I

IN'S

N00E

I INKS

NADE

I INKS

__~?_ _ _ __UIO~--~?~_ _ _ _ _ ~4____~--__I~O~--~?_ _ _ _ _ _~79~6J~---

00

00

5

o

0

0

9

00

__ ~ ______~______________~2~__~2~__~4L___~?~_ _ _ _~2~__~----~4~__~?~_ _ _ _~2~4~3~4~4____
4

?

0

0

2

2

10

2

2

0
0
10

10

?

Q

0
0
8
3
00
2
?
1
3

?

2

2
3

o

o

o

0

2
3
00

10

?

3

4
10

10

2

?

2

4
4

3

0

0

00
'0
2
11
3

?

?

2

42

10
2
42
00

??

4

9

2
10

?

o

11

]0

4

~

1 13

o
?

2

2

3

0

0

20

o
10

"

20
1 15

3
2

2
3

20

J

16

20
1 11

3
10
4

1 t8
119

21

?

2

2

2

0

0

3

2
3

2

3
4

18

o

o

2

2

10

2
4

'3
18
o
16

3
3

o

15

3

10

3
4

25
20

2

o

4

o
2

o
10

4

o
3
o

..
o
3

o

..o

10

20

'o"

10

4

o

18

10

20

70

o.
o
o
o
o
??5 '3

o

8

2
3

13

10

o

17
13

3

2

2

3

o

17
20

3
2

2

o

21t

2
3
3

2
3

?

3

2

o

21

o

2

10

3
3

20

2
3

20

23
2
11
25

21

10

o

18
o
10

2

o

2
3

10

11
24
2

o

A

o

o

o.

2

3
4
o

2

o

10-

15

13

o

o

o

7

17

3

o

2

10

o

17
16

3
3
3
3
3

2

20

2

18
25
21

10

12]

1 24

42
2

10

?

10
2
53
00

o

o

2
3

1 22

2

o

10

2
4

o

20

'"
o

1

4

o
10
4

3
3
2
3
2
3

2

20
3
1 20

3

174

____~________________~2____~2_____utO~_ _~3~____~____~--__1~3~--~3______~0H_----4
4
20
2
20
21
3
2
o
o
o
19
4
3
o
3
2
2
10
2
10
2
o.
4

1

o
o
2
o

?

2
10

0

o

o.
o.
o

3

2
3

o
2

162.35

o

2
Q

o.

10

o

10

24

o

25

o
2

Q

3

o

o.

Figure 13. Initial Alternate Routing Tables.

The frequently used sections, such as the
Direct Router or the Operator, are basic to the
structure either of the system or of the simulator, and changes in these would normally be
of a sufficiently fundamental nature to require
a substantially new approach. This type of
program, then, need not be easily alterable.
This sort of experience leads rather naturally to a categorization of simulation programs according to the following classifications:
(1) Basic subroutines which are called by
virtually every transaction. These programs should be efficient but need not
be easily modified.
(2) Subroutines which specify the logic to
be followed under more unusual cir-

cumstances, such as when congestion is
encountered. Such routines are critical
to the problem, since it is the behavior
of the system under such circumstances
that is normally the question under investigation. The logic followed in these
cases ordinarily can be varied and is
under constant assault as new operating procedures are invented and must be
tested. These programs, however, must
have access to the same data structure
as the basic subroutines of class (1).
(3) Programs which perform such functions as preparing the inputs or processing the data. These programs are
normally reached only at infrequent
times, and can access data which is buffered and altered from the basic data

UNISIM-A SIMULATION PROGRAM FOR COMMUNICATIONS NETWORKS

in the simulation. They also may be
largely arithmetic in function as opposed to the logical operations generally
performed by the programs within the
simulation.

247

could well be written in some intermediate type
of simulation language. The characteristics
of the language would have to include at least
the following:

It would be desirable in the development of

future simulation languages if the capability
for using different existing languages for certain sections of the program could be provided.
For example, heavily used portions of the program may be best written in a machine language in order to obtain maximum efficiency
in speed and space. Others may best be written in a familiar language which is suitable for
arithmetic operations (although if a simulation language can incorporate extensive arithmetic functions, this would be useful). The
third type of program, however, (type (2»

(a) It be "natural" in the sense that it be
reasonably easy to understand and use,
and has a documenting capability to
facilitate program changes.
(b) It be capable of interfacing with a program written in machine language and
perhaps with a commonly used compiler
language such as Fortran. In particular,
it must be capable of operating on the
same data as do machine language subroutines, with full capability for flexible
bit packing and accessing of information which is stored in dynamically
changing arrays.

SWIH.H -UUU.-IAf'L.ltEOUCTHlII,.. MEM-Fl!.IR_REPeRTING INTERVAL -IWMaEA-- _-__ 1--_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
PReCESSING INTERVAL NUMBERS
2 THRBUGH
6
NUMBER lIF SWITCH Cl!.IUNTS
50
BEGINNING TIME IS
~r:E

PAIR

1 2
1 3
1 4
1 10
1 20

2000.000

H!lTAl
TRlNKS

TRUNKS
RESC
FUll

ENDING TIME IS
UTAl
CARR I ED
----- ----CARJUEO- -_.F.uu.
UlAD
ACCESS

CARRIED
LIMITED
ACCESS

12000.000

PERCENT
P-f:RCENT
PERCENT
lICCU-- -- .. FULL------U!l1 r E - O . - - - - - - - - PANCV
ACCESS
ACCESS

17
7
23
18-

C
73.200
67.320
5.880
95.065
91.!998
8.002
0
______ -.!t.320
__ 3.180
I.HO
61.114
n 74 1
26 2S9
0
17.720
8.580
9.140
17.043
48.243
51.157
.0
_____ -1L.480_____ 11.420
80.444 _____ 78.9D9.----21.'O'9,...1_ _ _ __
3.060
7
g
5~ 140
4 ... 94Q
0.200
73.429
3.165
____ ! L L - _ - ' L -_ _ _ _-->3'-"-9-'7'-"4J.LO_--'3><>-8~. ___ .__0.800 _______________ .92...A19 ___----"9u7...:9'"-'7C-L7_ _---42:-.u..02~3L-_ _ _ _ _ __
_2 _ 3
2 4
79
C
74.860
62.680
12.180
94.759
83.786
16.214
31 ______ 0_
22 380
----13.520
8.860
____ 72.194
_.60.13-1-____ -------3..""9...2:.<>6::1-9_ _ _ _ _ _ __
_2 5
2 8
e
0
4.800
3.860
0.940
60.000
80.585
19.415
9_
0
______ 5 8 8 0
4._400
1.480
65.333
_ 74~9.93?S 001
2 9
2 10
169
0
163.560
150.160
13.400
96.781
91.816
8.184
5
n
1 960
1 860
0.100 ___________3.'L2.Qa..___9""SL.-!t.4C;2S>----_-------'t-.4..:lSu.7:>-S_ _ _ _ _ _ __
---2 11
2 12
0
2.260
2.100
0.160
56.500
4
93.642
6.358
58.58L ___ .U...Al9.._ _ _ _ _ _ __
18--0
__ --14~ __ 8.620
6.140
82.000
2 13
2 14
10
0
6.740
5.840
0.900
61.400
86.118
13.282
98.022.---------1.978 _ _ _ _ _ _ _ __
2 18
11
0
- -----9..0-20- _ -----'----8.840
0.180
82.000
2 19
9
0
7.180
1.180
O.
79.178
100.000
O.
_ -- ______---26.-___ --0.
16 380
14 980 _____ 1.400
________ -ll.DD0-----------"9LL1...:S:>.J1.-L7_ _----l:8~48t1..:3L-_ _ _ _ _ __
_-220
2 21
16
0
10.660
10.620
0.040
66~625
99.658
0.342
7
0
5.160
5.160
O.
73.114--- _LOQ.GOO. _ _ OU-o--_·_ _ _ _ _ _ __
2 22
2 23
14
0
12.61:10
12.680
O.
90.511
100.000
O.
5
0
3.360_
2.720
0.640
67.200
81~82a _____ 18.__+J!7'_"2_ _ _ _ _ _ __
2 24
2 25
1
0
4.920
4.800
0.120
70.286
97.')10
2.430
... ___.33 ____ 0 __
30 ]20
'9 980.____ .0.3 ..0
9l.8.l2.._-------"9Ul8~8t1.:l91.L2_ ____lJl...JJ!0w:8L-_ _ _ _ _ __
.2 29
2 30
11
0
9.020
9.020
O.
82.000
100.000
o.
2 31
18
a
15.080
14.260
0.820
8.1.178
94.433_
5 561
2 32
7
0
4.660
4.500
0.160
66.571
96.538
3.462
_____ .7
0 _
. _____ ?o.800 ________ ... 000
0.800
68.511
_ 83.042-'-._
16 9S8
2 33
2 34
8
0
6.080
6.080
O.
16.000
100.000
o.
S7
0
52 400
0-<-'79'"--_ _ _ _ _ __
4 3 420 ___ J.98O' _________ -'U-'9L13""'0_-----'8:>..692
15.303
24.697
42 440
342M
8 24lL______ ._--'S..,8....4'"-"L-I7_ _J:U80.........,h.:>JS8"---_.....
].19...,3..,.4L2_ _ _ _ _ _ __
-4 10
48
0
I, 20
11
0
7.920
6.860
1.060
12.000
86.798
13.202
___ ..b9.846______
______'_L5___5'__"'4_"__3_ _ _ _ _ _ __
_'t.2~___
13
0
9 0 80
8 580. _____ D.500H
5 10
46
0
38.620
29.020
9.600
83.951
75.226
24.714
6 10 _________ ~ ___ ~.
. ___ 69.946 __ -----11lO_~----Uo",____ _ _ _ _ _ __
_ _ _ _~2u5.......
88""0''---_L;>25~880' _
o.
1 8
13
0
6.820
6.100
0.120
52.462
89.325
10.615
15 )aO
7 ]Q
?J
a
14 98Q
72 2Mb
98 63 8
0 200
1 3h2
1 17
19
0
12.480
12.220
0.260
65.684
91.813
2.127
3.D61l __________ 8..3..257
~ _ _ _ _ _~
89 488
10 512
35 _ _~_ _ _ _ _~2~9~1~4~O_~2~6....0w8~OL-_~
8 1:1
0
14.060
12.540
21
1.520
66.952
89.465
10.535
)0 8 46
__ .8.._1.7 _
0
]4 700
13 100
..l.601l _
__ 10 • .000_
?J
89 154
19
0
8 18
12.320
11.'-40
0.880
64.842
92.916
1.08lt
7_ 326
]Q
0
I 660
2 5 6 14
8 25
6 +4°
.. 7S0
64 400
9 10
34
0
27.920
24.880
3.~0
82.118
89.096
10.904
0 _ _ _ _ _~2~3....6~4~O~_~22~5~2QL-_-i.
~~ _ _ _~~_~
4 757
30
95 243
1....l2O. __________ 18~aoo
It 13
18
C
110.020
10.240
3.780
71.889
72.965
21.035
9~

°

--

- -- -- -- ----

Figure 14. Switch Count Tape Reduction-Mean-For Reporting Interval Number.

248

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
CAli

TAPE

REoIICTT8N -

PReCESSING INTERVAL NUMBERS
BEGINNING TIME IS
!!RIG

2 THRBUGH

6

NUMBER BF SWITCH CBUNTS

AVE.

ENDING TIME IS

PRe B

DE'Ay

a

,

,,051

0

0

0

3
4
5
6
7

0.027

O.

O.

O.

2 a

AVE. NB.
, TNKS

0

0

0

J

O.

o.

O.

J 89

O.

n

O.

O.

O.

O.

0

0

0

0

0

0

O.

O.

O.

O.

O.

O.

0

0

0

0

0

0

O.

O.

O.

O.

O.

O.

o.

0
O.

0
O.

o

0

O.
o
O.

O.
a 733
0.825

o

0

O.

.a

0

a

0

0

900

lit

0

0

0

0

0

16
17
18

0.200

O.

O.

O.

0

0

o.

0

O.

o.

o.

O.

o.

O.

O.

J Q

C

0

0

0

0

0

0

?

1

20

0.006

O.

O.

(I.

O.

O.

O.

1.293

)

2 J

C

0

0

0

0

0

0

2

_ )

o J 27
0.104
Q ) 09
0.700

0

O.

a

1.500
2 233
1.300
) I 21
1.600
2 '61
2.350
2 397
2.100
2 467
2.275

8

0

9

O.

)a

a 844
0.843
a B65

O.

oen

0

050
049

a

O.

a

11

O.

12

COo

a

13

0.140

O.

O.

072

073

025

O.

a

O.

a

Q

o.
a

0

a

O.
a

o.
0
o.

O.

0

0

0

O.

233

131

12000.000

LINK olSTRIBUTIBN
3
4
5

1.211
) ) 68
1.700

0

50

2000.000

eUICK

DELAY oIST,RIBUTIBN
o 5
1 0
1 5

PEST

AEPIJlIIWNGIi--lIN-NTUE;.aR.ll.YAll'~N'UJ'MUlB~fRR-_...J'-------------

MeAN.- FAD

o.
o
o.
o

O.

a 888
O.
o
O.

0.741
o
O.
Q
O.

o

300

0.300
o 767
0.500
a 100
0.800
0 733
0.650

0.053
a 0) 9
0.100

non..
O.
a 007
O.

O.

0

0

D

O.

O.

0

025

100

0.300
0

233

0.100
a 010

O.
0

267

0.350

Q

O.
0 002
O.

0

O.

a

6
a

a

o.
o
o.
o

o.
o

O.

o
O.

a
O.

0

Q

O.

O.

0

0

0

O.

O.

O.

O.
Q

O.
Q

o.
o
o.
Q
o.

0

0

a

0.100
0 200
0.050
0 033
0.006

0.100
0
0.025

O.
a
O.

n

o.

0

0.231

0.400
a 067
0.100
0 166
0.022

O.

O.

a
O.

0

0

0

0

0

Q

703

800
869

0

J 97

J 31

0

1 no

O.
a

0.C82
O.
O.
O.
o.
O.
O.
2.210
0.830 0.130 0.040 O.
O.
O.
COO
a
0
0
a
2 341
Q 783 a 155 Q
Q 062 a
a
24
O.
O.
O.
o.
O.
O.
O.
1.733
0.667 0.133 O.
O.
O.
o.
Q
Q 79 2
a
25
C 101
a
a
a
ann
2 258
Q 158 a OM 0
o
26
C.C25
O.
O.
O.
O.
O.
O.
2.662
O.
0.538 0.262 O.
O.
O.
O.
a
o 600 0
0
a
o
_ I
21
0
0
0
a
0
0
0
1 800
o
28
0.0.73
o.
O.
o.
o.
O.
O.
3.298
O.
0.012 0.689 0.286 0.012 O.
O.
1
1
29
C 024
0
a
a
0
0
a
2 316
0
0 772 0 139 Q 088 0
0
Q
1
30
C.
O.
O.
O.
O.
O.
O.
2.351
O.
0.705 0.240 0.056 O.
O.
O•
.--L-.~3U1_ _C~C~IQO_~0~____ ~0~_~0~_~0~_~0~_~0~_ _ _ ~2~3~5~6_~0~_~0~6~1~4~0~3w06L-~0~Q~1~0~0~Q~1~Q~0~_~Q~__
1
32
O.
O.
O.
O.
O.
O.
O.
2.317
O.
0.750 0.183 0.067 O.
O.
O.
1
1
1
1
1

22

J

33

0

1

34

0.100

23

e33

0

O.

_...L-_ _~3_~C.o...J.LO..1.31L_~04___

4

C. 038

O.

•-...&._ _--"-_---'0.l.aJ.LC52.16"----"0'--

2
2

9
10
!l

12

C.025
o () J 1
o.
C ) 00
0.044
C 011
C.

O.

0

O.
0

O.

O.

a

0
O.

O.

0

0

2

O.

O.

O.

0
O.
0
O.

0

0
O.
0

0
O.
0

0 811
0.837
0 937

O.

O.

2.369
I 226
1.201
I 076
2.171
,

a
O.
0

0

0

0

0

0

O.
0

O.

O.

O.

O.

O.
0
O.

O.
0
O.

O.
0
O.

0

-D..~_ _ _.u..o~_--'LO~_--'L0~__~O~_.Jl..

O.

O.

2
13
coo
2
H
C.
O.
O.
15:L--___ .O 025
_..L2_.L:
Q
0
2
16
0.019
O.
O.
__ .2. __ 11
C.. Ql..L __ ._. Q
2
18
C.C03
O.
O.
19
C C08
0
0
20
0.C02
O.
O.
2)
COO
22
0.042
O.
O.

°

_. __ ._._----

0

O.

a

O.
0
O.
0

O.
Q

o.
0

O.

O.

0

0
O.
0
o.
0
O.

o.
0
o.
0
O.

O.
0
o.
0
o.
0

O.
Q
o.
0

O.

O.
0
O.
0

O.
--.0....

O.
0
O.
0
O.

]00

094

0

O.

0

900

0

100

O.

0.681
158
0.132
0 053
0.829

0.294
0 021
0.024
0 006
0.171

0

0

0

0

906

09.

0

0

0

O.
0 005
0.006
Q 004
O.

0.025
0
0.000
0
O.

O.
Q
O.
0
O.

0

O•
0
o.

0

0

0

0

O.

a

1.078
0.928 0.066 0.006 O.
O.
O.
o.
. I 146
0 904 0 052 0 039 0 005 D
0
0
1.142
0.868 0.122 0.009 O.
·0.001 O.
O.
) 035
0 976 0 012 Q 012 0
0
0
0
1.225
0.B61 0.094 0.019 0.009 0.017 O.
o.
1 ?B2
0 BI6 0 10 7 0 056 0 Oll
0
0
0
1.139
0.899 0.081 O.
0.019 O.
O.
O.
2 196
Q
0 400 0 432 Q 1)9 0 029 0
cj
2.420
O.
0.723 0.168 0.075 0.034 O.
O.
2 12.L_-u0~__-l01..o..lL88!1JIL-..JOLla..l].1IJ06~..u.0....J0.w0La.8--L10l&..-_.....IQ~_ _Ol1.o...-_
1.271
0.794 0.155 0.0.0 0.008 0.002 O.
O.
I 361
0 150 0 178 0 Olt) Q olg D OlD 0
0
1.026
0.977 0.020 0.003 O.
O.
O.
O.
J 057
0 947 0 049 0 004 0
0
Q
0
1.209
0.829 0.139 0.024 0.007 O.
O.
O.

-_ .. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Figure 15. Call Tape Reduction-Mean-For Reporting Interval Number.

(c) The implementation should preferably
be monitor independent, so that it can
be used at installations with nonstandard systems. Failing this, the structure
of the translator should be sufficiently
well documented so that modifications
can be made locally.

such a program would provide most of the advantages of a full new language, while at the
same time materially reducing the complexity
of the program. This would improve the likelihood of its being learned and used, which is
the ultimate test of value.

(d) Although not essential, if the language
is to be used for an entire program, as
might be the case for some smaller
problems, I/O and arithmetic functions
should be included. Special subroutines,
such as programs to assemble delay distributions, would be useful in this respect.

tion on grounds of space or speed, since critical
sections can be done in other languages, and
full bit manipulation capability would be provided.

The above statement of certain desired characteristics of a simulation language in effect
sets a rather limited goal, on the grounds that

It also would not be excluded from applica-

These requirements are quite general in nature, but we do not believe that detailed questions of program structure can readily be
deduced from a specific problem of the sort
which prompted the writing of UNISIM, nor
do we expect that this is an appropriate vehicle
for such discussions.

249

UNISIM-A SIMULATION PROGRAM FOR COMMUNICATIONS NETWORKS

The essential point, however, is that the programmer_ have available the full capability of
the machine if necessary, and a simulation language which is to have application to problems
of this sort must make this possible. To our
knowledge no language which presently exists
and is in general use, provides this capability.

Mrs. E. E. Bailey, Miss S. A. Switch, and Mrs.
A. Sheehan.
REFERENCES
1. "Some Traffic Characteristics of Communications Networks with Automatic Alternate
Routing," Bell System Technical Journal,
Vol. 41, pp. 769-796, March 1962, J. H.
WEBER.

X. ACKNOWLEDGMENT

2. "A Simulation Study of Routing and Control in Communications Networks," Bell
System Technical Journal, November 1964,
J. H. WEBER.

The programming of the various sections of
UNISIM was accomplished by the following
team at Bell Laboratories: Miss G. T. Watling,

TRUNKS
SUM
CARR lEO
--'SO""IE=GINNnIN""G-----=EN""OITI"II1NG,.----'f'1l"TfAX"1L--OR?ESf iO..-----,.C"'AR"'R"!""E"D-----=-.,;FUiX-TIME
TIME
TRUNKS
FULL
LilAD
ACCESS
- - --------_.. _-------- ------------------------ ----_ ...__ . .

CARRIED
LIMITED
ACCESS

PERCENT
PANty

PERCENT
FULL
ACCESS

PERCENT
LIMITED
ACCESS

1.00
3000.00
6663
0
----1001)0-.;001000.00
~663"----"O
8000.00
11000.00
6663
0
12000.00
15000.00
6663
0
16000.0-'-0_ _1::..9..:.0_00_•..:.0_0_ _ _ _
66-'6'-.3_ _ _..:.0_

402.600

76.514
74.636
71.728
80.527
82.218

92.103
92.668
92.013
90.950
90.493

7.891
7.332
7.987
9.:)50
9.507

~VERALL

BEGINNING
TIME
1.00
4000.00
8000.00
12000.00
16000.00

ENDING
TIME

15000.00
19000.00

5178.997
5365.530
5478.197

TRUNKS
RESo
FULL

6663
6663
6663
6663
6663

4695.531

~9n~-99T--·ij:608~-39r--- -364~-600··-

0
0
0
0
0

4765.330
413.667
4879.930
485.600
4_957 .~!._. 5!Q..~g_~ _

- SWITCH C"UNT

SYSTEM STANDARD DEVIATUNS

lalAL
TRUNKS

3000.00
tOOO.OO
11000.00

5098.130

~CCU-

DATA - ItEPeRTING INTERVALS

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

SUM
CARRIED
LIJAD

CARRIED
FULL
ACCESS

CARRIED
LIMITEO
ACCESS

339.522

291.658
214.849
211.104
196.565
199.628

81.048
60. 196
66.274
68.1/5
60.410

235. tt3
229.917
213.305
206.315

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

eVER-ALL Mt:ANS-CALL DATA TAPE

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

BEGINNING
liME
1.00 4000.00

BLeCK

ENDING
lIME

pUB.

AVE.
DELAY

---

DelAY OISTRIBUTHIN

O.

0.5

1.0

1.5

- 31l1rcr.~Ilf---lf~--____u_;_--- 0.-.---0.--. --0.
7000.00
0.009
D.
O.
o.
O.
o.

-"mnr.0c:r-"Il000;mr-lr.008---1);·~--lf.-·----1)_;;·----O~

12000.00

15000.00

0.012

O.

--n;omr.OO

1900.0.00

0.024

O.

O.

o.

o.
o.

o.
o.

O.

o.
o.

U()-:----n-----r.-I0"9
O.
1.103

O.

TIME

TIME

PReB.

DELAY

o.

0.5

o.
- - - - 4OOU.00--rooO;OO---0~014 --1)~-------1J~--~-\l;----8000.00
11000.00
0.013
O.
O.
o.
1.00

--------12000.00
16000.00

3000.00

0.013

O.

-1500cr.:oo----o-.015 - 1).-19000.00
0.017
O.

1.5

o.

O.
O.

AVE.
DECAY · 0 ;

1.00
4000.00
- - 8000.00
12000.00
16000.00

O.

0.034
0.026
0.029
0.034
-0.044

O.
0.--·
O.
·0.

0.101
0.097
0·.106
0.ll5
0.1l9

---r';II3---l)·~·8-88·

o.

1.124
1.128

O.

0.878
0.874

2.0

0.004
0.004
0.004
0.005
0.006

4

O.
O.

O.

O.

O.
O.
O.

j.

O.

o.

o.

O.
O.

o.
o.

O.
O.

o.

O.

o.

~··ClI.L-Uj(TA

--------.--~._~

LINK

LINKS

3

OlSrRIBUn~N

4

5

O.

HI SERY FACT0RS
BEGINNING
ENDING
BLeCK
- TIME
. - -- Tn4F-----PReB~-3000.00
7000.00
lIOOO.OO 15000.00
19000.00

0.892
0.897

0.063
0.033 0.041 0.020 O.
O.
o.
O.
0.··
ll~- -0-;m>l:--lr._1)3{I'O'."'O"'38.--"'....,-,,--,.-----...--...,;.:c--..;:.c:-0.018 O.
O.
o.
O.
O.
o.
O.
0.060
0.032 0.039 0.019 O.
O.
o.
o.
- - 0-.------0;- - -0-. - ----·O~ .-- ---0";--··~bZ---lf~()'y32.,--....
O-=-.0;.,4"'0.--;~~---;.-=---....;.:'----...=----;:
0.022 O.
O.
o.
O.
O.
O.
O.
O.
O.
0.059
0.030 0.037 0.019 o.
O.
o.
O.
O.

~

1.0

~

LlNKS

--·~---------·---·-------------"3V£I\-J.U.NTERVAl:;TANDARODEVTlTIlJNS

-1!£GfNNTNG ----EfIDTN(;---·Bl-ocK--/WF;---··_·---'JELlY--DISTRIBUTI"N

LX ~~K 01 S JR.I BUTI eN

AYE. N0.

2.0

O.
O.
. O.
O.
O.

DELAY DISTRIBUTIeN
0;5--~---1~0

O.

o.

O.

O.
0.··
O.
-D.

~---\l-;--.-

o.
O.

·r~;--

O.

---_ .. _----------

"2;0

O.

o.
O.
·0-; --- -0;-- o.
O.

o. .-

O.

AVE. Nil.
LINK DISrRI8UTI~N
L INKr-- --r----.,.-----..----.:---..,------:i~-~
3
5
0.215
0.220

0.201
0.211

0.189
0.194

·--o;ns--- -0;ZOS--D.T88
0.219

0.217 -

0.208

0.190

0.205·0~n7

0.031
0.040

O.

O.

0.031

O.

O.

0.040
0.038

O.

o.

O.

O.

o.

Figure 16. Overall System Means-Switch Count Data-Reporting Intervals.

O.

o.
O.
o.
o.
o.

O.
O.

o.
O.

o.

THE DATA PROCESSING SYSTEM SIMULATOR (DPSS)
(SP.1299/000/01)
Michael I. Youchah, Donald D. Rudie, and Edward J. Johnson
System Development Corporation
Paramus, New Jersey
1.0 INTRODUCTION

The D PSS can be used to determine the sensitivity of a data processing system's performance to various system loading or design parameters. In addition, the total system design,
including the software and equipment portions,
can be subjected to a rigorous analysis and
evaluation early in the design process so that
key decisions can be made in the areas of:
1. The kind of equipment to be used.
2. The number of each type of equipment.
3. The kind of data processing discipline
and strategy required.
4. The projected performance of the system
under varying loads.
5. The system's maximum capacity.
6. The system's ability to respond as a function of loading, capacity, and environment.

The Data Processing System Simulator
(DPSS) is a general purpose computer program that can be used for the evaluation of a
proposed new design or a modification to an
existing design of a data processing system
prior to making equipment selections or performing any significant computer program design. The DPSS can also be used to provide
guidance in the design and development of a
data processing system during the detailed design stages.
The DPSS was initially designed to meet the
needs of analyzing and developing the data
processing requirements of the Project 465L
Strategic Air Command Control System
(SACCS) . It has subsequently been generalized to permit its application to other systems
in various stages of design and development.
Results have shown the usefulness of the DPSS
in Project 465L (SACCS) and, in a preliminary manner, its usefulness on the Space Surveillance Project and New York State Identification and Intelligence System. In all three
cases, original concepts about the system's potential performance were evaluated and new
and significant guidance and information obtained as a result of the use of the DPSS. In
the case of the New York State System, the
DPSS results showed a whole class of computers to be inadequate for the job.

2.0 DEVELOPMENT OF THE DATA
PROCESSING SYSTEM SIMULATOR
In its development, the Data Processing System Simulator has used a higher order simulation language similar to those which have been
developed previously for general simulation.
However, unlike other techniques, a single combination of these higher order language macro'
instructions is used in a single logical arrangement permitting the representation of a wide
variety of possible data processing system configurations and processing rules with no additional programming or design.

251

252

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

As a consequence, the necessity of writing
special "event" programs or subroutines, as is
usually required with the use of simulation
languages, has been eliminated. Further, the
flow diagramming, design, coding, compiling,
and checkout of each simulator or subroutine
created by the use of simulation languages have
been totally eliminated. The result is a considerably shortened time required to produce
a reliable model of the data processing system
to be investigated.

2.1 DPSS Description
The following sections contain a general description of the DPSS and a sample problem
illustrating how it can be used.
2.1.1 General Characteristics
The Data Processing System Simulator requires approximately 1,500 instructions written in JOVIAL, a high-order programming
language developed by the System Development
Corporation.
The D PSS was initially designed to run on
the AN /FSQ-32-V computer which is described in Appendix V, however, a new and
expanded version of the DPSS has been written
to run on the IBM 7094.
The AN/FSQ-32-V version of the DPSS requires 15,000 core locations which are used to
store the basic program and the parametric inputs used for each run.

2.1.2 Purposes and Limitations
The DPSS is used to represent (a) the inputs to the system, that is, those message units
or informational units which are to be entered
into the system, at either local or remote locations, (b) the processing performed by the
computer on each input, and (c) the outputs
generated by the processing portion of the system based upon the inputs. Processing includes
the buffering and the retention of the messages
prior to processing. It also includes the specification of the time to load the system with the
necessary programs and environment to handle
the message and the time to unload and the
time to operate the actual program as well as
the data preparation and data presentation
functions.

3.0 DPSS OPERATION-GENERAL
To understand the functioning of the DPSS,
a general idea of the key features of the way
a possible Data Processing Central (DPC)
cycle operates will be discussed. The system
configuration to be considered in the example
will employ a discontinuous cycle "in which interleaving and interrupting are permitted. The
material for this example is drawn from experience with several systems and does not
represent the design of any single system. See
the Glossary of Terms, Appendix III, for an
explanation of key terms used in the following
paragraphs.

3.1 Data Processing Central (DPC) Operations
The input messages which arrive from various local and remote locations are batched at
the DPC (Figure 1) and held until certain
criteria for one or more of the batches are
reached or exceeded. The specific nature of
batching will be discussed subsequently. Once
a batch criterion has been exceeded, the Executive program which controls all DPC functions
then initiates the processing of the input messages which have been batched. In so doing,
it calls in from auxiliary storage the necessary
environment and programs for the operation
of the processing portion of the DPC cycle.
When the processing has been completed, a set
of output programs extracts the appropriate
data from the data files and prepares the required system outputs.
3.2 Input Batching
An input message batch is characterized by
three items, time, size, and interrupt, the latter
having two sub-items (see Figure 2). The
"time" item indicates that a particular message
or group of messages will be accumulated for
a given length of time before an indication
(cycle initiation request) is given to the Execu-

~N:,.u6.tING

H

'-------

PROCESSING

~I

Figure 1. DPC Cycle Operation.

OUTPUTS

THE DATA PROCESSING SYSTEM. SIMULATOR (DPSS)

tive or master program that a cycle should
start. The second item is the "batch" size. The
DPC will collect message (s) until a predetermined number of them have been accumulated.
This given number of message (s) must be
accumulated in less time than the batch time
in order to cause a request for the initiation
of a DPC cycle to be made because of "size."
Once either' of these two values (time or
size) has been exceeded, it must then be determined if the interrupt feature (the third item)
associated with this particular batch is set to
"yes" or "no," and if set to "yes" whether the
"immediate" or "wait" option is set. T.here are
two cases to consider here: (1) when the DPC
cycle initiation request occurs during the operation of an interleaved subsystem, and (2)
when the DPC cycle initiation request occurs
during the operation of DPC cycle in progress.
When any cycle initiation request occurs during the operation of an interleaved subsystem,
the Executive interrupts the interleaved subsystem at the earliest possible moment, regardless of the interrupt setting of the· batch, and
initiates a DPC cycle. If the cycle initiation
request
occurs during an on-going
DPC cycle,
Ll ____ Ll _____ Ll_! _ _ _ _ _ _ 1_ _ _ _ _ _
..J ______l! _ _ _ _ LL._

253

If the interrupt item has been set to "yes"
and the interrupt option to "immediate," then
the Executive program will initiate a new cycle
immediately (possibly with certain programming constraints). If the interrupt item had
been set to "yes" and the interrupt option to
"wait," then the current cycle will be interrupted when the priority of the message causing the interrupt request is equal to or higher
than the priority of the message being processed in the current cycle.
The D PSS permits the establishment of as
many batches as are required for efficientsystem operation, assignment and modification of
batch characteristics, and the assignment of inputs to each batch.

3.3 DPC Task Processing
Messages are processed by tasks within the
DPC Program System. The tasks are sequenced
according to the priority of the message being
processed (see Figure 3). One of the tasks
provides outputs from the system upon requests (display requests). This task is shown
as the last task in Figure 3, however, there are
many logical places where the task could be

l"IleIl l"Ilree l"IlIIlgOS CaIl Ilal' l'eIl, Uel'eIlulIlg UIl l"lle

setting of the interrupt item and interrupt
option. If the interrupt item is set to "no" for
a batch which causes a cycle initiation request
to be generated, then an indication will be
given to the Executive program that the batch's
limits of time or size have been exceeded but
the Executive will not interrupt the cycle in
progress. A new cycle will be initiated as soon
as the present one has been completed.
INPUT
BATCHING ! - - - - . . t

When a D PC cycle begins, all of the messages that have been collected in all of the
batches up to the time that the cycle begins are
transferred from the batches to the task processing area. In the task processing area, the
messages lose their batch identity and are processed according to the task sequence.
INPUT
BATCHING !-----IPROCESSINGt-----I OUTPUTS

BATCH'"

nME
1.5

IZE INTER
10

TASK TASK
TASK
- - - _ _ _ _ _ _ _ _ _ _ _ !.. _ _ _ _ _ _ _
M
2

YES

Figure 2. Batching Concept.

Figure 3. DPC Task Processing.

254

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

3.4 Input Data for Each Simulation Run
The use of the DPSS requires the definition
of the program system configuration and the
assignment of values for the system parameters as input data. The following set of input
data are typical for each run of the DPSS. The
sample values (placed within parentheses or in
tables) are used to describe a system that will
be simulated as an example. Note that if a system does not have some of the characteristics
described in the inputs, e.g., batching, then
that information can be left out of the input
data.
1. The length of the period to be simulated(3600 seconds).

2. The number of times that this test is to
be repeated under the same operating
conditions, referred to as the number of
cycles in the test- ( 1 ) .
3. The messages to be used in the test-(A,
B, C, D, E, F).
4. The number of each type of message that
will arrive at the DPC. This number is
not an absolute number; rather, it determines the relative frequency of each particular message arriving at the DPC. This
number is used in conjunction with the
traffic rate:

10
(B - 22
(C - 19
(A -

D - 31)
E - 5)
F - 18)

means a collection of programs that are
used to process a message or set of messages. The performance of a task is
measured as follows:
a. "Load Time"-The time it takes the
environmental data tables and the operating programs to be transferred
from the auxiliary storage to core
memory.
b. "Operate Time"-The time it takes
after the environmental data programs are in core for the programs
themselves to process the messages to
assess the intelligence they contain.
In both of these cases, the distributions of the times to be used for this
task and the proper parameter (s)
for the distribution must be specified.
(See Table I.)
7. Message-Task Relationship-This indicates the messages that are processed by
each task. The DPSS will accept any
message-task relationship.

Message

Task

A
C
B,D
E,F

1
2

3
4

Immediate
Wait
No

8. Message-Display Relationship and the
~obability of the Forced Display-This
is the relationship between messages and
forced displays. It indicates which display(s) may be forced as the result of
the message's being processed. Any message-display relationship may be established and tested. For each messagedisplay relationship, the probability of a
display's being forced is the conditional
probability that the display will be forced
given that the message has been processed. If a display is forced by more
than one message, the probability of a
displats being forced may be different
for each message. (See Table II.)

6. System Tasks-This is a list of the tasks
or jobs that the DPC Program System is
required to do. The word "job" or "task"

9. Task Sequence-This indicates the order
in which the tasks operate. There is no
restriction on the order in which the

5. The batch criteria for each batch and the
messages that are collected in each batch.
a. Time
b. Size
c. Interrupt
1) Immediate
2) Wait

Interrupt
Time
Size
Batch Message Criteria Criteria Option
1
2

3

A
B, D
C, E, F

0 Sec.
5 Sec.
10 Sec.

1

3
4

255

THE DATA PROCESSING SYSTEM. SIMULATOR (DPSS)

TABLE 1. SYSTEM TASK SUMMARY
LOAD
Distribution

TASK

Uniform

1

OPERATE
Parameters

Min

1 Sec

Max

6 Sec

Distribution

Parameters

Exponential

Mean .001 Sec

2

Exponential

Mean

4 Sec

Exponential

Mean .01 Sec

3

Uniform

Min

4 Sec

Uniform

Min.

.02 Sec

Max

5 Sec

Max

.02 Sec

Min

1 Sec

Peak

3 Sec

Max

8 Sec

Min

2 Sec

Max

4 Sec

Triangular

4

Additional Task
which is performed whenever
a system output
is generated.

Uniform

tasks operate. In addition, a task may
operate more than once during a cycle.
Task

Sequence No.

1

1
2

3
2
4

3
4

10. Traffic Rate-This indicates the total volume of traffic per hour that is arriving at
the DPC. By knowing the traffic rate and
the relative frequency of each message,
one is able to determine the expected
number of each type of message that will
arrive at the DPC within any time interval. Preplanned changes in traffic rates
are permitted during the test- (750 messages/hour). "

Exponential

Mean

1 Sec

Exponential

Mean

5 Sec

pertinent data after a DPC cycle has been
requested- (0 Sec.).

3.5 Results for Each DPSS Run
Each simulation run records and prints out
the following items of information:
1. The arrival time of every message that is
received by the computer.
2. The time that each cycle is requested.
3. The time that each cycle begins and the
reason for initiation.
TABLE II. MESSAGE-DISPLAY
RELATIONSHIPS
Message

Display

A

D1
D2
None
D1
D3
D4
None
D5
None

11. Maximum Interleave Time-This is the
maximum time available for the interleave subsystem. This time could be zero,
in which case the prime DPCcycle would
operate in a cyclic fashion-(1800 Sec.).

B
C

12. The Bookkeeping Time for the Interleave
Subsystem-This is the time that is given
the interleave subsystem to store and save

D
E
F

Probability
of Forced
.8
.3

.6
.5
.01
1

256

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

4. The number of messages that have been
collected in each batch at the beginning
of each cycle.
5. The time that the processing of each individual message begins.
6. The time that the processing of each individual message is completed (processing
complete means that the data files have
been updated) .
7. For every display that is forced during a
cycle the message that forced the display,
the time the message arrived and the time
the display is forced are indicated.
8. For every cycle the minimum and maximum time required to process each type
of message during the cycle.
9. A cumulative average processing time by
cycle for each type of message in the system.
10. The time that each cycle ends.
11. A list of messages remaining to be processed at the end of each cycle.
12. The total number of messages that were
received and processed by the computer
during the simulation period.
13. For every type of message:
a. The number of messages that were expected to arrive during the simulation
period.
b . The number of messages that actually
arrived.
c. The number of messages processed.
d. The average waiting time for this
type of message.
e. The average processing time for this
type of message.
f. A histogram which indicates the percentage of messages whose. processing
time was in each of several one minute intervals; e.g., the percentage of
messages whose processing time was
between 0 and 1 minute, between 1
and 2 minutes, ... , 30 to 31 minutes
and 31 plus. The DPSS does not plot
the histograms; rather, it supplies the
data from which a plot can be drawn.
14. The number of times that each display
type was forced.

4.0 DETAILED EXAMPLE OF THE DPSS
The DPSS is described in detail with the aid
of an example. This example will consist of a
description of the system to be simulated and
a detailed account of the arrival and processing
of the first few messages. I t should be noted
that all of the features of the DPSS are not
identified in this example. However, enough of
them have been identified and described so that
the reader can get a good understanding of the
model by following the example.

4.1 Description of System Being Simulated
The input parameters identified in Section
3.4 which describe the system being simulated
are summarized in four tables: MESSAGE,
BATCH, TASK, and SYSTEM tables. The MESSAGE table identifies the messages, their frequencies, the batches in which the messages are
collected and the displays that are associated
with the messages. The BATCH table identifies
the batches, the batch criteria for each batch,
and the message types that are associated with
each batch. The TASK table is divided into
two parts: LOAD and OPERATE. The LOAD
part is used to specify the probability distribution and parameters that are used to determine
the length of time it takes to transfer the processing programs and environment from auxiliary storage to core. The OPERATE part is
used to specify the probability distribution and
parameters that are used to determine the
length of time that it takes to process each
message after the processing programs and environmental data are in core. The SYSTEM
table indicates the length of the test, the rate
of the incoming messages and other pertinent
information for the test.
See tables III, IV, V and VI for this example.
The ADD, CHANGE and DELETE columns
are for the convenience of the user when he is
making a series of runs and may wish to add
or delete displays that are associated with a
message, or to change the probability of a display being forced.

4.2 The DPSS in Operation
The simulator generates the messages and
"sends" them to the computer, in the same

257

THE DATA PROCESSING SYSTEM. SIMULATOR (DPSS)

TABLE III. MESSAGE TABLE
Number

Forced Displays

Message

Per Test

Batch

Display

Add

A

10

1

Dl
D2

x
x

.3

B
C

22
14

2
3

Dl
D3
D4

x
x
x

.6
.5
.01

D
E
F

31
5
18

2
3
3

D5

x

Change

Delete

Probability

.8

1.0

fashion as it would receive them in an operating system. This system has'isix message types.
During the simulation period they are "sent"
to the computer at a rate of 750 messages/
hour.

distributed pseudo random number y = .362 is
picked, then

The incoming system messages arrive according to a Poisson distribution, i.e., the interarrival times of the system inputs are exponentially distributed.

This means that 2.16 seconds after the arrival
of the last message (or from the beginning of
the test if this is the first message to arrive)
another message arrives at the central processor. The type of message that was received
has not yet been determined. Each type of
message is assigned a range on the interval
(0, 1). The range is dependent on the relative
frequency of the particular message type. To
determine the message type, another random
number is generated and checked to see which
range it falls in.

If x is the interarrival time then an exponentially distributed interarrival time has the following form:
1
1
x = - In ( - - )
a
1 - Y

(1)

Where l/a is the mean of the distribution and
y is a uniformly distributed random number
between 0 and 1 as determined by the use of
a pseudo random number generator.
In our case, if we want x in seconds, then
l/a = 3600/750. Suppose that the uniformly

x = 3600/750 In (

1

1 - .362

)

= 2.16 seconds

It should be noted that the order sequence
in which the ranges for the various message
types are laid out on the unit interval does not
in any way influence the simulation process, the
reason being that the picked random number

TABLE IV. BATCH TABLE
Interrupt Option
Batch

Size

Time

1
2
3

1

o Sec

3
4

5 Sec
10 Sec

No

Immediate

Wait

x
x
x

Message Associated
with Batch
A
B,D
C,E,F

258

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

TABLE V
-------------------------------------------TASKTABLE-LOAD---------------------------DISTRIBUTION

TASK TASK TASK
SEQUENCE
NAME NO.

I
2
3
4

I
3
2
4

MESSAGES
ASSOC. WITH

EXPONENTIAL ARBITRARY
MEAN

A
C
B. D
E. F

CONTINUOUS

CUM. PROS.

VALUE

NORMAL
MEAN STANDARD
DEVIATION

TRIANGULAR
MIN.

UNIFORM

MAX. PEAK MIN.

MAX.

I SEC 6 SEC
4 SEC
4 SEC 5 SEC
I SEC 3 SEC 8 SEC

DSP.
TSK

2 SEC 4 SEC

TASK TABLE - OPERATE
DISTRIBUTION
MESSAGES
TASK TASK TASK
ASSOC. WITH
NAME NO.
SEQUENCE TASK

EXPONENTIAL
MEAN

I

I

A

.001 SEC

2

3

C

.01 SEC

3

2

B. D

4

4

E. F

DSP
TSK

ARBITRARY
CUM. PROS.

CONTINUOUS
VALUE

NORMAL
MEAN STANDARD
DEVIATION

TRIANGULAR
MIN.

MAX. PEAK

UNIFORM
MIN.

.02
SEC

MAX.

.02
SEC

I SEC

5 SEC

TABLE VI. SYSTEM TABLE
Message

Rate

Length of Test
3600 Sec.

Time
Rate of
seconds) Messages MAXIMUM TIME IN------------- TERVAL BETWEEN
o
750
COMPLETION OF A
CONTROL CYCLE
AND REQUEST FOR
A NEW CONTROL
CYCLE 1800 Sec.
(in

is always uniformly distributed over the unit
interval.
The ranges for the messages in this system
appear in Table VII.
This means that, if alter a message has arrived
and the random number is picked to determine
what type of message is in the interval .47 to
.77, then the message will be tagged as message
type D.
Using the procedures just outlined, the interarrival time, the time of arrival and type message that arrived of the first 6 messages in the
system. (See Table VIlla.)

LENGTH OF TIME
ALLOTTED THE INTERLEA VE SUBSYSTEM TO STORE
DATA 0 Sec.

In addition to these inputs, suppose that the
messages arrive at the times indicated. (See
Table VIIlb.)

NUMBER
RUNS 1.

The DPSS does not actually generate messages this far in advance; rather, it always generates enough messages to keep the arrival of

OF TEST

259

THE DATA PROCESSING SYSTEM SIMULATOR (DPSS)

TABLE VII. RANGE OF NUMBERS
FOR EACH MESSAGE TYPE
Range
Message Type (Approximate)
A
B
C
D
E
F

.10
.22
.14
.31
.05
.18

TABLE VIllb. MESSAGE ARRIVAL
TIMES AND TYPES

From-To

Message

oto .10
.11 to .32
.33 to.46
.47 to .77
.78 to .82
.83 to 1.0

C
E
F
B
A
D
A
B

the last generated message ahead of the time in
the processor. The simulator could have been
designed to generate all of the messages that
will be used in the simulation prior to making
the actual run. This is an acceptable method
provided that feedback from the central processing unit will not influence the arrival of
messages.

4.2.1 DPC Cycle Simulation-Cycle I (Figures
4 and 5)
The first message (message D) arrives at
the computer at 2.16 seconds after the start of
the test and is collected in batch 2. It is the
first message in the batch. The time criterion
of batch 2 is 5 seconds, hence batch 2 will request a data processing cycle at 7.16 seconds.
This batch has a "wait-interrupt" option. Message E arrives at 2.27 (2.16 + .11) seconds,
and is collected in batch 3 which will request
a cycle at 10 + 2.27 seconds or 12.27 seconds.
Similarly, Message A arrives at 2.29 seconds
and is coilected in batch 1, which has the "im-

Arrival Time from
Start of Test
18..4 Sec.
19.6 Sec.
20.7 Sec.
21.3 Sec.
21.8 Sec.
22.8 Sec.
23.7 Sec.
25.4 Sec.
27.5 Sec.
36.5 Sec.

C

E

mediate-interrupt" option set. The interrupt
occurs immediately and a cycle is initiated.
Note that the computer was available for other
tasks (other than Executive processing) during the first 2.29 seconds.
As soon as a cycle starts, all of the batched
messages are tran~ferred to the task processing
area and the time and size criteria associated
with each batch is reset. There are three
messages to process in this cycle:
Message

Time of Arrival

D
E
A

2.16
2.27
2.29

The cycle is set so that the tasks 1, 2, 3, 4
operate in the order 1, 3, 2, 4. Task 1 will
10

TABLE VIlla. MESSAGE ARRIVAL
TIMES AND TYPES

Random
Number
.362
.023
.004
.770
.478

Interarrival
Time
2.16
.11
.02
7.06
3.12

Arrival
Time
from
Start Random
of Test Number
2.16
2.27
2.29
9.35
12.47

.72
.82
.02
.35
.11

INPUT
ARRIVALS

BATCHES

DEA

15

CI

I

I

D 2.16
E 2.27
A 2.39

9.35

I

12.47

I REQUEST
CYCLE

7.16

Message
Type
D
E
A
C
B

CYCLE

2

t----~I

3

t-------~I

REQUEST
CYCLE

12.27
REQUEST
CYCLE

BEGIN CYCLE

I

Figul'e 4. DPC Cycle Simulation Message BatchingCycle 1.

260

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
5

INPUT
ARRIVALS

OEA

C

I

15-

10'

B

9.35

02.16
E2.27
A2.29

I

1

I

I

12.47

20
ACE IFBA 0
1
1 1 1 II 4
16.6018.4\ 111~h8
19.6
21.8
20.07 21.3

BATCH

,

~~~ST

17.47
1------11

REQUEST
CYCLE

19.35

.....-_ _ _ _--11

CYCLE

5.19

7.914

10.534

2.2~L.T.IIL.T.3IL.T.41
5. 204 7. 934
0

20.23

,Ja.52
,L.T•. ,

13.32

i:~,: rN~ r~
A

~~~ST

E

&}~PUT
OS

BEGIN CYCLE
12
20.23

Figure 5. DPC Cycle Simulation.
Cycle I-Operation
Cycle II-Batching

operate during this cycle, since task 1 processes
message type A and a t least one message A
arrived before the cycle began. The processing
time for the task is divided into a load and
operate time.
The load time for task 1 is uniformly distributed between 1 and 6 seconds. The length
of time that is required to load task 1, this
time, is determined by picking a uniformly
distributed random number and applying it to a
formula.
To obtain a uniformly distributed random
number lying between a minimum "m" and a
maximum "M," one picks a uniformly distributed random number on the interval (0, 1) and
uses the formula
y = m

+x

(M - m)

(2)

where y is the desired value uniformly distributed between m and M and x is a uniformly
distributed random number on the interval
(0, 1).
In this case, m = 1, M
number x is .38 then
y

=

6 and if the random

1 + .38 (6 - 1)
= 2.9 seconds

=

Hence, it takes 2.9 seconds to load task 1, this
time.
Since the cycle started at 2.29 and it takes
2.9 seconds to load task 1, the time is advanced
to 5.19 seconds. After the task is loaded, the

operate part of the task must be performed.
The operate time for task 1 is exponentially
distributed with mean .001 seconds. A uniformly distributed random number (0, 1) is
again chosen. The processing time for message
A is determined in the same fashion as the
interarrival time was chosen for the incoming
messages. Suppose that the processing time is
determined to be .014 seconds, the simulated
time is now advanced to 5.19 + .014 or 5.204
seconds.
The DPSS performs the "load" part of the
task operation once per task and the "operate"
part once for each message that is processed
by the task.
The D PSS is an event oriented simulator
hence the simulated time "steps" from event
to event. However, whenever the time is
advanced, the simulator always checks to see if
any other event occurred or was to occur in
the interval between events. Whenever this
happens, the simulator "backs-up" to take
appropriate action. Message processing for
task 1 is now complete. Since message A has
two displays associated with it, a check must
be made to determine if these displays should
be forced this time.
The probabilities of forcing the two displays
D1 and D2 (Table II) associated with message
A are .8 and .3 respectively. Two random numbers are picked, say .94 and .47. Since .94 is
not between 0 and .8 and .47 is not between 0
and .3 neither of the displays is forced. If, for
example, the random numbers chosen were .63
and .47 then only Dl would be forced.
The next task in the sequence, task 3, operates since it processes message Band D and
one message D arrived before the beginning of
the cycle. Task 3 is "loaded" into the computer
with the load time determined in the way as
was used to determine that for task 1. Suppose
the load time turns out to be 2.71 seconds; the
system time is advanced to 7.914 seconds.
The "operate" part of task 3 is performed
on message D. Task 3 has a uniformly distributed "operate" time with minimum equal to
the maximum hence the "operate" time, .02, is
constant. The time is advanced from 7.914 to

261

THE DATA PROCESSING SYSTEM, SIMULATOR (DPSS)

7.934 seconds. Task 3 is now ready to generate
displays but since message D does not generate
any displays, the cycle moves to the next task
in the sequence.
Task 2 which processes message type C is
the next task scheduled to be' processed, however, no C messages arrived before the cycle
began, hence task 2 is skipped during this cycle.
Task 4 processes messages E and F and since
an E message arrived before the beginning of
the cycle task 4 will operate. Suppose its load
time is 2.6, advancing the time from 7.934 to
10.534 seconds. During the load time for task
4, message C arrived at 9.35. Batch 3 has no
interrupt option, however, message C will
cause a cycle initiation request to be issued at
19.35 seconds (10 seconds from the arrival of
message C). Since no interrupt occurred, the
cycle continues, the operate time for message
C taking 2.79 seconds. This brings the time
from 10.534 to 13.324. During this time message B arrives at 12.47. Message B is collected
in batch 2 which has a "wait-interrupt" feature
causing a cycle to be requested 5 seconds after
its arrival (being the first message in batch 2)
at 17.47, or whenever 2 messages arrive in that
batch. The task in progress is continued and
since message E forces display D5 with probability 1.0 the task that forces the display must
be "loaded" taking, say, 3.2 seconds, bringing the time from 13.324 to 16.524. Display D5
is now forced, which takes 3.71 seconds, bringing the time to 20.234 seconds. Message A
arrives at 16.60 seconds during the "operate"
part of the task which forces displays. Since
message A is collected in batch 1, a new cycle
is requested at 16.60. The simulator has the
capability of handling a request for interruption of a logical operation in two ways. In the
first way, the DPSS can honor the interrupt
as soon as it occurs; in this case the "operate"
part of the task which forces display D5 would
have been interrupted. The second way is to
recognize the interrupt request and honor it as
soon as the current logical operation has been
completed. For purposes of this example, the
interruption will take place as soon as the
current logical operation is complete. Thus
the interrupt request will be held until the
output processing is complete, 20.234 seconds,
hence a new cycle begins at 20.234 seconds.

4.2.2 DPC Simulator-Cycle II (See Figures
5 and 6)
The following messages arrived during the
first cycle and are waiting to be processed in
the second cycle:
Message

Time of Arrival

C
B

9.35
12.47
16.60
18.4
19.6

A
C
E

The DPSS has the option of processing the
messages in the order that they are received
or according to some sequence which is independent of arrival order. In this system the
messages are processed according to a preset
sequence, i.e., message A is processed before
message B even though it arrived later in time.
The two C messages will be processed together
with the one arriving at 9.35 seconds being
processed before the one arriving at 18.4
seconds.
Again, in this cycle, task 1 is the first one
to be operated. Suppose the load time is
determined to be 3.9 seconds; this advances the
20

25

'Y'l'FBA A

!NPUT
ARRIVALS

C

18

III I I

I

30

35

C

I

BATCH

I

2

REQUEST
CYCLE

3

REQUEST
CYCLE

CYCLE

END CYCLE

20. 23
2

I

L.T.I

24. 13

I

8

-~-- .. _____ ~_!_~

3.9 SEC TASK 3 TASK 2
PROC. A
3

BEGIN
CYCLE

3

Figure 6. DPC Cycle Simulation.
Cycle II-Operation
Cycle III- Ba tching

TASK 4

262

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

time to 24.13 seconds. The following events
occur during the load of task 1:
Message

Arrives at

F
B
A
D
A

20.7
21.3
21.8

Collected
in Batch

Request
Cycle at

3
2
1
2
1

30.7
26.3
21.8
26.3

~2.8

23.7

Message A collected in batch 1 causes a cycle
to be requested at 21.8 seconds. This request
is the "interrupt-immediate" type. However,
under the operating rules of this system, the
cycle interruption will not take place until
task 1 processing has been completed at 24.132
seconds. Note that the second message A arriving at 23.7 seconds does not generate another
cycle request. The messages that were to be
processed by tasks 2, 3, and 4 are queued when
the cycle interrupt occurs.

4.2.3 DPC Simulation-Cycle III (See Figures
6 and 7)
The third cycle starts at 24.132 seconds. The
batches are again cleared and the time and size
criteria counters are reset to zero. Task 1
operates first (there are two A messages to be
processed) and is completed at 27.9 seconds.

INPUT
ARRIVALS
BATCH

25

30

HDA

IB

C

22

I

I

~ 1 ".1

35

I

4.2.4 DPC Simulation-Cycle IV (See Figures
7, 8, and 9)
Cycle number 4 begins at 31.5 seconds. The
following messages have been collected in the
batches during the third cycle or have been
queued from previous cycles:
Message
Number
B
1
3
C
E
1
1
F

.I()

I

25.4 27.5
21.8 23.7

During the operation of task 1, message B
arrives at 25.4 seconds and message C arrives
at 27.5 seconds. Message B will cause a cycle
to be requested at 30.4 seconds and message C
will cause a cycle to be requested at 37.5 seconds. The request from batch 2 (containing
message B) will be an "interrupt-wait," that
is, the interrupt will occur when all of the
messages which are processed before Band D
have been processed, but the interrupt will not
interrupt the currently operating task. In this
cycle, task 3 operates after task 1 because two
B's and 1 D are waiting to be processed. Processing of task 3 is complete at 31.5 seconds.
N ow since B is a higher priority input than
those processed by tasks 2 and 4 the cycle will
be interrupted after task 3 has been completed.
The inputs that would normally be processed
by tasks 2 and 4 are queued for the next cycle.

I

INPUT
ARRIVALS

36.5

BATCH

~-n

C

I
27.5

30

35
I

40
I

,

E

36.5

REQUEST
CYCLE

t--------I,

~~~~ST

CYCLE
CYCLE

o
24.132 A B C

I

A

I

B

Y

F

' __ £._-I_.! __ ~

~~~C~C~SK

TASK 2

TASK 4

3

~~~~~

c

I

4

Figure 7. DPC Cycle Simulation.
Cycle III-Operation
Cycle IV-Batching

C
BEGIN
CYCLE

F

'TA~K 3 'TA;K 2' TASK
E I
4

Figure 8. DPC Cycle Simulation.
Cycle IV-Operation

THE DATA PROCESSING SYSTEM. SIMULATOR (DPSS)

o
INPUT
ARRIVALS

10

DEA
C
0-2.16
E-2.27
A-2.29
,2.29
REQUEST
CYCLE

BATCH

I

9.35

15
B

I

12.47

35
A

I

16.60 119.61 '1.8f23.725.4
IS.4 20.71 21 • 3 22. S
16.60

7.16

1

I

17.47

REQUEST
CYCLE

26.3

12.27

31.4

I I

REQUEST
CYCLE

2.27

36.5

REQUEST
CYCLE

r - -___I

I

40

E

21.S

1

REQUEST
CYCLE

2.15

263

1

REQUEST
CYCLE

REQUEST
CYCLE

19.35

REQUEST

rl--------~==LI______~I ~1--------F===LIC~Y~C~LE~-,3~7IL·5----REQUEST

CYCLE

BEGIN2~rfLE5.19
IL

T

'I L.

7.914
T.

oIL.

5.204
PROCESS
INPUT A

T

CYCLE

10.~~;LE
41

PROC

IL

T.

REQUEST

16.52 REQUEST
Tel
20j23

CYCLE

iNPUT E 13. 32
PROCESS
GEN. OUTPUT 05
0

20·~.T.124.13

B

~

E

~----+----~---

3.9 SEC .002 T.3 T.2
T.4
PROCESS A
0
24.132 A B C
F
ABC
E
lrASK I YASK3 ITASlr2lr'ASK~
C

B

4

C
C

F
E

'TASK 3 'TASK 2 ITASK

!

Figure 9. DPC Cycle Simulation Summary.
Cycles I, II, III, IV.

Therefore, tasks 3, 2, and 4 will operate in cycle
number IV if no interruptions take place. This
procedure is continued until the end of the test.

5.0 DPSS APPLICATIONS
The DPSS has been applied primarily to real
time management information and command!
control type systems. The initial major emphasis was in the design and development of
the 465L SACCS. Approximately 300 production runs were made simulating 2000 hours of
actual operation.
While the checkout and installation of the entire operational SACCS program system is not
yet complete, significant portions of it have been
successfully demonstrated. The results of these
demonstrations are classified, but it can be said
that the DPSS predicted results were close to
actual performance figures.
The initial application of the DPSS to the
N ew York State Identification and Intelligence
System during the feasibility study phase
showed that a class of computers could not
handle the job unless the user drastically
changed his requirements. The choice was offered to the user early in the system acquisition
process to make the trade-off of dollars versus

capability on a more informal basis. As the
work on this system progresses, the DPSS will
continue to 'be used to evaluate the various
possible system configurations and aid in the
selection of the appropriate hardware.

5.1 Applica.tion of the DPSS on 465L SAGGS
At the outset of the investigations performed
with the DPSS, many combinations of SACCS
system characteristics were checked because of
the complexity of the problem. A list of the
maj or system characteristics checked are shown
in Table IX.
One of the system characteristics initially
subjected to detailed investigations was the
length of the control cycle. This was done because system response time (the time from the
initiation of a request for data until the data
was presented) was found to be a function of
normal uninterrupted DPC cycle time. *
Cycle time was, in turn, found to be a function of many items, such as total message rate,
tasks, sequencing, and batches. It was also

* This evaluation was made prior to the introduction
of the interrupt feature, which permits short cycles
and fast response, but which causes the average age
of data presented and message queue lengths to
increase.

264

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

TABLE IX. SYSTEM CHARACTERISTICS
INVESTIGATED IN INITIAL SIMULATION
RUNS
MAX

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Length of Control Cycle
Response Time
Maximum Message Capacity
Age of Data
Storage Requirements
Average Processing Time Per Message
Type
Average Waiting Time Per Message Type
Queue Lengths Per Message Type
Message Priority System
Relationship and Sensitivity of the System to Combination of 1 Through 9
Above

found to be extremely difficult to predict system
response time with a reasonable degree of certainty under a wide variety of operating
conditions.
To overcome this problem, an "interrupt feature" was introduced into the design, which
permits extremely rapid data presentation on
demand. However, prior to incorporating this
system change the effect of the interrupt feature on the system was checked and the "cost"
of extremely short response time was dramatically demonstrated (Section 5.1.1 and Figure
11). The costs and other side considerations are
discussed in the next section, Results of DPSS
Runs and Their Interpretation.

5.1.1 Results of DPSS Runs and Their
Interpretation
The types of outputs from the simulator runs
were as shown in Section 3.5 with some typical
results shown in Figures 10 and 11.
In testing various possible program system
structures, one of the objectives was to attempt
to have the average times to process each message type become relatively constant (Figure
10). The average age is checked for a wide
range of message loads and the value at which
this leveling out occurs would then represent
the expected average age of data in the system
by message type.

AVG

TIME
MIN

2

3

CYCLE CONTROL NUMBER

Figure 10. Min, Max and Average Time to Process
Each Type of Message by Cycle.

Message-batch-task arrangements are investigated to find those arrangements which
tend to stabilize the average processing time
values (with minimum spread) in order to
select an optimum program structure. The histogram of message processing time for each
message type ( Figure 11) for the messagebatch-task arrangement is then evaluated.
In the case shown in Figure 11, the effect
of the interrupt feature (for display requesting) on system performance was evaluated. The
high priority display request technique was introduced to permit the interruption of the system in order to respond to data presentation
requests in minimum time.

It can be seen from Figure 11 that for a given
set of system loading conditions, 100% of the
high priority display requests were honored
in one minute or less. However, the effect on
a low priority data message was dramatic and
100%

%

OF
MESSAGES
PROCESSED

HIGH PRIORITY DISPLAY REQUESTS

2

3
TIME (MINUTES)

socro

"lo

OF
MESSAGES
PROCESSED

10%

29

30

LOW PRIORITY DATA MESSAGE"
(ONLY 1/3 OF TOTAL REC·D
WERE PROCESSED)

31 - - - .

31+

TIME (MINUTES)

Figure 11. Histogram of Message Processjng Time.

THE DATA PROCESSING SYSTEM. SIMULATOR (DPSS)

required further assessment. N one of the lower
priority data messages was processed in under
28 minutes. Only 5% were processed between
28 and 29 minutes, 10% processed between 29
and 30 minutes, 35 % processed between 30 and
31 minutes, and 50% of all messages processed
took 31 minutes or longer.
These results can be interpreted to mean that
the high priority data presentation requests
which were honored in one minute or less did
not make use of the data contained in the lower
priority data messages. For the same case, the
queue length was determined from the fact that
only 113 of the lower priority data messages that
were received were processed.
I t was further necessary to determine exactly
what type of data was contained in each type
of message and what its variability might be.
If the lower priority messag-e contained data
which varied relatively little over a period of
several. hours, then the fact that 50% of the
data might be as much as 30 minutes old is of
considerably less consequence than if the data
were extremely variable in less than 30-minute
increments.
Therefore, by investigating the histograms
for each message type, establishing limits on the
number of high priority display requests which
might be made periodically, and determining
the proper message priority and message-batchtask relationship, it was possible to arrive at a
program system structure which satisfied .Operational Requirements.

5.2 General Results
The results of the simulations showed that
the system is most sensitive to the use of the
interrupt feature. This "system interrupt"
was found to cause short cycle times which
could create the impression of highly efficient
operation. However, the queue sizes and waiting times were increasing as a result of the increased use of the interrupt features.
The total message rate imposed upon the system with all or most message types being present was found to be second in importance to the
system's operational performance. The presence of all ( or· most) message types causes a
maximum number of input-output (I/O) transfers to occur. I/O transfers are one of the most

265

time consuming aspects of data processing tasks
and caused total cycle time to increase as the
number of transfers increased. t

It was also determined that the system was
not particularly sensitive to the relative frequencyof each message type for any given input
rate as long as all or most types of messages
were present. This particular aspect of the environment assumed secondary importance based
on these results.
The investigation of the "time. to load" and
"time to process" portions of the system's task
operating times showed a high proportion of
time to load vs. time to process. This suggested
that the system's apparent I/O limitations
would bear further investigation for possible
improvement of overall system operation.

5.3 System Improvements
A disc file is used as the principal auxiliary
storage device for the SACCS. A study of its
characteristics suggested that a change from
the current serial read procedures to parallel
read procedures could produce a considerable
reduction of I/O time. A conservative estimate
of the I/O time reduction factor attainable was
set at 10 because of anticipated engineering
problems, and also because there are existing
hardware items other than disc files which have
the desired timing characteristics and do not
involve modification of the disc.
When only the times to load and unload
(I/O) of all system times were reduced by a
factor of 10 the results of the DPSS runs
showed a very high payoff available for such
a modification.
The probable results from the reduction of
the I/O time are shown in Table X. In these
results, the "rates" refer to the message input
rate per hour; the "load" refers to either a
"normaP' (N) loading and unloading time or a
"1/10 normal" loading and unloading (I/O)
time. "Interleave" means the availability of
DPC time for other operations which might
normally occur as part of a time sharing funct This is not necessarily a linear function. Also note
that the effect of I/O transfer time on total cycle
and response times is a complex relationship, i.e.,
many I/O's can occur with no responses required and
response time therefore becomes meaningless in this
case.

266

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

tion of the system. The load rates shown are
hypothetical and do not in any way reflect
actual rates. However, the effect of reducing
the I/O time factor in the total system operating time is clearly demonstrated as a function
of relative loads.
It is apparent from the results shown in
Table X that auxiliary storage devices with
the performance specifications inferred from
the reduced I/O time factor would be desirable
to permit maximum time sharing and maximum
expansion potential in the system.

6.0 DPSS CAPABILITIES SUMMARY
A summary of the capabilities of the Data
Processing System Simulator are:
1. System Feasibility Studies

2. Simulates Computer Based Data Processing Systems
3. Evaluate Equipment and Processing Discipline Combinations vs. System Operational Requirements
4. Establish Equipment Configuration for
the System
5. Establish Program Configuration for the
System
6. Development of Detailed Design Requirements (Operational Program Requirements, Subsystem Design Specifications,
Program Design Specifications)
7. Set Initial Parameters for the Operational
System
8. Determine System Performance Requirements (for Acceptance Testing)
TABLE X. PROBABLE RESULTS FROM
MODIFICATION OF I/O DEVICE
Conservative Assumed Improvement of I/O
Time = Factor of 10
Rate

10
30
10
30
60

Load Interleave
N
N

0-30%

1/10
1/10
1/10

80%
60%
30%

None

Comment
Acceptable
Poor
All Requirements Met
All Requirements Met
All Requirements Met

9. Evaluate Proposed System Modification
and Retrofits before Implementation
The flexibility of the DPSS in terms of the variability of both the inputs to be tested and simulation program logic makes this tool useful in
the early stages of establishing data processing
system requirements. I t is a powerful tool in
performing system feasibility studies, simulating the operation and performance of computer
based data processing systems, and in evaluating equipment and data processing discipline
combinations as a function of system operational requirements.
Once past the initial phases of system development process, the DPSS can continue to be
useful in helping to evaluate the equipment
configurations being considered for the system,
and in establishing the framework for the
computer program configuration for the system. This latter framework includes items such
as the need for Executive or master control
programs, the structuring and organization of
system inputs, processing tasks, and outputs.
During the system implementation and acquisition phase, the DPSS is of continuing usefulness in the development of detailed design requirements. The key design features for
Operational Program Requirements (OPR),
Subsystem Design Specifications (SSDS), and
Program Design Specifications (PDS) can be
determined and established as design goals.
This work, in addition, is valuable in setting the
initial parameters for the operational system.
The DPSS can be used to develop System Performance Requirements (SPR) which can be
used at the conclusion of the system acquisition
phase during which acceptance testing is performed. The SPR's can be established early in
the design process and used by both the contractors and the procuring agencies as performance criteria for determining the successful
completion of the design and implementation
phase.
Proposed system modifications and retrofits
can be evaluated before commitments are made
for additional equipment, computer programming, or human action requirements. This
evaluation is essentially the performance of the
system feasibility studies discussed earlier in
this section. Thus, the design, development, in-

THE DATA PROCESSING SYSTEM. SIMULATOR (DPSS)

stallation, and acceptance testing procedure can
be completed by providing the analytic capability needed to continually refine and improve
any system in existence or proposed for future
development without becoming so deeply committed in time and dollars that prohibitive
rework costs are incurred as is currently the
case in the field of command}control and management information systems development.
7.0 EXPANDED DPSS CAPABILITIESMODEL C

The experience gained by applying the DPSS
to three major management control systems in
different phases of development (see Section
1.0) identified areas in the. original version of
the DPSS which could be further generalized
and expanded so that it can be used to simulate a greater variety of data processing systems. The expanded DPSS-Model C is now
operational on the IBM 7090/7094 computer.
DPSS-Model C is a self contained program
package; i.e., it does not require the use of a
control program. In this way, the operation of
the program is "streamlined" so as to reduce
the computer time required to make each run.
In addition to the capabilities of the original
DPSS described in Sections 1.0 through 6.0 inclusive, DPSS-Model C has the following
additional features:
a. The DPSS-Model C program is structured so that one programming task has
the ability to create inputs for other tasks.
b. Associated with each message-task relationship is the probability of message
being processed by each of its associated
tasks. A probability of 1.0 ensures that
a message will always be processed by a
particular task.
c. In order to accommodate transient states
in the input message frequencies, DPSSModel C permits changes in the relative
frequency of input messages during the
simulation run. This means, for instance,
that the DPSS can simulate changes in
the mode of operation of the system.
d. DPSS-Model C has the capability of
simulating several levels of system operation, where one level has priority over
another. Each level can be considered as

267

a system in itself-messages are collected
in batches, processed in tasks according
to some processing discipline (e.g., first
come, first serve or according to a task
sequence), generate displays, etc. Every
level may, but need not~ have identical
characteristics except that one has priority over the other one. When going from
one level to another the simulator has the
capability of aborting the lower priority
level immediately or at the end of a logical
operation (e.g., completion of a task)
going to the higher level, doing the required processing and then returning to
the point of interruption. Up to 100 levels
can be requesting service at the same
time, with the highest priority service
first, the next highest priority second, and
so on.
e. The simulator has the capability of selectively emptying the individual batches for
each data processing cycle. This will operate so that only the messages collected
in the batches whose batch criteria are
exceeded before the beginning of the
cycle will be processed in that cycle. The
simulator has the option of transferring
to the processing area for processing in
the next cycle only those messages which
were collected in batches whose batch
criteria was exceeded before the beginning of the cycle. The rest of the messages remain in their respective batches
until their batch criteria have been exceeded. This capability enables the DPSS
to simulate more than one independent
system with a priority arrangement such
as might be found in a time sharing
system. 4
f. It is possible to delete messages in the system as a result of other messages being
processed. This capability covers conditions when "partial updating" of files is
specified in early messages in the system
and where a "complete update" message
is received which includes the conditions
cited in the "partials." In this way, the
simulator will not duplicate the processing
of any message.
g. The capability is provided to regulate
task operation so that a task will operate

268

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

only once in every "n" cycles; "n" must be
specified in the input data.
h. The DPSS has the capability of resetting
the computation counters (e.g., those
counters used to compute average message processing time, maximum processing time, etc.) at a prespecified time after
the beginning of the test. With this feature, it is possible to study systems in
transition, during steady state conditions,
or a combination of transient and steady
state.
1.

The DPSS has the capability of providing
three sets of periodic summaries throughout the test. The summaries can be presented for every message-task relationship in the system using three time
periods. For example, the average processing time for a given message being processed in a given task may be presented
every 30 seconds, every 25 minutes and
every hour.

j. The concept of generating or forcing dis-

plays as a result of messages being processed has been generalized as follows:
(1) There can be any number (limited
only by the capabilities of the
simulator) of tasks that produce
forced displays. Each display producing task has its own processing
characteristics.
(2) The tasks that produce forced displays need not follow the task
which processed the data messages
which caused the display to be
forced, indeed, the tasks which
force displays can be located anyplace in the task sequence.
k. Additional capabilities have been added to
the DPSS to permit detailed investigation of the effects of limited buffer size
on the functioning of a data processing
system. The DPSS also has the option of
"losing-from-the-system" those messages
which attempt to enter a full buffer. The
DPSS identifies those messages which
have been "lost," or it can exercise the
option of queuing these messages and
not losing them.

1. The manner in which outputs from the
simulator can be presented has been made
more flexible so that only the necessary
or desired information will be produced.
m. The processing of messages by tasks has
been modified to permit more flexible and
detailed simulation of the operation of a
task. Task processing is divided into three
sub-operations: (1) performing the input
operation, (2) processing each message
associated with the task and (3) performing the output operation. Each of the suboperations has its own distribution function and parameters. In addition, the
DPSS has the option of performing a
"save data" operation in the event of an
interruption during the operation of a
task. When this option is exercised, the
"save data" part of the task operation
will be executed before the request for
interruption is honored. The "save data"
operation has its own distribution function and parameters. There may be a
"save data" operation associated with
each task in the system.
8.0 FUTURE DEVELOPMENTS
Future developments of data processing simulators will most likely be along the lines of
multi- and parallel-processing and will include
prediction techniques so that the time required
to develop a data processing system under various configurations can be studied.
APPENDIX I
SAMPLE PRINTOUT
This appendix contains a sample printout
from a simulation run. The output data contains the following items of information:
1. The cycle number, its begin and end time.

2. For each message arrival the message
identity, time of arrival, the batch in
which the message is batched, the task
that processes the message (mod catego~y), the priority of the message, the
time when the processing of the message
was completed, the displays that are
forced by this message and the time that
each display is forced.

THE DATA PROCESSING SYSTEM. SIMULATOR (DPSS)

3. A list of messages that have not been
completely processed at the end of each
cycle.
4. Averages by batch, priority, message of
a. Processing time
b. Total time
c. Waiting time

269

5. Number of messages queued at beginning
and end of cycle.
6. A list of messages remaining to be processed at the end of the test.
7. A total time distribution by minute, per
message at end of run. It tells, e.g.,
what percent of messages were processed
between, say, 10 minutes and 11 minutes.

DPC SIMULATION-RUN NUMBER 1
CYCLE REQUEST AT 7.65 REASON SIZE
BEGIN CONTROL CYCLE NUMBER 1 AT 22.65

BEGIN CYCLE NUMBER 5 AT 638.48
MESSAGE QUEUE LENGTH-565
BATCH SIZES
BATCH NR.
0

SIZE
0
0
1

1
2
3
4

373
60

NR.
TIME
TOTAL
TYPE MOD ARJUVAL OUT BATCH PRIORITY FORCED FORCED INDENT TIME WAIT
5

2

643.19

664.29

3

o

13C

o

382.50

693.63

3

1

21
21

2

568.09
568.09

2

CYCLE INTERRUPT AT 813.67 REASON WAIT
END CYCLE NUMBER 5 AT 834.86

690 MESSAGES REMAINING
TYPE MOD ARRIVAL BATCH PRIORITY
24
4
1.52
3
1
40
4
4.41
3
1

21.11

5.40

311.13 311.04
1

809.52 A02

2

809.57 A02P

270

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

AVERAGES BY BATCH
TOTAL TIME

BATCH NR

WAIT

0
1
2
3
4

NO MESSAGES
NO MESSAGES
56.50
227.53
253.24

56.56
227.65
253.30

AVERAGES BY PRIORITY
PRIORITY NR

WAIT

TOTAL TIME

0
1

8.57
233.19

17.82
233.25

AVERAGES BY MESSAGE TYPE
TYPE MOD NR PROCESSED WAIT TOTAL TIME MAX TOTAL TIME MIN TOTAL TIME
0

NO MESSAGES

1

2

2

275.82

275.88

2

2

1

233.24

233.29

3

2

18

245.29

245.35

346.82

346.82

390.05

169.80

TOTAL TIME DISTRIBUTION
RAR
FROM

0

MIN.

TO

1

MIN.

.33

FROM

1

MIN.

TO

2

MIN.

FROM

2

MIN.

TO

3

MIN.

.33

FROM

3

MIN.

TO

4

MIN.

FROM

4

MIN.

TO

5

MIN.

FROM

5

MIN.

TO.

6

MIN.

FROM

6

MIN.

TO

7

MIN.

FROM

7

MIN.

TO

8

MIN.

FROM

8

MIN.

TO

9

MIN.

FROM

9

MIN.

TO

10

MIN.

FROM

10

MIN.

TO

11

MIN.

FROM

11

MIN.

TO

12

MIN.

FROM

12

MIN.

TO

13

MIN.

FROM

13

MIN.

TO

14

MIN.

FROM

14

MIN.

TO

15

MIN.

FROM

15

MIN.

TO

16

MIN.

FROM

16

MIN.

TO

17

MIN.

FROM

17

MIN.

TO

18

MIN.

FROM

18

MIN.

TO

19

MIN.

FROM

19

MIN.

TO

20

MIN.

FROM
FROM

20

MIN.

TO

21

MIN.

FROM

21

MIN.

TO

22

MIN.

22

MIN.

TO

23

MIN.

FROM

23

MIN.

TO

24

MIN.

FROM

24

MIN.

TO

25

MIN.

FROM

25

MIN.

TO

26

MIN.

FROM

26

MIN.

TO

27

MIN.

FROM

27

MIN.

TO

28

MIN.

FROM

28

MIN.

TO

29

MIN.

FROM

29

MIN.

TO

30

MIN.

FROM

30

MIN.

TO

31

MIN.

FROM

31

MIN.

TO

.33

THE DATA PROCESSING SYSTEM. SIMULATOR (DPSS)

Hence,

APPENDIX II

y=p.+O"Z
and y is the desired number.

THE USE OF RANDOM NUMBER
GENERATOR
1. The Random Number Generator"

X Il + l = 129 Xn + 227216619 (mod 268435456)
is used to genrate numbers between 0 and 1
which are statistically tested to be uniformly
distributed. That is

are numbers lying between 0 and 1 and satisfy
various statistical tests for being uniformly
distributed (0, 1). The first number of the sequence is gotten by letting Xo = 0 and then
Xl = 227216619.

2. Uniformly Distributed Random Numbers
Suppose it required to obtain a uniformly
distributed random number lying between m
and M. If one obtains a number x uniformly
distributed (0, 1) then the converted number

=

m

+x

(M - m)

(3)

is uniformly distributed (m,M).
In practice this is used if the only information available is the minimum and maximum
of a random variable.
3. Normally Distributed Random Numbers
A table is assumed stored in core of normal
distribution with mean 0 and standard deviation 1. Suppose a random number y given with
normal di.stribution of mean p. and standard
deviation 0". Then
Y-

Ii

is a normally distributed random variable with
mean 0 and standard deviation 1.
To choose a random number y, normally distributed with mean 0 and standard deviation 1
a number x, uniformly distributed (0,1) is
chosen. Using x find the corresponding Z from
the table of the normal distribution (mean 0,
standard deviation 1).
Now,
y-p.
Z=--

(5)

4. Exponentially Distributed Random
Numbers
An exponentially distributed random number
x has the distribution
t

O,

P [x ::;; t] =
where

268435456

y

271

{

1 - e-at , t

<0
>0

!a is the mean of the distribution.

(6)

Since

negative values of t have no application for the
simulator it will be assumed here that t ~ o.
To obtain an exponentially distributed random
number, a random number y, uniformly distributed (0,1) is given and is set equal to
1 - e-ax
Hence,
y = 1 - e-ax
(7)
and solving for x,
1

1

x=-ln-a
1-y

(8)

5. The Triangular- Density Function
Sometimes, besides the minimum and maximum of a randoll1 variable, some Hfavorite"
value is known. This suggests the use of the
triangular density function. Let m, IvI be the
minimum and maximum and K the "favorite"
value. The density function assumes the triangular shape shown in Figure 12.
The area of the large triangular, mPN, is
equal to 1. To obtain a number with such a
density function, a random number X uniformly distributed (0,1) is chosen and a number Y is computed so that the region designated
by A has area X.
6. Arbitrary Continuous Distribution
The random number generator enables the
user of the simulator to utilize almost any disP
A
m

Y

K

M

(4)
Figure 12. Triangular Distribution

272

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

tribution he desires. The basic requirements
for such a distribution are:
a. that it be continuous
b. that the random variable be bounded.
Condition 1 is usually the case. A distribution function that has a discontinuity does not
usually occur in a simulation, and can, if
necessary, be approximated by a continuous
distribution.
Condition 2 requires that the user specify
that the value of the random variable not exceed (so far as the approximation is concerned)
some specified value.
Suppose Figure 13 represents some distribution. Various values (in this case Xl' x 2 , x 3 , x 4 )
are chosen from the distribution to be approximated.
Let F (x) be the original distribution. Then
PI = Prob [x S Xl]

(9)

P 2 = Prob [x S x 2 ]
and so on until

(10)
Suppose a random number x, uniformly distributed (0, 1) is chosen. Then if 0 S x S PH
(11)
'where Xis the desired value.

If PIS X S P 2, then
X=XI+ (X_PI)(X I -X 2 )
(12)
PI P 2
and so on, testing whether R lies between two
successive P's and then using linear interpolation to determine the value between the two
points.
APPENDIX III
GLOSSARY OF TERMS
The following definitions are included for the
reader who may not be familiar with the terminology of the document.
BATCH
A device which is used to request a DPC
cycle.
BATCH CRITERIA
Parameters associated with each batch which
determines when a batch will request a DPC
cycle to be initiated.
DATA PREPARATION
A task which processes every incoming message to make sure that they are valid. The
Data Preparation Task also determines which
tasks must operate in the present DPC cycle.
DISPLAY
A presentation of information contained in
the D PC program system files.
DPC CYCLE INTERRUPT
A DPC cycle interrupt occurs when all of
the messages of the present control cycle are
not processed before a new cycle begins.
DPC CYCLE REQUEST
A request for a DPC cycle when the batch
criteria of a batch is exceeded.
DPC PROGRAM SYSTEM CYCLE
A sequence of tasks that are performed to
process the system message.
DPC PROGRAM SYSTEM (OR CYCLE)
That part of the system within the Data
Processing Central (DPC) which deals with
the primary processing functions.

Figure 13. Arbitrary Continuous Distribution

FLASH MESSAGE
A message that is processed immediately,

THE DATA PROCESSING SYSTEM SIMULATOR (DPSS)

upon receipt by the computer. This message
does not cause a new cycle to be initiated.
FORCED DISPLAY
A display which is generated as the result
of a message (data) being processed.
INTERARRIVAL TIME
The time between the arrival of two successi ve messages.
INTERLEAVED SUBSYSTEM
Any subsystem other than the primary real
time program system.
LOAD TIME
The time required to transfer the operating
programs and data environment associated
with a task from tape, drum or disc to core.
MESSAGE
An input into the DPC program system.
MOD
The position of a task in a sequence of tasks
(the task sequence number).
OPERATE TIME
The time required by the operating programs
to process a message once the operating programs and environmental data are in core.
PRIORITY
A measure of importance in a message.
PROCESSING TIME
The time from when processing in a message
is begun to when it is completed.
RANDOM NUMBER
A number from a random number generator
tested for certain statistical properties.
REQUESTED DISPLAY
A display which is generated as the result of
a special message being processed (a display
request message).

273

WAIT TIME
The time which begins when a message arrives in the DPC and ends when processing of
this message begins.
APPENDIX IV
MACRO INSTRUCTIONS
The logical operation of the model is governed by the interpretive program. The operation of the simulator can be changed by changing the flow of the interpretive program. The
flow diagram that is currently being used in the
simulator is shown in Figure 14.
Figure 14 illustrates the interpretive program as it is read into the computer. The first
few instructions of the interpretive program
are explained below. The last line of the flow
reads
STOP IA
This indicates that the flow diagram data is
complete and the program is to execute the instruction labeled IA first. This instruction is
found on line 1:
. T"O

IA

~.L.I

TT\

~~

IA is the instruction label. QMSGAR is the instruction. The Q usually designates that the
instruction asks a question. In the case QMSGAR asks whether any messages have arrived.
If yes go to IB, if no go to ID. Suppose a message has arrived then one goes to IB:
IB

AGNMSG

IA

FIN

AGNMSG begins with an A which usually designates an action, and the instruction states·
that a message is to be generated and then one
goes to IA or FIN depending upon whether
there is more to do in the simulation or not.
If no message has arrived, one goes to ID:
ID

QFLASH

IE

IC

TASK
A related collection of programs (considered
in the DPSS as a single operation) which
operate on a message or a set of messages.

QFLASH asks whether any flash messages are
to be processed. If there are go to IE, if not
to IC.

TOTAL TIME
The time from the arrival of a message at
the DPC to completion of message processing.

Macro Programming Instructions
The instructions QBEGCC, QMSG, QSTART
are macro programming instructions. The list

274

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

IA
CA
CB
CC
CE
CF
CG
CH
CK
CC
CP
CQ
CQO
CR
CS
IB
IC
ID
IE
IF
IG
IH
II
1M

IN
IR
FIN
IS
III

QMSGAR
QBEGCC
ABEGPC
QTASKS
AENDCC
QSTART
QMSG
LDTASK
APCMSG
QMSG
QBEGFD
QFORCE
ALDDP
APCFRC
QFORCE
AGNMSG
QFLDSP
QFLASH
APCFLS
QCC
QINT
QFLLD
ABEGCC
QREQ
AGNMSG
AABORT
FINISH
ABEGCC
AENDCC
STOP

IB
CB
CC
IA
IA
CG
CH
IA
IA
CK
CQ
CQO
IA
CS
IA
IA
IH
IE
IA
IG

ID
CF
FIN
CE
FIN
CO
CC
FIN
FIN
CP
CR
CC
FIN

III

CA
FIN
FIN
IR
FIN
FIN

IA
CA
IN
ID
IS
IA
II

FIN

CC
FIN
IF
IC
FIN
1M

FIN
FIN

IA

Figure 14. Interpretive Program Flow Diagram

of macro instructions and their meanings are
as follows:
1. DUMP
This instruction gives an octal dump.
2. QBEGCC

This instruction asks whether at the
time the instruction is to be operated
upon the system is at the beginning of
a cycle. The beginning of a cycle consists of the tasks of loading and operating the data preparation tasks.
3. ABEGPC

This instruction performs the loading
and operation of the data preparation
task only at the beginning of the cycle.

4. QTASKS
The instruction inquires whether any
more tasks are to be done in the cycle
and sets the indicators to the next task
done by the cycle.
5. AENDCC
This instruction resets various indicators
so as to signal the end of a cycle. I t also
gives a summary of the output data for
that cycle.
6. QSTART
This instruction inquires whether the
system is at that moment at the start
of a task, i.e., whether the program for
that task was loaded.
7. QMSG
This instruction inquires whether there
are messages in the table for the particular task to operate upon.
8. LDTASK
This instruction "loads" the task in question, i.e., determines how long it takes
to load the task and increment the simulated clock.
9. APCMSG
This instruction processes the appropriate incoming message according to processing priority.
10. QBEGFD
The instruction inquires whether the
forced display ·task should be "loaded."

11. ALDDP
This instruction "loads" the display task.
12. QFORCE
This instruction inquires whether there
are forced displays to process.
13. APCFRC
This instruction processes the appropriate forced display.
14. QMSGAR
This instruction inquires whether any
messages have arrived.
15. AGNMSG
This instruction generates messages if
any are due to arrive.

THE DATA PROCESSING SYSTEM. SIMULATO'R (DPSS)

275

16. QFLDSP
This instruction inquires whether any of
the ft.ash messages generate display.

24. AABORT
This instruction aborts the interleaved
subsystem.

17. QFLASH
This instruction inquires whether there
are any ft.ash messages to process.

25. FINISH
This instruction finishes the run, sumrizes the data and goes on to the next
run, if any.

18. APCFLS
This instruction processes ft.ash messages.
19. QCC
This instruction inquires whether the
cycle is operating.
20. QINT
This instruction inquires whether the
cycle is to be interrupted.
21. QFLLD
This instruction either "loads" or processes the ft.ash display task, whichever
is appropriate.
22. ABEGCC
This instruction begins a cycle.
23. QREQ
This instruction inquires whether a message will arrive before the request for
the instruction of a cycle.

APPENDIX V
SUMMARY DESCRIPTION OF THE
IBM AN/FSQ-32 COMPUTER4
The AN/FSQ--;3'2 computer is a l's-complement, 48-bit word computer, with 65,536 words
of high-speed (2.5 m sec. cycle time minus
overlap) memory available for programs, and
an additional 16,384 words of high speed memory available for data and input/output buffering; the latter memory is called input memory.
There are four core memory banks (of 16K
words each) which are individually and independently accessible by three control units: the
central processor unit, the high speed control
unit, and the low speed control unit. High speed
I/O, low speed I/O, and central processing can
take place simultaneously out of different memory banks, or with certain restrictions, out of
the same memory bank.

Characteristics of the AN/FSQ-32 Storage Devices
Devi.ce

Size

Word Rate

Average Access Time

Core Memory

65K

2.5 ,usec/wd

Input/Output
Core Memory

16K

2.5 ,usec/wd

Magnetic Drum

400K

2.75,usec/wd

10 msec

4000K

11. 75 ,usec/wd

225 msec

Disk File
Magnetic Tapes

* Depending

16 Drives

128 ,usec/wd
(high density)

5 to 30 msec (no
functioning) *

on whether the tape is at load point, and whether it is being read or written.

276

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

REFERENCES
1. H. M. MARKOWITZ, B. HAUSNER, and H. W.
KARR, Simscript: A Simulation Programming Language, RAND Corporation, Santa
Monica, California, 1962.

2. General Purpose Systems Simulator 11Reference Manual, IBM, 1963.
3. C. A. KRIBS, Building a Model Using Simpac, System Development Corporation,
Santa Monica, California, TM 602/300/00,
November 15, 1962.
4. J. D. SCHWARTZ, E. G. COFFMAN, and C.
WEISSMAN, A General-Purpose Time-Shar-

ing System, System Development Corporation, Santa Monica, California, SP-1499,
April 29, 1964.
5. P. PEACH, "Bias in Pseudo Random Numbers," Journal of American Statistical Association, Vol. 56, No. 295, September, 1961.
6. M. 1. YOUCHAH and D. D. RUDIE, A Universal DPG Simulator Applied to SAGGS
Program System Design, System Development Corporation, Santa Monica, California, SP-924, July 8, 1963.
7. D. D. RUDIE and M. 1. YOUCHAH, The Data
Processing System Simulator (DPSS), System Development Corporation, Santa Monica, California, SP-1299, March 23, 1964.

THE USE OF A JOB SHOP SIMULATOR IN THE
GENERATION OF PRODUCTION SCHEDULES
Donald R. Trilling
Westinghouse Electric Corporation, Pittsburgh, Pennsylvania
The following describes some techniques
under development at the Steam Division of the
Westinghouse Electric Corporation. This plant,
located at Lester, Pennsylvania, manufactures
large Steam Turbines, and its main facility is
an exceptionally large job shop. It is the locale
where many of the concepts discussed below
underwent development. However, it should
be made clear that this paper is not in any way
intended to be a progress report on their use
there. The nature of these techniques remains
highly experimental, and they are described
here as a matter of interest to those who are
concerned with the potential of computers in
management applications.

we gain some insight into how the real shop will
perform in processing an equivalent load. The
model shows specifically how machines will be
loaded, the extent of the queues that form, and
when orders may be expected to be completed
compared to the schedules set for them. If
management is considering a change in facilities, or a change in procedures, much of the
implications of these changes may be learned in
advance by trying them out in the model.
The comparison of different simulations is
made on the basis of certain shop statistics, reported out periodically as the simulation proceeds. These statistics are well know, and
follow the pattern set by the original GE-IBM
Job Shop Simulator 4. Such measures as machine utilization, average waiting time in queue,
average queue lengths, and order lateness are
given. A sampling of these reports is included
in Appendix 1. To the original set we have
added such measures as shop hours, overtime
hours, machine substitution counts and some
others.

L BACKGROUND
The technique of job shop simulation is becoming increasingly well-established in industry, and the advent of the macro simulator
languages, such as SIMSCRIPT 7, assures continued movement in this direction. To date,
job shop simulators have been used principally
as a tool for facilities planning \ '2, and as a
testing mechanism for the merit of various decision rules 3, 10. Typically, a model of the shop
is set up in the core of the computer, having a
similar configuration of men and machines as
exist in the real shop or could exist in a contemplated shop. It is supplied with data on
manufacturing orders representing the coming
load in the shop. The simulator processes the
orders much as the real shop would. By seeing
how the model shop fares in processing its load,

The knowledge gained by simulation, in experiments such as outlined above, is quite useful for many scheduling decisions. However,
in general, we may state that this use extends
only to what might be called the guiding of
scheduling decisions. It does not directly assist
in the preparation of actual schedules. The
idea that the technique of simulation may be
turned to such a use is shown below.
The job shop simulator devised at Westinghouse Steam Division has been named SHOP277

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
_SHAH. SIIIUUTOII TO _

OPTlIIAL

~TlOil ~ES

_1_1115 _ n AIID PUTlCaAil EYENTS. IlESn_o_.. _______
o.a. TRILLI. . NCU. Loa. - IIIL--. C_OLL. _ . ~

DAn

_

-------",...

s!W8O'. . . IIlBIlIElCAt.... ____ . ____ _

.1M» 1M2

. . . . . Of I19GnIIl5 PHIODS

II

_·we'om~

-------------------------------.~w~~

II. . . .TlOll IEGIN DAn. DEC IllS

..IlI.'-....___ _

. .. . , - aq£.RL..lSLftU_ _ _ _ . _ _ _ _ _ _ _

Shop Statistics-Title Page, showing name, manning, dispatch rule, and
re-routing table for each machine group
our""

HIlIODIC

--------

-~-5icIP-P9FiiuiMc:E------

--!ftlOQ_......,.,'---_ _ _ _ _ _TJlU ..!UIOP.

.--_ _ _ _ _ _

BRill DaTE IN 0EC11IAL _ $
535.0
._.STAIIDo'IlD 51<01' TIllE
1121.5 HOUItS.
P L _ OVERTlIIE PEttIODS
135.0 HOURS.
ALLOWED OVERTIME pEttIODS
.0 1l0III5.
_ _ _--'lIOLlOAYL-~..wrtQAYj_ _ _ _ 1.~.O.. I!QUIIS._

u_

lilt!!
MACltINE _
AYAlL UTIL
___ CUS~_GIIOW .... _OESCltIPtlOII. _ CAPAC .. CAPAC
MRS

_ _ _ _ _H""!>LlJl

28$

FITF 111

11110

'72.5 HOUIIS.
.0 HOURS.

UTIL

",,,ac

_
TO
OTHERS

AYAIL UT IL
CAPAC CAPAC

011

21.0 DAYS.
.0 DAYS.

011

IOLE
TOTAL

MRS·-·

UTIL
CAPAC

MRS

MRS

-lIaO·· .,

BIt-· ·· .. ''2-~705

l1li5

_
TO
OTMEltS

Z...
85L-_ _Ib..!001
......70JOb71000
HA 66] Joo29GOI
HA 6. . JOI25ool
IP 6650JoooeOOO
IP 6i650JOOOBooo
LA 661 JOI86GOI
I. 66' JOl7aool
GA 906 J~2G02
HA 661 J0835oo2
HP 663 J0029GOI
DA 669 J0983GOI
tP 668 JOl93G02
HI. 667 J08S1oo2
tP 6~0J04l19ool
HA 671 J0666GOI

611.Z
6U.8
1.12.2
612.4

11002691
U0901Ze
0000260
11001923

•
4
11
19

....
I.A
01.
HA

605.6
602.6
599.Z
603.0

1IePII116
ve,,"116
11111"116
1I8PII116

0111000276101
0131000275901
013&00911101
013&00270601

II

12

n

BlADE RING 1 GOY
no RG G01l 2
HP CYl fIIO DE
BlD RG GU 2
DUTEII CYL GOY
lP CVL EXHAUST
IILD IIG GOV 2
OUTER CYL
OUtER t Yl
HP tYl FIIO DE
laUDE RING 2 GDV
tROSSOVeR liNG
tYL lASE , CVA ElH SUO

LA 785 006n002 OISC

6)9928n
102111U
21003910
11000052
11001~

1
23
10

...
IP
IP
LA

6340J0489001
671 J0058001
6670J067100D
671 J0058002
6630JODOI000
6320J0017Doo
671 Joo58001
6590J0874OOI
6590JOn4ool
,,70J06110oo
. .SOJooJ1000
360080523001
6.6 J0935G02

604.8 V8MU16 0131000265601
591.6 V8MLU6 OUA00906~06
6C1.Z 1I8ML116 013&0027$1101
I>O~.~ V8MU11I 01)&00271001
610.~ V!PLI16 013,\00276301
611.4 veMLU' 0131000216301
'0).0 ve"Lll6 013A002U101
591.4 1IellU16 0131000265601
601.0 1I811LU6 0131000908101
IIU.2 veMUI6 0131000270601
601.~ ""MLl16 0131000275801
601.8 '1ellU16 0131000275301
614.0 vellL116 OUA002U501
612.4 veMUI6 013A00210601
tl7.1 612.2 V6PLU6 013,\00211101
611.1 612.8 vellLlll1 013&00271001

611.0
6ll.0
611.3
(011.6
61Z.7
61).6
11110.4
614.7
61S.1
615.3
615.4
61 S. 7
US ••
6i6.11

PAU DESCRIPTlIIfI

EA DaloMING ITEM

Short

HP cn fliD DE
BLD ItG -I GEN END

cn

JIltjU

lN11EII CYL ASSY
tHOIER CYL asSY
BLO IIG
8LO RING G01l
HSG ASSY
81.0 RG -I Gtll
8LO RG -I GEN END
NOZZLE CHAM8ER 2NO EXT.
ILACE RING litll
BlO RG-2 GEN
8LAOE RING 3 GOV
tlLO RING-Z

664 JooUIOO) tYl INN~I loSSY
664 J0688001 Flail GUIDn
672 ~0~14GOI EXH HOOO
668 JOlJ2GOI CVL IIIf;ER asSY

STO HIS OT
2'.6
31.7
l.S
31.7
84.4

la.8
31.7
41.2

.,8.2
11.1
43.0
4.0
9.2
9.G
2).0
30.3
1$.6

H.5
0.7
25.2

H.C
94.1

40.6
9.0
25.2
25,3
211.7
2).0
345.0
27.2
76.0
64.'
6Z.)
19.6
Z8.'
21.7
39.6
23.'
7.~

17.1
21.0
211.7
33.0

FRail IIG

TO IIG

LO~Clll1

flTflJ6
L0l1'111
fITFU6

LOMell6
LOI!CU6
I.IlllC116
-LO"C 116
-LOMC1l6
LOMe 116
LOMe1l6
1.0I!CU6
H8M5116
LOMe 11 I
LC"ClU
FITFU6

285

lO~Cl11

LO'C 116
LOI'IC116
LO'" Ul
PlIl6116PLM6116HOP5116
fltrU6
fITFUl
LO"C 116
LDPI,U2
LO~'111

VUKI21
V!lTK121
LOMelll VIINK116
VB"JUI FITFUl
FITFU6
HOP5116 lO"C13Z
ROP7111 FIlFlU
FITFIlI FITFIlI
LOIOl:132
VACel~6 FitFUl
FITFlll fITFlll
FITf116 FITF116
___

LONI'.Ul
FITFU6

flTFlll
LOloClll
100/2)6
FITFIlI
100/236
FITF111
FITF116
FITFUl

FITF111
e"F5132
veNLUIo
III1F5132
FITFU6
FITF116
LOMC111
FITFUl
FITFUl
FITFUl
ft Tf 116
FITFUl
FITF116
FITFUl

FITF116
HDP5U6
FITFU6
FITFU6

8"f513Z
WHAR 1~ I
LOMeU6
ROP0116

FITfU6
FITFU6
1I8M(111)
IILO)134
IILO]13~

Term Schedule

rules tends to implement certain policies, at
some rejection of others. This applies equally
well to the schedule analyst, who is also operating under a set of decision rules. If some criteria could be found lor establishing a cost of
being late, then schedules could be truly optimized and probably fully determined by the
computer. Additional research in this area
could yield rich returns.

path in the order networks, the overall system
may be highly or hardly sensitive to changes in
capacity of a given machine group. While it
is often startling to see the difference wrought
by the addition of one man-shift at certain
machines, it can also be very revealing to see
the fruitlessness of another placement elsewhere. It will be up to the schedule analyst to
know these sensitivities.

One of the most important functions of the
schedule analyst is to learn the sensitivity of
the system to. changes in different variables.
Assume he w~~hes to accelerate schedules, and
is followingt~e aforementioned procedure of
adding mento·a machine group with a troublesome queue. . As one would expect from the
lessons of queueing theory, or marginal economic analysis, each successive addition of a
man should result in a small absolute reduction
in the average queue delay there. In turn, de.pending on where the jobs are routed to after
they leave that machine group, the reduction
in delay may result in substantial, little, or no
reduction in general aggregated order lateness.
At some point it will pay to divert the next intended man increment to some other troublesome machine group. Depending on its queue,
its level of utilization, and its importance as a

One procedure, which is the converse to the
one above, has also been tried to advantage.
Here, the analyst begins with the simulation
of a shop where all .possible capacity is available, no matter what the utilization percentages.
This gives an upper limit to the possible schedule performance of the shop. From this point,
successive selective cutbacks can be made on
the machine groups showing low utilization in
the Shop Performance report. Again, as utilizations go up, the extent to which the cutbacks
are continued, with their commensurate deterioration in schedules, would be a matter of
local management decision. This decision
would be based on comparison of the cost of
the retained man to the reduction in lost time
attributable to him.
The above procedures depict a situation
which appears to incur extensive computer

286

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

costs, since repeated runs would be made in
order to establish the proper balance between
load and capacity. Actually, in practice this
will not be the case. If, for instance, new
para-schedules were generated weekly, then
much knowledge gained from last week's run
can be put to use in the current run. In addition, orders don't suddenly get into trouble.
They either start out in trouble, or work their
way into it gradually. In most cases there will
be sufficient lead time for the analyst to observe
the impact of his corrective measures in succeeding simulations.
Para-schedules can also be influenced by
changes in decision rules, such as dispatch rules,
subcontracting policies, and others. However,
their efforts are studied by separate experiments. If sensitivity to their change proves to
be high, then they should be programmed to
respond internally as the schedule analyst
would manipulate them externally.

It has been shown above that by manipulating machine capacities in the model, and manipulating the priorities within the model, the
para-schedules generated are being manipulated. Coming problems are recognized and
corrective actions tested weeks or months before the time they will actually be encountered
in the shop. If it is impossible to find a paraschedule in which all of the orders meet all of
their due dates, then a pretty strong case is
made that some commitments will have to be
changed. All of the due dates simply cannot
be met. Again, the model is available to help
pick and choose. All this is done without the
slightest gamble in the shop itself. When the
analyst has arrived at the best resolution of
limited capacities and disappointed customers,
he adopts the para-schedule which represents
the decisions which gave the best result. At the
same time he has in hand the major instrument for implementing these decisions: The
para-schedule itself and the dispatch sequence
which should produce it.
Dispatch Lists and the Fuzzy Future
The dispatch list is the sequence in which operations are to be performed on each machine.
An example is seen in Appendix II under the
title "Short Term Schedule." The jobs are
listed in the order in which they would be dis-

patched, with start time, job times, and other
pertinent data. They may be printed for any
interval of time, but what the time span for
the Short Term should be is a matter particular
to the shop being simulated. The dispatch list
is the tool to be used in the shop to implement
the desired para-schedule. In theory, if the
shop followed it precisely the para-schedule
adopted would be met precisely. Obviously,
however, this cannot be done. From the instant
the list 'is prepared, things will be happening in
the shop to prevent this. Parts may not arrive.
Men may report in sick, leaving machines unmanned. Work may be scrapped. Metals may
be extra hard, and machining therefore might
take a little longer. Nevertheless, in general,
the lists may be followed. If the dispatcher
always goes to the highest remaining job on the
list, he will be implementing the adopted paraschedule. *
This leads us to the question: For how long
into the future are these lists useful? Failure
to do one job at the appointed time can have
perturbations throughout the shop, since other
parts of the list for other machines are based
on that job being done at the proper time. One
failure compounding another and another can
lead to substantial misalignments, when it
comes to trying to sequence the machines as the
list says. However, the actual results should
not be so bad. Here are some reasons why.
Suppose that the job missed was to have
proceeded on to a machine where a large bottleneck exists. In such a case, the expected queue
time itself at the bottleneck machine will act as
a buffer, allowing extra time for the work to
actually arrive at the machine before the dispatch time appearing on the dispatch list. On
the other hand, suppose the missed job was to
have proceeded on to a relatively slack machine.
Such a slack machine would be quite adaptive,
and capable of handling the work whenever it
did arrive, or shortly thereafter. Similar reasoning would hold for machine groups with
high traffic. If many machines are working on
many jobs, then machines empty and are ready
for new work frequently, and at any such point

* At the EI Segundo Division of the Hughes Aircraft
Co. a job shop simulator prepares daily dispatch lists
for their Fabrication Shop. They are apparently being
used with great success. See 12.

JOB SHOP SIMULATOR IN THE GENERATION OF PRODUCTION SCHEDULES

previously scheduled work arriving late will be
accommodated, tending to put it back on
schedule.
One situation which is not easily resolved is
the case of a machine group of one or few machines that processes very long operations.
Here openings are comparatively rare, and
when a scheduled job hasn't arrived to be dispatched, a high level human evaluation is
called for. Tying up the only machine for a
long time on the wrong job could cause a substantial deviation from the intended schedule.
Obviously at the present state of the art, although dispatch sequences are prepared in
great detail, they still require human supervision. The need is reduced, but it still remains. Now, when the question is raised of
for how far into the future dispatch lists are
good, it really means for how long will they
continue to require less supervision, rather than
more. This remains to be seen.

Feedback and Relations to Support Units
The setting of due dates for shop orders be-·
gins as a matter of management preference.
Once established, the standard backward scheduling procedure can be used to determine due
dates for supporting components and ascheduled start date for each operation *. The scheduled start dates are used by the dispatch rules
in the simulator. It was seen above that the
simulated results may indicate some due dates
cannot be met, but the formal act of rescheduling an order may be forestalled, depending on
how its dispatch priority within the simulator
is influenced. However, the simulator results
also bear a relationship to the components included in the order which come from external
sources, such as support shops or aisles, or
outside suppliers. The para-schedule acknowledges them fully, by means of the "Call-out"
mechanism. If information is received that a
component will be late, the computer program
holds up the order in the model until the time
* Rowe's flow allowance 9 could be used nicely here,
since information on queue time distributions would
be available from previous simulations. It is obvious
from the lateness figures that the sample reports reflect
runs where the simulator is pitted against a backward
schedule having a theoretical minimum of slack. These
figures should in no way reflect on the ability of the described facility to deliver their orders on time!

287

the component is expected to arrive. The Order
History Diagnostic shows the expected arrival
times of the called out components, and shows
the slippage, if any, suffered because of delay
introduced by them. This means that any
component holding up an order is brought
to the attention of the analyst so that appropriate pressure may be applied to the source
while there is still time. There is still another
aspect to this. If an order is running very late,
either because of late components or bad queue
experience, and nothing can be done about it,
then judicious resetting of the due dates for the
components may be warranted, especially for
those coming from support shops that are already overloaded. New due dates would be
based on the required times indicated in the
para-schedule.

v.

PROBLEMS OF IMPLEMENTATION

As may be expected, a large number of problems loom in trying to set up such a system.
We will touch on a few of them.

Supporting Systems
The validity of the answers generated by the
simUlator, as in all systems, depends in large
measure on the amount of information available
to it. This information classifies easily into
three parts: configuration information about
the shop, manufacturing information on orders
comprising the load, and third, the intersection
of the first two, which is present shop status.
The first consists of such things as machines
available, manning, scheduled down-time, and
overtime plans. This information is converted
into parameters for the simulator. Such data
is comparatively easy to capture.
The second set of information consists of all
necessary data on all the orders that compose
the coming load in the shop. Depending on the
size of the shop, this data can be quite massive.
It is embodied in a very large "work ahead"
file, and the maintenance of this file requires a
number of supporting systems. Most of its information is acquired directly from the manufacturing line-up. For the bulk of the items in
a job shop, the transfer of this data into the
"work ahead" file is not difficult.
Because simulations often run far out into
the future, and because job shops must fabri-

288

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

cate many products which are newly designed,
very often orders must be included in thesimulation which are booked or are forecast, but for
which no manufacturing data is yet available.
Therefore a system of representing this work
to the simulator is needed. Several systems
have been devised. One is based on composing
prototype manufacturing line-ups from similar
orders previously completed. Another is based
on using Monte Carlo to generate sanlples from
a transition matrix constructed from historical
line-ups. *
The use of component availability dates was
discussed above. Such information necessitates
still another system to capture these availability dates from the support shops and outside
suppliers involved.
The shop status information may be quite
difficult to acquire. Historically, in job shops
most operational information is not in computer sensitive form. But if simulation is to
be used with the precision that has been inferred, then at simulation beginning, the model
shop has to be set up to reflect as accurately as
possible the present status of the real shop.
Such information can come from an extensive
data collection system.
A final word about supporting systems. No
device, no matter how precisely it processes
data, will generate valid answers if the input
data is not valid. Everywhere that supporting
systems fail to supply useful information, subjective evaluations begin to reappear. There
will always be a need for some interpretation
and evaluation when appraising the para-schedules generated. Unfortunately such interpretations will grow more and more subjective as
the model gets less and less information to work
with. If too much interpretation is required,
the model has defeated its -own purpose as far
as generation of schedules is concerned.

Frequency of Simulations
In discussing dispatch lists, it was brought
out that the shop must be expected to go considerably astray of the sequences generated.
In addition, it may be expected that the older
the dispatch lists become, the less valid they
will be. With the passage of time, more and
more things will happen to disturb the schedule.
* See \

These would be things that neither the simulator nor any other device could have anticipated.
The questions arise then: a) How often should
the model be set up again, based on the latest
information, and a new simulation run? and
b) How far into the future should the simulation run? Much depends on the uses to which
the answers are to be put. Generation of dispatch lists should be frequent, but need not
extend too far into the future. Long range
simulations for load leveling, manpower planning, and facilities planning would extend very
far into the future, but are run infrequently.
In the simplest sense these considerations are
a function of the production cycle time, the
number of operations done per day, and the accuracy of the data. There can be, in addition, many other factors such as engineering
changes and repair orders, whose effects are
more difficult to determine. At present, the
answers must be determined empirically for the
shop in question.

Unrepresented Production Patterns
As may be expected, the usefulness of the
results of the simulator will be colored by how
closely the model is an analogue to the real production patterns in the shop. A case in point
is the ,vorking of operations out of sequence.
The manufacturing line-up infers that this
should not be allowed, yet sometimes foremen
on the shop floor find cases where they can
circumvent this restriction to advantage. The
simulator does not recognize such a possibility
at all.
Other places where the simulator fails to accurately represent some standing shop practices
is in lap phasing, bumping, and the saving of
set-ups. Simulators can be written which will
do such things. The problem is that the capturing of the necessary information which they
need is prohibitive.

Replication
Each run in a simulation is only one sample
from the joint distribution describing possible
results from the shop complex. Clearly a
greater number of samples, or replications, will
improve the accuracy of the predictions embodied in the para-schedule *. The displays in

* How much is not certain. See B.

JOB SHOP SIMULATOR IN THE GENERATION OF PRODUCTION SCHEDULES

289

Appendices I and II reflect the results of a
single run, but could easily represent the results of many replications. It is not a difficult
data processing problem to merge the results
of many runs, and format average figures (with
accompanying dispersion measures) instead of
a single value.

can require from one to two words of core per
shop operation, depending on the complexity
of the networks. To this must be added the
core required for programs (upwards of 8K)
and core for tables, which is approximately

Unfortunately, the number of runs required
to allow for a reasonably stated prediction with
very modest confidence limits is prohibitively
high in cost. ** Naturally, in an industrial environment the cost determines the use. Because
of this, the number of replications will be low,
and scientifically justified statements on accuracy will be limited. However, it is felt that
this does not entirely impugn the usefulness of
the simulator as an operational tool, for several
reasons. The first is the above-mentioned fact
that queues tend to act as buffers. - Another is
that given a feasible schedule to shoot at, management will put a marked bias on the play of
otherwise random events in the shop. Finally,
the dispatch sequence generated is at least likely to lead to the goals represented by the
adopted para-schedule. Some dispatch sequences which wouldn't lead to the desired
schedule have been revealed in prior runs, and
have already been eliminated by manipulation
of the capacities and priorities in the _model.
A large number of possible sequences may yet
remain which might lead to equally desirable
para-schedules, but it is questionable how much
would be gained by seeking them out.

i = 1
where
G is the number of machine groups,
M is the number of machines,
F is the maximum number of jobs which
will be forced into a queue overflow
zone when the queue area for a particular machine group is full,
qj is the mean number of jobs in queue for
the i-th machine group,
O'j is the standard deviation of the number
of jobs in queue for the i-th machine
group, and
k
is an arbitrary constant which trades
room for speed when searching for jobs
in queue.

Scaling
A major limitation of the scheduling scheme
may appear with the inability to fit some shops
into the core of the computer. LeGrande reports on problems of this type in 6. The problem revolves only partly around the number of
machines in the shop. A more predominant
consideration is the amount of load which must
be represented. Each sub-order is on the
average half-finished, and all of the unfinished
part is in core. Thus, one-half the average
number of operations per sub-order, times the
average number of orders on the floor, gives the
minimum number of operations which must be
kept in core during simulation. The program

** The proper number of replications per simulation
could be in the thousands. For example, see 14.

G

44G+3M+2F+ 154+ ~

There are several remedies which may be
tried when the model shop becomes too large for
core, but they are too involved for discussion
here.
VI. CONCLUSION
Job shops by their very nature make automatic procedures difficult. Yet it is hoped that
these experiments will lead to efficiently mechanizing one of the most difficult of the shop's
control problems: the schedule-sequencing determination. For the first time it appears possible that at one central logical control point
the entire shop, with all of the interaction
among orders competing for facilities, can be
examined as a unified whole. Ideally, this
should reduce the need for segmenting and assigning to the various departments the resolution of the scheduling problems that occur
there. This has been done in the past because
of the great complexities involved. Those familiar with this practice know that it adds to
lead times, and encourages suboptimization.
We have outlined above a method that might
be considered somewhat unorthodox to current
scheduling concepts, since the detailed sequenc-

290

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

ing determines the schedule, instead of vice
versa. The full extent of its value remains
to be proven. We have tried to accurately
portray the problems that exist in implementing
such a scheme. It should be pointed out that
most of these problems are not especially difficult, or beyond the capabilities of present
practices. They are typical implementation
problems.
REFERENCES
1. BARNES, W. E., "A Case History on Job
Shop Simulation," Proceedings, 16th Annual S.A.M.-A.S.M.E. Management Engineering Conference, April 1961.
2. BURKHART, L. J., "Application of Simulation to Production and Inventory Control,"
15th Annual S.A.M.-A.S.M.E. Management Conference, April 1960.
3. CONWAY, R. W., and MAXWELL, W. L.,
"Network Scheduling by the Shortest-Operation Discipline," Dept. of Industrial and
Engineering Administration, Cornell University.
4. I.B.M. Math and Applications Dept., " Job
Shop Simulation Application," M&A-1.,
I.B.M., White Plains, N. Y.
5. KERPELMAN, H. C., "Solution to Problems
of Assembly and Disassembly Operations
in a Job Shop," 19th Annual Meeting, Operations Research Society of America, May
1960.
6. LEGRANDE, EARL, "The Development of a
Factory Simulation Using Actual Operating Data," Management Technology, May
1963.

7. MARKOWITZ, H. M., HAUSNER, B., and
KARR, H. W:, "SIMSCRIPT: A Simulation
Programming Language," RM-3310-PR,
RAND Corporation, Santa Monica, Calif.,
November 1962 (also Prentice-Hall, 1963).
8. MORGANTHALER, G. W., "The Theory and
Application of Simulation in Operations
Research," Chapter 9 of Progress in Operations Research, Vol. 1, R. L. Ackoff, ed.,
N. Y., John Wiley & Sons, 1961.
9. ROWE, A. J., "Toward a Theory of Scheduling," Report S.P.-61, System Development
Corp., Santa Monica, California.
10.
, "Application of Computer Simulation to Production System Design," in
Modern Approaches to Production Planning and Control, R. A. Pritzker and R. A.
Gring, eds., New York, N. Y., American
Management Association, Inc.
11. SISSON, R. L., "Sequencing Theory," Chapter 7 of Progress in Operations Research,
Vol. 1, R. L. Ackoff, ed., New York, John
Wiley & Sons, 1961.
12. STEINHOFF, H. W., JR., "Daily System for
Sequencing Orders in a Large Scale Job
Shop," 6th Annual ORSA/TIMS Joint
Western Regional Meeting, Orcas Island,
Wash., April 1964.
13. TRILLING, D. R., "Job Shop Simulation of
Orders that are Networks," Westinghouse
Electric Corporation, Pittsburgh, Pennsylvania.
14. VAN SLYKE, R. M., "Monte Carlo Methods
and the PERT Problem," Operations Research, September-October 1963.

HYTRAN* - A SOFTWARE SYSTEM TO AID
THE ANALOG PROGRAMMER
Wolfgang Ocker and Sandra Teger
Electronic Associates, Inc., Princeton, New Jersey
problem variable is multiplied by a scale
factor to form the machine variable in
volts.
(2) Parameters stated implicitely have to be
evaluated.
(3) A computer diagram is prepared, showing the analog hardware implementation
of the equations, component modes and
the expressions represented on potsheets and amplifier sheets.
IA\ Potentiometer settings are determined
\'"%1
by evaluating the constant expressions of
the scaled equations.
(5) To check proper scaling and the correctness of the computer diagram, an offline static check is carried out as follows:
(a) The theoretical calculations are performed by substituting into the original equations a test initial condition for each variable that is represented by an integrator output, and
solving for their highest derivatives.
(b) After the chosen test initial conditions are scaled and entered into the
computer diagram as integrator output voltages, the programmer calculates and records on the diagram
all component outputs using the
voltages present at their input.
( c) The computed voltages representing
the highest derivatives are com-

1. INTRODUCTION

In recent years much attention has been
given to combined analogi digital computation,
dividing the problem on hand into an analog
and a digital part and letting each task be performed most economically by the part of the
system which suits it best. This philosophy not
only applies to simultaneous analog and digital
computation, but also to a sequential use of
these two means of computation. One such application is the use of digital C0111puters in the
programming and checking of analog computers, a task ideally suited to a digital machine
and especially practical in an hybrid installation where the digital computer is most readily
available to the analog programmer. HYTRAN, a system of software programs has
been developed to provide quick digital assistance in the programming of the analog part of
the HYDAC 2400 hybrid computer system **,
even to the analog programmer unfamiliar with
digital computers.
Since the function of the HYTRAN system
is to replace or complement certain manual procedures, it is necessary to briefly consider the
manual method of analog programming and
checking on which it is based 1. This method
features a two-way static check and can be
broken down into the following steps:
(1) In order to comply with the voltage
range of the analog computer every

* A service Mark of Electronic Associates, Inc.
** The HYDAC 2400 includes the digital DDP-24

and the analog PACE 231R.

291

292

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

pared with their respective theoretical values, any discrepancies are
traced back to their origin and corrected, and finally the static check
voltages are recorded on the potentiometer, multiplier, and amplifier
sheets.
(6) The analog patch-panel is wired according to the computer diagram, and the
potentiometers are set.
(7) To insure correct patching and operational hardware, all amplifiers are read
out on-line and compared with their respective, computed static check values.

SCALE
EQUATIONS

I
DRAW
DIAGRAM

I
I
I
I
I
I

'")
v

OFF-LINE ~ COMPUTE
CHECK 0r PARAMETERS

I

COMPUTE
POTSETTINGS

I

I

HYTRAN has been written to process digitally the following rather tedious routines of
analog programming:
(1) The calculation of the theoretical static
check values, voltage static check values,
and potentiometer settings.
(2) The performance of the static check itself, both off-line and on-line *.
(3) The complete documentation of the analog program.

I
I
I

'\../

I
I
I
I
I

"\.)7

")

PATCHING

I
MANUAL
OPERATIONS

v

ON-LINE
CHECK

~

Iv-

SET
POTS

HYTRAN
OPERATIONS

Figure 1. Programming of an Analog Computer.

Figure 1 shows the steps required to program
an analog problem with HYTRAN.
The scaling of the physical equations and the
preparation of the computer diagram are still
performed by the programmer who thereby
maintains direct control over the analog implementation of the problem. In order to permit
the calculation of the theoretical static check
values, HYTRAN must be given the original
problem statement and a set of test initial conditions. To calculate the static check voltages
and to perform the static checks, the input has
to include the patching according to the computer diagram, component settings or modes,
and the highest derivatives with their corresponding integrators and scale factors. Expressions representing other component outputs
may be optionally inputted to aid in the automatic pin-pointing of errors during the off-line
static check. All inputs are punched on paper

tape in an analog oriented format, which uses
patch-panel terminology and allows complex
algebraic expressions.
HYTRAN outputs include the conventional
amplifier and potentiometer sheets, cross-referencing and symbol tables. Potentiometer settings and static check values are put out as
typewriter documents and on paper tape. The
format of this tape allows automatic setting of
potentiometers as well as automatic read-out
and check of static check values by means of
the ADIOS input/output desk. For a more
thorough check of the analog set-up and hardware, the ADIOS tape of measured static check
values can be processed by HYTRAN, providing a rapid means of locating mispatching or
component failures (Figure 2) .
II STATIC CHECK

*Since the use of an ADIOS desk for input/output to
the analog computer is of particular advantage with
HYTRAN, this discussion presumes its availability for
the automatic setting of potentiometers and performance of the on-line static check from data punched on
paper tape.

The practice of computing two independent
sets of check values has been used as a basis for
the HYTRAN off-line static check. The conventional analog circuit diagram states for at least
some components their expected outputs, by an

HYTRAN---'A SOFTWARE SYSTEM TO AID THE ANALOG PROGRAMMER

293

values. In this case this particular portion of
the computer diagram cannot be checked for
consistency with the problem statement.
In the special case of a high gain amplifier,
checking can be performed only if the expression at the component output is explicitly
stated. The program here checks that the sum
of the component inputs is zero. Similarly for
an algebraic loop, the output expression of some
component in the loop must be given.

Figure 2. HYTRAN Inputs and Outputs.

expression in terms of parameters, variables
and scalefactors. By substituting for the parameter and variable names in these expressions
their values in physical units, the so-called theoretical static check value is obtained.
Further input defines the analog component
interconnections or patching inf()rmation,
which is used to calculate the voltage check
values. In this computation all input voltages
to a component, the kind of input to which they
are connected and the transfer· function of the
component are used to determine its voltage
output.
When both voltage and theoretical values are
available for a component output they.are compared and, if in agreement, they yield the offline static check value for that component; If
the values do not agree then the error is isolated
by retaining the theoretical value as static
check value for all subsequent use and an error
message is given. Values exceeding the voltage
range of the computer will also cause errormessages, but will be retained for further static
check calculations.
The amount of input information required depends upon the degree of checking desired. If
the expression for some component _output is
omitted the voltage value is retained as static
check value. This has the disadvantage of allowing any undetected error to propagate, rather than isolating it to one component as is
done when the expression is given. Conversely,
if the patching connections are not stated, the
theoretical values are used as _static check

The statements defining the analog connections need not be given in any particular order.
Since a connection statement can only be evaluated once all· input voltages to the component
have become defined, the resulting static check
values are computed in an order that is different
from the order of their input statements. The
static check values are punched in this computational order in ADIOS tape format for all components with voltage outputs. This is important for the on-line static check, which if performed by ADIOS in a conventional way cannot distinguish propagated errors from original
errors. However, discrepancies typed out in
computational sequence are always preceded by
the original error"thus eliminating any tracing
for the error source~ In addition a typeout of
the errors in computational sequence and an alphabetical listing of all component names and
their static check values is gi~en.
III THE ON-LINE STATIC CHECK
While in systems without digital access to the
analog computer the on-line static check must
be performed by manual comparison, the availability of a digital input/ output. system provid~s the HYTRAN user. with a choice of two
automatic procedures in systems using ADIOS.
One method is to feed the HYTRAN.generated
static check tape into ADIOS to obtain an automatic comparison between the calculated and
the measured values. It is used whenever the
digital computer is not available at the time of
the analog on-line check.
However if the DDP-24 is available at online check-out time, the use of HYTRAN allows
an improved consistency check that is expectedto become an invaluable tool for debugging of complex problems as well as for preventive maintenance. checks. Rather than

294

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

merely comparing the measured component outputs with their respective, computed voltages,
the HYTRAN on-line check tests the transferfunctions of each component used. To accomplish this the voltages present at the inputs of a
particular component as well as its output voltage must be known. The outputs are easily
measured since ADIOS allows automatic punching on paper tape of the output voltages of the
components used. The inputs on the other hand
are either zero (unused) or equal to the voltage
at the output of some component, and are therefore easily determined from the connection
statements given by the programmer. HYTRAN then computes the output voltages of
each component used in the program and compares it with the measured output, using the
tolerances stated in the individual component
specifications.
In these computations only the measured
voltages are used. The resulting theoretical
outputs are discarded immediately after the
comparison with the measured value. Therefore, errors do not propagate, but are always
pin-pointed at the component level. As a result, accumulated errors do not necessarily
cause an error message (as they would in the
conventional on-line check), but the contribution of. each component involved is investigated
and checked against its specifications.

It is sometimes desirable to repeat the on-line
check at some later time after initial conditions
and parameters have been changed. This is
possible without the manual entry of such
changes, as they are reflected in a change of
potentiometer settings. These settings are updated by reading in a paper tape containing the
actual settings of all potentiometers used, which
can be automatically punched by ADIOS. All algebraic loops, including high-gain amplifier circuits can be checked in closed-loop fashion even
if their output is unknown, because the on-line
check never uses the given component expressions.
It is also possible to use the on-line check
after switching the analog computer into hold
mode during a problem run for a reading of
component outputs. Because HYTRAN simulates integrators in initial condition mode (i.e.,
the output is solely determined by the voltage
of the initial condition input), a read-out dur-

ing hold causes an error at every integrator
output. But since HYTRAN can distinguish
between actual errors and propagated errors,
the remainder of thp "program can be checked
correctly.
Error messages generated in the on-line
check state the erroneous component, the correct output voltage, and the actual voltage
measured. We recall that the correct voltage
is computed from the component function and
the connection statement. Therefore, discrepancies can be caused by component failure as
well as by patching errors. These error sources
can be separated if the analog computer hardware is thoroughly checked before the program
is set-up. This hardware check too can be performed with the HYTRAN on-line diagnostic
program, using an artificial problem which has
been correctly and permanently wired on an
analog patch-panel.
IV THE HYTRAN LANGUAGE
The input language used in HYTRAN is oriented toward the analog programming procedure rather than towards the digital machine.
Input data can be written in a form which
closely resembles the programmer's own way of
documenting analog programs. The HYTRAN
inputs fall into two main categories: inputs
which describe the problem to be solved, and
inputs describing its implementation on the
analog computer.
1. The Problem Statement

The problem is usually stated in mathematical notation. HYTRAN therefore accepts the
problem statement in a mathematically oriented
language which bears resemblance to the programming languages ALGO L 6 and FO RTAN 7.
The problem information to be inputted includes parameter values, variable initial conditions, and a set of algebraic and differential
equations-all in terms of physical units.
Parameters can be defined by expressions containing numerical values as well as other
parameters, while initial conditions of variables
can be given in terms of numerical values
parameters, or other initial conditions. All algebraic and differential equations have to be in
explicit form with respect to the unknown vari-

HYTRAN-A SOFTWARE SYSTEM TO AID THE ANALOG PROGRAMMER

able, or the highest derivative, respectively.
Otherwise, the equations should be inputted in
their original form so that any errors that may
occur during further manipulations on the
problem equations will be revealed or the theoretical static check.
HYTRAN accepts expressions and equations
containing· not only the basic algebraic operations, but also the functions sine, cosine, arctangent, square root, logarithms to the bases ten
and e, and the exponent of e. In addition, the
program processes certain discontinuous functions which are often used in analog computation such as absolute value, sign, limits and
dead zones.
Relational operators are another means of obtaining step-functions. They are represented by
the relations less than and greater than (for
practical purposes, equal to does not exist in
analog computation). While a logical and can
be performed by multiplication, the or is an explicit Boolean operator in HYTRAN.
2. Circuit Diagram Information
An analog program is generated in the form
of an analog circuit diagram by which the programmer states the outputs of components,
their modes, their interconnections (patching),
and in case of potentiometers and switches,
their setting or position. Inputting this information enables HYTRAN to check the analog
program both against the original problem input and against the physical set-up on the analog computers. The general form of a component statement is:
Component Name and Number, Mode =
Expression; Connection Statement
A console number is given only when a
change from one console to another occurs.
By mode one designates the configuration in
which a component is used, or any special
connections not involving problem variables.
For example amplifiers can be connected in
integrator, summer or high gain mode. The
expression gives the (static check) output of
the analog component in terms of problem
variables and scalefactors, written in the
format used in the problem statement. Finally, a connection statement is defined as a
sequence of up to 32 input statements. Each

295

input statement consists of an input designation (usually identical with the pre-patch
panel input name), followed by the name of
the analog component which is connected to
the specific input.
All computer input data are punched on
paper tape, each type of information being preceded by one of the following keywords. These
input sections must be presented in the order
given below, although within any section the
statements can be in arbitrary order.
(1) The PARAMETER and VARIABLE
keywords are followed respectively by
parameters as used for the static check,
and all variable initial conditions.
Parameters and variables may be referred to by mnemonic names which, in
turn, can be defined in terms of other
parameters, initial conditions, or by numerical values. A name thus defined need
not be referred to beforehand, but must
be specified within the same keyword
section.
(2) The EQUATION portion contains the
set of theoretical differential and algebraic equations· to "be implemented on the
analog computer.
(3) The keyword COMPONENTS is followed by the illforIl1ation contained in
the circuit diagram whcih represents the
analog program.
As a simple example of how the input information to HYTRAN is written let us consider
the case of a second order equation (see Figure
3). The inputs shown in Figure 4 should be provided if a complete check is desired. Note that
comments pertinent to the program input, but
meaningless to the digital program, can be inserted if preceded by a tab. The input begins
with the problem identification, which contains
any information the programmer wishes to use
as a heading for all typewriter outputs. The
resulting outputs are shown in Figures 5
through 7.
V. THE INDIVIDUAL
GRAMS

HYTRAN

PRO-

The HYTRAN system presently consists of
three programs which together provide the

296

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE. 1964
PARAMETERS

+IOOV

-IOOV

Swy/lOO

S =5

S = SCALE FACTOR

A =zo

A = AMPLITUDE

OMEG = 10
BETA = 10
TO

-

BETA =

~

= TIME SCALE

=1/10

Swy
VARIABLES
Y' = A*SIN (OMEG*TO)
Y

=A*COS(OMEG*TO)/OMEG

EQUATIONS
Y" = - OMEG**Z*Y

Swy
COMPONENTS
POO

= S*Y'/IOO;+REF

AOO, I=S*Y'; IC:POO

ANALOG ,IMPLEMENTATION OF
2
d y
2
--2 +w y=O

dt

COO = s*y" I(BETA*lO);I:QOO
Q01. = OMEG/BETA;AOO
POI = S*OMEG*Y 1100; -REF
AO!, I = --S*OMEG*Y; IC:POI
COl = -S*OMEG*Y'/(BETA*IO); I:QOl

Figure 3. Sample Problem and Analog Circuit
Diagram.

AOZ, S=S*OMEG*Y; I:AOI
QOO = OMEG/BETA; AOZ

Figure 4. HYTRAN Input Format.

features described above (see Figure 8). These
programs are:
(a) an interpretive (off-line) static check

generator,
(b) an on-line diagnostic program,
( c) a documenting program.
Each program can be contained in memory,
yet allows enough data storage to process
three, 120 amplifier, analog consoles in an 8K
core.
The off-line static check generator converts
the information on the programmer's input
tape into a compact form suitable for digital
processing. A t the same time, it checks the
input for proper format, typing format-error
messages when necessary. Defined expressions
are evaluated immediately, while expressions
containing undefined symbols are stored in
memory until they become defined by subsequent input statements. Static check voltages
are evaluated in a similar manner. Here the
connection statements may be stored awaiting
the calculation of the static check values of all
components mentioned in the statement. During the entire process, an intermediate tape is
punched containing in compact form all in-

formation necessary to run the remaining
HYTRAN programs, including possible future
extensions of the HYTRAN system.
The inputs to the on-line diagnostic generator are the intermediate tape punched by the
off-line program, a tape of measured potentiometer settings, and a tape of measured component outputs. The intermediate tape provides the connection statements and potentiometer settings necessary for the computation

STATIC CHECK VALUES

AOO

47.48

AOl

87.99

AOZ

87.99

COO

-8.79

COl

4.75

POO

-47.48

POI

87.99

QOO

87.99

QOl

4.74

Figure 5. HYTRAN Static Check Output.

297

HYTRAN-A SOFTWARE SYSTEM TO AID THE ANALOG PROGRAMMER

ADIOS
TAPES

231R

PARAMETERS
A

2.00000 El

BETA

1. 00000 El

OMEG

1. 00000 El

S

5.00000 EO

TO

1. 00000 E-l

COMPlJTER

~
•

VARIABLES
Y

8. 799416E-2

Y'

4.74835E-l

Y"

8.7994l6EO

of the exact output voltages. The two remaining tapes are direct outputs from the ADIOS
input/output desk. Any measured potentiometer setting read replaces the corresponding
theoretical setting which was read previously
from intermediate tape, however, the reading
of the measured settings is optional and can
be suppressed by the use of a console switch.
The documenting program sorts and converts the compact information on the interCOMPONENTS

MODE

SETT

A*S*Y'

AOO

~*S*Y

AOI
A02

EXPR

S

A*S*Y
A*S*Y'/100

POI

A*S*OMEG*Y /100

QOO

OMEG/BETA

1.0000

001

OMEG/BETA

1. 0000

.8799

CROSS REFERENCE
PARAM

OCCURRENCE
POO, POI

OMEG

000,001

S

POO, POI

Y

POI

Y'

POO

DIAGNOSTIC
PROGRAM

~

L-,;'

Cb

HYTRAN

OFF -LINE
STATIC

INPUT

CHECK

TAPE

GENERATOR

Ir~-

CO c)
INTERMEDIATE
TAPE

DOCUMENTING
PROGRAM

mediate tape, resulting in component sheets
that contain the analog components in an
orderly sequence, together with their modes,
and their outputs or settings in terms of problem parameters, variables and scalefactors. In
addition, an alphabetic list of values of parameters and variables is typed out, and ADIOS
tapes are generated. One ADIOS tape contains all potentiometer settings in a' format
which allows the automatic settings of potentiometers, the other one contains the computed
static check values for on-line static check by
ADIOS.
The documenting program finally generates
a cross-reference sheet which consists of an
alphabetic list of parameters and variables.
Each name is followed by a list of potentiometers, the settings of which are dependent
upon the parameter in question.

.4748

POO

A

0

ON-LINE

Figure 8. Flow of Information in HYTRAN.

Figure 6. HYTRAN Symbol Table Output.

COMP

HYTRAN

Cbc)

ANALOG

Figure 7. HYTRAN Component Sheets and Cross
Reference.

VI CONCLUSIONS
HYTRAN is expected to become an important tool to the analog programmer as it
increases programming efficiency and justifies
a high degree of confidence in the analog solution. Some of the reasons that lead to this conclusion are:
(1) The automatic evaluation of algebraic
expressions saves programming time
and prevents arithmetic errors.
(2) The generation of pot-set tape saves
time and eliminates the errors which
could occur when transferring the numerical settings from the desk-calculator to the ADIOS keyboard.

298

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

(3) The documentation generated by HYTRAN provides a complete, error-free,
and standard documentation of analog
programs.
Cross-referencing is expected to speed-up the changing of
parameters and scalefactors.
(4) The off-line static check will check
every component in the computer diagram. Automatic static check calculations save time and are error free. The
checking on the component level allows
one to omit the checking of any selected
portion of the computer diagram, such
as circuits that must be checked dynamically or that are considered standard routines. Such an omission does not
prevent the checking of other components in the same algebraic chain.
(5) Simple changes of connections, parameters or scalefactors may change the
majority of the static check values and
pot-settings in a program, but only a
simple change is necessary on the HYTRAN input tape in order to generate
a complete, updated set of ADIOS tapes
and documents. Obviously, when a new
static check is not required, changes can
be made in a conventional way and
there is no need to update the input
tape for every minor change.
(6) When the on-line static check is performed by ADIOS, the computational
sequence of the static check values on
the HYTRAN generated tape eliminates
tracing for the error sources.
(7) The use of the on-line diagnostic program allows pin-pointing of errors on
the component level, even for closed
algebraic loops of unknown output.
(8) In conjunction with a permanently
wired test problem, the on-line diagnostic program can be used for daily maintenance checks.

Man-power savings from the above benefits
out-weight by far the additional effort involved
in preparing the HYTRAN input tape, a job
that is comparable in size to that of manually
preparing potentiometer and amplifier sheets.
The present system is easily expanded to include new features (such as the generation of
a digital check solution for example), some of
which may 'evolve from the practical use of
the present HYTRAN system. Since such
additions will require little additional input
information, their benefits will be available at
small extra cost and therefore further increase
the over-all economy of the system.
REFERENCES
1. CARLSON, A. M. and HANNAUER, G., "Handbook of Analog Computation" (Electronic
Associates, Inc., 1964).
2. PAYNTER, H., and SUEZ, J., "Automatic
Digital Set-up and Scaling of Analog Computers", ISA Transactions, Jan. 1964.
3. GREEN, G., DEBROUX, A., DEL BIGIO, G., and
D'Hoop, H., "The Code APACHE intended
for the Programming of an Analogue Problem by Means of a Digital Computer",
Proc. Int. Assoc. Analog Computation, Vol.
5, April 1963, No.2.
4. OHLINGER, L., "ANATRAN-First Step in
Breeding the DIGNALOG," Proc. WJCC,
Vol. 17, May 1960.
5. PROCTOR, W., and MITCHELL, M., "The
P ACE Scaling Routine for Mercury," Computer Journal, Vol. 5, No.1, 1962.
6. NAUR, P., et aI., Report on the Algorithmic
Language ALGOL 60, Com. ACM., Vol. 5,
No.5 (1960).
7. FORTRAN General Information Manual
(International Business Machines Corporation, 1961) ed. F 28-8074-1.

"PACTOLUS"- A DIGITAL ANALOG SIMULATOR
PROGRAM FOR THE IBM 1620
Robert D. Brennan and Harlan Sano
International Business Machines Corporation
Research Laboratory
San Jose, California
the very intimacy of the man-machine communication it permits. Since the nature of the
task can be so well defined for this particular
application, digital simulation seems a most
logical starting point in the quest for more
creative use of computers. Only when we are
able to perform this task well-with ease and
flexibility comparable to simulation using analog computers-only then, should we proceed
to those applications where the man-machine
relationship is more nebulous.

I. INTRODUCTION

Perhaps the most formidable challenge in the
field of digital computer applications is the development of equipment and programs which
will extend the creative power of scientific
users. The crux of the problem, of course, is
intimate man-machine communication-a most
elusive and difficult-to-define characteristic. The
engineer requires a conveniently manageable
system; the scientist requires sufficient intimacy to provide real insight into the complex
interplay of problem variables; the creative
user requires computing power and flexibility
to permit imaginative use of the computer and
graphic display to permit recognition of inventive solutions. The development of computers
designed specifically for such applications has
been slow due to the difficulty of ascertaining
the proper man-machine relationship.

Digital analog simulator programs-programs which affect the elements and organization of analog computers-are no novelty.
Since the first attempt by Selfridge 1 in 1955,
there have appeared a number of such programs; best known perhaps are DEPI,2
ASTRAL,3 DEPI 4,4 DYSAC,5 PARTNER,G
DAS, 7 JANIS, 8 and MIDAS.9 Significant improvements have been made in both the interconnection languages and the computational
aspects. The latest and most sophisticated of
these programs is MIDAS; it incorporates the
best features of its predecessors while presenting several important innovations. However,
all these previous programs seem to share a
common failing in that while they succeed to
a greater or lesser extent in using blockoriented languages to express the simulation
configuration, they fail to provide the on-line
operational flexibility of the analog computer.
P ACTOL US is an attempt to focus attention

Simulation is perhaps unique. It does require
close man-machine communication but the nature of this interplay is fairly well known.
Years of experience are available in which
analog computers were used for simulation in
the entire spectrum of scientific disciplines.
The structural organization of the analog computer-its collection of specialized computing
elements which can be interconnected in almost
any desir~d configuration-makes it a most
flexible tool for the engineer, who is trained
to visualize a system as a complex of subsystems. The forte of the analog computer is in
299

300

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

upon this seemingly ignored aspect of digital
simulation.
According to ancient myth, everything that
King Midas touched turned into gold. This was
fine until dinner time when his food and drink
also turned into gold and what had seemingly
been a boon wrested from the gods became a
curse. To remedy this golden problem, he was
advised to bathe in the River Pactolus. Digital
simulation programs, particularly MIDAS,
have certainly seemed aurous to many users;
yet they must be regarded with mixed feelings,
at best, by the engineer who is accustomed to
"twisting a pot" or "throwing in a lag circuit"
at an analog computer console. To such a user,
the remoteness of the digital computer and
"turn-around" time seem something of a curse
on digital simulation. P ACTOLUS is intended
to demonstrate that with an appropriate terminal as an operating console, this "curse" can
be remedied. P ACTOL US is designed to permit the user to "modify the patchboard,"
"twist pots," and "watch the plotter" as is the
wont of the analog devotee. The name of the
program was chosen in deference to the structural and computational excellence of the
MIDAS program and to suggest a direction for
future development.
II. GENERAL DESCRIPTION
Simulation is a well-established engineering
and scientific tool with applications ranging
from simple mechanics to hydrodynamics, aerospace, and bio-niedical research. It is presently
so widely used that most definitions are unduly
restrictive. An excellent definition which
avoids this fault is the following: "Simulation
is the act of representing some aspects of the
real world by numbers or symbols which may
be easily manipUlated to facilitate their
study."lo Analog and digital computers obviously differ m3:rkedly in the manner in which
they operate; thus, considerable differences are
to be expected between analog and digital simulation. Digital simulation offers significant advantages which have been capably described in
References 1-9. The consensus of these is that
for many types of problems, digital simulation
can provide more reliable and accurate results
with less over-all engineering time and effort.
Much of this potential has already been

achieved in the various digital analog simulator programs. In part, the development of
P ACTOL US was intended as a commentary on
the language and computational aspects of
these programs. Primarily, however, we are
concerned with the second half of the definition; that is, improving the ability of the digital computer user to manipulate the numbers
or symbols.
PACTOLUS might be described as a blockoriented interpretive program with on-line
control and input-output capabilities. The program, written in FORTRAN II-D, was developed for the IBM 1620 computer with the 1627
Plotter and the Card Read-Punch. This is a
comparatively small, scientific computer and
several features which might have been incorporated with a larger computer had to be foregone. The overriding concern, however, in the
development of this program was the demonstration of operational flexibility. For this
purpose, the 1620 with its plotter, typewriter,
and sense switches has been an excellent choice.
The configuration and parameter specifications
may be prepared in advance of a problem session in the form of a deck of cards, or this data
may be entered via the typewriter in a simple,
convenient manner. If "patchboard wiring" is
performed at the console by means of the typewriter, the punch automatically produces a
card which may be added to the previously
prepared deck. The user, observing the primary output as it is plotted, may interrupt the
run at will to modify the configuration, parameters, or initial conditions. The typewriter
provides a neat, permanent record of the configuration and parameter values and any modifications specified by the user. In addition, the
user specifies those variables of secondary interest which will be recorded by the typewriter
at specified intervals during the run.
The program incorporates all the standard
analog computer elements-summing amplifiers, inverters, integrators, multipliers, relays
-plus many special purpose analog circuitsabsolute value, bang-bang, dead space, limiters,
clippers, zero order hold circuits. Table I contains the complete list of the available elements
and symbols. The program is presently limited
to a maximum of 75 blocks in a simulation;
no more than 25 integrators or 25 unit delay

PACTOLUS-A DIGITAL ANALOG SIMULATOR PROGRAM FOR THE IBM 1620

NAME

SYMBOL

TYPE

DESCRIPTION

ARCTANGENT

+1
e

BANG-BANG

o

>0

0 for e = 0
-1
i 0
i
i
eo = Min (O,e - P )
e <0
1
2
i

DEAD SPACE

EXPONENTIAL

LINEAR INTERPOLATION
10 EVEN SEGMENTS
BETWEEN e '" 0 AND
i
e =- 100

FUNCTION
GENERATOR

i

GAIN

eo

HALF POWER

INTEGRATOR

I

JITTER

J

Table

~-eo

=~

SQUARE ROOT

e
i

~

r.

Definition of PACTOLUS Elements.

RANDOMNUMBERGENERATOR
BETWEEN:1

301

302

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

TYPE

SYMBOL

CONSTANT

K

n.

LIMITER

L

NAME

DESCRIPTION

a1

e0

e-~e
i~

e

e
0

o

o

=

=

P

I

> o·

Min(e , PI)
i

for e

Max(e1"p2)

i

> 0

MAGNITUDE

NEGATIVE
CLIPPER

N

e.··~e
i~

o
e
0

s 0

o

> 0

OFFSET

POSITIVE
CLIPPER

P

QUIT

Q

e··-~e
1~

0

=9-

0

e1
e
2

RELAY

SINE

TIME PULSE
GENERATOR

Q

n

e

e

QUIT(TERMINATE RUN)

R

S

T

o

IF e > e
2
1

eo

e

~

~

e

~e
i~

=

e

e

1

0

~

o

< 0

s1n(e ) ARGUMENT
i

IN RADIANS

GENERA TES PULSE TRAIN WITH
PERIOD EQUAL TO PI FIRST PULSE
0

OCCURS WHEN e

1

?!

0

PACTOLUS-A DIGITAL ANALOG SIMULATOR PROGRAM FOR THE IBM 1620

NAME

DESCRIPTION

SYMBOL

TYPE

UNIT DELAY

U

e~O

VACUOUS

V

e~eo

WEIGHTED
SUMMER

W

e

e~
P2
Pa

X

WYE

Y

ZERO ORDER
HOLD

Z

SUMMER

+

DIVIDER

/

e

= ei(t -at/2)

0

eo

f(e )
i
USED IN CONJUNCTION
WITH ELEMENT WYE
e

0

0

e~
e
n
eo

eo

e

MULTIPLIER

n

e

l

e 1 = Bn> - e
e

2

e~~

e

I

Z

n

0

e

0

;&!

=

Ple

l

+ P e + Pae
2 2
a

= e l e2

LOGICAL BRANCH ELEMENT
USED FOR IMPLICIT OPERATIONS

SAMPLES WHENEVER e > 0
2

= ±e I ±e2 ±ea
o
ONLY ELEMENT WHERE NEGATIVE'
SIGN IS PERMISSIBLE IN
CONFIGURA TION SPECIFICATION
e

=

SIGN INVERTER

e

SPECIAL 1-9

SUBROUTINES SUPPLIED
BY USER

o

n REPRESENTS THE BLOCK NUMBER

303

304

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

elements may be used. The program is also
restricted at present to a maximum of three
function generators. The structure of the program is sufficiently simple that modifications
or additions to the set of PACTOLUS elements
may easily be made to accommodate the requirements of particular users.
The innovation in PACTOLUS is its atten..,
tion throughout to operational flexibility. In
most other respects, PACTOLUS represents a
conscious synthesis of those features which in
our opinion are the best of the many previous
programs. Its interconnection language is modeled on that of ASTRAL which is flexible yet
simple. Each block is identified by number
which also identifies the output from the block.
The type of element for each block is specified
by a single alphanumeric character or mathematical symbol. The inputs to a block are specified by listing the block numbers of those elements which provide the inputs. Structurally,
PACTOLUS is an interpretive program and is
closely modeled on MIDAS. Like MIDAS, it
uses the excellent sorting procedure-a logical
test for determining the proper order for the
block computations-which had been a feature
of the ASTRAL program. The second-order
Runge-Kutta integration scheme used in PACTOLUS is a compromise between the Euler
integration advocated by the developers of DAS
and PARTNER and the more sophisticated
formulas used in many of the other programs.
For those simulations which commonly involve
discontinuous functions, the use of higherorder numerical integration formulas seems
unwarranted; apart from accuracy considerations, the requirements of the output plotter
demand fairly small time increments even at
the cost of prolonged solution time.
In addition to the complement of computing
elements provided with most of the digital analog simulator programs, PACTOLUS includes
an element similar to the Implicit Function
element which is one of the outstanding features of MIDAS. This element is used for the
solution of equations of the form Y = f (Y). It
permits iteration without advancing the time
clock until convergence is (hopefully) achieved.
The implementation of this feature seems
somewhat superior in PACTOLUS; if the convergence criterion is not satisfieq, the computa-

tion proceeds again through those blocks in the
algebraic loop. MIDAS appears to recompute
all the preceding blocks on the sort list, regardless of whether or not they pertain to the
Implicit Function. This modification would
seemingly result in a significant reduction of
solution time for large problems involving Implicit Functions.
Another modest contribution in P ACTOL US
is the incorporation of a number of special elements of unspecified function. An interconnection specification for one of these special elements results in a subroutine call during the
interpretive portion of the program. The user
may design any complex function for this element by development of the appropriate subroutine. This permits the user to add elements
to the. standard complement without reprogramming the main P ACTOLUS program. The
JANIS program, although structurally quite
different, must be credited with first utilizing
subroutines to achieve this "do-it-yourself"
capability.ll
III. OPERATING PROCEDURE
AND EXAMPLES
The simulation configuration is the specification of the interconnection of the computing
blocks, where each block is one of the standard
set of P ACTOL US elements or one of the nine
special element blocks which the user may prepare for his particular requirements. Each
block has but a single output and no more than
three inputs. The program is incapable of
handling algebraic loops; the existence of such
a loop will result in a "sort failure" message.
Since the digital computer is a serial device,
the various computations specified by the simulation configuration must be performed for
each time cycle in some particular order. The
computation for any block should not be attempted until all its inputs have been computed
during that iteration. The program automatically performs a sorting operation to achieve
this ordering after each configuration change.
It is presumed that each simulation involves at
least one integrator; the program uses a simple
second-order Runge-Kutta numerical integration formula to approximate the outputs of the
integrators during the specified integration
interval.

305

PACTOLUS-A DIGITAL ANALOG SIMULATOR PROGRAM FOR THE IBM 1620

Example 1: Use of the program is perhaps
best understood by consideration of several
simple examples. Figure 1 is a simulation diagram for a second-order system. The program
presumes that ordinarily the user will approach
the computer with most of the "patchboard"
pre-wired; that is, with a deck of cards specifying the configuration and parameter values.
For this simple example, however, it is as easy
to put a deck of blank cards in the card reader
and do the "wiring" at the console. Figure 2
shows the typewriter record from this problem
session. The user first turned on Sense Switch
# 1 to indicate his intention to enter configuration specifications from the typewriter. The
computer then typed the following:

Figure 1. Simulation Diagram for Second-Order
System Example.

CONFIGURATION SPECIFICATION
BLOCK TYPE INPUT 1 INPUT 2 INPUT 3
()

()

()

CONF I GURATION SPEC I F I CATI ON
TYPE
INPUT 1
INPUT 2

(IJ6)

(K) ~
(+)

(7)

(I)

(23)
( IJ)

(G)

(17 )

(G)
(I)
(0)
(G)

(13)
(19)

( 20)

()
( 17'

(

(-13)

(-23) ;

( IJ6 J;

(

)

(
(

)
)

(IJ);
( 76);
( 19);

(
(
(

)
)
)

(1) ~
(1);

INPUT 3

()

(
(
(
(
(
(

)
)
)
)
)
)
)

INITIAL CONDITIONS AND PARAMETERS
I C/PAR1
PAR2
PAR3
0.0
;)
(13)
(-100.0;)
( IJ)
( 1.0 ;
)
( 23 )
( 0 •8
) ,.
(20)
(20.0; )
(19)
(-5.0; )
) INTEGRATION INTERVAL
BLOCK
(17)

~ ~o ~~
( 2.0
(20) ;
(13) ;

~

i

(

) TOTAL T !ME

) PRINT INTERVAL
HOR I ZONTAL AX I S
VERTICAL AXIS

TIME
0.000
2.000
IJ .000
6.000
8.000
10.000
BLOCK
(23)

TIME
0.000
2.000
".000
6.000
8.000
10.000
BLOCK
(23)

TIME
0.000
2.000
".000
6.000
8.000
10.000

OUTPUT("6)
100.00000
-30.51581
-13.03217
9.20051
."8282
-1.96715

(

()

The user then turned the typewriter paper
roller back one line and inserted the first specification within the parentheses. After he
pressed the RS (release and start) key, the

PACTOLUS DIG IT AL ANALOG SIMULATOR PROGRAM

BLOCK

()

OUTPUT( 7)
0.00000
"1.30857
-11.02521
-6.96698
3.8"609
.50806

OUTPUT( 13)
-100.00000
-1.21098
21.8523"
-3.62699
-3.55969
1.56010

OUTPUT< 2 3) ;
0.00000
31.8IJ686
-8.82016
-5.51358
3.07681
."06IJ5

INITIAL CONDITIONS AND PARAMETERS
IC/PAR1
PAR2
PAR3
1.2 ;

OUTPUT 116
100.00000
-23.IJ3231
-8.61192"
2.27288
.111380
-.21880

OUTPUT 1
0.00000
31.60320
-.65"6"
-3.39"39
.11838
.30531

OUTPUT 116
100.00000
-38.091118
-25.5018"
30.08132
-3.85580
-11.511220

OUTPUT 1
0.00000
63.26133
-32.190511
-12.01936
20.56715
-5.06982

OUTPUT 13
-100.00000
-21.691"6
9."31181
1.8003§
-.88581
-.1"76"
INITIAL CONDITIONS AND PARAMETERS
Ie/PARI
PAR2
PAR3
(
0.11 ;

OUTPUT 13
-100.00000
12 .19025
38.38"06
-25.21358
-11.37106
13.51013

OUTPUT 23
0.00000
"5.123811
-.18556
-IJ.07321
.1"206
.366"5

OUTPUT 23
0.00000
25.30IJ53
-12.81621
-11.807111
8.22686
-2.02192

Figure 2. Typewriter Record for Second-Order System Example.

306

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

typewriter automatically typed another line of
parentheses in anticipation of the next specification. In addition, as each configuration specification was entered from the typewriter, the
punch produced a card with the identical data.
The collection of these cards forms the wired
"patchboard" which may then be saved for
subsequent problem sessions, thereby eliminating the necessity of re-typing the specifications.
Just as the analog user merely needs to get the
patch-cord into a hole to make a connection, the
PACTOLUS user need only get the proper
block number within the parentheses; he is not
distracted at the console by complicated input
format requirements.
The equivalence of the format of the configuration specifications shown in Figure 2 to
the simulation diagram of Figure 1 should be
obvious. Block 17 is a Constant input (K).
Block 46 is a Summer (+) with inputs from
blocks 17, 13, and 23; sign inversion is indicated for the latter two. In a similar manner,
blocks 4 and 23 are Gain potentiometers (G)
and blocks 7 and 13 are Integrators (I). Thus,
each component is uniquely identified by a
block number. The type of element for each
block is specified by a single letter or symbol.
These have been assigned as either the first
letter of the name of the element or as the
common mathematical symbol for the operation. Table I contains the complete list of elements and the corresponding symbols. The
inputs to a block are specified by the block
numbers of the components which provide the
inputs. Block numbers may be assigned arbitrarily between 1-75. Block 76 by definition
is the time variable; it appears as the input to
block 19 since ~t is desired to plot the time
response of the second-order system versus
time. It should be noted that the plot size is
fixed at 10 inches square. The origin is at the
center and each axis is scaled for a maximum
of +100.0. In this example, blocks 19 and 20
correspond to the horizontal position and gain
controls of the conventional X- Y recorder.
After entering the last configuration specification, the user turned off Sense Switch # 1
and turned on #2 to enter initial condition and
parameter values from the typewriter. Once
again, the typewriter typed a line of parentheses to indicate the proper format. Figure 2

shows that the user specified an initial condition for Integrator 13 at -100.0 and the
damping factor control, Gain potentiometer 23,
at 0.8. After each of these parameter specifications, the punch again produced a card; thus,
both the configuration and the parameters became part of the permanent deck. After entering the last of these specifications, the user
turned off the sense switch. The typewriter
then requested timing data for the run and
specification of those outputs which were to be
plotted and those which were to be printed.
These entries are simply performed since it is
only necessary that the typing be within the
parentheses provided. The actual time required
to "wire at the console," "set the pots," and
"adjust the output devices" for this example
was 6V2 minutes. This time cost would seem
to be comparable to that required for the
equivalent analog setup, particularly if we insist that the analog operator prepare a neat,
permanent record of the interconnection and all
parameter values.
The plotter record is shown in Figure 3.
Three runs were made, each for a different
value of the damping factor. Figure 2 shows
the parameter changes for Gain block 23. Each
run required 1 minute, 45 seconds; the "pot"
changes required 15 seconds each. Run times
might have been shortened by increasing the
100

r----------.,.--------...,

Time in seconds

Figure 3. Plotter Record for Second-Order
System Example.

PACTOLUS-A DIGITAL ANALOG SIMULATOR PROGRAM FOR THE IBM 1620

typewriter print interval or the integration
step.
Example 2: Let us next consider a slightly
more complicated example which illustrates
how P ACTOL US might be used for a study in
speech synthesis. This particular simulation
is concerned simply with the response of the
first speech formant when driven by a glottal
pulse. The first formant corresponds roughly
to that portion of the speech signal which remains after passing the signal through a 1 KC
low-pass filter. The glottal pulse is closely modeled by the triangular waveform produced by
block 6 of Figure 4; the effect of the vocal tract
is simulated by blocks 7-9. During utterance
of a stop consonant such as the "b" of the word
"bah," the lips must open quickly with a resulting rapid rise in the natural frequency of the
vocal tract. This variation in frequency of the
first formant is controlled by blocks 10-12. The
user might experiment with various frequency
changes to match actual speech records. To
add the second or third formants, it would only
be necessary to add additional second-order filters and their associated frequency controllers.
In preparation for this problem session, the
the configuration and parameter
;~~~ifi~~ti-o;;~ on speci;l coding forms which
"I'YIi-nimi'7o r>cmr>ovon ·with data format; from these
~~di~;~f~rv~~~~-; deck of cards was punched. In
ll~Pl' pntpl'Pc1

PLOTTER
VERTICAL
AXIS

~PWI'TER

76(t)

--~=IZONTAL

Figure 4. Simulation Diagram for Speech Synthesis
Example

307

this sense, the user approached the console with
a "pre-wired patchboard." The specifications
for blocks 10-12 were omitted, however, as
might have occurred from oversight or from
early indecision with the form of this formant
frequency controller portion of the simulation.
The program caused the configuration specification cards to be read until a blank card was
encountered; each of these statements was also
printed by the typewriter for the convenience
of the user. Since a block 12 had been specified
as the input to block 13, but block 12 was as
yeturlspecified,\the program recognized an operator' error. After listing the sort failures as
an aid for debugging, the typewriter produced
a line of parentheses, anticipating that the user
would wish to correct the error or omission.
The user then turned on Sense Switch #1 until
he had entered blocks 10-12. The program
then proceeded to read the parameter specification cards until a blank card was encountered.
During this period, the user had turned on
Sense Switch #2 to permit typewriter entry of
the parameters for blocks 10-12.
Figure 5 shows that the user neglected to
depress the numeric shift key of the typewriter
when entering the total time for the run. To
recover from this or any other typing error, the
user simply turns on Sense Switch #4 prior
to pressing the RS key. He would then turn
the switch off and reenter the data on the next
line. Figure 6 shows the plotter output from
this run. The total time for reading the input
deck, adding the three blocks, adj usting their
parameters and performing the run was 11
minutes. The user finally changed the configuration and repeated the run in order to plot the
"glottal pulse." Note that for this purpose, it
was not necessary to change parameters, timing, or output data; a series of runs can be
performed with a minimum of effort.
Exa1nple 3: The third example is a simulation of a sampled-data feedback control system.
Figure 7 is a diagrammatic representation of
the system; Figure 8 shows the corresponding
simulation diagram. The objective of this
study was to obtain a digital compensator design which would permit the system output to
respond in an acceptable manner to the flattopped ramp input. Of particular interest is
the manner in which the Time Pulse Generator

308

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

define a Special element rather than resort to
a number of the standard PACTOLUS elements. For instance, one might prepare a
defining subroutine for element Special 1 to
perform the function of the digital controller
of the third example:
E() (z)
k (I-a Z-l)

PACTOLUS DIGITAL ANALOG SIMULATOR PROGRAM

CONF I GURA TI ON SPEC I FICA TI ON
TYPE
INPUT 1
INPUT 2

BLOCK
1

G

2

I

3

R

5

3

7

12
13

0
13

76
19

0
0
0
0
0

9

7
I

INPUT 3

o
o
2
o

o
o
7

o
o
o
o
o
o
o

o
o

(l-b Z-l)
100 r-------------~~-----.----------------------~

13

n

(11)

(60)

0

o
o

Cl2)

( O.O~ t
( UI*' I
12.0 ,
( 2.0'
(20) ,

0
0
I

a

9

n

-

-51

5
6

13

FAILURE
FA I LURE
FA I LURE
FAI LURE

1

76

-

SORT
SORT
SORT
SORT

0

51

~

6
7
I
9

19
20
50
51
60
BLOCK
BLOCK
BLOCK
BLOCK
ClO)

2

50

(K),

(

(I)
(L)

(
(

)
10) I
1111

INITIAL CONDITIONS AND PARAMETERS
BLOCK
I C/PARI
PAR2
PAR3
1
-1.50000
0.00000
0.00000
5
0.00000
0.00000
0.00000
7
0.00000
-1.00000
-.30000
13
6.21320
0.00000
0.00000
19
16.66666
0.00000
0.00000
20
-100.00000
0.00000
0.00000
50
100.00000
0.00000
0.00000
51
~.OOOOO
0.00000
0.00000
60
2.00000
0.00000
0.00000
(10)
(O.~'
)
)
)
(11)
(0.2,)
)
)
(12)
(
0.6
)
0.0')
)
) INTEGRATION INTERVAL
) TOTAL TIME
) PRINT INTERVAL
HORIZONTAL AXIS
VERTI CAL AX I S

TIME
0.000
2.000
~.OOO

6.000
1.000
10.000
12.000

BLOCK
(60)
BLOCK

OUTPUT( 6)
0.00000
50.00000
100.00000
25.00000
0.00000
0.00000
0.00000

OUTPUT(12)
.20000
.21000
• __ 000
.36000
.52000
.60000
.60000

CONFIGURATION SPECIFICATION
TYPE
INPUT 1
INPUT 2
(.)
(611
()

OUTPUT( 7l
0.00000
n.760U

-5.ln,.
-9.'1651
-2.126-'
-.51610
1.7H51

OUTPUT( 9)1
0.00000
17.66a5
15.79_76
.56082
-.52720
-.69110
-.27715

INPUT 3

()

INITIAL CONDITIONS AND PARAMETERS
IC/PARI
PAR2
PAR3

-100~

____________________

o
TIME
0.000
2.000
_.000
6.000
1.000
10.000
H.OOO

Figure 5.

OUTPUT 6
0.00000
50.00000
100.00000
25.00000
0.00000
0.00000
0.00000

OUTPUT 12
.20000
.21000
.36000
.~_ooo

.52000
.60000
.60000

OUTPUT 7
0.00000
1'.760.0
"-3.11391
-9.'1651
-2.126,7
-.51610
1.rU51

OUTPUT 9
0.00000
17 .6&1'5
15.79"6
.56012
-.52720
-.69110

~

12

--

Typewriter Record for Speech
Synthesis Example.

Special Elements 1-9
When a user finds recurring use for a particular operation, it may be advantageous to

__________________

Figure 6. Plotter Record for Speech Synthesis
Example.

-.27715

element is used in conjunction with Zero Order
Hold and Unit Delay elements to implement the
digital compensator. Block 50 produces a series
of pulses at the sampling rate; these pulses
trigger the hold elements. By alternating hold
and delay elements, one may obtain the sampled-data operators z-I, z-2, etc. The output of
the system is shown in the plotter record, Figure 9. A number of runs were conducted with
various values for the parameters of blocks 12
and 13 which determine the gain and weighting
factors for the digital controller. Each of these
runs required 1 Y2 minutes, exclusive of the
time required to decide upon the next set of
values.

~

Time in milliseconds

I

~

Figure 7. Diagrammatic Representation of SampledData Feedback Control Problem.
TI(I)

PlDI'TD
VllRTlCAL

AD!

~_PL<7M'EII
~~ORTAL

TI(I) _ _ ~

Figure 8. Simulation Diagram for Sampled-Data
Feedback Control Problem.

PACTOLUS-A DIGITAL ANALOG SIMULATOR PROGRAM FOR THE IBM 1620

200

.-------------r--------,----.. . .

C
C
C

C

309

SUBROUTINE SUBIIC.PAR.I.J.K.LI
I NPUT IS CI J I
OUTPUT IS CI I I
CI761.PARI75.31
DIMENSION
IF I C(76) I
2.1.2
INITIALIZE AT T • 0
CAY· PARII.lJ
A .. PARII,21
B .. PARI 1,3 I
EO .. 0.0
ZMIEI .. 0.0
lMIEO .. Q.O
2 IF I CIK) I
4.4,3
SAMPLING OCCURS WHEN SECOND INPUT IS POSITIVE
EI .. ClJ)
EO .. CAY*IEI - A*ZMIEI)
+ B*ZMIEO
ZMIEO • EO
ZM1EI .. EI
4
C( I I .. EO
RETURN
END

Figure 10. FORTRAN Program Example for Definition
of Element "Special 1."

Time in minutes

2.5

Figure 9. Plotter Record for Sampled-Data Feedback
Control Problem.

Such a program might be easily written in
FORTRAN or, for a large simulation in which
speed was critical, in symbolic machine lan-

guage. Figure 10 shows a FORTRAN program
which would perform this operation; it is important to note that due to the simplicity of the
P ACTOL US program, only modest programming skill is necessary for the definition of the
element. This new element, Special 1, can then
replace blocks 2-15 of Figure 8. The typewriter record illustrating use of this element
as block 13 is shown in Figure 11.

PACTOLUS DIGITAL ANALOG SIMULATOR PROGRAM

BLOCK
1
13
20
21
30
31
40
41
50
60
61
70
74
75

CONFIGURATION SPECIFICATION
TYPE
INPUT 1
INPUT 2
-41
6l
50
1
1
I
21
13
20
G
0
I
21
0
G
30
0
I
41
31
G
40
0
T
76
0
G
76
0
L
60
0
0
31
0
G
76
0
'0
74
0

INPUT 3
0
0
0
0

0
0
0
0
0
0
0
0
0
0

INITIAL CONDITIONS AND PARAMETERS
I C/PARI
PAR2
PAR3
0.00000
-1.00000
0.00000
-10.00000
0.00000
0.00000
0.00000
0.00000
0.00000
10.00000
0.00000
0.00000
0.00000
-1.00000
0.00000
-20.00000
0.00000
0.00000
.20000
0.00000
0.00000
125.00000
0.00000
0.00000
125.00000
0.00000
0.00000
-100.00000
0.00000
0.00000
80.00000
0.00000
0.00000
-100.00000
0.00000
0.00000
(13)
(0.75
)
(0.6
)
( 0.5 ~
)
) INTEGRATION INTERVAL
) TOTAL TIME
) PRINT INTERVAL
HORIZONTAL AXIS
VERTICAL AXIS
BLOCK
20
21
30
31
40
41
50
60
61
70
74
75

(
0~02 V
(
2.5;
( 0.5;
(5);
(70);

TIME
0.000
.500
1.000
1.500
2.000
2.500

Figure 11.

OUTPUT(13)
0.00000
24.87666
6. Q5500
-5.72807
3.14409
-3.21131

OUTPUT(21)
0.00000
21.64Q80
".65402
-3.77466
3.20176
-2.35386

OUTPUT(31)
0.00000
40.72684
115.54003
128. Q7023
121.58805
127.13260

OUTPUrc4

1>,

o.oonrtl!

31.04115
112.51337
130.}t1467
1?0.33100
128.0!W'-4

Typewriter Record for Sampled-Data Feedback Control
Problem.

310

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Implicit Operations: The "Wye," logical
branch element is used in conjunction with
the Vacuous element V for simulations which
involve implicit equations of the form Y =
f(Y,X). On a digital computer, such an equation is usually solved by iteration. In a realistic
problem, Y will often be merely an intermediate variable used in subsequent equations of the
form Z = g (Y,X). It is the function of the
Wye element to determine whether the iteration on Y is sufficient to satisfy the error criterion. If not, further iterations must be made
until the test is (hopefully) satisfied. This iterative procedure must be performed within each
of the integration time steps.
There is no need, however, to recompute X
at each iteration since it is independent of the
iteration. Similarly, the computation of Z
ought not be attempted until the iteration on
Y is satisfied. The MIDAS program was the
first of its kind to have a capability for implicit
equations, but it does not presently incorporate
these considerations. The implementation in
PACTOLUS is presented (as a peace offering?) for possible improvement of MIDAS and
subsequent programs.
The manner in which the elements are to be
used is indicated in Figure 12. Although block
numbers may be assigned arbitrarily, for illustrative purposes they have been assigned in
the same sequence as that determined by the

z

Y test

~---:x~-----~ --..I

Figure 12. Example Use of the Wye and Vacuous
Elements for Simulations Involving Implicit Equations.

sorting operation. Blocks 1-16 compute a
quantity X. The initial estimate for Y is given
as an initial condition for V block 17. Blocks
18-30 compute f (Y,X). Block 31 compares
f (Y,X) with the previous estimate of Y. Parameter 1 of the Wye element specifies the relative error criterion. If the relative error between the outputs of blocks 30 and 17 is less
than specified by that parameter, then the output of block 31 is set equal to that from block
30. Computation of Z then proceeds in normal
manner.
If the error criterion is not satisfied, the
operation of Wye block 31 is as follows:

(1) A new estimate for Y is computed using
parameter 2 of the Wye element
Yn+l = (l - P2) f (Yn,X)

+ P2Y

n

;

(2) Y n +1 replaces the previous Y n as the output of block 17;
(3) The program "branches back" to the
computation of that element on the sort
list which follows the V block-in this
case, it branches to block 18.
The inputs, if any, to the Vacuous element V
do not affect its output. Its initial output is
specified as an initial condition; its subsequent
output is determined by the associated Wye
block. The position of the V element in the sort
list follows that of each of its inputs. Its purpose is to ensure that, when a "branch back"
occurs, these preceding blocks will not be recomputed. There is no requirement that the
implicit equation actually involve any of the
inputs to the Vacuous block.

Sense Switches
An important factor in the flexibility of analog simulation is the ease with which the operator can control the run, starting and stopping
it at will. PACTOLUS uses the sense switches
of the 1620 to achieve the same measure of
control provided by the usual "Standby-Initial
Condition-Operate" switch of the analog computer. The operator may terminate a run at
any time by momentarily turning on Sense
Switch .#4. He then sets the sense switches in
accordance with the operational option he desires and presses the Start switch to continue.

PACTOLUS-A DIGITAL ANALOG SIMULATOR PROGRAM FOR THE IBM 1620

The sense switch settings for the various options are as follows:
Sense Switch #1 on permits the operator to
modify both the configuration and initial condition/parameter specifications;
Sense Switch #2 on permits the operator to
modify the initial condition/parameter specifications;
Sense Switch #3 on permits the operator to
modify the timing and
output specifications;
Sense Switch #4 on causes the plotter to
move the paper beyond
the present plot and
prepare a new plot
frame.
Sense Switch #3 may be used independently
or in conjunction with Sense Switches .#1 or
#2. Sense Switch #4 is always used in conjunction with one or more of the other switches.
If the computer is restarted with all switches
off, the program presumes that an entirely new
simulation is to be started and attempts to read
the configuration specifications.
IV. SUMMARY
Our objective in developing PACTOLUS has
been twofold: to make a critical evaluation of
the various techniques employed in previous
digital analog simulator programs and to demonstrate that a modus operandi comparable to
that of analog computer users could be obtained for digital simulation. P ACTOL US embodies the conclusions of that evaluation. No
attempt has been made herein to detail the reasons for accepting certain features while rejecting others. With the hope that this" effort
will be of value in the development of subsequent simulation programs, we merely wish to
state that this is our considered~ opinion after
serious study.
Whether P ACTOLUS does indeed represent
an innovation in operational flexibility will only
be known after the program achieves much
wider usage. It has been used for a number of

311

small applications,12 but we readily admit a
measure of bias. We do feel that P ACTOLUS
demonstrates that our objective can be obtained. To the user of the small scientific computer, the program offers a means of conveniently solving many of those problems for which
an analog computer would otherwise have been
required. The techniques employed in P ACTOLUS are hopefully suggestive of the manner
in which digital simulation might be provided
at remote terminals serviced by a large digital
computer. It is our thought that digital simulation is on the brink of significant expansion.
The availability of appropriate terminals and
visual display units will herald this event.
REFERENCES
1. SELFRIDGE, R. G.: "Coding a General-Purpose Digital Computer to Operate as a" Differential Analyzer," Proc. 1955 Western
Joint Computer Conference (IRE).

2. LESH, F.: "Methods of Simulating a Differential Analyzer on a Digital Computer,"
J. of the ACM, Volume 5, Number 3,1958.

3. STEIN,-M. L., ROSE, J., and PARKER, D. B.:
"A Compiler with an Analog-Oriented Input Language," Proc. 1959 Western Joint
Computer Conference.
4. HURLEY, J. R.: "DEPI 4 (Differential
Equations Pseudo-Code Interpreter) -An
Analog Computer Simulator for the IBM
704," internal memorandum, Allis Chalmers Mfg. Co., January 6, 1960.
5. HURLEY, J. R.: "Digital Simulation I:
DYSAC, A Digitally Simulated Analog
Computer,'; AlEE Summer General Meeting, Denver, Colorado, June 17-22, 1962.
6. STOVER, R. F., and KNUDTSON, H. A.: "H800 PARTNER-Proof of Analog Results
Through a Numerical Equivalent Routine," Doc. No. U-ED 15002, MinneapolisHoney~ell Regulator Co., Aero. Divn.,
April 30, 1962.
7. GASKILL, R. A., HARRIS, J. W., and McKNIGHT, A. L.: "DAS-A Digital Analog
Simulator," Proc. 1963 Spring Joint Computer Conference.

312

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE,

8. BYRNE, E. R.: "JANIS, A Program for a
General-Purpose Digital Computer to Perform Analog Type Simulations," ACM
Nat. Conf., Denver, Colorado, August 27,
1963.
9. HARNETT, R. T., SANSOM, F. J., and WARSHAWSKY, L. M.: "MIDAS Programming
Guide," Tech. Doc Report SEG-TDR64-1, Analog Computation Divn., WrightPatterson Air Force Base, January 1964.

1964

10. McLEOD, J.: "Simulation is Wha-a-t?,"
SIMULATION, Vol. 1, No.1, Fall 1963.
11. LINEBARGER, R. N.: "Digital Simulation
Techniques for Direct Digital Control
Studies," Proc. 19th Annual Conf. of ISA,
New York, October 12, 1964.
12. COWLEY, PERCY E. A.: "An Active Filter
for the Measurement of Process Dynamics," Proc. 19th Annual Conf. of ISA, New
York, October 12, 1964.

,MIDAS - HOW IT WORKS AND HOW IT'S WORKED
Harry E. Petersen, F. John Sansom, Robert T. Hartnett,
and L. Milton Warshawsky
Directorate of Computation
Wright-Patterson AFB, Ohio
digital computer he must normally employ an
interpreter in the form of a digital programmer (usually a mathematician). This means
that he must describe his engineering problem
in the required form, detail, and with sufficient
technical insight to have the digital programmer develop a workable program on the first
try. This doesn't happen very often and it is
the consensus of opinion among computing facility managers that a maj or source of the
difficulty lies in the fact that the engineer does
not always realize the full mathematical implications of his problem. For example, in specifying that a displacement is limited, he might
not state what happens to the velocity. This
can lead to all sorts of errors as an analog
programmer would know. It is, of course,
possible for an analog programmer to learn
to program a digital computer by studying
Fortran. This has been attempted here at
Wright-Patterson AF Base with little success,
mainly because, unless used very often, the
knowledge is lost so that each time a considerable relearning period is required. Some
computing facilities have even embarked on
cross-training programs so that each type of
programmer knows the other's methods.
While this has much to recommend it, it is
often impracticable.

INTRODUCTION
The possibility of using a digital computer
to obtain check solutions for the analog was
recognized by many people at the dawn of our
15 year old history. Unfortunately several
problems existed then, mainly at the digital
end, which made this impracticable. Digital
computers of that day were terribly slow, of
small capacity and painfully primitive in their
programming methods. I t was usually the
case when a digital check solution was sought
for an incoming analog problem, that it was
several months after the problem had been
solved on the analog computer and the results
turned over to the customer before the digital
check solution made its appearance. The fact
that the two solutions hardly ever agreed was
another deterrent to the employment of this
system.
As we all know, digital computers have
made tremendous strides in speed, capacity and
programmability. In the area of programming
-and throughout this paper-we're talking of
scientific problems expressible as differential
equations; the main effort has been in the construction of languages such as Fortran, Algol,
etc. to permit entering the problem in a quasimathematical form, with the machine taking
over the job of converting these to the individual serial elemental steps. While the progress
along this line has been truly awe-inspiring to
an analog man (usually an engineer), the resulting language has become quite foreign to
him so that if he wishes to avail himself of the

In March of 1963, Mr. Roger Gaskill of
Martin-Orlando explained to us the operation
of DAS (Digital Analog Simulator) / a block
diagram type of digital program which he intended for use by control system engineers who
313

314

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

did not have ready access to an analog computer. We immediately recognized in this type
of program the possibility of achieving our
long-sought goal of a means to obtain digital
check solutions to our analog problems by having the analog programmer program the
digital computer himself! We found that our
analog engineers became quite proficient in the
use of DAS after about one hour's training
and were obtaining digital solutions that
checked those of the analog.
At this point several limitations of this entire method should be acknowledged. First, the
idea that obtaining agreement between the
digital and analog solutions is very worthwhile
is based mainly on an intuitive approach. After
all both solutions could be wrong since the
same programming error could be made in
both. Secondly, the validity of the mathematical model is not checked, merely the computed
solution. Finally, it might be argued that the
necessity of the analog man communicating
the problem to his digital counterpart has the
value of making him think clearly and organize
his work well. This is lost if he programs the
digital computer himself. In spite of these
limitations we thought it wise to pursue this
idea.
Although DAS triggered our activity in the
field of analog-type digital programs, several
others preceded it. A partial list of these and
other such programs would include:
DEPP

California Institute of Technology

DYSAC:J

University of Wisconsin

DIDAS4

Lockheed-Georgia

P ARTNER5 Honeywell Aeronautical Division
DYNASARG General Electric, Jet Engine
Division
Almost all of these-with the possible exception of PARTNER (Proof of Analog Results Through a Numerical Equivalent
Routine) -had as their prime purpose the
avoidance of the analog computer. They merely
wished to borrow the beautifully simple programming techniques of the electronic differential analyzer and apply them to the digital
computer.

While DAS proved to be very useful to us,
certain basic modifications were felt to be
necessary to tailor it better to our needs. Principal among these modifications was a rather
sophisticated integration routine to replace the
simple fixed interval rectangular type of DAS.
Other important changes were made but the
change in the integration scheme and our wish
to acknowledge our debt to DAS, led us to the
choice of the name MIDAS, an acronym meaning Modified Integration Digital Analog Simulator. In this paper a brief description of the
method of using MIDAS. will be given, followed by a summary of our experience in using
it in a large' analog facility for about 18
months.
How MIDAS Works
To a large degree, programming in MIDAS
closely resembles the methods used in DAS
and, therefore, an analog computer. There are
usually three steps we go through in obtaining
a solution. First we prepare a block diagram
very similar to an analog schematic indicating
the operational elements required to solve the
problem. N ext we prepare a listing which is
our means of directing the punching of the
cards, one for each line. This listing indicates
the source of the inputs to each element and
defines the values of the required numerical
data. After the cards have been punched and
checked they are turned in to our IBM 7094
operations group where the information is
placed on magnetic tape and this tape, along
with the MIDAS subroutine, is used to solve
our particular problem. The results are given
to us on printed form according to a rather
fixed format.

As an illustration of the steps involved in
preparing a MIDAS program, let us set up the
classical second-order linear differential equation for the mass, spring and damper system.
The equation is:

... + Bx + Kx = 0
~

Mx

(1)

with initial conditions:
x(O)

=

A
~(O) = 0

The MIDAS block diagram for this equation
is shown in Figure 1. The following points
should be noted:

MIDAS-HOW IT WORKS AND HOW IT'S WORKED
DESCRIPTION OF MIDAS ELEMENTS
SYMBOL & NAME

t

~

INTEGRATE

REMARKS

OUTPUT

1. MATHEMATICAL OPERATIONS
- - --,IC

fAdt + IC

1. Only one input can be accepted.
2. The initial condition, IC, is transmitted
via an IC card and its corresponding

Out =

o

data card.

SUM

Al~
•
S.
out

K

A2

Ak;.

Out =1; Ai
i=1

l

K~6

Out = -A

NEGATIVE

MULTIPLY

DMDE

ABSOLUTE VALUE -ijABSj

SQUARE ROOT

EXPONENTIAL

NATURAL

LOGARITHM

The order of listing the inputs is very
important. The numerator, A, must be
listed first.

Out = A/B

I ou~

Out = IAI

~

Out =

SQRj

~

+..[A

Defined only for Ali: 0

Out = e A
InA

~
LNj

14

Out = inA

Defined only for A> 0

Bout=sinA

1. Input angle, A, must be in radians.
2. Since there are two outputs, tbetle moat
be specified as RESjB or RESjC
depe~ on w!!etller tile sine or
cosine Is required.

Cout= cos A

I

1. Output Is an angle In radians.
2. Defined only for the 1st and 4th quadrantst
i.e.,
-"'/2 ~ out < 11/2

I

2. SWITCIUNG ELEMENTS

SPECIAL NOTE:
Since all of these elements have more
than one input, the listing of inputs
must be in the normal order of A, B, C.

OUTPUT RELAY

BO

H

A>B

D=O
D<"O

A +

~

Equivalent to:

~
B
C

+
0

~

out

00"

C"A"B
AC

Description of MIDAS Elements.

~

315

316

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

TABLE 1

DESCRIPTION OF MIDAS ELEMENTS (cont'd)

BANG-BANG

out;

r
r·
-B

out;

DEAD SPACE

5.

Equivalent to:
AB

0

C;;A~B

A-C

AC

RUN TERMINA nON

FINISH
6.

out
A~O

None

INSERTION OF NUMERICAL ITEMS
Name "
I
CONSTANT or
PARAMETER

~

INITIAL CONDITION

4

Per Data Card

Ij(O)

1

IC

Ij

SPECIAL STATEMENTS

1. When A ~ B, computation is stopped.
2. Every program must col1taIn at least one
FIN statement.
3. Numbering of FIN statements is not req'd.
1. The name of a constant or parameter can
be composed of at most six alphanumeric
symbols excluding blanks and commas.
2. The names must not be the same as that of
a functional element used In the.problem.
3. The name will appear on a C0N or PAR
card and its numerical value on a data card
4. Do not use these special names:
IT, TR, MININT, !/lPTI0N.
1. The name must be the same as the integrator with which it is associated.
2. The name must appear on an IC (or PAR)
card and its value on a data card.
3. Only non-zero IC's need be specified.
4. Such IC's must be specified for every run
even though they do not change.

I. Contents of the HDR statements are
printed at the beglnning of each run.
2. Normally used to name the variables
recorded in each column.
3. HDR cards should precede the R!/lcardB.

HEADER

HDR

None

READOUT

R0

None

Specifies tile sources of the variables to
be recorded for each run.

END

END

None

Signifies the end of the MIDAS symbolic
program. Numerical data follows.

SPECIAL NAMES
I. Gives the current value of the independent
variable In the approprtate units.
2. Generated Internally, thts variable can be
obtaIned by specifying its source as IT.

INDEPENDENT
VARIABLE

IT

Independent Variable

TIME BETWEEN
READOUTS

TR

None

1. When listed on a cl/lN or PAR card, TR
gives the increment of the independent
variable, usually time, between successive
readouts.
2. if no value of TR Is given, a standard value
of 0.1 units will be used.

MINIMUM INTERVAL
OF INTEGRA TrON
MININT

None

1. When listed on a CI/lN or PAR card, MININT
specifies the smallest Interval that the integration system is permitted to use.
2. if no value of MININT Ia given, a value of
ZERO is used.

INTEGRA TION
OPTION

None

When an Integration method with an error
criterion other than the standard one Ia
deSired, call for !/lPTI!/lNj In columns 1-7
somewhere within the MIDAS program.

0PTI0Nj

Table I

MIDAS-HOW IT WORKS AND HOW IT'S WORKED

SYMBOL & NAME

3.

REMARKS

ARBITRARY FUNCTIONS

For all 4 types of

~tion

~. out_

~r:l

---c:s---

CONSTANT
FUNCTION

1. Up to 50 sets of x-y coo,dinates can be
used.
2. Spacing of breakpoints is arbitrary.
3. Slope of the function is zero above aud
below the set of specified points.
4. Method of introducing data Is in the
text.

generators:

--c.r-

FUNCTION

out_

CURVE
FOLLOWER

CONSTANT CURVE ~.~
FOLLOWER
~

4.

OUTPUT

Out

=

f(A)

1. Linear interpolation.
2. Data needed for ~ run.

Out = f(A)

1. Linear interpolation.
2. Data needed for first run only.

Out = f(A)

1. Quadratic interpolation.
2. Data needed for ~ run.

Out = f(A)

1. Quadratic interpolation.
2. Data needed for first run only.

ITERATIVE ELEMENT

IMPUCIT
FUNCTION

No direct output

1. Tbe inputs must be llsted in the order A, B.
2. If IA - BI >5x10- 6 1A1, iteration occurs

by tra..n..sferring t.l:!e va.!!!e of B into A{B .... A).
recomputing a new value of B, transferring
it into A, etc., until the error criterion is
sattllfled.
~BI
3. Criterion for convergence is I ;tAl < 1.

I

Example:
x=f(x)+y

4. An initial estimate of A must be given ,via
a C0N or PAR card aud its associated
data card.
5. When A ls needed elsewhere in the
problem, it can be taken from the C0N or
PAR source. (See suggested method of
usage at the left.)
6. For multiple runs, A must be named on
a PAR card.

r-----------...,
<--_ _....;' MIDAS elements •

~f~z:. ~~~_~ ~~~..:

Table I

317

318

PROGEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

(1) SI is a summer which adds the quantities -Bi and -Kx to yield Mx In accordance with equation 1.
(2) Dl is a divider whose dividend is M~'
(the output of SI) and whose divisor is
a constant called M. Its output is then

+x.

(3) II is an integrator whose input is +~i'
and output is +x. Unlike the case of
analog integrators and summers, there
is no change of sign in the equivalent
MIDAS elements. Since no initial value
is specified the output of II will start at
zero.
(4) I2)s another integrator whose input is
+x and whose output is +x. The initial
value of x is indicated by the dashed
line extra input to 12.
(5) Ml and M2 are multipliers which multiply +x by -B and +x by -K to provide the required inputs to S1. Unlike
on analog computers the same type of
multiplier is used whether two constants, a variable and a constant, or two
variables are being multiplied.
(6) FIN is a finish element. This element
will stop computation when its A input
(in this case t) equals or exceeds its B
input (in this case the quantity named
STOP) . Computation can be caused to
halt by any of several conditions. A
FIN box is required for each termination criterion.
(7) When numerical data corresponding to
M, B, K, STOP and x (0) are furnished,
the problem is completely specified. No
scaling will be required since numerical
values ranging betwen 10-37 and 10+37
can be handled.
N ext the listing is prepared. It will contain
the following information:
(1) One card identifying the problem.
(2) A few cards calling out the MIDAS
program.
(3) Cards giving names to the constants
and parameters of the probem, including integrators with non-zero initial
values (up to 6 per card).

(4) One card for each MIDAS element in
the block diagram, identifying it by
type and number, and indicating the
source of its inputs (for example S2
meaning summer number 2).
(5) At least one FIN card spe~ifying a condition for finishing a run.
(6) One or more HDR cards and RO cards
specifying the headeT names to be
placed on top of the columns of output
data to be read out at specified increments of the independent variable.
(7) An END card indicating the end of the
symbolic program and the start of numerical data.
(8) One or more cards assigning numerical
value to the constants, parameters and
initial conditions named in (3) above.
(9) Cards defining arbitrary functions, if
any.
An example of a listing is shown in Figure 2
for the mass, spring, and damper system.
,"

Note the use of a comment card by the programmer to identify the problem. Also of significance is the columnar location of various
types of entries. For example, comment cards
have their first letter in column 1. Operational
elements, constant and parameter naming
cards, HDR and RO cards all have their first
character in column 7. Inputs to these elements are listed starting in column 15. Numerical data is listed starting in colunms 1,
11, ... 51.
lt should be pointed out that in MIDAS, the
programmer need not concern himself with the
order in which he prepares the listing since a
built-in sorting routine will automatically line
up the program properly. This is another important difference from MIDAS.' predecessor,
DAS.

The particular listing shown will result in
three runs being made, each starting with
x (0) = 20 and terminating when t = 5. The
mass M will have a value of 10 for each case
since M was named on a constant card. The
three runs will have the following values of
-B and -K, each of which was specified as a
paTameter.

MIDAS-HOW IT WORKS AND HOW IT'S WORKED
SflNSOM

PROGR .... ER

PHONE

33281

OAT<

20J({L'I

64

PAGE

_

OF

_

319

PAGES

MASS, SPIWJ(i , DIIIJ1P€f(. SYST6M

PROGR .....

,

1

INPUTS

FUNCTION

U

if.IDANA ftlc/SFlNS(/) 1M. PR(/)Bj61-Z 24 • TItnEj5, ailES/SOD

"

XE~

*"

CI1LL" tnID

..

IRs

END

Mrll

5¢1lUTI l/LN ~~ KIt! 55,,. SPItING, A J)RmPER" SYSTEM
M,STd>P
C¢lN
-5,-K
PAR

rz

Ie
51

IfIl,Jrl2

DI
II

5/.111

DI

1Z

II

MI

-8,II

Ml

11.,

FIN

IT.ST.P

HDR

TIME, Ace., VEL., DISP.

-I(

HDR

IT.l)J.II.I2

R$

END
ASO

FO'"

SEP ••

O·490b

MIDAS DATA fORM
PROGRA • • ER

PROGRA.

SAN~oll1

fY/llSS,

SPIW/~

"DAmPER. ~YSr.EM
21

10.

S.

-2.5

-8.6

2.0.

-3.2
2.0.

-8.6

-2..5

-15.

ro

.

I
Figure 2. Original Listing.

Run 1
Run 2
Run 3

-B = -2.5
-B = -3.2
-B = -2.5

-K
-K

= -8.6
= -8.6

-K = -15.0

Finally a portion of the printed output of
the IBM 7094 is shown in Figure 3. Several
points are worthy of note.
(1) The printout of the problem l~sting including the data for Case 1. Actually
some machine mapping and storage information precedes this but has been
omitted for clarity.
(2) The format of the output. Note the
headers and the spacing of the four columns of output. Provision exists for
six columns but only four components
were specified to be read out in this
simple problem.
(3) The MAXIMA-MINIMA table. This
feature, unique to MIDAS, provides the

analog programmer with all the information needed to scale his analog schematic, both in amplitude and time. It
shows the maximum and minimum
values achieved by every component
during the course of a run, whether
these values occurred at read out intervals or not.
(4) The printout of the parameter and IC
data for Cases 2 and 3, followed by their
output.
(5) The job accounting summary. The
three cases took a total of 44 seconds.
This completes the description of this problem. Although considerable detail has been
presented, in retrospect it can be seen that the·
main idea was simple. An analog-type block
diagram was drawn and a listing prepared describing its interconnections. Information providing numerical data was also furnished.

320

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964
MAXIMA

SOLUT 1001 Of' MASS, SPRING, DAM.ER SYSTEM
CON
M,STOP
PAR

-8.-K

Ie
SI
01

"1."2

11
12
"1
P112
FIN
HOR

IT
12
SI
Ml
M2
01
11

12
Sl,M
01

11
-8,11

"INI~'

5.1000E
2.0000E
1.0535E
4.6"7E
9.9142E
1.0535E
8.3718E

00
01
02
01
01
01
00

O.
-10I528E
-1.1200E
-2.6790E
-1.7200E
-1.7200E
-1.4515E

01
02
01
02
01
01

Il.-I\

IT,S TOP
TIME,AtC.,YEl •• DISP.

HDR

RO
IT,OI.[1,12
END
5.0000E 00
-8.6000E 00

1.0000E 01
-2.5000E 00
2.0oooE 01

MAXIMA - MINIMA FOR CASE 2

[

SYMBOLIC PROGRAM AND DATA FOR CASE 1

-2.5000E 00
2.0000E 01

J

-1.5000E 01

DATA FOR CASE 3

TIllE

ACC.

O.
1.0000E-Ol
2.0000E-Ol
3.0000E-Ol
".OOOOE-Ol
5.0000E-Ol
6.0000E-Ol
1.0000£-01
8.0000£-01
9.0000£-01
10.0000£-01
1.1000£ 00
1.2000£ 00

4.9000E 00
5.0000E 00
5.1000E 00

-1.7200E
-1.6103E
-1.6016E
-1.5328£
-1.""'9E
-1.3S08£
-1.2456£
-1.1324£
-1.0124£
-1.8610£
-1.5676E
-6.2351£
-4.8826E

VEL.
01
01
01
01
01
01
01
01
01
00
00
00
00

1.0103E-0"1
-1.608IE-OI
-IO.OOOOE-Ol

O.
-1.6962E
-3.3362E
-4.9014£
-6.3981£
-1.7911E
-9.0966£
-1.0286E
-1.1)59E
-1.2309E
-1.3131E
-1.3822E
-1.437SE

DIS ••
00
00
00
00
00
00
01
01
01
01
01
01

9.9Z27E 00
9.9495E 00
9.8913E 00

2.0000£
1.9915£
1.9663£
1.9250£
1.868"£
1.7973£
1.7I28E
1.6158E
1.507U
1.3890E
1.2617£
1.1268E
9.8569E

01
01
01
01
01
01
01,
01
01
01
01
01
00

-3.6996E 00
-2.7053E 00
-1.7126E 00

-~

-

Ace.

TIME

Vel.

O.
1.0000E-Ol
2.0000£-01
3.0000E-Ol
4.00ODE-OI
5.0000E-OI
6.0000E-OI
7.0000E-OI
8.0000£-01
9.000DE-OI
10.0000£-01
I.IOOOE 00
1.2000E 00

-3.0oo0E 01
-2.9038£ 01
-2.7671E 01
-2.5927E 01
-2.38HE 01
-2.1458E 01
-1.8815E 01
-1.5958E 01
-1.2936£ 01
-9.7963£ 00
-6.5891E 00
-3.3648E 00
-1.696 7E-0 1

4.9000E 00
5.0000E 00
5.0500E 00

-1.5983E 01
-1.6018E 01
-1.6035E 01

O.
-2.9554E
-5.7941E
-8.4770E
-1.0968E
-1.3236E
-1.5251E
-1.6992E
-1.8437E
-1.9575E
-2.D394E
-2.0892E
-2.1068E

DIS ••
00
00
00
01
01
01
01
01
01
01
01
01

4.1I28E 00
2.5078E 00
1.1047E 00

NUMERICAL RESULTS FOR CASE 1
NUMERICAL RESULTS FOR CASE 3

MAXIMA

IT

12
SI
HI
H2
01
II

5.1000E
2.0000E
1.1636E
3.8119£
1.1211£
1.1636E

2.0000E
1.9851E
1.9"13E
1.8698E
1.7724E
1.6512E
1.5085E
1.3471E
1.1697£
9.7933E
7.7922E
5.7252E
3.6245E

01
01
01
01
01
01
01
01
01
00
00
00
00

9.9696E 00
1.0301E 01
1.0406E 01

-

MINIJlU

00
01
02
01
02
01

9.9495E 00

O.
-1.30HE
-1.1200E
-2.4874E
-1.1200E
-1.1200£
-1.5Z48E

MAX IMA

01
02
01
02
01
01

5.0500E
2.0000£
2.2193£
5.2611£
2.1727E
2.2193E
1.5261E

IT
12
SI
MI
M2
01
11

MAXIMA' MINIMA FOR CASE 1

JIIINI"A

00
01
02
01
02
01
01

O.
-1,"S4E
-3.0000E
-3.8152E
-3.0000E
-3.0000E
'-2.1068E

01
02
01
02
01
01

~--------------------------------------------~
MAXIMA - MINIMA FOR CASE 3

-3.2000E 00
2.00OD~ 01

jr------------~_----,

-8.6000£ 00

L -______--------------------------------~
DATA FOR CASE 2

JOB

DATE

ACCOUNTING SU"MARY
21 JUL 64

BEGAN 13134111

["OED 1313./55

JOB ACCOUNTING SUMMARY
TiME
O.
I.OOOOE-Ol
2.0000E-OI
3.0000E-Ol
•• OOOOE-Ol
5.0000E-OI
6.0000E-OI
1.0000E-OI
8.0000£-01
9.0000E-OI
10.0000E-01
I.IOOOE 00
1.2000E OC

VEL.

ACC.
-1.1200E
-1.6586£
-1.5851E
-1.5005E
-1.4059E
-1.3024E
-1.1'IlE
-1.OB2E
-9.5001E
-8.2264£
-6.9232E
-5.6025E
-4.276IE

01
01
01
01
01
01
01
01
00
00
00
00
DO

O.
-1.6903£
-3.3132£
-4.8568E
-6.3108F

DIS ••
00
00
00
,00

-1.6657E 00

-8.9130E
-1.0046E
-1.IOS8E
-1.19"E
-1.2102E
-1.3328E
-1.3822E

00
01
01
01
01
01
01

2.0oo0E
1.9915E
1.9664£
1.9255£
1.8696E
1.1996E
1.1I66E
1.6211E
1.5161E
1.4010E
1.2777E
1.1474E
1.0ll5E

01
01
01
01
01
01
01
01
01
01
01
01
01

AFIMGoEIt IS PUT OF A HANOI

HOM IUoNY FING.US DOES JCHt "AYE QI

I

:~~~,.:H:~:e!:iF=~Sp::J~: !~~UMf

IH'S'

Mfa .. s

triAS ,,~ ""lUSt!

2
THERE ME hO .'U'S ON .... USONJ

'.9000E 00
5.0000E 00
5.1000E 00

5.02HE-OI
-2.21~IE-OI

-9.2155E-OI

8.3519E 00
8.3718E 00
8.31"E 00

-3.69'IE 00
-2.8570E 00
-2.0221E 00

HOV flANY FIftG,fAS DOES JOHN HAItE

3
NUMERICAL RESULTS FOR CASE 2

:::WA::~ ~:::C~E!\=I~S

••

eu

Bur I ASSUME IHA51 "E"IIIS (HAS"~

""USII

(CQNT'D)
::~:;~ .. ~~nNtE IS Alle81GUOU5 •• BUT I ASSUMt IHASI In.,'.tS 1""5 "!I P"It'~.J

HOM ",NY flNGU5 DOtS JOHN HAye QI
IJHf A8UVE SErwJfNC.f

IrHE ANSwtR lS UU

Figure 3. Problem Output.

IS A"IHGWUS •• ~U'

f

ASS'J-E !HASt ",UNS IHAS AS PUHIJ

283 LINES

MIDAS-HOW IT WORKS AND HOW IT'S WORKED

This was then converted to punched cards,
turned in to the 7094 operators who subsequently supplied the printed output.
This example utilized only a few of the available MIDAS elements. The entire complement
of them is shown in Table I, along with some
description of their use. The A,B,C lettering
system has significance where an element has
more than one 'input. In this case the order
of the sources of the inputs as given in the
listing (starting in column 15) should be
A,B,C, etc.

Integration System in MIDAS
The integrations in MIDAS are performed
by a variable-step, fifth-order, predict-correct
integration routine. 7 This variable-step feature represents the basic departure of MID AS
from its predecessor, DAS. It relieves the
programmer from the chore of having to specify a fixed increment of the independent variable, an increment which must be small enough
to handle the highest frequency phenomena in
a problem but not so small as to cause inordinately long solution times. The step size in
the MIDAS integration routine adjusts itself
to meet a certain error criterion, a factor
which allows it to take large steps for those
portions of the solution "when not much is
happening" and small steps for those portions
when one or more variables are changing at
rapid rates.
The net result is that time-scaling, as the
analog programmer knows it, is eliminated in
MIDAS. However, he must still face the time
scaling problem when he prepares his analog
schematic, especially when certain variables in
the problem drive narrow bandwidth analog
components such as servo-multipliers, X~ Y
plotters, etc. MIDAS helps him here, though,
because he can observe the maximum values of
the derivatives of these variables from the
MAXIMA-MINIMA list and he can then make
any necessary time base changes. Fortunately,
for every variable appearing at the output of
a MIDAS integrator, its derivative must appear at the output of the element feeding the
integrator since integrators can accept only a
single input.
Miscellaneous Information on MIDAS
The MIDAS program has limitations on the
number and characteristics of certain compo-

321

nents. This information may be of value when
a very large problem is to be solved on MIDAS.

Item
1. Operational Elements
2. Symbols (operational elements,
constants, and header names)
3. Integrators
4. Function Generators
5. Points for each function generator
6. Inputs for each summer

Maximum
Number
750
1000
100
40
50
6

Summary of How MIDAS Works
This has been of necessity a brief review of
the method of using MIDAS. A much more
complete description including several fully
worked out examples is given in Technical
Documentary Report No. SEG-TDR-64-1,
"MIDAS PROGRAMMING GUIDE," dated
January 1964. 8 Information on obtaining the
MIDAS program can be obtained by contacting
the authors.
How MIDAS Has Worked
In the following paragraphs, a brief summary of the experiences of the Wright-Patterson AF Base Computation Facility in the use
of MIDAS will be given. Actually, at this
writing, approximately 100 computing facilities throughout the U.S. are using MIDAS;
thus only a small segment of the total experience can be reported on.
The Analog Computation facility at WrightPatterson has used MIDAS in almost every
problem submitted for solution on its large
analog computer. Generally the MIDAS solution is attempted prior to the analog in order
to achieve the maximum benefits as regards
scaling. Another side benefit of MIDAS has
been the calculation of Problem Check values.
It has been found in many cases that the extra
time involved in programming a MIDAS check
is saved in checkout time on the analog computer. The increased confidence in the validity
of the solutions when a check 'between MIDAS
and the analog solution is obtained is the most
important benefit of the program. Another
side benefit is the broadened horizons achieved

322

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

by the analog programmers in giving them the
ability to program the digital computer. This
should be very valuable when hybrid computers
come into their own. Until now the problem of finding people with the required capability in both areas has proven to be the greatest
deterrent to the growth of these new devices.
While everything mentioned above is on the
positive side, there are quite a few aspects of
MIDAS that are annoying and time consuming. One thing that the analog programmer
learns is that the digital computer brooks no
mistakes. If a "zero" is punched when the
letter "0" is required, the problem comes back
-generally the following day-with a diagnostic telling him of an undefined symbol. A little
thing like a missing decimal point in numerical
data will cause a day to be lost. Another thing
that an analog programmer encounters is that
when an error exists in a MIDAS program
(however not of the type to prevent its running) , the solutions look just as good (as many
significant figures of output) as they would if
the solution were perfect. On the analog computer errors of the same type would cause
overload lights to flash, etc.
The very sophisticated integration routine
of MIDAS introduces problems at times. For
example, discontinuities in derivatives some-

times make it impossible for the error criterion
to be met even though the increment of the independent variable is halved many times. This
will cause a solution to "hang up." Provision
has been made to overcome this problem by the
use of MININT (see Table I) but it usually
requires one or more unsatisfactory runs before the programmer is made aware of the
difficulty.
One rather interesting discovery was the
fact that an operation that was very easy to
perform on an analog computer was very
bothersome on the digital. Specifically, a rather
large missile simulation was performed first on
the analog computer and later using MIDAS.
Quite a few first order lags were present
in the mathematical model in the form of
-S1 . On the analog computer this offers no
T

+1

problem. For small values of T one way to
handle this to parallel the feedback resistor of
a summer with a capacitor of T microfarads. In
fact, far from creating a difficulty, it generally
is beneficial to the analog simulation by reducing some of the high frequency "noise."
Using MIDAS, small values of T can cause considerable increase in solution time. For example, in this particular problem, when such
transfer functions with T of .001 sees. were

Figure 1. Block Diagram.

~

IT~

MIDAS-HOW IT WORKS AND HOW IT'S WORKED

included, the solution time was extrapolated to
be 51f2 hours for 26 seconds of problem time.
This was reduced to 121;2 minutes for the same
length of problem time, simply by neglecting
these small delays, and the effect on the results was insignificant. Incidentally, the analog solution was in "real time," i.e., 26 seconds.
The subject of solution time is rather important to a digital programmer. We have
attempted to gather data on the relative speed
of a MIDAS run compared with a Fortran
program produced by a skilled programmer.
With the conditions of the test equalized, the
solution time of the Fortran program was approximately half as long; however, the programming time for MIDAS was much less.
The question of solution time is not very important for the typical problem handled with
MIDAS because usually we are interested in
one or two runs, so whether they take 3 minutes or 5 minutes each is of academic interest
only.
There have been a few problems handled by
MIDAS alone without recourse to the analog
computer. In these cases, program efficiency
was of considerable importance since many
runs were required. Here, in the present stage
of the development of MIDAS, a specially
tailored digital program should receive serious
consideration.
At this point the question should be considered of whether MIDAS or a similar digital
computer program will take over the role of
the analog computer in the areas where the
latter shines. Since a MIDAS~type program
has appropriated one of the best features of
the analog computer, viz., simple block diagram
programming and the speed and capacity of
digital computers have developed so much,
there is certainly reason to consider this question.
While anyone would be foolhardy to give an
answer to hold for all time, it is our opinion
that MIDAS, rather than threatening the existence of analog computers, has reinforced
their position by increasing confidence in their
output. There are quite a few advantages to
the use of an analog computer which MIDAS
doesn't touch. Among these are:
(1) The intimate relationship between the
engineer and his problem which enables

323

him to design his system by observing
graphical outputs and changing parameters as required.
(2) The ability to tie in physical hardware
to the mathematical simulation.
·(3) The ability to use portions of the computer in direct relationship to the size
of the problem.
(4) The fact that certain mathematical operations are performed better, e.g., integration.
(5) The very fact that it is a distinctly different technique of solution, thus making possible a checking means.
While some progress has been and is being
achieved in items 1, 2, 3 and 4, item 5 will
always remain.
Future of MIDAS

Although MIDAS has proven to be very effective in accomplishing its purpose, certain
improvements could be made without materially changing its simple programming
rules. Among such improvements would be
the following:
(1) Increased efficiency, i.e., shorter solution times without losing programming
simplicity.
(2) Additional flexibility in naming outputs.
(3) Permit the use of fixed point literals in
the body of the program.
(4) A greatly expanded operation list that
would include logical operations such
as AND, OR, NOT, etc. and others
equivalent to the elements found in a
hybrid computer.
A new program is being developed at
Wright-Patterson AF Base which already includes the improvements listed above. In addition, it is anticipated that the following
features will be included:
(1) Ability to add new functions external to
the basic program.
(2) Additional controls that would
( a) Allow the results 6f one run to dictate automatically the conditions
for the next.

324

PROCEEDINGS-F ALL JOJNT COMPUTER CONFERENCE, 1964
(b) Permit more "hands on" control of
operation of the program as advocated by Mr. R. Brennan in his
P ACTOLUS!J program.

It is further hoped that an investigation of
various integration routines will result in an
integration system that will 'automatically account for discontinuities and ·,thus prevent the
solution from "hanging up.'"

The new program, MIMIG, is completely different from MIDAS in concept but it retains
the programming ease of MIDAS. It will be
written as a system to operate under IBJOB
control on an IBM 7090/7094 computer.
It is an assembler type program that generates machine language code equivalent to the
original problem. The instruction format is
very similar to MIDAS but has been designed
to appeal to both analog and digital programmers. If and when this' occurs and both analog and digital programmers employ MIMIC
regularly, a very significant first step in breaking down the communications barrier between
the two will have been taken since they will,
for the first time, be speaking the same language. Furthermore, just as MIDAS has made
the digital computer accessible to the analog
man, this new program might serve to educate
the digital programmer in analog methods.
The day of the omniscient, triple-threat programmer might be on the way!

REFERENCES
1. GASKILL, R. A., HARRIS, J. W., and McKNIGHT, A. L., "DAS-A Digital Analog
Simulator," AFIPS Proceedings, 1963
Spring Joint Computer Conference.

2. LESH, F. H., and CURL, F. G., "DEPI: An
Interpretive
Digital-Computer
Routine
Simulating Differential-Analyzer Operations," Jet Propulsion Laboratory, Cali-

fornia Institute of Technology, Pasadena,
California, March 22, 1957.
(Note: DEPI is an acronym for Differential Equations Pseudocode Interpreter.)
3. HURLEY, J. R., and SKILES, J. J., "DYSAC:
A Digitally Simulated Analog Computer,"
AFIPS Proceedings, 1963 Spring Joint
Computer Conference.
·4. SLAYTON, G. R., "DIDAS: A Digital Differential Analyzer Simulator," Twelfth National Meeting of the Association for Computing Machinery, June 1958.
5. KNUDTSON, H. A.,' and STOVER, R. F.,
"PARTNER-Proof of Analog Results
Through a Numerical Equivalent Routine,"
Aeronautical Division, Minneapolis-Honeywell Regulator Co., MH Aero Document
U-ED 15001, August 22, 1961.
6. MARVIN, I. E., and DURAND, H. P., "Jet Engine Control Representation Study," Jet
Engine Division, General Electric Company, Cincinnati, Ohio, Air Force Technical
Documentary Report ASD-TDR-63-650,
July 1963.
(Note: DYNASAR is an acronym for Dynamic Systems Analyzer).
7. MILNE, W. E., and REYNOLDS, R. R., Journal
of the ACM, January 1962.
8. HARNETT, R. T., SANSOM, F. J., and WARSHAWSKY, L. M., "MIDAS Programming
Guide," Air Force Technical Documentary
Report SEG-TDR-64-1, January 1964.
DDC (formerly ASTIA) Report No. AD430892. Also available from Office of Technical Services, U.S. Dept. of Commerce.
9. BRENNAN, R. D., and SANO, H., "PACTOLUS-A Digital Analog Simulator Program
for the IBM 1620," IBM San Jose Research
Laboratory, San Jose, California, IBM Research Report RJ-297, May 6, 1964.

THE RAND TABLET:- A MAN-MACHINE GRAPHICAL
COMMUNICATION DEVICe*
M. R. Davis and T. O. Ellis
The RAND Corporation
Santa· Monica, California
Present-day user.:.computer interface mechanisms provide far from optimum communication, considerably reducing the probability that
full advantage is being taken of the capabilities of either the machine or of the user. A
number of separate research projects are underway, aimed at investigating ways of improving the languages by which man communicates with the computer, and at developing
more useful and more versatile communication
channels. Several of these projects are concerned with the design of "two-dimensional" or
"graphical" man-computer links.
Early in the development of man-machine
studies at RAND, it was felt that exploration
of man's existent dexterity with a free, penlike instrument on a horizontal surface, like
a pad of paper, would be fruitful. The concept
of generating hand-directed, two-dimensional
information on a surface not coincident with
the display device (versus a "light pen") is not
new and has been examined by others in the
field. It is felt, however, that the stylus-tablet
device developed at RAND (see Fig. 1) is a
highly practical instrument, allowing further
investigation of new freedoms of expression in
direct communications with computers.

is connected to an input channel of a general~
purpose computer and also to an oscilloscope
display. The display control multiplexes the
stylus position information with computer~
generated information in such a way that the
oscilloscope display contains a composite of the
current pen position (represented as a dot) and
the computer output. In addition, the computer
may regenerate meaningful track history on
the CRT, so' that while the· user is writing, it
appears that the pen has "ink." The displayed
"ink" is visualized from the oscilloscope display
while hand-directing the stylus position on the
tablet, as in Fig. 1. Users normally adjust
within a few minutes to the conceptual superposition of the displayed ink and the actual
off-screen pen movement. There is no apparent
loss of ease or speed in writing, printing, constructing arbitrary figures, or even in penning
. one's signature.
To maintain the "naturalness" of the pen
device, a pressure-sensitive switch in the tip
of the stylus indicates "stroke" or intended
input information to the computer. This switch
is actuated by approximately the same pressure normally used in writing with a pencil, so
that· strokes within described symbols are defined in a natural manner.

The RAND tablet device generates lO-bit
x and 10-bit y stylus position information. It

* This research was supported by the Advanced Research Projects Agency under contract No. SD-79. Any views
or conclusions should not be interpreted as representing the official opinion or policy of ARPA or of the RAND
Corporation.
325

326

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 1. Complete System in Operation.

In addition to the many advantages of a "live
pad of paper" for control and interpretive purposes, the user soon finds it very convenient
to have no part of the "working" surface (the
CRT) covered by the physical pen or the hand.
The gross functioning of the RAND tablet
system is best illustrated through a general
description of the events that occur during a

I~
tl
t2
t3

t"
t5

maj or cycle (220 fLsec; see timing diagram,
Fig. 2). Figure 3 is the system block diagram
with the information flow paths indicated by
the heavier lines. The clock sequencer furnishes
a time sequence of 20 pulses to the blocking
oscillators. During each of the 20 timing periods, a blocking oscillator gives a coincident
positive and negative pulse on two lines attached to the tablet.

0

~______~I

0

I

t21

9

0

-

0

0

-

0

0
0

t22

t23

~p.~c

0

t6 0

t20

-I

Major cycle
22Op.sec

0

-

Figure 2. Timing Waveforms (JLsec).

THE RAND TABLET: A MAN-MACHINE COMMUNICATION DEVICE

327

Clock
Sequencer

&
Control

Shift Register

20
Gates

:

Reody

Output Register
20 Bits

L____________________ .?_u_!..~ ~t__I_n..!~ .':..f_Q_c_e____________________ .J

Figure 3. Graphic Input System Block Diagram.

The pulses are encoded by the tablet as serial
(x,y) Gray-code position information which is
sensed by the high-input-impedance, pen-like
stylus from the epoxy-coated tablet surface. The
pen is of roughly the same size, weight, and
appearance as a normal fountain pen. The pen
information is strobed, converted from Gray
to binary code, assembled in a shift register,
and gated in parallel to an interface register.
The printed-circuit, all digital tablet, complete with printed-circuit encoding, is a relatively new concept made possible economically
by advances in the art of fine-line photoetching.
The tablet is the hub of the graphic input system, and its physical construction and the
equivalent circuit of the tablet itself will be
considered before proceeding to the system
detail.
The basic building material for the tablet is
O.5-mil-thick Mylar sheet clad on both sides
with 1;2-ounce copper (approximately 0.6 mils
thick). Both sides of the copper-clad Mylar
sheets are coated with photo resist, exposed to
artwork patterns, and etched using standard
fine-line etching techniques. The result is a
printed circuit on each side of the Mylar, each
side in proper registration with the other. (Accurate registration is important only in the encoder sections, as will be seen later.) Figure 4
is a photo of the printed circuit before it has .

been packaged. The double-sided, printed screen
is cemented to a smooth, rigid substrate and
sprayed with a thin coat of epoxy to provide
a good wear surface and to prevent electrical
contact between the stylus and the printed circuit. The writing ·area on the tablet is 10.24 X
10.24 in. with resolution of 100 lines per inch.
The entire tablet is mounted in a metal case
with only the writing area exposed, as can be
seen in Fig. 1.
Although it would be very difficult to fully
illustrate a 1024 X 1024-line system, it does
seem necessary, for clarity, to present all the
details of the system. Thus, an 8 X 8-line system will be used for the system description and

Figure 4. Unmounted Printed Circuit.

328

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

expansion of the concept to larger systems will
be left to the reader.
Figure 5 shows the detailed, printed circuit
on each side of the 0.5-mil Mylar for an 8 X 8line system. The top circuit contains the x position lines and the two y encoder sections, while
the bottom circuit has the y position lines and
the two x encoder sections. I t should be noted
that the position lines are connected at the
ends to wide, code-coupling buses. These buses
are made as wide as possible in order to obtain
the maximum area, since the encoding scheme
depends on capacitive coupling from the encoder sections through the Mylar to these wide
buses. It should be further noted that the position lines are alternately connected to wide
buses on opposite ends. This gives symmetry
to the tablet and minimizes the effect of registration errors.
With reference to Fig. 5, at time tl encoder
pads PI + are pulsed with a positive pulse and
pads PI- are pulsed with a negative pulse.
Pads PI + are capacitively coupled through the
Mylar to y position lines Y5, Y6, y" and Ys, thus
coupling a positive pulse to these lines. Pads
PI - are capacitively coupled to y position lines
Yh Y2, Y3, and Y-l, putting a negative pulse on
these lines. At time t 2 , encoder pads P2 + and
P:! - are pulsed plus and minus, respectively,
putting positive pulses on y position lines y 3,
Y-l, Y5, and yr" and negative pulses on y position

lines YI, Y2, Y7, and Ys. At the end of time t 3,
each y position line has been energized with a
unique serial sequence of pulses. If positive
pulses are considered as ones and negative
pulses are zeroes, the Gray-pulse code appearing on the y position wires is as follows:
000
001
011
010
110
111
101
100

Yl
Y2
Y3
Y4
Y5
YG
Y7
Ys

The x encoder pads are now sequentially pulsed
at times t.1, t 5 , and t 6 , giving unique definitions
to each x position line.
If a pen-like stylus with high input impedance is placed anywhere on the tablet, it will
pick up a time sequence of six pulses, indicating
the (x,y) position of the stylus. It should be
pointed out again that the stylus is electrostatically coupled to the (x,y) position lines
through the thin, epoxy wearcoat.
If the stylus is placed on the tablet surface
at a point (Xt'y~), the pulse stream appearing
at the pen tip would be as indicated in Fig. 6.
This detected pulse pattern will repeat itself
every major cycle as long as the stylus is held
in this position. If the stylus is moved, a differ-

Figure 5. Double-sided Printed-circuit Layout for 8

X

8 System.

THE RAND TABLET: A MAN-MACHINE COMMUNICATION DEVICE

329

Timing pulse

C1

= Encoder

pad coupling capacity - 5 pf

C2 = Capacity to adjacent parallel wires in tablet - 10 pf

Pulses at position
(x.. ' Ys)

C3 = Capacity to crossing lines in screen - 100 pf
C .. = Stylus-to-tablet coupling capacity - .5 pf
C s = Sf}'lus input shunt capacity - 5 pf

---lnL-_____

Data ready. _ _ _ _ _ _ _ _

Figure 6. Timing Diagram and Pen Signals for the
Example 8 x 8 System.

R = Stylus input resistance - 200

Kn

Figure 7. Equivalent Circuit of Encoder-Tablet-Stylus
Coupling and Attenuating Elements.

ent pulse pattern is sensed, indicating a new
(x,y) position.

proximately 1/300 of the drive-line signals. The
character of the signals at the stylus input is
greatly dependent on the drive-pulse rise time.

Since there are 1024 x position lines and 1024
y position lines, 20 bits are required to define
an (x,y) position. The actual timing used in
the RAND system was shown in Fig. 2. Timing
pulses t 21 , t 22 , and tzs are additional pulses used
for bookkeeping and data manipulation at the
end of each maj or cycle.

Figure 8 is an oscilloscope pattern of the
amplified signals at the stylus output. t These
signals are amplified again and strobed into
a Gray-code toggle. An x bit at ts and a y bit
at t17 are smaller than the rest. This indicates
that the stylus tip is somewhere between lines
and these are the· bits that are changing.

The position lines on the full-size tablet are
3 mils wide with a 7-mil separation. The codecoupling pads are 16 to 17 mils wide with a 3to 4-mil separation. Figure 4 shows that the
encoding pads which couple to the lower set of
position lines (y position lines) are enlarged.
This greater coupling area increases the signal
on the lower lines to compensate for the loss
caused by the shielding effect on the upper
lines (si]lce they lie between the lower lines
and the stylus pick-up). The encoding pad for
the two least-significant bits in both x and y
was also enlarged to offset the effect of neighboring-line cancellations. With these compensations, all pulses received at the stylUS tip are
of approximately the same amplitude.

Since the final stages of the amplification and
the strobing circuit are dc-coupled, the system
is vulnerable to shift in the dc signal level. For
this reason, an automatic level control (ALC)
circuit has been provided to insure maximum
recognizability of signals. During the first 180
fLsec of a major cycle, the stylUS is picking up
bits from the tablet. During the last 40 fLsec,
the tablet is quiet-Le., the stylUS is at its
quiescent level. During this 40-fLsec interval,
the quiescent level of the pen is strobed into
the ALC toggle. If the quiescent level is recognized as a zero, the ALC condenser changes
slowly into the proper direction to change the
recognition (via a bias circuit) to a one, and
vice versa. For a perfectly balanced system, the
ALC toggle would alternate between 1 and 0
with each major cycle.

Figure 7 is an illustration of the approximate
equivalent circuit of the encoder-tablet-stylus
system, along with typical system parameter
values. It is clear that the values of C1 vary
with encoder-pad size, and the value G,I varies
according to whether top or bottom lines are
being considered. The value of C4 is also dependent on the stylus-tip geometry and wearcoat thickness of the tablet. The signals arriving at the input to the stylus amplifier are ap-

A Gray code was selected so that only one
bit would change value with each wire position, giving a complete and unambiguous detert It will be noted in the oscilloscope pattern of Fig.
8 that the pulsing sequence is x first and y last. This
is mentioned only because it is the opposite order of
that shown in the 8 x 8-line example system discussed
above; otherwise, it is unimportant.

330

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

I

II

x pulses

tit2

t3

t 4

t5

t6

t 7

t8

t9

t 10

y pulses
til

t 12

t 13

t 14

t 15

---------1

t 16

t 17

t 18

t 20

t 19

-2
-4

Figure 8. Oscillogram of Pen Signal and Strobe.

mination of the stylus position. Furthermore,
a reflected Gray code facilitates serial conversion to binary. The conversion logic for an
N -bit number, when N is the most significant
bit, is:
Binary~ =

GraYN

li:J

TRACK. 1884
RECOIU) I

Figure 10. Revision Track Layout.

IMAGE PROCESSING HARDWARE FOR
A MAN-M,ACHINE GRAPHICAL COMMUNICATION
SYSTEM
Barrett Hargreaves, John D. Joyce and George L. Cole
Research Laboratories, General Motors Corporation,
TVarren, Michigan
and
Ernest D. Foss, Richard G. Gray, Elmer M. Sharp, Robert J. Sippel, Thomas M. Spellman and
Robert A. Thorpe
Data Systems Division, International Business Machines Corporation,
Kingston, New York
INTRODUCTION

ogies of analog circuits, cathode ray tubes,
optics and film processing were successfully
combined to provide a new type of image processing system.

The General Motors Research Laboratories
( GMR) obtained the IBlVI 7960 Special Image
Processing System in order to provide a laboratory for the study of graphic data processing
and related man-machine communication problems. The IBM 7960, designed and built by the
IBM Data Systems Division to specifications
provided by GMR, consists of:
a) A graphic console which includes a display tube, control buttons and lights, a
card reader, an alphanumeric keyboard
and a position indicating pencil.
b) An image processor which permits computer-controlled scanning of film images
and computer-controlled recording on
35mm film.

Part II, written by the GM authors, is a review of GM's experience with the hardware as
a component in the General Motors Research
Laboratories' DAC-I (Design Augmented by
Computers) System. Other papers in this
series (1, 2, 3, 4) cover various aspects of this
system.
The hardware is a working model of auxiliary computer equipment for designers. Previously, experiments have been conducted on
individual components of equipment such as
man-machine consoles or light pens, or image
digitizers or image recorders or plotters. These
experiments have pointed out possibilities for
future developments in computer-aided design
equipment. Now, all the necessary hardware
components have been developed and put to use
as a complete DAC-I hardware system.

This paper is divided into two parts. Part I,
written by the IBM authors, describes the design of the special image processing components
and the integration of these components into
the system. The main functional requirements
for these components are computer compatible
image generation speeds and high image quality. The design shows how the diverse technol-

In addition to having demonstrated the capabilities of this equipment for man-machine relationships in design experiments during the

363

364

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

past one and one-half years, GM Research has
created and used extensively new types of programs that both improve the effectiveness of
the hardware by calibration and evaluate and
display the status of the hardware for the user
or maintenance engineer. One test program is
described briefly as an example.
PART I-ENGINEERING DESIGN
FUNCTIONAL DESCRIPTION
A block diagram of the 7960 Special Image
Processing System is shown in Figure 1-1. The
attachment of this system to the central processing complex is through data-channel logic.
In relation to the central processing system, the
Special Image Processing System appears almost identical with any of the other data channels which may be attached to the system. In
fact, the special data channel is an IBM 7909
Data Channel, modified slightly to make it better suited to the particular tempo of data flow
that exists with this system.
The 7960 system comprises three basic units.
The display adapter unit performs such functions as control of the basic system, control unit
selection, and digital-to-analog conversion.

TAPES
CARDS

The image processor provides for the input
and output of data in graphic form. The unit
contains a CRT photo recorder, projectors, CRT
photo scanner, an input camera (for photographing drawings and documents), and rapid
film-processing equipment. (Figures 1-2 and
1-3) .

The graphic console is the primary system
control point (Figure 1-4). It contains a CRT
display, graphic pencil input, alphanumeric input from keys and punched cards, special func~
tion inputs from keys, and status and program
status indicators. Information may be entered
or modified in the system through the use of the
graphic pencil, the program control keys, and
alpha-numeric keys, or the card input. The
results of calculations are displayed on the
cathode ray tube or indicated on the status
lights. Detailed descriptions of each of these
units follow.
Display Adapter Unit
The display adapter unit controls the transmission of data, unit control information, and
unit status information, and the sequencing and
synchronizing of the various units in the system. In addition, digital data received from

II

PRlNTERI

_______ ...1

I

I
I
I
I
I

I
I
I

Figure 1-1. System Block Diagram.

Figure 1-2. Image Processor Unit.

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

365

b. Exposes film from a paper input station.
c. Processes the film (develops, fixes, washes, and dries).
d. Scans processed film for computer input
at the read station using a high-resolution
scanning CRT.
e. Projects the processed film from the read
station to a 20 x 22-inch rear-projection
screen located at the front of the unit.
Transport B:
a. Exposes film from the record CRT.
b. Processes the exposed film.
c. Projects processed film.
Both transports can be operated independently and simultaneously, within the limits imposed by the optical and shared data paths for
the CRT's. For example, exposing film from
the record CRT involves a mirror which directs
the image to the selected film transport; therefore, only one film may be exposed at a time.
Figure 1-3. Image Processor Unit.

computer storage is formatted for deflection
commands for the CRT devices.
The display adapter unit and the data channel recognize five states that may exist. Four
standard commands (control, write, read, and
sem~e), perform all data movements in the system. These commands serve to transfer data in
6-bit bytes, which contain the encoded information associated with the. operation to be performed. The fifth state, an interrupt signal, is
used to notify the data channel when operator
action requires a branch in the program.

Image Input
The source document for an image-processing
design system is normally graphic information
on paper. The paper documents will include
engineering drawings, sketches, or graphs

Image Processor
The image processor provides the input and
output of data in graphic form. The unit contains two photographic-film transport units
which are similar iIi operation but which differ
in the functions that they perform. For convenience, they. are designated transport A and
transport B. Figure 1-5 is a simplified representation of the film transport and optical system.
Transport A:
a. Exposes film from a high-resolution recording cathode-ray tube.

Figure 1-4. Graphic Console Unit.

366

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

which must be converted by a digitizing process
into a form acceptable to the computer. In the
7960 System, paper documents are photogra phed on 35mm film and the film is used as
the media for the image input process, as shown
in Figure 1-5.
Film was chosen as the media to be scanned
because of the need of being capable of processing a range of paper sizes and image qualities.
The reduction of various document sizes to a
standard image size for scanning permits higher scanning speeds and the ability to control
image quality.
Paper documents up to 22 inches square are
reduced to a 1.2-inch square on sprocketless
35mm film by the paper input camera. To expose the paper it is positioned in the paperinput drawer and held flat by means of a
vacuum. An array of eight flood lamps illuminates the paper. The intensity of the
illumination is under operator control and
exposure can be varied to adjust for differences
in image density and contrast on the paper. A
paper-input shutter provides a timed exposure.
The use of 35mm silver film as the image input media requires an on-line-computer-con-

rI
I
I

I

~

I

/~I
,I __ ..RROII
--~
I

I

I

, / SCAHCRr

\7

Figure 1-5. Image Processor Schematic.

trolled, rapid-film processor so that the exposed
film can be developed for immediate scanning.
A three-station cup application process was
chosen to provide an image with uniform density, high-image stability and a resolution comparable to that obtained by hand-processing
methods.
The processed film image is digitized under
computer control by a flying-spot, CRT scanner
(Figure 1-5). A CRT scanner was chosen for
the reductlon of graphic data to digital computer data because of the CRT scanner's computer-compatible speeds and flexibility. The CRT
beam can be scanned over the 1.2-inch square
film image area under program control. Light
from the CR Tpasses through the film and is
intensity-modulated by the dark and light areas
of the image. The modulated light is detected
by a photo-multiplier and the amplitude-modulated signal is converted to digital information.
The primary considerations in the design of
the scanner were high scanning speed and accuracy. Accuracy includes both the reliability
of detected data and the high relative positional
stability over the period that the image is being
scanned. The CRT beam is moved from point
to point over the image by vectors composed of
straight-line segments of varying length. This
method of beam positioning is called an endpoint vector method because, regardless of the
length or direction of a vector, only the new
end-point must be specified. This results in
minimum computer data to control the scanning
vector.
The data required to draw one vector is given
by the computer in 12 bits for X position and
12 bits for Y position. These digital values are
converted to analog voltages which determine
the deflection current applied to the deflection
yoke of the CRT. The scanning beam can be positioned over 4096 x 4096 addressable positions.
An effective increase in positional resolution of
the scanner is obtained by the use of a constanttime-scan vector system. In the course of a
vector, the light passing through the film intercepts a line or lines of the image contained in
the frame. Each line interception is sensed by
the PMT and is called a strike. With a constant
time vector system, it is possible to divide a
vector into time segments which can be related
to position. A strike occurring during a par-

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

ticular time segment can be related to the position on the image corresponding to the position
of the scanning vector at that time. Scanning
response resolution to a fractional part of the
vector length can be obtained by this method.
In the scanner, the time required to draw a
vector is either 32 or 256 usec. The 32-usecscan-vector time is used for short vectors; the
256-usec-time for long vectors. 'To accommodate a wide range of images with varying
image density, contrast and line widths, it is
necessary to provide program controlled
scanner detection sensitivity. The detection
threshold of the strikes or hits can be varied
by commands so that optimum detection sensitivity can be selected by the program.
Image Output
After an image is processed by the computer
program and modified and verified by the operator at the graphic console, it is frequently
necessary to produce a permanent output document of the processed image. Film is used for
the output image media, as for the input
media, because of its compatibility with computer speeds, flexibility of use, and high image
quality.
CR T recording on silver film permits images
to be generated by computer control at computer-data-channel speeds. The CRT used for
output image recording is similar to the type
used for input image scanning. As in the
scanner, a CRT image is formed by vectors
drawn on the CRT screen. The vector trace is
visible when the beam is unblanked, in order
tha t the beam trace can be recorded on the
film. When the beam is blanked, the trace is
not visible and the beam can be positioned over
the image without exposing the film. An
imag~for example, a drawing-is divided
into straight line segments. Core storage
contains the· X and Y coordinates of the end
point of each vector. Vectors may vary in
length from the very' short traces required to
form a smooth arc to longer traces which are
used for straight line segments of the drawing.

The deflection circuits used for CRT recordingare the same as those used for CRT scanning and graphic console display. Therefore,
two fixed vector times are available for image
recording : 32-usec vector time, generally used

367

for drawing short vectors, and 256 usec generally used for long vectors. Four vector line
widths are selectable: basic, 2x basic, 4x basic
and 6x basic. A constant vector time system
for recording results in a beam velocity that
varies with vector length. If not compensated, this would result in varying film exposure and therefore, varying density on the
recorded image. To provide even exposure for
all vector lengths and vector widths, dynamic
intensity control is used. This analog circuit
provides continuous compensation for beam
speed and line width.
Other analog circuit corrections must be
used to obtain a hIgh quality, high resolution,
linear image on film. Continuous beam focus
compensation is required to maintain a perfectly focused beam over the CRT face. The
flat screens of the record CRT and scan CRT
require focus compensation that is a maximum
when the beam is deflected to the edges of the
screen, and follows a parabolic function which
gradually diminishes to zero compensation
when the beam is at the center of the screen.
The X and Y signals, which cause beam deflection at the record and scan CRT's must be
corrected to prevent "pin cushion" effect. This
effect is inherent in fiat CRT screens and
causes the sides of a square to become concave
arcs and the overall area to be enlarged. An
analog pin cushion corrector is used to modify
the deflection current to make the beam position a linear function of the angular position
of the beam.
The output image is exposed to film at the
expose station of either Transport A or B of
the CRT recorder. The film is pulled through
the expose station in one-frame increments,
and is exposed to an image from the record
CRT as for the paper input. The exposed film
is accumulated in a storage loop until a sufficient quantity of film is available for rapid
processing. A loop .of film is maintained in
front of the expose station so that the frame
can be quickly pulled down by the drive mechanism. The processing of the exposed film is
identical to that which occurs after paper input exposure.
After the output image is processed, it may
be immediately viewed by the operator by pro-

368

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

jecting the film image onto a 20-inch by 22inch rear projection screen (See Figure 1-5).
At the projection station the film may be advanced or backspaced one frame at a time
under computer control or advanced or backspaced incrementally under operator control.
By utilizing both of the film transports, each
with a projection station capable of projecting
a film image onto the common projection
screen, it is possible to compare two images or
to produce 3-dimensional effects on the screen.
The large screen proj ector permits the operator to study the output image off line from
the computer. The image is larger and of
higher quality than can be obtained on the
graphic console and the image can be studied
and compared with drawings or other graphic
console images.
Graphic Console
The graphic console (See Figure 1-4) provides primary system control. The man-machine - communication components of the
graphic console are:
1. A 10-inch-square CRT display surface,
and a position-indicating pencil.
2. Thirty-six program-status lights (with a
message overlay) and 36 program control keys.
3. An alphanumeric keyboard.
4. A card reader.

The 10-inch-square display surface is a CRT
display with a phosphor coating designed to
control flicker and improve viewing comfort.
As with the scanner and recorder, the display
is created by having the computer specify the
end points of the vector to be drawn. The dynamic CRT display utilizes a transparent conductive screen with an impressed voltage
gradient and a voltage-pickup position. pencil
to aid in operator modification of the displayed
image. Basically, the data read under program control notifies the tracking routine
whether the pencil position is to the left or
right and above or below a particular (X,Y)
position.
Thirty-six program control keys are provided for use in addition to the input pencil.
The function of a particular program control
key is assigned by the program and can be

changed from program to program. Replaceable overlays (See Figure 1-6) are used to
identify the function of each key for each
application. The descriptive labels on the
overlay can be illuminated by the programstatus indicators which are also under program
control. An alphanumeric keyboard, consisting of 36 keys arranged in a 6-by-6 key matrix
pattern enables the operator to enter data at
the console. When the keyboard is operated
in conjunction with an upper and lower case
switch, alphabetic, numeric and special character codes can be generated. There is, in
addition, a manually-fed, card-reader input for
the entry of limited amounts of data.
The code generated by either the keyboard
or the card reader can be interpreted by the
program as desired, giving additional flexibility to these devices.
ENGINEERING DESCRIPTION
Film Transport Control
A film transport consists of the following
units (Figure 1-7) :
1. A film supply cassette and takeup cassette.
2. Drive motors, clutches, film guides and
other controls that move the film from
the supply cassette.
3. An expose station.
4. A - process station with its associated
processor - applicator - elevating mechanism.
5. A read station for projection or scanning.

Figure 1-6. View of Graphic Console Overlay.

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

I

FILM PATH

FEEOLOOP

" . ",--------.-L---.J _

~E
TAKE-UP

CASSETTE
EXPOSE _

~

STATION

READ STATION

1

I

Loop 2; its maximum capacity is 20 frames.
At the read station, film may be advanced or
backspaced one frame at a time under computer control at a rate of approximately one
frame every 170 ms or advanced or backspaced
under operator control at one of two speeds:
1;4 inch or one inch per second as seen on the
screen.
Photographic System

PROCESS
STATION

STORAGE LOOP I

369

-

STORAGE LOOP 2

Figure 1-7. Film Transport.

Film is fed from a supply cassette capable of
holding 400 feet of 35mm unsprocketed film.
The film is moved through the channel to a
takeup cassette by means of a friction drive.
Initially, the film motion controls thread the
film through the film transport. Independent
motions at each of the three stations (expose,
process and read) are permitted within the
limits imposed by film storage loops between
stations.
A small loop of film (Loop Feed) is maintained prior to the expose station so that the
film can be quickly pulled down by the drive
mechanism without encountering excessive
drag. The film is pulled through the expose
station in one-frame increments at a rate of
approximately one frame every 210 ms by the
expose station drive motor. The exposed film
is accumulated in Storage Loop 1 until processing is desired. The maximum capacity of
Storage Loop 1 is 20 frames before processing
must be performed. When the computer signals the channel to process the exposed film,
the film is moved through the process station
at a rate of 31 inches per minute by the processor drive motor.
Storage Loop 2 (between the process and
read stations) accumulates the processed film
until the computer advances the film to the
read station. If Storage Loop 2 becomes full
and processing is still going on, film is forced
to advance through the read station. In this
way, processing is not interrupted to prevent
film from being ruined through over-development or under-development. Film can be
backspaced at the read station into Storage

Optical Elements
There are five essentially independent optical systems in the image processor:
1.
2.
3.
4.
5.

Input camera system
Scanner system
Recorder system
Projection system
Alignment system

'The first four systems are used in the operation of the image processor while the fifth is a
maintenance aid. All of the optical paths (except alignment) are shown schematically in
Figure 1-5.
The input camera system consists of a 22.,inch-square, paper-input drawer (See Figure
1-2) with a vacuum-actuated platen to keep
documents fiat; a series of tungsten, line-filament, light sources located above the drawer;
a series of reflecting mirrors; a 4-inch, f/4.0
lens with an electrically-actuated shutter and
an expose station on channel A.
In operation the drawer would be extended
. outside the image processor, a document placed
in the drawer, and the hold-platen actuated.
Upon depression of a control switch, the
drawer with the document on it will automatically return to its normal position, the light
sources will be turned on, the shutter will be
opened, and an exposure made on 35mm film
at a reduction of 18.3X. Both the intensity of
the light sources and the shutter timing are
variable to provide for flexibility of exposure.
The resolution of the optical system at the
film plane is approximately 150 lines/mm.
Film images at the channel A· read station
can be projected for visual examination or can
be scanned electronically by means of the flying spot scanner. Optical switching is used to

370

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

obtain the functional selection (See Figure
1-5). A 9-inch, f/4.5 CRT lens was designed
to reduce the CRT presentation 2.5X to scan
the 35mm film. The lens, corrected for the
P16 phosphor emission band, yields a resolution at the image plane of 160 lines/mm with
a distortion of less than 0.1 %.

FILM
TRANSPORT

A collector lens is placed behind the film
image which images the exit pupil of the scanner lens on the sensitive cathode of a photomultiplier tube (PMT) detector. This lens
serves to uniformly distribute the light passing
through the film over the PMT cathode.
Dual-channel recorder optics are provided
to expose film on either channel A or channel
B (See Figure 1-5) using a common CRT
source with optical switching. Optical switching is also used to select the exposure source
from either the paper input or the recording
CRT on channel A. The recording operation
utilizes a lens similar to that used in the scanner optics except that it is corrected for the
Pll phosphor enlission band.
The simultaneous projection of film images
in the read stations of the two channels to a
common viewing screen is provided (See Figure 1-8). The same lens as that used in the
paper input camera was selected for projection. Off-axis projection, using the displaced
image plane technique, gives maximum screen
illumination with minimum distortion. Superposition of the two projected images is achieved by moving the film along the vertical
axis of the screen and by racking the channel
B projector lens along the horizontal axis.
Color filters are provided in the projector
lamphouses to aid in differentiating the two
images at the screen while projecting simultaneously into the projectors to provide steroscopic or 3-D viewing. When these filters are
introduced by electrical command into the projector light path, the projected images are
selectively polarized. Complementary polarizing glasses must be worn by the viewer. The
capability of advancing and backspacing the
film in the read station is provided. A magnification of 18.3X is used in projecting the
film on the 20 by 22 inch projection screen.
The CRT's internal alignment optics serve as
a reference to which the recorder and scanner

+nCOLOR FILTER (e-G)

B

--g

L3

L2

+
~--=-~ -=-=1'
POLARIZED FILTER

tit

I

I
I

J

------~I--~
FILM

TRANSPORT
A

I
I
I

• nCOLOR FILTER

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

(R-Ol

I
I
I
I
I

I
I
I
I

10 SCREEN

4-----~

Figure 1-8. Simultaneous A-B Projection, Simplified
Diagram.

cathode ray tubes are aligned. An illuminated
reticle is brought into visual superposition
with either CRT display. Switching from the
recorder CRT display to the scanner CRT display is accomplished by manual rotation of a
beam splitter. Variable magnification of the
alignment system allows for both gross and
detailed inspection of the CRT displays.
Recording Media
The selection of photosensitive material required the weighing of several desired characteristics. For document-recording, a film in
the microfilm resolution class was desired. For
CRT recording, a film with an extremely high
sensitivity was desired. An additional design
criterion was that of elevated temperature,
short-time film processing. The silver halide
film emulsion designed for this unit has a high
blue sensitivity, a reasonably high resolution130 lines/mm, medium contrast and capability
of withstanding the rigors of a high-temperature process.

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

Rapid Film Processing
Upon a command, the exposed film is automatically processed in the rapid-film processor,
which brings chemicals for processing at high
temperatures in contact with the film emulsion.
This high temperature increases the chemical
activity of the solution such that the film can
be processed with a total contact time in the
developer, fixer and rinse of only five seconds.
A negative-pressure, cup-application method
was selected for the processing (S.ee Figure
1-9). The compliant rubber lips on the solution-applicator cavities form a seal with the
film emulsion. Pumps situated in the heatedfluid container draw the solution from the container through the hose to the applicator cavities and back to the pump. The negativepressure fluid system greatly reduces liquid
spillage hazards since any leakage in the liquid
circuit results in air being drawn into the circuit. This is particularly important when a
process such as this one is integrated into a
complex electronic device. The rubber lips on
the applicator act as squeegees between the
sequential processing steps to minimize contamination of solutions. The exit lip of the
applicator removes the surface moisture from

Figure 1-9. Film Processing System.

371

the film to minimize drying time. The film
dryer directs high-velocity heated air against
the film emulsion which is thus dried in approximately one second. Vent valves located
in the return line to the pump are used when
the processor is moved away from the film.
When these valves are actuated, air enters the
fluid line allowing for gravity drain of the
applicator cavities. The applicator can then
be lowered away from the film, without spilling any chemicals.
The processor processes film at a 31 inches/
minute rate. The compartmented solution
tank has a volume to accommodate the processing of 400 feet of film. The solutions in the
tank are maintained at 130 F through the use
of a blanket heater and a temperature controller. The one solution tank and two sets of
solution pumps supply the solution to the two
rapid film processors, one for each of the two
channels.
0

Analog System
General Description
The analog system, which controls the scan,
display, and record CRT's, scan detection, and
position-pencil operation, is shown in Figure
1-10. As can be seen, a single set of analog
circuits is used to control all three CRTs.
Switching between tubes is done with relays
and is under computer control.
The control circuits relating to the CRTs
perform three basic functions. The deflectioncontrol system precisely controls the position
of the electron beam on the face of a given
CRT as a result of a sequence of digital X, Y
addresses supplied by the computer through
the control unit. The focus control provides
a uniform (in size), round CRT beam over the
entire usable area of the flat-face record and
scan CRTs. Without this control, the CRT
beam would increase in size and become astigmatic (oval) as the beam position moved offaxis. A farther requirement of this control
is to provide for four program-selectable line
widths (CRT beam sizes) for film recording.
The intensity control is required to maintain
constant beam brightness in the system CR Ts,
independently of beam size (line width) and
beam velocity.

372

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
ThrnhoId Select

fRECORD CRT

lint.
I

-,.---IISCAN CRT

Focus Defl.

I
I
I
L_

Lens

IIBIank- Focus
IIUn

0111

I

711
Film II

DefI.

so XY

II
_ _ _ _ ....JL...

r----I
I
I
I
I
I
I
I

I

I

--....""L-_~

STATIC

I
I
I

I
I

I

I

IL.. _ _ _ _ _ _

ADDRESS

l

I

II

I

Y DIGITAL

I
I
I
I

I

ADDRESS

r-------

I I INTENSITY
I CONTROL
I
I

rI

X DIGITAL

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

LW

SEL.ECTo---~

I

-----~

LW SELECT

y

SELECT

Figure 1-10. Analog System Block Diagram.

The position-pencil control system allows the
pencil, when in contact with the conductive
glass screen of the GCU, to be located by the
computer such that the CRT beam (either
blanked or unblanked) appears at the pencil
location. The scan detection system senses the
light output of the scanner CRT which is modulated by the film image being scanned and
correlates the amount of light received at a
particular time to a position of the film image.
There are 64 program selectable threshold
levels representing image transmissivities
from 0 to 100 0/0.
The following sections describe each of these
major control systems.
Deflection Control
The deflection control circuits utilized in the
7960 System are shown in block diagram form
in Figure 1-10. Note that the circuit configuration is identical for both X- and Y- deflection channels. The main elements of the X-

deflection Y- deflection control circuits are the
12-bit, digital-to-analog converter or decoder,
the waveform shaper, the integrating network,
the pre-amplifier and the deflection yoke current amplifier. Another circuit which is common to both the X and Y channels is the distortion correction system which provides deflection yoke current compensation to minimize
pin-cushioning effects on the flat-face record
and scan CR Ts.
The decoders convert the digital addresses
received from the computer into an analog
signal proportional to the 12 binary-weighted
bits. The output of the decoder is a current
level which remains constant until a new address is received from the computer. The output then changes in a step-like manner to the
new current level where it remains until still
another address is received.
The decoder output is then fed into the
waveform shaper network which converts the

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

current steps into a voltage waveform. As
may be recalled, the 7960 System operational
characteristics require a so called constanttime, end-point, vector-generation mode in
which the CRT beam is deflected from a previous end-point address to a new end point address in a straight line and in a constant time,
T, regardless of the distance between the
points. A further requirement imposed by the
scanning system was that the beam move between the points at a rate linear with time. In
other words, the beam would move one quarter
of the distance between points in a time T /,4,
half the distance in T /2, etc. In order to
achIeve these two objectives, it is necessary to
generate a deflection waveform in which the
change in current or voltage from one level to
the next takes place in a constant time T and
at a linear rate. The shaper output, when integrated, provides such a waveform. The time
period, T, is program selectable to be either 32
or 256 microseconds. Restrictions on dynamic
ranges of the circuits limit the maximum positional change in anyone cycle to 1/8 of the
total X, Y positions in the 32-microsecond
mode, and 14 of the total X, Y positions in the
256-microsecond mode. The output of the integrator is then fed into a preamplifier which
provides an impedance match with the deflection-yoke power amplifier and also converts
the single-ended input signal into a push-pull
output signal.
The deflection-yoke power amplifier provides the current into a high-performance
push-pull deflection yoke for driving the 5inch record and scan CRTs. The yoke was
selected for maximum perpendicularity and
linearity, and minimum residual magnetism
(or hysterisis). The power amplifier drives a
lower performance, push-pull deflection yoke
when connected to the 17-inch display CRT.
The maximum display area utilized is 10 inches
square.
The record and scan CR Ts are provided with
optically-flat faceplates for utilization with an
optics system. Because of the flat faceplate and
the fact that a change in deflection current produces a proportional change in the sine of the
deflection angle, an optical distortion known
as pin-cushion is observed at the faceplate.
This distortion can be explained best with the

373

aid of Figure 1-11. If the face of a CRT had
a radius of curvature equal to the distance
from the center of the deflection coil to the
screen, the deflection distance A would be
proportional to the sine of the deflection angle
and thus to the deflection current. The image
thus produced by independent X, Y deflection
would appear, when viewed from a distance,
to be undi~torted as indicated by the inside
box in the figure.
With flat-faced CRTs, however, the deflection distance, AI, is proportional to the tangent
of the deflection angle and thus proportional,
non-linearly, with deflection current. The effect of this is that deflection distance increases
somewhat faster than the current. Under
these condtions, the X and Y deflection components interact, producing the pin-cushion pattern shown in the diagram. For the maximum
angles of deflection utilized in the record and
scan CR Ts, the maximum displacement error
at a corner of the image would correspond to
approximately +6% (proportionate distance
between Band B 1) . To correct for this error
and meet the requirements for positional accuracy, a distortion correction circuit is utilized to provide correction which can be expressed mathematically as follows:

FLAT FACE
CRT SCREEN

Figure 1-11. CRT Pin-Cushion Distortion.

37 4

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

where ~ X and ~ Yare the deflection correction currents, K is a proportionality constant
which is a function of the system geometry,
and X and Yare the deflection currents.

width relative to the 1.2-inch square film image
is less than 0.001 inch. Line-width control is
provided by relay selection under computer
control.

Focus Control
The focus control system provides two separate and concurrent functions:

Intensity Control
Intensity compensation is required to maintain constant beam brightness in the CRT's.
Two operating conditions account for this
requirement.

1. A dynamic control to compensate for
beam defocussing as a function of beam
position.
2. A static control to generate the correct
size of the CRT beam as determined by
the programmed line-width selection.
The requirement for dynamic focus compensation is, like pin-cushion, caused by the optically flat faceplate of the CRT. As the
beam is deflected off-axis, the distance to the
screen increases and, for a constant value of
focus current, the beam defocusses. By changing the current in the focus coil, and thus the
magnetic field, the beam can be refocussed at
any point on the CRT screen.
Because the CRT geometry is radially symmetrical, the focus error function is also radially symmetrical and mathematically approximates a parabolic function. The block diagram
of the focus control is shown in Figure 1-10.
The rho generator produces a signal which
is the approximate vectorial addition of the X
and Y deflection components referenced to the
electrical geometric center of the CRT. The
output of the rho generator is then fed into a
parabola generator which provides an increasingly large amount of compensating signal
through the dynamic focus coil driver as rho
increases (or as the beam moves toward the
edge of the CRT screen).
The static focus circuit produces the current
required to provide four different spot sizes.
It is static in the sense that for a given spot
size, the current in the static focus coil remains constant regardless of beam position.
The smallest beam spot is the true focus condition; the larger spots are obtained by defocussing. Each spot size provides different
line widths for image recording of vectors.
The line widths are provided in the ratio of
1 :2 :4: 6 where the minimum spot size or line

1. Beam sweep speed. Because the vector
time, T, is constant (either 32 or 256
microseconds)
regardless of vector
length, the beam sweep speed or velocity
varies. In order to maintain constant
brightness, the CRT beam current must
be increased proportionately with vector
length.
2. Line width. As line width is increased,
the beam current is effectively spread out
over a larger area. In order to maintain
equal brightness over all line widths,
beam current must be increased proportionately to the increased line width.
The requirement for intensity compensation
applies only to the record and display CRT's:
the record CRT to provide an even exposure of
the film; the display CRT to provide an evenly
illuminated display. The beam velocity range
of the scan CRT is much more restricted and
only the basic line width is utilized. Thus, no
compensation is required for the scan CRT.
Dynamic beam intensity compensation is
accomplished by determining the status of the
three variable quantities:
1. Vector length (continually variable from
zero to 14 full image size).
2. Line width (basic, 2X basic, 4X basic,
6X basic).
3. Vector time (32 or 256 microseconds).
A block diagram of the intensity control
circuits is shown in Figure 1-10.
The length of each vector is determined by
sampling the X, Y deflection signals, differentiating and rectifying these signals, and then
feeding them into a rho generator. The rho
generator produces an output signal which is
the approximate vectorial addition of the
change in the X and Y deflection components.

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

The output of the rho generator is thus a signal proportional to vector length or velocity.
This signal is fed into a circuit called a linewidth multiplier. This circuit is controlled
by the status of two digital lines from the
computer which relate to the particular line
width selected at any given time. The signal
out of the line width multiplier is proportioned
in the same ratio as the line width options
(1 :2: 4 :6). For example, if the 4X basic line
width is selected, the output is four times as
great as when the basic line width is selected
for a vector of a given length. Another input
to this circuit is the vector time selection. The
signal level, as described above, is further
modified as a function of the vector time, 32
or 256 microseconds.
The CRT beam intensity is, for all practical
purposes, linearily proportional to the beam
current. The intensity control circuit changes
grid voltage to control this beam current. However, the CRT grid voltage-to-cathode (beam)
current transfer charactertistic is not linear.
Therefore, it is necessary to provide a nonlinear function generator circuit which compensates for the CRT charactertistic such that the
intensity compensating signal, as derived from
the output of the line width multiplier, provides a non-linear grid voltage signal in such
a way as to provide the proper level of beam
current. The final block is the intensity drive
amplifier which is a gated amplifier controlled
by the blank/unblank line from the computer.
The intensity control is capable of providing
an intensity level for film reeording that permits lines of varying lengths and thicknesses
to maintain a density tolerance of ±O.lD about
a nominal level of 0.7D after rapid processing.
Position Pencil Control
The position-pencil control system allows the
pencil, when in contact with the conductive
glass screen of the graphic console, to be located by the computer and a CRT beam
(blanked or unblanked) to appear at the pencil
location. By sampling at a rate high in comparison with the motion of the pencil, the position-pencil control system can maintain the
position of the beam under the pencil, making
it appear that the pencil traces an image on
the CRT screen.

375

The block diagram of this system is shown
in Figure 1-10. The conductive screen is a
piece of glass 14 inches square, coated with a
thin transparent layer of tin oxide and placed
directly in front of the display CRT. A voltage
is alternately applied to the screen through the
X, Y glass switches causing a voltage gradient
to develop on the screen, which is oriented left
to right (X) or top to bottom (Y). The pencil
when in contact with the screen will thus alternately detect a voltage which is proportional
to the distance that the pencil is from the left
side of the screen or the top of the screen. This
voltage is fed into one side of the voltage comparator. The opposite side of the comparator
is supplied with a signal alternately from the
X and Y deflection decoder. A comparison is
thus made at a given time of the Y position of
the pencil and the Y position of the CRT beam
or the X position of the pencil and the X position of the CRT beam. The output of the
comparator is two digital lines to the computer
which indicate that the pencil coincides with
the CRT beam, is to the right or left (for X)
or above or below (for Y) the CRT beam, or
that the pencil is not touching the conductive
screen.
Programs have been written which use the
interpretation of the digital output of the comparator to direct the CRT beam to coincide
with the location of the pencil to accomplish
pencil tracking.
Scan Control
The scan operation is initiated by an unblanked (visible) beam deflection, or scan vector, written on the scan CRT screen under
program control. Light produced by the sweeping beam is sensed by photomultiplier tubes
PMT 1 and PMT 2 (see Figure 1-10). PMT 1
receives light directly from the CRT screen.
Consequently, PMT 1 receives light whenever
the beam is sweeping. PMT 2 receives light
from the CRT screen through the film image.
Thus, PMT 2 receives light only when the beam
sweeps through the clear areas of the film.
The object of writing a scan vector is to intercept the lines on the film image as the beam
sweeps. Thus, assuming that the film image
is composed of black lines on a clear background (positive mode), the beam light sensed

376

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

by PMT 2 will be momentarily interrupted
when the sweeping beam intercepts each line.
Assuming that the film image is composed of
clear lines on a black background (negative
mode), PMT 2 will sense light momentarily
when the sweeping beam intercepts the clear
lines.
However, the PMT 2 output depends on the
relationships of beam speed, beam spot diameter, and width of the intercepted line (Figure
1-12). Section A shows positive-mode scanning, in which the line width is greater than
the beam-spot diameter. In this case, when the
beam intercepts the line, PMT 2 senses total
darkness and, accordingly, produces a maximum amplitude level. Section B shows the same
beam spot intercepting a line whose width is
smaller than the beam diameter. In this case,
PMT 2 does not sense total darkness but a degree of light dimming called gray level. The
PMT 2 output then reflects this gray level with
a signal of proportional amplitude. Sections C
and D illustrate negative mode scanning where
line width is greater and smaller than beam
spot diameter.
In practical operation, the most common occurrence is that interceptions with lines of
average width produce different gray levels.
The PMT 2 signal indicates a gradual transition from light to dark and dark to light. This
corresponds to the gradual dimming of the
beam in either transition.
A

BEAM SPOT

DARK

LIGHT

Section A of the figure shows that the reference level, which lasts for the length of the
scan vector, can be set to anyone of 64 threshold levels by computer program.
Section B shows (1) the superimposed signal
and reference levels as they are placed for
comparison at the differential amplifier (Figure 1-10) and (2) the threshold levels which
are lowered until they cross the higher level
signal. Thereafter, the search process requires
an additional scan operation with a lower reference threshold to cross the lower-level signal.
Section C indicates the output signal transferred to the control unit to indicate a strike
in positive-mode scanning.
Sections D and E indicate the search for signal levels in the negative mode in which the
program raises the threshold until it crosses

B

o----R---f--- ~.wk..TION
~
C

Since line width is sensed by PMT 2 in terms
of varying gray levels, a search is required to
make sure that all interceptions, or meaningful
levels, are accounted for in the scan process.
This search is done by comparing the signal
level with a reference level which can be varied
by predetermined values. Figure 1-13 illustrates this comparison with examples of typical
vector scan operations. In this figure it is assumed that the positive and negative versions
of the same image are being scanned and that
the sweeping beam makes two line interceptions.

VIDEO

A

POSITIVE
MODE

1------------~
63
} REFERENCE
::::
TH~ESHOLD
_ _=_==
_-=
_===-===~
______
BY
ROGRAM SET LEVEL

==_-_-=--=--=--=====

.t:R~~ LEVEL

SIGNAL
LEVEL
REFERENCE
SEARCHING
FOR POSITIVE
} MODE SIGNAL

C---u ______

D

SCAN OUTPUT TO
} DAU

~LINE

BEAM S P O T C > - " ' O L I ] - " INTERCEPTION

DARK

VIDEO
SIGNAL
LEVEL

LIGHT

Figure 1-12. Scan Signal Generation.

NEGATIVE
MODE

,~

D

l----------~l
=-=-=_--=_-_;::=.=.:::

:

~----------

-

E--11________

63

RAISE
THRESHOLD

00

REFERENCE
SEARCHING
FOR NEGATIVE
} MODE SIGNAL

SCAN OUTPUT TO
} DAU

Figure 1-13. Scan Output Generation.

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

the higher-level signal; an additional scan operation with a higher reference threshold is
required to cross the lower-level signal.
In the section on deflection control, it was
stated that a requirement of the deflection signal was that it be linear with time. The reason
for this is that the strike or output data from
the scanner is sampled at 16 equal intervals
during one vector time. Thus, in the 32 microsecond mode, the scan output is sampled and
stored every 2 microseconds; in the 256 microsecond mode, the output is sampled every 16
microseconds. By making the deflection signal,
and therefore the scan vector, linear with time,
the time segment during which an output was
sensed from the scanner can be correlated to
beam position. This is extremely useful in
either one of two ways. It provides the equivalent of 16 separate vector scans in one scan
vector time period thereby increasing the effective scan rate by 16, or it can be considered to
increase the resolution capability of the scanner
for a scan vector of a given length by a factor
of 16. The example shown in Figure 1-14
illustrates this point. A scan vector is generated which traverses from point A to point B,
intercepting four lines on the film image. If
the scan output was sampled only once per scan
vector, the only information which would be
retrieved would be that a line or lines were
located somewhere between points A and B.
By sampling 16 times during the generation of
the single scan vector, not only was it determined that there were four lines but the locations of the lines relative to points A and B
can be computed to within one part in sixteen
of the distance between the points.
The maximum length of the scan vector (and
therefore the CRT beam velocity) is restricted
by the band width of the scan deflection circuits
which are in turn restricted in order to minimize noise. The resolution of the scanner is
primarily a function of CRT spot size. The
scanner can resolve lines 0.0005 of an inch
thick separated by 0.0015 of an inch relative
to the 1.2-inch-square film image.
Cathode-Ray and Photomultiplier Tubes
The CRT's utilized for scanning and recording are identical except for their phosphors.
Each is a 5-inch, round, high-resolution CRT

377

ONE VECTOR CYCL
TIMET

2

3

4

A ~~-It---It---.,...--B

DARK
LIGHT

1

II

I

n

I

r

UULJUU

SCAN VECTOR

VIDEO SIGNAL
OUT OF PMTJI

SCAN OUTPUT

J1flflf1fUlf1fl
I 2 3 4 5 6 7 8 9 10 1112 13141516

16 SEGMENT
TIME SAMPLE

--IL-IL-fl--JL-

16 POSITION STRIKE SHIFT
REGISTER INPUT

3

6

10

14

Figure 1-14. Scan Output Time Sampling.

with an optically flat faceplate. Both the deflection and focus is magnetic. Nominal spot
size at the CRT screen is 0.001 inch.
The scan CRT employs a P16 phosphor which
was selected because of its ultra-fast lightdecay characteristic. It has a spectral energy
distribution which peaks around 3800 A (violet
and near UV). The scan lens is color-compensated for this spectrum and the scan detection
photomultipliers employ an S11 photo cathode
which is quite sensitive to the P16 spectrum.
The record CRT employs a P11 phosphor
which was selected because of its high lightoutput capability, which is required for exposing film .. It has a spectral distribution which
peaks around 4600 A (blue) and is considered
medium fast relative to its decay characteristic.
The display CRT is a 17-inch, rectangular
CRT with a curved faceplate and requires magnetic focus and deflection. The nominal spot
size is 0.020 inch and the P19 phosphor peaks
around 5900 A (orange). This phosphor was
selected for its long persistance characteristic.
The usable display area is 10 inches square.
The focus control is not connected to the display CRT. Because of the larger spot size and
the curved faceplate, a permanent magnet focus
was determined to be adequate.

378

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

PART II OPERATIONAL EXPERIENCE
INTRODUCTION TO PART II
The specifications developed by General
Motors Research for new man-machine graphical communication hardware evolved from experience with early GMR Laboratory equipment and from projected requirements of a
designer in a computerized design process. The
designer, unconcerned with the hardware specifications outlined in part I of this paper, enters
the computer room with a drawing or sketch of
standard drawing quality as input to the design
process. While in the computer room, he uses
the graphic console and the computer as tools
for rapidly developing, modifying, and reviewing his design. When he leaves, he expects to
take with him (without delay) a roll of paper
documenting his computer-aided design.
The remainder of this paper evaluates the
degree to which the hardware has approached
the requirements of a designer in the process
of design. In addition, some programming
techniques for improving the effectiveness of
the hardware by testing and calibration are
described.
THE GRAPHIC CONSOLE AS A
MAN-MACHINE INTERFACE
Continued use of the graphic console by a
large number of people has led to some conclusions regarding the equipment as a tool in
a design environment.
The CRT and pencil have proven to be a
highly successful man-machine interface in
spite of the small screen size (10" x 10"). Except for a period of two months when a lower
persistance phosphor tube was tested in the
unit, there have been no serious operator complaints directed toward use of the display tube.
The lower persistance phosphor caused a highly
objectionable flicker when large amounts of
data were displayed. The operator antagonism
toward this flicker was sufficiently severe in
some cases to keep the individual from the
equipment.
The position-indicating pencil has been found
to be functionally very suitable. One reason
for this is the positive action-reaction; that is,

the program is alerted whenever the pencil
touches the screen. Contrast this action with
a light pen which must be placed close to a
specific area of interest and requires in addition some type of manual switch to alert the
program. Another advantage of the pencil
compared to a light pen is that pencil position
can be determined in milliseconds when the
pencil is pointing at a void portion of the image
area. This quick position location is essential
in an on-line problem solving environment.
Users of the pencil must be able to quickly locate in real dimensions any point of the display area. With a light pen it is necessary for
the user either to wait for a searching operation or to point at part of a display and then
track the pen to an area of interest.
The speed and positive action characteristics
make the pencil a comfortable tool in an alphanumeric display-and-correct mode in which the
user points to a character of the display and
uses the alphanumeric keyboard for correction.
The user of the pencil need only touch the
screen in the general vicinity of a particular
character and the program can determine
which character is to be replaced. Users have
adapted very rapidly to using the pencil as a
pointer.
One disadvantage of a position-indicating
pencil when compared to a light pen is that the
pencil does not establish a positive reference
to a particular line of the displayed composite
line image. It is necessary to compare pencil
position with the position of each of the displayed lines to determine at which line the pencil is pointing.
From these experiences with the use of the
pencil, we have learned that the functional
characteristics of a device for pen-pencil manmachine communication should include modes
such that:
1. The control program is alerted each and

every time the pencil touches the display
surface.
2. The control program is able to determine
within milliseconds the position of the
pencil on the screen independently of the
presence or absence of any display.

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

3. The control program is able to establish
a positive identification by the pencil of
a particular line of a displayed image.
The use of a man-computer pen or pencil for
the input of graphic data is an interesting topic
in itself. When analyzing the tracking mode,
however, it is difficult to separate the characteristics of the hardware, the programming and
the application. While the pencil or a light pen
could be used for entering images consisting
of connected straight lines, a highly sophisticated program would be required to track and
accurately digitize drawings of curves which
are connected to form an image. In the GMR
DAC-I System, precision graphic data input is
entered through the paper input facility of the
image processor.
The program status lights and control keys
have also proven to be excellent both for the
programmers and for the man at the console.
The alphanumeric keyboard, on the other hand,
has been an object of much discussion from
which the following controversial points have
arisen:
1. The keyboard should be a standard type-

2.

3.

4.

5.
6.

writer keyboard to take advantage of the
speed of those who know how to type.
The typist-designer intersection is small;
therefore, -use a keyboard that is arranged
in some order to minimize learning.
The typewriter should be installed immediately in front of the display tube to
maximize display feedback of a typed
message.
The space in front of the display tube
should be reserved as a work area for
listings, drawings, note pads, etc.
The typewriter would be of great value
for long message input.
No long messages should be entered at
the graphic console.

This type of discussion can be and has been
carried out to great lengths by human factors
people. Our experience has shown that an
alphanumeric keyboard is difficult to cope with
and not a natural device for man-machine communication. Until a pencil entry device accompanied by character recognition is available,
however, the keyboard must remain an important part of the man-machine interface.

379

EVALUATION OF THE
IMAGE PROCESSOR
The graphic console provides the user with
the facility for a dynamic display of comparatively low accuracy and repeatability. The
voltage pencil is also dynamic in its functional
capabilities and not intended to be used for the
entry of precision graphic data. The image
processor on the other hand is expected to provide the more static man-machine graphic communication with higher precision input and
output.
When establishing criteria for the evaluation
of image processing equipment, it is essential
that the criteria be defined in terms that give
an overall evaluation of the unit, encompassing
electronic circuits, optics and photography. The
resolution of the CRT as measured by the
shrunken raster method, for instance, is of
little interest to the user of an image recorder.
For Design Augmented by Computers the user
wants to know, first of all, the line width and
resolution as measured on the paper of the
hardcopy output from the recorder. If he must
supply his own hard copy machine, the user
wants the specifications as measured on the
processed photographic film. From the user's
standpoint, all specifications must be based
upon the re&ponse of the unit in the finaL output state- and the specifications must be'measurable at that final output state.
What-follows is an important subset of
image processing evaluation criteria and programs resulting from daily use of the image
processor since early 1963. The criteria are
specified in a manner that allows rapid evaluation whenever possible. The programs are intended to provide versatility for the evaluation
of the equipment over a wide range of conditions and requirements.

Accuracy
The user of image processing equipment for
Design Augmented by Computers wants to
know the accuracy of the positioning of a point
on the output image when referred to any other
point on the image. He wishes to measure with
a rule the distance between two points and
know his confidence limits. Accuracy to the
user is then defined as the maximum error in
the distance between any two points on an

380

PROCEEDINGS-FALL JOINT COMPUTER CONFE-RENCE, 1964

image. It is measured by recording a pattern
of vectors with known spacings. The distance
between vector endpoints is measured on hard
if provided, on the' film image with an
opticalcompax;a'tor, or on the film image using
the' image scanner. The maximum error encountered in measuring the distance between
any two' points is the accuracy characteristic of
the unit. With a little ~xperience, the ,~ser
learns the particular pattern and vector, endpoints that demonstrate t~e maximum error.

copy

Figure 2-6 shows the accuracy errors of various points (referred to th~ ,center point) on the
scanIler image magnified by a constant factor.
Note 'that although the accuracy figure is:stated
in te.rms of, per cent
image size, the error
measured is an absolute value that includes
pIncushion error (distortion corrected) and all
other electronic, photographic and optical errors. Note also that this method of measuring
accuracy results in a figure nominally twice
that of those techniques that measure accuracy
as the error of one point referred to an origin.
This method does, however, yield a value of accuracy such as a designer would measure with
his rule.

,or

Users of the equipment are not completely
satisfied with the accuracy (approximately
17c) resulting from uncalibrated scanning input and output recordings in spite of the fact
that the equipment represents an advanced
state of the art. Calibrated input and output
accurate to 0.2 % barely meets the requirements
of static man-machine communication.

condition after an intervening number of random input conditions. Other definitions of repeatability 'which are dependent on repeating
a sequence of inputs are of little or no value
to the users of image processing equipment.
Imperfect vector en d poi n trepeatability
shows up dramatically in circles (see Figure
2-1) which do not close properly and at intersections of a number of lines which are all- supposed to.pass through the same point. Another
example of repeatability error is the case where
two or more lines are spaced close together.
The lines may touch or even cross if the repeatability is poor. Although this type of error
may be aesthetically less troublesome than poor
repeatability at intersections and at closing
points of circles, it would be important if a user
were trying to evaluate positions of edges of
parts which, are to fit together.
It has been observed that it is the natural

tendency of the human eye to notice the worst
case of repeatability on recorded output even
if all the remainder of the drawing represents
high-quality output in terms of repeatability
and accuracy. The width of the lines affects
the aesthetic appearance of the output. The
observer immediately spots repeatability errors
at the junction of thin lines while the same
errors with thicker lines are overlooked. Since
thin lines are normally more desirable on recorded output, some compromise is frequently
required.

Stability and Repeatability
To the user of DAC-I image processing
equipment, stability means freedom from drift
of analog components including power supplies
and deft.ection circuitry. This specification is
important since it is essential in maintaining
constant raster shape and size on a recorder
and scanner CRT. Accuracy can be improved
by calibration procedures, if and only if the
hardware stability is such that the calibration
runs can be spaced at practical intervals of
time. A practical interval of time might be approximately one hour unless some form of automatic calibration is provided.
Repeatability is the degree of capability of
the hardware to exactly duplicate an output

Figure 2-1. Circle Pattern for Demonstrating
Repeatability.

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

The pattern in Figure 2-1 has proven to be
excellent in showing the limit of the recorder
repeatability for quick approximations. The
errors in the closing of the circles can be observed in terms of line widths and then converted to per cent of image size. The maximum
repeatability error for the circles, for instance,
might be approximated at one line width.
Repeatability is also an important factor in
scanning operations. In line tracking, repeatability is particularly important when input lines
have small changes in curvature ·and the positions of inflection points are important. Repeatability errors also put a limit on the effectiveness of calibrating for improved accuracy.
Experience has shown that the effective repeatability of the scanner can be improved by
repeated scanning at a given region and then
averaging the results of these several scans.
However, this does not eliminate repeatability
errors, but merely reduces the magnitude of
the errors when using the scanner.

Line Width and Intensity
Recorder line width must be defined in terms
of measurements on micro-densitometer recordings from the output film. The width of the
line is arbitrarily defined as the width of the
line at the mean light transmission level vrhere
the mean is the average of the film background
light transmission and the transmission at the
peak of the line. Use of the microdensitometer
gives a numerical measurement of the line
width independent of human· observation. Line
intensity of recorder output film is defined as
the optical density of a line at the center point.
Variations in the optical density and line
width are very noticeable to users of the image
processor recorder. Line density and thickness
variations with vector length frequently result
in short vectors having a greater density than
the longer vectors. This is particularly objectionable in areas of a drawing where information in the form of sharply curved lines is concentrated. In this case,' sharply curved lines require many short vectors with a corresponding
high density and loss of fine detail. In addition,
small alphabetic characters, normally readable,
may become illegible when line width and intensity are out of adjustment for short vectors.
Variations in line density and width with vec-

381

tor direction and position has also proven to be
very noticeable to the equipment users. Even
if drawings are made accurately with only
small repeatability errors, poorly controlled
line widths and peak densities will make the
recorded output look poor.
The pattern of Figure 2-2 was generated by
a program that has proven excellent in testing
for the conditions mentioned above. The position, direction, and lengths of the vectors
were selected at the graphic console to show
how uniform the line widths and intensities are
over a wide range of these parameters.

Film Processing Time
It has been observed that any time an operator has nothing to do, or no drawings or displays to review, a forced delay of one minute
or even half a minute becomes annoying. Even
though the rapid film processor develops, fixes,
rinses and dries film at a rate of approximately
one frame every three seconds, a minimum of
25 seconds is required to process the first frame
plus three seconds for each additional frame.
Whenever practical, the graphic console operator should be given a choice of other functions to perform while film is being processed
for the best man-machine interaction, at least
until film processing speeds increase by another
order of magnitude or some other more rapid

Figure 2-2. Intensity Control Pattern for Demonstrating Line Intensity and Width Conditions.

382

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

form of static image documentation is available.

Scanner Sensitivity
The sensitivity of the scanner is defined by
the thinnest line the scanner can consistently
detect and the range of thresholds for this detection. Typically, the scanner, using the paper
input facility, can consistently detect lines .01"
wide (on the 22 x 22 inch paper) over a range
of three thresholds.
A considerably more complex algorithm can
be used to define the sensitivity of the scanner
over a range of line and background densities.
This is essential for determining which photographic images can be expected to be scanned.
A simple definition and measuring technique is
necessary, however, for determining the hardware sensitivity.
Figure 2-3 shows what is displayed on the
graphic console within two minutes after the
start of the sensitivity test. This display demonstrates to the user that lines nominally 9.8
raster units wide (referred to the 0-4095 raster
unit image) can be detected over a range of
17. thresholds. It further points out the line
thickness that one may expect at each of the
threshold levels. It is now standard practice
to test the equipment daily using test programs
which are highly application oriented and

which can analyze the equipment and display
the results for immediate review by the maintenance engineers or by users of the equipment.

TEST PROGRAMS
I t is no small task to define the exact performance status of electronic systems which
are comprised only of digital components. It is
still harder to define the status of electromechanical units. In the first instance, it is the
complexity of the system that causes the difficulty even though the system operates at a
discrete level for performance evaluation. In
the second case, the mechanical positioning involved may result in a series of discrete levels
that must be evaluated. Defining the performance level of an analog-digital-mechanical system such as the image processor is still more
difficult because of the continuous range of the
operational status which is biased by the discrete digital-mechanical levels. Test programs
which are understood and used by botl~_ the
maintenance people and the operators of the
equipment have proven essential in obtaining
the maximum performance from the equipment
for the operator and computer time involved.
Hardware test programs for the DAC-I system have been written primarily for the scanner and the recorder. The recorder programs
basically provide a variety of test patterns to

Figure 2-3. Scan Sensitivity Test Program Display.

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

show recorder repeatability, accuracy, line intensity, width and smoothness. The patterns
are selected to demonstrate dramatically each
characteristic to be tested. This frequently allows preliminary evaluation at the projection
station. Detailed evaluation is made with test
instruments when necessary. Test programs
for the scanner include the program for line
sensitivity described earlier, line resolution,
threshold characteristics and scanner and recorder accuracy and repeatability.

383

on its surface. The locations of all the intersections have been previously stored in the
computer. The grid is exposed onto film through
the paper input station, processed, and moved
to the scan station.

With a man-machine console, test programs
should include the following features:

Before executing a complete scan of the grid,
a preliminary scan for the four-corner crosses
and the center cross is made. (See Figure 2-4)
This allows the operator to check the image
size and the optical alignment of the system and
insures that the entire image to be scanned is
aligned optically and electronically within the
scan raster.

1. rapid measurements
2. rapid editing of the measured data so
that only a small amount of important
information will be displayed
3. rapid display of results
4. options to record results on film
5. pictorial rather than numeric display of
measurements when requested
6. options for conventional printout
7. facilities to easily change and display program parameters.

Figure 2-5 shows the type of alphanumeric
information displayed after scanning every grid
intersection and comparing the scanned itersection locations to the reference values. Here
a large amount of data has been condensed to
a few numbers giving the most pertinent information about the raster size and linearity of
the raster. This reduces the question of acceptability of the machine to a matter of comparing the numbers on the graphic console to
figures which are previously defined to be acceptable.

Permanent records of test program results
are kept to monitor and signal when a longterm decrease in hardware performance should
be corrected. These records also aid in the
evaluation of changes in the hardware.

For diagnostic purposes, the information
shown in Figure 2-6 is most useful. The errors
associated with each point are magnified by a
factor and added to the reference points to
produce an exaggerated representation of the
non-linearity and size of the raster (see Figure
2-6. This graphic presentation shows the nonlinearity of the raster size and shape. A numerical figure for scanner repeatability is displayed by the calibration program if repeated
scans of the grid pattern are executed.

Sometimes adjustments or changes are made
that result in a temporary improvement in the
quality of the hardware. The test program results, when analyzed over a period of time,
show if the change corrected a problem o~
merely adjusted around it temporarily. To illustrate some of these desirable characteristics
of test programs, we will outline as an example
the main features of the calibration test program for scanner and recorder accuracy.
The calibration test program uses the scanner to measure the nonlinearities of both the
scanner and recorder caused by electronic and
optical effects. The magnitudes and positions
of these non-linearities are displayed for immediate review and stored for later calibration of
both scanner input data and output recordings.

Experience has shown that test programs
such as the calibration program have been able
to define scanning status before actual digitizing begins and have maximized the usefulness
of the scanner operation. Programs like the
calibration program are also valuable in separating hardware deficiencies from errors in
new programs; that is, if new programs fail
but the test programs run normally, then it is
likely that the new programs are either in
error or expecting too much from the analog
hardware.

The reference for linearity and size measurements is a metal plate with grid lines inked

The calibration program illustrated above
has resulted in improved scanning and record-

384

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 2-4. Corner and Center Crosses on Scan Program.

ing to the extent of nearly one order of magnitude. The hardware has proven itself sufficiently stable to allow a significant improvement
in scanner accuracy by a calibration procedure
which uses the error data measured by the test
program.

scanner errors and stored for calibration by
recording programs. Two of the most important values of these GM test programs are that
they provide a good overall test of the system
and they are oriented to evaluating the user's
requirements.

The recorded output can also be calibrated to
show a significant improvement in accuracy.
The scanner is used to scan recorded output
and the errors of the recorder raster relative
to the scanner raster are then modified by the

SUMMARY
The IBM 7960 Special Image Processing System was designed and built by IBM to specifications provided by the General Motors Re-

Figure 2-5. Scanner Accuracy and Raster Size.

MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM

385

Figure 2-6. Accuracy Errors Multiplied by a Constant.

search Laboratories. The system is the manmachine and image processing hardware for
the GM Research DAC-I system.
The design shows how the functional requirements for an image processing system were implemented to achieve a new type of computer
input-output system. The components were
chosen for characteristics that ·were compatible
with digital computer speed and accuracy.
Technologies normally foreign to computer
technology were successfully integrated by
careful consideration of the interface between
components and the effect of each component
on the total system performance. Some of the
features of the new hardware system such as
the high resolution, the excellent accuracy and
the rapidly processed film for pictorial input
and output have been extensions of the state of
their respective arts. These features have also
indicated the necessary quality and speed for
a graphical machine to interact with a man in
the iterations of a design cycle.
The hardware has proven to be valuable as
a laboratory tool for the analysis of equipment
required in an online computer aided design
facility.
The use of image processing equipment in a
computing facility has also pointed out some of
its interesting operational characteristics. The

digital program-analog response characteristic
of the hardware makes system testing and
status documentation a necessary part of operational procedures. In addition, programming techniques that improve the apparent performance of the hardware must be used. Manmachine programs such as the calibration program described in this paper have proven to
be a solution to these requirements.
REFERENCES
1. JACKS, E. L., "A Laboratory For The Study
of Graphical Man-Machine Communication," Proceedings Fall Joint Computer
Conference, San Francisco, California, Oct.
1964, (this volume).
2. COLE, M. P., DORN, P. H., LEWIS, C. R.,
"Operational Software In a Disc Oriented
System," Proceedings Fall Joint Computer
Conference, San Francisco, California, Oct.
1964, (this volume)
3. ALLEN, T. R., FOOTE, J. E., "Input/Output
Software Capability For a Man-Machine
Communication and Image Processing System," Proceedings Fall J oint Computer
Conference, San Francisco, California, Oct.
1964, (this volume).
40 KRULL, F. No, FOOTE, Jo E., "A Line Scanning System Controlled From an On-Line
0

386

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Console," Proceedings Fall Joint Computer
Conference, San Francisco, California, Oct.
1964, (this volume).
5. LAZOVICK, P. B., TROST, J. C., REICKORD,
A. W., GREEN, R. S., "A Versatile Man-Machine Communication Console," Proceedings
(1961) Eastern Joint Computer Conference,
Washington, D.C., Volume 20.

6. STOTZ, R., "Man-Machine Console Facilities
For Computer Aided Design," Proceedings
(1963) Spring Joint Computer Conference,
Detroit, Michigan, Volume 23.
7. LICKLIDER, J. C. R., "Man Computer Sym·
biosis," IRE Transactions on Human Fac·
tors in Electronics, Volume HFE, March
1960.

INPUT/OUTPUT SOFTWARE CAPABILITY FOR A
MAN-MACHINE COMUNICATION AND IMAGE
PROCESSING SYSTEM
Thomas R. Allen and James E. Foote
Research Laboratories. General Motors Corporation, Warren, Michigan

INTRODUCTION
Consistent with the design objectives of the
General Motors Research Laboratories DAC-I
(Design Augmented by Computers) project,t
the IBM 7960 Special Image Processing System
has· extensive input/output (I/O) capabilities.3 ,4 In order to facilitate the programmed
control of this new hardware, the NOMAD and
MAYBE programming languages were developed. 2 However, while these languages provided
the programmer with an effective . means of
controlling the new hardware, they offered
little assistance in meeting the hardware data
format requirements. The programmer still
would have had to convert his output information from his own internal format tb the output
format required by the hardware. Similarly,
all input from the hardware would have had to
be converted by the programmer back to a form
suitable for his own use. Moreover, these conversion processes are typically very involved
and complicated. In short, the programmer was
still not in a position to make easy, efficient,
and flexible use of the I/O capabilities of the
new hardware system. Thus, the need to provide a layer of general purpose I/O software
between the programmer and the hardware was
very apparent.

hierarchy is a set of very basic utility codes.
These include numeric-to-BCD (binary coded
alphanumeric information) conversion routines, BCD-to-vectors character generation
routines,5 simple display and recording routines,
and basic film train operation codes, all of
which permit the programmer, if he so desires,
to operate very close to the basic hardware
without having to understand ali of the intricacies of the hardware's operation. Each of these
basic codes represents an implementation of
only a very small facet of the total I/O capability but, as such, serves as a building block
for subsequent level codes in the hierarchy.
These higher level I/O utility codes are progressively more inclusive in their total I/O
capabilities and, at the same time, relieve the
user of the task of dealing with the hardware
on its own terms.
This effort to develop an I/O software capability was not designed to culminate in one
single all-inclusive routine. Rather, the aim
was to produce a set of sophisticated, general
purpose, problem oriented subroutines and
source languages statements, each of which
would serve as a powerful tool in the utilization
of the various I/O capabilities of the new hardware. The body of this paper describes five
representative utility subroutines, three source
language I/O statements, and some typical examples of their application.

The effort to develop a general purpose I/O
software capability resulted in a hierarchy of
utility routines. At the lowest level of this
387

388

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

UTILITY SUBROUTINES
This section describes five different tasks and
the I/O utility subroutines which were developed to meet their requirements. The basic
problem associated with all of these tasks is
that of requesting various types of information
from the graphic console operator. Hence, the
emphasis is on the implementation of the various input devices associated with the graphic
console .. The graphic console di~play CRT
(cathode ray tube) is used to indicate what
type of information is required.

Alphanumeric Input
Subroutines names, variable names, titles fOl'
recorded film output, etc. constitute one type of
information frequently required from the

graphic console operator. This information is
most conveniently handled by the programmer
in the form of BCD character strings. Thus, the
task here was to provide a facility for requesting and accepting these strings. Two input devices are appropriate: the alphanumeric keyboard and the card reader (see Figure 1).
In addition to the primary requirement that
the I/O. subroutine for this task be simple for
. the programmer to use, two other requirements
were felt to be important. First, there was the
need to give the graphic console operator immediate feedback which would permit him to
verify that each character has been entered
correctly. Concomitant with this was the need
to provide the operator with a means of correcting erroneously entered characters.

*
\

C

0

.....

A-

,

H

•

N

•

2

!

8

J
"...

E
5

K

e

Q
\(.

W

Figure 1. The 7960 Alphanumeric Keyboard and Card Reader.

INPUT/OUTPUT SOFTWARE CAPABILITY

The subroutine RINSE (Request for INformation SubroutinE) was developed for this
task. To use this subroutine, the programmer
specifies three items of information: (1) the
symbolic name (i.e., location in core) of an
array which contains the request message in
BCD format, (2) the maximum number of BCD
characters which the operator is allowed to enter, and (3) the symbolic name of an array in
which to store these characters. Figure 2 shows
a typical set of source language statements for
utilizing the RINSE subroutine. The DIMENsIoN declaration is used to reserve space for
an array at compile time. The VECTOR
VALUES declaration is used to preset an array
(Le., vector) at compile time. The EXECUTIVE statement generates a call to a subroutine.
In Figure 3 the request message in the example above is shown as it would appear on the
display CRT upon the execution of RINSE.
Assume that the graphic console operator
wishes to enter the subroutine name: ABC. At
this point, the operator can either type in the
subroutine name at the alphanumeric keyboard
or insert a card in the card reader. If he elects
to type in the name, each character will be
added, one at a time, to the display. If he inserts a card in the card reader, characters will
be added to the display sequentially as they are
read from the card. The console operator can
intermix these two modes of input. Figure 4
shows the display as it would appear after the
subroutine name has been entered.
The operator can delete the last character in
the string by depressing the BACKSPACE key
or delete the entire string by depressing the
RESTART key (see Figure 1). He may then
enter more characters. In this manner, erroneous characters may be corrected. Once the input is satisfactory, the operator depresses the
END key, the display is terminated and the
BCD character string is passed back to the
calling program.

Figure 2. Source Language Statements for the RINSE
Subroutine.

389

Figure 3. RINSE Subroutine Display.

Numeric Input
Another type of information which the programmer may require from the graphic console
operator is numeric data. The task here is one
of providing a facility for initializing and/or
modifying data variables. Two subroutines
were developed to meet this requirement. The
difference between these two routines stems
from the hvo basically different 'ways in which
data variables can be defined: as elements of an
array or as a set of distinct variables vlhich
may be widely scattered throughout memory.
In the first case, each variable is referenced by
giving the name of the data array and the subscript of the particular item. In the second case,
each variable has its own unique name.

Figure 4. RINSE Subroutine Display.

390

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

In addition to the three task requirements
mentioned in connection with the RINSE subroutine (i.e., ease of use, visual feedback to
permit verification, and an error correction procedure) there was the additional requirement
that the operator be· able to enter numeric data
in either floating point, integer or octal mode.
For this task, the only input device which has
been implemented is the alphanumeric keyboard.
The subroutine SETDA (SET up Data Array) permits the inspection and modification of
items in a data array. To use SETDA, the programmer specifies four items of information
(see Figure 5) : (1) the BCD name of the data
array, (2) the length of the data array, (3) the
symbolic name (i.e., location in core) of a second array which defines the mode (integer,
floating point or octal) of each item in the data
array, and (4) the symbolic name of the data
array. If each item in the data array has the
same mode, the mode need only be specified
once for the whole array.
Figure 6 shows the display which will be generated upon execution of SETDA, as indicated
in Figure 5.
At this point, the operator can modify the
value of the current item, step the display to
the next item in the data array, define the subscript of any item in the data array which he
wishes to see displayed next, or terminate the
subroutine.
The operator enters a new value for the current data item by using the alphanumeric keyboard. The visual feedback and error correction
procedures are identical to those described for
the RINSE subroutine. Figure 7 shows how
the display would appear during this process.
The operator can cause the new value of 27 to
be stored in DATA (0) by depressing the END
key.
V~~TOR

VALUE~

NA~E

VECTOR VALUFS DATIII

!:':xrCUT':::_ SFT[)A. (NAME

Figure 5.

= ~CATAII
:: 2.3.-1.77K

.~hfJ,ODE

.DATII I )

Source Language Statements for SETDA
Subroutine.

Figure 6. SETDA Subroutine Display.

If the operator tries to store a number of the
wrong mode, the display changes to that shown
in Figure 8.
If the operator wishes to step the display
(Figure 6) to the next item in the data array,
he depresses the alphanumeric key labeled","
and the upper portion of the display changes
appropriately. If, on the other hand, the operator wishes to "move" the display directly to any
item in the data array, he first depresses the
"=" key. The display then changes to that
shown in Figure 9 and the operator enters the
subscript of the desired item.
If the operator tries to enter a subscript
which is too large, the display changes to that
shown in Figure 10.
Control is returned to the calling program
when the operator depresses the END key from
the display indicated by Figure 6.
The second subroutine (SETPAR) developed
to facilitate numeric input permits the inspection and modification of a set of distinct data
variables. The programmer uses this subroutine in essentially the same manner as SETDA.
However, the format in which the current
status of the data variables is displayed was
altered in an attempt to gain insight and experience in the presentation of information. The
information display technique used by the
SETDA subroutine can be characterized as the
"player-piano" approach: the data items appear
as if they were listed sequentially on a long
strip of paper which is being moved back and
forth past a one-item viewer under the opera-

INPUT/OUTPUT SOFTWARE CAPABILITY

ENTER

VALUE

391

SF

NEW SUSSeR I PT

Figure 9. SETDA Subroutine Display.

Figure 7. SETDA Subroutine Display.

tor's control. SETPAR uses a "page" approach
as the information display technique. This technique treats the data variables as if they were
listed, up to 16 to a page, in a loose-leaf notebook. As each "page" is presented to the
graphic console operator, he has the options of
modifying the values of any data items listed
on that page, turning to the next "page", or
"closing the book" (Le., terminating the subroutine) .
Figure 11 shows a typical "page" display.
If the operator wishes to change the value of
any data variable in the displayed list, he uses

TH[

CURRENT

DATA1
I

ITEM

the alphanumeric keys labeled" t " and" t " to
move the pointer to the desired data item and
then enters the new value of this item using
the alphanumeric keys exactly as in the SETDA
subroutine. To "turn the page" the operator
depresses the "," key and to terminate the subroutine he hits the END key.

Positional Data Input
Since the GM Research Laboratories DAC-I
system was developed specifically to investigate
the field of graphic data processing, it was
necessary to provide a capability for presenting
the graphic console operator with a display of
graphic information and receiving positional
input from him relative to this display. The
position indicating pencil provided the basic
hard,vare capability necessary to meet this
need. The requirements for this task were: (1)
to display the graphic information specified by
the calling program, (2) to determine the position of the pencil relative to this display, and
(3) to return this position to the calling program when the pencil was removed from the
screen .

IS

0)

(

TS CURRENT

VALUE

IS

2
I T8

M9DE

IS

------------------ILLEGAL M90[, TRY

AGA IN

. Figure 8. SETDA Subroutine Display.

Figure 10. SETDA Subroutine Display.

392

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

12

DATAl
DATA2

I
I

1

CATA3
DATA4

3.14159
=
1a
DATAS =212223242526
DATAS =000000010000
DATA7
41
DATA8
0
DATA9 =000000000000
DATA10=OOOOOOOOOOOO
DATA11=
0
O!\TA12=
DATA\3=
DATA14=

0
0
0

D~TAi5=000000000000
D~TA18=OOOOOOOOOOOO
----

F
F
K
K
I
F
K
K

F

I
F
I

K
K

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

~\~
I,

:.,

KEY

18 lURN

PAGE.

c..ND KEY WHEN 08NE.

Figure 11. SETPAR Subroutine Display.

Because of the very general nature of graphic
information, no attempt was made to assist the
programmer in formating his display. To increase the flexibility of the I/O utility subroutine designed for this task (PEN2) an option
was added which allows the graphic console
operator to terminate the display by depressing
either an alphanumeric key or a program control button. In any case, however, the calling
program is fully informed as to the condition
which terminated the display.
Figure 12 shows the source language statement necessary to execute PEN2. The 2nd and
3rd arguments define the location and size of
the array containing the graphical information.
The 4th argument describes the condition \vhich
terminated the display. The 1st argument provides information pertaining to the pencil.

numeric key, a program control button, or bring
the position indicating pencil into contact with
the display CRT. If a key or button is depressed, the display is immediately terminated
and control passes back to the calling program.
If the pencil is touched to the screen, a small
cross appears superimposed on the display. This
cross defines the position of the pencil relative
to the display and provides the operator with
visual feedback. The visual feedback is particularly important here because of severe parallax
problems. If the pencil is moved across the
screen, the cross will follow. When the pencil
leaves the screen, the display is terminated and
the last location of the cross is returned to the
calling program. Figure 13 shows the pencil
being used to point to a region on a grid.
This subroutine has proven to be very flexible
and easy to use, resulting in a wide variety of
applications. One such application of PEN2
was in the development of a higher level I/O
utility subroutine permitting the entry of decision type information.

Decision Information Input
The task associated with the entry of decision
information is to present the graphic console
operator with a set of possible actions available
to the controlling program and to allow him to
select an ordered subset of these actions.
The I/O subroutine CHOICE was developed
for this task and requires three items of information from the calling program: (1) the number of alternatives to be presented, (2) the
symbolic name (i.e., location in core) of an

Upon execution of PEN2, a display of the
specified information begins. At this point, the
graphic console operator can depress an alpha-

FXFCUTE PEN2.cPEN,ARRAY,SIZE,RETURN)

Figure 12.

Soul'ce Language Statements for PEN2
Subroutine.

Figure 13. Positional Input Via the PEN2 Subroutine.

INPUT/OUTPUT SOFTWARE CAPABILITY

array containing the' BCD messages describing
the alternatives, and (3) the symbolic name of
an array provided for the list of selected ,alternatives (see Figure 14).
"
The execution of this subroutine begins with
a display of the alternatives, as shown in Figure 15.
The operator may now select his first alternative by pointing to the appropriate field with
the voltage pencil and then removing th~ pencil
from the screen. Immediate visual verification
of the choice is provided by the digit 1 at the
right hand side of the selected field as shown
in Figure 16.
.
The operator proceeds in this manner to complete his, selection of the desired alternatives.
When he is done, he selects the field labeled
"DONE" and control is returned to the calling
program.' If the operator makes a mistake or
cha.nges his mind, he can "erase" his last selection by selecting the field labeled BACKSPACE.
SOURCE LANGUAGE STATEMENTS
In the first section of this paper, five subroutines were described which are representative of a class of subroutines whose primary
objective is to facilitate the on-line input of
various types of information. In the following
section, we describe three source language
statements which provide the programmer with
the capability of generating various types of
on-line output in an easy, efficient, and flexible
manner. In the development of these statements, an effort was made to conform (insofar
as possible) to' the precedents established by the
normal I/O source statements appearing in the
NOMAD language. It was felt that, in so doing, the resulting statements would be much
easier for the programmer to use.

Display Format Statement
"DISPLAY FORMAT" was designed to permit the programmer to use the graphic console

EXECUTE

CHOICE.(ALT~RS.5.SFLFCT)

THIS SPACE

IS

ALLeTED T9 THE
FIRST ALTERNATIVE
---------------------TH I S SPACE IS
ALL8TED T9 THE
SEC9ND ALTERNATIVE
---------------------THIS SPACE IS
ALL8TED T9· THE
THIRD ALTERNATIVE
---------------------THIS SPACE is
ALL8TED T9 THE
F8RTH ALTERNATiVE
---------------------THIS SPACE IS
ALL8TED T8 THE
FIFTH ALTERNATIVE

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

BACK SPACE
Figure 15. CHOICE Subroutine Display.

display CRT in ,llluch the same way as the online printer was used in "the good old days."
The implementation of this "on-line print"
capability provides the programmer with a very
convenient· way of presenting a wide variety
of information to the graphic console operator.
The maximum amount of information which
can be displayed by DISPLAY FORMAT (i.e.,
its unit record) is 480 characters. These 480
available character positions are in the form
of 20 lines on the CRT with 24 character positions per line.

THIS SPACE IS
AlLeTED T9 THE
FIRST ALTERNATIVE
---------------------TH I S SPACE IS
ALL9TED T9 THE
SEC9ND ALTERNATIVE

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

SPACE IS
ALL9TED T9 THE
THIRD ALTERNATIVE
---------------------THIS SPACE IS
ALL6TED T9 THE
F8RTH ALTERNATIVE
---------------------THIS SPACE IS
ALL6TED T6 THE
FIFTH ALTERNATIVE
-------------------------THIS

BACK SPACE
Figure 14. Source Language Statement for CHOICE
Subroutine.

393

Figure 16. CHOICE Subroutine Display.

394

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

The DISPLAY FORMAT statement has a
list and a format associated with it. The list
gives the values and items to be displayed and
the format gives the display pattern to be used.
The format is composed of a sequence of format specifications of the form CWo The character C is the control character and defines the
type of operation or conversion to be performed. In general, 1,0 refers to the number of
character positions associated with the operation defined by C. If, in any format specification, the field width 1,0 is zero, that format specification and its associated list item (if any)
are ignored.
There are three types of format specifications
available for the conversion of numeric data.
Octal and decimal integers are generated by
using the Kw and Iw specifications respectively.
The F'lO specification provides for floating point
variables which will be displayed as either floating point decimals (e.g., .2E-3) or fixed point
decimals (e.g., .0002) depending on which form
produces the fewest characters for display.
There are two types of format specifications
available ,foT,the conversion of BCD information. The A 10 specification is identical with
that used in other NOMAD I/O statements. In
particular, one word ·(six .characters) will be
picked up from the list and right justified or
truncated on the right, depending on whether
w > 6 or w < 6. The Hw specification differs
from ordinary I/O statement usage in that the
Hollerith information is specified in the list
rather than in the format.
The specification X 1,0 provides 1,0 blanks in the
display. The specification /1,0 results in a downspace of 1,0 lines. An automatic downs pace of
one line results when the number of characters
on a line reaches 24. The specification Pw (1,0
has no particular significance in this case unless it is 0) resets the current character position to the first character position of the first
line. This specification has proven very useful
when putting out columns of information which
comes from several different arrays in memory.
The specification Rw causes the succeeding
portion of the format to be repeated, if necessary, until the list is exhausted (1,0, again, has
no particular significance unless it is 0). If the
specification Rw does not appear anywhere in

the format, the entire format will be repeated
until the list is exhausted.
The form of the "DISPLAY FORMAT"
statement and a sample format is shown in
Figure 17.
Perhaps the most radical departure of the
DISPLAY FORMAT statement from standard
NOMAD I/O statements involves the use of its
second "argument" (i.e., the item called 1NOUT
in Figure 17) .
INOUT will, in general, be the first cell of a
short array in which the program using D1SPLAY FORMAT can:
a) specify the status light configuration during and upon termination of the display,
b) specify the input devices which the
graphic console operator will be permitted
to use in terminating the display.
c) receive a description of the condition
which caused the termination of the display.
The graphic console display shown in Figure
18 corresponds to the DISPLAY FORMAT
statement of Figure 17.
Because of its flexibility and ease of use, the
DISPLAY FORMAT statement has been a
valuable aid in the development of a cooperative
man-machine problem-solving system.

Record Format Statement
The RECORD FORMAT statement provides
a means of producing hard copy alphanumeric
output through the use of the recording feature
of the image processor. The form of the RECORD FORMAT statement is identical to that
of DISPLAY FORMAT (i.e., RECORD FORMAT FMT, INOUT, Ll, L2, L3, ... ). RECORD
FORMAT recognizes all of the format specificaVECTOR VALUES LJ

= $C~O~S

VECTOR VALUES X

= $X$

VFC':TOR VALIIFc:. V

= $V$

VECTOR VALUES LEVEL

LOCATIONS$

= $LEVEL$

=

VECTQQ VALUES FMT
$(X5.H15./1.X3.HM.X4.F6./1.
1 X7.Hl.XS.Hl.X3.HS.R5./1.X5.14.X2..14.X4.12)$
DISPLAY FORMAT FMT.INOUT.Ll.DATE.TIME.X.V,LEVEL.
1 DATA (1 1. . . DATA(\51

Figure 17. Source Language Statements for DISPLAY
FORMAT.

INPUT/OUTPUT SOFTWARE CAPABILITY

CROSS LOCA T IONS
06/24/54
20 17 . 4

X
205
]955
189
]9JJ
2083

Y
, 79
215
J943
J950
2055

LEVEL
I I
I I
I I
f I
t 5

Figure 18. Application of DISPLAY FORMAT.

tions and conventions used by DISPLAY FORMAT.
The unit record for RECORD FORMAT is
12,000 characters per film frame. These 12,000
available character positions are in the form of
100 lines of 120 character positions each.
With RECORD FORMAT, INOUT is a single
cell and is used by the calling program to
specify the desired film train operations associated with the recording. Appropriate bytes in
INOUT define which film train is to be used,
how many frames are to be advanced before
and after the recording is performed, and when
developing of the film frame is to occur (if at
all) .
RECORD FORMAT enables the programmer
to use the image processor as he would use an
off line printer with the added advantage that
his turnaround time is measured in minutes
rather than hours. The output can be developed
immediately and moved to the project station
of the image processor for on-the-spot review
and then placed on an aperture card for hard
copy reproduction. The hard copy output is
very similar to that produced by an IBM 1403
printer.

Generate Format Statement
The DISPLAY FORMAT and RECORD
FORMAT statements enable the programmer
to easily produce alphanumeric output. However, it is frequently necessary to produce either
displays or recordings which contain a combination of grap,hic data and alphanumeric characters of different sizes (see Figure 19). In
addition, it is desirable to have the capability
of altering a small part of a display without
having to regenerate the whole display. The
value of such a capability is best illustrated in

395

the operation of the CHOICE subroutine (see
Figures 15 and 16). The GENERATE FORMAT statement was specifically designed to
meet these needs.
With respect to formats, input lists, and
statement form (i.e., GENERATE FORMAT
FMT, INOUT, Ll, L2, L3, ... ), GENERATE
FORMAT is identical to the previous two statements. However, instead of producing output
directly (as is the case with DISPLAY FORMAT and RECORD FORMAT), GENERATE
FORMAT provides the programmer with the
array of CRT coordinates needed to produce a
display of the alphanumeric information. In
addition, GENERATE FORMAT enables the
programmer to specify character size and line
spacing (i.e., the user can define his own unit
record) .
By executing GENERATE FORMAT several
times with different unit record specifications
and combining the resultant arrays of CRT coordinates with an array of coordinates representing graphic data, the programmer can,
through the use of a basic display or recording
subroutine, produce output of the type shown in
Figure 19.
{The special reatures or GENERATE FORMAT were utilized in the I/O utility subroutines SETDA, SETPAR, and CHOICE to
quickly and efficiently produce sequences of displays in which only portions of the basic display are altered. For instance, Figure 16 can

Figure 19. Application of GENERATE FORMAT.

396

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

be produced from Figure 15 simply by adding
the three coordinate pairs necessary to generate
the character 1 to the large coordinate array
for the basic display.
The DISPLAY FORMAT and RECORD
FORMAT statements provide the programmer
with an easy and efficient method of utilizing
the output capabilities of the 7960 system. The
GENERATE FORMAT statement rounds 'out
the output software package by providing the
additional flexibility needed to handle the situations described above.
SUMMARY
Any attempt to implement a system which
stresses cooperative man-machine interaction
must concern itself primarily with the problem
of man-machine communication. Furthermore,
the man-machine communication will typically
take place in a wide variety of situations and
at many levels of problem discourse. Attempts
to define all possible communication situations
and develop specific programs for each will lead
to a tremendous amount of redundancy and
duplication of effort. It is possible to avoid this
problem by realizing that all man-machine communication must pass through the I/O hardware interface. Thus, by providing an extensive, flexible, and powerful I/O software capability, the presence of the hardware interface
need not concern the programmer and he can
devote his whole attention to the more significant aspects of man-machine communication.
The software described in the body of this
paper has proven to' be an immensely powerful
tool which has enabled programmers to rapidly
design and evaluate the wide variety of communication techniques necessary to any manmachine problem-solving system.

ACKNOWLEDGEM~NTS '

The" material'described' in this:p~wr is'not
solely thew:ork of the~uthors,. Significant contributions, 'were 'made, by other' members of the
programming staff.' In',p~rticular,'; we would
like to ,acknowledge the contributions 'of 'C.
Richard Lewis, of' the Computer Technology
Department, GM Research Laboratories, and
Martin Weinrich. *
REFERENCES
1. JACKS, E. L., "A Laboratory for the Study
of Graphical Man-Machine Communication," Proceedings Fall Joint Computer Conference, San Francisco, California, Oct.
1964, (this volume).
2. COLE, M. P., DORN, P. H., LEWIS, C. R.,
"Operational Software in a Disk Oriented
System," Proceedings Fall Joint Computer
Conference, San Francisco, California, Oct.
1964, (this volume).
3. HARGREAVES, B., JOYCE, J. D., COLE, G. L.,
Foss, E. D., GRAY, R. G., SHARP, E. M.,
SIPPEL, R. J., SPELLMAN, T. M. , THORPE,
R. A., "Image Processing Hardware for a
Man-Machine Graphic Communication System," Proceedings Fall Joint Computer Conference, San Francisco, California, Oct.
1964, (this volume).
4. KRULL, F. N., FOOTE, J. E., "A Line Scanning System Controlled from an On-Line
Console," Proceedings Fall Joint Computer
Conference, San Francisco, California, Oct.
1964, (this volume).
5. FREEMAN, H., "On the Encoding of Arbitrary Geometric Configurations," IRE
Transactions on Electronic Computers,
June, 1961.
* Now at the Univerf'ity of Michigan.

A LINE SCANNING SYSTEM CONTROLLED FROM AN

ON-LINE CONSOLE
Fred N. Krull and James E. Foote
Research Laboratories, General Motors Corporation, Warren, Michigan
INTRODUCTION
Direct graphical input is one of the newest
and most exciting sources of digital computer
input. Programming techniques and hardware are beginning to appear which are
designed to automatically process graphic information. l , 2, ·3, 4 This paper describes an experimental system which has been designed to
facilitate the digitizing of line images. The
equipment which is used for this purpose is an
IBM 7960 Special Image Processing System,
consisting of graphic console, image processor,
and a modified data channel. 7 The image processor (Figure 1) contains a programmable
Cathode Ray Tube (CRT) scanner, a CRT recorder, a 35mm camera, and film processing
equipment.

versatile, and accurate method for converting
graphical data to digital form. While it provides only for the digitizing of lines, a natural
outgrowth of the work will be a library of pattern and character processors to be used by programmers in much the same manner as card
and tape input/output (I/O) routines are used
now.
The application requirements of the DAC-I
project dictated that one of two approaches be
used for the analysis and processing of a two
dimensional graphical form:
a) Algorithms are specified which prescribe
the rules for analyzing a graphical image.
This approach assumes a structure for
each characteristic image, and relies upon
the availability of individual pattern processors to detect image components.
b) No fixed structure is assumed for the input document. Minimal restrictions are
placed on image quality only. Emphasis
is placed upon providing elementary
functions which an operator may call
upon and combine in order to process a
complex form. All decision capability
and selection of functions is left to the
operator who is controlling the scanning
device from an on-line console.

The graphic console (Figure 2) contains devices to communicate with the operator and to
control the image processor.
Both of these devices are tied directly to a
computer via a modified data channel.
The principal objective of this portion of
DAC-I (Design Augmented by Computers)
project 5,6,7,8 was to utilize the full capabilities
of the image processor, graphic console, and
digital computer to digitize a variety of line
images to a high degree of accuracy. Program
system objectives dictated that line widths
.05% of image size (.01 inches on 20x20 inch
document) must be detectable to an over-all
system accuracy of ±.05% of image size. Thus,
this system was designed to provide a rapid,

The second approach was selected since at
this point in the project it was not possible to
specify the structure of the large variety of input documents anticipated. We felt, for instance, that the system would be used to digitize

397

398

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 1. Image Processor.

documents ranging from mathematical graphs
to engineering drawings. Therefore, it seemed
advisable to concentrate our efforts on providing a reliable set of basic pattern analyzers.
These elementary functions would then provide
the basis for processing much more complex
forms.
Since the console operator now becomes an
essential part of the scanning sequence, it was
necessary to devote considerable effort to the
problem of man-machine communication. Development of the system has permitted us to
carry out a series of experiments, designed to
discover the best interface between man and
computer. Scanning functions have been made
automatic when practical, but the decision capability of the human operator is still used to best
advantage. Thus, flow diagrams for scanning
functions in many instances contain a block in
which the operator is controlling the selection

of a branch or setting the value of a parameter.
Each situation has warranted an investigation
to answer the question: "Who can perform the
job better-man or machine?"
An essential part of this process was to economically match the speed of the computer with
the speed of man. The solution was to multiprogram a 32K digital computer being used to
process regular compilations and executions
under batch monitor contro!.;;' G A 16K-16K
logical core split was made available for use by
the on-line operation and the batch monitor
programs *. The on-line console operation has
millisecond access to the CPU of the computer
on a demand basis. When use of the CPU is no
longer required, control is returned to the batch
monitor program.

* This configuration has been updated to a 64K memory with a 32K-32K logical core split.

A LINE SCANNING SYSTEM CONTROLLED FROM AN ON-LINE CONSOLE

A dynamic storage allocation system and execution processor 6 occupy almost half of the 16K
memory cells devoted to on-line console operation. The remainder of the core space (approximately 8K) is available for use by the scanning
system programs and data tables. The scanning programs total more than 40K cells, exclusive of memory data tables. Hence, the
dynamic storage allocation scheme is utilized to
overlay subroutines as they are required. The
entire scanning system was written in an algebraic language called NOMAD and a channel
language called MAYBE.6

399

age on the graphic console CRT. Similarly, a
scanning function may display intermediate results by logically depressing the DISPLAY button. Thus, one function may logically depress
other program control buttons. In addition,
while one function is being performed, it may
be advantageous to make other functions optionally available. Thus, function (B) can allow program control buttons (A) or (C) to be
depressed, and subsequently signal the control
program which option has been selected.

All functions are made available to the operator via program control buttons on the
graphic console. There is almost a one-to-one
correspondence between operational capability
and program control buttons. The organization of this type of system is illustrated in
schematic form in Figure 3.

The functions themselves logically fall into
four distinct areas: Film Operations, Scanning
Operations, Display and Review Operations,
and Modify and Store Operations. Each area
presented the same problem; namely, how to
best communicate with the man in order to
perform a specific operation. The variety of
solutions that have been employed are discussed
in the remainder of this paper.

This concept allows the operator to depress a
button and execute a wide range of functions.
Upon completion, the system may return to
standby and wait for the next selection, or each
function may automatically call on other functions. For example, an operator may depress
the DISPLAY button to obtain a graphical im-

FILM OPERATIONS
A line scanning problem will, in general, require more than.one film frame (i.e., more than
one input document) and the user. may wish to
use either the exposure and rapid processing
facilities of the image processor or off-line film

Figure 2. Graphic Console.

400

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 3. System Organization.

which has been pre-exposed and mayor may
not have been processed. During the course of
the scanning operation, the user may at appropriate times wish to record current results on
film either for purposes of verification or to
form a permanent record of his work.
It was therefore necessary to include in this
line scanning system a facility for the console
control of both of the film trains 7 in the image
processor which is shown schematically in Figure 4.

One film train (train B) may be used only
for recording and reviewing output. The other
film train (train A) may be used either for recording or for exposing input documents onto
film and scanning the resulting film images.
Both film trains can process an exposed film
frame in approximately 30 seconds and project
the image onto the 22x20 inch viewing screen.

The 22x22 inch paper input station can accept documents for exposure onto raw film in
train A. Alternatively, pre-exposed microfilm
may be inserted in the supply cassette. Film
transport commands allow the film to be advanced into buffer 1, developed, and advanced
or backspaced into buffer 2 under program
control.
The console operator is provided with several
film functions which make use of these facilities. An exposure processing function readies
the paper input station to accept documents.
The operator may then insert documents and
make exposures by depressing an EXPOSE
button on the side of the image processor. Each
exposure is automatically advanced into buffer
L A count of the number of exposures is displayed on the graphic console screen. When all
exposures have been completed, the operator

BUFFER I

BUFFER 2

PROJECT
STATION
RECORD OR
EXPOSE STATION

BUFFER 1

PROJECT OR
SCAN STATION

TRAIN A

BUFFER 2

figure 4. Film Train Configuration.

A LINE SCANNING SYSTEM CONTROLLED FROM AN ON-LINE CONSOLE

may initiate the processing cycle. The film
transport is programmed to develop all of the
exposed film in buffer 1 after adding a trailer to
the exposures, and position the first exposure at
the scan-proj ect station. The operator may
utilize manual controls on the image processor
to advance or backspace frames that are in
buffer 2 or on the take-up reel. Operational experience has shown the value of providing the
console operator with a rapid means of preparing a film image suitable for scanning. A certain amount of flexibility and film quality is lost
through the utilization of rapid processing, but
this seems to be more than offset by the convenience of short turn-around time.
An auxiliary film processing function is
available if off-line film is to be used. Utilization of pre-exposed film. allows for a wider
variety of input quality and document sizes.
This film is inserted in the supply cassette and
spliced to the film in train A. When the processing is initiated, both film buffers are emptied
(i.e., the film is pulled tight). They remain
empty as the film passes from the supply cassette, through the developer and then past the
scan-project station. The graphic console operator can monitor the operation on the projection screen. Depressing the END key on the
alphanumeric keyboard will halt the developing. In this manner rapid processing film 1Nhich
has been pre-exposed can be developed. Standard microfilm or rapid processing film that has
been preprocessed is not significantly affected
by passing through the developer during this
operation. The use of preprocessed high contrast microfilm permits the scanning of material which is of much poorer quality than can
be accepted at the paper input station.
During the course of 'various scan operations,
it is frequently necessary to make a permanent
record of the results. Selection of a recording
function causes all current scan results to be
recorded on film train B. The material recorded on film is the same as that which is shown on
the graphic console by the DrSPLAY function
discussed later in the paper. After recording
is completed, the frame will be automatically
advanced into the first film buffer of train B.
The developing process will be initiated automatically after six recordings but can be initiated at 'any time via a FILM CONTROL func-

401

tion. By means of manual controls on the image
processor, a processed frame can be centered on
the viewing screen. By appropriate manipulation of both film train projection lamp rheostats
and positional controls (2 dimensional motion
is possible on train B), both the scan results on
train B and the original document on train A
can be superimposed on the viewing screen for
purposes of comparison.
The user also has at his disposal the ability to
develop or clear film which has been moved into
any of the film buffers. Clearing the film moves
all exposures onto the take-up reel from which
they can be removed and mounted in aperture
cards. One of the accessory pieces of equipment available to the user is an aperture card
printer. Thus, hard copy output is available to
the user in a matter of minutes after he leaves
the console. We find that this is particularly
valuable in evaluating results and maintaining
a record of work accomplished.
SCAN OPERATIONS
The unique feature of this line scanning system is that only those elements of an image
which are selected by the console operator will
be scanned and digitized. The basic element of
an image is a line segment defined as a continuous curve terminated by two ends, two junctions or a combination of both. Since complicated images may contain many intersecting
curves, a line will, in general, consist of several
segments which must be added together logically. Experience has shown the j unction to be
a far more accurate delimiter than the end of a
curve. The normal procedure of this system
has been, therefore, to define the end points of
lines precisely by means of perpendicular slash
marks. Figure 5 shows a typical document
from which line AD is to be digitized. Line AD
consists of segments AB, BC, and CD. A line
may, of course, consist of only one segment.
The requirement of digitizing selected lines
which represent only a small fraction of the
entire image suggested a line tracking technique. Analysis of a raster scan of the entire
image area was deemed impractical because of
the volume of data involved.
The automatic line tracking procedure which
forms the heart of this line scanning system is
described briefly below. Figure 6 shows a typi-

402

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

ROll RESPONSE
VI

w

J:

u

P2

~

~

A

w
0

:;)

5

D

~

'"

Figure 7. Line Tracking Procedure.

o
TIME IN SECONDS

Figure 5. Sample Document.

cal line with two points (P A and P B) that have
been sampled. The next point is estimated to
be P'c : a distance (~H) away from P B on the
line defined by points P A and P B. Two "scan
feeler vectors" (P 1-P 2 ) and (P 3-P-l) are then
plotted on the CRT parallel to and a distance
(~V) away from the line (PB-P'c). ~H and ~ V
are specified by the console operator.
If nothing is encountered by either feeler
vector, a scan vector (Pz-P-I) is plotted and the
next point Pc is determined by the intersection
of (P 2-P-l) with the line as shown in Figure 7.
The procedure is repeated until the line ends
or one of the feeler scan vectors gets a "hit"
indicating that either a junction has been encountered, or that the tracking step size (~H)
and the feeler vector spacing (.o!l V) are not
compatible with the curvature of the line. When
this occurs, a block of code will be called upon
to analyze the situation, and action will be requested from the operator if necessary.
At each point, the threshold level (detection
sensitivity of the scanner) is adjusted within
rigid bounds, based on results at the last point,

P

1

Figure 6. Line Tracking Procedure.

to the minimum necessary for line detection.
When a new point is obtained, the threshold
level bounds are modified if necessary. In this
manner, large variations in density across a
film frame can be accommodated while still preventing erroneous scanner responses due to improper threshold level. The threshold level
bounds, along with tracking step size, feeler
vector spacing and several other scanning parameters can be modified if necessary by the
user at the console via a CHANGE PARAMETERS function.
The automatic method of line tracking is
utilized by the user whenever possible. If areas
of difficulty occur, the user may request or the
scan program will automatically generate a call
for a raster sweep (TV scan) of the area of
difficulty. The user may then utilize the sweep
display on the graphic console screen for diagnostic purposes.
The graphic console operator is required to
combine those functions which will enable him
to process a complicated image. It is assumed
that a film frame has been centered in the scan
gate before any scan functions are selected. A
RESTART function readies the system to accept results from a new image. All previous
scan results are deleted.
A REGISTRATION function may be used to
search for a border around the image corresponding to a 20x20 inch square border on the
input document. The main function of this
border is to provide an easy means of supplying
the scanning system with coordinate and scaling data. The coordinates of the border are assumed to be (0,0), (0,20), (20,20), (20,0) but
can be modified by the console operator by using
a CHANGE PARAMETERS function. If registration is successful, the border, plus lines dividing each side of the border into quarters, will

A LINE SCANNING SYSTEM CONTROLLED FROM AN ON-LINE CONSOLE

be displayed on the graphic console CRT. This
grid aids the console operator in using the position indicating pencil to select lines for scanning. It is not necessary to register, however,
in order to proceed with scanning since there
are alternate methods for the system to obtain
coordinate and scaling data.
A SCAN A LINE function readies the system to begin scanning the first segment of a
new line. The user will immediately be requested (via appropriate comment on the
graphic console screen) to select by means of a
position-indicating pencil the approximate area
for the scanning to begin. The user may then
point directly to an area. on the screen ( using
the display of previous results and the registration grid as a guide, if available). Alternatively, the console operator may request a
gross raster scan and display of the entire
image. He may then select a line with the
pencil as shown in Figure 8.
Once a starting area has been supplied, a
search wiJI begin for two points on the first
segment. These points will then be used to
initiate the automatic line tracking procedure
which will track to both ends of the segment in
two steps. If any difficuity is encountered during this operation, the results up to that point

408

along with an appropriate comment and a box
indicating the region of trouble will be displayed. The operator must then take the proper
action which usually begins with a TV sweep of
the problem area. After a portion of a line has
been scanned, an ADD A SEGMENT function
may be used to add segments to the given line.
Selecting this function (active only after the
first segment of the current line has been
scanned) readies the system to scan a segment
adjacent to one end of the current line and add
it to the current line.
The user is immediately requested to indicate
with the position-indicating pencil the approximate location and initial slope of the next segment. A search will then be initiated for a
point on the next segment which is separated
from the endpoint of the current line by a disstance equal to the tracking step size (6H).
This point and the endpoint will then be used
to initiate line tracking which will proceed to
the end of the segment. If any difficulty is encountered during this operation, all previous
scan results, plus an appropriate comment and
a box indicating the problem area, will be displayed. The user must then take appropriate
action. If this entire operation is successful,
the segment will be added logically to the current line to form the new current line.

Figure 8. Line Selection.

404

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

A TV SWEEP function allows the user to examine a localized area for diagnostic or corrective purposes. This function will be initiated
automatically whenever the tracking procedure
encounters difficulty. The console operator may
also use this function to investigate any data
point along a line by selecting the point of interest with the position-indicating pencil. The
scan responses are analyzed and a display is
generated which nominally fills the entire
graphic console screen. This enables the user
to observe a magnified view of a localized area
on the image (as it appears to the scanner).
Figure 9 shows a TV sweep display of a typical junction. The size of the sweep area is approximately .5 x .5 inches on a 20x20 inch document.
The "X" indicates the center of the scan
raster. The user may adjust the threshold
level or change the location of the scan raster
via appropriate alphanumeric keys. The raster
may also be moved by indicating a desired location with the pencil. A new raster scan and
display will then be generated. The system understands that the position-indicating pencil
position superimposed over the TV sweep display refers to the corresponding position in
the actual scan raster. Other appropriate system operations may be initiated from this mode
at any time.
If a diagnostic study reveals that automatic
line tracking is impractical for some reason,
coordinate points may be stored in conjunction

with the TV sweep facility. This function allows. the user to add the current center of the
scan raster as a data point and thereby move
manually over an area of difficulty before resuming automatic tracking. Under extraordinary circumstances (e.g., very poor film, POOl'
document quality, or an extremely congested
image), an entire line can be digitized in this
manner.
The CHANG E PARAMETERS function allows the user, through a combination of multiple choice and alphanumeric keyboard responses, to change many of the scan parameters. The value of each parameter is displayed
on the graphic console CRT along with suitable
descriptions (Figure 10). Through the use of
a multiple choice sequence employing the position-indicating pencil, the user may select a
parameter and type in a new value for that
parameter. This function allows the user to
lnaterially change the performance of a subroutine from the console. These parameters are
used within the programs both as numeric
constants and as switches for branching operations.
DISPLAY AND REVIEW OPERATIONS
The graphic console 10xl0 inch CRT is the
principal medium by which the computer communicates with the user. Throughout the sys-

ENTER NEW

VALUES

HeRZ. eR/G/N=
0
VERT. eR/GIN=
0
BeRDER SIZE = 2011
SEGMENT AREA=
5011
LINE AREA
= 20011
MINIMUM STEP=
25.
MAXIMUM STEP= 40011
EPS I LeN
:
211
RES9LUTI8N = 2511
SCAN RAD I US =
5011
CURRENT TL = 35.
MINIMUM TL = 30.
MAXIMUM TL
= 40.
START SWITCH:
1•
Figure 9. Junction of Two Lines.

Figure 10. Parameter List.

+-

A LINE SCANNING SYSTEM CONTROLLED FROM AN ON-LINE CONSOLE

405

tern, messages are continually being displayed
on the CRT to which the user must respond. Although this display is low in accuracy with respect to the scanner or recorder, it is also utilized for the purpose .of displaying scanned
results. A display of the scan results may be
used to check for completeness and to monitor
the progress of the scanner. To some degree,
the accuracy of the scanned results may also
be checked at the graphic console.
As a film image is scanned, the digitized coordinate points are stored in an in-memory
table. The structure of this table is quite simple. Each element of scanned data is stored as
a linear array, with suitable identifiers and
pointers to the next element of data. The scan
operations may at any point in their logical sequence call upon the display operation to generate a pictorial representation of the in-memory scan data. A typical display is shown in
Figure 11.
If an error condition has occurred during
some previous function, the display operation
may be so signalled. This will result in a small
box being superimposed over the location of the
error, plus addition of a suitable error comment
(~; noll ... a

\ ..a:

~b \.4...1. """

1') \
.L ..... I •

After the scan results appear on the graphic
console CRT, the following review operations
become available.
a)
b)
c)
d)

Increase Scale
Change Mode
Identify Dimensions
Identify Coordinates

By selecting the INCREASE SCALE function, the size of the display will be doubled.

Figure 11. Display of Scan Results.

Figure 12. Error in Scanning.

Any scan data which falls outside of the field
of the CRT is deleted by appropriate programming. Reselection of a display returns the scan
results to their original scale. The CHANGE
MODE function may be used to display all lines
either as a continuous curve or as a series of
crosses. The latter mode allows the user to
ascertain the number and location of each single
digitized point. The ability to view individual
scanned points is essential when the scanner is
being used to capture a minute feature of a
line.
If some portion of the display outside the
field of view is desired, the pencil may be used
to point to the edge of the field. Removing the
pencil from the screen will cause the scanned
data to be redisplayed with the selected point
relocated at the center of the field of view; Figure 13 illustrates a display in which the user
has reviewed his scanned results by centering
the field on the end of a line and magnified the
scale four times to examine an end condition in
detail.

Within the operation of the scaling and field
centering mechanism can be found a lesson in
man-machine interaction. A variety of functions can be selected subsequent to a display.
Typical of these is the LINE SCAN function.
After this function is selected, the user is requested (by comment on the graphic console
screen) to use the pencil to point to a location
on the screen. Thus, the sequence of operations was to select a function (by depressing a

406

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

of the CHANGE PARAMETERS function may
define the coordinates of the corners of the
border. Thus, the user may select any point
interior to the border and receive the inch coordinates of that point. The point may be selected by pointing with the position-indicating
pencil or by using linear arrows on the alphanumeric keyboard to vernier a pointer.

Figure 13. Magnified Display.

program control button) and then point. Our
initial operational experience taught us that the
more natural instinct was to point and then select an operation. Similar instances of manmachine interaction being uncomfortable were
noticed throughout the development of the system. In most cases, the problem was rectified
after user and programmer discussed alternative sequences of operation. Thus, many operations communicate with the man in more
than one way, thereby anticipating the variety
of ways in which a man may respond to a given
situation.
While in review mode, the user is also frequently concerned with the accuracy of his
results. The system provides two means for
reviewing the. accuracy of the scan data before
storing the data on disk. If a square border
has been registered from the film image
(1.09x1.09 inches on film), all interior points
are related to the coordinates of the corners of
the border through the use of a four point perspective transformation. At the paper input
station, the border would normally appear
20x20 inches square. The user through the use

If no border registration is available, the
only accuracy test which can be made is to
check the chordal distance between two points.
For example, if the scanner were used to digitize a sine wave consisting of two cycles, the
user could measure the chordal distance in
inches between the ends of the cycles on the
original document. An IDENTIFY DIMENsIoN function allows the user to use the pencil
to point to two locations on a line and receive a
display of the chordal distance between the two
points. In this case, the program searches for
the two points on the scanned line nearest to the
two locations selected by the user. The program displays the distance assuming an 18.33
reduction ratio between document and film
image.

MODIFY AND STORE OPERATIONS
The development of an elementary set of
modify operations was a direct result of monitoring the use to which various users put the
system. The most frequent request was for
operations to delete erroneous data. Here again
let us emphasize that the scanner and computer
are utilized to perform the elementary operations while the user (through graphic console
displays) retains judgment as to the correctness of the results.
A typical situation might be that the scanner
began to digitize a scratch on the film rather
than a line on the film image. The requirement
for data deletion operations led to three methods for deleting data. The console operator may
select a DELETE LAST SEGMENT function
and cause the last element of scanned data to be
deleted from in-memory storage. An entire line
or a single point may be deleted by pointing to
a location on the graphic console screen with
the pencil and selecting the desired operation.
In these two cases, the item of scanned data, be
it a line or point, nearest to the selected location is deleted from in-memory storage.

A LINE SCANNING SYSTEM CONTROLLED FROM AN ON-LINE CONSOLE

Another frequently requested operation was
the ability to add intermediate points to a
display of scan results. Because of its finite
sampling capability, the scanner may miss a
particularly critical point on a line. In these
cases, the user may point at the display with
the pencil and cause a coordinate point to be
inserted in the scanned results at that point. A
high degree of accuracy may be obtained by
adding coordinates in this manner, particularly
if the scale of the image is enlarged before any
operation is attempted.
After all scanning, review, and modify operations have been completed, the user can choose
to save these results by storing them on a random access disk file. For our purposes, each
digitized line is assigned a unique data name
(e.g., LN5-1-537-R) which determines its storage location on disk. 7 Any other applicationoriented program may have access to this data
by referring to the same data name. Library
I/O subroutines are available to the programmer for storing and retrieving data from the
disk.
The function which stores data on disk provides the facility for transforming the digitized
points to any desired coordinate system. The
manner in which this is accomplished is for the
user to provide the desired coordinates of two
of the scanned points (usually the left and right
end point). This data enables the STORE
function to compute a linear transformation between the raster unit coordinate system of the
scanner and the desired output coordinate system.
Since the STORE function requires alphanumeric input, we were interested in the variety
of ways in which a man could communicate this
data. The devices which could be made available for the transmission of alphanumeric data
are as follows:
a) Alphanumeric keyboard used as a typewriter
b) On-line card reader
c) Scan and recognition of characters in the
field of the image
d) Writing with the position-indicating pencil on the face of the graphic console CRT

407

e) Multiple choice operations by pointing
with the position-indicating pencil on the
face of the graphic console CRT
The options which are currently available
are (a), (b), and (e). Our experience leads
us to believe that (d) is not practical, simply
because of the ease of using a typewriter and
monitoring the message on the face of a CRT.
Scanning and recognition of character sets on
the film image is obviously very desirable. This
work is under current development but will
not be reported on in this paper.
When a line or series of lines have been
scanned, reviewed, and modified, the console
operator may elect to save the results by
choosing the STORE function. At this point,
all scanned data is corrected according to a
table of calibration data stored on disk each
morning by maintenance personnel. The calibration data gives a measure of the distortions
in the scan raster. This data is obtained by
scanning a high accuracy metal target. The
calibration data may then be used to correct
subsequent scan results.
After correction, all extraneous coordinate
poin~s (those lying within an epsilon of a
straight line) are removed from the line. Resultant lines are then displayed singly on the
graphic console CRT. A typical display is
shown in Figure 14.
The density of points will be a function of
line curvature. The user then has a multiple
choice option in which he may choose to utilize
card data, typed data, or border data for supplying coordinate information relative to the
line. 'The pencil must be used to point to one
of the fields in order to select the appropriate
mode of input. We have found that when
processing a volume of information, the users
will prepare data cards ahead of time and
utilize this mode of alphanumeric input. If
only one or two lines are to be processed, the
typed input will more likely be selected. In
this case, the STORE function leads the user
through a series of questions and responses,
in which he is either required to make a choice
or type in a reply at the alphanumeric keyboard. In all cases, a message on the graphic
console CRT instructs the user as to the next
operation or required response. As an added

408

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 15. Summary Display.
Figure 14. Display of Sampled Line.

feature, the user may select the BORDER
DAT A option, in which case the coordinates of
all digitized points are related to the coordinates of the corners of a 20x20 inch border.
The coordinate values of the corners of the
border are assumed to ha ve been preset by
the CHANGE PARAMETERS function.
After all alphanumeric information has been
entered, a summarizing message is displayed
on the graphic console screen. An example is
shown in Figure 15. The console operator is
requested to pass judgment on the quality of
the results before they are stored on disk.
RESULTS
The actual performance of the equipment
and system can best be measured by the accuracy and detection capability of the scanning
operations. For these reasons, a series of experiments was conducted, aimed at determining the accuracy and detection capability of
the device under various operating conditions.
Figure 16 is a plot of the distribution of errors
in scanning a vertical straight line located at
the center of the image field.

It should be noted that this figure was gen-

erated via the CRT recorder which is a feature of the image processor. Also note that
the unit squares along the chordal length of
the line are measured in units of 5 inches, while
the deviations are measured in units of .05
inches. As can be noted, the maximum deviation of the data from a straight line is ± .02
inches and there is a high frequency noise level
of ±.005 inches. The original system objective was ± .01 inches average deviation on a
20x20 inch document. If this test is repeated
with no utilization of calibration correction,
the results are as shown in Figure 17.
Notice that while the high frequency noise
level does not change, the maximum deviation
or distortion is now .04 inches.

q'

o
~~~----~----~~------+-----~
~

5
~
~

CHORD DISTANCES
IN INCREMENTS Of 5 INCI'ES

Figure 16. Error Distribution With Calibration.

A LINE SCANNING SYSTEM CONTROLLED FROM AN ON-LINE CONSOLE

CHORD DISTANCES
IN INCREMENTS OF 5 INCHES

409

performance may be obtained from the combination' of parameters which provide the
widest wedge located furthest to the left with
respect to line width. Extensive tests are now
being conducted on a range of documents to
determine these limits of detection. These test
results will serve as a guide line for judging
the quality of all documents.

Figure 17. Error Distribution Without Calibration.

CONCLUSIONS
The second measure of system performance
is the detection capability of the scanner. The
range of threshold over which a line can be
located is a measure ·.-of detection capability.
Below a certain threshold level, the scanner
can not detect any changes in the percentage
of light transmission between background and
lines. Above a certain threshold, the scanner
will detect light over the entire image. This
type of data may be plotted for a single film
document for lines of various thickness. Figure 18 is a typical plot of minimum and maximum threshold level versus line width.
The maximum threshold level is the noise
level, or the point at which the photomultiplier
will always see light. This is a fairly constant
value over the entire film image. The minimum threshold level is, of course, a function
of line width, until such time as the line widths
become appreciably greater than the effective
CRT spot diameter. Various qualities of documents and various film exposures will move the
wedge left or right and widen or close the
wedge. For each particular digitizing application, wedge samples may be taken to determine
the limits of detection. Optimum operating
60

..

~

NOISE LEVEL

MINIMUM DmcrloN .a'~ con.troJ
ORDER . ORDERCHAIN
C:'ain Control
ORDER
ORDERCHAIN
C:'..::.in )..!aster
ORDER
ITEMCHAIN

-: "_0

';- .•:j

I

I

:<'eco!·ci
i="i:::ld

~;~~

Figure 9. Purchase Order Data Structure.

I
I

,.

:':J= all fields in VENDOR record

Q.am Master

Item Chain

Name

I

VENDORl

Record

e!.;.

Field

I

I

VE,~DORNO
VENDORNA:vfE

Calculated
Unique

X(b)
X(lo)
X(24)

g~R::!TE

X\2~)

Sequenced

Calculated
Redundant
Unique

VENDORNO
ORDERNO
ORDERDATE

VE.'lDORNO
ORDERNO

X(JZ)
999

Match
Ascending
Sequenced

I

ITEM
ITEM

ORDERNO
ITEMNO
MATLIDENT

Field
ITEM
etc. for all fields in ITEM record

ORDEROTY

Chai" Detail
Chain Control
Chai!J. Control

ORDERNO
ITEMNO

ITEM
ITEM
ITEM

Field
Image

I

I
I :i~

I

IDS Control s

I

ITEMCHAIN
ITEMCHAIN
ITEMCHAIN

'I

Secondary
Unique, Redundantl
Unique
X(3)
X(JS)

9999V9
Prime
Match
ASCending

I

Figure 10. Purchase Order Data Description.

418

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

its power. The arrows indicate that one record
"points" to the next record in a chain and that
each chain "closes" onto the master record of
the chain. Regardless of how many chains a
record is in, the record exists in the file only
once. It may be "pointed at" by many other
records.
Still another way of illustrating the data contained in the sample problem is shown in figure
12. Here the chaining is represented by the
appropriate reference addresses.
X. Procedural Commands
The functional verbs PUT, GET, MODIFY,
and DELETE, previously introduced, require
further explanation for better understanding.
These verbs may be used in a GECOM, COBOL,
or FORTRAN sense. In fact, there is reason
to wonder when they will move out of the developmental world and become part of the industry standard languages. Perhaps, a better
phraseology would be to ask whether the industry languages committees will take advantage
of IDS to catch up with data storage units, real
time, and command and control systems pro-

VENDOR RECORD

ORDER RECORD

ORDER RECORD

ITEM RECORD

ITEM RECORD

ITEM RECORD

Figure 12. Purchase Order Data Structure.

gramming. They are part of the COBOL compiler language for the GE-400 and 600 series
computers now.
The following are examples of procedural
statements which would cause the IDS to execute certain actions. The letters in capitals are
the required words of the IDS language. The
lower case letters are data and procedural variables, i.e. record names, chain names, field
names, and sentence names.
A. Example i-PUT. "PUT vendor RECORD." This command stores a new vendor record in accordance \vith its data description. Its
fields' values would be picked up from working
storage and packed into the new record skeleton in a data block. The order chain field in the
new record would be packed with the reference
code of the new vendor record itself because
there are no details at this moment and the
next record in the order chain is the vendor
record.

Item Chain

Figure 11. Purchase Order Data Structure.

B. Example 2-GET. "GET NEXT order
RECORD OF order chain, OR IF vendor RECORD GO TO location---a." This command
would retrieve the next record of the order
chain and unpack its fields into working stor-

PROGRAMMING SYSTEM FOR RANDOM ACCESS MEMORIES

age. If the next record is an order record, the
control would be transferred to the succeeding
command. If the next record is a vendor record, control would be transferred to the command identified by the sentence name "locationt-'a." The actual record retrieved is not
accessible to the programmer-however, the
contents of its data fields are unpacked and
made available in working storage. This serves
two purposes. First, protection is given to the
data in the file in a father-son type sense. Second, it means that the data from a record will
remain in working storage until another record
of the same type is retrieved and unpacked into
the same working storage fields. For example,
if an item record were first retrieved, followed
by its order record, then the order record's
vendor record, the fields from all three records
would be simultaneously available in working
storage for processing.
C. Example 3-MODIFY. "MODIFY CURRENT item RECORD, REPLACE quantity
FIELD." This command will modify the current item record, i.e. the last item record accessed, regardless of what has transpired since
it was processed. I t will pack the content of the
working storage field "quantity" into the corresponding data field of the record replacing
the existing value. A modify command will
modify one or several fields in accordance with
those specified in the command. Fields may
also be modified by adding or subtracting the
contents of working storage to that of a record.
The appropriate commands would be MODIFY
recordname RECORD, ADD field name FIELD,
or SUBTRACT fieldname FIELD.

It was mentioned earlier that fields were frequently used to sequence the detail records in a
chain. These fields are called sequence control
fields. If a sequence control field is modified,
the detail will be automatically delinked from
its master and relinked to it again in accordance with the new value of its sequence control
field.
Fields are also used to control the selection
of the master records and chains in which to
insert detail records. These fields are called
match control fields. If a match control field
of a detail record is modified, the rec~rd will
automatically be delinked from its old master.

419

I ts new master will be retrieved, and the record
linked to its new master according to the ordering rule specified for the chain.
D. Example 4-DELETE. "DELETE vendor RECORD, IF ERROR GO TO errort-'a."
This command will retrieve the vendor record
specified by the code stored in the "vendor
code" field in working storage. If there is no
vendor record with that specific vendor code,
the command will respond by setting up an
error code to specify the nature of the "fault"
and transfer control to the command identified
by sentence named, "errort-'a." If the vendor
record is successfully retrieved, its deletion
process will begin. If a vendor record is to be
deleted, its order chain must be deleted too.
Consequently, if a vendor record is to be deleted, its order chain must be searched to ascertain that there are no order records in it. If
there are order records, they must be deleted
before the vendor record is deleted. In the
same manner, an order record may not be deleted if there are any item records in its item
chain. Therefore, all item records in an item
chain must be deleted before the order record
is deleted. This makes the deletion command a
very powerful command and one to be used
with due respect.
Two optional features have been provided
which aid the programmer in using the delete
command. If the programmer anticipates that
order records may be linked to the vendor record (that a detail may be linked to its master) ,
he may wish to print a control report of the
orders deleted by using the phrase "AND IF
order RECORD PERFOR]\{ reportlinet-'l"
with his delete command. This will cause the
deletion process to be interrupted everytime
an order record has been deleted. The subroutine identified by the sentence name, "reportlinet-' I" will be executed. Because of the frequent desire to produce some form of a control
report on deletions, the delete command actually retrieves and unpacks, into working storage, the data fields of a record prior to deleting
it.
The second optional feature of the DELETE
command permits the programmer to attach
an escape phrase. For example, the programmer might attach the phrase, "BUT IF order

420

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

RECORD GO TO statement,--a." In this case,
the detection of an order record as a detail to
the vendor record would immediately terminate
the deletion command without the order record,
its item records, or the vendor record being
deleted. Using the DELETE command in this
manner, the programmer need not test to determine the presence of an order record prior to
initiating the DELETE command. He may
boldly set out to delete a master record, and
still escape from the deletion if there is a detail
that he wants to protect.
All of the commands, GET, PUT, MODIFY,
and DELETE, permit the addition of error
test and branch. The user is urged to use them
so that he is immediately aware of any fault
that occurs and the nature of that fault. A typical fault that could occur during a "PUT" is
attempting to put a duplica.te record which is
prohibited according to the data definitions.
XI. RECORD RETRIEVAL SPECIFIERS
AND RULES
Three of the IDS macro instructions require
that a record be retrieved so that it may be
operated on. GET means retrieve a record and
unpack its data fields into working storage.
MODIFY means retrieve a record and modify
specified fields in the record according to the
command the the contents of working storage.
DELETE means retrieve a record, unpack its
data fields into working storage, delete any
detail records, and finally, delete the specified
record. Only the PUT command lacks the retrieval aspect. It means find space for a new
record, link it into its chains, and pack its data
fields from working storage.
There are six different retrieval rules from
which the programmer may choose. These rules
may be used in conj unction with the functional
processes; GET, MODIFY, and DELETE. Examples 2, 3, and 4 in Section X used three
of these rules, respectively, "NEXT OF
CHAIN," "CURRENT" and the associative retrieval rule which is specified by the absence
of a record specifier adjective. These rules may
be sub-divided into two classes. The two rules
which are absolute in their nature, i.e. there is
only one record that satisfies their specifications regardless of when they are executed.
They.will be discussed first. The other four

rules are relevant to what has transpired previous to their execution.
A. "
" specifier. The absence of a
specifier indicates that the record to be processed is identified by the data values stored in
the fields of working storage. The particular
fields concerned are those fields which have
been described in the data description of the
specified record as the unique fields for that
record.
B. "DIRECT" specifier. This specifies that the
record is to be retrieved based on the reference
code (address) stored in the communications
field named, "QDIRF" (DIRECT REFERENCE). The programmer may store any reference code there and then retrieve the record associated with that reference code.
The IDS system is so designed that once the
reference code is assigned to a record, it is
permanent. The addition or subtraction of data
storage units will not affect it. The modification of the record to add or delete either data
or chain fields or modify their content will not
affect it. In fact, the uniqueness and permanence of the reference codes make them ideal
candidates for dual use as reference code and
invoice number, order number, pay number,
vendor code, customer code, dra,ving number,
or stock number.
C. "CURRENT" specifier. The "CURRENT" record specifier instructs the system
to reretrieve the last record of that type processed by a GET, PUT, or MODIFY command.
If the last command executed for a given record type were a DELETE command, the last
record would have been deleted and it would be
impossible to retrieve the current record of that
type because there is none. This would create
a "fault" and an error would be signalled.
D. "NEXT" specifier. The "NEXT" specifier is one of a set of three chain processing
specifiers. These specifiers require that a chain
name be appended so that the specification
would be complete. As an example, the command below specifies that the programmer
wishes the program to access the next item record in the item chain:
"GET NEXT item RECORD OF item
CHAIN." The particular record accessed

PROGRAMMING SYSTEM FOR RANDOM ACCESS MEMORIES

clearly depends upon which record is the current record in the item chain when the command is executed. An IDS command must have
been executed prior to executing any of the
chain processing commands. This prior command must have accessed a record in the desired chain and therefore established the current record in the chain. Only then does the
phrase "NEXT RECORD OF CHAIN" have
any meaning.
E. "PRIOR" specifier. The "PRIOR" specifier is used to specify that the chain is to be
processed in a backward direction. This command contains the same restraint as the
"NEXT" specifier,. that the current record of
the chain must have been established. The ability to process a chain. backwards is optional
and dependent upon the chain having been
specified in the data description, as a "PRIOR"
chain.
F. "MASTER" specifier. The "MASTER"
specifier directs the chain processing to proceed
directly to the master record of the specified
chains, accessing but ignoring all intermediate
detail records. The optional specification of the
~hain as a "HEADED" chain provides an additional pointer field in each detail record containing the reference code of the master
record. In the presence of this option, the
"MASTER" specifier will proceed directly to
the master record without accessing the intermediate detail records. As with the other chain
processing specifiers, the chain must have been
accessed and a ·current record established, prior
to executing a "MASTER" command.

Alternate Retrieval. The retrieval rules
using the record specifiers, NEXT, PRIOR, and
DIRECT exist under conditions where the type
of record to be retrieved cannot always be predicted. These commands, therefore, permit the
insertion of one or more "OR IF recordname
RECORD GO TO sentence name" phrases. The
program logic is then able to branch to the
specified sentence following the execution of
the functional portion of the command in accordance with the record retrieved. The use
of an "IF record name RECORD GO TO sentence name" phrase (note the "OR" is missing)
will cause the program logic to branch after
retrieval, but before the execution of the func-

421

tional portion of the command. This permits
the execution of the functional portion of the
command (GET, MODIFY, or DELETE)
when using the record specifiers DIRECT,
NEXT or PRIOR on selected record types and
the by-passing of the function if other types
are retrieved. As an example, the following
command might be used:
"DELETE NEXT order RECORD OF order-CHAIN, IF vendor RECORD GO TO sentence--, a."
The repeated use of this command would delete
successive order records which are in the order
chain. However, when the vendor record is
retrieved, it will not be deleted and control will
be transferred to sentence--,a.
The data structuring abilities of the IDS
permit the definition of more than one detail
record type in a chain. In the case of the
PRIOR and NEXT OF CHAIN retrieval
actions, unspecified record types in the chain
will be accessed and skipped over until a record
of a specified type is retrieved. If the chain is
completely traversed without the retrieval of
a specified record type, an error is signalled.
The retrieval of an unspecified record type by
the DIRECT specifier will cause an error to be
signalled.

Error Conditions. All of the commands of
the IDS are structured with the provision for
an error statement: As an example:
"GET item RECORD, IF ERROR GO TO
sentence--,b."
If this command were attempted and had
failed because no item record could be retrieved
with an order' number and line number, matching those in working storage, then the program
control would be transferred to sentence--,b.
This permits the program to test whether the
function has been carried out successfully. If
the command has not been successful, the error
condition may be tested to determine the nature of the fault and the appropriate action
initiated.
XII. HISTORY OF DEVELOPMENT
Historically, the IDS's foundation in well
disciplined data structure goes back to the file

422

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

structures developed by General Electric at
Hanford for their 702 Report Generator and
File Maintenance System,'2 These structures
reached greater generality and power in the
SHARE 9P AC system which was largely guided
and programmed by GE Hanford and supported by The Dow Chemical Company, Union
Carbide Company, GE Heavy Military Electronics Department and others. The deliberations of the SHARE committee on The Theory
of Information Handling3 also contributed to
the early thinking on the Integrated Data
Store.
The current implementation of the Integrated
Data Store is based on a set of free standing
subroutines written in the General Assembly
Program language for the GE-200 series computers. The original version was prepared as
an adjunct to GECOM. It had a compiler generator which processed data definition cards
and IDS macro instructions and produced
mixed GECOM and General Assembly Program
statements which were subsequently compiled
by'GECOM to produce an object program. The
macro instructions were executed as generated
in-line coding. IDS was first operated in this
form in January, 1963, with hand compiled
macro instructions. The application that it was
applied to was the IDS compiler-generator
itself which was used to generate IDS coding
for subsequent application programs. The firstcompletely generated program was a product
materials file maintenance and explosion routine. This routine was used during the summer
of 1963 to run comparative speed tests with
another routine performing the identical tasks
which had been hand coded employing conventional disc programming techniques. The
machine generated IDS program ran twice as
fast as the comparison program and used less
file space to store the data.
During the Fall of 1963, the current implementation of the IDS was programmed. This
version switched from compiled in-line coding
to an interpretive subroutine organization with
calling sequences. This is another step in the
separation of the data structure from procedural logic and parallels the dictionary used
by 9PAC which was brought together with the
procedure at load time. The parametric ver-

sion appears to operate at about the same speed
as the in-line coding version.
XIII. SUMMARY
The Integrated Data Store is an operational
tool for programming the GE-225 with Disc
Storage Unit. It automatically processes the
complex file maintenance and retrieval problems presented by a data storage unit. It gives
a high degree of file protection and through
data structuring and redundancy elimination,
it accomplishes considerable file compression.
The user has the option of many storage and
retrieval techniques. It yields efficient programs with buffered operation of the disc file.
The requirement to structure the data before
programming greatly reduces redesign and debugging problems. IDS provides for the first
time an effective method for describing the
complex interrelationships of data present in
most information systems. It further provides
the means for efficiently processing and maintaining these in the environment of a mass
memory system. It moves list processing techniques out of current limitations of core memory and thus makes them available for practical
data processing.
We challenge the national standards committees for COBOL, FORTRAN, and ALGOL
and the designers of the "New Programming
Language" to survey their current accomplishments, which are many, and to determine
whether the above capabilities offered by IDS
should be added to their languages.
REFERENCES
1. KAVANAGH, T. F., "TABSOL-A Fundamental concept for Systems Oriented Languages," Eastern Joint Computer Conference, December, 1960.

2. McGEE, W. C., "Generalization-Key to
Successful Electronic Data Processing,"
Journal ACM, January, 1959.
3. SHARE Committee on Theory of Information Handling, "TIH #1 Report," 1959.
4. BACHMAN, C. W., "The Integrated Data
Store Function Specifications," General
Electric Co. internal publication, J anuary, 1962.

THE IBM HYPERTAPE SYSTEM
B. E. Cunningham
Development Lab, Data Systems Div., IBM Corp., Poughkeepsie, N.Y.
reading. These two check bits, in conjunction
with a signal-strength monitor, provide detection of all errors and correction of all singleand 33 of 45 possible double-bit errors. In alphanumeric mode, six of the information tracks
are utilized per character. In packed-numeric
mode, two four-bit characters are written side
by side across the tape, as shown in Figure 3.
The character density is 1511/inch, and tape
speed is 112.5 inches/sec. This results in an
alphanumeric data rate of 170,000 characters/
sec, or a packed-numericadata rate of 340,000

GENERAL DESCRIPTION
The IBM Hypertape system was designed as a
high-speed I/O device for the IBM 7074-70807090-7094 computers.* It is composed of a twochannel control unit, the IBM 7640 (Figure 1),
and IBM 7340 tape drives (Figure 2). Ten
7340s can be attached to each 7640 channel.
The 7640 is attached to a computer through a
simplex interface consisting of 33 lines. Four
commands can be issued from the computer to
the 7640 across this interface-a Read, a Write,
a Control, and a Sense. The Control command
instructs the 7640 to perform such operations
as Space, Backspace, Rewind, etc. The Sense
conlnland interrogates the status of the 7640
and 7340. It allows the computer to determine,
for example, if the tape drive is loaded or busy,
or what type of errors occurred in the control
unit on the last operation- The two channels of
the 7640 time-share a Read and a Write section. This allows one channel to write while the
other channel is reading. Instead of the NRZI
method of recording, the system uses IBM's
phase-encoding technique, ** which records a
signal for both a one and a zero. This system is
very reliable, since the possibility of either losing a weak signal or picking up noise is greatly
reduced.
The tape used is O.l-mil oxide on a i-mil
polyester base. It is one inch wide, with 1800
feet on a reel. Written across the tape are ten
bits ;eight are information bits, and two are
check bits used for error correction during

* A modified version is also offered for the IBM System/360 (see page
).
** Williams Patent #2734186

Figure 1. IBM 7640 Hypertape Control Unit.

423

424

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

..

-----

• ••• '. ·s
Ci)

40

It:

lJJ

I-

u

c:(

It:
c:(

:J:
U

30

lL

0

(f)

z

0

:::i 20
~

~

>-

I-

U
~

10

c:(

u

729 IV REEL~
DENSITY, 556 CHAR/INCH

~

lJJ
lJJ

It:

0

0000 0
0000 0
-101t) .... 0

0
0
0

(IJ

0
0
0
10

0
0
0

....

0
0
0

It)

CHARACTERS/RECORD

Figure 4. Comparison of Character Capacities-Hyper
and IBM 729 Reels.

Figure 2. IBM 7340 Hypertape Drive.

characters/sec. Figure 4 shows a comparison
of the reel capacity of Hyper and IBM 729 reels.
The tape has been completely enclosed in a
dust-resistant cartridge to eliminate as much
contamination as possible, and to provide a
means of automatic loading and unloading without physically handling the tape. Another advantage of the cartridge is a programmable fileprotect device. A tape can be file-protected under program control, but it can be "un-file-protected" only manually·
An Automatic Cartridge Loader (ACL) is
available as an optional feature (Figure 5). A

HYPERTAPE
BIT TRACKS
CO
CI

BCD
CO
CI

0

0
0

I

2
3
4
5

6

7

B
A
8
4
2

I

PACKED
FORMAT
CO
CI
8
4
2

I
8
4
2

I

l'igure 3. Hypertape Character Formats.

cartridge for the next job can be inserted in the
ACL while the current cartridge is being processed. Then, under program control, the processed cartridge can be unloaded, and the cartridge which was stored in the ACL can be
loaded automatically, all within approximately
40 seconds.
The average read-write access time is 4.2 milliseconds, and the average gap is 0.45 inches.
The fast processing time of the Hypertape system is accomplished by the high data rate, narrow gaps, short access times, ability to read
backward, and a very low rerun time due to extremely reliable operation.
THE IBM 7340 TAPE DRIVE
A major requirement of the 7340 was high
reliability. To help achieve this, the tape is designed so that there is no physical contact with
the oxide side of the tape during motion (Figure 6). The vacuum columns hold the tape taut
over the single, rubber-surfaced capstan. The
capstan can accelerate the tape to nominal velocity or decelerate it to a halt in 3.0 milliseconds. Note that the wear of such motion occurs on the Mylar side of the tape. When the
tape passes by the read-write head, the oxide
side of the tape rides on an air bearing and
hence undergoes no wear.
Once a tape is initially loaded into the dustresistant catridge, it is normally opened only in

THE IBM HypERTAPE SYSTEM

425

the Beginning Of Tape (BOT) than it was before unloading.
Note that tape can be loaded arid unloaded·
without the operator's hands touching the tape.
Also, since a cartridge contains two reels, a tape
no longer need be rewound before it is unloaded.
This allows off-line rewinds, or a very short
search on-line for the last record processed before the tape was unloaded. Rewinding can occur either under program control by means of a
Control command, or by pushing the Rewind
button. Rewind occurs at 112.5 inches/sec
(normal processing speed) for 10 seconds; if
the BOT mark is not encountered, the head
moves 1;4 inch away from the tape and a 225
inches/sec rewind "in the columns" is initiated.
Rewind continues at full speed until the BOT is
sensed; this is made possible through the continuous tape control provided by the capacitative sensing of the tape location in the vacuum
column.
As previously mentioned, each cartridge can
be "file-protected" either under program control or manually. The control instruction "Set
File Protect" will cause a mechanism in the
7340 to depress a plunger on the back of a

Figure 5. The 7340 Hypertape Drive with Automatic
Cartridge Loader Option.

the pressurized chamber of the 7340. However
if the tape in a cartridge must be changed, the
front of the cartridge can be removed easily by
means of a small Allen wrench. To load a cartridge into the 7340, the operator must raise the
top cover of the 7340, and lower the cartridge
into the cartridge receiver (Figure 7). When
the top cover is closed, the tape reels in the cartridge are moved backward to engage the reel
hubs, the servo motors on the hubs release the
tape from both reels, the vacuum in each column
draws the tape into the columns, and the head
moves into place. The load operation takes less
than 15 seconds. After tape is loaded into the
columns, it is backspaced a short distance; thus
the overall effect of the unloading and later reloading is to position the head slightly closer to

•

•
•

TAPE
PHOTOCELLS

•

o-c CAPACITIVE
TAPE SENSING

VACUUM
COLUMNS

•

•
•
•
•
•
•
•
•

Figure 6. Tape Path in the 7340.

426

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

area status indication in the IBM 7640 is available to the program.
The Automatic Cartridge Loader (ACL) can
be used very effectively if a number of tapes
must be loaded at the same time for a new job.
During the processing of the previous job, the
operator can insert the next cartridge to be processed in the "load storage position" (back of
the ACL). Then, under program control, all
the 'ij"oeessed calrtridges can,.l?~ unloaded at the
same time and deposited in the "discharge storage position" at the front of the ACL, and the
next cartridges to be processed will be loaded in.
The entire load operation of all the drives will
take approximately 40 seconds, and is accomplished without operator intervention.

Figure 7. Inserting a Tape Cartridge.

loaded cartridge; this plunger can also be depressed manually. When the cartridge is fileprotected, an indicator on the back of the cartridge displays the letters "FP." The cartridge
can be "un-file-protected" only by manually releasing the plunger by means of a slide-release
_
mechanism (Figure 8).
The Beginning Of Tape (BOT), End Of
Tape (EOT), and End Warning Mark (EWM)
are detected by three photosensed markers.
Backward tape motion is halted when the BOT
marker is sensed. The marker is about 15 feet
from the physical beginning of tape on the takeup reel; it consists of 12 holes occupying about
1.5 inches along the edge of tape nearest the
drive. Forward motion of tape is halted when
the EOT marker is sensed, and hence tape cannot run off the end of the reel. This marker is
about 15 feet from the physical end of tape on
the supply reel; it also consists of 12 holes, but
they are located midway between the edges of
the tape. The EWM is about 40 feet from the
EOT marker. It consists of 23 holes occupying
about 1.5 x 0.07 inches along the edge of tape
nearest the operator; the holes do not interfere
with recording of data on tape. \Vhen EWM is
sensed on a selected drive, the end-warning-

A cartridge may also be loaded into the ACLequipped drive by direct operator control. The
operator merely places the new cartridge in the
load-storage position of the ACL, and when the
door is closed the cartridge automatically is
loaded into the 7340, if no other cartridge was
in the loaded position. If a cartridge was in the
loaded position, the operator would have to push
the Unload button. The loaded cartridge would
then be placed automati~;;tlly on the discharge

Figure 8. Cartridge File-Protect Device.

THE IBM HYPERTAPE SYSTEM

shelf at the front of the -A,CL, and the other
cartridge would be loaded.
SIMPLEX INTERFACE
The simplex I/O interface is a set of lines
which connect the 7640 to the computer. There
are a total of 33 lines, 18 from the computer to
the 7640, and 15 from the 7640 to the computer.
(See Fig. 9.) Generally speaking, any sjgnal
must be maint_ed until its :ire~ponse, provided by the receiving unit.

is

The 7640 can be operated in one of three
modes: CE, Ready, or Diagnostic. Normally
the 7640 is operated on-line in Ready mode, but
for testing and repair it can be operated off-line
in CE (Customer Engineering) mode. Diagnostic mode is identical to Ready mode except
that three switches on the CE panel are operable. These will be discussed later.
Initially, the computer and 7640 are interlocked by the Operational Out line and the Operational In line respectively. The Operational
In line is conditioned by the 7640 if it receives
the Operational Out line from the computer and
it is not in CE mode.
7640

COMPUTER
OPERATIONAL

..

READ
WRITE
CONTROL
SENSE
WRITE BUS (9 LINES)
SERVICE RESPONSE
STOP
END RESPONSE
ATTENTION RESPONSE

--

OPERATIONAL
COMMAND RESPONSE
READ BUS (9 LINES)
SERVICE REQUEST
END
UNUSUAL END
ATTENTION

Figure 9. Interface Lines.

--

427

An operation is initiated on one of the four
lines: Read, Write, Control, or Sense.
Upon receipt of the command, the 7640 will answer with a signal on the Command Response
line.
comma~d

During both a Write and a Control operation,
information is transferred from the computer
to the 7640 via the Write Bus (9 lines). The
7640 asks for the information by means of a
signal on the Service Request line,and when
the information is available on the Write Bus,
the computer answers with a Service Response.
The Write command is terminated by a STOP,
and the Control command is terminated by either a STOP or a special instruction called an
End of Sequence (EOS). The 7640 indicates
successfut completion of the command by sending an End to the computer, or an unsuccessful
completion by means of an Unusual End. In
either case, the computer responds with End
Response. The cause of an Unusual End may
be determined by analysis of the status information obtained by a subsequent Sense command.
During both a Read and a Sense command,
information is sent to the computer from the
7640 over the Read Bus (9 lines). \Vhen the
information is available on the Read Bus, the
7640 sends a Service Request to the computer.
When the information has been accepted, a
Service Response is returned. During a Read
operation, the transfer of information occurs
until a STOP is received from the computer or
the end of the record is reached. At this point
the 7640 indicates a successful completion
of the Read by sending an End to the
computer or an unsuccessful completion by
means of an Unusual End. The computer
responds with End Response to either case.
Since the Sense operation 'is simply a request
for the status information of the 7640, only an
End can occur at its completion. The 7640 will
indicate there is status information on the Read
Bus by means of a Service Request, and the
computer will answer with a Service Response
when this information has been accepted. The
operation will be terminated when STOP occurs or when 14 "bytes" of information have
been sent to the computer. End response will
answer the End signal.

428

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

WRITE OPERATION
As previously defined, the vVrite section of
the 7640 is time-shared between both channels.
If a Write command occurs in Channel A, and
then later a Write command occurs in Channel
B, the command in Channel B will be stacked in
the 7640 until Channel A releases the Write
section.
Upon receiving a Write Command, the 7640
tests for the following two error conditions:
1. Operator Required-indicated if the selected drive is not ready;
2. Program Check-indicated if the selected
drive is not loaded, or if it is file-protected, busy, or at EOT.
If either of these conditions exists, an Unusual
End will be signaled immediately. If neither
exists, a write Delay must bel taken before actual writing can commence. If the Write Command occurs while the tape is stationary and
the 7340 is in Write status, a 3.1-msec delay is
taken before writing is started. The Start specification of the 7340 is 3.0 msec. To test if the
proper speed has been achieved, a burst of zeros
is written in one track for a certain period of
time; this is called the "velocity burst." The
7340 has a two-gap head; hence, information
written on a tape passes under the read head
approximately 1.3 msec later. At this time the
duration of the velocity burst is checked. If
the tape was not up to speed when the velocity
burst was written, the burst's duration win be
less than expected. * A variation of approximately minus 10% is allowed before an Unusual
End is signaled. The error is identified as a
Track Start in the Sense Data, and the programmer has the option of rewriting the record.
As previously stated, the stop time of the
7340 is 3.0 msec. After the Move Tape line
from the 7640 to the 7340 is deconditioned,
there is a period of 300 p'sec during which the
line could be conditioned again. This is allowed
because of the mechanical delays in actuating
the stop mechanism. If the Move Tape line does
not rise again during this time interval, the
tape must be allowed to stop completely before
it can be told to move again. However, the
7640 provides to the computer a 1.0-msec time
interval, during which the computer can rein-

* Patent

applied for.

struct with another Write command and the
tape will not stop between Writes. This is accomplished, in conjunction with the above-described 300 p'sec, by holding up the Move line
for 700 p'sec after the completion of a Write.
Upon completion of any Write operation, another Write operation is anticipated, and a
short write delay of 2.6 msec is started. If the
Write command does not materialize in the allotted 1 msec, the tape is stopped. From the
time the Move line is deconditioned, a 3-msec
interlock prevents the Move line from being
conditioned again except during the initial 300
p.sec. Reinstruct within the 1.0 msec results in
minimum gaps and fast access times. This is
called a Continuous Write, for which there is
no velocity burst since tape continued to move
at nominal velocity. Figure 10 illustrates the
1.0-msec Reinstruct. *
The 7340 is in Write status if the last operation it performed ,:vas a Write operation. If a
Write command is sent from the computer to
the 7640, and the 7340 is not in Write status,
a "backhitch" (reorienting of the head in relation to the previous record) must occur. This
is because the previous operation could have
been a Backspace or a Read, etc., and the exact
position of the read-write head in the gap would
be unknown. A Write without reorienting the
head could result in a partially erased record in
the gap. Thus, in order to erase a proper gap,
a Write command, with the 7340 not in Write
status, will cause the tape to backspace until
the previous record is encountered. The tape
will stop, and then move forward out of the
record. Just as the read head leaves the record, Write status will be set, and a 2.6-msec
Write delay will be taken at full velocity. In
addition to eliminating the partially erased record in the gap, the "backhitch" results ih a
minimum interrecord gap.
As previously mentioned, the Hypertape system uses a phase-encoding type of recording
rather than NRZI. With phase-encoding recording a signal exists for both ones and zeros, with
their differentiation depending on the phase (or
direction) rather than on the magnetic strength
of the recorded signal. Thus, phase encoding is
less sensitive to noise than NRZI, and hence is
inherently more reliable.

429

THE IBM HYPERTAPE SYSTEM
_TE~

-,==-r:
91OC1J-i=J
__~-~~@00N~~r-------,~~-------"L-'

~

WRITE STATUS

....::o!iiJ

SERVICE REQUEST PlLSES

_________
-IL

3.1ua.

{31

_ + - 1_ _.....J..... _______ _

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

STOP
ANlSH READ Q£CKING

------------~~~~~~~
( 71

WRITTEN DATA FORMAT
(ONE TRACK)

m

r l
11

CHARACTER
RECORD

NO""
0)" n.....p. ..... n..~Wri_~oceurrioI>gotlloe---~~poa.>ble..
K . . --.dWri.=--dhcod_durirlgth.7ODpHCoh-&rd.Ib. ........ TapeI... -W
.-t-..~.

Ithe-.dWri.. .....--.IIoo:od_ ....... d . I . o - - n - t ........... ~line-'1cI
ha...hadlDr-.0 ::

==



«Actuator> ;  :: = 
I 
 :: = r].

The state of a variable (active or inactive) is a
Boolean variable associated with each variable.
We will place the further restriction that a subtask call may not be used in a compound statement or in a simple or priority subtask.
The coding body of a simple task may be
written in a machine language code which is
otherwise unspecified.
Two pseudo blocks which are executed only
once each may be included as the first and last
statements in the body of a procedure. These
are defined by enter" 'end or exit· . 'end with
enter or exit replacing a begin. An enter block
is executed only on first entrance and in a non-

CONSEQUENT PROCEDURES IN CONVENTIONAL COMPUTERS

priority mode. An exit block is executed just
prior to the subtask completion exit and is always executed in a non-priority mode.
In order to simplify the language description
given here, we will use descriptions of statements in place of the statement when the explicit syntax for such a statement has not been
given. Such descriptions will be placed between parenthesis to prevent confusion with
comments.
4.2 Description of Example.
This example involves the control and logging
of data from a simple ~xternal device and will
illustrate the interactions of various priority
and non-priority tasks. The same types of interactions, although there might be no need for
priority tasks, would occur in some data processing applications.
Let us suppose the external device has three
asynchronous processes. Process one sets a
value of a variable and holds it during the remaining two processes. We may modify certain device parameters so as to cause the variable value to assume the desired value. The
second two processes are very similar but are
not sequentially related. We may initiate either
process and at a later time (signalled by an interrupt) we may read in a vector of 3 values
for each process. Computations using these
values then produce a new setpoint for the first
process which is set and held dynamically for
the remaining two processes. The value of each
setpoint is typed out and a wait, if necessary, is
made to prevent stacking demands on the typewriter.
In case of failure, for any reason, to complete the above cycle within a specified time
limit, we will assume some disaster has occurred, shut down the external device and remove the task tree from storage as an emergency measure. The system will so notify the
user.
The operator may change the value of the
Boolean variable QUIT to true and cause the
task tree to finish· normally.
4.3 Coding for Example.
The user would request the task called
MEASURE and supply appropriate values for

473

its parameters. The meaning of the parameters in MEASURE is as follows
P A, PB-define the priority interrupt entrance. If· an interrupt associated with
P A occurs, the priority subtask associated
with PA will be entered in the priority
mode. If the subtask does not exist, it will
be ignored.
LIMIT-is the integral number of clock interrupts which must be received before
disaster is assumed.
I-is a counter for clock interrupts. It may
be reset to zero at any time.
QUIT-is a Boolean variable which, if true,
requests cessation of operation.
D-is a range bound on the value of the variable C.
N A, NB-are the norms of the vectors A, B.
A, B-are vectors whose values are obtained
from the external device.
C-is the value to be held in the external device by the first process.
READY-is a dummy Boolean variable denoting that the setpoint has been reached.
The enter block will establish the priority
subtasks HOLD and TIME which will remain
active for the duration of the control task. This
block is executed only on first entrance to the
task MEASURE.
The subsequent entries to the task, MEASURE, will be made at the first statement following the enter block. Subsequent entries will
be made at the completion of any subtasks of
l\iEASURE.
The calling of the evaluate subtask will be
considered only if its input data, N A and NB,
are available and the last value of C has been
logged.
The remaining subtask calls will be made if
during execution of the task body (an activation scan) their activators are true. The activator for a subtask will be set false at completion of that subtask. Note that the order is not
important since any order of the remaining
statements will produce the same results.
Since the scheduling of the subtask calls is a
function of currently available storage and of

474

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

the occurrence of the priority interrupts the
programmer does not know how much overlap
of subtasks will actually occur on each measurement cycle. If storage is temporarily restricted,
the subtasks would be executed one at a time in
sequence. If the response to INPUT1 is very
fast, NORM (A; A, NA) may be executed during INPUT2 and while TYPE is operating.
The system will automatically take advantage
of such overlapping and will give the best response, on each cycle, that is possible under the
conditions then prevailing.

complex MEASURE (PA, PB, D, LIMIT,
QUIT); priority P A, PB; real D; integer
LIMIT; Boolean QUIT; begin real N A, NB,
C ;real array A, B [1 :3] ;
subtask EVALUATE, HOLD, TIME, INPUT 1, INPUT 2, TYPE, NORM; Boolean
P, READY;
integer I;
enter C: = 0.0; [C]:=true; READY:=
false; HOLD ([C]; C, READY, QUIT,
I) ; TIME ([C]; LIMIT, I, QUIT) ;
end entrance block;
'if QUIT t1J,en go to EXIT
if [NA] and [NB]and-[C] then P :=true
else go to SKIP; EVALUATE (P; NA,
NB, C, D);
SKIP: NORM ([A]; A, NA) ;
NORM ([B]; B, NB) ;
INPUT1 (READY; A, PA) ;
INPUT2 (READY; B, PB) ;
TYPE ([C]; C);
EXIT: end MEASURE
The subtask HOLD is a clock priority routine. This implies that an entrance to the body
of the subtask will be made in the priority mode
each time a clock interrupt occurs. The enter
and exit blocks are executed only once and in
the non-priority mode. The variables declared
in hold have the following meaning;
X-is assigned the value at the external address DIAL.
DIAL-is an address which selects the register in the external device holding the value
to be assigned to X.
ERROR-is the discrepancy between the
setpoint and the current value of DIAL.

The enter block initializes the mode switch
to hold and requests an entrance on the next
clock interrupt. This is executed in the nonpriority mode. Subsequent priority mode entrances are made at the first statement after
the enter block.
If the error is large, HOLD assumes that
a new setpoint has been requested and READY
is set false. When the error has been reduced
to an acceptable value, READY is set true to
initiate the appropriate subtask calls in the
parent task. An activation scan of the parent
task is requested to give the parent the opportunity to make such calls.
The normal exit from the priority mode section of HOLD is made by requesfing another
clock interrupt and releasing control.
This subtask will complete only when QUIT
is true by requesting its removal at a later time
in the non-priority mode and releasing control
to the interrupted coding. The system will then
enter the coding body and execute exit block in
the non-priority mode. This results in a return
to the parent task and the destruction of this
subtask.
clock priority HOLD (A1, A2, QUIT, I) ;
real A1,; Boolean A2, QUIT; integer I;
begin real X, ERROR; external address
DIAL:=1234;
switch MODE:=SET, HOLD; integer N;
enter N:=2; (REQUEST CLOCK INTERRUPT) end if QUIT then go to
DONE;
(INPUT VALUE AT DIAL AND ASSIGN TO X);
ERROR:= X - A1; go to MODE [N];
SETC: if ABS (ERROR) < 0.01 then
begin [A2]:= true; N:= 2; 1:= 0;
comment this resets the time limit clock
count;
(REQUEST ACTIVATION SCAN OF
PARENT) end;
CORRECT: (INITIATE APPROPRIATE
CORRECTIVE ACTION TO HOLD ERROR AT A MINIMUM); (REQUEST
CLOCK INTERRUPT); (RELEASE PRIORITY);

CONSEQUENT PROCEDURES IN CONVENTIONAL COMPUTERS

475

HOLDC: if ABS (ERROR) >0.5 then begin
[A21:== false; N:== 1 end; go to CORRECT;

sired priority interrupt, PI, which signals that
the values of Al are ready to be read.
priority INPUTI (AI, PI) ;

DONE: (REQUEST PRIORITY TASK
EXIT); (RELEASE PRIORITY CONTROL); exit (SHUT DOWN HOLDING
ACTION) end

priority PI ; real array Al ;
begin
enter (REQUEST P RIO R I T Y ENTRANCE ON PI);
(INITIATE EXTERNAL ACT ION
WHICH CAUSES PRIORITY INTERRUPT PI)
end entrance set up;
(INPUT EXTERNAL VALUES OF Al
AND ASSIGN TO AI) ;
(REQUEST PRIORITY TASK EXIT) ;
[AI] : == true;
(RELEASE PRIORITY)

end hold
The subtask TIME is a clock priority routine
which counts clock interrupts. If the limit is
reached emergency action is taken. This subtask is active during the operation of MEASURE and does nothing but count unless QUIT
is true or LIMIT is reached. If QUIT is true,
the subtask completes in the same fashion as
hold. If the limit is reached, something is beyond control and the entire device is shut down
and a request to eliminate the entire task tree
is made of the system. When this is accomplished, the system will so notify the user.
clock priority TIME (LIMIT, I, QUIT)
integer LIMIT, I; Boolean QUIT;
begin
enter I: = 0; (REQUEST CLOCK INTERRupT) end; if QUIT then go to
DONE"
I: == I
1; if I == LIMIT then
begin (SHUT DOvVN EXT ERN A L
EQUIPMENT) ;
(REQUEST EMERGENCY ERASURE
OF TASK TREE) ;
DONE: (REQUEST PRIORITY TASK
EXIT)
end LIMIT REACHED
else (REQUEST CLOCK INTERRUPT) ;
(RELEASE PRIORITY CONTROL)

+

end time
The INPUT 1 and INPUT2 subtasks are identical, at least to the degree of coding appropriate here, and only differ in the external device addresses which are used to obtain information. We will discuss only INPUT 1 which
uses formal parameters corresponding to actual
parameters which have been discussed.
INPUTI is a priority routine whose body is
executed only once. The enter block sets up the
priority entrance and initiates the external
process which will, at a later time, give the de-

endINPUTI
The· remaining subtasks, E V A L U ATE,
NORM and TYPE, are simple non-priority
routines that are executed only once per call
and return control to the parent task. The
actual parameters used in the calls have been
discussed and there is little more to say about
these subtasks.

simple EVALUATE (AI, A2, A3, A4) ;
real AI, A2, A3, A4;
begin A3:==(Al
A2)/(Al x A2)
+0.5;
if A3 < A4 then A3: == A4;
[A3] :== true; [AI] :==[A2]: false
end evaluate

+

simple NORM (A, N)
real N; real array A ;
begin N: == (A [1] i 2
2) i 0.5; [N]: == true
end norm

+ A3

+ A [2] i 2 + A [3] i

simple TYPE (AI) ;
real AI;
begin (TYPE VALUE OF AI) end type
5.0 SYSTEM REQUIREMENTS.
A system of the structure described may be
operated on many levels. It might be used as
shown in the example within a single processor
or it might be used in such a fashion that the
activation of a subtask calls into play a whole
subset of a man-computer-machine complex.

476

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Some of the subtasks might be performed by
people while other people controlled the overall
tree structure by making appropriate requests
of the system. In a multprocessor system it is
not necessary but it may be desirable to specialize one of the CPU to perform the allocation
and scheduling operations. Such specialization
could also allow queue control and the subsequent use of the more general activation concept previously discussed. A small associative
memory would be advantageous for storage of
activator parameters. Indeed, this latter organization is a very intriguing way to consider
multi-processor systems. We will, however,
confine our subsequent remarks to a single
processor system.
We have implicitly considered that the single
processor has a secondary (or multi-level) store
which has a size sufficient to maintain total
library control and transient data storage. We
are not so concerned about transfer rates between primary and secondary storage so long
as average rates are satisfactory. Critical response loops may be closed through priority
routines which have been installed before the
high speed loop is initiated.
The most significant demand on core space
arises from currently active priority tasks
which must occupy storage until their task is
done in order to give short reflex times. If
longer reflex times are suitable, a small interrupt routine can activate a non-priority task to
do the job.
Dynamic allocation of primary storage is a
critical factor and can easily become the most
time consuming part of the system which otherwise has a very low duty cycle that is optimumly phased with the workload. It is still feasible

to relocate subtasks as they are entered but it
would be much more desirable if routines could
run wherever they happen to be without relocation.
The system itself requires only a small
amount of core storage for the control program
and tables and may itself extend into subtasks
for auxiliary operations or extension of facilities.
REFERENCES
1. BROWN, G. W., "A new concept in programming", in Management and the Computer
of the Future, Martin Greenberger editor,
(John Wiley and Sons Inc., New York,
1962), Chap. 7, pp. 250-289.
2. SCHWEPPE, E. J. and FITZWATER, D. R.,
"Consequent Procedure Networks", to be
published.

3. McFARLAND, D. E., FITZWATER, D. R. and
STEWART, R. M., "A Multiprogrammed Real
Time Computer Control System", presented
at the 1963 Fall SDS Users Conference.
4. McFARLAND, D. E., FITZWATER, D. R. and
STEWART, R. M., "A General Control System for Experiments", to be published.

5. PICKERING, G. E., MUTSCHLER, E. G. and
ERICKSON, G. A., "Multicomputer Programming for a Large Scale Real Time Data
Processing System", AFIPS Proc. SJCC
Vol. 25 (1964), pp. 445-461.
6. MCCARTHY, J., BOlLEN, S., FREDKIN, B. and
LICKLIDER, J. C. R., "A Time Sharing Debugging System for a Small Computer",
AFIPS Proc. SJCC Vol. 23 (1963), pp. 5158.

THE JET PROPULSION LABORATORY
EPHEMERIS TAPE SYSTEM
E. G. Orozco
Jet Propulsion Laboratory
Pasadena, California
rectangular coordinates of position and velocity
components of the Moon and the nine planets.
In addition, nutations in longitude and obliquity
are included. Modified second and fourth differences of these quantities are tabulated for purposes of interpolation.

INTRODUCTION
Predictions of the motion of celestial bodies
can be presented in tabular form .. These tables,
called ephemerides, list position as a function
of time. Positions at any time point within the
range of the table can be obtained by interpolation.

Numerical differentiation of tabulated positions is too inaccurate for problems in which
planetary velocities are critical. For these critical cases, planetary position and velocity are
simultaneously obtained from a solution of the
equations of motion for the planet. The position and velocity components thus generated
are mutually consistent with gravitational
theory to high precision and are the best fit in
the least squares sense to source posi tion
predictions.

Ephemerides are required in the solution of
problems associated \:trith space exploration. The
solution of these problems is primarily accomplished with the aid of digital computers.
Ephemerides are generally tabulated on magnetic tape to make them acceptable for use by
computers.
The .Jet Propulsion Laboratory has, in the
past, developed tape ephemerides. Figure 1
summarizes the contents of these tapes and the
programs used to read and interpolate the data.
Because of increased accuracy demands, these
tapes are no longer adequate.

No set of predicted motions now available
can be considered final. Accordingly, the JPL
Ephemeris Tape System is designed to permit
the easy updating of data for any body or
bodies.

The Ephemeris Tape System was established
solely to meet JPL's needs, but the ephemeris
tapes generated and the program used for reading and interpolating the ephemerides will be
useful to anyone doing interplanetary trajectory work.
GENERAL SYSTEM DESCRIPTION

Positions and velocities are carried as double
precision floating point numbers (that is, to
about 16 decimal places). This allows for predictions more accurate than those now available to be readily assimilated into the Ephemeris
Tape System.

The ephemeris data generated by the JPL
Ephemeris Tape System covers the period from
1950 to 2000. They include tabulations in

The JPL Ephemeris Tape System is designed
to prevent degradation of the accuracy of source
data during the data processing. The use of

477

478

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Tape

Period

N\Dllber

Covered

Interpolation

Bodies on Tape and Data Interval. (da;ys)

Data
Record
Length

Subroutine

(20-Day
Record)

§
112

u

l

u

E ......,'.s::"
i

I

s::
~

~
~

s::

....0
~

.e

~

~

~

..,.'"

§

g

g

~

~

~

.;

1

1

4

4

4

1 JAN 60

"So

~
~
~

~.s::

>.

~

~

~
~

~

~
s::

,.~

~

~..,.s::
,.~

.a

~

~

.e

s::

~
';l
112

DITR

596

69

DITR

515

1

4

4

4

4

4

4

--27 JUL 81

A!I'l'R

569

1

4

4

4

4

4

4

4

BlI'l'R

623

1

4

4

4

4

4

4

4

--19 DEC 69
II

28 AOO 60
--19 DEC

III

II JAN 50

IV

s::

23 JAN 50

~J'UII81

>.

~

~
~

~

4

Figure 1.

double precision contributes toward this end.
Intervals of tabulation were chosen so that
interpolation yields accuracy consistent with
tabulated values. Formal procedures for checking each step of the processing are included to
insure that the published ephemerides are free
from error.
An interpolation program has been written
to read and interpolate the JPL Ephemeris
Tapes. This program includes a number of
useful options along with the interpolation
capability. Coordinates referenced to any of
the tabulated bodies as center may be obtained.
Units may be AU's and AU's per day or Kilometers and Kilometers per second for the
planets. For the Moon, coordinates may be obtained in Earth radii and Earth radii per day
or Kilometers and Kilometers per second. Position data only, velocity data only, or position
and velocity data together may be obtained.
Data for all the bodies on the tape or any
subset of these are available as desired. Any
date between 1950 and 2000 is available for the
ten bodies on the tape.
SOURCE THEORY EVALUATION
Source position data as generated from the
theory are kept in a source tape library. The
data included in the current JPL Ephemeris
Tape are the most accurate predictions of lunar
and planetary motion available. At the present
time the best source theory for the Moon is
the Brown Improved Lunar Theory. The New-

comb theories are used for Mercury, for Venus
and for the Earth-Moon barycenter, with corrections to the mean elements deduced for Mercury by Clemence and for Venus and the EarthMoon barycenter by Duncombe. The provisional
Hansen-Clemence theory is used for Mars. For
the outer planets, the source data are obtained
from the numerical integration by Eckert,
Brouwer and Clemence, ,vith corrections deduced by Clemence to transform the data to
heliocentric coordinates.
Velocities are generated by numerical differentiation for the Moon, Mercury and Neptune
and by solution of the equations of motion for
the other planets. The solution of the equations
of motion for each body is done by a program
that includes a linear regression scheme that
generates and applies differential corrections to
the initial position and velocity until satisfactory least squares fit to the source data is obtained. The perturbing attractions of the other
eight planets are computed from positions obtained from the current Ephemeris Tape. The
integration step size is chosen so as to insure
twelve-figure accuracy in the calculated positions. The final corrected values of initial position and velocity are used to initiate a final
numerical integration. The position-velocity
output tape is written during this final iteration.
OPERATION
The position-velocity tapes (source and
fitted) are processed by a program which cal-

479

THE JET PROPULSION LABORATORY EPHEMERIS TAPE SYSTEM

these tapes are checked to insure consistency of
the modified differences.

culates the sixth order central differences of
the data. These differences are plotted. Any
missing point or inconsistent data cause large
discontinuities in the plots of differences. Any
such discontinuities cause rejection of the data.

DOCUMENTATION
A document describing the data on JPL
Ephemeris Tapes is prepared when a tape is
ready for distribution. This document includes
a description of the theory from which each
body's data are generated. A statement as to
the accuracy of the data is included for each
body. Checks performed on the data are mentioned. If the data was fitted using the integration program, this is pointed out. And, finally,
the plots used in checking the data are included
in this document. The Stromberg Carlson 4020
plotter is used for this purpose. An example
is given in Figure 3.

Accepted data tapes are processed to calculate second and fourth modified differences of
the position and velocity coordinates. A new
tape is then written for each planet containing
the position-velocity coordinates along with
their associated modified differences.
These tapes are then merged onto a JPL
Ephemeris Tape containing data for all ten
bodies. The data for ten bodies are buffered and
overlapped for convenience of interpolation.
Due to the amount of data involved, three tapes
are required to contain the fifty year span from
1950-2000. Figure 2 summarizes the contents
of these tapes.

DISTRIBUTION
The first JPL Ephemeris computer package
is currently available for distribution. The distributed package includes a user's guide, an
interpolation program, a document describing
the tape contents and three magnetic tapes
containing the ephemerides information.

A consistency check is made between the JPL
Ephemeris Tapes and the data on the pertinent
position-velocity tapes. This assures that no
points have been lost or displaced.
Using the modified differences to interpolate,
a tape is written carrying the positions and
velocities of a given body at the midpoint of its
tabulated dates. These tapes are processed as
source tapes and plots of sixth differences from

DlTA T!PI

8'l'BP

KtIIBEII

SIZE
(DlYS)

07
W
READS
WR ITF:D
WRITEB
BSREC
8SFIlE
REWIND
UNLOAD
ENOFIL
SETlOW
SETHI
CUNIT )
TAPEIO
, IOU)
aUTU::.
8FlG
EHoour
CKINO
CKACT
REQIND
ACTI"lO
RESTKA
PllCUN
PL2CUN
Pl3CON
PRCO"l
RGGSAV
RGGSTR
10CS
DEFINE
JOIN
ArTACH
CLOSE
OPEN
READ

61756
63760
63763
63765
64174
64117
64202
64205
64210
64166
64171
64336
64336

WRtH:

COPY
REw
WEF
BSR
8SF
STASH
CLOCK
MINUTE
XMIN

I

TRANSFER VECTORS
DEFINE
ATTACH
OPEN
READO
PROUT
CLOSE
OUTUS
ACTIND
BFlG
RESTKA
REQIND
WRI TE
PRCON
RGGSAV
RGGSTR
CKIND
CKACT
I IOU)

b434~

64374
65227
64760
66622

PROUT

CLOSE

8/01/64

LOAl) ADO.
22300

OCTAL LENGTH
36616

DE:CIMAL LENGTH
15758

61116

02631

01439

631')5

00365

00245

"NONE"
RGGSAV
RGGSTR

64342
64372

00030
02320

00024
01232

'NONE'

66712

00133

00091

CLOCK

67045

04335

02269

"NONE'

13402

00106

00070

COMMON BREAK
77461

6666~

66621
66620
66616
66701
66702
66703
66704
66712
66774
67046
67047
67052
6705':>
67060
67063
67066
67071
61074
67071
67102
67105

67110
67113
73405
73402
73402

LOAllING ACCOMPLISHED
UNUSED CORE LIES

fRO~

73510

THROUGH

77461,

LEAVING

03752

OCTAL OR

02026

Figure 14. A typical core storage load generated by the Loader.

DECIMAL LOCATIONS.

JPTRAJ (THE NEW JPL TRAJECTORY MONITOR)

487

deck follows a program deck, it is executed
after the program has been loaded, thus providing a "load-and-go" operation.
The Loader can accept symbolic patches to individual binary object decks. Patches must immediately follow the intended subroutine, and
facility is included for increasing its length if
necessary. The patches may be in either fixed
or floating point decimal or in octal form. Relocation will be performed if specified. Figure 15
shows a card which will insert a TRA * + 3 at
location 220 8 within a subroutine.
Debug

Undoubtedly one of the most powerful features of JPTRAJ is Debug. It offers the user
a means of obtaining selective core snapshots in
any mode and at any desired frequency, and
does not decrease the amount of core storage
provided a program. The debug cards are placed
in a source deck much like data for the intended
program. They do not accompany the binary
deck, so the program need not be reloaded if
snaps are desired.
Debugging is done on the basis of locations
relative to a particular subroutine. A typical
debug card is illustrated in Fig. 16. The card
may be interpreted from left to right to read:
in subroutine A, place the snap at location 41.
Print in floating point mode the contents of
subroutine B, relative locations 155s through
267 s • This is shown schematically in Fig. 17.
Whenever the instruction on the dotted line is
executed by the computer, the hatched area is
printed in floating point mode.
The debug cards are processed by the Compiler, with the aid of the core storage map generated by the Loader. This map cross-references
subroutine entry names and absolute storage

Figure 16. A typical debug card.

addresses. The Compiler translates the debug
cards into part of the object string and overlays them in the program after it is read into
core storage. The debug instructions are not
put on the disk and do not affect a program's
permanent operation.
As many as twenty debug cards may appear
in a source deck. The modes of snapping on
any card include floating point and octal with
or without instruction mnemonics. The contents of the panel (all registers and indicators)
may be included on option.
The one restriction on the use of Debug is
that it may be used during checkout only. The
software necessary for real-time data processing does not provide sufficient space for the
debug machinery.
III. CONCLUSION
The New JPL Trajectory Monitor has proved
to be an invaluable asset to the Laboratory's

c
o
R

267

E
155

5
T

o
R
A

G

E

Figure 15. A symbolic patch for a subroutine binary
deck.

41

Figure 17. The meaning of the debug card shown in
Figure 16.

488

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

space flight operations. It has been working
quite smoothly since the end of 1963. At the
moment, it can operate programs written in
Fortran II, Version 3 system only, but modification is under way to interface with the
IBJOB programming system. Any program
that operates under JPTRAJ may be operated
in real-time, so JPTRAJ has, in fact, been
JLP's only way to debug mission programs.

It should be evident that nothing limits
JPTRAJ to space flight programs alone. The
designation "Trajectory Monitor" is of historical origin, and, in fact, many non-trajectory
type programs are operational under JPTRAJ.
Any IBM 7094 system with disk file storage
may use JPTRAJ, and modification will be
completed soon which will allow JPTRAJ to
operate on a "Direct-Couple" system.

ACE·S/C ACCEPTANCE CHECKOUT EQUIPMENT
R. W. Lanzkron
NASA
Manned Spacecraft Center, Houston, Texas
INTRODUCTION

tives in developing its automatic checkout
equipment. First, due to the complex checkout
procedure and the large booster hazard, checkout by remote control became essential. Current plans call for the checkout equipment to
be located ten miles from the vehicle. (Automatic checkout lends itself extremely well to
remote control.) Second, the cost of the space
program has to be reduced. One of the most
expensive parts of the space program is its associated Ground Support Equipment (GSE).
Therefore~ by standardizing the checkout equipment while it is being automated, the period of
its use can be prolonged indefinitely. This is
one of the basic requirements placed on MSC's
automatic checkout equipment or, as it is called,
ACE-SIC (Acceptance Checkout Equipment).

Since the beginning of the space age, spacecraft have increased· in complexity-progressing from such relatively simple vehicles as the
V-2 to the sophisticated Saturn, and from
unmanned satellites to the Apollo three-man
spacecraft. With the entry of man into the
system, the complexity increased an order of
magnitude.
Two aspects of these manned systems demand complexity: first, those problems involved
in the life-support requirements for each system and, second, the increased requirements for
reliability and crew safety. Systems are more
sophisticated; at least one backup and usually
more are required. The engineer is confronted
with the difficult task of insuring that the complex system is ready for, launch and that it will
meet mission and crew safety requirements.

The ACE-SIN System has one other unique
feature. It combines the capabilities of manual
and automatic checkout into one system. This
dual capability was incorporated at the request
of the system engineers who are still not accustomed to completely automatic systems, and
for whom automation is still in the learning
process.

Final countdown for early missiles took about
a day. Although countdown in some of the
small, modern missiles has been reduced to
one or two hours, the newer and more complex spacecraft still require about a day. Moreover, to insure mission success and crew safety,
great quantities of data must be monitored in
real time before launch. This was not previously the case when real-time monitoring involved
only a small percentage of the instrumentation.

II. ACE-SIC DEFINITIONS
The ACE-SIC System is composed of two
main parts: the Spacecraft Unique System
(carry-on and facility equipment) and the
Ground System (as shown in Figure 1).

To perform checkout and monitor large numbers of parameters in real time, automatic
checkout equipment had to be developed. The
Manned Spacecraft Center had two other mo-

The carry-on and facility equipment is associated with the spacecraft, for example, the
489

490

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

Oth"rte.tfacilitie~.
.
response systems

.'"

ACE 5 C". ....vice
.=lui,...."t

.

~

I

I

I

ACE· S C command
& response systems

I

!i

LEM
corr, on comlllOnd
& ,espons" s,st"ms _--+~_

~Digital

links

~--/
~I"I

Figure 1. ACE-S C carry-on and facility

Command and Service ModuJ e (C & SM) or
the Lunar Excursion Module (LEM). It consists basically of (1) signal-conditioning equipment which conditions signals transmitted
from the spacecraft, commutates and digitizes
them, and finally converts them into serial
pulse form, and (2) the command system, which
takes computer outputs and presents them to
the spacecraft system. These parts are modular and, by using the building block concept,
can be used with any spacecraft or flight vehicle. Signal-conditioning is made part of the
ACE-SIC system to minimize fly-away weight.
The carry-on equipment is removed from the
spacecraft 5 hours before launch so that no
scar and tear weight associated with checkout
is flown; thus measurements can be taken up
to the time the spacecraft is sealed.
The second part, the Ground System, takes
the serialized data, decommutates it, and displays it on meters, lights, oscillographs, or alphanumeric displays. The Ground System also
takes system engineering inputs and translates
them into computer language used for command of the spacecraft. The ground station is
the same for both C & SM checkout and LEM
checkout.

III. CARRY-ON AND FACILITY
EQUIPMENT
The carry-on equipment is divided into two
par.ts: the Uplink (the Digital Test Command
System), and the Downlink (the Digital Test
Monitoring System), as shown in Figure 2.
A. The Uplink or Digital Test Command System (DTCS)
The DTCS, in turn, consists of two parts:
internal and external to the spacecraft. The
DTCS consists of a receiver decoder, base plates,
and pluggable modules. The pluggable modules
are relay and Silicon Controlled Rectifier
(SCR) modules and Digital-to-Analog Converters (DAC). The receiver decoder, the first
portion of the system to receive data in a serial
stream in redundant form, compares the data
and checks for correct codes. The receiver decoder stops incorrect information, signals the
Ground Stations that it has received erroneous
data, and indicates the type of error. Information may be incorrect because of transmission
or because of errors in the original data sent
to the spacecraft.

From the receiver·decoder, the information is
routed to the base plate, which stores the power

ACE-SIC ACCEPTANCE CHECKOUT EQUIPMENT

and the pluggable modules discussed above.
Each base plate contains 4 pluggable modules.
The systt;;m is modular; any module (relay
module, SCR, and DAC) can be selected and
plugged into the base plate. The receiver decoder can drive 32 base plates which are
grouped into 4 groups of 8 plates each. The
modules again verify that information received
from the receiver decoder is correct and, by
looking at the address, that the correct base
plate and module have been selected. Notification of incorrect information and the type of
error involved is sent to the ground station,
which may not then execute a command. Should
there be no error, verification is sent to the

Figure 2.

491

ground station, and the System Engineer may
then exectue the command.
The relay module is used for turning specific
signals to the spacecraft on or off. The SCR
module is used for high-speed switching and
for high current capacity. The DAC modules
is used for changing the stream of digital data
into an analog signal. This conversion is required, for example, in torquing a Gyro, where
a series of digital commands are sent to the
vehicle, converted to voltage levels, and in turn
filtered so that the output is smoothed and
looks like an analog sine wa ve. The system
can transmit data in bursts at a rate of 500 k
bits per second. The basic information is

ACE-S C block diagram

492

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

grouped into 24-bit messages. Each message
consists of two 12-bit redundant words, which
are checked at the receiver decoder. It contains the information needed to exercise any
one of the modules.
In addition to the base plate and its three
types of modules, there is a special unit, the
Guidance and Navigation (G & N) Buffer.
This unit acts as a buffer between the Ground
Digital System and the onboard G &N computer. This unit is specialized in the sense
that its output is tailored to a unique digital
computer. The G & N buffer unit is used for
storage verification and shift out of the G &N
digital data. Again, data is verified at the receiver decoder and in the G & N unit to ensure
its correctness. Additional precautions have
been taken with this unit as the G & N is the
heart of the system. The G & N command uses
15 bits of the 24 for transmitting information.
These 15 bits represent the character, its complement, and the character again. The internal
portion of the DTCS is stored under the left
couch in the Command Module as shown in
Figure 3 and Figure 4. The function of the
DTCS is to exercise the systems aboard the
Command o:Module. This part of the system is
removed 5 hours before launch to minimize
flight weight. The external DTCS is stored on
the Launch Umbilical Tower (as shown in Figures 1 and 2) since its prime function is to exercise the G & N system and the servicing

Figure 3.

equipment. Because the G & N has to be exercised until the last moment before launch, this
unit operates through the umbilical.
An equivalent type of equipment exists for
the system associated with the LEM. In the
LEM, most of the DTCS functions are available
outside the LEM.

B. The Digital Test Monitoring System
(DTMS)
The DTMS consists of the following parts:
the signal-conditioner, the sampling unit, the
PCM system, the flight PCM system, and the
interleaver.
Because minimizing fly-away
checkout weight is a requirement, the signalconditioning package was made part of the
carry-on equipment. Again, the package is removed at T-5 hours.
Signal-conditioning consists of converting
analog signals from their level to a O-volt to
5-volt level. It is also used for frequency
count, glitch detection ( detection of unpredicted spikes), phase comparison, counting, and
other required functions.
These signal-conditioners are modular and
of th~ same size. They can be plugged into
the main container in any position. If a change
in the signal type or valve is needed, a different
signal-conditioner can be plugged into the same
position in the container. After these signals
have been conditioned, they are sampled and

Left hand couch

ACE-SIC ACCEPTANCE CHECKOUT EQUIPMENT

Figure 4.

493

Left hand couch and DTCS

transmitted to a PCM system, which converts
them into a serial form. The PCM train, at
that point, is at the rate of 51.2 k bits per second. This information is then combined with
the information available from the flight PCM
which is also 51.2 k bits per second, and the
servicing equipment PCM, also at 51.2 k bits
per second. Note that the servicing equipment
also has associated with it a signal-conditioning
and PCIVI system, which are housed in siightly
different containers; the same type of modular
units are used inside the spacecraft. The system used to combine the three 51.2 k-bit trains
is called the interleaver. The interleaver is set
up to receive four streams of inputs, each at a
rate of 51.2 k bits per second, to a total stream

Figure 5.

of 204.8 k bits. The interleaver thus has a
reserve capacity for accepting another 51.2 k
bits per second.
The DTMS is divided into two parts: (1)
the signal-conditioner, the sampling unit, and
the PCM system, which are located in the spacecraft (as shown in Figures 5 and 6), and (2)
the interleaver, which is located in the Launch
Umbilical Tower (as shown in Figure 1). The
interleaver is part of the facility equipment.
Because of its shape, the same arrangement
generally holds true for the LEM system. The
containers for the signal-conditioners and the
PCM systems are slightly different, but the
modular pluggable components are the same.

Right hand couch

494

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 6.

Right hand and DTMS

IV. THE GROUND STATION
A. General
The Ground Station consists of three rooms:
the control room, the computer room, and the
terminal room (as shown in the artist's conceptions included as Figures 7, 8 and 9).
The terminal room contains the timing system, the ground portion of the DTCS, and the
formatting equipment for the control room.
The computer room contains the computers
and associated peripheral equipment, the decommutator, which is used to decommutate the
information from the interleaver, and the transmission equipment for the DTCS.

Figure 7.

The control room contains the control consoles at which the systems engineers sit to control and command the spacecraft systems as
required.
B. Downlink
Figure 10 shows the basic flow for the downlink. In the figure, information from the interleaver is directly recorded and at the same
time flows into a decommutator. The system
has two decommutators which provides redundance and also allows the airborne telemetry
to be routed through one of the decoms and
the rest of the information (including the airborne telemetry) through the second decom.
From the decommuntator, the information

Control Room

ACE-SIC ACCEPTANCE CHECKOUT EQUIPMENT

Figure 8.

flows to the downlink computer, to event storage and distribution units (ESDU), and to the
control consoles. The decommutator can drive
the ESDU, which, in turn, drives the event
modules (Figure 16) on the control consoles.
The decommutator also drives some 200 meter
modules (Figure 15) and oscillographs located
on the control consoles, thus allowing the engineers to watch some of the measurements on
meters and oscillographs as required. Decommutator output presented to the downlink computer is manipulated by introducing the calibration information, comparing it to prestored information, and changing the information into
engineering units. The downlink computer
then transmits this information to the Symbol
Generator and Storage Unit (SGS) via the data
transmission and verification con v e r t e r s
(DTVC), and the digital communicator control unit (DCCD). (These are transmission
lines and verification units for the digital data.)

Figure 9.

Terminal Facility Room

495

Computer Room

The SGS transmits information, when requested, to the Cathode Ray Tube (CRT) which
displays the alphanumeric information for the
ACE-C/C.
On receipt of the coded words from the
DCCU, the SGS decodes the 12-bit words, strips
the data out, and stores it in memory locations
according to received instructions and addresses. The entire content of the SGS memory is updated once per second and is scanned
at a rate sufficient to update all alphanunieric
displays at least 30 times per second.
The character repertoire of the SGS enables
all alphanumeric characters to be displayed together with a set of special symbols. The SGS
can also cause characters to blink on the CRT
screen when so instructed by the computer.
This blinking indicates an out-of-tolerance condition. Memory allocations in the SGS are
sufficient to display 20 "pages" of data; a
"page" consisting of 24 lines of 40 characters
each, plus two 32-character lines, one at the
top and one at the bottom of the "page." On
demand by the System Engineer, the SGS provides the proper signals to cause the contents
of any top half-page and any bottom half-page
to appear on the screen of the requesting CRT.
Any given half-page can be selected by as many
as 20 CRT's simultaneously.
The CRT's utilized for the Alphanumeric Display System are 10-inch electrostatically deflected devices. Besides controls for selecting
the desired half-pages, the CRT module has
controls for focusing, brightness, horizontal and

496

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

vertical centering, and an on/off switch. Any
given half-page display contains 12 lines of
identified data in decimal numbers and engineering units. In addition, a single top (or
bottom) line identifies the page. The CRT
module, by a special means, can indicate other
pages that have information in them that is
out of tolerance. Thus, the display portion of
the display console consists of event lights
driven by the ESDU, the meters and oscillographs driven directly by the decommutator,
and alphanumeric displays driven by the computer.

The Systems Engineer sets the desired status
of each of the four relays (at the spacecraft)
controlled by the R-START module by setting
the condition of the lower half of each function
switch; illuminated for a latch command and
extinguished for an unlatch command.
Execution of the selected commands is initiated by depressing the XEQ switch. This illuminated the XEQ portion of the switch. When
an uplink verification is received, indicating delivery of the command message, the XEQ portion will extinguish, and the upper halves of
the function switches will illuminate in conformity with the lower halves.

C. The Uplink

Normally, the data transfer will be so rapid
that the XEQ light will appear to remain extinguished. However, status identity of the
upper and lower half of each function switch
indicates receipt of the uplink verification. It
should be noted that the uplink verification only
confirms proper delivery of the command message; it does not confirm actual relay latching
or unlatching. The Systems Engineer will now
observe the proper event display meter module
or oscillograph to obtain downlink verification
of the relay status.

Figure 11 shows the basic flow for the uplink
(or command link). The uplink starts with the
systems engineers who have the option to exercise R-START, C-START, and K-START. As
shown in Figure 12, an R-START module consists of four function switches and an execute
(XEQ) switch; Figure 12A shows the RSTART panel configuration. Each function
switch is a backlighted, split-window, pushbutton switch. The two halves of the window are
independently illuminated. Successively pressing a giv~n switch will cause its lower half to
alternately illuminate and extinguish. The
upper half is illuminated or extinguished under
program control by uplink verification as discussed earlier. The execute switch is an independently backlighted, split-legend (XEQ/
SEAL), pushbutton switch. The XEQ portion
is illuminated when the switch is depressed.
The XEQ portion is extinguished, and the
SEAL portion illuminated and extinguished,
under computer control.

The SEAL portion of the execute switch illuminates to indicate that the computer has
SEALed this particular R-ST ART module,
which prevents it from initiating commands.
Extinction of the SEAL light indicates that
the computer has released the SEAL, thus returning the module to normal operation. The
computer will SEAL an R-START module
when command transmission difficulty is exA

raw

lito

ACE·iC
........

....

Sp.cecro/t

,tetien

.,.ecroft

vicinity

I I

Figure 10.

ACE-S C downlink

ACE-SIC ACCEPTANCE CHECKOUT EQUIPMENT

Compute<

·Cue

Figure 11.

complex

ACE-S C uplink (DTSC)

perienced or when under program control, required by a particular test procedure.
A C-START module panel (see Figure 13)
presents ten 12-position rotary s e Ie c tor
switches, each having an associated relay display, an execute (XEQ) switch, and an XEQ
verify light.

Figure 12.

497

The 12 positions of each selector switch are
identified by the 10 decimal digits, 0 through 9,
and the two signs (+) and (-). The readout
display above each selector switch indicates the
switch setting by displaying the appropriate
decimal digit or sign. The execute switch is an
independently backlighted, split-legend (XEQ/
SEAL), pushbutton switch. The XEQ portion

R-START MODULE

498

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 12a.

R-START PANEL CONFIGURATION

is illuminated when the switch is depressed and
extinguished, under program control, by the
computer following delivery of the command
message. Module SEAL is not presently applicable to the C-START, but the SEAL portion of the execute switch has been provided
for possible future use.
The execute verify light is illuminated when
a valid execute signal is sensed, and remains illuminated for 1 to 1lj2 seconds.
The Systems Engineer sets up the desired
input command to the computer by appropriately positioning each of the ten selector
switches. Execution of the selected command
is initiated by depressing the XEQ switch. This
illuminates the XEQ portion of the switch. The
next action will be illumination of the XEQ
verify light and extinction of the XEQ light
switch. Normally, the process is so rapid that
the XEQ switch light will appear to remain extinguished; hence, the extended illumination of
the XEQ verify light provides the Systems Engineer with an observable indication of valid
execution.
The K-START module panel (shown in Figure 14) consists of a pushbutton keyboard, six
tape control switches, a tape input display,
three status displays, and a bank of 24 Apollo
Guidance Computer (AGC) event displays.
The keyboard contains 18 pus h but ton
switches, as shown in Figure 14, for manual
insertion of binary-coded command messages
to the AGC. The associated perforated tape
reader, used for automatic insertion of command messages, is controlled by six backlighted,
pushbutton switches. Four of the switches
,

;

=

"
r. -

.

.. ..

...
c:

..

...

..

..

Figure 13. C-START MODULE PANEL

.
~

~

h

have split legends. Successive depressions of
any of these will alternately illuminate onehalf and extinguish the other.
The tape input display consists of a row of
eight lights, which represent the eight digit
positions of a single perforated tape character.
This permits the Systems Engineer to visually
read a tape character. The illumination of a
given light indicates the presence of a binary
one (perforation) at that digit position. No
illumination indicates a zero. The three status
displays operate in both manual and automatic
modes as follows:

XEQ/SEAL: Upon depression of a keyboard
pushbutton or read-in from the tape, the
XEQ will light, thus indicating an execute request. Receipt of an uplink verification will
extinguish XEQ and illuminate SEAL. No
commands can be inserted while the module
is SEALed. Receipt of a downlink reply will
result in release of the SEAL and extinction
of the SEAL display.
VERIFY: This is a display only. Its illumination signifies that the downlink reply compared correctly with the character transmitted via the uplink.
NON VERIF Y : This is a combination display
and pushbutton switch. Its illumination signifies that the downlink reply did not compare correctly with the character transmitted
via the uplink. In the automatic mode, this

ODD
DOD
ODD
D

c:J c:J

KEY

RLSE

ER"
R5T

00000000

DOD

DOD
DOD
DOD

Figure 14. K-START MODULE PANEL

ACE-SIC ACCEPTANCE CHECKOUT EQUIPMENT

499

Figure 15. METER MODULE

condition will prevent character entry from
the tape. Depression of the NONVERIFL
switch will extinguish its light and permit
a new attempt at command insertion.

When any of the START modules are depressed, the scanning mechanism checks on the
R-STARTS, C-STARTS, and K-STARTS. The
scanning device, called the Communication Unit
Executor (CUE) notifies the uplink computer
as soon as it notices an R-START, C-START,

or K-START. The uplink computer checks the
CUE before accepting the information. The
CUE compares the address, located in the
START module, with what it thinks has been
exorcized and transferred. If the comparison
is affinl1ative, the information is transmitted
to the computers, which interprets the codes
indicated by the" R-START, C-START, or KSTART, and transmits the information to the
spacecraft where the DTCS described earlier
checks it and exercises the spacecraft accordingly. The system can interpret some 1200
measurements in the downlink and some 200
in the uplink .area.

Figure 16. EVENT MODULE

SUMMARY
The main features of the system are as follows:
1. Rapid checkout
2. Use of the flight telemetry and carry-on
concept. The carry-on equipment for
checkout measurements does not penalize
the fly-away weight.
3. Capability to operate manually as well as
automatically at close-by or lO-mile remote positions.
4. Use of the same equipment for checking
out both the C & SM and the LEM at both
the- factory and the launch site.

The AGe displays provide the Systems Engineer a convenient indication of 24 discrete
events within the Apollo Guidance Computer.

500

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

5. Modularity and digital building blocks to
achieve turnaround of about 30 minutes.
This allows hook-up to any spacecraft on
30 minutes' notice, assuming that the
carry-on equipment is in position.
6. Factory connection of carry-on equipment
and removal at T-5 hours (except for
weight and balance). This minimizes
connecting and disconnecting the spacecraft cabling.
7. Restriction of the total number of cables
through the vehicle hatch to two, each
containing three co-axes, thus allowing
undisturbed ingress and egress to the
spacecraft. (Two cables in Apollo compare to about two dozens in Mercury.
The system is quite versatile-so versatile,
in fact, that the vehicle on which it is to be exercised does not have to be defined until late
in the design.
Selecting the signal-conditioners and the
modules associated with the base plates, and
mounting the name plates associated with the

control consoles are the only time-limiting actions. Once the system engineers have established a general configuration of the control
room the SGS, the decommutator, and the computers are programmable. Thus, after hardware definition, the only problem remaining is
to define the digital programs or the software
associated with the system. But these can be
phased in as soon as the test people and the
system engineers have decided the test detail.
Preliminary specification shows that the hardware design and preliminary software require
something on the order of 8 to 10 months,
whereas the final software (because the preliminary subroutines and executive routines
have been perpared) can be completed within
two or three months.
The first system is operational at North
American's plant in Downey, California. Follow-on stations will be located at the Grumman Aircraft Engineering Corporation, Bethpage, L.I., New York; the Manned Spacecraft
Center, Houston, Texas; and the Kennedy
Space Center, Cape Kennedy, Florida.

SATURN V LAUNCH VEHICLE
DIGITAL COMPUTER AND DATA ADAPTER
M. M. Dickinson
J. B. Jackson
G. C. Randa
International Business Machines Space Guidance Center
Owego, New York
During the Pre-launch Check-out mode, a
test program is loaded into the computer to
ensure that all guidance system interfaces operate properly prior to flight. The program
includes a computer self-test, complete mission
simulation, and a system test, among others.

INTRODUCTION
This paper describes the IBM Space Guid~
ance Center's part in the Saturn V Program
and the digital computer and data adapter
being developed for the Saturn V booster. This
work is being performed under contract to
NASA under direction of the Marshall Space
Flight Center, Huntsville, Alabama.

In the Boost Guidance mode, which starts at
lift-off and lasts until the final booster stage
burns out, the computer navigates and steers
the booster, computing stage cutoff. During
this initial phase of operation it receives data
on booster speed and attitude through the data
adapter. The computer processes these data
and, through the data adapter, controls the

The computer and data adapter are located
in the Saturn V Instrument Unit and integrated
into the total guidance system of the booster
(Figure 1). The computer interfaces only with
the data adapter, which in turn presents the
interface to the rest of the system. Basically,
during boost guidance, the computer evaluates
in-flight changes in booster speed and position
derived from an inertial platform and develops
signals to control the rocket engines so as to
keep the booster on course. The data adapter
takes analog inputs from sensors and converts
them to digital form for the computer; it also
takes the computer digital outputs, converts
some of them to analog form, and sends corrections to the appropriate controls.

I
GROUND
CONTROL
COMPUTER

I
RADIO
COMMAND
CHANNEL

TELEt.£TRY
COMPUTER
INTERFACE
UNIT
I

1

I

DIGITAL
COMPUTER

POWER
SOURCE

I

I

DATA
ADAPTER

~

I

MODES OF OPERATION
The system operates in four basic modes
(Figure 2): (1) Pre-launch Check-out; (2)
Boost Guidance; (3) Orbital Check-out; and
(4) Lunar Trajectory Injection.

INTER AND
INTRA
VEHICLE
COMMUNICATION

INERTIAL
PLATFORM

FLIGHT
CONTROL
COMPUTER

Figure 1. Saturn V Guidance System.

501

I

502

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964
SATUf{N I

PRE-LAUNCH CHECKOUT
• PROGRAM CHECK
• COEFFICI ENT LOAD
BOOST GUIDANCE
• STEERING COMMANDS
• ENGINE CONTROL

12.000

80.000

WEIGHT - LBS.

210

253

VOLUME - CU. FT.

3.9

5.5

POWER - WATTS

540

438

3.2.00

9,600

100,000

46OPOO

750

45,000

NUMBER OF COMPONENTS

OPERATIONS

ORBITAL CHECKOUT

LUNAR TRAJECTORY

~ITY- OPS/SEC

STORAGE CAPACITY - BITS

• INSTRUMENT UNIT CHECKOUT

SATURN V

RELIABILITY - MEAN TIME BETWEEN
FAILURE IN HOURS

INJECTION

• STEERING COMMANDS
• ENGINE CONTROL
Figure 2. Saturn V Mission.

direction of thrust of the gimbaled rocket engines to keep the vehicle on the desired course.
When the vehicle is in orbit about the earth,
the computer checks out the propulsion system, the mid-course guidance and control system, and other related Instrument Unit systems
and sends the test results to the ground for
analysis. If all tests are satisfactory, the Lunar
Trajectory Injection mode is initiated.
The Lunar Trajectory Injection mode follows the same sequence as the Boost Guidance
mode in that the computer navigates, controls
vehicle steering, controls booster cut-off, and
directs booster separation.
EQUIPMENT ORGANIZATION AND
CHARACTERISTICS
Microminiature packaging technology and
redundant logical configurations are used in the
computer and data adapter to meet the stringent weight and reliability requirements of the
Saturn V Program. Whereas the Saturn I
launch vehicle guidance system was developed
from a previously proved military system to
playa limited role on early space booster missions, the Saturn V equipment must have much
greater sophistication to function with greatly
increased reliability over a much longer operational span in a more demanding environment
(Figure 3). Thus, the Saturn V computer and
data adapter share new electronic and mechanical design features that provide significantly
greater capabilities than are found in the

Figure 3. Equipment Comparisons.

Saturn I spaceborne computer system, including:
(1) A speed approximately three times
greater than is found in either the
Saturn I or IBM's commercial 1401
system.
(2) A modular memory that can be expanded
to 920,000 bits for later Saturn V missions by simply plugging in additional
memory modules.
(3) Seven times the number of components
with only a slight increase in weight and
volume.
( 4) A reliability increase of more than 6000
percent.
COMPUTER
The Saturn V computer is serially organized
and operates at a rate of 512 kilobits per second
(Figure 4). Using two's complement arithmetic, it multiplies four bits at a time and
divides two bits at a time. Glass delay lines
TYPE Gp, STORED PROGRAM, SERIAL, FIXED POINT. BINARY
CLOCK 512 KILOBITS PER SECOND
SPEED ADD-SUBTRACT. MULTIPLY-DIVIDE SIMUL114NEOUSLY:
ADD
- 82 "SEC, 26 BIT
MULTIPLY - 328 "SEC, 24 BIT
DIVIDE - 656 "SEC, 24 BIT
STORAGE
16,384 28- BIT WORDS, EXPANDABLE
RELIABILITY 0.99 GOAL FOR 250 HOURS
77 LBS.
WEIGHT
22 CU. FT.
VOLUME
131 WATTS
POWER

Figure 4. Digital Computer Characteristics.

SATURN V LAUNCH VEHICLE DIGITAL COMPUTER AND DATA ADAPTER

are used for internal registers to improve reliability. AND-OR-INVERT logic, operated in
saturated and cut-off modes, is employed in
both the computer and data adapter. Four
clock pulses per bit are employed, with 6-volt
clock signals applied to AND resistors; this
arrangement permits inverter loads to be timeshared and obviates the need for an AND diode
for each clocked AND.
Each instruction is comprised of a four-bit
operation code and a nine-bit operand address;
the nine-bit address allows 512 locations to be
directly addressed. The memory is divided
into sectors of 256 words, and contains a residual memory for 256 common data words. The
nine-bit address specifies a location in either
the previously selected sector (data sector
latches) or in the residual memory.
Instructions are addressed from an eight-bit
instruction counter augmented by a four-bit
instruction sector register (Figure 5). Instruction memory sector selection is changed by special instructions, but sector size is sufficiently
large that this is not a frequent operation.
Data words consist of 26 bits (25 magnitude
bits plus sign). Instruction words consist of
13 bits and two instructions are stored in each

memory data word. Hence, instructions are
described as being stored in syllable 0 or syllable 1 of a memory word. Two additional bits
are used in the memory for parity checking
each of the two syllables.
The computer is programmed by means of
single-address instructions. Each instruction
specifies an operation and an operand address.
Instructions are addressed sequentially from
the memory under control of the instruction
counter. Each time the instruction counter is
used, it is advanced one increment to develop
the address of the next instruction. After the
instruction is read from the memory and its
parity checked, the operation code is sent from
the transfer register to the operation code
register, a static register that stores the operation code for the duration of the execution
cycle.
The operand address portion of the instructionis transferred in parallel (nine bits) from
the transfer register to the memory address
register. The transfer register is then cleared.
If the operation code requires reading the
memory, the contents of the operand address
are read, 14 bits at a time (including parity),
frVin the nlemory into the buffer register where

INTERRUPT

MEMORY

MOD t MEMORY
MOD 2 MEMORY

1711-----+ MEM

NO OP
SYLLABLE t
SYLLABLE 2

ADDERSUBTR
MULTI~--"'DIV

ACCUMULATOR-INSTR CNTR
MULTIPLICAND -DIVISOR
MULTIPLIER - QUOTIENT
PRODUCT -REMAINDER
DELAY LINE NO. t

508

ACCUMULATOR-INSTR CNTR
MULTIPLY-DIVIDE TIMING
PRODUCT - QUOTIENT SYNC
DELAY LINE NO.2

Figure 5. Digital Computer Block Diagram.

504

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

a parity check is made. Data bits are then sent
in parallel to the transfer register. This information is then serially transferred to the
arithmetic section of the computer. If the operation code is a store (STO), the contents of
the accumulator are transferred serially into
the transfer register and stored in two 14-bit
bytes. A parity bit is generated for each byte.
Upon completion of the arithmetic operation,
the contents of the instruction counter are
transferred serially into the transfer register.
This information is then transferred in parallel
(just as the operand address had previously
been transferred) into the memory address
register. The transfer register is then cleared
and the next instruction is read, thus completing one computer cycle.
The data word is read from the memory
address specified by the memory address register and from the sector specified by the sector
register. Data from the memory go directly to
the arithmetic section of the computer where
they are operated on as directed by the operation code.
The arithmetic section contains an add-subtract element, a multiply-divide element, and
storage registers for the operands. Registers
are required for the accumulator, product,
quotient, multiplicand, multiplier, positive remainder, and negative remainder. The addsubtract and the mUltiply-divide elements operate independently of each other, so they can
be programmed to operate concurrently (Le.,
the add-subtract element can perform several
short operations while the multiply-divide element is in operation).
No dividend register is shown in Figure 5
because it is considered to be the first remainder. The divisor is read from the accumulator during the first cycle time and can be
regenerated from the two remainders on subsequent cycles. Both multiply and divide require more time for execution than the rest of
the computer operations. A special counter is
used to keep track of the mUltiply-divide progress and stop the operation when it is completed. The product-quotient (PQ) register can
be addressed from the operand address of any
instruction. The answer will remain in the
PQ register until another multiply-divide is
initiated.

CLA CLEAR AND ADD
ADD ADD
SUB SUBTRACT

CDS

MPY MULTIPLY (CONCURRENT)

STO

MPH MULTIPLY (NONCONCURRENT)
DIV DIVIDE
RSU REVERSE SUBTRACT
AND LOGICAL AND
XOR EXCLUSIVE OR
SHF

SHIFT

CHANGE DATA
LOCATION

EXM EXECUTE MODIFIED
INST.
HOP

STORE
CHANGE REGISTER
CONTENTS

TNZ

TRANSFER NON-ZERO

TRA

UNCONDITIONAL
TRANSFER

TMI

TRANSFER ON MINUS

PIO

PROCESS INPUT /
OUTPUT

Figure 6. Operation Codes.

Two multiply instructions (Figure 6) are
used in the computer. MPY requires that oneword-time operations be performed in the
adder unit during the multiplication operation
because the instruction counter advances each
word time. Thus, simultaneous MPY and oneword-time operations are carried out. When
the program is multiply-limited, and a sufficient
number of useful one-word operations cannot
be found in the portion of the flow diagram
being executed, the MPH instruction is used.
This instruction inhibits the advance of the
instruction counter and no new instructions
are read from the memory until the operation
is completed.
Since only partial addresses for instructions
and data are provided in the instruction counter
and the data address of the instruction word,
a HOP instruction permits transfer to various
sections of the memory; static registers provide the additional address bits required. An
Execute Modified Instruction (EXM) operation permits the execution of selected instructions from memory after they have been modified by the contents of the instruction word.
The computer communicates with the data
adapter through use of the Process Input-Output (PIO) instruction, which transfers data
words from the data adapter to the accumulator or from the accumulator or memory to the
data adapter.
The computer processes accelerometer and
gimbal angle information and computes attitude corrections 25 times each second. The
slower major loop, which contains navigation
and other computations, is performed once or
twice each second.

SATURN V LAUNCH VEHICLE DIGITAL COMPUTER AND DATA ADAPTER

A program assembler and a mission simulator are being developed as part of a software
package. Laboratory check-out and acceptance test programs are also being prepared.
IBM is using special simulators to perform delay simulation on detailed logical designs, to
compute the reliability of redundant and duplex
logical organizations using Monte Carlo techniques, and to simulate the effects of component
malfunctions. Operational flight programs for
Saturn V missions are being prepared by IBM
under a separate contract.
DATA ADAPTER
The data adapter provides input-output communication with telemetry equipment, ground
launch computer, and discrete inputs and outputs (Figure 7). It stores interrupt signals
and buffers real-time, accelerometer data monitoring, and other counting signals. Angular
information from two-speed resolvers is read
in through a crossover detector system (Figure
8) . Resolver outputs are passed through RC
networks and the zero crossover of the phaseshifted sine wave outputs is detected by precision crossover detectors. A high-speed binary
counter converts this time interval into a
binary number. Analog voltage outputs are
provided through a resistive ladder network
and suitable capacitor sample-and-hold circuits.
A significant feature of the data adapter design is the use of glass ultrasonic delay lines
to store digital information required by the
CLOCK

512 KllOBITS PER SECOND

ACCELEROMETER
OPTISYNS
INTERRUPTS
COMPUTER DATA
4KC
COMPUTER DATA
DISCRETE INPUTS
VEHICLE DISCRETE
FEEDBACK
RESOLVERS

VELOCITY
INTERRUPT
1 MS DELAY
REAL TIME

DELAY
LINE

DISCRETE
INPUTS AND
OUTPUTS,
VEHICLE
DISCRETE
INTERFACE

DISCRETE OUTPUTS
COMPUTER DATA
VEHICLE DISCRETE
ADDRESS
GIMBAL ANGLES

AID
AND

DIA

COMPUTER DATA

CONVERTERS ATTITUDE ERRORS

Figure 8. Data Adapter Block Diagram.

computer. Four-megacycle lines are used and
four channels of information are multiplexed
into each line.
A set of redundant delay lines is divided into
three 14-bit phase times, providing 12 syllables
of storage in each line. This set is used to
store: (1) interrupt signals until the interrupts
are acted upon by the computer, with one of the
syllables being reserved to prohibit multiple
computer interrupts from the same external
interrupt pulse; (2) interrupt signals which
are inhibited by the computer. The set also:
(1) times the activation of the switch selector
used to control the vehicle staging; (2) times
the interval between processing of minor loop
platform attitude inputs; and (3) stores real
time as it is accumulated from an oscillator
input.
=28~V~I~N~PU~T~______~·1 POWER

DISCRETES

68 BITS

CLOCKS
IIO DATA ADDRESS

REGISTERS

45 BITS

COMPUTER DATA

DIA CONVERTER

8 BITS +SIGN

AID CONVERTER

2-SPEED RESOLVER, 17-BIT
EQUIVALENT

TELEM. DATA

DELAY LINES

16 CHANNELS

TELEM.
CHECKOUT DATA

POWER SUPPLIES

6 PAIRS, DUPLEXED

RELIABILITY

0.99 GOAL FOR 250 HOURS

WEIGHT

176 LBS.

VOLUME

3.30 CU. FT.

POWER

438 WATTS INPUT

Figure 7. Data Adapter Characteristics.

505

SUPPLIES
AND
TIMING
CONTROL

TELEM. SYNC BIT
ERROR INDICATORS

TIMING

I/O DATA GATES
COMPUTER DATA
XMITTER

COMPUTER DATA

1/0 DATA ADDRESS

I POWER

TELEMETRY
MONITOR
ERROR
MONITOR.
ORBITAL
CHECKOUT

GROUND CHECKOUT
COMPUTER

TELEMETRY
ADDRESS
COMPARATOR

Figure 9. Data Adapter Blork Diagram (Cont.).

506

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

A non-redundant delay line is used to buffer
non-mission-critical telemetry information to
the ground (Figure 9). The PCM telemetry
system will monitor digital data from the
computer/data adapter system at a constant
rate of 240 forty-bit words per second. Approximately 100 of these words will be direct
outputs from the computer to the telemetry.
The remaining 140 words will be supplied by
the Digital Output Monitor (DOM). This data
adapter system serves two purposes: (1) it
allows the telemetry channel to be used with
maximum efficiency without burdening the
computer program with intricate timing problems, and (2) provides a means of monitoring
the digital data entering and leaving the data
adapter at a point close to the interface.
The information that is sent to telemetry
via the DOM is derived from computer inputoutput operations. Since these operations occur
at widely varying rates, the DOM provides a
buffering capability to optimize data flow.
Input-output operations that occur too frequently and convey too little information are
ignored by the DOM.
RELIABILITY
Very high reliability is required of the
Saturn V digital computer and data adapterthe design goal for each unit is 0.99 for a 250hour mission. Conventional techniques for
achieving ultra-high reliability include (Figure
10) high reliability parts, conservative design
practices (simplicity and wide tolerances), 100percent screening of parts and assemblies,
thorough qualification of parts and manufacturing processes, and detailed laboratory analysis and corrective action for all "failed" items.
Over and above these conventional requirements, the equipment has been designed to
continue accurate operation, even after a tran-

CONSERVATIVE DESIGN
REDUNDANCY
COMPONENT SCREENING
IN-PROCESS INSPECTION
SYSTEM ENVIRONMENTAL ACCEPTANCE
Figure 10. Approaches to Reliability.

Figure 11. Triple Modular Redundancy (TMR).

sient or catastrophic failure, through the use of
redundant elements.
The redundancy approach employed by IBM
in the computer logic is "Triple Modular Redundancy" (TMR) , which realizes a 20-fold
increase in reliability with only 3 % times more
components than a non-redundant system. (1,2,3,4)
Figure 11 shows part of the Saturn V logic
divided into sections called modules, (M). Each
module is identical, receiving the same problem
at the same time. The outputs of the three
modules are transmitted to another circuit
called a "majority rule voter" circuit (V),
which checks the inputs to see whether they
agree. If one input differs from the other two,
it is disregarded, so a component failure will
not cause a system malfunction.
A third circuit, called a disagreement detector (DD), monitors system performance by signalling the ground equipment whenever voter
inputs are not all identical. Computer logic
is divided into seven modules, each with an
average of 10 voted outputs. Disagreement
detector outputs are OR'ed together such that
malfunctions can be isolated to one, two, or
three replaceable subassemblies.
The memory in the Saturn V computer uses
conventional toroidal cores in a unique selfcorrecting duplex system. The memory consists
of up to eight identical 4096-word memory
modules that may be operated in simplex for
increased storage capability or in duplex pairs
for high reliability. The basic computer program can be loaded into the instruction and
constants sectors of the memory at electronic
speeds on the ground or just prior to launch.

SATURN V LAUNCH VEHICLE DIGITAL COMPUTER AND DATA ADAPTER

Thereafter, the information content of constants and data can be electrically altered but
only under control of the computer program.
The self-correcting duplex system uses an
odd parity bit for malfunction indication and
correction. In conjunction with the parity bit,
error-detection circuitry also monitors memory
drive current. Unlike conventional toroid
random-access memories, the self-correcting
extension of the basic duplex approach permits
correct information to be regenerated after
transients or intermittent failures.
Figure 12 is a simplified block diagram of
the computer memory system. The basic configuration consists of a pair of memories providing storage for 8,192 fourteen-bit memory
words for duplex operation, or 16,384 fourteenbit memory words for simplex operation. Each
of the simplex memories includes independent
peripheral instrumentation consisting of timing, control, address drivers, inhibit drivers,
sense amplifiers, error-detection circuitry, and
input/output connections to facilitate failure
isolation.
The computer functions, which are separate
for each simplex memory, consist of synchronizing gates which provide the serial data rate
of 512 kilobits per second. This data rate is
required by the computer to generate a "start
memory unit" command at 128 kilobits per
second. These gates also provide the selection
of multiple simplex memory units for storage
flexibility and permit partial or total duplex
operation throughout the mission profile to extend the mean-time-before-failure for long mis-

507

sion times. Each of the simplex units can operat~ independently of the others or in a duplex
manner. The memory modules are divided into
two groups: one group consisting of even numbered modules (0-6) and the other consisting
of odd numbered modules (1-7). The buffer
register associated with each group is set by
the selected modules.
For duplex operation, as shown in Figure 12,
each memory is controlled by independent buffer registers when both memories are operating
without failure. Both memories are simultaneously read and updated, 14 bits in parallel. A
single cycle is required for reading instructions
(13 bits plus 1 parity bit per instruction word).
Two memory cycles are required for reading
and updating data (26 bits plus 2 parity bits).
The parallel outputs of the memory buffer
registers are serialized at a 512-kilobit rate by
the memory transfer register under control of
the memory select logic. Initially, only one
buffer register output is used, but both buffer
register outputs are simultaneously parity
checked. When an error is detected in the
memory being used, operation immediately
transfers to the other memory. Both memories
are then regenerated by the buffer register of
the "good" memory, thus correcting transient
errors. After the parity-checking and errordetection circuits have verified that the erroneous memory has been corrected, each memory
is again controlled by its own buffer register.
Operation is· not transferred to the previously
erroneous memory until the "good" memory
develops its first ~rror. Consequently, instantaneous switching from one memory output to
another permits uninterrupted computer operation until simultaneous failures at the same
storage location in both memories cause complete system failure.
The data adapter uses duplex and redundantcomponent circuits in conjunction with TMR
logic to meet its reliability goals.

FROM

COMPUTER

TO

COMPUTER

FROM

COMPUTER

Figure 12. Duplex Memory Flow Diagram.

The data adapter logic is divided into four
parts for the purpose of reliability computation. The analog-to-digital converter section
employs coarse and fine resolver windings in a
two-speed system for duplex operation. The fine
inputs are selected by the computer for use
unless the error indicator circuits that monitor

508

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

signal levels indicate a failure; then the coarse
input will be used, with degraded system
accuracy. The selected input is fed to duplexed
logic sections that can be tested against each
other and for output reasonableness. Here the
computational capability of the computer can
insert test problems into the duplex logic of
the data adapter to determine which half is
operating properly.
Duplex digital-to-analog ladder converters
are used for outputs to the control computer.
One of the duplex channels is selected to derive
the output voltages, and this output is compared with a reference channel. Any significant
difference causes the other duplex channel to be
switched in.
TMR logic is used in conventional buffer
registers that store discrete information and
provide communication with telemetry and the
ground control computer. Where TMR outputs
must be used to develop a single highly reliable
output signal, redundant-component voter /
driver circuits are used in the final stage.
To ensure that failures in the power supplies, which are located in the data adapter and
supply pQwer to that unit and to the computer,
do not cause system failure, duplexing is used
(Figure 13). Pulse-width-modulated dc-to-dc
converters provide high power conversion efficiency. Feedback amplifiers sense any variations in the average value of the output voltage,

and the error signal is used to control the
power inverter pulse width. Duplexed feedback
amplifiers are employed and the supplies themselves are duplexed. Either supply can provide the full current required for that supply
voltage.
Table I compares the reliability of the redundant and non-redundant portions of the
computer and data adapter and shows the dramatic results obtained when TMR techniques
are used in the control and arithmetic logic of
the computer. In applications where the logic
could be divided into modular parts and made
duplex, it would be difficult to determine which
duplex part was operating correctly. TMR,
with majority rule voters re-establishing the
correctness of module outputs at critical points,
overcomes this difficulty and makes malfunction
correction automatic.
The improvement in memory reliability derived from duplexing is not as great as in other
duplex logic applications because all possible
memory failures cannot be detected by the
checking circuits. As shown in Table I, overall computer reliability in the redundant configuration is gated by the memory system.
TABLE 1. EQUIPMENT RELIABILITY
FOR 250 HOURS
Non-Redundant Redundant
Digital Computer

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

TMR Logic
Duplex Memory
Unit
Equivalent Mean
Time to
Failure

0.973
0.969
0.943
4,250 Hrs.

0.9992
0.9980
0.9972
89,500 Hrs.

Data Adapter

Figure 13. Duplex Power Supply.

Duplex I/O
Duplex Logic
TMR Logic
Duplex Power
Supply
Unit
Equivalent Mean
Time to
Failure

0.988
0.994
0.979

0.9982
0.99995
0.9997

0.995
0.957

0.99999
0.9978

5,680 Hrs.

113,000 Hrs.

SATURN V LAUNCH VEHICLE DIGITAL COMPUTER AND DATA ADAPTER

509

The mean-time-to-system-failure (MTF)
shown in Table I for a non-redundant equivalent computer was computed assuming the conventional exponential (constant failure rate)
case.
MICROMINIATURE PACKAGING
To implement redundancy and still meet
NASA's weight and volume requirements, IBM
chose a microminiature design approach (5)
proven feasible in 1960 with a small-scale computer. Since 1961, the technology has been subjected to environmental, life, and experimental
system tests. These tests have enabled IBM to
accumulate over 20,000,000 test hours on circuit modules and over 1,000,000 on multilayer
interconnection boards.
The first simplex engineering model of the
Saturn V computer was delivered on 28 April
of this year; it was used to confirm and verify
the basic design of the computer. The first
qualification model is scheduled for delivery on
12 February 1965 and the first production computer on 26 March.
The basic building block of the Saturn V
system is the Unit Logic Device (ULD), a
microminiature circuit package. Each of the
54 different types of ULD's contains up to 14
components including transistors, diodes, and
resistors. Ninety percent of the Saturn V
equipment is based on ULD technology, and
8918 ULD's are used in each Saturn V computer and data adapter.
The manufacture of a ULD starts "\vith a
0.3 X 0.3 inch alumina substrate upon which
conductive land patterns are silk-screened on
the top surface and resistors on the bottom
(Figure 14). Conductive patterns and resistors
are fired at high temperature to drive off the
carrier and ensure adhesion to the substrate.
Semiconductors, in the form of 0.025 X 0.025
inch chips of silicon (each comprising either
one transistor or two diodes) are reflow soldered
to the ULD. Copper balls are used for contacts
between the chips and the conductive patterns
(Figure 15).
Screened edge connections provide conductive lines between the top and bottom surfaces
of the ULD. Metal "S"-clips are soldered around

Figure 14. Unit Logic Device (ULD).

the edges of the ULD for greater reliability and
to provide a means of connection to the printed
circuit board that interconnects the ULD's.
Each ULD has been designed so the parameters of its components may be measured during
production operations. This procedure ensures
that component tolerances assumed for initial
circuit design are met and that end-of-life tolerances will not be exceeded. Thus, when the
values of each parameter are known, circuit
design ground rules can be adjusted to permit
greater fan-in and fan-out than when the circuit. is tested as a whole and individual component values are not known.
The ULD's are interconnected by a MIB, or
multilayer interconnection board (Figure 16).
A 12-layer, 2.5 by 3-inch board can accommodate 35 ULD circuits. MIB's are laid out to
provide a 5 X 7 matrix of ULD locations. Signal, power, and ground layers are contained
within the MIB and interconnected with platedthrough holes. Tabs printed on the top surface

Figure 15. ULD Semiconductor Chips.

510

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 16. Multilayer Interconnection Board (MIB).

Figure 18. Delay Line Page.

of the MIB permit reflow soldering of the
ULD's to the MIB. Two beams of infrared are
focused on the pre-tinned ULD connection clips
to solder the ULD's to the MIB, affording both
an electrical path and a mechanical bond.

adapter, each with an average of 500 components. Each page is tested over a 10°C to
100°C temperature range during production.

Eighteen test points are available on each
MIB; connections between MIB's bonded to
each side of a page are provided with throughpins. A conductive pattern on the end of each
MIB is soldered to a 98-pin connector. The
page MIB's containing the ULD's are, in turn,
bonded to a metal frame that draws heat away
from the components and protects the circuits
from vibration and mechanical shock (Figure
17).

Maintenance performed at the Marshall Space
Flight Center or Cape Kennedy includes removal and replacement of individual pages.
ULD's can be replaced at the factory or depot.
A 98-pin miniature connector plugs into a back
panel for page-to-page interconnections. Heat
is conducted out of the page through magnesium-lithium ears fastened to the machine
structure with screws.

The resultant page assembly contains up to
35 ULD's on each side. The page can also
house various other types of circuits, including
glass delay lines, circuit modules for precision
analog circuits, or decoupling capacitors
(Figures 18, 19, and 20). There are 150 ULD
pages in the Saturn V- computer and data

In the Saturn V equipment, pages are interconnected through multilayer printed circuit
back panels bonded to a metal support plate
(Figure 21). Layers are interconnected by
2000 plated-through holes. Each back panel,
containing 12 layers of circuits, is subjected to
100 percent inspection of each of the 2000 connections. Each of the back panel subassemblies
is called a channel, and there are five channels
in each Saturn V computer (three identical

Figure 17. ULD Page.

Figure 19. Circuit Module Page.

SATURN V LAUNCH VEHICLE DIGITAL COMPUTER AND DATA ADAPTER

511

Figure 20. Capacitor Page.

Figure 22. Memory Core Plane.

TMR logic channels and two channels containing voter and memory input-output registers).

Electronic memory panels contain address,
inhibit, and sense circuits to permit reading
and writing as well as addressing. The five
panels in the system are fabricated separately
from the memory for ease in packaging
memory-related electronics.

The memory plane is the basic element of the
Saturn V memory (Figure 22). Each plane
accommodates some 8,200 toroid cores approximately 0.030 inch in diameter. Memory planes
are individually tested using automatic plane
test equipment before further assembly~ The
memory array is comprised of 14 horizontally
stacked planes (Figure 23). It has a capacity
of 4,096 twenty-eight-bit words or 115,000 bits
of memory. Memory planes are unencapsulated
and are separated by molded silicone rubber
foam pads that protect the cores from vibration
stresses.

STRUCTURAL DESIGN

A complete ulemory module combines the
array and the electronics. From one to eight of
these modules can be employed in the Saturn V
system; present memory requirements call for
four of these modules, each weighing 4.7
pounds and using 7.5 watts of power.

Magnesium-lithium alloy LA 141 was selected
for use in the computer and data adapter structures because it is the most efficient material
from a stiffness-to-weight standpoint (short of
beryllium) and because of its good vibration
damping characteristics. (6) Beryllium was not
selected because of anticipated problems in fabrication. LA 141 provides minimum weight, and
it minimizes the transmission of mechanical
vibration between the unit structural mounting
pads and the electronic subassemblies within
the structure. Unit stress and physical properties of LA 141 are compared to those of other
magnesium and aluminum alloys in Table II,

Figure 21. Multilayer Back Panel.

Figure 23. Memory Array.

512

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

TABLE II. COMPARISON OF VARIOUS STRUCTURAL MATERIALS
Properties

Material
Aluminum
Al 1100-0

Tensile Strength (Ksi)
Yield Strength (Ksi)
Compressive Strength (Ksi)
Elongation % in 2"
Modulus of Elasticity (10 6 psi)
Density (lbs./in3)
Specific Heat at 212°F
(BTU/lb/oF)
Thermal Exp. Coef.
(68-212°F, 10-6 in/in/oF)
Thermal Conductivity
(BTU/ft 2 /hr/oF /ft)

Aluminum
Al 2024-T3

Mag.-Lith.
LA 141

Magnesium
AZ31B-O

11.0
3.5
4.0
30.0
10.0
0.098
0.214

68.0
51.0
42.0
12-15
10.5
0.100
0.23

21.0
17.0
17.0
25-30
6.5
0.0487
0.35

36.0
19.0
13.0
18
6.5
0.064
0.25

13.1

12.6

21

15

71

25

44

128

below. Magnesium-lithium is only half the
weight of aluminum and three quarters of the
weight of magnesium. Tensile strength more
than meets the requirements for this application.
The c~oice of magnesium-lithium necessitated a thorough investigation of the effects of
humidity and salt atmosphere environments on
the material, as well as the effects of liquid
coolant. A fluoride-anodize surface treatment,
coated with a sprayed coat of Laminar X500
(a polyurethane), was specified to protect all
exterior surfaces.
Evaluation of the effects of the liquid coolant
(methanol and distilled water) on the magnesium-lithium indicated that the corrosion
rate of untreated material did not exceed 0.006
inch/surface/year as long as there are no other
materials in contact with the magnesiumlithium that would form a galvanic couple (i.e.,
material less positive on the galvanic scale).

on installed weight and reliability. It was
found that the installed weight of the system
could be reduced by approximately 20 pounds,
and the unit component temperatures reduced
an average of approximately 18°F (with the
accompanying increase in reliability) by employing integral liquid cooling. Thus, integral
liquid cooling passages were incorporated in
the structure designs (Figure 24).
The incorporation of integral liquid coolant
passages in the structure and the need for sufficient material on each side of the coolant
passages to assure meeting leak rate requirements at a burst pressure of 100 psia dictated
the use of relatively heavy structural sections
in the page attachment an.d outside walls of
the structure. Taking advantage of the page

To effect an RFI seal between the unit structures and their covers, EZ33A welding rod is
used on the flanged areas of the structure. The
iridite finish used provides adequate protection
to inhibit LA-141 oxidation in the presence of
nitrogen and moisture. After oxidation, the
LA 141 becomes non-conductive.
Cold plate mounting and integral liquid cooling were compared in terms of their effects

Figure 24. Gun-Drilled Coolant Passages.

SATURN V LAUNCH VEHICLE DIGITAL COMPUTER AND DATA ADAPTER

513

attachment coolant wall sections, slots are incorporated at each page location in the structure design to guide the pages into their electrical connector receptacles on the interconnection back panels. This feature eliminates the
need for additional brackets to guide the pages.
The above design considerations lead IBM
to select a machined billet to fabricate the desired structure configuration. A structural
weldment was avoided because of anticipated
problems and fixture complexity inherent in
controlling dimensions throughout the welding,
stress relieving, and machining processes.
The computer structure, as shown in Figure
25, is rough machined from a cast billet, the
cooling passages in the page mounting walls
are drilled using a technique developed for the
drilling of rifle barrels, and final machining is
accomplished on a tape-controlled milling machine. Mockups of the computer and data
adapter structures are shown in Figures 26
and 27.
THERMAL DESIGN
The inlet liquid coolant (60%-40% methanolwater by weight) temperature is between 55°F
and 65,oF with a total flow rate of 5.5 pounds/
minute; 2.2 pounds/minute to the computer and
3.3 pounds/minute to the data adapter. The
electrical heat dissipation of the computer is
131 watts and the maximum dissipation of the
data adapter is 343 watts with discretes "on."
Tests were conducted on several cooling
passage configurations, including finned and
drilled passages. The configuration selected
has five drilled 3/16-inch diameter holes in each

Figure 25. Computer Structure.

Figure 26. Computer Mock-Up.

computer channel and one 5/16-inch diameter
hole in each data adapter channel.
Heat transfer analyses within the units were
analyzed using an IBM 7090 three-dimensional
heat-transfer program. (7) This program uses a
numerical approach with rectangular nodes to
mathematically represent all solid portions of
the unit. The nodal description includes both
physical and thermal properties and a definition of the boundary condition on each face.
The node faces or boundaries can be defined
to have any combination of common heattransfer processes, such as conduction, radiation, and convection.
The thermal design ground rules for the logic
electronics were as follows:
Max. transistor junction
temperatureMax. j unction to junction
6.T on a pageMax. page-to-page 6. T (in a
simplex channel)-

50°C

Figure 27. Data Adapter Mock-Up.

514

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

The following additional ground rules were
imposed on the memory array and power supply
electronics:
Max. allowable memory array
temperature70°C
Max. allowable memory array
~T5°C
Max. allowable power supply
power transistor surface
temperature85°C
Max. allowable power supply
diode surface temperature- 120°C
Max. allowable power supply
transformer temperature- 110°C
Initial IBM 7090 computer analysis of the
structure indicated that the following maxi, mum temperatures and/or temperature gradients could be expected:
Computer Data
Adapter
Max. logic transistor
junction temperature- 70°C
Max. junction-to-junction
7'oC
~TonapageMax. page-to-page ~T
(in a simplex channel)- 11°C
Max. memory array temperature39°C
Max. memory array ~ T
1°C
Max. power transistor
temperatureMax. power diode temperatureMax. transformer temperature-

45°C
7°C
10°C

within the units, and to establish mountingbolt torques and surface finishes to maintain
predictable temperature gradients at these interfaces, thermal-vacuum tests were conducted
on the major unit subassembly mockups.
VIBRATION TESTING
A computer structure was fabricated from
final machining drawings and assembled with
dummy subassemblies to simulate final unit
weight and center of gravity. This mock-up
computer was instrumented with accelerometers to monitor vibration response at the
various subassembly mounting points on the
structure. The unit was subjected to a 5g RMS
sinusoidal vibration environment (2g RMS
above acceptance vibration level) and a 0.057
ft/ cps random vibration environment (qualification level environment) with both inputs applied along all three orthogonal axes over a
frequency range of 20 to 2000 cps.
The maximum vibration transmissibility
measured at three points on the four-memory
structure with a 5g RMS input is shown in
Table III below.
LABORATORY TEST EQUIPMENT
IBM is developing special-purpose laboratory
test equipment to perform system-level test
functions. This equipment, termed ASTEC",
(Figure 28) will contain 125,000 component
parts. Equipment will be located at the IBM
Space Guidance Center, Marshall Space Flight
Center, and Cape Kennedy. The ASTEC is
used to test the computer and data adapter and
for computer operational program check-out.
It simulates the portion of the Instrument
Unit that interfaces with the data adapter.
It

100°C
56°C
66°C

To verify temperature gradients used in the
thermal analysis across thermal interfaces

TABLE III MAXIMUM MEASURED VIBRATION TRANSMISSIBILITIES
Direction

Missile Flight
Perpendicular To
Missile Circumference
Parallel to
Missile Circumference

Input
(g RMS)

Natural
Frequency
(cps)

Memory Mounting
Plate at Center of
Four Memories

Middle
Center of
Structure

Middle
End of
Structure

5

235

2.25

5.6

2.35

5

192

8.06

6.2

2~27

5

500

1.0

1.83

1.43

SATURN V LAUNCH VEHICLE DIGITAL COMPUTER AND DATA ADAPTER

515

PAPER TAPE READER

DATA ADAPTER IITE..,ACE
TESTER

COOLING STAND

TEST STAND

PROGRAMMABLE TEST
CONTROLLER

Figure 28. Computer/Data Adapter Laboratory Test Equipment (ASTEC).

ASTEC contains a programmable test controller (PTC), with an 8000;...word magnetic
core memory. To record test results and minimize human error, a 600-line-per-minute
printer is used. All of the equipment employs
the same Standard Module System (SMS)
electronic packaging techniques used in many
types of IBM commercial equipment.
The ASTEC can test the computer and data
adapter separately or as a system. It displays
significant register results and has a "history
file" in delay line storage for analysis of intermittent malfunctions. Disagreement detector
outputs are also displayed. The front panels
contain controls for power, channel and module
switching, single-step program and data adapter
control, interrupt features, tape reader for
memory loading, and a digital plotter.
The ASTEC may be used for program checkout, static testing, or dynamic testing of· the
prime equipment under environmental test
conditions.
Test stands, for mounting the computer and
data adapter undergoing test contain a refrigerator and a heating unit for maintaining
proper coolant temperature.
The PTC programs will control the testing
of the flight equipment while it is undergoing
vibration and other environmental tests. Analog and digital test signals are applied to equipment interface lines under program control,
and responses are evaluated by the ASTEC by
comparing flight equipment outputs with computed or pre-stored values. . Significant com-

puter and data adapter registers are brought
out as test points to facilitate testing.
When the data adapter is tested alone the
ASTEC will excite inputs and interrogate outputs to test all logic within the unit. Addressing of registers as well as data paths are
tested. In testing the computer, diagnostic and
test programs are run on the computer in conjunction with PTC programs. Computer selftest programs are designed to exercise the
great majority of diodes in the logic to locate
intermittent and catastrophic failures under
actual environmentai conditions.
The ASTEC contains provisions for operating the computer and data adapter in singlestep mode, permitting the execution of one
program step at a time. Flight operational
program check-out is thus facilitated.
The ASTEC is so designed that it may be
divided into two parts for use in debugging and
testing the computer and data adapter separately in factory operations. Program economy
has been achieved by providing common factory
and field test equipment.
The computer and data adapter will be used
in simulation facilities at the Marshall Space
Flight Center to simulate operation of various
parts of the instrument unit. The ASTEC,
with its inherent programmable capability, may
be connected to the data adapter to simulate
equipment not actually a part of the simulation experiment. This will provide a very
flexible facility for verification of system design prior to installation into the Saturn V
launch vehicle.

516

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

REFERENCES
1. DICKINSON, W. E. and WALKER, R. M., "Reliability improvement by the use of multipleelement switching circuits," IBM Journal
of Research and Development, 2, No.2,
pp 142-147, (April 1958)
2. FLEHINGER, B. J., "Reliability improvement
through redundancy at various system
levels," IBM Journal ·of Research and Development, 2, No.2, pp 148-158, (April
1958)
3. LYONS, R. E. and VANDERKULK, W., "The
use of triple modular redundancy to improve
computer reliability," IBM Journal of Research and Development," 6, No.2, pp 200209, (April 1962)
4. ERGOTT, H. L. and ROZENBERG, D. P., "On
the analysis of reliability improvement

through redundancy," Proc. of the Spaceborne Computer Engineering Conference,
(October 30-31, 1962)
5. BONIS, S. A., "An improved microminiature
circuit packaging technique," Proc. of the
Third Annual Microelectronics Symposium
of the St. Louis Section of the IEEE,
(April 1964)
6. BONIS, S. A., JACKSON, R. N., and PAGNANI,
B. R., "Mechanical and electronic packaging
for a launch vehicle guidance computer,"
Proc. of the Fifth International Electronic
Circuit Packaging Symposium, (August
21-24, 1964)
7. LALLIER, K. W. and PAGNANI, B. R., "A
three-dimensional heat transfer computer
program for aerospace applications," IBM
Space Guidance Center, Owego, New York,
IBM No.: 64-825-862A, (March 1964)

THE 4102-5 SPACE TRACK PROGRAM
E. T. Garner and J. Oseas
Radio Corporation of America
Moorestown, New Jersey
SPACE TRACK MISSION
There are five functions which the SPAce
Track SEnsor Computer (SPASEC) real time
program performs as part of an effective satellite surveillance system. It locates new satellites soon after launching; keeps up to date
records of known satellite orbits; provides positional data of high accuracy for use by other
systems; provides information on object size,
shape and stability; indicates orbital change.
The radar associated with this system can operate in both a surveillance mode to provide data
on orbiting objects passing through the volume
scanned or in a tracking mode to provide more
accurate orbital data on observed objects. The
computer program senses, identifies and discriminates among the objects penetrating the
surveillance volume and then. gathers the required data. This information then undergoes
evaluation and the results are forwarded to
the Spacetrack Center for additional analysis
and correlation.

known. This information is tralismitted over
Teletype lines to the Spacetrack Center.
In addition to the real time aspects of the
mission the site must produce its own schedule
of what it is able to see (penetration listings).
The site is furnished with orbital elements by
the Spacetrack Center on all known satellites.
This list of known satellites is constantly being
updated by means of Teletype messages. A list
of desired observations (priority list) is also
furnished by the Center.
Figure 1 shows the Operational System Organization. The Operations Director has the
responsibility of coordinating the data requirements with the detailed problems of site operation. Missions are planned based on new infor-:mation requests, object priority, number of
expected sightings, and probability of detection. Changes in an object's status are entered
into the computer using simple mnemonic codes
and decimal numbers. Changes or additions to
the satellite file received over the Teletype lines
are automatically entered into the computer
ephemeris file and written on the master tape.
The expected satellite penetrations are computed periodically and a hard copy is produced.
This allows an operational check against the
master plan based on the most current information at all times.

The mission of the satellite surveillance system is to identify and acquire track or scan
data on the satellites. Care is exercised in the
gathering of data so that the minimum amount
of information is collected that will satisfy the
requirements of the particular satellite observation. This insures that the radar will be
available to gather information on other objects and that redundant information will not
be transmitted. The information leaves the
computer as smoothed radar observations in
the form of time, range, azimuth, elevation,
range rate and identification of the satellite, if

The plan is executed by the· Tracking Radar
Control Console (TRCC) operator who exercises gross manual control over the radar system directing the radar to scan the select~d
sector. Under these manual constraints thesys-

517

518

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

PENETRATION
PREDICTIONS

SPACE
TRACk
REQUIREMENTS

4102-S SPASEC
I. INTEGRATE RAW RADAR DATA
2. AUTOMATIC IDf .... TlFICATION
3. RADAR SYSTEM GUIDANCE
OPERATIONS· DIRECTOR
LMISSION PLANNING
2.ENGAGEMENT
TECHNIQUE

SIGNATURE
ANALYSIS
REOUIREMENTS

Figure 1. Operational System Organization.

tern is automatic and is controlled by the
4102-8 computer.
The raw data collected by the radar system
is processed and filtered by the computer. Data
identification, data quality and data consistency
checks are performed by the computer. The
program directs the radar in the gathering of
additional information and returns it to the
surveillance mode of operation when it is satisfied that no more useful data can be collected.
The TRCC operator then executes the next
phase of the plan.
The data flow in the operational program is
as follows (see Figure 2). As the radar scans
its assigned region of space, parameters of objects detected by the radar are stored in the
computer. These reports are compared on a
scan to scan to scan basis and are said to associate if they might reasonably be expected to
have come from a single object. The associated
reports are combined and smoothed into an
approximation of target position and velocity
called a Q-point. When the program determines that no additional useful scan data is
available an attempt is made to identify the
object. Recognitio!l is made by comparing the
Q-point with predicted radar far penetrations
of known satellites. The orbital elements of
known satellites are stored in the computer
memory. Radar fan penetration or S-points are
computed in advance based on the radar scan

coverage and are stored in time ordered sequence. When a Q-point is identified its parameters are transmitted to the Central Data
and Cataloging Center via the Teletype link.
If no positive identification can be made the
Q-point is then subjected to discrimination
tests to determine if this object is a satellite.
Q-points failing discrimination are discarded.
Those which pass are tentatively identified as
uncorrelated objects and are tracked.
Identified objects are tracked based upon
either priority assignment or upon data validity tests. All objects to be tracked are compared and the one with the highest track priority is designated. The program directs the
radar to the expected target position and continually up-dates this position until the radar
s on
"Iock
" or can no 1onger be expected to
acquire the object. If there are no more track
requests, the system returns to scan. After
"lock-on," an automatic radar hardware function, the radar sends track reports to the computer which are smoothed to form Q-polnts.
The first of these is subjected to the same identification tests as the scan Q-point in order to
insure proper identification. This orbital information is transmitted back to the Space Track
Center. The number of data points transmitted
and the length of track are dependent upon
the priority of the track mission and the limits
of the system.

THE 4102-S SPACE TRACK PROGRAM

All levels may set any bit in the "flag register"
but the bit may be cleared only by the level
associated with the flag. With these set and
reset commands programs and external devices
can intercommunicate.

4102-S SYSTEM
4102-8 Computer

The 4102-S is the most recent addition to
the 4100 series built by RCA, Van Nuys, California. The RCA 4102-S is a 16-level, 30-bit
word length, parallel, binary, 2's complement,
fixed point, fractional, interrupt I/O, stored
program computer. The computer has 16 pro:'
gram counters and 96 full length index registers. An add instruction requires 19.2 microseconds and a multiply 75.5 microseconds.

Interrupt processing uses the hardware level
control to accomplish input/output while tying
up main frame only a small portion of the time.
Each command and I/O instruction suicides
and the particular I/O device will set the priority flag when it is ready to accept or transmit
more data. This allows the program to proceed
normally, processing data and being interrupted when I/O devices need servicing.

The prime requirements for the SP ASEC
system demanded that the computer be reliable,
binary, economical, and capable of communicating ,with the radar system in real-time. The
RcA 4102-S met the real-time requirements
with interrupt I/O as opposed to interleave
I/O.

Economies in computer hardware were
achieved by the interrupt processing method,
by fixing point logic and medium speed circuitry. Effective computer utilization was realized through the use of a simple assembly language and fixed point coding.

With the interrupt processing method used,
a section of coincident current memory (CCM)
is set aside and designated as "executive storage." This area is used by hardware to store
the program counters and the index registers.
There is an internal 15-bit register known as
the "flag register" which is examined each time
an instruction is executed. If a higher priority
level flag is set the program counter for the
higher level is accessed and a new instruction
sequence is begun. When a level is through
operating it may erase its own flag (suicide).

4102-8 Configuration

In the 4102-S both program units and hardware devices have been assigned priorities. The
level assignment is shown in Figure 3. The
hardware devices· are fixed priorities and are
arbitrarily assigned according to the maximum
allowable time lag between request and service
of the device. Hence the faster, "more impatient
devices have higher priorities. Input/Output
devices are associated with the first ten priori-

I

TELETYPE
INPUT

4102-S

J

I

I

DATA SMOOTHING

COMPARATOR a
DISCRIMINATOR

t
DISCARD

I-

t

SATELLITE
LIBRARY

I

RADAR SYSTEM

~

PENETRATION
(S-POINTS)

I
I

519

REQUEST
TRACK

Figure 2. SPASEC Data Flow.

TELETYPE
OUTPUT

520

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

10
PLbiOIIItITIII
I~

•

•

7

.... CIIIIK -IXTIMAU.Y
I ....... 1IIATPlM. _ _ OILY 1'1111[ _ _ I

IE....... _

Figure 3. SPASEC Level Assignment.

ties; arithmetic overflow occupies the eleventh
priority and program units occupy the next five
priorities. The configuration is shown in Figure 4.
The real time interface is the computer's connection with the real world. Through this interface the computer receives information on
radar returns in the form of digital signals
representjng range, azimuth, elevation, doppler
and time. Radar system information messages
are also given to the computer through this
link. The computer can direct the radar to
release or to acquire a target. The communications are more complex than this but the end
results are as stated.
There are two magnetic tape drives, 7330's,
which are used in low density only. The data
rate of these units is 7.2 KC character rate. In
order to match the IBM tape format a blank
character is appended to or deleted from each
word transmitted between the 4102-8 and the
tape units. This results in a data transfer rate
of 833 microseconds per word. The tape units
are used for fast program load and historical
recording.
The line printer is an Analex 41000, capable
of printing 1,000 lines per minute. The printer
has a 64-character selection and a 120-character line. There is a punched vertical format
control tape to allow program control of the
output. The printer is used to provide a hard
copy of the penetrations of the surveillance
sphere.

A model 28 Teletype is connected to the computer through a special interface which can
recognize sequences of Teletype characters as
a request to start or end a message. The interface may operate in three input modes meaningful to the program: Automatic, in which
case the information is made available to the
computer directly from the tape punch heads;
Program control-the program attempts to
read the accumulated store of paper tape; reading of each Teletype message is initiated by the
computer; Manual, the reading of the accumulated store of paper tape is initiated by enabling manual mode which must be reenabled for
each succeeding Teletype message. The interface has two alternatives for Teletype output:
Automatic--data generated by the computer is
transmitted from the punch heads automatically to the 8pacetrack Center and a back up
paper tape is produced. Manual-the computer
produces a punched paper tape which is transmitted later manually. All Teletype output messages are printed on the Teletype line printer.
The Flexowriter is a standard 2 case, 5-bit
Baudaut code machine with read, write and
punch capabilities. The 4102-8 hardware generated load program selects the Flexowriter, so
initially the Flexowriter paper tape reader is
used to load a bootstrap program which will
load the operational program from a magnetic tape unit. After initial loading the Flexowriter reader is used to enter control messages
to the program. The Flexowriter typewriter is
used to print direction messages to the opera-

THE 4102-S SPACE TRACK PROGRAM

tor, equipment status messages and smoothed
radar data.

521

the program continues relocated into the good
half. In this case the satellite identification
feature is lost. If the program is destroyed by
a transient signal or intermittent error the program is quickly reloaded from magnetic tape.

PHILOSOPHY OF PROGRAM DESIGN
SPASEC was conceived to be a single purpose computer system as opposed to a general
purpose system. Its task was to fulfill the Space
Track mission twenty-four hours a day, seven
days a week.

The logic of the program and the system
assumes that any changes in operating mode
due to manual intervention are correct unless
such changes are of such a nature as to physically damage the radar. If any procedure is
unexpected the program will notify the operating personnel of such change by specific
English reference to what has occurred (e.g.,
TRACK DENIED, RADAR INOP(erable),
TRACK MODE). System malfunction is determined quickly and operator intervention is confirmed.

Throughout the design, coding and development phases of the program, particular attention was given to relieving operating personnel
of responsibility for determining detailed system action and response. This design concept
which stresses completely automatic operation
is coupled with additional features to allow
manual direction and/or intervention. The
blending of operational flexibility and automatic control has made this system adept at
gathering data for general and special purpose
missions. This has allowed an operation which
has significantly reduced the number of technical specialists necessary to conduct the most
complicated assignments.

It was realized that with time, as additional
operational requirements become known, program changes would be required. The actual
requirements for changes which are being implemented attest to the validity of this concept.
Based on this, features were incorporated into
the program to facilitate modification, debugging and historical recall.

The SPASEC program is segmented and
planned in such a way that the operation can
continue ,yith reduced capability. If the Flexo=
writer is inoperable the Teletype will be directed automatically to perfornl the Flexowriter output function in addition to its own.
If as much as half of core memory is inoperable

Historical recording is closely allied to the
debug features within the SPASEC program.
These features are used for program maintenance, system and hardware debugging as well
as special studies. Access is allowed to the pro-

MAGNETIC
TAPE

MAGNETIC
TAPE

REAL TIME LINK

4102-S
32,000
CCM
PRINTER
1000
LINES/MIN
TELETYPE
PUNCH
READ
PRINT
Figure 4. 4102-S System Configuration.

FLEXOWRITER
PUNCH
READ
PRINT

522

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

gram and its data in real time or off..,Iine modes
of operation.
PROGRAM ORGANIZATION

Initialization
The 4102-S is paper tape oriented, which for
small programs is not unwieldy. For the
SPASEC program a bootstrap procedure is
used. The program is assembled on another
computer with card I/O and brought to the
4102-S on a low density binary tape. This magnetic tape is then loaded under control of a
small paper tape program loaded through the
Flexowriter.
An integral part of the SPASEC program
is the ephemeris file, a file which is constantly
being changed. In order to reflect this change
a new program tape is written during initialization and is positioned to receive changes to
the ephemeris file. Each day a new tape is
generated which is used for input on the next
day. To enhance the reliability needed for an
operational system, the program can be quickly
reloaded· from the next-days. master without
destroying any of the above capability.

Real Time Data Handling
The interrupt cycle occupies the highest program-priority (see Figure 5), that is, programpriority as opposed to the priorities assigned

to the hardware devices. The duty of the interrupt cycle program is to act as an executive
routine and clearing house for other sections
of the program that communicate with the real
time interface or are concerned with real time.
The rationale for this is that the communication with the real time interface must be done
at certain times within the radar pulse interval
and to avoid confusion it was advisable to have
one section of program control the data flow.
This section must be executed periodically,
hence the high priority level. The interrupt
cycle is activated as a program once per radar
pulse interval, therefore, it is well suited to
update timers and in general furnish the program with a pulse. Periodic entry to lower
priority levels is effected through this program.
Since the radar system can be in track or
scan but not both, data processing is performed
on the same level by two mutually exclusive
programs. The scan portion of the program
looks at returns from two complete scans and
attempts to associate the various returns. The
data that the scan program has access to consists of "end of scans" (EOS) and scan reports. When reports from two consecutive
scans are believed to be from the same object
they "associate." Association of reports is not
attempted until a configuration of the type described in Figure 6 is attained. The only items
of interest are the reports between EOS#K

II

I

...lIme

DOCRIII.NATION

TAN 110

• TltACK .tISI8NIIENT

PROGRAII

.

I
..... ETIC TAP!: 110

12

SCAN.~

PReleRAIl

II
INTERRUPT
CYCLE
PWOeRAM

4

.

AVAILAILE

•

10

LINE I'RII.TD

MITHIIETIC
OVEltFl.OW

Figure 5. SPASEC Program Organization.

THE 4102-S SPACE TRACK PROGRAM

and EOS# (K +2). The reports between
EOS#K and EOS# (K + 1) are reports that
represent data on an object for one scan and
reports that represent smoothed data of more
than one scan. The data between EOS# (K + 1)
and EOS# (K +2) represent current reports
which mayor may not associate with data between EOS#K and EOS#(K+1). When it is
determined that there is no data to update a
previously smoothed data report, the cumulaTable I.

Program Communication

Flag

(1)

Magnetic Tape I/O.

(2)

Magnetic Tape I/O.

(3)

Real Time. Interrupt.

(4)

start Message Output'

(5)

Compare Datal

(6)

File Error Message!

(7)

File Error Message!

(8)

File Error Messagel

(9)

FUe Error Messagel

(10)

File Error Messagel

(ll)

start

(12)

Cycle Through I/O Devicesl

(13)

Check For Data To CompareJ

(14)

Smooth Datal

(15)

Printer Control

(16)

Teletype Input Control

(17)

Teletype Output Control

(18)

Flexowriter Input Control

(19)

Flexowrlter output Control

Penetration Calculationsl

523

tive information on this object is given to a
track decision routine for further action (see
Figure 7).
Smoothed scan reports (scan Q-points) are
developed from weighted radar parameters
(range, doppler, azimuth, elevation, time and
credences). Additional parameters are developed from this base data such that a final scan
Q-point contains range, range rate, range acceleration, azimuth, azimuth rate, elevation,
elevation rate, time and an accuracy index.
Q-points generated from scan data and initial
track Q-points are compared with the ephemeris file (S-points) by the comparator program.
The results of the comparison test yield one of
the following results: fine, passed comparison
within close time and position tolerances;
coarse, passed comparison within broad time
and position tolerances; coarse, tentatively
identified with more than one object; uncorrelated, object unidentified.
Uncorrelated object Q-points are processed
through discrimination tests which are designed to determine if the object is a satellite.
These tests are based upon energy considerations and are designed to eliminate meteors,
the moon and noise. Q-points which pass these
tests are placed on a tracker waiting line and
are tagged uncorrelated. Those which fail are
discarded as being of no interest.
Each object on the tracker waiting line has
associated with it a track priority. This priority is a function of the object identification,
data age, and probability of detection. The program selects the object with the highest tracking priority and attempts to track for a period
of time based ppon the track criteria.
To automatically track an obj ect the program
directs the radar to a point along the object's
path slightly ahead of the object. This designation message is transmitted to the radar system through the real time interface causing
the radar antenna to be directed to a point in
space. For a short period of time the object's
path can be described as a second order curve
in each of the radar's parameters. The six
Q-point parameters are used to find values for
the second derivatives of range, azimuth and
elevation.

C4

C3

- - I- AI.

A2

EOS# K+I

90

AZ 180
TIME TO

TO+ TI

180
TO+T2

DIRECTION OF SCAN
SCA. IP)[ IS DEI'IlIBD TO BE BETnEK EO HI: An EOS#()[+l). TO SUBSCRIns UPUS.K'l
TBB .UlInR 01' COKS.CU'l'IVB SCUI I'OR nICB 'fBIS OBJECT BA, APPBAUD. ALL OBJI:C'l
R.PRBSEKTATIOKS ARB AOORBOAor. SUlIS 01' TO DATA OK 'fBIS OBJI:CT.
A2 ASSOCIA'lBS YI'lB AI.
SIKeE TBIS IS TO I'IBST ASSOCIATIO. lI'I'lB Al STORACD II
APPROPRIA'lBD IK nICB TO DBP TO AOOUOA'lB SUlI 01' A'S PARADft.S.

Be IS AN OLD OBJBCT nICB DO.S KO'l APPBAR IK SCAK #)[+1.
on. TO TBB TRACI: DBCISIOK ROU'rIKB.
C3 IS AK OBJ.C'l nICH BAS AK UPDA'lB.
TADK.

'fBIS OBJBCT IS OInK

C" IS ADDED TO Cs An NO OTBBR ACTIOK IS

D1 IS A 011' OB.TJ:CT IK TO I'A. An KO ACTIOK IS TADK.

TRIS conBS ALL TO DATA

COnI'll OKS COKC.RKIKO REPORT ASSOCIATIOK.

J:t'igure 6. lC.eport Association.

The designation point is current time plus a
half second and is valid for one second. If the
object is not detected, a new designation point
is computed. This procedure may continue for
thirty seconds. If the object is detected, the
radar automatically "locks-on" to the object
and the track is begun.
Track data is smoothed using unweighted
arithmetic means with least squares fits to
develop the rates. The final track Q-point contains range, range rate, azimuth, azimuth rate,
elevation, elevation rate, average angular credences and orbital elements consisting of inclination, period, semi-major axis, eccentricity
and right ascension. The track Q-point presently is developed from 10 seconds of radar
data.
A "cast out" routine was developed to limit
the transmitted data to representative portions
of the track. At termination of track this routine produces 3 Q-points if a short track and
10 if a long track. In the case of a long track
the Q-points will be as equally spaced as possible throughout the entire time interval. The
track program examines the reports and will
terminate the track if the radar antenna should
attempt to enter unavailable regions in the
sphere of surveillance. For a short track the
program terminates when three track Q-points
have been developed.

Penetration Computations
The S-point file is generated from the set of
current orbital elements contained in computer
memory. Satellite elements, radar site coordinates, radar sector, and time period of interest
are used to compute predictions. Non-penetrating satellites are quickly rejected from consideration based on tests of the satellite's inclination and time of horizon passage.
There are five types of penetration schedules
available to the operations director to preplan
missions. The five penetration requests are:
1, penetrations for all objects ordered by time;
2, penetrations for all objects ordered by satellite number in increasing order; 3, penetrations
for a priority class of objects ordered by time;
4, penetrations for a priority class of objects
ordered by satellite number; 5, look angles, a
series of penetrations of a single object separated in time between two elevations.
When operating in real time, penetrations
(S-points) are automatically generated for all
azimuths at a specified elevation and filed for
use by the comparator program. The file always contains one penetration interval, normally 40 minutes ahead of the current time.
When S-points become more than six minutes
old, they are automatically deleted. This allows
continuous operation with no loss of S-point

THE 4102-S SPACE TRACK PROGRAM

storage. The S-points are printed after the
computations for an entire interval are completed. When a print request is received in
real time, the real time S-points are deleted and
the print request is honored. Upon completion
of that printing, the real time S-points are automatically regenerated and printed.

I/O Control
The prime considerations in the design of the
I/O control program were ease of use and
movement of data at the; acceptance rate of
each device. The input/output control routine
communicates with each of the following I/O
devices, magnetic tape units, Flexowriter,
Teletype and line printer. This master control
routine is responsible for scheduling each of
these devices based on availability, speed of
operation and message priority. For output the
user program notifies the I/O routine through
a calling sequence which specifies the I/O device, the address of the data and the type of
message. .-From the point of view of the user
program the data is considered transmitted to
the output device after the calling sequence has
been executed. In reality the request is stacked

I

i
TELETYPE

FLEXOWRITER

I
~

I

SATELLITE
LIBRARY

_f
PENETRATION
COMPUTATIONS
S-POINTS

RADAR
REPORTS

t
Q-POINT
FORMATION

I

t

SCAN •

HARD COpy
OESI~EO

NO

and will be processed when the device is available.
For input the entire transfer of information
is automatic and no processing is done on any
message until the transfer is complete. The
message is identified, converted and delivered
to the responsible routine. This is accomplished
by flagging the proper sub-program and giving
the location of the data. Movement of large
blocks of data is eliminated through use of simple list techniques. Only references to data are
communicated between sub-programs.
Real time I/O is treated similarly but independently of the main I/O control program to
assure minimum response time.

Data Manipulation Techniques
Data handling in this program makes use
of simple list structures, e.g., chained lists, and
key buffers referencing lists. Nearly all sections of the program work with chained lists.
In our application list structures have served
several purposes. Lists are used to give items
an effective consecutive order, regardless of

H
~

REAL TIME
LINK

~

TELETYPE

SET UP FOR LONG
SATELLITE
~ TRACK a DIRECT
DISCRIMINATION
RADAR TO TRACK

~

REAL TIME
LINK

~~

TRACK

OATA

t

"YES

t

II

REAL TIME
LINK

......

SETUP FOR
TRACK a DIRECT
RADAR
TO TRACK

~

SET Q-POINT
a ID FOR
TRANSMISSION

YES

f-4-

~N~

JYES

S-POINTS

MATCH

I
COLLECT
Q-POlNTS FOR
TRANSMISSION

~ OF Q-POINlS TO ~

LINE
PRINTER

i

1ST Q- POINT
ON THIS OBJECT

-

COMPARISON

IS THERE A
REQUEST TO
TRACK THIS
OBJECT

NO

- YES

SATELLITE

NON - SATELLITE

RECORD a
DISCARD
Q-POINT

t
TELETYPE

YES

~

DID Q- POINT
HAVE A FINE
COMPARISON
WITH S- POINT

525

NO

-

SET UP FOR
SHORT TRACK
a DIRECT RADAR
TO TRACK

Figure 7. Detailed Data Flow in the SPASEC Program.

~

REAL TIME
LINK

526

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

core location. They allow access to a large
amount of data through a single reference.
Lists are a convenient way to have several programs use common storage. They are time saving when large blocks of data are to be transferred among programs. Lists save storage
when several routines of high peak storage requirement, at staggered times, can use a common storage. Instead of having to assign storage for the worst case for each of the programs, memory is assigned on the basis of the
overall requirements.
It should be noted that it is not necessary to
achieve sophistication in list structures to make
use of them. List structures can be programmed in varying degrees of complexity
tailor-made for the particular program. In
programming for the Space Track mission, list
processing was found to be efficient in terms of
space and time and was a convenient way to
visualize data transfers.
SYSTEM GROWTH
As with any experimental system certain
growth can be expected in the hardware configuration and in the sophistication and diversification of the programming effort. This expansion may be divided into two categories:
that which is presently being implemented and
future planning. Present implementation includes transmission of pointing data in real
time to a narrow beam, short range radar in
Baltimore, Maryland. A high-speed (2400bits/sec.) data link will provide communications. This service may be expanded in the
future to provide similar data to other sites.
Push button input for control of program options is under development. This will allow
operations faster response to requests. Program changes are being installed to allow automatic recognition of radar coverage changes
and to recompute S-points based on this new
sector.

Plans for future improvement and growth
include: additional storage for system enhancement; card reader/punch; displays. This additional storage would allow an expanded ephemeris file when the known satellite population
becomes much larger than the present 400 objects, and would be used to store different production programs which would time share with
the operational program. A card reader and
punch would allow a desirable re-orientation
of our present paper tape system. A displays
facility with computer control of a slide proj ector would allow a concise picture and quick
human identification in most cases.
CONCLUSION
The 4102-S SPASEC program has proved
itself to be a flexible and reliable satellite surveillance program. Working as part of the
Moorestown Space Track facility it has demonstrated its ability to identify satellites and
direct the radar system in the collection, reduction and forwarding of data. The use of this
program has enhanced the operations of the
Space Track mission and made this site one of
the network's more important members.
ACKNOWLEDGMENT
J. F. Russell assisted with the preparation
of the material presented herein.
BIBLIOGRAPHY
1. E. T. GARNER and J. F. RUSSELL, "Descrip-

tion of the 4102-S Space Track Program,"
SPA-1100-2, July 19, 1963.
2. E. T. GARNER, "List Processing Techniques
U sed in the BMEWS Engineering Model
Building Space Surveillance Program," presented at Information Processing Symposium, RCA, Princeton, New Jersey, October 1963.
3. J. A. CORNEL, "The RCA 4100 Series
Military Digital Computers," RCA ENGINEER, Vol. 8, No.6, April-May 1963.

A HYBRID COMPUTER FOR ADAPTIVE NONLINEA.R
PROCESS IDENTIFICATION
Rob J. Roy
Rensselaer Polytechnic Institute
Troy, New York
and
Bruce W. Nutting
Burroug hs Corporation
Paoli, Pennsylvania
INTRODUCTION
The physical processes which exist are, for
the most part, controllable. In order for man
to exert control over these processes, however,
it is necessary for him to design a system to
suitably perform this task. Such a design
requires a characterization of the process to be
controlled.

human response, it is not required that the
complex nerve and brain structure be known.
The only practical method would be to observe
a series of causes and effects, and from this
data infer the proper cause to produce a
desired effect. Not only is this procedure practical, but it is adaptive as well. If the causeeffect relationship changes, the observer is
made aware of this fact. Parameter tracking
for a structure as complex as a human being
would be· absurd. I t is equally as absurd to
track the parameters of a tenth order nonlinear
process.

Often the characterization of a process can
be determined from the physical principles
involved in the process behavior. This has been
true for most of the control systems designed
in the past. As man seeks to control more
complicated processes, however, it is found that
either many processes are extremely difficult
to physically characterize, or that the characterization is too complicated to use in the
determination of a suitable control system. For
a complex process of high order with several
nonlinearities, there is no procedure which can
accurately obtain all the process parameters.
Fortunately, however, there is no reason for
obtaining all the process parameters and all
the nonlinear functionalities.

For these reasons, a relatively simple and
straightforward method of relating process
inputs and outputs is necessary. This method
shQuld be suitable for nonlinear, as well as
linear, processes. Furthermore, the process
characterization should adaptively follow process changes due to such things as changes in
environment. Since special test signals result
in a disturbance of the process outputs, they
should not be required to characterize the
process.

The basic question of process identification
is cause and effect. For a given cause, what is
the effect? For example, in order to control

It should be noted that for control purposes
one is interested in determining an input to
produce a desired output. It is important to

527

528

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

realize this does not mean it is necessary to
determine the process transfer function or
describing function, or differential equations,
etc. In fact, some of the above mentioned types
of characterizations are not applicable to many
processes of interest.
This paper is concerned with those processes
which have a two-level switched input and finite
settling time. The importance of the switched
two-level process has its foundation in the
utilization of predictive control as a practical
solution to least time optimization problems. 1- 9
Chestnut et al. indicate significant applications
for predictive control in space navigation and
rendezvous missions, aircraft landing problems,
and the control of chemical plants. 4 The process
identification concepts presented in this paper
are ideally suited for predictive control applications.

(n-1)T time units, where T represents the time
interval between shift pulses.
The zero memory nonlinear system performs
a nonlinear transformation of the n outputs of
the shift register into the output of the model.
Thus, the model can be viewed as a sequential
machine with 2n states, where the states are
defined by the n outputs of the shift register.
The output of the model is a function of the
present state of the model. An example of this
is shown in Figure 1. This sequential machine
has four states, the states of the machine being
defined by the past two inputs to the device.
The output of this device is a function of the
present state Si. If the state Si is defined as a
switching function, being one when the device
is in state i and zero otherwise, then the output
of this sequential machine can be written as
,3

Z(t)
THEORY OF THE MODEL
The hybrid computer model was designed for
predictive-adaptive control systems. The model
has a switched two-level input signal, which
for convenience will be called the zero and one
levels. The only a priori knowledge of the
process which is required is an estimate of the
settling time of the process, and the fact that
this settling time be finite. The requirement of
an estimate of the settling time of the process
is needed to provide rapid identification of the
process. This requirement can be removed, and
the model can be made to adapt to the settling
time of the process. However, even though the
process may be nonlinear and only the inputoutput operating record is available, it is reasonable to assume that the range of the settling
time of the process is known.

= ~ Ki Si (t)
i

Z (t)

= model output

Extrapolating this simple model to a sequential machine with 2n states, then
:!n - 1

Z(t)

=~
i

Ki Sj (t)

(2)

= (I

The model output Z (t) is equal to Ki when
the model is in state Si. Since the machine can
be in only one state at any given instant in
time, only one term of the summation of Eq. 2
is non-zero at any given time.
If
then
such
true

the true output of the process is y (t),
it is desirable that the Ki be adjusted
that the mean square error between the
output y (t) and the model output Z (t)

The theoretical basis for the model is the
work of Wiener and Bose. The classic theorem
of Wiener 10 states that any nonlinear system
which has finite settling time can be characterized by a multiple output linear system which
characterizes the input past, followed by a zero
memory nonlinear system.
The multiple output linear system used by
this model is an n-1 stage shift register. If the
binary input is fed into this shift register, the
n outputs (including the present input) will
approximate the input history for the past

(1)

=0

OUTPUT=K1

Figure 1. Sequential Model.

A HYBRID COMPUTER FOR ADAPTIVE NONLINEAR PROCESS IDENTIFICATION

be minimized. The following function must
then be minimized, the bar indicating an infinite time average.
E = (y(t) - Z(t»2 = (y(t)

~Ki Si (t»2

529

Since it is impossible to know the future output of the process unless the future input is
known, the best that can be done is to assume
stationarity in both the process parameters and
the input statistics.

i

(3)

Under these assumptions, the coefficient
+ kT
Kj3
can be expressed as
t

Taking the derivative with respect to a dummy
term Kj3

oE
oKj3 - 2(y(t) - ~Ki Si(t»

(-Sj3(t»

(4)

i

Since the states are disjoint in time, the product
of the switching function~ Si (t) Sj3(t) is zero
except when i = f3. Since the switching function Sj3 (t) is either zero or one, the product
Sj3(t) Sj3(t) is equal to Sj3(t). Therefore,

~ = (-2) (y(t) Sj3(t) - Kj3 Sj3(t»

(5)

aKj3

If Eq. 5 is set equal to zero, then the coefficient
Kj3 is found to be
Kj3=

y (t) Sj3 (t)
__
Sj3(t)

(6)

The coefficient Kj3 can be interpreted as
representing the average value of the true output y (t) when the sequential model is in state
Sj3. If the process is slowly time-varying, then
Kj3 should be a function of time, such that the
model follows the time variations of the process
with minimum mean square error.
For control purposes it is desirable that the
model have the capability of predicting future
values of the process output from the knowledge
of the present state of the model. This capability can be expressed as follows,
Z(t) = ~K~ +kT Sj3(t) z y(t

+ kT)

(7)

(:3

where kT represents the prediction time. The
superscript t + kT indicates that K~ + kT is the
predicted value of the process output kT units
in the future. Following the same procedure as
used to find Kj3, the coefficient K~ + kT is found
to be

K;

+ kT

= y(t +~ Sf3(t)

Sj3(t)

(8)

K; + kT

=

y(t) Sj3(t - kT)
Sj3(t - kT)

(9)

This expression for the prediction coefficient
can be implemented with a shift register of
n + k - 1 stages. The prediction coefficient is
obtained by associating the present average
process output with the state corresponding
to the last n outputs of the shift register (taps
k through k + n - 1). When that state next
appears at the first n outputs of the shift
register (taps 0 through n - 1) the model
remembers what the average value of the
subsequent output was when that sequence
appeared previously, and predicts this value
for the future model output. Essentially, this
prediction is the conditional mean of y (t + kT)
given the particular state Sj3 (t). The implementation is shown in Figure 2. The average value
of the present output can be used as the identification coefficient Ka associated with state Sa,
or as the prediction coefficient K~ + 5T associated
with state Sj3.
The preceding discussion describes the basic
theory of the identification procedure. Since
the purpose of this paper is to describe the
hybrid computer which was designed from this
basic viewpoint, the theoretical details of model
error, identification time, etc., are omitted.
These points are adequately discussed in Reference 11.
For the purposes of this paper, it is sufficient
to state that if the minimum mean square error
of identification is given by E min , then the
average value of the additional mean square
error introduced by having only a finite inputoutput operating record is given by 11M E mi1u
where M is the number of times each state has
occurred. Thus, the additional MSE due to a
finite operating record is no more than 11M
E min , if each sequence occurs at least M times
in the record. Consequently, the mean square
error caused by having each state appear only

530

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

ANALOGDIGITAL

NONLINEAR
PROCESS

I"

Sea. (t)

MEMORY
S~(t-5T )----II~~I

PREDICTED
OUTPUT
Z(t+KT)

Figure 2. General System Diagram.

once is at most twice the minimum mean
square error.
Since the minimum mean square error can
be made extremely small by increasing the
~engt~ of the shift register (increasing n), the
IdentIfication using this technique should be
quite good.
Before passing to the discussion of the design
of the process identifier, there are two points
of practical interest. The first point is that
although there are 2 n possible states which may
occur in the theoretical model, practical considerations will limit the number of states that
the actual model will experience. For a practical
control system, the input will probably not
switch n times during the process settling time.
Some studies ll - 12 on a ten tap system have
shown that it is reasonable to expect that no
more than 200 different states will occur
although the specific states which do occur ar~
not known. This important observation reduces
the required memory capacity considerably.
The second point is that knowledge of the process input in the immediate past is generally of
more importance in determining the present
process output than inputs which occurred
some time in the past. Therefore, it is advisable
to have the capability of tapering the outputs
of the shift register. That is, spacing the first
few shift register outputs closer timewise than

the last few shift register outputs. This is
accomplished by increasing both the length of
the shift register and the shifting frequency by
a multiple of two. A typical example of tapering is shown in Figure 3.

COMPUTER DESIGN
The basic components of the hybrid computer
are the input shift register, the main memory,
analog-to-digital and digital-to-analog converters, and an analog weighting and averaging
~ection. See Figure 4. The input shift register
IS used to store the present input sequence to
the process. The main memory is a converted
IBM 650 magnetic drum, and is used to store
the past input sequences Sa, the associated
coefficients K a , and a weighting number which
indicates the number of times that a particular
sequence has occurred. The analog section is
used to find the average process output over
the time that a particular sequence appears.
This average value is combined with the appropriate coefficient K(3 and weighting number to
form the new coefficient K(3. The analog-todigital and digital-to-analog converters provide
the required interface between the analog and
digital portions of the computer.
The input shift register, used to form a temstorage for the binary process input,
consIsts of 20 flip-flops. The shifting frequency

pora~y

A HYBRID COMPUTER FOR ADAPTIVE NONLINEAR PROCESS IDENTIFICATION

UNIFORM LINE

0
TAP
TIME DELAY 0

T

2 3 4
5 6
7 8 9
2T 3T 4T 5T 6T 7T 8T 9T

TAPERED LINE

TAP

0 12 3 4

TIME DELAY 0

5

6

t T 3J 2T 3T 4T

7

8

5T

7T

II

9
9T

Figure 3. Tap Arrangement.

(input clock) is determined by the settling
time of the process being observed. The input
and input past are taken from the shift register
at 10 points (via a patch board), and these 10
points are used to form an address ("predict"
address). The drum memory is searched for a
coincident address, and if one is found the information and weighting number associated
with that address are placed in registers. A
digital-to-analog conversion is performed on
the information, and this analog signal is combined with the process output in a ratio determined by the weighting number. An analog-todigital converter produces the binary equivalent
of the analog signal formed by the weighted
combination mentioned above. If the weighting number has not reached a preset limit, it
is increased by one, and both the new weighting
number and the information from the analog-to-digital converter are placed in memory at the
coincident address. Each memory location contains 10 address bits (the sequence Sa), 6
information bits (the coefficient K a ), 4 weighting number bits (the number of times Sa has
appeared), and a check bit which indicates
unused memory locations.
If the outputs of the 10 taps form an address
which has not been observed before, the machine analog output and the process output are
combined in a 0: 1 ratio and the weighting
number is set equal to 1. The information from
the analog-to-digital converter, the weighting
number, and the new address are all placed in
memory at a previously unused position.

531

A second group of 10 points is taken from
the shift register (via the patch board) to form
the model output address ("identify" address).
A second coincidence circuit searches the drum
for this address, and if coincidence occurs the
information associated with the model output
address is placed in a second register. The
digital-to-analog conversion of the information
in this register is used as the model output.
The weighting number associated with this
information is not used at this time.
If the "predict" and "identify" addresses are
taken from the same 10 taps of the shift register, the model output will identify the process
observed. If the "identify" address is taken
from a group of ten taps which are of the same
configuration as the 10 taps of the "predict"
address, but located closer to the start of the
shift register, the model output will predict the
process observed.
The analog section of the model consists of
four operational amplifiers. Two of these operational amplifiers are used for the output of the
digital-to-analog converters. One amplifier is
used to perform the averaging of the process
output over the time interval T, and one amplifier is used to perform both the weighting of
the present process output with the stored coefficients and the sample and hold function required for the analog-to-digital converter.
The process averager is an integrator which
is sampled and reset to zero once each cycle. If
the time between input clock pulses is T, then
the average of the input voltage over one cycle

f

T

is: eam" .

= ~

einput dt. The equation of the

integrator (assuming zero initial conditions)

f

T

is: eoutput

= -

_1_

RC

einput dt. Therefore, RC is

set equal to T. The reset time of the integrator
(1 millisecond) is negligible compared with the
values of T to be used (of the order of 0.4
second) .
The two digital-to-analog -converter blocks
marked DAC in Figure 4 serve to connect an

532

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

The weighting unit is a resistor and reed
relay network controlled by digital logic. This
network is designed such that when it is connected to an amplifier with 10,000 ohms feedback resistance, the output of the amplifier will
be e

+ Xe'
+X

1

where e is the signal from the proc-

ess averager, e' is the signal from the DAC
No.1 amplifier, and X has integer values from
o to 15 depending on the binary number in the
weighting register.

AVERAGE

Figure 4. Detailed System Block Diagram.

input reference voltage to the input of an operational amplifier through a variety of resistances.
These networks are arranged such that when
they are connected to the input of an operational amplifier with a 10,000 ohm feedback
resistor, the amplifier output will vary from 0 to
10 volts in 64 steps corresponding to the 64
possible binary numbers in the digital-to-analog
converter register. Note that a 5 volt bias signal is added to each DAC amplifier input to
change the 0 to 10 volt output to a ± 5 volt
output. This will cause the binary number 32
in the DAC register to be equivalent to an
analog output of zero volts.
The two digital-to-analog converters have opposite polarities. The DAC No. 2 unit which
produces the model output is connected for a
positive or "correct-polarity" output. The DAC
No.1 unit produces an "inverted-polarity" output. Since the process output has also been
inverted (by the process averager), these two
signals are weighted and added directly. The
sample-and-hold amplifier will invert the
weighted sum, causing a "correct-polarity" signal to enter the analog-to-digital converter.

The amplifier which is used to perform the
weighted addition also performs a sample-andhold function. The 0.1 microfarad feedback
capacitor will cause the circuit to remain at a
given voltage when the "hold" relay is opened.
This is necessary in order to present a constant
voltage to the analog-to-digital converter circuit during conversion. Note that a 5 volt bias
is added to the input of this amplifier to convert the ±5 volt inputs to the 0 to 10 volt output which is presented to the analog-to-digital
converter. The analog-to-digital converter uses
the 0 to 10 volt analog input to produce a 6 bit
binary output. Again it should be noted that
because of the bias employed, the binary output
number 32 actually represents a zero volt signal.
The memory element of this computer is a
modified IBM 650 magnetic drum memory. The
modification has been such that instead of the
one head per track formerly used, there are
42 tracks available with three heads per track.
The three heads on the modified tracks are used
for read, bias, and write.
The method of recording used is non-returnto-zero. The bias head continually records a
"zero" on a given track, and the write head
then records a "one" over the "zero" if it is on,
or allows the zero to remain if it is off. The
read head detects changes between the "one"
and "zero" states as positive and negative
pulses, which are used to set a flip-flop to either
the "one" or "zero" state, corresponding to the
information recorded on the drum. The memory is of the circulating type in that the information must be read and rewritten each time
the drum makes one revolution.
Only 22 of the tracks on the drum are used
in the machine (the drum originally contained
over 200 tracks; the modification reduced this

A HYBRID COMPUTER FOR ADAPTIVE NONLINEAR PROCESS IDENTIFICATION

533

number to around 140, with 42 of these being
accessible from three different heads). Twentyone of the 42 three-head tracks are used for
information storage, and a timing track is used
to generate clock pulses at a 125 Kilocycle rate
(this pulse rate is divided in the timing logic,
so the machine clock frequency is 62.5 Kilocycles) .

the weighting (bits 17 through 20) are available.

It takes approximately 3.85 milliseconds for

In order to check the capabilities of the model,
several test systems were programmed on a
PACE TR-I0 analog computer. The systems
used are shown in Figure 8. The input to all
systems was a pseudo-random binary function
(limits were set on the rate of input switching).

The front panel of the completed machine is
shown in Figure 5. Side views of the machine
(just prior to completion) are shown in Figures
6 and 7.
TESTS AND RESULTS

information to pass from a position under the
write head to a position under the read head.
Both the clock frequency and the time necessary
for the drum to complete one cycle (from write
head to read head) depend on the drive motor
speed (nominally 12,500 rpm) and will vary
somewhat, but one cycle will always contain
240 clock pulses-one clock pulse for each storage location.

A four channel Sanborn recorder was used
to observe the input, the systems, and the
model. All binary inputs were between the
levels of -+ 10 and -10 volts throughout the
test. Attenuators were used to reduce the system outputs to --+-5 volts.

Each word in the memory is stored in three
parts, which are available at consecutive machine clock times. First there is a check bit
(bit 21) which indicates the presence of a word
on the drum as opposed to an unused memory
position. Following the check bit by one bittime is the address (bits 1 through 10) which
represents a particular shift register pattern
(as observed via the patch board). One bit~time
later the information (bits 11 through 16) and

•

•

•

,

." ,

~

simple ~ system (system No.1). An input
s +1
clock rate of 2.5 pulses per second was used,
with a minimum of ·2r input clock pulses per
bi:r:-ary input change. The weighting limit was
set to 15. It can be seen that smoothing the

>l

iI,

..

~

Figure 9 shows the results of modeling a

...

- ~

0'

~

,

..

•
~

•

..

j

""

...-

~.

•

~......

,

-..

~

~

§

,

~...

..

.

~

Figure 5. Front Panel of Computer.

534

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

minimum of 8 clock pulses per binary input
change. A weighting limit of 15 was employed.
In Figure 11 the model is identifying the system quite well, but a rather large error is present due to the delay in the model smoothing
circuits. In Figure 12 a 0.8 second prediction
is used to compensate for this delay, and the
error in this case is much smaller than before,
being caused primarily by fast variations in
the system which are represented by an average value at the model output.
Figure 13 illustrates the action of the model
in identifying the ~ transfer function (sys.
s+1
tern No.1) when the input binary function is
allowed to change every 2 input clock pulses.
An untapered delay line, weighting limit of 15,
and 2.5 pulse per second input clock were used
in this test. A 0.4 second prediction is used to

Figure 6. Right Side View of Computer.

model output (through a

10

transfer funcs + 10
tion) helps create a better looking output, but
induces a slight delay in the model output.
Figure 10 shows the result of modeling the
more complex system formed by following the

~ function with a nonlinear element (syss+1
tern No.2, Figure 8). The same input conditions
and machine limits as above were used.
Figure 11 and Figure 12 show the use of
prediction to compensate for the delay caused
in the model output smoothing circuit. The
-1

system observed is composed of a - - funcs +1
tion and a nonlinear element followed by a
-1
second - - function (system No.3). A 2.5
s +1
pulse per second input clock was used with a

Figure 7. Left Side View of Computer.

A HYBRID COMPUTER FOR ADAPTIVE NONLINEAR PROCESS IDENTIFICATION

~

-10

6

535

SYSTEM

+10

No.2

-6

SYSTEM

No.3
......- - - - - - - - SYSTEM

No.1

~
6

-10

Figure 9. Identification-System No.1
Figure 10. Identification-System No.2.
SYSTEM

+10

No.4

-6

SYSTEM OUTPUT------l

MODEL
OUTPUT

ERROR

1-----+---'---- SMOOTHED MODEL OUTPUT

Figure 8. Test Systems.

offset the delay caused by model output
smoothing.
Figure 14 gives the results of modeling a
system with a large amount of hysteresis (systern No.4, Figure 8).
input clock is used with a minimum of 4 bits
per binary input change. A prediction of 0.4
second is used to compensate for smoothing
delay. The weighting limit was set to 15. All
of the waveforms shown in Figures 9 through
14 were taken after a 60 to 120 second learning
period.
Figure 15 illustrates the use of the machine
as an adaptive model. The system observed in
this case was abruptly changed from system
No.1 to system No.3. These systems differ
not only in general output waveforms. but are

Figure 11. No Prediction-System No.3.

also of opposite polarity for a given binary
input. An input clock frequency of 2.5 pulses
per second was used, with a minimum of 8
bits per binary input change. A 0.4 second
prediction was used to compensate for smooth~
ing delay. A weighting limit of 2 was used so
that the model could adapt quickly to the
changing system. Although the error does not
reach a minimum in the short record shown,
it is obvious that the model is adapting very
quickly indeed to the abruptly changing system.
SUMMARY AND CONCLUSIONS

The concept of using a synchronous sequen~
tial machine to model a continuous nonlinear
l'H"At>OC!C!
<:lnnO<:ll"C! tA ho rillito llC!ofnl
1-'..J...v"",,,,,,,),,,),,,:;,
""'P..t-''-'CAlJ..U
"-'S.J>...1'-'..L. ..........
V'\J

,...., .......

'1.'-"L..LV'-'

rrho lYI()nol
..&...L.L""

....... .L'-'''-'S. .........

which was constructed for processes which
have a switched two-level input performed
quite well both in the identify and the predict
mode, This model is presently being used in
the study of adaptive predictive nonlinear control systems,
Clearly, the model which is used for proc~
esses with two-level switched inputs cannot be
used for processes with more than a two-level
input. This is due to the large number of coefficients which must be stored. However, the
basic philosophy of matching an input pattern

Figure 12. 2 Bit Prediction-System No.3.

536

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Figure 13. Modeling-System No. 1.

with a particular output is still valid. This
philosophy has been successfully employed in
a study of nonlinear process identification using
feature detection of the input pattern. 13
ACKNOWLEDGMENTS
The theory of this model was developed under grant NSG 244-62 from the National Aeronautics and Space Administration. Funds for
the construction of the model were provided
by the National Science Foundation under
Rensselaer Polytechnic Institute Research
Grant 635.04. The magnetic drum was donated
by the International Business Machines Corporation. A' complete description of the model,
including circuit schematics, construction details, maintenance procedure, and timing diagrams, is presented in Reference 14.
REFERENCES
1. CHESTNUT, H., and WETMORE, G., "Predictive Control Applied to a Simple Position
Control," General Electric Engineering
Laboratory, Report No. 59 GL104 (1959).

2. CHESTNUT, H., DERusso, P., and TROUTMAN, P., "An Analog Simulation of a Predictive Control System," General Electric

Figure 14. Modeling-System No.4.

Engineering Laboratory, Report No. 59
GL219 (1959).
3. CHESTNUT, H., SOLLECITO, W., TROUTMAN,
P., and GACEK, A., "Automatic Landing of
Aircraft Using Predictive Control," General Electric Engineering Laboratory, Report No. 60 GL12 (1960).
4. CHESTNUT, H., SOLLECITO, W., and TROUTMAN, P., "Predictive Control System Applications," General Electric Engineering
Laboratory, Report No. 60 GLl19 (1960).
5. ZIEBOLZ, H., and PAYNTER, H., "Possibilities of a Two-Time Scale Computing System for Control and Simulation of Dynamic Systems," Proc. Nat. Electronics
Conf., Vol. 9, pp. 215-223 (1953).
6. COALES, J., and NOTON, A., "An On-Off
Servomechanism with Predicted ChangeOver," Proc. lEE, Vol. 103, pt. 10, pp.
449-462 (1955).
7. BAUER, R. F., "A Predictive and Adaptive
Control System," Master's thesis, Rensselaer Polytechnic Institute, Department
of Electrical Engineering (1962).
8. DROSDECK, J. S., "Variable Interval Repetitive Prediction of Stochastic Signals,"

Figure 15. Adaptive Model.

A HYBRID COMPUTER FOR ADAPTIVE NONLINEAR PROCESS IDENTIFICATION
Master's thesis, Rensselaer Polytechnic Institute, Department of Electrical Engineering (1962).
9. KAUFMAN, H., "An Adaptive Predictive
Control System for Random Signals,"
Master's thesis, Rensselaer Polytechnic
Institute, Department of Electrical Engineering (1963).
10. BOSE, A. G., "A Theory of Nonlinear Systems," Research Laboratory of Electronics,
Mass. Inst. of Tech., Cambridge, Technical
Report 309 (1956). (Wiener's original
work remains in unpublished form.)
11. Roy, R., MILLER, R. W., and DERusso,
P. M., "An Adaptive Predictive Model for
Nonlinear Processes with Two-Level Inputs," Fourth J oint Automatic Control
Conference, University of Minnesota,
Paper VIII-3, pp. 204-210 (1963). IEEE

537

Transactions on Applications and Industry,
Vol. 83, No. 72, pp. 173-178 (1964).
12. Roy, R., and DERus so, P. M., "A Digital
Orthogonal Model for Nonlinear Processes," IRE Transactions on Automatic
Control, Vol. AC-7, No.5, pp. 93-101
(1962).
13. Roy, R., and MILLER, R. W., "Nonlinear
Process Identification Using Statistical
Pattern Matrices," Proceedings of the
Fifth Joint Automatic Control Conference,
Stanford University, California, pp. 349354 (1964).
14. DERusso, P. M., Roy, R., MILLER, R. W.,
and NUTTING, B. W., "Adaptive-Predictive
Modeling of Nonlinear Processes," Final
Report-N ational Aeronautics and Space
Administration
Grant
NSG
244-62
(1963) . (To be published as a NASA
Report.)

THE NEGATIVE GRADIENT METHOD EXTENDED TO THE
COM,PUTER PROGRAMMING OF SIMULTANEOUS
SYSTEMS OF DIFFERENTIAL AND FINITE EQUATIONS
Albert I. Talkin
Harry Diamond Laboratories
Washington, D. C.
equation of· the first approximation to the
perturbed motion is used to examine the convergence of the computer program to the solution of the given mathematical system.

1. INTRODUCTION

. In programming a system of simultaneous
nonlinear equations on an analog computer it is
most convenient to use the equations in their
implicit form. In addition since the equations
are nonlinear certain partial derivatives may
change sign resulting in computer instability
unless the equations are programmed by the
negative gradient method.1 ,2 This paper considers programming nonlinear, explicitly time
varying trajectory problems by coupling
togeth~:r a set of nonlinear positional equations
and a set of nonlinear first order differential
equations, each set being separately progra~­
med by the negative gradient method. 3 The

1.1 Definition of the Problem

The problem will be defined in n-dimensional
space. Vector/matrix notation will be employed
to reduce the labor of writing equations. The
following definitions will be used:
(1) position vector x

==

[Xl' x 2 ,

•••,

(2) i-th position function CPi
i = 1, ... , m, m < n

==

(3) position function vector

cP

xJ

CPi (x, t) ;

==

[cp1' CP2'

••• , cpm]

(4) velocity vector u == [u l ,

1 This paper draws no distinction between the terms
"gradient method," "least squares," "steepest descent"
or "transpose matrix method."
2 For an interesting alternative see M. G. Bykhovski
"Ultrastability in Electronic Computers when Realizing
Nonlinear Equations in Implicit Form" IFAC Proceedings. Moscow 1960, Vol. 2, Butterworths 1961, pp.
1032-1038.
3 The method described herein may be compared to
that of Turner who considers both finite equations and
differential equations in implicit form as "constraint"
equations. His computer programming is done in a
somewhat intuitive manner which does not necessarily
guarantee stable programming. See R. M. Turner "On
the Reduction of Error in Certain Analog Computer
Calculations by the Use of Contraint Equations" Proceedings of the Western JCC, San Francisco, May 1960.

U2, ••• , Up.]

(5) j-th velocity function f j
j = m + 1, m + 2, ... , n

== fj

(6) velocity function vector f
fm

+

2, • • • ,

(u, x, t) ;

==

[fm + 1,

fn]

(7) position error vector v

==

[V1, v2,

•••,

==

[ax, a 2,

• • •,

vn ]

(8) velocity error vector a
an]

(9) gradient vector V x ==

[a~: a~;···' a~J

539

540

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

( 10) gradient vector

v ==
u

[

a

0

a]

au au z ' ••• , oU
l

'

n

(11) general matrix notation: A == (aij) and
I == unity matrix
(12) scalar or inner product of two n-dimensional vectors (p, q) :
(p, q) == Plql + Pzqz + ... Pnqn.
(13) k,g, are arbitrary scalar quantities representing integrator gains
(14), t is a parameter appearing in the
mathematical problem statement i.e.
"mathematical time"
(15) T is computer time
(16) a is an arbitrary time scale factor
O2
dcpm
]
tf!== [ dt' dt'··· dt ' fm + 1, fm + 2, ... , fn
(8)
If in the first m coordinates of tf! the substitution of u for x is made, then
if;

=0

(Q\
\V~

represents a system of n equations in n unknowns Uh u 2, ..., Un. The system (9) can be
programmed by the gradient method, and requires that x developed from (6) be inserted as

541

a parameter. The conditions obtained in "reset"
are
cp(x,t~) = 0, tf!(u,x,to)
0
(10)
Equations (10) represent the partitioned system. Note that in "reset" (n-m) of the x integrators have initial conditions imposed and
the remaining m coordinates are determined
uniquely. In "hold" the x coordinates are no
longer determined uniquely and there will be
some tendency for the stationary values to be
sensitive to perturbations of the position vector.

=

2.2 Closing the Switches-(The "compute"
mode)
Fig. 1 is a simplified schematic illustrating
the connections for the i-th component of x and
u. In "reset" or "hold" the switches S1 and S2
are open and the negative gradient programming guarantees that x and u will assume stationary values as quickly as possible. It is
reasonable to suppose that if the switches were
closed the resulting system would produce a
very close approximation to the desired trajectory provided that the ensuing continuous
iteration converges.
2.3 Perturbation Analysis
The following two assumptions are made:
(1) The conditions cp = 0 and if! = 0 are
approximately satisfied.
(2) Arbitrary small instantaneous perturbations 8x and 8u are imposed on the
system.
r.f

.~

Figure 1. Simplified Computer Diagram Showing Connections for

XI, UI.

542

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

In accordance with the gradient method, let
v = - V x(cp,~)

(11)

a = - Vu(1/I,1/I)

(12)

aU

(13)

+kv

1/1 ~

Sa = - B8u - H 8x

B ,(b ij )

Operating on equations (13) and (15) with the
variational operator 8:
d (8x)
= a(8u) + k(8v)
dT

(16)

d 2 (8x)
(
= ag 8a)
dT2

(17)

+

k d (8v)
dT

It is now necessary to express 8v and 8a in
terms of 8x. Taking variations of both sides
of (11):

+

±(-2 t

j~1

1

( -2

k

=

ak

(21)

where

(15)

=

(20)

o.

(14)

Differentiating (13) and substituting (14) :

j

8xj

k = 1 OUi OXj

Rewri ting (20)

du
-=ga
dT

8v, =

i; (-2 ± aofk a",,)

j = 1

In (20) terms involving second partial derivatives are absent because of the assumption that

From fig. 1
dx
- =
dT

+

H == (h ij )

== (
== (

k

±.

2
1

=

i;

2

k = 1

k
01/lk 01/l )
OUi OUj

aofk a",,)
OUi OXj

The matrix B is positive definite, but the matrix
H is not so restricted. Substituting from (19)
and (21) in (17) gives:
d 2 (8x)
+ agB8u + agH8x +
d,.2
k~ (A8x) = 0
dT
d2 (8x)
+ agB8u + agH8x +
dT2
aA
d (8x)
k - 8x + kA= 0
OT
dT

(22)

(23)

From (16) and (19),

As variations are taken starting from an assumed equilibrium state cp ~ 0, the second term
on the right in (18) vanishes. The matrix

d (8x)
a8u = kA8x + dT

(24)

Substituting (24) in (23) gives:

1~(8X) + (kA + gB) ~(8x) +
dT2
is positive definite for it can be factored into
the product of a matrix by its transpose. Equation (18) then becomes
(19)

8v = -A 8x

As cp is not a function of u, only the variation with respect to x need be considered in
(18) . To find 8a, variations of both sides of
(12) are taken, noting now that 8u and 8x contribute to 8a: thus,
8a, =

i; (-2 i;

j = 1

k = 1

a"'k aofk)
OUi OUj

8u·
J

dT

oA

(gkBA + agH + k - ) 8x = 0
OT

(25)

Equation (25) is the equation of the first approximation of the perturbed motion. Note that
(I), the unity matrix, is positive definite and
(kA + gB) is positive definite, as it is the sum
of two positive definite matrices kA and gB.

N ow the third term on the left in (25) can
be written as the matrix sum
5 Bellman,
R. "Introduction to Matrix Analysis,"
McGraw-Hill Book Company, Inc., New York, N.Y.,
1960, p. 246.

THE NEGATIVE GRADIENT METHOD

gkBA
.
aA
noting that =

aT

+ a(gH + k

aA )

aT

(26)

aA
at

a-

The matrix product gkBA is positive definite,
arid the terma(gH + k ,aA ) may be considered
at
a perturbation term which can be made small
by reducinga. Hence eq. (25) represents a
stable system, all coefficient matrices being
essentially positive definite. Bellman4 indicates that this result also holds when the
coefficient matrices are time varying as in
this case.

CONCLUSION
It is now evident that the time scale factor
a can be reduced whenever the perturbation
term grows too large. This may be done

543

selectively so that the harder to stabilize
segments of the trajectory are traced at a
slower rate. It may sometimes occur that the
required
is prohibitively small, i.e., the
solution time is exhorbitant, or perhaps
it is required not to alter during a trajectory. In this case a trade off between the
scalar gains g and k must be made, i.e., some
gain modulation scheme may be used to minimize the sum
gH + k

aa~

while holding the product gk

~ M.

ACKNOWLEDGMENT
The problem generalization and analysis in
this report was inspired by the work of Arthur
Hausner of these laboratories, who intuitively
used this method to program a special problem
proposed by the author.

QUANTIZING AND S.AMPLING ERRORS ..
IN
HYBRID COMPUTATIO'N
c. R. Walli
Space and Information Systems Division
North American A viation, Inc.
Downey, California
INTRODUCTION

companding (compressing) the signal amplitude prior to quantizing and expanding it upon
conversion. The most frequently used techniques are sinusoidal frequency response and
stochastic variable frequency response.

Quantizing and sampling errors have been
examined by a number of authors. For example, the errors have been extensively studied
in the communication2 , 6, 7 and servomechanisms4, 5,11 fields of electrical engineering. Studies of these errors have also been made by
numerical analysts,l, 3 primarily from the
standpoint of round-off error and error propagation. None of these efforts, however, has
been specifically directed to the analysis of the
total errors generated in a hybrid computation
loop. In each field, different methods have been
used and different portions of the problem
studied;

In the servo field, attention has been concen=
trated on the low-bit quantizing problem (normally one to two bits) in applications which do
not use a digital computer for control.l1 Sampling is not usually used in the case of servos
with only a few bits, and, when a digital computer is used for control, slight emphasis has
been placed upon the quantization errors. The
techniques used in these studies have been
those of the phase plane, state variables, sampled data system theory, etc.

In the communications field, sampling and
quantizing have been studied in connection
with PCM signals. The major effort has been
associated with the transmission of intelligible
audio and visual data. Three to seven (binary)
bits have been used for the most part, because
this range is adequate for communications
work. For example, when four bits (16 levels)
are used to code the intensity of a transmitted
television picture, good picture quality is obtained, and even a fair picture is achieved with
three-bit (8-level) transmission.

In the case of numerical analysis, the statistical approach has been used in conjunction
with the Taylor series for the estimate of the
round-off errors at each step. Primary consideration has been given to open-loop multiplication and addition errors. However, the presence of predictor-corrector-modifier formulae
testifies to the existence of closed-loop error
analyses. Frequency response techniques have
not been used.
A statistical approach4,5 has been used to describe the quantization errors by means of the
errors in probability distributions resulting

In these applications, the percentage error as
a function of signal amplitude is improved by
545

546

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

from quantization. This approach is more related to the numerical analysis approach than
to the others, since the harmonic content of the
signal is not treated.
The sampling and execution time errors in
a hybrid loop have been studied and simulated
on analog computers, but quantization has been
neglected.1.3,14
A typical hybrid computation loop consists
of an analog computer, a digital computer, and
conversion equipment. When this loop is viewed
from the analog computer, the portion of the
loop outside the analog computer can be considered to be a black box that operates on the
signals sent to it, adds errors, and then sends
the signals back to it, as indicated in Figure 1.
The system state vectors, X, Y, Z, and E, are
described by
Z(t) = Y(t) + E(t)
Y(t) = Y(X(t), t)
The vector function Y (X (t), t) specifies the
operations of the processor, and the error vector E (t) is a function of numerical computational errors and of the conversion errors. The
errors of major interest to this paper are those
generated by the combined conversion processes. The other errors will not be discussed
because their consideration can easily be added.
For example, round-off errors should be negligible if computer word lengths are 20 to 24

r---------,
I

I

I

I
I

BLACK BOX

1 (bl MODEL

Figure 1. Hybrid Computation Loop.

bits, and a finite digital computer processing
time, T, represents only a pure time delay of
T seconds.
What kind of signals in the hybrid loop will
most likely be affected by the quantization and
sampling errors? Certainly sinusoidal signals
should have the highest probability in this regard, since physical plants either have inherent
natural frequencies, or gain them when a control loop is added. Even for nonlinear processes, the system variables can usually be decomposed into a Fourier series. Thus, the
choice of characterizing the "Block Box" errors
in terms of the errors generated in response
to a sine wave is a logical one.
The required precision can be easily estimated. Individual analog components have errors on the order of 0.01 percent, and the maximum voltage is 100 volts. The maximum precision expected of the converters, therefore,
would be 13 bits plus sign, since the error
maximum is one-half the step size. If the maximum represents 128 volts, a 100-volt signal
would use 12.6 bits and a I-volt signal 6 bits
(plus sign, in both cases). In practice, the signals of concern are those whose amplitude may
be 1 bit-or 13 bits. Thus, the full range must
be considered.
In what way can past research, carried on
in the areas previously mentioned, be applied
to the hybrid computation problem? In particular, for any specified error bound, how
finely should the signal be quantized, how rapidly should it be sampled, and what trade-offs
exist between sampling rate and the number
of quantization levels? How does the presence
of noise on the input signal affect the errors?
In short, is there an optimum combination that
can be used, or must the maximum possible
number of levels be used with the maximum
possible sampling rate?
Results from each of the previously mentioned areas should of course be utilized. The
work accomplished in the communications field
appears to be most applicable because of the
major use of harmonic analysis. Some differences should be expected, however, since the
signal band is less important than the phaseshift errors to the present problem.

QUANTIZING AND SAMPLING ERRORS IN HYBRID COMPUTATION

QUANTIZING
It is readily apparent from Figure 2 that
either the sampling or the quantization can be
thought of as occurring first. Because interest
here is in a number output from the converter,
the number will be the same in either case, and
this will be true for non-uniform quantizing
and non-uniform sampling. The digital-analog
conversion process can be represented simply
by some holding circuit.
The quantizer characteristic of Figure 3 can
readily be decomposed into the two functions
shown in Figure 4. From Figure 4, the following equations can be written
Q (x) = x
e ()
x =

~

+ e (x)
.

2~n

(2)

q

=1

f ..
q/2

- 2
en - q

(3)

therefore
q

00

= x + -;- ~

(-l)n
n

. 2~n
Sln--x

(4)

q

n=l

Thus, an infinite range of "amplitude frequencies" exists. The response to any specific
input can be obtained by direct substitution into
Equation 4. The harmonics at

2~n provide an
q

insight into the reason for the repeated spectra
at intervals of

2~
q

in the

a

r---r-~---'-+~---+--~--~--4-_x

Figure 3. Quantizer.

THE STATISTICAL APPROACH TO
QUANTIZATION ERRORS

2~n
q (-l)n
(-x)sln--x=---q
~
n

~~

Q (x)

Q 00

(1)

~ensln--x
n

547

The statistical approach to quantization
errors is well described in the literature. 4 , 5
Therefore, only a few of the concepts involved
in this method will be given here.
The quantizer operates on the signal amplitude of its input rather than on the signal
frequency. I t is logical to characterize the·
quantizer performance in terms of the input
amplitude. In order to provide a general characterization similar to the standard frequency
domain characterization of time signals, the

domain, which is

given by the statistical approach.
AMPLITUDE
QUANTl.M lEVELS

~~~~I~I--~~----~---SAMprrR

Figure 2. Sampling and Quantizing.

Figure 4. Decomposed Characteristics.

548

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
AMPLITUDE

probability density distribution of the signal
amplitude must be considered. The Fourier
transform (characteristic function) of the
probability density can then be defined in terms
of a frequency-like variable, usually denoted
bya.

PROBABILITY

"

TIME

a

Figure 5. Quantized Signal Characteristics.

Using these concepts, the following results
are obtained, where q is the quantization level.

pled" by the quantizer, which is equivalent to
a square pulse. The Fourier transform of this

Let p (f(t» denote the probability density of
the. input signal f (t) and P (a) denote the
Fourier transform of p (f):

is a sin x term which, when multiplied by P(a),

1. If P (a)

=0

for

lal > .::!.-.,
q

then p(f)

can be completely recovered from the
quantized signal.
2. If P (a) =1= 0 for

lal > .::!.-.,
q

then p (f)

cannot be recovered, since erroneous signals will be introduced into the data.
3. The quantized signal in the a domain has
the basic Fourier transform P (a) repeated at intervals of

27T in similar
q

fashion to the frequency spectrum of a
time-sampled signal.
4. The quantizing error may be assumed to
be uniformly distributed between + 1/2 q
and -1/2 q. In this case, the mean square
quantizing error is given by 1/12 q2.
The expression for the quantizing error may
readily be derived from a simple viewpoint. If
the quantizing error (Figure 4) is considered,
it is seen to be linear between - q/2 to +q/2
and to be repeated along the x axis. Letting
< > denote the expected value and assuming
that the input amplitude probability distribution function is linear, then

21

< e2 > = _

q

q/2

(-x) 2 dx

-q/2

2 I=_
+q/:.!

= __
1
q 3

(x 3 )

1 q2
12

-q/2

It should be noted that the results of this sta-

tistical approach to quantizing do not indicate
relationships in terms of the input signal. Reference is made only to probability distribution.
Typical signal characteristics in the time,
probability, and a domains are given in Figure
5. The probability distribution is "area sam-

x

gives P(a).
SINGLE SINE-WAVE INPUT
There are two simple reasons for concentrating attention upon a single sine-wave input to
the quantizer: (1) the response and implications of the spectral distortion resulting from
the quantizing action can readily be visualized,
and (2) in many of the applications for hybrid
computers there will exist simple natural frequencies in the hybrid loop imposed by the
problem under consideration, e.g., the short
period response of an aircraft or missile, or its
equivalent in a space vehicle. Many of the physical systems which warrant studying on a
hybrid computer are of the type which have a
small number of natural frequencies. Thus, the
system energy will be concentrated there, rather
than throughout a broad band· of frequencies,
as would be the case if stochastic variables
alone were present. An additional reason for
concentrating attention upon single sine-wave
input is that testing and analysis of test data
are simplified for simple sine waves.
The input to the quantizer that will be used is
x (t) = A sin UI t
SINE WAVE PROBABILITY DENSITY
The definition of the probability distribution
function is
P (X)

=

probability that x

~

X

Figure 6 shows the sine wave and the level X.
AMPLITUDE

,QUANTIZING AND SAMPLING ERRORS IN HYBRID COMPUTATION

549

From Figure 6, the following can be written
1

1.

P(X) =-+-SIn
2
7r

-1 X

A

-A:::;X:::;A
X:::; -A

=0

A:::; X

=1

(5)

The probability density is the derivative of
Equation 5
1
p(X)

=

,,~

J(

1-

!)'

IXIA

These are plotted in Figure 7.
It is evident that the Fourier transform of

p (x) will not be band limited in the
y (t)

==

a

domain.

Figure 7.

Sine Wave Probability Distribution and
Probability Density.

Thus, the quantization theorem reveals that this
probability density cannot be recovered after
quantization, but does not disclose what will
be recovered.
THE TIME DOMAIN
Substituting into Equation 4, we have

· root ,+ -:;
q ~
~ (-1)
•
[27rnA.
A SIn
n n SIn
- q - SIn roo tJ

(7)

n =1

but
00

sin (z sin rot) = 2 ~ J 2r + 1 (z) sin (2r + 1) (l)t
r = 0

00

y (t)

=

· root + -2q ~
~
A SIn
7r n = 1

~ (-l)n
I 27rnA \
n J 2r + 1 ( - - ) sin (2r + 1) root

~
r=O

or rewriting slightly and interchanging summations
y(t) = A sin ""t

(8)

'

+ ~q ~

\

q

sin (a sin rot) cos (b cos rot) +
cos (a sin rot) sin (b cos rot)
and, for example
cos (a sin wt)

= 2 ~'J2r

(a) sin 2'hut

1'=0

{~

~1

(-1)n

n

J2.r + 1

(27rnA)}
- q - , sin (2r + 1) root(9)

It can be seen, therefore, that the quantizer
has generated all of the odd harmonics for the
input sine wave. If the input signal did not
have zero phase, then all the even harmoriics
would also be genera ted since in this case there
are terms of the form
sin (z sin (rot + (1» =
sin (z cos () sin rot + z sin () cos rot)
which is equal to

Because of the product terms, sums and differences of all frequencies are generated. Since
there are only harmonics in this signal, however, the sums and differences are again harmonics. If two sine waves with different frequencies constitute the input signal, the above
relationships will generate all sum and difference harmonics.
The amplitude of the harmonic terms can be
found by expanding Equation 8 into the
following
00

y(t) = ~ B21' + 1 sin (2r
r=O

+ 1) root

550

Bl

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

=

A [1

+ ~ ~ (-1) n
7TA

n

n = 1

J 1 (27TnA)]
q

(10)
B3

=

A

[~
~ (-l)n
J 3 (27TnA)], etc.
7TA =
n
q
n

Let us assume that the argument of the Bessel
function, 27TnAjq, is assumed to be large enough
to permit the asymptotic expansion to be used.
For large x

J"., (x)

J

~ ,,~Sin( x -

+ 1)

(2r

; -

~)
(11)

1

Consider the error term in the fundamental

In the asymptotic expansion, each successive harmonic adds - 7T to the angle. This merely
multiplies the term by -1. The following approximation can then be used:
00

y(t) :::::: A (1

+ e1 ) sin wot + Ae1 ~ (-1)2r + 1 sin (2r + 1) wot

(13)

r=l

This, however, does not apply to all harmonics,
because infinite power would be required. Now,
the recursion formula gives

= -r J r

J r + 1 (x)

x

(x) - J r -

1

(x)

(14)

But y (t) can be expanded directly in a Fourier
series. In Figure 8, horizontal slices are used
to characterize the quantized sine wave. The
Fourier series can then be written directly as

=

Thus, the relationship found above
J r + 1 (x) ,...., - J r - 1 (x) (odd values) (15)

B"

applies only for

B"., =

x> >r

(16)

In a conventional hybrid computer, the number
of levels available will be on the order of 1,000
to 10,000. Thus, the previous approximations
should be valid for at least the first ten harmonics for large input signals. For small input
signals (which can still occur), the approximation cannot be used.
It can be concluded that a very large number
of harmonics have amplitudes of the same order
of magnitude. Thus, a large number of terms
in the summation are required to find the harmonic amplitude-even for the fundamental
component of the error. Clearly, some other
method to find the error would be desirable.
FOURIER SERIES EXPANSION
An explicit approach can be used to find the
total harmonic amplitude. The output of the
quantizer has a Fourier series which is given by

!f

1r/2

+ 1

!{

q {d8+

. (2

SIn

y(t)

Y (0) sin (2r

r

OdO

qT ql
d8+

d8+ .. }

+ 1 ) = -4q ~ cos (2r + 1)
7T
2r + 1

~ {4q
~ cos
=~
-7T ~
=
=
r

+ 1)

0

i

1

sin (2r

0i

1) Oi}

(2r +
2r + 1

+ 1) wot

4q

2q

00

y(t)

=~
r=O

B2r + 1 sin (2r + 1) wot
Figure 8. Quantized Sine Wave-Horizontal.

(17)

QUANTIZING AND SAMPLING ERRORS IN HYBRID COMPUTATION

551

Therefore

Now
()i

= sin- (2i 1

1)

~
2A

B

(18)

2r + 1 -

N

= A rounded to nearest integer

=;

t. [~cos

(19)

and

q

y(t)

4q~
cos (2r + 1) Cin-' (2i - 1) :&-)
~
2r + 1

-:;;

+

[(2r

1~:i~-'1 (2i -1) ~JJ sin (2r + 1) root

Only N terms are required (N = A/q) for the
determination of the coefficients of the Fourier
series. For N not too large, this is a convenient
formula to use in practice. It would be difficult
to compute the total output power or harmonic
distortion. Returning to the original picture of

(20)

the process, we this time square the output
signal.
It is readily seen from Figure 9 that the
power for the output of the quantizer is given
by

(22)

 = q'

r ~±
N' -

L

(2i - 1) sin-' ( i -

..

i~-i

\

~)
I

1l

(23)

.J

Now, the input power is given by
(24)

Thus, the ratio of the output power to input power of the quantizer is

~.


. - -2 ~ (21 - 1) sln. 1 (.1
- ,- = 2 ( - q)2 [N,2

A
7r i = 1

_!)

q]
2A

The harmonic distortion is defined as
=

D. F.

!Sum of squares of harmonics 100%
Square of the fundamental X
0

\j

Now


= ! ~ B2
2~
r=O

2r+l

= ~ (squares of all components)
~

(25)

552

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Therefore
D. F.

=

~,

J

2 - B,'

(26)

where Bl is the amplitude of the fundamental

n

B,

= 4~.~ cos

(i -~) 1

sin-'

(27)

1=1

Numerical results obtained from the preceding
formulas are shown in Table I.
The last column in Table I represents the
estimated distortion factor. This was obtained
A=q

o

110%

-22%

from the estimated mean squared error,
1/12 q2, multiplied by 2 to give the sum of the
squares. It was also assumed that Bl = l.
Many of these results are given in Reference 7,
but the significance of the last column was unknown.
It can be noted that the amplitude of the
fundamental decreases faster than the distortion factor with an increase in the number of
levels, again indicating that more and more
relative energy appears at the higher frequencies. This effect can be examined in more
detail by considering one level:

o

-16%

The amplitudes do not decay rapidly, and
there is the tendency for alternating signs, described by Equation 13.

10%

o

9%

where the fact that J-m = (-1) m J m has been
used. The Fourier transform of y (t) will then
be given by

THE FREQUENCY DOMAIN
Equation 9 can be re-written using exponentials and Wo for the input frequency (replacing
sin 0 by

~
2J

(e j9

-

8

e- j9 ».

= Dirac delta function

where for example

(28)

The harmonics are shown in Figure 10.
TABLE I. QUANTIZATION HARMONICS
,-ID.F. =
(AJq)

1
(4112)+

5
(5112)-

10
20
50

B1 (%)

B3 (%)

110
96
100.97
97
100.34
100.12
100.03

0
-0.82

B5 (%)
-22

+

0.47

D.F. (%)
33

(lOO-q
)
y6A
40.8

7.55

8.16

3.8
2
0.81

4.09
2.04
0.816

558

QUANTIZING AND SAMPLING ERRORS IN HYBRID COMPUTATION

.I
~

0.6

q
0.4

CONTRIBUTIONS FRO'A +2",S

0.2

~~~-L~------------r

2",s

Figure 9. Quantized Sine Wave Power.

It has been observed, however, that approximately the same amplitude is obtained for the
first several harmonics. As frequency is increased, the exact behavior of the amplitudes
is not clear. Of course, they must decrease.
It should be noted here that in a practical
system the sharp edges shown by the error
characteristic are realistic. Since digital processes are being used, sharp levels and changes
are descriptive. Some uncertainty or jitter at
the quatum jump levels will merely contribute
additional (high-frequency) noise. It is also
evident that since a number system is involved,
pure delta function sampling may be assumed,
with no attenuation as would be the case with
finite width sampling.

Referring to Equation 28, it can be seen
that complete fold-overs will occur because the
sampling theorem is not obeyed. There are
harmonics at frequencies higher than the sampling frequency.
THE EFFECT OF SAMPLING ON THE
HARMONIC POWER
In Figure 11, the sampler spectrum is added
to the quantizer output spectrum. For simplicity, only the positive sampler frequencies are
shown, and the amplitudes are not to scale.
IFlj",1I

Figure 11. Spectrum of Quantized and Sampled
Sine Wave.

Because energy is contained in both ··side
bands, the reflections from - (r)s will also contribute. energy to the pass band. If only: the
contributions from -t-(r)s, -t-2(r)s are summed with
the original, the pass band 0

< (r)  = < En 2 > + < Eq2 > (31)
If either infinite sampling or a perfect filter
(over the range - 1/2 Ws < w < 1/2 ws) is used,
then
< Eq2 > = (1/12) q2
If En is restricted to frequencies less than 1/2
then

ws,

< E2 > = <

q=

(30)

Although Eq is causally related to E1H it is
reasonable to assume that they are statistically

2)

+

1 q
12
En 2

\112 \1< En 2 >

We then have

« En2 »

q

35mv

10mv

139mv

40mv

1/2

If filtering reduces the pass band to less than
1/2 ws , the quantizing can be even more coarse,
since 1/12 q2 is an upper bound. This assumes
that the input noise has been filtered to the
same pass band.
THE EFFECT OF THE D-A CONVERSION
For simplicity it is assumed here that a zeroorder hold is used to provide the digital to analog conversion. The treatment of higher order
holds is similar. The process can be viewed in
several different ways. In the frequency domain, the Fourier transform of the ZOH is
given by a

wo/

side

~ ~ .{ - ~) n sin [ 2~ n ( f (t) + En (t) )]

En > ( 1
2

If the total noise is allowed to increase by as
much as \12, then q can be as large as

-rr

with
E. =

independent. Reference 4 indicates that this is
a good assumption. What is the expected error?
< y2 > = < (f + En + Eq) 2 >
= < f2 > + < En 2 > + < Eq2 >

~

sin X expression, where X equals

Since this expression is not zero outof what is termed the pass band

WS'

( I w I < 4ws),

additional power will be con-

verted; i.e., additional to the figures that have
been used. As has been shown, however, an
infinite number of sidebands and reflected harmonics must be considered. In order to simplify the task, consideration will again be given

555

QUANTIZING AND SAMPLING ERRORS IN HYBRID COMPUTATION

to the specific example, a sine· wave quantized
to five levels, to which the sampling and the
zero-order hold are now added. Figure 13 compares the signals received from the black box,
with and without quantizing.

FIVE-LEVEL QUANTIZATION
t.J

S

t.J

0

NO QUANTIZING
0.8
0.6
ZOH

0.4

This definition in this application includes the
effect of the phase shift caused by the ZOH.
This large effect, which tends to obscure the
quantizing effect, can be examined by defining
the relative error by

..

0.2

z,.,o

L...oC~-----+--="-----~~t

---'-_.L....---'-_.L....--'-_I...--'--I...-......L.-SAMPlING

WITH QUANTIZING

=

output - input x delay of

18

ZERO ORDER HOlD

In keeping with our earlier use, error is defined as
error = output - input

e r = relative error

=

0.8

~

0.6

sec

0.4

The output signal, therefore, can be defined in
terms of the fundamental plus an error. Specifically, using the nomenclature of Figure 1,
we have
Z (t) = X ( t -

~) + e,

(t)

0.2

Figure 13. Combined Errors.

(32)

In this way, the process can be viewed as one
which amplifies and phase shifts the input signal and then adds noise.

where T is the sampling period which is large
enough to cover the conversion and computation time. Consider the single sine 'wave input.
We have
Z (t) = A sin W{) (t - T/2.) + er (t)

The error can be evaluated by examining
Figure 13 which indicates the output signal
from the zero-order hold with and without
quantizing. When the input signal is shifted
by 1/2 T seconds, symmetric errors are obtained whenever the sampling rate is an integral mUltiple of the signal frequency. Without quantization we have

Another useful concept is to include the amplitude error of the fundamental separately:
Z(t) = A (1 + E 1 ) sin w~(t - T/2) + er(t)
(33)


r

sin' Wo tdt

+

f

= 0
IW

31T

S

2:~), dt + - - - -

]

( sin ...t

- sin

(34)

1TIW s

In general

< er2 > =

2wo [f1T12WOsin2 Wo tdt
1l"

+ ~ "" [cos

o

W
. 2r1l"o
SIn

Ws

W{)

~

(2r

+ 1)

Ws

o]

+ -~sIn-21l" "" . 2 2r1l"
W

Ws

1l"Wo - cos (2r - 1) 1l"WO]

Ws

Ws

(35)

556

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

When the quantizing is added to the sample and hold, similar equations are obtained. The combined mean squared error is given by

< e2 > = ~o [j

7r/ooS
sin2 wotdt +

0

~

j ( 2 r + 1)

sin (2r - 1) ~

< nq < sin

(2r

+ 1) 2

If the estimate, Eq = q/y'12 = 5.77%A, is
used and if it is assumed that the errors are
statistically independent, the following error is
obtained:
=

< EH2 > + < Eq2 >

= 9.16%

This estimate is within 10 percent of the value
computed. It would then appear that the two
error sources can be viewed as being statistically independent. An error map for various

'/(>"/4

< e' > = ;: j

< e' > = ;:

The quantizing and the sampling and holding
operation on the sinusoid A sin wot can thus be
expressed as
B sin (wot

sin' 0 d 0

(37)

A

represents the number of samples per quarter
cycle
1 =-orA=
4wo
( 38)
A 4wo
Ws
(Us

If A is used and wot is replaced by 0, Equation
34 becomes

j'/(12

1'1'

+ 0) + E (t)

A more general expression may be derived for
the errors resulting from the zero-order hold.
1
The parameter, A, can be defined so that -

11>" _1 j7r>../4 (2r + 1)

sin' odO + ; 'I' _,A/4 (sin 0 - 1) 'do + 2/"

0

(36)

7r/oos

values of the quantizing level and the sampling
rate is given in Figure 14. It should be noted
that as the ratio of sampling rate to signal frequency is decreased, more noise power appears.

For the specific sine wave input quantized to
five levels at a sampling rate 18 times the sine
wave frequency, we find
E2 = 7.1 % A
ZOH only
E2 = 8.5 % A
ZOH + quantizing.

< E2 >

]
sin2 (wot - nq)

(2r - 1)

with

7r/oos

+ ;: [~A +

o

f.! "/

.~. (Sin2 r;A) ~A] + ;
r-1

' " _.)

(sin 0 - sin r;.\") , dO (39)

4

f/' -

'/(12-7rA/4

sin 0 d 0+

(~.
1'=1

(40)

7r>../4 (2r + 1)
j
7r>"/4 (2r -

(

. r7TA)'
- slnT
SIn 0 d 0

1)

N ow, one of the expressions resulting from
the integration and trigonometric identities is
zero:

When evaluated, Equation 40 reduces to

1/>" - 1

~ cosr7TA = 0
r

=1

This simply depends upon the fact that
cos (7T - 0) = - cos "

(41)
U sing the first term of the expansion gives
for small A (large enough number of levels/
quarter cycle)
2
7T 2
1 (7TA)2
< e2 > ~_
_ = _A
(43)
3!
4
96

QUANTIZING AND SAMPLING ERRORS IN HYBRID COMPUTATION
11------------------------------.

.........

...... 40
~"'...

"',

",

e"'33.~

0.
0.7

q 0.6

CODE

0.5

• CALCULATED VALUE
- - - EQUATION (45)

0.4
0.3

e=8.3

......,

e::::32'J.

'd.5

0.
0.1

"",,

\

'

\
\

.\

316

11 12

0

11).

Figure 14. The Combined Error.

Thus, we can write

 :::::: ~( \l27r A)2

(44)

2

12

4

2

\1 77" ) as a form factor, to express
and treat ( -4the combined error by

< e 2> = ~
r

(q2 +

12 \

(1.11

A)2)

(45)

I

The estimates of the combined error are thus
ellipses in the A, q plane, or circles in a q, 1.11 A
plane. These estimates are plotted in Figure 14,
together with calculated combined errors.
CONCLUSIONS
The results observed lead to the following
conciusions:
1. The quantizer adds noise power energy to
the system, and this energy is spread
through a wide range. At even low
quantization levels, it was observed that
the energy of perhaps the first 50 harmonics was appreciable. As the input
signal amplitude is increased, the energy
associated with the lower harmonics is
reduced, and this energy appears at the
higher and higher frequencies.
2. Utilizing sine wave input signals is an
effective way of obtaining error estimates
for hybrid computation. When four or
five bits are used in the quantization,

557

numerical results can be obtained fairly
readily.
3. Much of the dynamic RMS error is the
result of the linear phase lag resulting
from the data reconstruction. If this
phase-shift error is eliminated, the quantization and the sample-hold errors are
statistically independent. A sample and
hold error parameter, A, equivalent to the
quantizing step q, can then be defined so
that the combined error is an elliptical
function of q and A.
4. If the noise resulting from the quantizi~g
and data reconstruction is unacceptable,
several alternatives are available:
a. A band pass filter can be used to
eliminate some of the energy at higher
frequencies within the pass band.
b. The quantizing levels can be increased.
Because the RMS noise is directly proportional to the quantizing level, a
linear effect will be observed.
c. The sampling error parameter, A, can
be decreased by increasing the sampling rate. The error is directly
proportional to A (i.e., inversely proportional to sampling rate).
RECOIvIlVIENDATIONS

It is recommended that this line of approach
be used to develop general criteria for the
performance and specification of hybrid computation systems. In partiCUlar, this approach
should be used to develop error estimates for
first- and second-order hold systems. Test and
analysis using the sine waves are not only fairly
simple, but most important, are readily comprehensible to the using engineer.

REFERENCES
1. SHEPPARD, W. F., "On the Calculation of
the Most Probable Values of Frequency
Constants, for Data Arranged According
to Equidistant Divisions of a Scale," Proceedings of the London Mathematical
Society, Vol. 29 (1898), pp. 353--357.
2. BENNETT, W. R., "Spectra of Quantized
Signals," Bell System Technical Journal,
Vol. 27 (July, 1948), pp. 446-472.

558

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

3. INMAN, S., "The Probability of a Given
Error Being Exceeded in Approximate
Computations," Mathematical Gazette, Vol.
34 (May 1950), pp. 99-10l.
4. WIDROW, B., "A Study of Rough Amplitude
Quantization by Means of Nyquist Sampling Theory," IRE, PGCT, Vol. CT-3, No.
4 (Dec. 1956), pp. 266-276.
5. WIDROW, B., "Statistical Analysis of Amplitude-Quantized Sampled-Data Systems,"
ONRTechnical Report No. 2103-1 (May
10, 1960).
6. KATZENELSON, J., '·'On Errors Introduced
by Combined Sampling and Quantization,"
IRE, PGAC, Vol. AC-7 (April 1962), pp.
58-68.
7. CLAVIER, A. G., PANTER, P. F., and GRIEG,
D. D., "PCM Distortion Analysis," Electrical Engineering, Vol. 66 (Nov. 1947), pp.
1110-1122.
8. COURANT, R., and HILBERT, D., Methods of
Mathematical Physics, Vol. 1, Interscience
Pub. Inc., N.Y., English Ed. (1953).

9. DAVENPORT, W. B., and ROOT, W. L., An
Introduction to the Theory of Random
Signals and Noise (McGraw-Hill Book Co.,
Inc., N.Y., 1958).
10. Tou, J. T., Digital and Sampled-Data Control Systems (McGraw-Hill Book Co., Inc.,
N.Y., 1959).
11. Tou, J. T., Optimum Design of Digital Control Systems (Academic Press Inc., N.Y.,
1963) .
12. MONORE, A. J., Digital Processes for
Sampled Data Systems (John Wiley and
Sons, Inc., N.Y., 1962).
13. MIURA, T., and IWATA, J., "Effects of Digital Execution Time in a Hybrid Computer,"
AFIPS F JCC Proceedings, Vol. 24 (1963),
pp. 251-266.
i4. GELMAN, R., "Corrected Inputs-A Method
for Improving Hybrid Simulation," AFIPS
FJCC Proceedings, Vol. 24 (1963), pp.
267-276.

REAL TIME RECOGNITION OF
HAND-DRAWN CHARACTERS
Waren Teitelman *
Massachusetts Institute of Technology
Cambridge, Massachusetts
1.0 SUMMARY

The user can teach the program to recognize
his set of characters. The learning process for
the program involves modifying individual decision trees, changing the weights on each
tree, and where necessary, introducing new decision trees with their corresponding properties into the system. Because the program
was written as an input device to a larger manmachine system, the description of the implementation stresses the human engineering
features. A qualitative evaluation of the system as implemented is offered, together with
possibilities for e~panding and generalizing
the program.

This paper describes a system designed to
recognize handdrawn characters in real time.
The central feature of the system is its use of
the time sequence information of the input
character.
It. its abstract form, the system may be
viewed as a collection of discrimination nets,
or . filters. .t;ach net operates on the input
character, or rather on a sequence of property
vectors representing the encoding of the input
character in the time domain, and produces a
set of so-called candidate characters. The system then utilizes reliability estimates for the
individual nets to select the final output character.

2.0 INTRODUCTION
Research in pattern recognition may be
characterized as a search for invariants. ** The
problem is to find attributes that all instances
of a given pattern have in common that instances of other patterns do not. The particular class of invariants selected will ultimately
determine the performance of the pattern recognition system. However, performance is
not the sole factor influencing the choice of
invariants. Associated with any research
project are certain objectives and goals. In

A program representing a particular implementation of the system has been written for
the DEC PDP-I. The user draws the character on the face of a cathode ray tube with a
light pen. 'The program follows the pen and
constructs the appropriate sequence of property vectors. The properties used are simple
geometrical ones, and the descrimination nets
are tree structures which store sequences of
property values. Recognition time is of the
order of .25 seconds, of which approximately
.15 seconds are occupied by drum read-andwrite operations required by the small memory size (4K) of the machine.

** A number of excellent surveys and bibliographies
of the voluminous literature on pattern recognition are
available.1 , 7, 9 Minsky 8 gives a general survey of the
entire area of artificial intelligence, including pattern
recognition.

* Consultant, System Development Corporation, Santa Monica, California.

559

560

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

pattern recognition, achievement of these goals
is not only a function of what the system recognizes, but also how it performs the recognition. Thus the selection of invariants may be
more influenced by the purposes and philosophy of the research than by a desire for a
high rate of recognition. To illustrate this
point, let us examine briefly two character
recognition schemes which are at opposite ends
of a spectrum with respect to the aims of ,their
research. Both perform very well in th~t their
recognition accuracy is high. Their basic difference in purpose and philosophy is reflected
in two very diverse sets of invariants. These
two schemes will provide a frame of reference
for the research described in this paper.
2.1 CycIops-1
Cyclops-Pis a sophisticated character recognition program which involves hypothesis
generation and testing in the identification
process. The system generates a hypothesis
concerning the nature of the input; the hypothesis is tested, and if it is correct, it becomes
the output. In the present version, the program merely generates hypotheses in a predetermined, fixed order, with the major part
of the research going into hypothesis testing.
The hypothesis testing scheme involves a
series of questions about characteristics of
particular segments in the pattern, or of the
relationships between segments, or of the pattern as a whole. There are 42 characteristics,
and they are presumably selected because they
were the type of things noted by humans. For
example, five characteristics used by the system are (1) the predominance coefficient of a
segment, (2) the straightness coefficient of a
segment, (3) the orientation of a segment, (4)
the number and location of inflection points of
a segment, and (5) the number and location
of the intersections of a segment with other
segments. The items to be recognized by the
program, i.e., alphabetic characters, are defined in terms of these characteristics.
The system has great generality. New characters may be defined with little difficulty.
However, a great deal of computation is necessary to determine the segmentation of a
character, and to identify intersection points,
inflection points, etc. In operation, the system

receives the input via a pen tracking routine
which accepts data written on a cathode ray
tube. The system then transforms a table of
successive light pen locations into information
concerning line segments that comprise the
character. The program is thus quite large,
and recognition time is slow. *
2.2 The Stylator
A scheme described by Dimond of Bell
Labs.,2 on the other hand, is much simpler. A
practical electronic device called the Stylator
has been designed and constructed which performs the recognition. The user is constrained
to draw the character (a numeral) around two
dots which define a set of bipolar coordinates
(Fig. 1). The seven lines identified in the
figure are actually narrow conductors connected to a source of potential. When the numeral is written with a stylus connected to a
source of potential, the stylus energizes the
conductors, which in turn cause certain flipflops to operate and drive the rest of the circuit to indicate the correct numeral. This can
be done because the numerals are defined
uniquely in terms of their set of line crossings.
For example, the numeral '3' is defined as
crossing lines A, B, C, D, and not crossing line
F. (It mayor may not cross lines E and G.)
Similarly, the numeral '7' must cross line A
and line B, and may not cross line D or F.
Admittedly some variations on the construction of a numeral might be conceived which
would confuse the machine, and in some cases
the user must be trained briefly to familiarize
himself with the system. But this causes no
great difficulty, and the knack of positioning
the character and drawing it to the correct
scale is learned readily.
2.3 Comparison of Research Approaches
The CycIops-1 approach to character recognition reflects an attempt at constructing a
general system. The search for invariants has
therefore led the researchers to examine the
way in which humans recognize characters.
The resulting properties involve very abstract
concepts and considerable computation is necessary in determining them. However, the
properties used are those that seem to define

* Depending on the number of line segments between
three and twelve seconds per character.

REAL-TIME RECOGNITION OF HAND-DRAWN CHARACTERS

I

f

c

D

Figure 1. Bipolar Coordinates for Character
Recognition.

the character in the everyday sense. Cyclops-1
recognizes an 'A' because it is an 'A.' The
power in this approach is reflected in the ability Cyclops has demonstrated to perform scene
analysis: the system can analyze complex
visual inputs consisting of an arbitrary number of characters present simultaneously,
where the characters may be of different size
and orientations, may overlap or be inside of
one another, or may be superimposed on arbitrary backgrounds consisting of meaningless
lines or· spots or geometric shapes. This is
something that is beyond the range of most
character recognition schemes, although hunlans do it fairly well.
In the Stylator scheme, the emphasis is on
fast and efficient recognition. The set of invariants for the numerals '0' through '9' is
specified as a collection of line crossings only
because this is simple and fortunately unique.
Note however that the user could merely touch
his stylus to the correct lines, without even
drawing the character, and have the Stylator
recognize it. On the other hand, one could
easily construct numerals that most humans
would recognize correctly but that would confuse the Stylator. Essentially all the Stylator
does is map a set of 128 (27) possible inputs
onto a set of ten possible outputs. To the extent that this correlates with correct character
recognition, the device performs well. Its assets are its speed and efficiency.
While the author feels that the type of reserach embodied in the Cyclops project will
be more productive in the long run, the aims
of the research reported here are closer to

561

those of the Stylator project. The research
began with an attempt at developing a fast and
practical character recognition program to use
as input to a larger system. The central theme
was to try to use the information of the time
sequence of events in constructing the character to establish a simple class of invariants.
Since a more flexible scheme than that of Diamond was desired, a simple and rigid definition
of alphabetic characters such as the sort utilized by the Stylator would not suffice. As in
the work described by Kuhl, * the properties of
the program reflected the "true nature" of the
character more closely than that of the Stylator, but were not as general as those used by
Cyclops.
As the research proceeded, certain generalizations suggested themselves, and where these
did not conflict drastically with the rate of recognition, nor make implementation difficult,
they were included in the program. The system presented here arose as the logical abstraction and generalization of the program,
rather than the other way around.
3.0 THE SYSTEM
3.1 Definitions and Notations
Since the system will treat characters as
events in time, a distinction is made between a
"form" and a "figure." A figure will be taken
to mean a drawing· on a piece of paper or on
a cathode ray tube, in other words, a picture
of a symbol. A form will be considered the
sequence of events that produce the drawing,
in other words, the figure with its time sequence. A character refers to the symbol that
either the figure or the form denotes. Thus,
this scheme operates on forms to produce characters, as opposed to more conventional
schemes that operate on figures to produce
characters.

* Kuhl's interest is in finding a convenient way of
separating classes of letters.4 He makes use of invariants such as the number of free ends of the character,
the presence or absence of sharp angles, etc. Since an
'A' can be drawn without any sharp angles, and one can
construct a ligitimate 'B' with two free ends, the "definition" of a character according to his scheme may not
coincide with that used by a human, although his invariants are more suggestive of the characters than the
invariants used by Dimond for the Stylator.

562

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

The sequence of events that comprise a form
is denoted by F (t) . This notation is meant to
suggest the sequence of events in the time
interval (O,t). * A property vector is associated with each form F (t). This vector is
denoted by 7r (t), and also changes with time.
It may be thought of as describing what is
happening at the present instant. Presumably
it contains information of use to the recognition function, although it could also indicate
some other function-e.g., the phase of the
moon or the body temperature of the user. In
the implementation of the system, 7r (t) reflects
the position of the pen at time t.
The system operates on the sequence of
property vectors that represent the sequence
of events in the construction of the form. Each
component of the property vector corresponds
to a separate property, with the jth component
of 7r (t) ----'7Tj (t) -corresponding to the jth property, Pj' These properties apply to characteristics of the form. 7rj (t) is a three-valued
function which informs the system whether
or not the form has property Pj' 7rj (t) ==1 is
interpreted to mean that the form has property
P j at time t. "7Tj (t) ==0 means that the form
does not have property Pj. The third value,
7rj (t) ==w indicates that the property is not applicable to the form at time t. This last value
serves to break up the sequence of property
values into sub-sequences. In the program,
the individual properties indicate whether or
not the pen is in a given region, and these subsequences of values correspond to strokes of
the pen.
3.2 Input to the System
As indicated, the system operates on a sequence of property vectors representing the
encoding of the input character in the time domain. The particular encoding will depend on
exactly what properties are being used by the
system, but all encodings are constructed in
the same fashion. They are merely the se...
quence of all property vectors attained by the
form from time t == 0 until the form is completed. In other w.ords, the first vector in the
sequence informs the system what properties
are present, not present, or inapplicable at

* For

t

= o.

convenience, assume all forms begin at time

time t = 0; thereafter, whenever the property
vector of the form changes, the new vector is
added to the encoding sequence. The sequence
is thus normalized in time in that there is no
information on when the form had a certain
property v~tor or how long it maintained the
same vector. The length of the sequence is
thus a function of how often the properties
vary in the course of constructing the form,
and not how quickly or how slowly the form
was constructed. **
3.3 The Recognition Process
Each property has a discrimination net associated with it. The discrimination net filters
out all but those characters that have similar
forms. S.imilarity is defined for a particular
discrimination net as having the same sequence
of property values. Thus, for each property
Pj, the corresponding sequence of property
values of 7rj is extracted from the complete
sequence of property vectors. This sequence
is usually considerably shorter th~m the entire sequence of property vectors, because the
encoding contains all changes of all properties,
not only the changes in "7Tj. The discrimination
net then selects as its set of candidate characters all those characters whose sequence of
7rj values are identical to the sequence of 7Tj
values for the input form.
The particular properties used affect the performance of the system tremendously. If many
characters have the same sequence of property
values, then the decision problem will be almost as difficult after the discrimination nets
have operated as before. On the other hand,
if the sequence of property values is long and
complicated, then the chance that it will be
duplicated exactly is small, and either the system will have to be provided with an extremely
large dictionary of property value sequences
or else the discrimination nets will not pass
any characters into their candidate set. In one
case, the defining criteria are too lax, allowing
many characters to have the same definition,
and in the other they are too stringent, re-

** There could conceivably be properties that reflected
the length of time required to construct the form. For
example, '1Tk
1 if form is completed in less than time
tu, etc. But there is nothing in the encoding sequence
that explicitly represents the passage of time other than
the changing property vectors.

=

REAL-TIME RECOGNITION OF HAND-DRAWN CHARACTERS

quiring the user to construct his character
with great precision and consistency.
The final decision procedure that operates on
the sets of candidate characters reflects an attempt to recover from either of the above two
possibilities. The concept employed here is
parallel processing. It has been observed in
many pattern recognition projects that a reliable decision may be possible even where individual tests are poor, provided each test
contributes some different fractional bit of
information. In our case, this is done by having the presence of a character in a candidate
set suggest that the character might be the
correct one and, correspondingly, having the
absence of a character in the candidate set
prejudice the system against it. This is done
by weighting the characters with a reliability*
estimate for each net, and selecting the character with the highest score. In the case where
all nets are equally reliable, this amounts to
selecting the character that appears in the
plurality of candidate sets. In the implemented
version of the system, a small, basic set of
properties is used, all of which have reliability
estimates of the same order of magnitude. Additional properties, with lower estimates, are
considered in the decision only when the basic
weights are nearly equal.
To summarize, the system receives a sequence of vectors which represent the changing characteristics of the input form. The
components of each vector are three-valued
functions which indicate whether or not the
form had a particular property at the time the
vector was computed, although information on
when this occurred is not included with the input sequence.
For each property, the sequence of property
values attained by the component of the vector
corresponding to that property is extracted
from the entire sequence of property vectors.
A discrimination net retrieves all characters
that have forms with the same sequence of
property values. This set of characters is
called the candidate set. The system then
selects a character from among all of the various candidate sets by weighting each char-

* Reliable in the nontechnical sense, meaning valid or
trustworthy.

563

acter in proportion to the reliability of the discrimination nets that suggested it, i.e.,
proportional to the reliability of the particular
property.
4.0 THE PROGRAM
4.1 The Property Vector
If one is asked to visualize a character as a
sequence of events in real time, the picture that
comes to mind is that of a pen tracing a course
over a piece of paper. Similarly the properties
first experimented with here were simple geometrical properties that merely reflected the
position of the pen at time t. These were
found to be suitable, and more sophisticated
properties involving pen velocity, angle of line
segment, curvature, etc., were not needed.
Although characters may be drawn to different scales and orientation, let us assume
that we have a character normalized and have
superimposed it on a rectangle. We will consider this rectangle to be divided into various,
possibly overlapping regions. Each region
corresponds to a property. A form is said to
have the property P j , and 7Tj = 1, if the position of the pen at time t lies in region R j • If
the pen is not in region R j , then the figure does
not have this property, and 7Tj = O. When the
pen is not touching the page, 7Tj = w, in this
case for all j. 'Thus, the property vector
roughly determines the position of the pen at
time t, and the sequence of property vectors
will trace out the page ot the pen as it completes a form. Fig. 2 depicts a four-property
scheme, and Table I gives the sequences of
property vectors for the two different 'E's
shown in Fig. 3.
These four properties were first considered
because of a desire to divide the character into
a left third, center third, and right third, and
similarly, upper, lower, and middle third. They
are obviously redundant as there are 16 possible property vectors corresponding to only
nine subregions of the rectangle. However,
they were powerful enough to enable the
author to construct a unique definition of all
English uppercase letters as the author drew
them, with the exception of 'U' and 'V.' While
the system allows the user to define his own
properties-which for the purposes of the pro-

564

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964
Table I. Sequence of Property Vectors for Two Different 'E's (See Figure 3).

TTl

TT2

TT3

TT4

TTl

TT2

TT3

114

1

1

1

1

0

1

1

1

1

1

0

1

o·

1

0

1

1

1

0

0

1

1

0

1

0

1

0

0

1

1

0

0

0

0

0

0

0

1

0

0

W

W

W

W

0

0

0

0

1

1

0

1

w

w

w

w

0

1

0

1

1

1

0

1

0

0

0

1

0

1

0

1

w

w

w

w

0

0

0

1

1

1

1

1

w

w

(1)

w

0

1

1

1

0

1

1

1

0

0

1

1

0

0

1

1

w

w

w

w

w

w

w

w

Type 1

gram means defining his own regions-it was
decided that the program, and the user, should
start with a useful, basic set of properties.
These four properties were selected as a nucleus for the set of properties used by the program, and the sequences of property vectors of
Table I would be the actual input to the recognition portion of the program.
4.2 The Discrimination Net
Since the operation of the individual discrimination net is essentially one of retrieval,
one possible representation for the net would
be a simple table. The program would then
merely look up the sequence of property

Type 2

values in the table and retrieve any and all
characters associated with that sequence. However, from a standpoint of conservation of both
computer time and storage, this would be very
inefficient. In addition, since we would like to
have the system learn by adding new forms to
its repertoire, we would have to cope with the
problem of variable-length tables as well as
variable-length entries. (We do not know, a
priori, how long a given sequence of property
values will be, nor how many characters will
ha ve this sequence in their forms.) Some type
of list structure is called for.
The structure adopted is the binary tree.
This is a special type of list structure consist-

REAL-TIME RECOGNITION OF HAND-DRAWN CHARACTERS

565

[]
...
.
...
...
..
.

~.~ 'r~

~

~

~.~ ~

~.~

~

Figure 3. Two Different 'E's (See Table I) .

--

For the second 'E,' the program arrives at
the node marked with an asterisk and con. cludes that no character has a form with this
sequence of property values for PI; the candidate set will therefore be empty.

Rec10n 3

Figure 2. A Four Property Scheme.

ing of a collection of nodes and branches. Each
node is connected to one and only one node
n'h"n", ~~..,
.... 'hn
n .;:U·.I..I.6.&~
"~n",.lo 'h .... onroh
UJ
Q,
..., .... ~.L.&.'"' ... .I..

GJJVYC;

4.3 Training the Program
The process of training the program involves modifying and augmenting not only the
individual discrimination nets, but also the
reliability estimates associated with these nets,
and occasionally even creating new nets. The
program begins with the four basic discrimina-

Q;nroo
tho
""-' ... .1..1.,,'"'
"'.&..&" T\1"ll_
J:''&'''

gram operates on changes in the property
value, and there are three possible values for
any property, only two branches are needed at
a node to represent a sequence of values; hence
the tree is a binary tree. Fig. 4 illustrates a
binary tree which has stored the sequences of
property values for PI (Fig. 2). The algorithm
used to construct the tree is that the value 1
is always to the left of the value 0, and the
value 0 is always to the left of the value The
set of candidate characters at a node is actually a list appended to that node. In Fig. 4,
the set of candidate characters has been placed
adjacent to its corresponding node.
If we return to the two types of 'E's (Fig. 3
and Table I), we can follow the operation of
the discrimination net. First, the appropriate
sequence of property values must be extracted
from the sequence of property vectors. This
process is illustrated in Table II. For the first
type of 'E', the program then descends the tree
and arrives at the node whose candidate set
consists of the two characters 'E' and 'A.' This
would therefore be the output of the net.
(I).

Figure 4. A Binary Tree for Property Pl.

566

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
Table II. Sequence of Property Values for Two Different 'E's.
The sequence of property values for each individual property was extracted from the sequence
of property vectors in Table 1. Note that the sequences for 71"2, 71"3, and 71"4 are identical.

TTl

TT2

TT3

TI4

TIl

Tr2

TT3

TT4

1

1

1

1

0

1

1

1

0

0

0

0

1

0

0

0

W

W

W

W

0

W

W

w

1

1

0

1

w

1

0

1

0

0

W

w

1

0

w

w

w

w

1

1

0

w

1

1

1

1

w

w

w

1

w

w

0

0

0

0

W

W

W

w

Type 1

tion nets corresponding to the four properties
discussed earlier. No sequences of property
values are stored in any of the nets, and each
net is given an initial success number of one.
It is this success number which will reflect the
reliability of the net.
4.3.1 Modifying the Tree
The user draws a form and the sequence of
property vectors is delivered to the program.
Since there are no forms stored in the nets,
an candidate sets are empty and the program
is unable to guess a character. The user then
informs the program what the character was,
and the correct sequence of property values
is stored on each tree along with the name of
the character.
As the process continues, the trees grow
more complex, but the procedure of growing
new branches and/or adding new characters
to candidate sets remains the same. Thus, in
Fig. 4, when preseiled with the type-2 'E,' the
program would add on the additional branches
(1, 0, w, 0, w) at the node marked with an asterisk and place a candidate set consisting of
the single character 'E' at the last node.

Type 2

After the program has been in operation for
some time, correct decisions may be made even
though some candidate sets do not include the
right character. Similarly, a wrong guess may
be made even though some candidate sets do
include the correct character. In both cases,
one or more trees do not contain the sequence
of property values for the input form. If the
program is still in training, these sequences are
added to the corresponding trees. This means
that the next time the program is presented
with the same form, not only will the correct
decision be made, but the correct character will
be in each candidate set, i.e., the "vote" will be
unanimous.
4.3.2 Success Numbers-A Reliability Estimate
The whole point of the training is not to
provide the program with all possible form it
may encounter, but to give it enough experience so that, even on unfamiliar forms, some of
the trees may be able to make guesses, though
others may generate empty candidate sets. The
weighting attached to the candidate sets of
each tree reflects the reliability of that tree as

REAL-TIME RECOGNITION OF HAND-DRAWN CHARACTERS

demonstrated during the training period. This
is done by incrementing (by one) the success
number of a tree every time its candidate set
contains the correct character. Similarly, the
success number is decreased (by one) each
time the candidate set does not contain the
correct character. Thus trees that suggest
correct characters often are given more weight
than those that do not. For the four basic
properties, the success numbers usually remain
about the same. However if the user tends to
be more consistent with respect to the vertical
dimensions of his character and varies on his
horizontal dimensions, this would be reflected
in the larger success numbers for property P 3
and P 4 (Fig. 2).
4.3.3 Generating New Properties

Although the four basic properties enable
the program to achieve quite a high level of
discrimination, they are not foolproof. Suppose
in the course of its training, the program were
taught the character 'Z' (shown in Fig. 5a and
Table III). Later, when confronted with the
form in Fig. 5b the program correctly identifies it as a 'Z.' Moreover, it is sure that it is
a 'Z.' In other words, every tree suggested a
'Z.' The only difficulty is that a human would
recognize this form as denoting the character
H) ,
.... Telling the program that this form denotes a '2' does not sove the problem. It would
merely result in the program identifying subsequent 'Z's as '2's. The two characters are
identical within the limits of discrimination
of the program.
At this juncture there are only two possibilities. Either the user must relent and draw
one or the other form differently, e.g., cross

-

..........

567

the 'Z," or he must extend the discrimination
of the program. The latter course is preferable and, for the case of this program, easily
achieved.
Observing that the difference between the
two forms lies in the fact that a 'Z' enters the
upper right hand corner, and a '2' does not, we
communicate this fact to the program by activating a new region R 5 , and a corresponding
property V 5 • When the program has added this
new discrimination net· to its collection of
existing nets, it has the necessary discrimination to distinguish between these forms (Fig.
6 and Table IV).
There are implications in this procedure beyond the ability to distinguish between two
similar characters. First, the new tree is
started out with a success number of one. The
other trees, by virtue of their training, have
built up larger success numbers. Consequently,
the new tree will have an effect only in those
decision where there is a tie vote from the
other trees. In other words, it will only be
called upon to discriminate when it is needed.
For those sequences that the four original
trees have been trained to handle, the new tree
will not be used.
The second implication is that the new tree
can eventually outweigh the old trees if it
proves to be more reliable. As the new tree
participates in more correct decisions its
success number grows. If the user has generated a very effective property, then this new
tree can assume a position of dominance in the
decision procedure. The user is protected, however, if he has generated a poor property. This
will be reflected in its low success number, and
it will only be used when there is no other way

\
)

/

/
-

Figure 5. Two Forms Identical Within the Limits of
Discrimination of the Program (See Table III).

Figure 6. Generating a New Tree (See Table IV).

568

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964
Table III. Sequences of Property Vectors and Values for Figure 5.

TTl TT2 TT3 TT4

TT

TT2 TT3 TT4

1

TTl TT2 TT3 TT4

TTl TT2 TT3 TT4

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

1

1

1

0

0

0

0

0

1

1

1

0

0

0

0

0

0

1

1

1

1

w

w

0

0

1

1

1

1

w

U)

0

1

1

1

0

0

0

0

0

1

0

0

0

1

0

1

w

U)

0

1

0

1

w

w

1

1

0

1

0

1

0

0

1

1

0

0

1

1

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

w

w

w

w

w

w

w

W

TT vectors

TT values
j

to make a decision. Thus, the generation of
new trees proves to be a very powerful heuristic. It enables the clever user to create an
extremely powerful character recognizer, and
does not penalize the novice, since his new
properties can be evaluated in light of the
program's experience with him.
4.4 The Program in Operation
The program operates in the following way.
The user draws a form within a rectangle of
light displayed on the scope; an input routine
converts this form to a sequence of property
vectors. The particular properties used, as
mentioned above, indicate the position of the
pen. Hysteresis regions in those areas where
properties change have the effect of eliminating the sharp line of demarcation between two
regions.
When the user has completed a form and
signals to the program, a recognition routine
is brought into memory. This routine operates
on the property sequence computed by the in-

TT vectors

TT

J values

put routine. It retrieves the candidate sets
from the trees, and makes a guess as to the
identity of the character that was drawn, using
the success number technique discussed above.
When in training mode, it uses the feedback
information to grow new branches and add
characters where necessary, and to modify the
success number of existing trees.
4.4.1 The Input Routine
When the program is in operation, a rectangle of light can be seen flickering on the cathode ray tube. This is a 48 x 64 raster of points
within which the user must draw his forms. *
Associated with each point in the 'raster is a
property vector. As the user draws on the
scope, the pen is tracked by the program. The

* The user could be allowed to draw his form anywhere on the scope face. However, this would entail
saving the entire form and normalizing it after it had
been completed, which would be costly in space and
time. By limiting the drawing to the rectangle, the
property vectors can be computed while the form is being drawn.

REAL-TIME RECOGNITION OF HAND-DRAWN CHARACTERS

property vector for the point in the center of
the pen's field is retrieved from the raster table
by the input routine. If the property vector
differs from the last vector in the sequence, it
is appended to the sequence. When the user
lifts the pen from the scope, the property vector (w, w, w,
is added to the sequence. This
process continues until the user signals he has
completed a form. The 7r vector sequence is
then passed to the recognition routine.
(f)

Because of the nature of the properties used
by the program, it might be possible to comP¥te the property vector directly rather than
store a three-thousand word table. There are
two reasons why this is not done. First, table
lookup is much faster than computing the
property vector. This speed is important while
tracking the pen. A long computation might

allow the pen to travel far enough that the
program would "lose it." This, in turn, would
mean that the program would have to display
the entire raster to find the pen. This can be
annoying to the user. In addition, the program would interpret this as meaning that the
pen had left the face of the scope, and add (w,
w, w,
to the property vector sequence.
(f)

The second reason for looking up the property vector rather than computing it lies in the
generality of the lookup procedure. Since each
point has its own property vector, the regions
are not restricted to a portion of the rectangle
lying to one side of a straight line, as in the
basic set of propertIes. The regions need not
even be connected. Although the regions used
for the basic set are simple, there is no reason
why more general regions should not prove

Table IV. Sequences of Property Vectors and Values after Adding New Property (See Figure 6).

TTl TT2

"3

TT4 TT5

TTl TT2 TT3 114 Tr5

1

1

1

1

0

1

1

1

1

0

1

1

1

0

0

0

0

0

0

1

1

0

1

1

Q)

0

0

1

1

1

0

0

0

o· 1

1

0

w w

0

1

1

1

0

1

0

1

1

1

TTl TT2 TT3 TT4 TT5

TTl TT2 113 TT4 115

0

1

1

1

1

0

1

1

1

1

0

0

1

0

1

1

1. 0

0

0

0

0

ID

Q)

0

0

0

1

1

0

..., ...,

W

W

W

0

0

0

1

0

0

0

1

0

1

0

w w

0

0

1

0

0

0

1

0

1

1

0

0

0

0

1

0

0

1

0

0

0

1

0

0

0

0

0

0

0

0

0

1

0

0

0

W

W

W

W

W

0

0

0

0

0

CD

CD

W

W

W

1T

vectors

1Tj

values

569

1T

vectors

0

1Tj

values

570

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

useful for certain types of characters. In fact,
it is this table lookup that permits the generation of new properties (Fig. 6). This is done
by the simple expedient of pointing the light
pen at the corresponding region of the rectangle as it is displayed. The program then stores
the correct values for the new property (one
for points inside the region, zero for points
outside) in the 48 x 64 property vector table.
From then on, the program will act as though
the new property were one of the basic set.
4.4.2 Hysteresis Areas
As mentioned above, when certain generalizations suggested themselves, and they were
not difficult to implement and did not detract
from recognition efficiency, these were carried
out by the investigator. One such modification consists of a hysteresis area that lies between R j (the region corresponding to P j ) and
its complement. In this hysteresis area, no
changes in the property P j can occur. In other
words, if the pen enters the hysteresis area
from the region where 77"j = 1, even if it crosses
the line between the region and its complement, 77"j remains equal to one until the pen
leaves the hysteresis area. Similarly if the
pen enters the area from the region where
77"j = 0, '7Tj remains zero as long as the pen is in
the hysteresis area. Thus, the hysteresis area
acts as a buffer between two regions of the
rectangle.
The effect of the hysteresis is to standardize
certain forms. In Fig. 7 and Table V, a form
denoting the character 'e' is shown, with and
without hysteresis areas. Without hysteresis
property vector sequences for this form probably would not agree with that of another form

denoting,the same character. This is because
slight variations in the path of the pen would
result in an entirely different sequence. Sometimes the property vector sequence would record more than one crossing of certain boundaries, and other times no crossings. Consequently, the program would find it difficult
to learn this character. With the hysteresis
area, a certain amount of "slop" can be tolerated regardless of the position of the form.
In the program, the width of these hysteresis
areas is set at five ponts (the raster is 48
points wide and 64 points high). The hysteresis areas are drawn approximately to scale in
Fig. 7.
4.4.3 Binary Trees and the Recognition
Routine
For each j, the recognition routine extracts a
sequence of '7Tj values from the sequence of
property vectors. The program descends T j,
and retrieves the candidate set. It then forms
the union of all of the candidate sets. Each
candidate is credited with the success number
of the trees that suggested it, and the candidate with the highest score is chosen by the
decision procedure.
When the program is in training mode, the
recognition routine indicates its guess and
waits for feedback. If the correct character is
in the candidate set of Tj, the jth ·tree, the
success number of that tree is incremented.
Otherwise, the success number is decremented,
and the correct character is stored at the terminal node for the '7Tj sequence, new branches
being grown where necessary.
The implementation of this process involves
extensive use of list structure; the binary tree
and the candidate set are each represented as
a list of nodes. In addition, there is also a free
storage list which contains all available space.

Figure 7. Use of Hysteresis Areas (See Table V)

The nodes of the binary tree consist of three
pointers. One pointer points to the node at
the end of the left-hand branch, and another
pointer points to the node at the end of the
right-hand branch. The third pointer points
to the list of characters (the candidate set)
stored at the node. The nodes of the candidate

REAL-TIME RECOGNITION OF HAND-DRAWN CHARACTERS

571

Table V. Property Vectors with and without Hysteresis (See Figure 7).

TTl

TT2

TT3

TT4

TIl

TT2

TT3

TT4

1

1

0

1

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

0

1

1

0

1

0

1

0

1

1

1

0

0

0

0

0

1

0

1

0

0

0

1

0

1.

w

w

w

w

1

1

0

1

1

1

0

0

0

1

0

0

0

0

0

0

W

W

W

W

....4 ................,+

w.

v.u.V\,4U

", ... re+c.
...c.C!-t C!
... uv",vw.w

..."

set consist of the name of a character, represented as a nine-bit binary code, and a pointer
to the next node of the list. The end of a list
is indicated by a special symbol, called the null
symbol instead of a pointer. Fig. 8 dep"icts
such a structure. 0 represents the null symbol
in the figure.
When the program must add a node to the
binary tree or the candidate set, it obtains the
necessary cells from the free storage list and
constructs the node. The node is then tied into
the list structure at the appropriate place by
changing a null symbol to the address of the
new node.
4.4.4 Human Engineering Considerations
The program under discussion was originally
designed to serve as a subroutine for a larger
system. As such, its only function was to
allow a user to input information to the larger

with

hysteresis

system:,.by means of the cathode ray tube, and
to do this in a way that seemed convenient and
natural to him. Since the system must deal
with users who would be complete strangers
not only to this program, but also to the entire
field of computers, a great deal of thought has
gone into the design of the "physical appearance" of the program. This section describes
and illustrates by means of photographs, etc.,
exactly how the user interacts with the program.
One of the first problems encountered concerned the many options the program offered.
These would be of no value if the onus of remembering what these options were and how
they were to be selected fell on the user. The
solution adopted is the use of a control panel.
This panel may be called at any time by means
of a small light button displayed in the upper
right-hand corner of the screen. When called,

572

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
e

•
•

Ente~

T~alnlnq Mode
Lea·.·e Tralnlng Mode
Enter Hysteresls Mode
L.ae ~rste~eslS Mode
E~ase

Trees

S.t Up

Raste~

G.n.~at.

~.w

Tree

Ne~

Charact~r

Panch Off
Rpad In
Generate

EXlt

f~o"

DIsmISS

APr.US

po.n.l

Figure 9. The Control Panel.
The control panel is' called to display the various options
of the program. The user selects an option by pointing
at the corresponding light button, which then lights up.
Note that the program is currently not in training
mode and not in hysteresis mode.

Pree Storage

Figure 8. Internal Representation of Data Structure 0
represents the Null Symbol.

the panel displays all the options (Fig. 9). The
user can select an option simply by pointing
the light pen at the corresponding light button.
The button lights up and the appropriate action is taken. When the panel is no longer
needed, it may be dismissed by pointing the
light pen at the appropriate button. This procedure has been found to be quite acceptable
and intuitive to persons unfamiliar with the
program.
Unless the user has previously prepared a
set of trees, the first step in using the program
is to place it in training mode (the program is
usually operated in hysteresis mode). The
user then proceeds to train the program to his
style of handwriting. He does this by drawing
the character on the raster, and signaling the
program to recognize it (Fig. 10). The program displays its guess in the upper left-hand
corner of the screen, while displaying the twodimensional projection of the form in the center of the screen (Fig. 11), and waits for
feedback.

If the program has guessed correctly, the
user signals approval with the light pen. If the
program is wrong, or could not make a guess,
the user signals disapproval, and the program's alphabet is displayed so that the user
can indicate the correct character (Fig. 12).
This process continues until the user is satisfied with the program's proficiency (Fig. 13).
He may then take the program out of training
mode and write characters on the raster. When
the program is asked to recognize each character, it inserts its guess ('?' if no guess) in
the input string of characters at the pointer
(Fig. 13). The user may move the pointer so
that he can insert (or delete) characters at any
point of his input string. If the program evidences weakness or certain characters, the user
can return to training mode. These processes
continue until the input string is exactly what
the user wishes to communicate to the larger
program, and the user then exits from the
character recognizer. If the user wishes to
retain what he has taught the program for

Figure 10. Drawing a Character.
The user has just completed drawing the form which
denotes the character 'A.' If this is acceptable, he
signals to the program to recognize it. If not, he may
erase the entire form and start over. Note the light
button situated in the upper right hand corner of the
screen for calling the control panel. Note also the
lighter hysteresis areas in the raster (Figure 7).

REAL-TIME RECOGNITION OF HAND-DRAWN CHARACTERS

Figure 11. Indicating a Guess.
The program has been asked to identify the form whose
projection is displayed in the center of the screen.
The'?' indicates that it was unable to make a guess.
Since the program is in training mode, the user will
presumably tell it that the form denotes the character 'A.'

future use, he may request a tape of the trees
and property table through the control panel.
The trees and property table can then be read
into the program via the control panel the next
time the user wishes to use the program, thus
avoiding the training process.
Although the character set basic to the program is a large one, it is quite possible that a
particular user may need some special-purpose
character or set of characters. These characters may be generated and are assigned ninebit codes. They are subsequently treated exactly like the original characters. Fig. 14
shows a user generating a '2;.'
One other valuable option is the ability to
generate new trees, which may also be done
via the control panel. Fig. 15 shows the generation of a new tree needed to distinguish
between 'U' and 'V.' The user has merely
shaded in the corners of the raster. Upon
signalling his approval, the program will
modify the property vectors in the 48 x 64
table to indicate the new region. When the
user calls for the PUNCH option at the end

573

Figure 13. Correct Identification.
The program has guessed that the form denotes the
character 'E.' The character displayed is underlined to
indicate that the program is sure, i.e., all trees voted
for 'E.' Below the character is the input string. The
next character will be inserted at the pointer.

of a training run, all new trees are punched
along with the modified property table.
The other options on the control panel are
the "Enter Hysteresis Mode," "Leave Hysteresis Mode," "Erase," and "Set Up Raster.' The
first two of these are exactly what they suggest. In hysteresis mode, the program uses
the hysteresis areas; otherwise not. The erase
feature enables the user to erase all of the four
original trees, destroy any new trees, and cause
the property table to revert to its original
form. The erase feature is used when new
trees are read in with the READ option, or
the qser may call it if he wishes to start over
and train the program differently. The set up
raster option is used to determine the size and
position of the raster. This allows individuals
to write as large or as small as they please,
and also enables them to position the raster
anywhere on the scope.

RBCDEFGHIJ'_'
NOPOPSTUIJ><

7

obcoefqtllJY."
r

0

p

q

1 2 3 ..

I"

5

t

u.

ht

I'

::

567830

Figure 12. Feedback.
The user has indicated disapproval, and will now communicate the correct character to the program by pointing at it with the light pen. The character set displayed
is only part of the basic alphabet of the program;
there are more "pages" of symbols. In addition, the
user can generate new characters (Figure 14).

Figure 14. Generating a New Character.
The user has found a need for a character not offered
by the program. He is generating a new character by
pointing at the points that will make up the character.
The partially formed character is displayed in the
upper center of the screen between "actual" and "size."
When satisfied, he indicates approval and the new
character is added to the program's alphabet. The
Russian and Hebrew alphabets used (Figures 16 and
17) were generated in this fashion.

574

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

Figure 15. Generating a New Tree.
The user is generating a new tree to extend the discrimination of the program. This particular tree might
be useful in distinguishing between 'U' and 'V.' When
the user approves, the property table will be modified
accordingly.

5.0 DISCUSSION
The usual criterion applied to evaluating a
pattern recognition program is its rate of recognition. With the program presented above,
this is not too meaningful. Mermelstein and
Eden,6 who have also experimented with uSing
the time sequence information in their system,
report that their recognition depends on the
"correspondence between the script of test
samples and that of the ensemble on which the
manchine's representation of handwriting is
based." That is certainly true here. By the
nature of the program's training, if it were
presented with a form encountered before, it
would recognize it correctly 100 percent of the
time. If it were presented with a form similar
to one previously encountered, its recognition
accuracy would depend on how similar this
form was, and the measure of similarity would
have to be circularly defined in terms of the
program's properties. In particular, a form
that looked identical to the human eye with
another form might be very different as far as
the program was concerned. This is especially
true if the number of separate strokes of the
pen used were not the same.
Essentially the only things that can be said
about a program of this type relate to its convenience arid usefulness. The program has
been taught to recognize, on separate occasions, Russian characters (Fig. 16), Hebrew
characters (Fig. 17), Greek characters, upperand lower-case English characters, and a large
collection of mathematical symbols (Fig. 18).
It has been used by many different people, and
the combination of control panel and punchout and read-in features make it at the very
least enjoyable to operate. With a little experience, after the user becomes accustomed to
the idiosyncracies of the light pen, and trains
the program in the variations of his hand-

Figure 16. Recognizing Russian.
The program has been trained to recognize capital
Russian letters, and an appropriate character set has
been generated. The figure shows the program in oparation. The letters in the input string displayed '''lere
recognized correctly by the program.

writing (surprisingly many people are not
aware of the fact that they vary their style
of handwriting from sample to sample), the
resulting man-machine system becomes quite
effective. Again no quantitative results can
be offered here other than observations on use
of the program by a considerable number of
individuals.
The results seem to indicate that the use of
the time sequence is a powerful tool in pattern recognition. I t enables a program using
fairly simple properties to achieve a high rate
of recognition. One way to improve the program might be to include more sophisticated
properties other than the position of the pen.
An immediate improvement would be to include a property that detected sharp corners
by noticing changes in the velocity of the pen.
Other properties might note curvature or
angle. Developing a language that described a
wide class of properties would generalize the
program even further. The user would then
be able to communicate subtle differences in
forms by means of fairly abstract concepts.
The final goal of this type of approach would
be to have the system generate new properties
to help distinguish between similar forms
without user intervention. 10 One possible way

Figure 17. Recognizing Hebrew.

REAL-TIME RECOGNITION OF HAND-DRAWN CHARACTERS

575

the Eastern Joint Computer Conference,
1957, 232-237.
3. FREEMAN, H. On the Encoding of Arbitrary Geometric Configurations.
IRE
Transactions on Electronic Computers,
1961, EC-10 (2), 260-268.
Figure 18. Recognizing Mathematics.

of doing this would be to give the program a
large pool of potentially useful properties and
have the program select those applicable.
Another extension of the program's applicability lies in relaxing the real time restriction.
If line tracing is used on input characters, the
program could recover a canonical time sequence from a figure. This would allow these
techniques to be applied to recognizing printed
characters.
Similarly, if a technique were used similar
to Freeman's 3 to encode the character as it
was being drawn, the normalization problem
might also be avoided. This would allow the
user complete freedom of the scope. In this
case, the system would begin to rival the typewriter for convenience, and would make computers very accessible to any and all potential
users.
REFERENCES
1. DAVID, E. E. and SELFRIDGE, O. G. Eyes
and Ears for Computers. Proceedings of
the IRE, 1962, 50 (5), 1-9.

2 DIMOND, T L.
Devices for Reading
Handwritten Characters. Proceedings of

4. KUHL, F. Classification and Recognition
of Hand Printed Characters. IEEE International Convention Record, 1963, Part 4,
75-93.
5. MARILL, T. et ale Cyc1ops-1: A Second
Generation Recognition System. Proceedings of the Fall Joint Computer Conference, 1963, 24, 27-33.
6. MERMELSTEIN, P. and EDEN, M. Experiments on Computer Recognition of Connected Handwritten Words. Information
and Control, 1964, 7 (2), 255-270.
7. MINSKY, M. L. A S.elected DescriptorIndexed Bibliography to the Literature on
Artificial Intelligence. IRE Transactions
on Human Factors in Electronics. 1961,
HFE-2 (1), 39-55.
8. MINSKY, M. L.
Steps toward Artificial
Intelligence. Proceedings of the IRE,
1961, 49 (1), 8-30.
9. UHR, L. Pattern Recognition Computers
as Models for Form Perception. Psychological Bulletin, 1963, 60 (1), 40-73.
10. UHR, L. and VOSSLER, C. A Pattern Recognition Program that Generates, Evaluuates, and Adjusts its own Operators.
Proceedings of the Western Joint Computer Conference, 1961, 19, 555-569.

A COMPUTER PROGRAM WHICH "UNDERSTANDS"*
Bertram Raphael
University of California, Berkeley, California
I. INTRODUCTION
This paper describes a computer program
which demonstrates one approach to building
an "intelligent" machine. The computer system
called SIR-Semantic Information Retrieverexhibits some humanlike conversational behavior and appears to have certain cognitive
abilities. The conversation presented in Figure
1 between a person (identified by "*** .") and
SIR illustrates some of the system's capabilities.

which can represent semantic content from a
variety of subject areas.
II. QUESTION-ANSWERING SYSTEMS
Several computer programs have previously
been written whose behaviors are somewhat
similar to that of SIR. The following are among
the best-known existing systems:
1. "Baseball: An Automatic Question-Answerer".l This system draws answers to
a wide range of English questions from a
predetermined, fixed, hierarchical data
structure.
2. Phillips' "Question-Answering Routine".2
This early example of a question-answerer contains the important feature
that its corpus of data is automatically
extended with each new input sentence.
However, the answering process involves
a statement-by-statement search of the
entire corpus.
3. "SYNTHEX".3 The SYNTHEX approach
is to find answers in an indexed natural
language text by means of grammatical
dependencies. The ability of the system
can be improved only by increasing the
complexity of the associated grammar.
4. Lindsay's "Semantic Analyzing Machine". 4 Lindsay takes advantage of special properties of a particular semantic
relationship by using a form of "family
tree" as the internal computer model for

"Understanding" is difficult to define. A
basic assumption here is that understanding
can be demonstrated by dialogue; i.e., a computer should be considered able to "understand"
if it can remember what it is told, answer questions, and make other responses which a human
observer considers reasonable.
In order to make "reasonable" responses the
computer must not only be able to echo, upon
request, facts it has been given; it must be able
to select (from a large store) facts which are
relevant to a particular question, and must be
able to recognize the logical implications of
those facts. One way to satisfy these requirements is to utilize a suitable internal representation, a "model", for stored information.
This paper describes SIR, a prototype of a
general-purpose "understanding" machine. SIR
demonstrates how conversational and deductive
abilities can be obtained through use of a model

• The work reported herein was supported in part by the MIT Computation Center and, in part, by Project MAC,
an MIT r.esearch program sponsored by the Advanced Research Projects Agency, Department of Defense, under
Office of Naval Research Contract Number Nonr-4102(01). This report is based on a doctoral thesis for the MIT
Mathematics Department, June, 1964.

577

578

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

......

7. Bobrow's "STUDENT"/ This new system deals with linguistic problems which
arise while analyzing those English statements which describe mathematical relationships. The program translates
"word problems" directly into algebraic
expressions.

E:VEMY 80Y IS A PERSON)

II UNIlERSUNDI

......

A FINGER IS PART Of " HAND)

II UNDERSTAND I
,....

EACH PERSON HAS TWO HANDS)

ITHE ABUVE SENTtNCE IS AMBIC;UUUS •• PLEASE Rt-PHRASE IT I
,....

THERE ARc TWO HANDS ON fA(;H PERSONI

II_STANOI

.....

HOII HAPlY F INC;US DOES JOHN HAVE

Q

I

ITHt MOVt SE~TEPI(;E IS AMBIC;UOUS •• BUT I ASSUME IHASI MEANS IHAS AS PARTSII
II DON'T 1(11011 llHETHU FIN(;U IS PART OF JOHNI

t....

.J~

IS A BOY)

II UHOERSTANDI
,....

HOW MANY fiNGERS DOES JOttN HAVE QJ

:

~:W A::~ :~:::C;t~\::I~':.'US

(....

•• BUI I ASSUME (HASI

MEA~S

IHAS AS PARTSII

EVERY HAND HAS 5 FLNGERS)

Each of the above systems has certain interesting features; some of which have influenced the design of SIR. The goal of the
present work, however, has been to find and
demonstrate a question-answering mechanism
which is highly automatic, widely applicable,
and reasonably efficient; one which overcomes
many of the limitations of the above systems.
An appropriate model is the key to this mechanism.

ITH.!: ABOVE SENTENCE IS AIItIIGOOUS •• HuT I ASSUME IHASI MEANS IhAS AS ~'RTSII
II UNDERSTAND I
HOW HANY F I NC;US DOES JOliN HAVE g I
I THE ABU~E SEPlnNCE IS AMBI(;lJOUS •• BUT I ASSUHt IHASI HEANS IHAS A~ ~ARTSII

IJHt APlSIlER IS 101
(....

HOW "ANY AutOlWlJILES DOES JOhN HAVE Q)

IJHE ABOVE SENTENCt IS
I....

AM~I(;UOUS

•• PUASE RE-PIiRASE ITI

WHO IS PRESIDENT OF IHE UNJlEO STAns gJ

ISTATEMENT fORM NOT RE(;U(;NllEDI
I....

THE 80Y IS JUSI TO THE LEfT Of THE TAbLE I

";028~O IS A TABLEI
II UNDERSTANOI

THt LAMP I S JUST TO IHE LEFT Of THE I ABLE I
'10028U IS A LA ....
IIHE ASOVE STATEMENT IS IMPOSSISUI
I·...

IHE TABLE IS TO ThE RI(;HT uF THE (;HAlkl

I(;02h2 IS A (;HAIRI
II UNUERSTANDI
(....

III. THE SIR MODEL
The SIR model is the collection of data which
SIR subprograms may refer to in the course of
question-answering. It is a "semantic" model
in two senses: 1) The information stored in the
model is intended to approximate the linguistic
"semantic content" or "meaning" of English
text; 2) The structure of the model is derived
from the "semantic" model structures of mathematicallogic.

WHAT IS THE Itt:LATlVE POSITIUN LF A Pt::RSON Q)

(flit: LEFT-TU-IUGHf OROEIl. IS AS FOLLUWS.

ICHAI" I80Y TABUII

Figure 1. Sample Conversation.

kinship information. Of course, this
"tree" model is not a good representation
for other kinds of relationships.
5. Darlington's translation to s y m b 0 1 i C
logic. 5 This program shows how certain
English problems can be translated into
logical terms and attacked by formal
methods. As with Lindsay's system, the
approach used here has limited applicability.
6. Bennett's computer program for word relations. 6 This'system, in which words are
related by means of the English formats
in which they appear, extracts and stores
semantic information in a limited and
somewhat awkward way.

Many linguists and logicians have considered
problems of "semantics" and offered definitions
of "meaning".8,9,10,11,12,13 Few of these discussions are sufficiently concrete to be suitable for
computer implementation. However, the idea
of representing meaning by word associations,
suggested by several previous authors, has been
adapted as the basis of the SIR model. The
resulting word-association structure of the
model is general enough to be useful in a wide
variety of subject areas; yet, the stored information is specific enough to provide convenient accessibility of relevant facts and,
therefore, efficient question-answering.
STRUCTURE OF THE MODEL

The SIR model is structured by means of
property-lists (sometimes called descriptionlists). A property-list is a sequence of pairs of
elements, and the entire list is associated with
a particular object. The first element of each
pair is an attribute applicable to a class of ob-

A COMPUTER PROGRAM WHICH "UNDERSTANDS"

jects, and the second element of the .pair is the
value of that attribute for the object described.
If an English statement asserts that relation R holds between objects or classes named
x and y, or equivalently, that the word "x" is
associated with the word "y" in a manner
specified by the word "R", then this relationship is represented in the SIR model by attribute-value pairs placed on the property-lists of
both x and y. Each attribute specifies a relation, and the value paired with the attribute
(the value of the attribute) indicates which
other objects are related to the described object
by means of the specified relation, i.e., which
other words are associated with the described
word in the way specified by the attribute word.
Since, in general, relations are not symmetric, relation R must be factored into two
relations Rl and R2 so that, if R holds between
x and y, one can say that y stands in relation
Rl to x and x stands in the inverse relation
R2toy.
For example, consider the sentence, "Every
boy is a person." SIR takes this sentence to
mean that a set-inclusion relation holds between
"BOY" and "PERSON". The factor relations
Ri and R2 are "SUPERSET" and HSUBSET",
respectively. The fact specified by the above
sentence can be represented in the model by the
attribute-value pair "(SUPERSET, PERSON)" on the property-list of "BOY", and the
pair "(SUBSET, BOY)" on the property-list
of "PERSON".
An attribute can only appear once on a given
property-list. However, the value of an attribute may be a list containing several object
names. For added flexibility, elements of these
value lists may themselves be in property-list
format so that they can hold descriptive information as well as object-names. The first item
on such sub-property-lists is the flag "PLIST"
which indicates that a property-list follows.
For example, after the system learns that "A
person has two hands" and "A finger is part
of a person", the property-list of "PERSON"
would contain the attribute-value pair:
(SUBPART, «PLIST (NAME, HAND)
(NUMBER, 2»
(PLIST (NAME, FINGER»» These general links are the principal
mechanism for structuring the model.

579

IV. NATURAL LANGUAGE INPUT
The language which is most convenient to the
users of SIR is natural English; therefore, the
input and response languages of the SIR system should be reasonably close to natural English. Since its internal information representation is a relational model, SIR is faced with the
difficult problem of extracting word associations from natural language.
The work reported in this paper is concerned
with the ability of a computer to utilize relational information in order to produce intelligent behavior. The linguistic problem of
transforming natural language into a usable
predicate form is only of peripheral interest
here. The following outlines a superficial but
adequate method for solving this linguistic
problem in the present context. Reference 14
contains further details of this method.
SIR recognizes only a small number of sentence forms, each of which corresponds to a
particular relation. The input language is defined by a list of formats. Each format is a
string of constants and variables, and an applicability test is associated with each variable.
An input sentence is recognized if it is matched
by the constants in some format, and if its substrings corresponding to each variable in that
format satisfy the corresponding tests. Special
functions associated with each format then extract appropriate word associations from recognized sentences, and perform the desired
storage or retrieval operations in the model.
For example, the sentence, "Every boy is a
person", is recognized by the format, "x is y".
Applicability tests check that the substrings
corresponding to x and y are each two words
long, the first of which is a member of the set
{ a, an, every, any, each }. The associated
function then creates set-inclusion links between "BOY" and "PERSON" in the model.
Some formats do not uniquely determine
word relations. As an example of how such
ambiguity may be treated, SIR considers the
verb "to have" as meaning either "to have attached as parts" or "to own", e.g., "John has
ten fingers" vs. "John has three automobiles".
The function associated with the format "x has
n y" must resolve this sernantic ambiguity before it can operate on the model. The ambiguity

580

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

is resolved, as described in Section V, on the
basis of word-associations in the model which
were created because of previous, unambiguous
input sentences.

ble, this full-response mode was a significant
debugging aid. Figure 2 shows the dialogue of
Figure 1 in that mode.

SIR always makes reports of its actions. The
conversation of Figure 1 was produced by an
abbreviated-response mode in which only directly relevant responses were printed. Alternatively, the system can provide a running commentary of its activities. Although less read a-

V. THE SIR PROGRAM

1THi: NEXT SEN fENCE IS. • I
(EVERY BOY IS A PERSIIi'II

SIR is programmed in the LISP language,15
a list-processing computer language 16 well
suited for model building and searching procedures. The operation of the program is described in detail in 14. Here we we shall observe
II KNOll THE SUPERPART-Of-EACH IIELATION BETWEEN HAND A.~D FINGER I

II REALIZE THE NUMdER RELAIION IIETWEEN 5 AND IPLIST NAM~ HANDII
II KNOW THE SUBPART-OF-EACH RELATION BEH.EEN FINGER AND HANOI
II REALIZE THE _BER RELATION BErIlEEN 5 AND IPLIST NAME flNGERl1

UHE fllolCTiON USED IS. .1
serR-~ElEtT

I(GENERlt • 8(JYI IGENER" • PERSONII
UHE otEPLY • • 1
UHi: SUB-FUNCJlON USED IS • • 1
SHR
IBOY PERSOHI
(ns REPLY • .1
II UNDERS UNO rHi: SUPERSEJ RELAlI ON BElWEEN PE"SO>l AND BOY!
II UNDERSTAND THi: SU6SET RELAJlQN BeTWEEN BOY AND PEMSD"I
(HII: NEXT SENTENC!: IS • • 1
(A fiNGER IS PART Of A HANOI

"HE fUNCTION USED IS • • 1
PARTR-SHECT
IIGENERIC • flNGERI (GENERIC. HANOII
ITHE REPLY • • I
1Tttt: SUB-fUNCTION USED IS • • 1
PARTR
IflNGER HANOI

UHE NEXT SENTENCE IS'. • I
IHOW MANY FINIOERS DOES ~OHN HAVE QI
!THE FUNCTION USED IS. .1
HAYE-RESOlVE
IFINIOtR IUNIQUE • ~OHNII
!THE REPLY • .1
ITHE ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUNt IHASI MEANS IHAS AS PARTSII
II KNOW THE SUPERPART-OF-EACH RELATION BET WEE,. HAND AND FINGERI
II KNOW THE SUPERPAIIT-OF-EACH REUTlIIi'I BETWEEN PERSON AND HANOI
ITHE ANSWER IS 101

UIIE NEXT SENTENCE IS. .1
IHOW MANY AUTONOllllES DOES ~OHN HAVE QI

(ITS ~EPLY • • 1
II UNDERSTAND THE SUBPART-OF-EACH RELATION BEr~(EN FINGER AND HANOI
II UNDERSUND THE SUPI:RPART-Of-EACH R~LATlIIi'I aETWE~N HAND ANO FINGERI

!THE FUNCTION USED IS • • 1
HAVE-RESOlVE
IAUTOMOBILE IUNIQUE • ~OHNI 1
!THE REPLY • .1
!THE AIIOVE SENTENCE IS AMBIGUOUS •• PLEASE RE-PHRASE IT I
ITHE NEXT SENTENCE IS. .1
IIItIO IS PRESIDENT OF THE UNIlED STATES QI

ITHE NEXT SENTENtE IS. .1
lEACH PERSON HAS TWU HANDS I

ISTATEMENT FORM NOT IlEtoGNllEDI

ITHE FUN(; TlON USED 15 • • I
HASN-9.ESOL VE
112 • HANOI (IOtNER" • PERSONII
1THi: ltEPLY • • 1
UHE ABOVE SENTENCE IS AMBIGUOUS •• PLUSE RE-PHRASE I II
((HE ..EXT SENJENtE IS • • 1
ITHERE ARE TWO HANDS UN EACH PERSON I
ITHE FUNCTION USED IS. .1
PARTRN-SELEC T
IIIOtNER" • PERSON I (2 • HANDII
ITHE REPLY • .1
II UNDERSTAND THE SUP~R~AMT-OF-EACH RELATION tlETWEEN PERSON AND HANOI
II REALIZE THi: NUMBER RELATION BETWEEN 2 ANO (PLIST NAME PERSOIIII
II UNDERSIAND rHi: SUBPART-OF-EACH RELATlIIi'I IIUoiEEN HANO 1."0 PERSUNI
II REAUlE lHE _IIER RELATlIIi'I BUIIEE .. 2 AND IPLISI NAME HANDII

ITHE NEXT SENTENCE IS. .1
IfHE 8QY IS ",UST TO THE LEFT Of THE TABLEI

!THE FUNCTlO.. USED IS • • 1
JlUGHT-SELECT
IISPEtlfIC • TABLEI ISPECIFIC • BOYII
ITHE REPl Y • .1
IfHE SUIl-FUNCTlON USED IS • • 1
~IGHT

!TABLE 1I0YI
IllS REPLY • .1
16021140 IS a TABLE!
(I IIIIOERSTAND ntE ELEMENTS RELATION BEIIIEE .. G02B40 ANO TAIILEI
II IIIIOERSTAND THE MEMBER IlELAlION BETWEEN TABLE ANO G028401
CI REAL IZE THE ~IGHT RELATION BETWEEN TAlJLE AND' BOY I
II REALIZE rIlE ~LEfI RELATION BETWEEN BOY AND TABLEI

UHE NEXT SENTENCE IS. • I
IHOW MANY flllGERS OOES ~OHN HAVE QI

ITHE NEXT SENrENCE IS. .1
ITIIE lAIIP IS JUS T TO THE LEFT OF THE TABLEI

UHE FUNCTION USED IS. .1
HAYE-RESOl YE
IfJNIOtR IUNlQUE • ~OHMII
ITHi: REPLY • • 1
ITHE ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUME IHASI MfANS (HAS AS PARISI I
(I VUN<>T KNOW WHETHi:R FINGER IS PART OF ~HNI
•

!THE FUNCTION USED IS • • 1
JRlGHT-SfLECT
IISPECIFIC • "'BLEI ISPECIFIC • LAMPII
!TIlE REPlY • • 1
!THE SOlI-FUNCTION USED IS • .1

UHi: !tEXT SENTENCE IS • • 1
I~OHN IS A BOYI
UHE FUNCTION USED IS • • 1
SETR-SELEt T
II UN I QUE • ~OHNI IGENERIC • BOYII
UHE REPLY • • I
UHi: SUB-FUNCTION USED IS • • 1
SETMS
I~OHN BOYI
IITS REPLY • .1
II UNDER STANO THE ELEMENTS RELATION BElIIEEN JOHN AND BOrl
II UNDERSTAND rHE MEMIIER RELATIUN IIElWUN 8(Jy AND ~OHNI

UHE NEXT SENTENtE IS. .1
IHOW MANY fiNGERS OOES ~OHI! HAVE QI
UHE FUNCTION USED IS • • 1
HAVE-RESOlYE
If-INGER IUNlQUE • ~OHMII
UIIt: REPLY • • 1
ITHE ABOVE Sf"TENCt IS AMBIGUOUS •• Bur I ASSUME IHASI MEANS IHAS AS PARTSII
II KNOW THE SUPERPART-Of-EACH ItELAUON BETWEEN HAND AND FINGERI
(11t01i "ANY FINGER PER HAND 011
IIHE NEXT SENrENCE IS. • I
lEVEllY HAND HAS S FINGERSI
UHE FUNCIION USED IS • • I
HASlt-RESOLVE
liS • FINGERI "ENERIC • HANOII
ITHE REPLY • • I
IIHE ABOYE SENUNCE IS AIIBIGUUUS •• BUT I ASSUME IHASI MUllS IHAS AS PARTSII

~RIGHT

!TABLE LAIIPI
IITS REPLY • • 1
(602141 IS A lAIIPI
II UNIIERSTANO THE ELEMENTS RELATION BETWEEN G021141 aND LAMP I
II UNDERSTAND THE HEIlBER RELATION BETWEEN LAMP &110 GD211411
(THE AlOft STATENEIIT IS IMPOSSIBLEI
!THE NEill SENTENCE IS. .1
ITHE TABLE IS TO THE RIGHT OF THE CHAIRI
ITHE FUNCTION USED IS. • I
RIGHT-S.ECECT
IISPECIFIC • TABLEI ISPECIFIC • CHAIRII
ITHE REPLY • • 1
IlIIE SUB-fUNCTION USED IS • • 1
RIGHT
(TABLE tHAIRI
(ITS REPLY • .1
16021142 IS A CHAIRI
II UNOERSrAND THE ELEMENTS RELATION BETWEEN 602142 ANO CHAIRI
II UNDERSTAND THE MEMBER RELATION IIElWEEN CHAIR AND 60211421
II UNDERSTAND THE UGHT RELATION BUWEEIil TABLE aND CHAIRI
II UNDERSTAND THE LEFT RELaTION BETIIEEN CHAIR AND TA8LEI
trllE NEXT SENTENCE IS • • 1
I _ T IS rItE RELATIVE POSITION Of A PERSON 01
trHE FUNCTION USED IS • • 1
lOC-SELKT
IlGENERIC • PERSON II
trHE REPLY • • 1
!THE SUB-FUNCTION USED IS • .1
LOCATEC
I PERSON I
Ins REPLY • • 1
!THE LEFT-TG-RU.HI ORDER IS AS FOlLOWS I
ICHAIR IIOY TABLEII

Figure 2. Sample Conversation in Full-Response Mode.

A COMPUTER PROGRAM WHICH "UNDERSTANDS"

the system's behavior by means of annotated
examples.
Each part of Figure 3 is a conversation between a person and SIR designed to illustrate
SIR's ability to "understand" a different relation or group of relations. Each part starts
with a "clean" memory, i.e., an empty modei
and no knowledge of vocabulary except for format constants. The following notes, keyed to
Figure 3, should help clarify some of the responses:
aL The response, "I UNDERSTAND", indicates that some desired link has been
created or discovered in the model.
a2. "IS" and "IS AN EXAMPLE OF" are
equivalent formats in this context.
a3. In general, question-answering routines
in SIR can perform all necessary logical
deductions. "Q" should be read as a
question mark.
a4. The program responds "SOMETIMES"
to the question, "Is an x a y 1" if it can
deduce, from existing linkages, that y is
a subclass of x.
a5. "~nsufficient Information" is the most
common report of failure. The present
system does not handle deductions from
negative premises, e.g., "Every boy is not
a girl."
bL Absence of an indefinite article indicates
that MAX is an individual aIld, therefore, is an element, rather than subclass,
of IBM-7094.
b2. "THE BOY" requires the existence of a
unique element of the class "BOY". SIR
assigns "G" names to anonymous individuals.
b3. "THE BOY" is assumed to be G02840.
b4. JOHN and G02840 may be different
boys, making "THE BOY" ambiguous.
cL Two words are linked by the attribute
"EQUIV" if they are different names
for the same object. Deduction procedures must allow for possible equivalences.
dL In these cases attributes on the property-list of the name of a set may describe properties of every element of the
set, rather than of the set as a whole.
The hyphens in "PAIR-OF..,RED-SUS-

d2.

eL

flo
f2.
f3.

hI.

h2.

h3.

iL
i2.

i3.

i4.

581

PENDERS" are necessary to avoid confusing the format recognition scheme.
Each question-answering program may
check for certain special cases before attempting standard deduction procedures.
"Specific" information appears on the
property-lists of individuals rather than
of sets. Deduction procedures must use
both geneFal and specific information.
See dl.
See d2.
The system discovers that a NOSTRIL is
part of a PERSON, and then answers
the question, "Is a living-creature a person 1"
In this and future sentences, the system
reports that the sentence form is ambiguous (because "have" may mean
either "have as parts" or "O\vn"), but it
has been able to make a "reasonable"
assumption about the intended meaning
and is proceeding from there. (See description of Figure 4b.) In this case,
"How many" cannot be answered unless
a part-whole relationship can be established first.
"NUMBER" is an attribute which is
placed on sub-property-lists associated
with part-whole relationships.
Here a "NUMBER" attribute is missing
along the chain of links which established the part-whole relationship.
"JUST..." requires adjacency.
In this section new links are created
only if they are consistent with already
"k...Ylo·wn" facts.
A "WHERE" question requests location
information obtainable from direct links
only.
"WHAT IS THE POSITION" requests
the construction of a linear ordering of
objects, as far as available linkage information permits. Inner parentheses in
the order list indicate adjacent objects.
SPECIAL FEATURES

Figure 4 illustrates three special features of
the SIR system.
a) Exception principle: General information
about "all the elements" of a set is con-

582

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
•. 'SET·INClUSlON
.. PART·WHOLE. SPECIFIC
f. PART·WHOLE. GENERAL

2
A NOSTRIL IS A .. ART OF A NOSE)

c. EQUIVALENCE

II UHOERSUrtDJ

11;0280\0 IS A MANt
t I UNDERSTAND'

4

ACitTISPARTOFTHEPOP-ll

1("028400 IS A POP-li

IS A . . . .EY " KE'fPUNCH-OPEilATOA 'II

5

II UNDEtlSUNOI
IS A NOSTRil PAttI Of A PlluFfSSOR

IINSUfflCIeNT UlfORMA1'1UN'

!oI)

IS .It. NOSE: PART Of A NDSE loll

2

b. SET·MEMBERSHIP

INO. PART "fAItS PROPt-R SUBPAltrJ
APERSONISALIYJ..,-CRUTUltEJ

ItIUNDE.ST~J

IS THE NAN " DOPE GJ

:::-.

II"SUFFICIIENT J NFOfU'AT ION I

3

t ••••

IS" SCREEN 'AU OF SA" QI

IS A NOSTRIL 'AtU OF ... LIVING-GREATUtU: QI

EVERY tOFfEE-HDUSE-CUSTDNea IS A IUTNIIO

IS" LlvING-CMUTURE PAllT Of A NOSe·'H
INO • NDSi. IS SOMUIMlES PART Of lIV'MO-CIlEATUAti

2

THE &In" IS lUI N'T-STUDENT'
lG0284Q IS A BOT)
U UND£U, AND I

3

IS THE """ A DOPE In

IS THE BOY " BRIGHT-PUSCIIiII 'II

. . . ltH fiWrII • • 1&02840 "'"11

i. LEFT·TO·RIGHT POSITION

~kl

'HE THfPttCItE IS JUST TO THE RIGHT OF THE
I&02M01S.fELtP~J

IS THE lOY A· BAIGtlJ-I'UStJN 'II

4

'''02841 IS A IOOKI
( l UftOEASJANI))

IWtICH BOY • • 11;021MO .JOHN) I
HIE JELEPH(ftC IS .JUST '0 nlE LEFr OF TKE PADI
1~28U

IS.to PADI

II UNDERSTAND}

IS THf. ""0 ,JUST TO iHE

il.1~T

uF THE aoor.

Itit~

d. OWNERSHIP. GENERAL
IS THE aooK TO THE LEFT Of THE PAD 'II

DOES A PAIR-Of-RED-SUSPENOEas UWII A ".U-Of-RED-SUSPENOEI15 loll

2

UtE PAD 15 TU THE alGHT Of THE TElE'PMDNE'

(NO •• TMET ME TI'I£ 5&.o:a

DOES A OOCTDft 0lIl" .. PA.R-(Jf-UD-SUS'tf'lOERS WI
IIN~~fICIENT

IHE '100 IS 10 fHE LEFT Of fHf TEUPMt.INEJ

.NFOUIIoT.OfiII

2 "HI:: AeOn

SUJ(:IIIfNT 15 "IPOSSIILEI
THE ASH-T .... Y is TO lHE LEFT OfJHf. BOUlt)

1&o2M3 IS A ASH-TRAYI

DOES .. FUlECHIEF

'*t.I

el UtmE.SrANOI

A PAlil-Of-.tED-SUSPE;ND£R5 Q)

THit P(NCll IS TO TH£ LEFT OF THE PADI

:~O=A~~':':'~NCIl.I

e. OWNERSHIP. SPECiRC

rHE PAPfR IS TO THE alGtU OF THE TELEPHONEI

ALfAEO (MIS .. LOG-LOtr-DEc.nUGI

:;O~::.!:~~'PERI

3

WHEAE IS THE PAD Ql

(.lUST TO THE RIQlT OF THE TELEPHONE I
ISOMEwHEilE TO THE
OF THE FOUONING • • ,'ENeILIt

at'"'

DOE$ o\LfAED

ow. A SLIDE-«ULE IiII
IIIH4T 15 'HIF POSITION OF THE PAD OJ

4

EVEA' EllGlNEEAl1lKi-5TUDEfrlT OIIIfiIS A SlIDE-aULE)

:!:"~:::-!='";:L~~ J:,!~ ::~~~SJ
ITO fU"THfM SPECifY Tfit POSITIONS ,"au MUST INDltAfE ,utEIII.£ THE PENCIL IS WIIH RESpteT TO THE ASH-TU't)

WUT IS THE POSITlClril OF THE PAU 01
UHE UfT-To-IIGHT Ul:0E1t I S AS fOLLtiiS I
(PENCIL CASH-TRAY BOOK tELEPHONE PAD) PAPEA.

DOES VEA'" laIN A SLIDE-atA.1: QI

DUES ... ENfi,INEOJNW-STWEMI OWN THE LDf,O-LDG-Dt;ClIMI' QJ
IAlMO 15 A LQG.-LI5-DEt"A"1
(INS~FltIE.I

IIIIfOUATlO'"

"'UST 10 'HE LEfT Of THE PADI

IJUST TD THE R'GHT OF THE aDOKl
(SOMEIllHERE 10 THE LlEFT OF THE fOLLOWING • • IPU'EKIJ

DOES AN EN&INEEUNG-SfUDEN' OWN THE: LDG-LDG-DECITU& 01

Figure 3. Selected Conversations.

A COMPUTER PROGRAM WHICH "UNDERSTANDS"

a. EXCEPTION PRINCIPLE
I....

THERE ARE 5 FINGERS ON EVERY HAND)

II UNDERST AND)

,....

THERE ARE TWO HANDS ON A PERSON)

II UNDERSTAND)

I....

A BOY IS A PERSON)

II UNDERS TANO)
I....

c. STREAMUNING UNKAGES

TOM IS A BDYI
,....

(I UNDERSTAND I

JOHN IS A PERSON I

II UNDERSTAND)
I....

DICI( IS A BOYI
,....

II UNDERSTAND I

.10... IS A TEt_ANI

(I UNOERSJ ANOI

,....

HARRY IS A IJDY)
I....

II UNDERSTAND)

JOHN IS A BOY)

II UNDERSTAIID)
I....

TOM HAS NINE FINGERS)

I THE ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUME IHASI MEANS IHAS AS PARTS))
II UNDERSTAND)

I··..

JOHN I S A STIIOENTI

II UNDERSTAND)

DICK HAS ONE HAND I

JOHN I S A BR I GHT-PERSON I
II UNDERSTAHO)

ITHE ABOVE SENTENC/, IS AMBIGUOUS •• BUT I ASSUME IHAS) MEANS IHAS AS PARTSII
II UNDERSTAND)
EVERY BOY IS A PERSOII)
' ••• 0

HOW MANY FINGERS' DOES TOM HAVE

Q

II UNDERSTAND)

I

UHE ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUME IHAS) MEANS IHAS AS PARTS))
ITHE ANSIiER IS 9)

,....

EVERY TECH-MAN IS A PERSON'

II UNDERSTAND)
,....

HOW MANY fiNGERS DOES DICI( HAVE Q)

IIHE ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUME IHASI MEANS (HAS AS PARTS))
!THE ANSIiER IS 5)

1..·....

HOW MANY FINGERS DOES HARRY HAVE Q)

c.....

I·~E': ABOVE SENTENCE IS AMBIGUOUS •• BUT I ASSUME IHAS) MEANS IHAS AS PARTS))
;fIHE ANSWER IS 10)

,....

I.....

EVERY TECH-MAN ·IS· A STIIOENTI

11 UNDERS TAND)
I....

HOW MAtoIY FINGERS DOES JOE HAVE QI

IIHE ABOVE SENTENCE IS AMB-lGUOUS •• BUT I ASSUME IHASI MEANS IHAS AS PARTS II
(( DON·T KNOW WHETHER fiNGER IS PART OF JOEl

EVERY TEC_AN IS A BRIGHT-PERSON)

II UNDERSTAND!

EVERY IIRIGHT-PERSON IS A PERSON)

II .UNDERSTAND)

I....

EVERY STUDENT IS A BRIGHT-PERSQI!!

II UNDERSTAND)

( ••• =

EYERY STUDENT !S A PERSOM!

II UNDERSTAND)
END OF EVALQUOTE. VALUE IS ••
IND MORE INPUT SENTENCES)

b. RESOLVING AMBIGUITIES
I....

JOHN IS A PERSON)
FUNCflON
STREAMLINE
I JOHN)

II UNDERS TAND)
I....

DICI( IS A PERSOtol)

II
II
II
II
((
II

I~ UNDERSTAND)

i....

A CHAIN IS PART Of ... BICYCLEI

II UNDERSTAND)

I....

/-ORGET
fORGET
FORGET
FORGET
fORGET
FORGET

EVALQUOTE

THE
THE
THE
THE
THE
THE

NIL

THE POIIER-SAW HAS A CHAIN)

JOHN OIiNS A CHAIN)

II UNDERSTAND)

,....

DICK HAS A CHAIN)

ITHE ABOVE SENUNCE IS AM81GUOUS •• BUT I ASSUME IHAS) "EANS 10WIIISli
II UNDERSTANO)

I....

MEMBER-ELEMENTS RELATIONS BETWEEN PERSON AND JOHN!
MEMBER-ELEMENTS RELATIONS BETllffN STUOENT AND JOHN)
MEMBER-ELEMENTS RELATIONS BETIIEEN BRIGHT-PERSON AND JOHN)
SET-INCLUSION RELATION BETIlfEN PERSON ANO TECH-MAN)
SET-'INtLUSION RELATION BETWEEN 8RIGIH-PERSOO -tM!l !!:Cl!-!I£Ml
SET-INCI.USION RELATION BETIlfEN PERSON AND STUDE"ITI

END OF EVALQUOTE, Value .IS ••

IfHE ABOYE SENTENCE IS AMBIGUOUS •• Bur I ASSUME IHAS) MEANS IHAS AS PARTS)!
IG028.0 IS' A POIIER-SAW)
II UNDERSTAND)
c....

HAS BEEN ENTERED. ARGUMENTS ••

THE CUCKOO-CLOCK HAS A CHAINI

ITHf ABOVE SENTENCE IS AMBIGUOUS •• PLEASE RE-PHRASE IT)

Figure 4. Special Features.

583

584

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

sidered to apply to particular elements
only in the absence of more specific information about those elements. Thus,
it is not necessarily contradictory to learn
that "Mammals are land animals"; and,
yet, "A whale is a mammal which always
lives in water." In the program, this idea
is implemented by always referring for
desired information to the property-list of
the individual concerned before looking at
the descriptions of sets to which the individual belongs.
True "understanding" is frequently characterized as an ability to reason appropriately with facts which appear contradictory or par ado x i c a I-an ability
generally considered to be beyond formal
logical procedures. Here, on the other
hand, we see that a simple algorithm used
in conjunction with the SIR model is sufficient to produce reasonable, human-like
conversational behavior in just such a
paradoxical situation.
b) Resolving ambiguities: The criteria used
by the program to decide whether "has"
in the format "x has y" should be interpreted "has as parts" or "owns" are the
following:
Let P be the proposition, "either y is
known to be part of something, or y is an
element of some set whose elements are
known to be parts of something."
Let N be the proposition, Heither y is
known to be owned by something, or 11 is
an element of some set whose elements are
known to be owned by something."
1) If P /\ .-.; N, assume "has" means
Hhas as parts."
2) If .-.; P /\ N, assume "has" means
"owns."
3) If .-.; P /\ .-.; N, give up and ask for
re-phrasing.
Let P' be the proposition,
( u) [[[y is known to be part of u]V[y
[y is an element of some set whose elements are known to be parts of the elements of u]] /\ ( w) [[UewVU cw] /\
[XewVXCW]]] .

Let N' be the proposition,
( u) [[ [y is known to be owned by u] V
[y is an element of some set whose element are known to be owned by the elements of u]] /\ ( w) [[UewVUCW] /\
[XewVXCW]]] .
4) If P' /\ .-.; N', assume Hhas" means
"has as parts."
5) If.-.; P' /\ .-.; N', assume "has" means
"owns."
6) Otherwise, glve up and ask for rephrasing.
These criteria are simple, yet they are
sufficient to enable the program to make
quite reasonable decisions about the intended purpose in various sentences of the
ambiguous word "has". Of course, the
program can be fooled into making mistakes; e.g., in case the sentence, "Dick ha~
a chain", had been presented before the
sentence " John owns a chain", in the
above dialogue. However, a human being
exposed to a new word in a similar situation would make a similar error. The
point here is that it is feasible to automatically resolved ambiguities in sentence
meaning by referring to the descriptions
of the words in the sentence--descriptions which can automatically be created
through proper prior exposure to unambiguous sentences.
c) Streamlining linkages: All questionanswering (model-searching) functions
which involve references to set-inclusion
or set-membership relations must "know"
about the basic properties of those relations; i.e., those functions must have built
into them the ability to apply theorems
like
and
xCy /\ ycz = xcz
aeX /\ xCy = aey;
otherwise, the functions would not be able
to make full use of the usually limited information available in the form of explicit links. On the other hand, since the
functions involved will be "aware" of
these theorems, then the set of questions
which can be answered is independent of
the presence or absence of explicit links

A COMPUTER PROGRAM WHICH "UNDERSTANDS"

which provide the information to the
right of the "=", provided the information to the left of the H =" is available.
The "STREAMLINE" operation starts
with the object x which is its argument,
and considers all objects linked to x, directly or indirectly, through set-inclusion
or set-membership. All explicit links
among these objects which can also be deduced by use of the above-known theorems are deleted. A response of the form
"(I FORGET THE SET-INCLUSION
RELATION BETWEEN y and z)" indicates that whatever links were created
by some sentence of a form similar to
"(EVERY z IS A y)" are being deleted,
and the space they occupied is being made
available for other use.
VI. EXTENSIONS OF SIR
Four major obstacles prevent the immediate
expansion of a SIR-like system into a large,
practical question-answering system: input
language, memory size, search time, and subprogram interaction.
SIR's· input language consists of sentences
which match a number of simple formats. For
convenient use, a more general system should
accept a larger subset of natural English. Various research groups are studying this difficult
problem of translating from English into a
formal language. 5 ,17,18 The research effort described here concentrates, instead, on the representation and retrieval problems which will remain after the input language has been formalized.
The immediate reason for terminating the
current project was the lack of computer
.memory for additional programs and data.
However, at that point problems involving
search time and subprogram interaction had
also become significant. Progress in sol ving
these latter problems is necessary so that we
may be ready to use profitably the larger, better organized memories which will undoubtedly
become available before long.
In SIR, the time required to search for t.he
of particular relational links in the
model increases rapidly with both the number
of individual elements which can be linked and
~istence

585

the number of different relations which can do
the linking. Of course, this exponential growth
of tree structured search space is a familiar
phenomenon in theorem proving, game playing,
and other problem solving areas. General tree
searching heuristics such as partitioning a tree
into non-intersecting branches, searching for a
path simultaneously from two endpoints toward
an unknown common point, and generating intermediate "stepping stones" to use in a long
search, must be further developed for application to the SIR model.
The most basic obstacle to enlarging SIR is
the problem of subprogram interaction. The
present system contains a separate subprogram
for performing each different information retrieval task. This diffuse program structure
was convenient during the early development
of the system because it facilitated modifying
component programs to experiment with different model structures and different search
and deduction schemes. However, each new relation added to such a system may affect the
question answering procedures associated with
those relations already included. Since these
procedures are buried in various subprograms,
the addition of the subprograms associated
with the new relation frequently necessitates
program changes throughout the system. Because of these "interactions," the resulting program becomes more awkward and more difficult
to generalize as its size increases. Future
versions of semantic question answering systems must avoid this increasingly complex program organization. One solution might be based
on a proposed "formalized" question answerer,
outlined below and described in more detail in
reference 14, which increases the question answering power as well as simplifies the program structure of the system.
A FORMALIZED QUESTION ANSWERER

The formalized question answerer consists
of the following components:
1. a formal system whose sentences correspond in a well defined way to "yes or no"
questions; and a theorem-proving program which can determine whether wellformed sentences are "true," i.e., whether
the corresponding questions should be

586

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

answered "yes," on the basis of information in the model.
2. a model similar to the SIR model but containing, in addition to links relating objects, axioms and deduction rules of the
formal system for the use of the theorem
proving program.
3. a programming language for specifying
question-answering procedures which are
more complex than truth-testing.
The formal system has the same structure as
the first order predicate calculus except that
the domain of all quantifiers is the set of objects
described in the model. Since this set is finite,
the system is logically equivalent to the propositional calculus. The basic predicates of the
formal system can be initially just those which
are needed, along with quantifiers and sentential connectives, to express any question which
the SIR system is capable of answering. It
can be shown 14 that only a few basic predicates
are needed to enable the formal system to express a great many questions. Also many interactions between predicates, which created programming difficulties in SIR, are automatically
represented by the structure of the sentences in
the formal system.
The formal system is decideable;· therefore
a program could be written which would answer any well-defined question on the basis of
axioms and facts in the model. However, since
the model might be large, such a program
might be quite slow. On the other hand, a
heuristic program could be written which would
attempt to answer questions only on the basis
of the most relevant data, where "most relevant" is defined in terms of the structure of the
model. Such a program could conceivably be as
efficient as the special purpose question answering subprograms of SIR.
The model in the formalized question answerer is the same as the SIR model except forcontaining an additional class of data. The described objects in this model can be names of
real objects or classes of objects, or names of
basic predicates in the formal system. The
property list of a predicate contains all axioms
or special deductive procedures associated with
that predicate. The theorem proving program
would have to perform in accordance with this

data in the model. Thus lhe user could "tell"
the system how to change its question answering procedures, whenever such changes were
desired, simply by changing the content of the
model.
A theorem proving program can only answer "yes or no" questions. However, some of
the questions which SIR can answer require the
system to perform more elaborate information
retrieval tasks. The power of a general purpose
symbol manipulation computer language such
as LISP 15 must be available for specifying
these computational procedures since new question types may require, in the answering process, unanticipated kinds of data manipulation.
However, these procedures should be made as
easy to write and to understand as possible. In
particular, the full power of the theorem proving program should be available within the procedure specification language.
For example, suppose the theorem prover is
represented by the LISP function "theorem
[x] ," whose value is TRUE if x is a sentence
in the formal system corresponding to a question whose answer is "yes," and FALSE otherwise. Then suppose that in the course of the
procedure for answering the question, "what is
the relative position of x?" it is determined
that y is to the right of x and also that a z is to
the right of x. The procedure could then contain the statement,
if
theorem [( a) [aeZ !\right[a ;x] !\right[y ;a]]]
then go[A] else go[B]
where
A and B are appropriate further instructions
in the procedure. The procedure writer need
not consider how to answer the question, "is a
z between x and y?" for the theorem function,
i.e., the theorem proving program, will do that
for him.
Space does not permit a more detailed description of the proposed formalized question
answerer. However, it should now be clear that
such a system has all the question answering
ability of SIR and accepts a much larger class
of questions. More important, new relations
can be added to the formalized system and the
axioms of its proof procedure can be modified
without any significant reprogramming, thus
overcoming the "subprogram interaction" obstacle to the expansion of SIR.

A COMPUTER PROGRAM WHICH "UNDERSTANDS"

VII. CONCLUSIONS
THE MODEL

The power of SIR's question answering subprograms is due primarily to the flexible property-list structure of the model.
SIR is not unique in permitting facts to be
automatically added to or excised from the
system. Several existing computer systems,
e.g., airline reservation systems, permit dynamic fact storage and retrieval. However, the
existing systems generally depend upon the use
of a fixed, unique representation for the information involved. A response generally is determined by the explicit presence of absence
of a particular item of data.
In SIR, on the other hand, although the
model is general enough to contain a wide class
of data, it is organized so that subprograms
may search it for any facts from which an appropriate answer may be deduced. Because of
the way the deduction subprograms use the
model, a fact may be represented in many different equally effective ways. E.g., the system
"knows" that the statement, "a finger is part of
John" is true if (a) there is an explicit partwhole link from FINGER to JOHN; or if (b)
there are links by means of which the retrieval
programs can deduce that a finger is part of a
person, and John is a person; or if (c) there are
links by means of which the retrieval programs
can deduce that a finger is part of a hand, and
a hand is part of John; etc. Thus the use of
this model facilitates question answering even
in the absence of complete, explicit data. In
addition, the system can automatically translate from one representation to another having
some advantages. E.g., the "streamline" operation described in Section V reduces storage
space requirements by removing redundancy in
the representation, without necessitating any
changes in the operation of the system.
VALUE OF PROGRAM MING

-."'S.: .

Many of the results and conclusions written
after the development of a large computer program such as SIR frequently appear as if they
could have been established without the tedious
effort of programming. This is rarely true, and
in fact, new systems which are described as
complete "except for the programming" usually

587

require fundamental modifications if and when
they are translated into operating programs.
The reasons for the importance of actually
writing the program include the following:
(a) Without a program it is difficult to tell
whether the specifications for a system
are really complete and consistent. The
process of building an operating system
makes one aware of major problems
which might otherwise remain unnoticed.
(b) Programming not only turns up fallacies
in the specifications for a system, but
also usually suggests ways for avoiding
them and improving the system. A completed "debugged" programmed system
usually turns out to be a compromise
between the system as it was originally
specified, a simpler system which was
more feasible to actually construct, and
a more elaborate system whose new features were thought of during programming. This resulting system is frequently as useful as and certainly more
reliable than the originally specified system, and in addition it may suggest the
design of even more advanced systems.
\Vith SIR, for example, methods for implementing the "exception principle"
and the resolution of ambiguities arose
from the design of the basic question
answerer, and the specifications for the
formalized system of Section VI were
based largely on properties of the final,
working SIR system.
( c) The programming process frequently
turns up insights which might not otherwise be discovered.
(d) Finally, the resulting program provides
at the same time a demonstration of the
feasibility of the ideas upon which it is
based, a measure of the practicality of
the system in terms of time and space
requirements, and an experimental device for testing variations in the original
specifications.
NEXT STEPS

The present SIR system, and its formalized
version discussed in Section VI, are proposed
as first steps toward a true "understanding"
machine. Further steps will involve developing

588

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

better means by which a computer system can
add to its store of "knowledge" and can "in_
telligently" select relevant data from that store
to use in particular problem solving tasks.
These goals are embodied in the "advice taker"
problem/9 which is that of designing a machine
whose operation is controlled by "advising" it,
in a suitable English-like language, of desired
procedures or results.
One type of "advice taker" is a program
which can do any of a particular class of problems, such as writing other computer programs,
in accordance with simple instructions. Simon 20
is working on such a program-writing program
which accepts a broad range of descriptive
English sentences as its input.
SIR represents a different approach. Instead
of developing various special purpose advice
takers, we attempt to build a single, general
program which can do any task provided that
program is properly controlled by information
in its model. "Giving advice" then requires only
the process of inserting control information
into the model. In a sense, this program is
simply an interpreter of information provided
in the easily changeable model.
The SIR model provides its programs with
information about the truth of particular relations between specific objects. The model in the
formalized system of Section VI also provides
the "theorem proving program" with axioms
which describe properties of relations and interactions between relations. A next generalization would involve adding to the model information which specifies and controls theorem
proving and model searching procedures for
the program.
Ultimately the "intelligent" machine will
have to be able to abstract from the information in its model, "realize" the necessity for
additional action, and create the necessary instructions for itself. The design of such an
"artificial intelligence" awaits the development
of automatic concept formation and inductive
inference systems as well as the generalizations of SIR described above.
REFERENCES
1. GREEN, B. F., Jr., et al., "Baseball: an
automatic question answerer," in reference
21.

2. PHILLIPS, A. V., "A question-answering
routine," Master's Thesis, Mathematics Department, MIT, Cambridge, Mass., 1960.
3. SIMMONS, R. F., et al., "Toward the synthesis of human language behavior," SP466, Systems Development Corp., Santa
Monica, California.
4. LINDSAY, R. K., "Inferential memory as
the basis of machines which understand
natural language," in reference 21.
5. DARLINGTON, J., "Translating ordinary
language into symbolic logic," Memo
MAC-M-149, Project MAC, MIT, Cambridge, Mass., 1964.
6. BENNETT, J. L., "A Computer program for
word relations," Memo 1961-1, Mechanical
Translation Group, MIT, Cambridge,
Mass., 1961.
7. BOBROW, D. G., "Natural language input
for a computer problem solving system,"
Ph.D. Thesis, Mathematics Department,
MIT, Cambridge, Mass., 1964.
8. CARNAP, R., Meaning and Necessity (U. of
Chi. Press, Chicago, IlL, 1947).
9. QUILLIAN, R., "A revised design for an
understanding mac h i n e," Mechanical
Translation, Vol. 7, No.1 (1962).
10. QUINE, W., Word and Object (MIT Press,
Cambridge, Mass., 1960).
11. REICHENBACH, H., Elements of Symbolic
Logic (The Macmillan Co., New York,
1947) .
12. SOMMERS, F. T., "Semantic structures and
automatic clarification of linguistic ambiguity," International Electric Corp.,
Paramus, N. J., 1961.
13. WALPOLE, H. R., Semantics: The Nature of
Words and Their Meanings (W. W. Norton
and Co., New York, 1941).
14. RAPHAEL, B., "SIR: a computer program
for semantic information retrieval," Ph.D.
Thesis, Mathematics Department, MIT,
Cambridge, Mass., 1964.
15. MCCARTHY, J., et al., LISP 1.5 Programmers Manual (MIT Press, Cambridge,
Mass., 1963).

A COMPUTER PROGRAM WHICH "UNDERSTANDS"

16. BOBROW, D. G., and B. RAPHAEL, "A comparison of list-processing computer languages," Comm. ACM, Vol. 7, No. 4
(1964) .
17. COHEN, D., "Picture processing in a picture language machine," Report 7885, National Bureau of Standards, Washington,
D. C., 1962.
18. ACF Industries, A vion Div., "Translating
from ordinary discourse into formal logic
-a preliminary study," Scientific Report
AF CRC-TN-56--770.

589

19. MCCARTHY, J., "Programs with common
sense," in Proc. Symposium on M echanization of Thought Processes, Nat ion a I
Physics Laboratory, Teddington, England,
Her Majesty's Stationery Office, London,
1959.
20. SIMON, H. A., "Experiments with a heuristic compiler," Paper P-2349, RAND Corp.,
Santa Monica, California, 1961.
21. FEIGENBAUM, E. A., and J. FELDMAN, Computers and Thought (McGraw-Hill, New
York, 1963) .

A QUESTION -ANSWERING SYSTEM FOR HIGH
SCHOOL ALGEBRA WORD PROBLEMS*
Daniel G. Bobrow
Massachusetts Institute of Technology, Cambridge, Massachusetts
I.

INTRODUCTION

If needed, STUDENT has access to a store of
"global" information not specific to anyone
problem, and can retrieve relevant facts and
equations from this store of information. For
example, when solving the problem:

The aim of the research reported here was
to discover methods for building computer programs which can understand and communicate
with people in a non-trivial subset of English.
A computer program understands a subset of
English if it accepts input sentences which are
members of this subset, and answers questions
based on information contained in the input.
We describe in this paper a semantic theory of
discourse, and utiiize a first approximation to
the analytical portion of this theory in the
STUDENT question-answering system, a program which understands a subset of English in
the sense defined above.

"If 1 span equals 9 inches, and 1 fathom
equals 6 feet, how many spans equals 1
fathom ?"
STUDENT retrieves and uses the fact that 1
foot equals 12 inches, and prints the answer:
"1 fathom is 8 spans."
STUDENT is embedded in the M.LT. Project
MAC time-sharing system·3 • Therefore, as a
last resort, when it can not solve a problem,
STUDENT requests and can obtain immediate
help from the questioner.

The STUDENT system, programmed in
METEOR 1 and LISP 2, accepts as input high
school algebra word problems expressed within
a restricted but comfortable subset of English.
For example, STUDENT will accept the following problem statement:

A number of other English language question-answering systems have been constructed;
the most closely related work was that of
Green 4, Lindsay 5, and Raphael 6. A critical
analysis of this related work and criteria fQr
evaluating a question-answering system may be
found in the author's thesis *. Simmons 7 gives
a descriptive survey of systems which answer
English questions.

"The price of a radio is $69.70. If this price
is 15 percent less than the marked price, find
the marked price. :
After some computation STUDENT will respond:
"The marked price is 82 dollars."

* The work reported here was supported in part by the M.LT. Computation Center, in part by the M.LT.
Research Laboratory of Electronics, and in part by Project MAC, an M.LT. research program sponsored by
the Advanced Research Projects Agency, Department of Defense, under ONR Contract Number Nonr* We shall not mention it again, but the reader who wants more extensive background material or a more detailed
exposition of ideas given throughout this paper should refer to the thesis.
591

592

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

There are a number of reasons why I chose
the context of algebra story problems in which
to embed an English language question-answering system. First, we know a good type of data
structure in which to store information needed
to answer questions in this context, namely,
algebraic equations. There exist well known
algorithms for deducing information implicit in
the equations, that is, values for particular
variables which satisfy the set of equations.

speaker must first encode it in a message, as a
string in the transmission language. In order
to understand this message, a listener must decode it and extract its meaning. The coding of
a particular message, M, is a function of both
its global context and local context. The global
context of a message is the background knowledge of the speaker and the listener, including
some knowledge of possible universes of discourse, and codings for some simple ideas.

In addition, I felt that there was a manageable subset of English in which many types of
algebra story problems were expressible. A
large number of these story problems are available in first year high school text books, and I
have transcribed some of them into STUDENT's input English. Since this questionanswering task is one performed by humans,
and since the entire process from input to solution of the equations was programmed, we can
obtain a measure of comparison between the
performance of STUDENT and of a human on
the same problems. In fact, this program on an
IBM 7094, answers most questions that it can
handle as fast as or faster than humans trying
the same problem. In judging this comparison,
one should remember the base speed of the
IBM 7094, which can perform over one hundred thousand additions per second.

The local context of a message, M, is the set
of messages temporally adjacent to M. M may
refer back to earlier messages. M may even be
just a modification of a previous message, and
only understandable in this context. For example, consider the second sentence of the following discourse: "How many chaplains are in
the U.S. Army? How many are in the Navy?"

II. SEMANTIC GENERATION AND ANALYSIS OF DISCOURSE
The purpose of this section is to put the techniques of analysis embedded in the STUDENT
program into a wider context, and indicate how
they would fit into a more general language
processing system. .We will describe a theory
of semantic generation and analysis of discourse. STUDENT can then be considered a
first approximation to a computer implementation of the analytic portion of the theory, with
certain restrictions on the interpretation of a
discourse to be analyzed. It will be evident f:rom
the theory why analysis is so greatly simplified
by the imposed restrictions.

A. Language as Communication
Language is an encoding used for communication between a speaker and a listener ( or
writer and reader). To transmit an "idea", the

In order for communication to take place, the
information map of both the listener and the
speaker must be approximately the same, at
least for the universe of discourse; also the decoding process of the listener must be an approximate inverse of the encoding process of
the speaker. Education in language is, in large
part, an attempt to force the language processors .of different people into a uniform mold to
facilitate successful communication. Weare not
proposing that identity in detail is achieved,
but as Quine 9 put it :
"Different persons growing up in the same
language are like different bushes trimmed
and trained to take the shape of identical elephants. The anatomical details of twigs and
branches will fulfill the elephantine form
differently from bush to bush, but the overall outward results are alike."
As a speaker transmits successive messages
concerning some portion of his information
map, the listener who understands the messages
constructs a model of a "situation". The relation between the listener's model and the speaker's information map is that from each can be
extracted the transmitted information relevant
to the universe of discourse, ~ncluding information deducible from the entire set of messages.
The internal structure of the listener's model
need bear no resemblance to that of the speaker,
and may in· general contain far less detail.

HIGH SCHOOL ALGEBRA WORD PROGRAMS

B. Definition of Coherent Discourse
The theory of language generation and analysis which we shall describe below is designed
to handle what we call coherent discourse. A
discourse is a sequence of sentences, and the
meaning of a discourse for a listener is the
model of a situation he derives from this discourse. Determination of the meaning of each
sentence of the discourse may sometimes involve knowledge of the meanings of other sentences of the discourse. A discourse is coherent if it has a complete and consistent interpretation within the model of the situation
being built by the listener. A listener understands the discourse if his model of the situation is isomorphic to the speaker's model.
A listener's ability to build a model of a situation from a discourse is dependent on information available to him from his general store
of knowledge. Therefore it is quite possible
for a discourse to seem coherent to one listener
and not another. A writer, reading his own
writing, may feel that he has generated a coherent sequence of sentences, which, in fact,
is incoherent to all other readers. This is, unfortunately, not a rare occurrence in the scientific literature. Conversely, a listener who is a
psychiatrist, for example, may find coherence
in a sequence of remarks which a patient thinks
are entirely unrelated.
The STUDENT system utilizes an expandable store of general knowledge to build a model
of a situation described in a member of a limited class of discourses. The form of the model
of a situation built by STUDENT will be discussed in detail below.
C. The Use of Kernel Sentences in Our Theory

A basic postulate of our theory of language
analysis is that a listener understands a discourse by transforming it into an equivalent (in
meaning) sequence of simpler kernel sentences.
A kernel sentence is one which the listener can
understand directly; that is, one for which he
knows a transformation into his information
store. Conversely, a speaker generates a set of
kernel sentences from his information map, and
utilizes a sequence of transformations on this
set to yield his spoken discourse. This set of
kernel sentences is not invari~nt from person

593

to person, and even varies for a single individual as he learns.
Although we are not proposing our theory as
a basis for a psychological model, it has been
useful, to avoid circumlocutions, to describe the
theory in terms of the properties and actions of
a hypothetical speaker and listener. All statements about speakers and listeners should be
interpreted as referring to computer programs
which respectively, generate and analyze coherent discourse.
D. Generation of Coherent Discourse
1) The Speaker's Model of the World. We
assume that a speaker has some model of the
world in his information store. We shall not be
concerned here with how this model was built,
or its exact form. Different forms for the
model will be useful for different language
tasks, but they must all have the properties described below.

The basic components of the model are a set
of objects, rOd, a set of functions {Fin}, a set
of relations {Rin}, a set of propositions {Pd,
and a set of semantic deductive rules. A function Fin is a mapping from ordered sets of n
objects, called the arguments of Fin, into the
{Ode The mapping may be multivalued and
is defined only if the arguments satisfy a set of
conditions associated with Fin. A condition is
essentially membership in a class of objects,
but is defined more precisely below. A relation
Rin is a special type of object in the model, and
consists of a label (a unique identifier), and an
ordered set of n conditions, called the argument
conditions for the relation. Functions of relations are again relations.
An elementary proposition Pi consists of a
label associated with some relation, Rin, and an
ordered set of n objects satisfying the argument conditions for this relation. One may
think of these propositions as the beliefs of a
speaker about what relationships between objects he has noticed are true in the world.
Complex propositions are logical combinations
(in the usual sense) of elementary propositions.
The semantic deductive rules give procedures
for adding new propositions to the model based
on the propositions now in the model. In addi-

594

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

tion to the ordinary rules of logic, these rules
include axioms about the relationships of the
relations in the model. The semantic deductive
rules also include links to the senses of the
speaker. For example, one such deductive rule
for adding a proposition to the model might be
(loosely speaking) "Look in the real world and
see if it is true." These rules essentially determine how the model is to be expanded, and are
the most complex part of a complete system.
However, from our present point of view, we
need only consider these rules as a black box
which can extend the set of propositions in the
model.
A closed question is a relational lable for
some Rill and an ordered set of n objects. The
answer to this question is affirmative if the
proposition, consisting of this label and the n
objects, is in the model (or can be added to it
according to the semantic deductive rules). If
the negation of this proposition is in the model
(or can be added), the answer is negative.
Otherwise the answer is undefined.
An open question consists of a relational label
for an n-argument relation, Ri ll, and a set of
objects ~orresponding to n-k of these arguments, where n~k~1. An answer to an open
question is an ordered set of k objects, such
that if these objects are associated with the k
unspecified arguments of Rill, the resulting
proposition is in the model, or can be added to
it. An open question may have no answers, or
may have one or more answers. A condition is
an open question with k=l, and an object
satisfies a condition if it is an answer to the
question.

2) Generation of Kernel Sentences. We have
described the logical properties of the speaker's
model of the world. We shall now consider how
strings in a language, words, phrases, and sentences, are associated with the model. Corresponding to the set of objects {Od there is a
set {N ij } of strings (in English in our case),
called the names of the objects. There is a
many-one mapping from {Nid onto {Od. It
is many-one because one object may have more
than one name, e.g. frankfurter and hot dog
both map back into the same object in the
model.
Recall that functions map n-tuples of objects
into objects. Thus a function name and an n-

tuple can specify an object. We can derive a
name for this object from the function name
and the names of its n arguments. Associated
with each function is at least one linguistic
form, a string of words with blanks in which
names of arguments of the function must be
inserted. Examples of linguistic forms associ",
ated with a model are "number of
"father of
", and "the child of _ __
and
". There is a many-one mapping
from the set of linguistic forms {Lijll} cnto the
set or runctions. Two examples oi multiple
linguistic forms for the same function are:
"father of
" and "
's father";
and"
plus
" and "the sum of
_ _ _ and
". Thus, if objects x and y
ha ve names "the first number" and "the second
number" and associated with the function "*,,
is the linguistic form "the product of _ __
and
", then the name of the object produced by applying the function "*,, to x and y is
"the product of the first number and the second
number". A parsing of a name must decompose it into the part which is the linguistic
form, and the parts which are names of arguments of the corresponding function. We shall
call objects defined in terms of a function and
an n-tuple of objects a functionally defined
object, and those which are not functionally
defined we shall call simple objects. Simple obj ects have simple names and functionally defined objects have composite names.
In addition to linguistic forms associated
with functions, there are linguistic forms associated with relations. For an n argument relation there are n blanks in the linguistic form.
Examples of relational linguistic forms are:
"
equals
", "
gave - - to
" and "
speaks". These linguistic forms, corresponding to the relations
in the model, serve as frames for the kernel
sentences.
In a manner similar to the way composite
names are built, a kernel sentence corresponding to an elementary proposition is constructed
by inserting names corresponding to each argument in the appropriate blank. Names may be
simple or composite. An example of a kernel
sentence for a proposition built from such a relational linguistic form is "John's father gave
.3 times the salary of Bill to Jack." which con-

HIGH SCHOOL ALGEBRA WORD PROGRAMS

tains the simple names "John", ".3", "bill",
and "Jack". It contains the functional linguis's father", "
times
tic forms "
_ _ _" and "salary of
" and the relagave to
"
tional linguistic form "
A kernel sentence corresponding to a complex proposition is constructed recursively
from the kernel sentences corresponding to its
elementary propositional constituents by placing them in the corresponding places in the
linguistic forms "
and
", " _ __
or _ _ _", "not _ _ _ " etc.
The kernel sentence corresponding to a closed
question is constructed from the kernel of the
corresponding proposition by placing it in the
linguistic form "It is true that
?" For
an open question, dummy objects are placed in
the open argument positions to complete a propositional form. These dummy arguments have
names "who", "what", "where", etc., and which
dummy objects are used depends on the condition on that argument position. A question
mark is placed at the end of the kernel sentence
constructed in the usual way from the relational
linguistic form and the names of the arguments.
In generating a coherent discourse, a speaker
chooses a number of propositions in his model
and/ or some open or closed questions. He then
uses linguistic information associated with the
model to construct the set of kernel sentences
corresponding to this set of chosen propositions. In the next section we will discuss how
he generates his discourse from this set of
kernels.
3) Transfor1r~tions on Kernel Sentences.
The set of kernel sentences is the base of the
coherent discourse. The meaning of a kernel
sentence is the proposition into which it maps,
and similarly, the meaning of any name is the
object which is its image under the mapping.
To this set of kernels we apply a sequence of
meaning preserving transformations to get tlie
final discourse. We use the word "transformation" in its broad general sense, not in the narrow technical sense defined by Chomsky.lO

There two distinct types of transformations,
structural and definitional. A structural or syntactic transformation is only dependent on the
structure of the kernel string(s) on which it

595

operates. For example, one syntactic transformation takes a kernel in the active voice to one
in the passive voice. Another combines two
sentences into a single complex coordinate sentence.
One large class of syntactic transformations
is used to substitue pronominal phrases for
names. Pronominal phrases may be ordinary
pronouns such as "he", "she", or "it". They
may be referential phrases such as "the latter",
"the former" or "this quantity". They may also
be truncations of a full name such as "the distance" for "the distance between New York
and Los Angeles". In cases where such pronominal reference is made, the coherence of the
final discourse is dependent on the order in
which the resultant strings appear.
The second type of transformation is definitional. It involves substitutions of linguistic
strings and forms for ones appearing in the
kernel sentences. For example, for any appearance of "2 times" we may substitute "twice",
and for ".5 times" substitute "one half of". In
addition to this string substitution, some transformations perform form substitution and rearrangement. For example, for a kernel sentence of the form "x is y more than z", where
x, y, and z are any names, one definitional
transformation can substitute "x exceeds z by
y".

Some transformations are optional, and some
may be mandatory if certain forms are present
in the kernel set. Certain transformations are
used by a speaker for stylistic purposes, for example, to emphasize certain objects; other syntactic transformations, such as those vvhich perform pronominal substitutions, are used because they decrease the depth of a construction,
in the sense defined by Yngve.ll
Let us review the steps in the generation of
a coherent discourse. The speaker chooses a
set of propositions, the "ideas" he wishes to
transmit. He then encodes them as language
strings called kernel sentences in the manner
described above. He then chooses a sequence of
structural and definitional transformations
which are defined on this set of kernels or on
the ordered set of sentences which result from
applications of the first transformations. The
resulting sequence of sentences will be a co-

a96

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

herent discourse to a listener if he knows all
the definitional transformations applied. In
addition, every pair of distinct names which
the speaker maps back into the same object,
the listener must also map into a single object.
E., Analysis of Coherent Discourse

Generation of coherent discourse consists of
two distinguishable steps. From propositions
in the speaker's model of the world, he generates an ordered set of kernel sentences. He
.... krt.'I"\

lI.l.lVu.

n'V'\"I"\.l~An
app.l.lV';:)

n

a

C"fAr"I'1I'A"I""IInn.

,;:)v\::\.uvu.\..-v

A.~

V~

+".n'l"\n~.n.".,....,.."n+': _ _ ~

lI~au.';:)~Vl.l.u.alll.Vu.i::I

+_

lIV

this kernel set. The resulting discourse is a
coded message which is to be analyzed and decoded by a listener. The listener's problem can
be loosely characterized as an attempt to answer the question, "What would I have meant
if I said that?"
To analyze a discourse the listener must find
the set of kernel sentences from which it was
generated; one way to do this is to find a set
of inverse transformations which when applied
to the input discourse yield a sequence of kernel
sentences. The listener must then transform
these kernel sentences to an appropriate representation in his information store. The appropriateness of a representation is a function of
what later use the listener expects to make of
the information contained in the discourse. The
listener may simultaneously transform a given
kernel sentence into a number of different representations in his information store. On a level
of pragmatic analysis, statements require only
storage of information. Questions and imperatives require appropriate responses from the
listener. The difficulties in analysis dichotomize into those associated with finding the
kernel sentences which are the base of the discourse, and those associated with transforming
the kernel sentences into representations in the
information store.
STUDENT'S analytical program utilizes a
set of inverse analytic transformations. If T i
is a transformation that may be used in generating a discourse, and Ti (S) == S, where S
and S are sets of sentences, then the analytic
transformation T i -1 is the inverse of T i if and
only if T i -1 (S) == S. The choice of which inverse transformations to apply and the order
of their application may be restricted by utiliz-

ing heuristics concerned with features of the
input.
Once the base set of kernel sentences for a
given discourse is determined, there remains
the problem of entering representations of
these sentences in the listener's information
store. The major problem in accomplishing this
step involves the separation of those words
which are part of linguistic forms for relations,
and those which are part of a name. This is
difficult because the same word (lexicographic
symbol) may have multiple uses in a language.
Having separated the relational form from the
names which represent the arguments of this
relation, one can then analyze the name in
terms of components which are functional linguistic forms and others which are simple
names. From this parsing in terms of relational linguistic forms, functional linguistic
forms and simple names, the discourse can be
transformed into a canonical representation in
the information store of the listener.
F. Limited Deductive Models
A complete understanding of a discourse by
a listener would imply that the representation
of the discourse in his information store is essentially isomorphic to the speaker's model of
the world, at least for the universe of discourse.
The listener's representation must preserve all
information implicit in the discourse.
If the listener is only interested in certain
aspects of the discourse, he need only preserve
information relevant to his interest, and discard the rest. Within his area of interest the
listener's model is isomorphic to the speaker's
model in the sense that all relevant deductions
which can be made by the speaker on the basis
of the discourse can also be made by the listener. Outside this area of interest, the listener
will be unable to answer any questions. We
call such restricted information stores limited
deductive models.
The question-answering programs of Lindsay
and Raphael, and the STUDENT system, all
utilize limited deductive models. For the area
of interest in each of these programs there is
a "natural" representation for the information
in the allowable input. These representations
are natural in that they facilitate the deduction
of implicit information. For example, Lindsay's

HIGH SCHOOL ALGEBRA WORD PROGRAMS

family tree representation makes it easy to
compute the relationship of any two individuals
in the tree, independent of the number of sentences necessary to build the tree.
Because the number of relations and functions expressible in the models in all three systems is very limited, there is a corresponding
limitation on the number of linguistic forms
that may appear in the input. This greatly
simplifies the parsing problem by restricting
alternatives for forms in the input text.
G. The STUDENT Deductive Model
The STUDENT system is an implementation
of the analytic portion of our theory. STUDENT performs certain inverse transformations to obtain a set of kernel sentences and
then transforms these kernel sentences to expressions in a limited deductive model. Utilizing the power of this deductive model, within
its limited domain of understanding, it is able
to answer questions based on information implicit in the input information.

The analytic and transformational techniques
utilized in STUDENT are described in detail
in the next section. We shall describe here the
canonical representation of objects, relations,
and functions within the model. STUDENT is
restricted to answering questions framed in the
context of algebra story problems. Algebraic
equations are a natural representation for information in the input.
The objects in the model are numbers, or
numbers with an associated dimension. The
only relation in the model is equality, and the
only functions represented directly in the model
are the arithmetic operations of addition, negation, multiplication, division and exponentiation. Other functions are defined in terms of
these basic functions, by composition, and/or
substitution of constants for arguments of these
functions. For example, the operation of squaring is defined as exponentiation with "2" as
the second argument of the exponential function; subtraction is a composition of addition
and negation.
Within the computer, a parenthesized prefix
notation is used for a standard representation
of the equations implicit in the English input.
The arithmetic operation to .be expressed is

597

made the first element of a list, and the arguments of the function are succeeding list elements. The exact notation is given in Figure 1.
In the figure, A, B, and C are any representations of objects in the model, either composite
or simple names. The usual infix notation for
these functional expressions is given for comparison. Because this is a fully parenthesized
notation, no ambiguity of operational order
arises, as it does, for example, for the un parenthesized infix notation expression A *B+C, or
its corresponding natural language expression
"A times B plus C". Note also that in this
prefix notation plus and times are not strictly
binary operators. Indeed, in the model they
may have any finite number of arguments, e.g.
(TIMES ABC D) is a legitimate expression
in the STUDENT model.
Representations of objects in the STUDENT
deductive model are taken from the input. Any
strings of words not containing a linguistic
form associated with an arithmetic function
expressible in the model are considered simple
names for objects. Thus, "the age of the child
of John and Jane" is considered a simple name
because it contains no functional linguistic
forms associated with functions represented in
ClmTTT'l.T.'111.Tm,_

l! __ !L_..l

..l_..l ___ L! _ _ _ _ _ ..l_1

T__

.,;:) .L U lJ.c..l'l .L IS

111IllLeU

ueUUClil ve

~u

lIluuel.

(;l.

more general model it would be considered a
composite name, and the functional forms "age
of
" and "child of
and
"
would be mapped into their corresponding
functions in the model.

Figure 1: Notation Within the STUDENT
Deductive Model
Operation
Equality
Addition
Negation
Subtraction

Infix
Notation
A=B
A+B
A+B+C
-A
A-B

Multiplication A*B
A*B*C
Division
A/B
Exponentiation AB

Prefix Notation
(EQUALAB)
(PLUS A B)
(PLUS AB C)
(MINUS A)
(PLUS A
(MINUS B»
(TIMES A B)
(TIMESAB C)
(QUOTIENT A B)
(EXPT AB)

Figure 1. Flow Chart of the Student Program

598

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Because such complex strings are considered
simple names in the model, and objects are distinguished only by their names, it is important
to determine when two distinct names actually
refer to the same object. In fact, answers to
questions in the STUDENT system are statements of the identity of the object referenced
by two names. However, one of the names (the
desired one) must satisfy a certain lexical condition. Most often this condition is just that
the name be a numeral. For a more general
model this restriction could be stated as re~
quiring a simple name corresponding to some
functionally defined name-because, for ex" would be a funcample, "number of
tional linguistic form in the general model, and
the only simple name for such an object would
be the numeral corresponding to this number.
An answer consists of a statement of identity
e.g. "The number of customers Tom gets is
162."
The other lexical restriction on answers
sometimes used in the STUDENT system is insistence that a certain unit (corresponding to
a dimension associated with a number) appear
in the desired answer. For example, spans is
the unit specified by the question "How many
spans equals 1 fathom ?", and the answer given
by STUDENT is "1 fathom is 8 spans."
The deductive model described here is useful
for answering questions because we know how
to extract implicit information from expressions in this model. More explicity, we know
how to solve sets of algebraic equations to find
numerical values which satisfy these equations.

III. Transformation of English to the
STUDENT Deductive Model
Our question-answering system contains two
main programs which process English input.
One is a program called STUDENT which accepts the statement of an algebra story problem and attempts to find the solution to the
particular problem. STUDENT does not store
any information, nor "remember" any thing
from problem to problem. The information obtained by STUDENT is the local context of the
question.
The other program is called REMEMBER
and it processes and stores facts not specific
to anyone problem. These facts make up STU-

DENT's store of "global information" as opposed to the "local information" contained in
the statement of anyone problem. This information is accepted in a subset of English
which overlaps but is different from the subset
of English accepted by STUDENT. REMEMBER accepts statements in certain fixed formats, and for each format the information is
stored in a way that makes it convenient for
retrieval and use within the STUDENT program. The following examples indicate some
"'-/! +"h .... nnn,-,. ...... +n hL" -/!A"II''I'Vl",t-", -fA"II' ",lAh", 1 ;,.,-fA1"1'YI!l_
V.L

...,.ll.'C

Q,.vvCPlia"U.1v

~V..1..L.L.I."\lO

.LV~

6.LV1 0 is
generated, add the resolvent to the i-list,
set j = i, and return to 1; if the empty
resolvent is generated, execute the proof
recovery. (The generation of the empty
resolvent is equivalent to finding that the
clauses C and D are manifestly contradictory.)
In order to avoid the possibility of being
caught in an infinite loop, there is a constraint
placed on step 3. The constraint is formulated
in terms of the concept of the level of a clause.
Let So be the original set of clauses; define Si
for i > 0 to be the set of resolvents of Si - 1
together with Si _ 1. The level k of a clause C
is 0 if C is input, is that of B if C is obtained
by factoring B, and is 1 greater than the maximum of the levels of A and B· if C is obtained
by resolving A and B. The constraint imposed
on 3 is: if the resolvent of C and D is a nonunit whose level is a specified bound ko, or a
unit whose level exceeds ko, then it is not added
to the corresponding list, and the pair is treated
as if no resolvent were generated. To illustrate
the difficulty thus avoided consider the set consisting of the clauses P (a), - P (x) v P (f (x»,
which correspond to a subset of the Peano

618

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

axioms, and some clause of length 3. Without
the level bound, the program would generate
P(f(a», P(f(f(a»), P(f(f(f(a»», ... , ad
infinitum. We would be caught in an infinite
loop which would continually present and execute the task of resolving a new unit with the
same 2-clause instead of either passing to the
proof recovery or to the non-unit section.
The non-unit section beings by setting j = 2,
then:
1. Search the j-list for a clause D with lit-

2.

3.

4.
5.

6.

7.

erals 1 and m on which factoring has not
been attempted; if one exists, execute 2;
if not, execute 3.
Factor D on 1 and m; if no factor is
generated, return to 1; if a factor C of
length i is generated, add C to the i-list,
set j = i, and return to step 1 of the unit
section.
If j = 2, increase j by 1 and return to
step 1 of the non-unit section; if j =1= 2,
execute 4.
Set h = 2, replace j by j-l, and execute 5.
Search the h-list and the j-list for a pair
C and D such that C is an h-clause with
a literal 1, D is a j-clause with a literal m,
and resolution has not been attempted for
C and D on 1 and m; if no such pair exists, execute 6; if such a pair exists, execute 7.
If h > the maximum length of all clauses
present, the program stops with the conclusion that no proof exists within level
k o; if h < this maximum and h + 1 ~ j,
replace j by h + j and return to 1 of the
non-unit section; if h + 1 < j, replace h
by h + 1 and j by j - 1 and return to 5.
Resolve C and D on 1 and m; if no resolvent is generated, return to 5; if a resolvent B of length i is generated, then add
B to the i-list, set j = i, and return to 1
of the unit section. Again the level constraint imposed on Step 3 of the unit section applies.

Soundness and Completeness
The soundness of the procedure follows from
the fact that if C is in Si or a factor of some
D in Si for any i, C is implied by So, i.e., C is a
consequence of So. So, if C and D are elements

of the unit list which conflict (are manifestly
contradictory), 8.0 is inconsistent.
The argument for completeness is as follows:
J. A. Robinson 3 proved in effect that if So is an
inconsistent set, there exists a k such that Sk
contains the empty resolvent; this implies that
Sk - 1 contains two clauses which are units or
have unit factors which conflict. The claim is
that when the level bound ko of the program
is equal to this k, whether ko is immediately
set equal to k or set equal to 1,2, ... k, the
desired unit conft.ict will be obtained. At any
given time the set of clauses which occur on
any list is contained in Sk, and is therefore
finite. The search through any list for potential factors or through any pair of lists for
potential resolvents is a finite process since all
lists are finite. The number of searches
through any list is limited by the size of the
input and the number of clauses which are adjoined and is, therefore, finite also. So any
clause which occurs on any list will do so after
a finite number of steps. In a similar fashion
we can see that all clauses on all lists will be
factored and, within the level bound, pairwise
resolved in a finite number of steps. Consider
the case where ko is sufficiently large to have
SkO contain the empty resolvent. If ko = 1, So
contains the clauses which yield the conflict,
and the previous argument shows that the program will examine the pair in question. If
ko = 2, the same argument shows that S1 will
be contained in the lists of clauses, and again
the conflict will be obtained. Applying the argument ko times shows SkO - 1 will be contained in
the lists of clauses. So we have proven the following lemma.
Lemma: Using the search algorithm with
level bound ko such that Sk{) contains the empty
resolvent, the program finds a proof if and
only if So is unsatisfiable.
Subsidiary Strategies
The most important subsidiary strategy is
based on the concept of a chain. With the
appropriate grouping, any clause which occurs
on any list is expressible in terms of the elements of S{) together with the operators of
resolution and factoring. Such an expression is
called a chain, and the number of resolutions
which occur therein is its length. The elements

THE UNIT PREFERENCE STRATEGY IN THEOREM PROVING

of So and the factors of those elements are
chains of length 0; those of Sl have chains of
length 0 and 1; those of S2 have chains of
length of 0, 1, 2 and 3.
If T is a nonempty subset of 8.0 and C is a
chain of length 0 whose single element is in T
or is a factor of an element in T, we say C is
supported by T or C has T -support. Chains C
of length greater than 0 have T-support if, for
every resolution, that occurs in C, at least one
of the resolvends has T -support. The clause B
is said to be derived from T, if its chain (its
expression or derivation in So) has T-support.
The strategy employed here is to choose T
and generate only those elements of Si for i > 0
which are derived from T. The choice of T
obviously has a profound effect on the number
of clauses generated during the search for a
proof. The question remains as to which available choices of T preserve completeness of the
procedure. By the lemma of the previous section, T = So is admissible under the appropriate conditions. For a given So the clauses might
be divided into 3 categories; those which correspond to the basic axioms of the theory under
study; those which correspond to the special
hypotheses of the theorem under consideration,
and those which correspond to the denial of the
conclusion of the theorem. For example, consider the theorem: in a group, if the square of
every element is the identity, the group is commutative. The first category would consist of a
set of axioms which characterize groups; the
second would consist of the axiom, for every x
in the group X2 = e; the third would be the
denial of commutativity, there exist a and b
such that ab =1= ba. (This example will be considered later under various conditions.) It appears that, where T is the join of the last two
categories, this choice of T for set of support
preserves completeness and is most valuable in
obtaining proofs in a reasonable amount of
time.
Among the other strategies which can be
employed are: deletion of the unit clause B
upon generation if the unit list contains a
clause A such that every instance of B is also
one of A; deletion upon generation of a clause
if it contains two literals which have opposite
sign but are otherwise identical; deletion of B

619

if the unit A is a resolvent of B with some C
such that all instances of some literal k of B
are contained in the set of instances of A.
EXAMPLE 1: In an associative system with
left and right solutions, there is a right identity
element.

Basic Axioms:
AI. - P (x,y,u) v - P (y,z,v)
v -P(x,v,w) v P(u,z,w)
A2. - P (x,y,u) v - P (y,z,v)
v - P (u,z,w) v P (x,v,w)
(associativity)
A3. P (g (x,y) ,x,y)
(left solution)
A4. P (x,h (x,y) ,y)
(right solution)
A5. P (x,y,f (x,y»
(closure)

)

Negation of Conclusion:
A6. - P (j (x) ,x,j (x»

(no right identity)

When A6 was taken as the only member of
the set of support, the computer generated the
following proof in 35 milliseconds with 11
clauses in memory at the time the proof was
detected:
1.

- P (x,y,u) v - P (y,z,v) v

-P(x,v,w) v P(u,z,w)
(AI)
2. P (g(x,y) ,x,y)
(A3)
3. P (x,h (x,y),y)
(A4)
4. - P (j (x) ,x,j (x) )
(A6)
5. - P (x,y,j (z» v - P (y,z,v)
v - P (x,v,j (z) )
(from 4 and 1)
6. - P (y,z,v) v - P (g (y,j (z) ) ,v,j (z) )
(from 2 and 5)
7. - P (v,z,v)
(from 2 and 6)
Since 3 and 7 are manifestly contradictory,
the proof is complete.
EXAMPLE 2: In an associative system with
an identity element, if the square of every element is the identity, the system is commutative.

Basic Axioms:
AI. P (x,e,x)
A2. P (e,x,x)
A3. - P (x,y,u) v
v -P(u,z,w)
A4. - P (x,y,u) v
v -P(x,v,w)

v
v

(right identity)
(left identity)
P (y,z,v) )
P(x,v,w) .
P (y,z,v)
P(u,z,w)
( associati vity )

620

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Special Hypothesis:
A5. P (x,x,e)
(The square of every element is the
identity.)
Negation of Conclusion:
A6. P(a,b,c)
A7. -P(b,a,c)
(There are elements a and b which
do not commute.)
When A1 through A 7 were used as the set
of support, the machine generated the following
proof in 1.124 seconds with 119 clauses in
memory at the time the proof was detected.
1. P (x,e,x)
(A1)
2. P (e,x,x)
(A2)
3. - P (x,y,u) v - P (y,z,v)
(A3)
v -P(u,z,w) v P(x,v,w)
4. - P (x,y,u) v - P (y,z,v)
(A4)
v - P (x,v,w) v P (u,z,w)
(A5)
5. P(x,x,e)
6. P(a,b,c)
(A6)
(A7)
7. - P (b,a,c)
8. -.p (x,y,e) v - P (y,w,v)
v P(x,v,w)
(from 2 and 3)
9. - P (y,w,v) v P (y,v,w) (from 5 and 8)
10. -P(w,y,u) v -P(y,z,e)
v P(u,z,w)
(from 1 and 4)
11. -P(w,z,u) v P(u,z,w) (from 5 and 10)
12. P(c,b,a)
(from 6 and 11)
13. P (c,a,b )
(from 12 and 9)
14. -P(c,a,b)
(from 7 and 11)
Since 13 and 14 are manifestly contradictory,
the proof is complete.
When, instead, only A5, A6,
used as the set of support, the
erated the following proof in the
538 milliseconds with 72 clauses
the time the proof was detected:
1. P(x,e,x)
2. P(e,x,x)
3. - P (x,y,u) v - P (y,z,v)
v - P (u,z,w) v P (x,v,w)
4. - P (x,y,u) v - P (y,z,v)
v - p (x,v,w) v P (u,z,w)
5. P(x,x,e)
6. P(a,b,c)
7. -P(b,a,c)

and A 7 were
machine genfaster time of
in memory at
(A1)
(A2)
(A3)
(A4)
(A5)
(A6)
(A7)

S. -P(y,z,v) v -P(e,z,w)
v P(y,v,w)
9. - P (y,w,v) v p (y,v,w)
10. -P(x,z,u) v -P(x,e,w)
v P(u,z,w)
11. -P(w,z,u) v P(u,z,w)
12. P(c,b,a)
13. P (c,a,b)
14. -P(c,a,b)

(from 5 and 3)
(from 2 and S)
(from 5 and 4)
(from 1 and 10)
(from 6 and 11)
(from 12 and 9)
(from 7 and 11)

Since 13 and 14 are manifestly contradictory,
the proof is complete.
EXAMPLE 3: In a group, if the square of
every element is the identity, the group is commutative.
Basic Axioms:
AI. P (x,y,f (x,y) )
(closure)
A2. P (e,x,x) l (existence of identity)
A3. P(x,e,x)
~
A4. P(x,g(x),e) l
A5. P (g(x) ,x,e) ~ (existence of inverse)
(reflexivity of =)
A6. R (x,x)
-R(x,y) v
A7.
(symmetry of =)
R (y,x)
AS. - R (x,y) v - R (y,z)
(transitivity of =)
v R (x,z)
A9. - P (x,y,u) v - P (x,y,v)
v R(u,v)
(multiplication is well-defined)
A10. - P (x,y,u) v - P (y,z,v)
v - P (U,Z,w) v P (X,V,w)
All. - P (X,y,u) v - P (y,z,v)
v -P(x,V,W) v P(u,Z,W)
( associa ti vi ty )
A12. - R (u,v) v - P (x,y,u) v P (X,y,v)
A13. -R(u,v) v -P(x,U,y) v P(x,v,y)
A14. - R (U,v) v - P (U,x,y) v P (V,x,y)
A15. -R(u,v) vR(f(x,u),f(x,v»
A16. -R(u,v) v R(f(u,y),f(v,y»
A17. -R(u,v) vR(g(u),g(v»
(substitution for =)
Special Hypothesis:
A1S. P(x,x,e)
(The square of every element is the
identity.)

1
J

1
J

Negation of Conclusion:
A19. P (a,b,c)
A20. -P(b,a,c)
(There are elements a and b which
do not commute.)

THE UNIT PREFERENCE STRATEGY IN THEOREM PROVING

With A18 through A20 used as the set of
support, the computer generated the following
proof in 54 seconds with 563 clauses in memory
at the time the proof was detected:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

(A1)
P(x,y,f(x,y) )
(A2)
P(e,x,x)
(A3)
P(x,e,x)
- P (x,y,u) v - P (y,z,v) v
(A10)
-P(u,z,w) v P(x,v,w)
- P (x,y,u) v - P (y,z,v) v
(All)
- P (x,v,w) v P (u,z,w)
(A18)
P(x,x,e)
(A19)
P (a,b,c)
(A20)
-P(b,a,c)
-P(y,z,v) v -P(e,z,w) v
(from 6 and 4)
P(y,v,w)
-P(e,z,w) v
P (y,f (y,z) ,w)
(from 1 and 9)
P(y,f(y,w) ,w)
(from 2 and 10)
- P (x,y,z) v - P (y,z,v) v
(from 6 and 4)
P(x,v,e)
-P(x,y,z) v
P (x,f (y,z) ,e)
(from 1 and 12)
P (a,f (b,c),e)
(from 7 and 13)
- P (b,y,u) v - P (y,z,a) v
-P(u,z,c)
(from 8 and 4)
-P(e,z,a) v -P(b,z,c) (from 3 and 15)
- P (e,f (b,c).,a)
{IrOm 11 ana 10)
- P (y,z,v) v - P (y,v,w) v
(from 6 and 5)
P(e,z,w)
-P(w,z,e) v P(e,z,w) (from 3 and 18)
(from 14 and 19)
P (e,f (b,c) ,a)

Since 17 and 20 are manifestly contradictory,
the proof is complete.
Discussion
In order to study the importance of the various strategies discussed above, Example 2 was

621

run without the aid of the unit preference
strategy or the set of support strategy. At the
end of 30 minutes the program had just finished generating S2' having also generated Sl'
without obtaining a proof. By comparison,
with the aid of these strategies, the proof was
obtained in about .5 seconds.
Example 3 serves to illustrate the comparative difficulty encountered when attacking a
mathematical theorem without a priori knowledge, such as that employed in Example 2, as
to which subset of the basic axioms of the
theory is relevant. The proof of Example 2 was
completed in about .5 seconds, while Example 3
required 54 seconds although the same strategy
was applied to both. It should be noted that,
without the set of support strategy, Example 3
was beyond the range of a 65,000 word machine.
BIBLIOGRAPHY
1. DAVIS, M., and PUTNAM, H., H A computing procedure for quantification theory," J.
ACM 7, 201-215 (1960).
2. GILMORE, P. C., "A proof method for quantification theory," IBM J. Res. Develop. 4,
2g....,35 (1960).
3. ROBINSON, J. A., "A machine oriented logic

based on the resolution principle." To be
published.
4. ROBINSON, J. A., "GAMMA I, a general
theorem-proving program for the IBM 704,"
Argonne National Laboratory Report ANL6447. November, 1961.

5.

QUINE, Vi. V. 0., lVl ethods of Logic, (Holt,
Rinehart, and Winston, New York, 1959),
Revised Ed.

COMMENTS ON LEARNIN.G AND AD.APTIVE MACHINES
FOR PATTERN RECOGNITION*
C.HugkMays

II PROBLEM STATEMENT

I INTRODUCTION
By learning and adaptive machines I mean
special purpose machines with internal components having adjustable values. The use of
such machines for the solution of several kinds
of problems has been proposed. These include
the design of switching functions, the design
of classification machines (classification machines is meant to imply recognition, prediction, decision and classification machines) ,
automatic manufacturing of certain devices,
self optimization or decision machines with
time variable input statistics, improving the reliability of digital processes, and automatic wiring and testing of microcomponents. Most of
the work to date has been on using learning
machines to design switching functions and
classification machines.

A. Data Classification
Data classification and processing problems
are becoming so complex that new techniques
are required if these problems are to be solved
economically. I will be mainly concerned with
data classification problems in the following
material, (i.e., problems requiring that a decision or prediction be made on the basis of given
data and performance criteria).

For Example:
(1) A decision to buy or sell a paritcular
stock must be made.
(2) The state of the weather in one week
must be predicted.
(3) A blood sample must be classified to determine if a patient has a given disease.
(4) Directions must be given to the pilots of
several airplanes when their locations,
velocities and directions of flight are
known.

Learning machines will be useful only if they
can solve significant problems faster, cheaper or
with greater programming ease than conventional machines. The recommendations and
comments in this paper are predominantly concerned with the question of the potential advantages of learning and adaptive machine approaches.

B. Availability of Data
In designing a classification system we may
have a complete mathematical and statistical
description of the physical process generating
the data (e.g., certain control systems) or we
may have samples of the data and a relatively
incomplete mathematical and statistical description (e.g., a weather system) . The kinds of information that may be available when a data

In a learning machine, samples of data are
used as inputs to the machine. Other inputs
indicate the desired machine response to the
samples. Values of internal components are
changed in accordance with some algorithm
until the actual response is equal to the desired
response.

* This

work was done at Stanford University, Stanford, California.

623

624

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

classification system is to be designed include
the following:
(1) A complete or partial mathematical and
statistical description.
(2) Many samples of data with a clear indication of the class represented by each
sample.
(3) Few samples of data with a clear indication of the class of each sample.
(4) Many samples of data without a clear indication of the class of each sample.
(5) Few samples without a clear indication
of class of each sample.
(6) A problem with time variable characteristics.
(7) Any reasonable combination of the above
itenas.
'
In the following material most of the discussion will be concerned with items 1, 2, 3 and any
reasonable combination of these items. The discussion will assume that the decison and prediction problems are to be solved by a completely mechanized system.
C. Mechanization of Classification Processes
There are two aspects to data classification.
These are 1) the design of' the classification
mechanism and 2) the problem of what to
measure and how to preprocess the measurements for presentation to a classification system.

The main techniques used for the design of
classification mechanisms are logical design 1,
the use of decision theory '2, the use of ,learning
or adaptive machines 3, 4 and the use of heuristic
programs.'24 Logical design can be used when
a process is not subject to noise. Decision theory
is used when a process is noisy and knowledge
about the statistics of the data generated by the
process is available. Decision theory is presently limited to cases where the statistics are
relatively simple. The most significant results
have been obtained for Gaussian statistics.
This paper contains very little material on
the use of heuristic programming approaches;
Minsky's paper 24 contains a number of references to this subject.
The problem of what to measure, and how to
preprocess the results of the measurements for
use in a classification machine is not very well

understood. Some work has been done on finding measurements that give invariant results
for certain transformations (e.g., rotations and
translations) of planar figures. I know of no
work that has been completed for arbitrary
transformations.
Learning machines are special purpose machines used to determine the values of components of a classification system. The learning
machine may also be used as an element of a
classification system rather than as a computer
to determine numeric solutions. Presently most
learning machines use networks of adaptive
threshold elements.
III THRESHOLD ELEMENTS AND ADAPTIVE THRESHOLD ELEMENTS

A. Fixed Elements
In a threshold element a weighted sum of
input variables is formed 5,6. If this sum is
greater than or equal to a threshold value, the
output of the element is a logical one; otherwise
the output is a logical zero. In an adaptive
threshold element the weight values are adjusable by adaptation circuitry.
Geometrically, the threshold element implements a hyperplane through the space of input
variables 7,8. In the case where the input variables represent data from two classes, the
classes are called linearly separable if there
exists a set of weights and a threshold such that
the response of the threshold element is a logical
one for inputs representing one class and a logical zero for inputs representing the other class.
The hyperplane represents an optimum separating surface for certain kinds of statistical
problems (e.g., two classes with Gaussian distributions and equal covariance matrices 9). In
these problems it is impossible to do a perfect
job of separating the classes. Therefore the
hyperplane must be placed so as to minimize
the expected cost of misclassifying samples.
For statistical problems having k classes with
equal covariance matrices, we may require k
(k-1) /2 threshold 'elements followed by a decoding network. If the analog value of the
weighted sum minus the threshold is available
for manipulation, we need only k-1 summing
elements plus circuits to compare the analog

LEARNING AND ADAPTIVE MACHINES FOR PATTERN CLASSIFICATION

values. I have no idea which scheme is cheaper.
For a few classes, a classification mechanism
with only threshold elements is probably
cheaper. As more classes are added the use of
comparison circuits in conjunction with summing elements is probably cheaper.
Networks of threshold elements can be used
to approximate other separating surfaces (e.g.,
quadratic and higher order surfaces). If we allow the use of analog multipliers (AND gates
in the case of binary inputs), threshold elements can be used to exactly realize quadratic
and higher order surfaces.
Since threshold elements can realize AND,
OR, and NOT functions, networks of these elements can be used to realize any switching
function or logical decision rule. There has been
a considerable amount of work on the synthesis
of switching functions with threshold elements 5, ~,10.
B. Adaptive Elements
Algorithms for changing the weight values
of a single adaptive threshold element are very
well understood 3, 11-13. I know of only one
case '25 where these algorithms tend to produce
an optimum separating hyperplane; and this is
for a relatively simple statistical case (two
classes, equal covariance matrices, equal a priori probabilities and the probability of misclassification errors is to be minimized). Algorithms for nontrivial networks of adaptive
threshold elements are not very well understood. (Nontrivial means that the desired response does not uniquely determine the response
of every threshold element.) I know of proposed algorithms 1'2 for such networks but of no
satisfactory proof that the algorithms will
cause convergence to a solution in a finite
amount of time. However, experimental results indiate that these algorithms cause convergence most of the time.

The most successful adaptive machines have
used very simple networks of adaptive threshold elements. In these machines the algorithms
for changing weight values can be interpreted
in terms of surface searching methods '26. With
these methods the weight values are always
changed in a direction that moves the weights
closer to a solution. It appears that nontrivial
networks of adaptive threshold elements have

625

local minimum (at least for the networks so
far considered) . If surface searching methods
are to be used, work needs to be done on finding
ways to adapt nontrivial networks so as to
avoid local minimum.
As the number of inputs to threshold elements is raised, the tolerance requirements on
weight values get continually tighter 14, 15, if the
full power of the, elements is to be realized. This
means that very precise components with small
drift values must be used. One way around this
problem is to use more threshold elements. This
introduces redundancy into any classification
mechanism and increases the cost. The cost increase caused by redundancy may be more than
offset by the use of less precise components.
Threshold elements appear to be very useful
and, at least conceptually, they are simple units.
Realization of threshold elements with hardware has included the use of Kirchoff adders,
(at Stanford), magnetic cores 16, 17, summing
amplifiers (at Stanford) and resistor bridge
networks 18. Fixed threshold logic can be implemented easily but adaptive threshold elements place restrictions on the phenomena that
can be used. For example, it would be difficult
to make an adaptive threshold element that
used the number of turns on a magnetic core to
control weight values. The two most successful
adaptive components have been a variable resistance device 18 and a magnetic device that
uses remanent flux states to control weight
values 17.
IV USE OF LEARNING MACHINES FOR
DESIGN PURPOSES
A. The Experimental Approach
In a classification machine, a sample of data
is used as an input to the machine and some response to this input is obtained. For example
the input might be a photograph of a cancer
smear and the response a diagnosis of the
smear. In a learning machine a sample of data
is used as an input together with an input indicating the desired machine response. The internal structure of the machine is then modified
according to some algorithm so that the actual
response is equal to the desired response. One
sample or several samples may be used as inputs at anyone time. Several machines have

626

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

been built (Adaline and Madaline at Stanford,
Perceptron at Cornell) that use only one sample
at a time as an input. As far as I know, no one
has built a learning machine to take more than
one sample as an input at one time. There is
no reason why such a machine could not be
built and there may be advantages to do so,
particularly if the samples are correlated.
Most experiments with learning machines
have been performed as follows. Samples of
data together with the classifications of the
sarnples are stored in a conventional rnernory.
The samples and their classifications are then
picked one at a time to be used as inputs to a
learning machine. This process continues until
the response of the machine to each sample
agrees with the desired response; the machine is
said to have converged at this point. It may be
necessary to use each sample as an input more
than one time before convergence is obtained.
After convergence is obtained the machine is
tested on new samples. If the mahine makes
very few misclassifications of new samples, the
experiment is considered to be successful and
the machine is said to have generalized.
The experimental approach outlined above
has been used for determining machines for
weather prediction 19, speech recognition !20,
classification of radar returns (no published reports) and classification of electrocardiograms '21. These experiments were performed
using digital computer simulations of the learning machine. These experiments appear to be
very successful but a fair amount of work went
into determining what measurements to take
and how to preprocess them. In evaluating results it is difficult to separate the effects of preprocessing from the learning machine approach.
The experimental approach described above
is used as a mechanism for understanding
learning machines. Each experiment adds alittle to our understanding. These experiments
may show that our approach has been too naive
and that we must understand a great deal
more about the physical process we are experimenting with. On the other hand, the learning
machine approach may provide a technique for
exploring physical processes. For example the
weather experiment described above showed
that large weight values in the learning ma-

chine corresponded to geographic locations that
the weather man found to be useful in predicting the weather.
B. Generality, Generalizing and Optimum Ma-

chines
In order to handle many different classification problems, learning machines must be flexible; in other words, the machine must be able
to realize many different mappings. between inputs and outputs. I call this property generality. If the machine has great generality~ training on a set of samples may imply very little
about the response of the machine to new sampIes; in other words, the machine may not generalize very well. It appears that if generalizing is to be obtained, either the generality of
the machine must be limited or the algorithms
for changing the internal structure must be
tailored to the problem being solved. The relationship between machine generality and algorithms on the one hand and generalizing on
the other is not very well understood.
The question of optimum classifying mechanisms has been mentioned above in connection
with certain problems handled by decision
theory. With the one exception mentioned
above; I know of no case where a learning machine gives an optimum classifying system. If
optimization criteria can be defined for particular classification problems and a way can be
found to implement these criteria in the learning machine, the problem of generalizing may
be fairly well solved. There has been work on
using analog computers '22 for solving certain
linear programming problems. This work is
similar to recent work on learning machines.
Results using analog computers were never
very successful because of accuracy limitations;
however, the approach may indicate ways to
enter optimization criteria into learning machines.
If a learning machine is trained on a limited
number of samples the machine may converge
to a very non-optimum solution because the
amount of data is not sufficient to define an optimum solution. Sometimes a limited amount
of data may be accompanied by a partial mathematical and statistical description of the process
generating the data. I know of no general

LEARNING AND ADAPTIVE MACHINES FOR PATTERN CLASSIFICATION

method for using the mathematical and statistical information as an input to the learning
machine. If a method can be found to use all
available information as inputs to learning machines, a limited number of samples may not
be such a great handicap.
The above discussion indicates that a learning machine may require a rather large instruction set. This instruction set may have peculiar characteristics when compared to the instructions for a conventional digital computer.
For example, an instruction used to enter statistical characteristics of data may require that
the machine rewire its components. Of course
this could be done by use of logical gates.
C. Preprocessing
If a learning machine has limited generality,
its performance is very dependent on what
measurements are taken and how these measurements are preprocessed for presentation to
the machine. In the weather prediction experiments mentioned above, the input information
was barometric pressure and change of pressure over a 24 hour period at several geographic
locations. When the information presented was
changed to the actual pressures 24. hours apart,
the performance of the solution found by the
learning machine was much worse than that
found using the same information presented in
the form of pressure and change of pressure.
The preprocessing of the data had a considerable effect on performance even though the information content was not changed.

In other cases, the preprocessing of data may
deterruine if a learning machine of limited generality will converge to a solution at all. The
designer of a classification system may not be
able to use a learning machine without a considerable knowledge of the process generating
the data and of the limitations of the machine.
The designer's work may be to determine how
to preprocess the data so that the learning machine will converge to a satisfactory solution
as determined by cost criteria.
D. Ease of Use and Speed
One of the possible advantages of using a
learning machine for design of classification
systems is ease of programming. The idea of
using samples of data and desired responses as

627

inputs and then letting the machine grind away
until convergence is obtained is relatively simple. It should be possible to design learning
machines that can be easily programmed.
If a long time is required to converge with a
learning machine, it might be cheaper to use a
general purpose digital computer. On the other
hand if the learning machine can be made
cheaply, a longer time to solve a problem may
not be too much of a disadvantage. The question of speed is essentially a hardware question
and it is too early to make any comments on the
relative speed of digital computers and learning
machines (which may be special purpose digital
computers) .
V OTHER USES FOR LEARNING AND
ADAPTIVE MACHINES
The above discussion was mainly concerned
with using learning machines for the solution
of conventional problems. Problems exist for
which machines similar to learning machines
might be used as permanent parts of operating
systems.
Possible other uses for adaptive machines include the following:
(1) Manufacturing classification machines
(2) Compensation for drift and failure of
machine components
(3) Optimization of machines having inputs
with unknown time variations.
The idea of using the concepts of learning machines in manufacturing processes is appealing.
A single kind of adaptive unit produced in large
quantities could be trained to perform many
different functions by presenting different inputs and desired responses to different units.
A practical question is, Does the decreased cost
of producing identical units more than offset
the increased cost of adaptive units?
It may turn out that some sort of adaptive

capability will be helpful in manufacturing devices using microcomponents. Two of the maj or
problems with microcomponents appear to be
the problem of interconnections and the problem of not obtaining 100 % yields. Perhaps
some sort of adaptive scheme can be formulated
to provide automatic interconnection of good
components and rejection of bad components.

628

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

The use of redundancy and adaptation to increase the reliability and lifetime of digital systems has been proposed 23. I know of no practical system that uses adaptation for compensation of changes in component values, but the
idea appears to be workable. Redundancy implies that all working component are not being
used to their full capabilities. In some instances
it may be desirable to use adaptive techniques
to assure that all components are being used to
their full capabilities.

VI RECOMMENDATIONS
The basic problem in the learning machine
field is to determine if learning and adaptive
machine approaches offer cost, speed or ease
of programming advantages over more conventional approaches. Before the solution to this
problem is obtained, several theoretical and
technological problems need to be explored.
Specific recommendations are given in the following paragraphs:

One of the more exciting possibilities for
adaptive techniques is their use for self-optimization of a classification machine as the statistics of the inputs change. For example, in a
speech recognition system, a machine that performs well on one speaker can be found relatively easily; however, a machine that will perform well on many different speakers is more
difficult to find. With an adaptive speech recognizer, the system could be optimized for individual speakers. Other examples include a
communication channel with time variable noise
characteristics and a piece of equipment that
generates data with an average that changes as
the equipment ages.

problems that can be solved by learning
machine approaches should be made.
The properties and limitations of
threshold elements should be thoroughly
understood. A side benefit from this
item may be efficient methods of synthesis of switching functions with
threshold elements.
Algorithms for adjusting the weights
and thresholds of networks of threshold
elements should be found. This item
will require research into the structure
of such networks as well as into algorithms for adjusting weights.
The use of something other than
threshold elements in learning machines
should be investigated. I have no specific technique to suggest.
Some way of entering optimization criteria into a learning machine should be
found. Work done on using analog computers to solve linear programming
problems may give a clue on how to do
this.
Some way of entering partial mathematical descriptions into a learning machine should be found. The problem
with this and the previous item is finding a way to enter many different kinds
of information into a single machine.
The instruction set for the learning machine and the set's relationship to machine structure and algorithms should
be investigated. Some instructions may
require manual or automatic rewiring
of the machine structure.
The relationship of generality to machine structure should be investigated.

In Section IV A above a procedure for use of
a learing machine was decribed that required a
conventional memory for the storage of data.
In some applications it may be necessary to
start classifying inputs before all data is available; as more data becomes available it should
be possible to design a better classification machine.

It may be possible to design adaptive machines that can have their performance updated
as more data becomes available without having
to store all past data in a conventional memory.
A concpet evolving in the field of learning
machines with time variable input statistics has
been called learning without a teacher. In the
learning machines described above, a desired
response was supplied with each training sample. In learning without a teacher, no desired
response is supplied; the values of internal components are changed by rules that depend on the
response of the machine rather than on desired
responses. There has been relatively little work
on this idea and I know of no published work.

(2)

(3)

( 4)

(5)

(6)

(7)

(8)

LEARNING AND ADAPTIVE MACHINES FOR PATTERN CLASSIFICATION
(9) The relationships of generality, machine struture, and algorithms to generalizing should be investigated.
(10) Problems of measurements and preprocessing as related to learning machines should be investigated. It may
not be possible to come up with broad
conclusions on this item. Measurements
and preprocessing may depend so intimately on the process generating data
that only conclusions for specific processes can be formulated. Probably this
item can be best approached by studying specific processes and trying to generalize the results.
(11) The question of what to do with a
learning machine when only a small
sample size is available should be investigated.
(12) The question of tolerance requirements
for the components of a learning machine should be investigated.
(13) Questions concerning speed and cost
are predominantly technological questions. To answer these questions the
cost and speed of components to implement the findings of the investigation
outlined above should be determined.
The need for special purpose devices
should be investigated.
( 14) The concept of learning without a
teacher should be investigated.
(15) The use of adaptive techniques in
manufacturing processes should be investigated.
(16) Techniques for updating the performance of learning and adaptive machines
as, more data and information become
available should be investigated. The
problem here is to find updating procedures that do not require that all past
input data be stored in a conventional
memory.
C. Hugh Mays
IBM, Poughkeepsie, New York
REFERENCES
1. S. H. CALDWELL, "Switching Circuits and
Logical Design," John Wiley & Sons, Inc.,
New York, N. Y.; 1959.

629

2. D. BLACKWELL and M. A. GIRSHICK,
"Theory of Games and Statistical Decisions," John Wiley & Son, Inc., New York,
N. Y.; 1954.
3. F. ROSENBLATT, "Principles of Neurodynamics: Perceptrons and the Theory of
Brain Mechanisms," Spartan Books, Washington, D. C.; 1962.
4. B. WIDROW and J. B. ANGELL, "Reliable,
Trainable Networks for Computing and
Control," Aerospace Engineering, Vol. 21,
No.9, September 1962, pp. 78-123.
5. R. O. WINDER, "Single Stage Threshold
Logic," Proc.First Annual Symposium on
Switching Circuit Theory and Logical Design; October 1960.
6. S. MUROGA, 1. IODA, and S. TAKASU, "Theory
of Majority Decision Elements," Journal
of the Franklin Institute, Vol. 271, pp. 376418; May 1961.
7. R. L. MATTSON, Master's Thesis, "The Design and Analysis of an Adaptive System
for Statistical Classification," M. 1. T.,
Cambridge, Mass. ; May 22, 1959.
8. R. L. MATTSON, "A Self-organizing Binary
System," Proc, EJCC, pp= 212-217; 1959.
9. G. S.SEBESTYEN, "Decision-Making Processes in Pattern Recognition,;' MacMillan
Co., New York, N. Y.; 1962.
10. P. M. LEWIS, II and C. L. COATES, "Realization of Logical Functions by a Network of
Threshold Components with Specified Sensitivity," IEEE Transactions on Electronic
Computers, Vol. EC-12, No.5, pp. 443--454;
October 1963.
11. B. WIDROW, "Adaptive Sampled-Data Systems," Stanford Electronics Laboratories,
TR No. 2104-1, Stanford University, Stanford, California; July 15, 1960.
12. W. C. RIDGEWAY, III, "An Adaptive Logic
System with Generalizing Properties,"
Stanford Electronics Laboratories, TR No.
1556-1, Stanford University, Stanford,
California; April, 1962.
13. C. H. MAYS, "Adaptive Threshold Logic,"
Stanford Electronics Laboratories, TR No.
1557-1, Stanford University, Stanford,
California; April, 1963.

630

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE,

14. E. GOTO, "Threshold, Majority, and Bilateral Switching Devices," in Switching
Theory in Space Technology, edited by H.
A. Ken and J. W. F. Main, Stanford University Press, Stanford, California; pp. 4767; 1963.
15. C. H. MAYS, "Adaptive Threshold Logic"
in Papers on Adaptive Systems, compiled
by B. Widrow and C. F. Franklin, Stanford
Electronics Laboratories, TR No. 2104-2,
Stanford University, Stanford, California,
pp. 33-47; May, 1962.
16. M. KARNAUGH, "Puise-Switching Circuits
Using Magnetic Cores," Proc. IRE; May,
1955.
17. H. S. CRAFTS, "Components That Learn
and How to Use Them," Electronics, Vol.
36, pp. 49-53; March, 1963.

1964

20. L. R. TALBERT, et aI, "A Real-Time Adaptive Speech-Recognition System," Stanford
Electronics Laboratories, TR No. 6760-1,
Stanford University, Stanford, California;
May, 1963.
21. D. F. SPECHT, "Vectocardiographic Diagnosis Utilizing Adaptive Pattern Recognition Techniques," Engineer's Thesis, Stanford U, to be published.
22. G. A. and T. M. KORN, "Electronic Analog
Computers," 2nd edition, McGraw-Hill
Book Company, Inc., New York, pp. 147151; 1956.
23. W. H. PIERCE, "Adaptive Vote Takers Improve the Use of Redundancy," in Redundancy Techniques for Computer Systems,
edited by R. H. Wilcox and W. C. Mann,
Spartan Books, 1962.
24. MARVIN MINSKY, "Steps Toward Artificial
Intelligence," Proceedings of the IRE, Vol.
49, No.1, pp 8-30, January 1964.

18. M. E. HOFF, JR., "Learning Phenomena in
Networks of Adaptive Switching Circuits,"
Stanford Electronic Laboratories, TR No.
1554-1, Stanford University, Stanford,
California; July, 1962.

25. G. F. GRONER, "Statistical Analysis of
Adaptive Linear Classifier," Doctoral Dissertation, Stanford University, Stanford,
California; April, 1964.

19. M. J. Hu, "A Trainable Weather:-Forecasting System," Stanford Electronics Laboratories, TR No. 6759-1, Stanford University,
Stanford, California; June, 1963.

26. J., S. KOFORD, "Adaptive Pattern Dichtomization," Stanford Electronics Laboratories,
TR No. 6759-1, Stanford University, Stanford, California; April, 1964.

FLODAC-A PURE FLUID DIGITAL COMPUTER
R.

s. Gluskin, M.

Jacoby, and T. D. Reader
UNIVAC
A Division of the Sperry Rand Corporation
Blue Bell, Pennsylvania
the control jet flow is increased the power jet
will be deflected, and less and less energy will
enter the receiver.

INTRODUCTION
The use of fluids (both liquids and gases) for
the transmission and amplification of power has
been common for over a century. This power
has been controlled by valves, pistons, and other
mechanical parts. Within the past decade considerable attention has been given, both in this
country and in Russia, l to the use of fluids for
control and logic functions, and until recently
these systems also employed mechanical moving
parts. In 1960 the Diamond Ordnance Fuze
Laboratory (now the Harry Diamond Laboratories) of the U. S. Army announced a fluid amplifier with no moving parts2-a discovery
which seems likely to revolutionize the whole
field of fluid logic and control.

The wall effect is shown in Figure 2. If a
wall is placed close to a jet it is found that the
jet appears to be attracted to the wall and will
often attach itself to the wall quite strongly.
The reason for this is that as the jet moves it
entrains fluid from the surrounding medium.
This entrained fluid must be made up by fluid
from afar. If a ,vall is placed close to one side
of a jet, the flow of replacement fluid is impeded, resulting in a slightly lower pressure on
the side of the jet close to the wall than on the
other side where there is no impediment. Consequently, the jet will bend toward the wall,

There are two fundamental mechanisms involved in pure fluid amplification: One is momentum transfer, and the other is wall effect.
A jet of fluid having a density p, a velocity V,
and a cross sectional area A has a momentum
Ml = pV'2 A. Consider now a smaller jet, of
momentum M2, which we shall call the control
jet, impinging at right angles on the larger jet,
of momentum M1 , which we shall call the power
jet, as is shown in Figure 1. From conservation
of momentum principles it can be seen that the
power jet will be deflected through an angle
() = tan-1 M2. If a receiver or catcher is placed
Ml
.
as shown in Figure 1 all the energy of the
power jet can, in principle at least, be recaptured if there is zero control jet flow. But as

•

~

POWER JET

MOMENTUM=~

~ CONTROL JET

MOMENTUM = M2

Figure 1. Momentum Exchange.

631

632

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

J

passage E. For small signals, the output variation can be made fairly linear with respect to
the input, and furthermore, the output variation will be larger than the input variation, thus
producing gain or amplification.

)

.1

Figure 2. Wall Effect.

making it even harder for replacement fluid to
flow into the low-pressure region, and eventually lock onto the wall altogether, forming
what is called a low-pressure bubble upstream
from the point of attachment. This wall effect
is sometimes called the Coanda effect. 3 Both
wall effect and momentum transfer are usually
involved in most fluid amplifiers.
The Harry Diamond Laboratories' amplifier,
shown in Figure 3, consists of a power jet, A,
an interaction region, B, two control jets, C and
D, and two output passages, E and F.
,The amplifier may be made to operate either
proportionally or in a digital fashion, depending on slight differences in geometry. In the
proportional device, fluid issuing from jet A
will divide almost equally between output passages E and F in the absence of any control
signals at C or D; but if a small amount of fluid
is blown into the device through control port C,
the main jet well be deflected to the right, and
more of it will exit from passage F than from

E

F

c

B

H

D
J

A
Figure 3. Representation of Amplifier Developed at
Harry Diamond Laboratories.

If certain changes are made in the geometry
of the proportional amplifier, namely, if the
divider tip G is moved further downstream and
if the walls HH and J J are moved closer to the
centerline of symmetry, the amplifier becomes
bistable or digital. That is, the power jet bends
by itself and attaches to one or the other of the
sidewalls so that even in the absence of any control signal, substantially all the flow is from a
single output passage, for example, passage E.

Assuming an output from passage E, if the
pressure at control port C is now slowly increased, no change occurs until a certain
threshold value is reached, at which point the
power jet suddenly switches to the other side
and exits from output passage F. If the control
signal is returned to zero, the power jet remains locked to wall J J and continues to issue
from output passage F. Thus, the device has
memory capability and is the logical equivalent
of the electronic flip-flop.
All the other fundamental switching and logic
functions which are now performed electronically can also be implemented by pure fluid devices. Figure 4 shows a pure fluid inverter. This
device is purposely made very asymmetrical
so that in the absence of a control signal the
fluid flows essentially in a straight line and exits
from the left-hand leg. Only when a control
signal of sufficient strength is present will the
jet be blown over to the right-hand leg. The
wall lock-on effect on the right-hand leg is minimized, and when the control signal disappears
the output will immediately return to the lefthand leg. Thus, the output from the left-hand
leg is the inverse of the control signal; the output from the right-hand leg is the control signal
amplified.
An OR gate may be readily constructed by
converting the pressure energy in two or more
signals to velocity energy and directing this into
a common receiver, as is shown in Figure 5.
Because of the vector quality of the two jets,
there will be very little leakage of signal from

FLODAC-A PURE FLUID DIGITAL COMPUTER

A

633

amplified NOR function, that is, A . B. This
principle has been extended to achieve a NOR
gate with a fan-in and fan-out of four; that is,
the device has been provided with four input
terminals. The presence of a signal on anyone
of these terminals will switch the device off, and
the output has been divided and channeled to
four output terminals so that four identical elements can be driven from one element. In this
NOR gate the OR output is not provided.
As is well known, all logic and switching
functions can be implemented with NOR gates
alone. A flip-flop, for example, can be made by
interconnecting two NOR elements, as is shown
in Figure 8.

A

Figure 4. Inverter.

one input backward through the other unless
the output is substantially blocked, in which
case the fluid would have no place else to go.
The purpose of the hvo side passages shown in
Figure 5 is to provide for fluid escape in just
this eventuality. If a high impedance is presented to the output the fluid will escape
through the side bleeds rather than reversing
and flowing into the other signal input.

In this configuration, one element is in the
1 state, and its output is used to switch the
other element into the 0 state. The elements remain stable in their respective states until an
outside signal changes the state of the flip-flop.
With reference to Figure 8, assume that element
A is in the 1 state, that is, its output signal is
in leg d. This signal is sent to element B
through input j which switches the element
into the 0 state, that is, the jet is diverted to

..

~

A-t-tj

The vector properties of high-velocity jets
are also made use of in the AND gate (Figure
6). If the signal A is present alone it will pass
straight through the AND gate and vent to atmosphere, and similarly for B alone. If signals A and B are present simultaneously, however, and have approximately equal amplitudes,
then the resulting jet will make an angle of 45°
to the original jets and will be caught in the receiver placed at this position. With proper design of the receiver exact balance of the two
signals is not necessary. Ratios of 2 : 1 are
easily accommodated.
The combination of the OR gate and the inverter as shown in Figure 7 gives an extremely
powerful element. The right-hand output is
the amplified OR function of the inputs while
simultaneously the left-hand output gives the

Figure 5. OR Gate.

634

PROCEEDINGS~F ALL JOINT COMPUTER CONFERENCE, 1964

A-a

A·B

A+B

B
Figure 6. AND Gate.
Figure 7. NOR Gate.

output f. There is no signal in leg e of element
B; therefore, element A is not affected by element B. The flip-flop will remain stable in this
state until an outside signal is applied to element A by way of input h. When the signal
appears, A will be switched to the 0 state, and
the jet will be diverted from leg d to leg c. The
signal to input j of B will go off, and the element will switch from the 0 state to the 1 state,
that is, the jet will switch from leg f to leg e.
The signal from B will then be applied to A
through input g. When the outside signal
through h is removed, the signal through g will
keep A in the 0 state. The flip-flop has been
switched, and it will remain stable in this state
until another outside signal is applied to input
k of element B.

basis of four significant advantages: reliability,
environmental immunity, low cost, and absence
of r-f radiation. Each of these advantages is
briefly discussed below:
1. Reliability: Pure fluid amplifiers have no
moving parts except the fluid itself. There
is nothing to wear out, nothing to age,
nothing to burn out. With the proper selection of structural material and fluid,
there are no potential chemical or solid-

d

e

t

t

FLODAC is built entirely of NOR gates and
requires about 250 of these elements to do its
job. FLODAC, incidentally, stands for Fluid
Operated Digital Automatic Computer.
Why Fluid Amplifiers?
Granting the feasibility of constructing complex digital systems from fluid amplifiers, what
is the motivation for doing so? What advantages, if any, do fluid amplifiers have over their
well-established electronic counterparts? The
use of fluid amplifiers rather than their electronic counterparts may be justified on the

A

B
Figure 8. FLODAC Flip-Flop.

FLODAC-A PURE FLUID DIGITAL COMPUTER

state reactions. There need be no delicate structures. In short, the life of a
fluid amplifier should be practically infinite, whether in use or quiescent. About
the only conceivable cause of deterioration
would be dirt in the fluid, and this can be
controlled easily by filtration and the use
of closed-cycle systems.
The fluid amplifier art is still too young
for masses of statistical data on reliability to have been compiled. However, the
nature and operation of these devices are
such that extremely favorable comparisons with electronic and other types of devices can be expected. 4

2. Environmental Immunity: Fluid amplifiers can be made of almost any solid material, for example, plastics, metals, glass,
or ceramics. If the right materials are selected, operation is possible under environmental conditions which preclude the use
of electronic devices. For example, ceramic fluid amplifiers could operate at
white heat. Metal fluid amplifiers should
be operable in intense radiation fields.
With the proper materials and assembly
procedures, shocks, or accelerations, of
thousands
problem.
3. Low Cost: Fluid amplifiers consist basically of rectangular channels in a suitable
material. They can be fabricated by any
one of a number of extremely low-cost
methods, such as casting, injection molding, stamping, or etching. Entire circuits
of fluid amplifiers, including the interconnecting passageways, can be formed by
such methods in one low-cost operation.
Planes could be stacked one on top of another with holes in the planes at the
proper locations for the necessary interconnections. With techniques such as
these, which are already being developed;
it is estimated that the cost of fluid amplifier circuits may be as much as 100
times less than the cost of comparable
electronic circuits.
4. R~f Radiation: 'No electromagnetic energy
is radiated by fluid circuits; consequently,
a very common and often serious problem
associated with electronic logic, namely,

635

r-f radiation, is eliminated. Often extensive and costly measures must be taken to
shield electronic equipment to prevent interference with other equipment or communications or to prevent detection of
radiated intelligence by hostile agencies.
However, such measures are never 100
percent effective. Also, external radiation
can seriously affect electronic equipment
by causing errors or malfunctions. Both
of these problems are completely eliminated by fluid devices, which neither emit
nor are affected by radiation.

Operational Speed
Fluid amplifiers have one significant disadvantage: their operational speed is relatively
slow. Switching times are of the order of a
millisecond, and signal propagation time is of
the order of a millisecond per foot. Fluid amplifiers, at present, are only approaching kilocycle rates of operation as opposed to the megacycle and higher rates common in electronic
systems. Speeds can be expected to improve, of
course, but nanosecond switching times are not
foreseeable today. Because of this speed limitation, there may be applications where fluid amplifiers are not suitable.
It should be noted that the inherent speed
limitation can be offset appreciably by taking
advantage of the low cost and high reliability of
fluid amplifiers, which make it economical to
compensate for much of the speed deficIt . by
making extensive use of parallel and polymorphic operation.
In any event, there are numerous applications
where the speed of fluid circuitry is adequate.
Today's system designer must realize both the
merits and shortcomings of these new elements;
by appraising his problem requirements objectively, he can use fluid amplifiers with excellent
results wherever their advantages enable them
to do the job better and/or more economically.
SPECIFICATIONS AND LOGICAL DESIGN
Every general-purpose digital computer must
have means for accomplishing four basic functions: Memory, Arithmetic, Control, and Input!
Output. Consequently, it was necessary to provide these functions if we were to fully meet the
goal of demonstrating a generalized fluid com-

636

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

puter, even though on a very small scale. All
four functions are fully and formally developed
inFLODAC.
The problems of memory size, word size, and
instruction set are all interrelated. The objective was to build a very small air-powered general-purpose digital computer which could be
programmed to do a few elementary problems.
At least three instructions seemed necessary to
prove generality: an Arithmetic instruction, a
Data Transfer instruction, and a Conditional
Jump instruction. Since two bits are needed to
specify three instructions, a fourth instruction
becomes possible without any increase in word
size. It was decided to make this a Halt instruction. The four instructions used then are:

Transfer

T m

10

(A)~m

Add

A m

11

(m)

Jump

J n

01

Go to instruction in
memory location n if
(A) # 0; otherwise
continue with the next
instruction in the
memory.

H

00

II

10

+

(A)

~A

Stop the computer.

After a few trials it was found that a reasonable program could be written using all four instructions with a memory of only four words.
This program, which is the basic test program
for FLODAC, will be discussed later.
A four-word memory implies two bits for addressing, and this, with the two bit operation
code, fixes the word length at four bits. The
first two bits of a word are the operation code
and the last two the address. Alternately, a
word may consist of numerical data only.
To recapitulate, FLODAC has four instructions and four words of memory; each word is
four bits long. To compensate as much as possible for the speed disadvantage of fluid elements, operation is bit parallel.
Figure 9 shows the overall block diagram of
FLODAC. Each instruction is processed in
four steps by the step counter which is driven
from the master clock. The control counter
contains the address of the next instruction to

M4

~T

r- r- -

r-r -rM3

MI

M2

-=- ---- t-~r
--- t - - - --- ,--

!

J

ARITHMETIC REGISTER

-

A4

A3

A2

AI

.1.

.L

.L

.1.

J
STATIC REGISTER

----,
~ FUNCTION
SELECT

}= -

-

f

I

STEP
COUNTER

Instruction Code Explanation

Halt

MEMORY

00
01

4

1

CLOCK

INSTRUCTION

ADDRESS

S4

S3

S2

SI

J.

J.

J.

J.

~

I-

f
CONTROL
COUNTER

II
"-

~

MEMORY
SELECT

C2\ CI

MANUAL CONTROL

+

II

ONE
INSTRUCTION
CONTINUOUS START

.L

J..

J..

Figure 9. FLODAC, Block Diagram.

be executed and, except during the fulfillment of
the Conditional Jump instruction, is augmented
by one at the end of each instruction cycle. During step 1 the control counter operates the memory select circuits, and by the end of step 1 the
specified memory word, which contains the next
instruction, is read into the static register. The
two left-hand bits are decoded as to operation,
and this information is sent to the function
select circuits, where, in conjunction with step
counter and clock signals, the necessary gating
pulses for all instructions are generated. The
two right-hand bits, specifying the operand address, are sent to the memory select circuits,
permitting the required data word to be read
out. All this takes place during step 1. The actual instruction execution is carried out during
some or all of the last three steps.
The Add instruction is carried out in two
stages. The first stage is completed during step
3 and consists of adding the word in the memory to the word in the arithmetic register without regard to carry. This portion of the Add
instruction changes a bit in the arithmetic register from a 1 to 0 or vice versa, whenever there

FLODAC-A PURE FLUID DIGITAL COMPUTER

is a 1 in the corresponding position of the word
to be added. The second stage of the addition
process starts at the beginning of step 4 and
causes a carry pulse to be sent to the next more
significant bit position wherever the sum bit is
presently a zero and the addend bit was a one.
Means are provided to rapidly transmit the
carries to subsequent stages if the original
carry pulse would in turn produce another carry
at the next higher bit position. This carry generation and propagation ·proceeds asynchronously and could continue during steps 4 and 1,
if necessary. It is actually completed by the
end of step 4.
A brief description of the operation of the
memory may be in order here. The memory is

637

a two-dimensional matrix array using flip-flops
as the storage means.
Figure 10 is a schematic of the FLODAC
memory. Each block represents a NOR element
with four inputs and four outputs. Lines into
the left side and bottom of the blocks indicate
inputs to the elements, and lines from the right
side and top represent outputs from the elements. The memory contains four words, each
consisting of four bits of information. The
words are located in vertical columns, the right
column being the first or 00 word address. The
horizontal rows contain the same information
bit for all four words, the. top row being the
least significant bit.
READOUT

WRITE WORD
SELECT

81T1

A REGISTER BIT

81T1

READOUT
81T2

READOUT
81T3

81T3

READOUT
81T4

81T4

WORD 4

WORD 3

WORD 2

WORD 1

Figure 10. FLODAC Memory, Schematic Diagram.

638

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Writing into memory is a three-step operation. First, the memory storage location is selected by the static register and the memory select circuits. Second, a clear memory signal
from the function select erases any information
already in that word location by resetting all
flip-flops to zero. Third, the word in the accumulator is gated into the memory location by
another function select signal. The write operation utilizes three counts of the step counter
cycle.
A simple nondestructive readout is employed.
Each of the 16 memory flip-flops feeds into an
intermediate NOR element which in turn sends
a signal to one of the four memory readout elements (far right in schematic). These intermediate elements are controlled by the memory
select circuits. When a particular address· is
chosen for readout, the memory select turns off
the intermediate elements of the other three
words, thus prohibiting any output signals from
these words. Parallel operation is used. Therefore, all bits of a word are written into and
read out simultaneously.
Referring back to the overall block diagram,
Figure 9, it is seen that a manual control unit
is provided which makes possible two modes of
operation: continuous and one instruction. To
enter information into the memory of FLODAC
the computer is placed in the one instruction
mode. A word is then set up manually in the
A register, and a Transfer instruction specifying the desired memory location of the word is
set up in the static register. When the START
switch, also located in the manual control unit,
is activated, the word in the A register will be
transferred into the memory. This process is
repeated for each word to be loaded. It should
be mentioned perhaps that the act of setting a
switch consists merely in putting one's finger
lightly over a bleed hole on the control console
(Figure 11). The resulting back pressure will
then set a flip-flop or generate a fluid pulse, as

the case may be. I t is difficult to imagine a simpler form of keyboard. The contents of the A
register and static register are displayed by
using bipositional visual indicators. The indicators consist of a colored ball in a glass tube.
The balls are lifted into view by a pressure signal when the flip-flops are in the 1 state.
CONSTRUCTION, AND TEST

Production of Logical Elements
The NOR elements used in FLODAC were
made by injection-molding a thermoplastic material into a metal negative master.
The physical size of the fluid devices is a
function of the width of the power input nozzles. The widths of the nozzles used on the
FLODAC elements were either 0.016 inch or
0.020 inch. These widths were chosen because
they allowed the use of standard laboratory
fabrication techniques and equipment and afforded accessible tolerances. Increased dimensional accuracy was obtained by machining the
master from a large template five times nonnal
size and reducing by means of a pantomill.
Reducing the size of the elements with the
above fabrication method is limited by the size
of the cutting tool used in making the master.
A nozzle width of 0.005 inch might be attainable, but present photoetching processes are
able to produce still smaller and more accurate
models.

Testing the Individual Elements
Because of dimensional variations occurring
during fabrication, the characteristics of the
elements sometimes differed. It was necessary,
therefore, to set up a testing procedure to check
out all elements before using them in the
FLODAC circuits. Two testing criteria were
chosen. The first was that the pressure recovery be at least a set minimum value. Pressure
recovery is the ratio, expressed in percentage,

Figure 11. Control Console.

FLODAC-A PURE FLUID DIGITAL COMPUTER

of the output pressure to the input supply pressure. At the present state-of-the-art, the NOR
elements have a rather low pressure recovery
factor. The FLODAC elements averaged about
30 percent, although other experimental models
have reached almost 50 percent. Acceptability
for FLODAC required a pressure recovery of at
least 28 percent.
The second test for the elements was gain.
This is the ratio of the element output to the
input signal required to switch the. element. A
figure of 1.6 was chosen as the criterion here.
The supply pressure for the elements in
FLODAC was 20 inches of water (0.8 of a
pound per square inch). This means that the
output pressure would have to be at least five
inches of water and that the elements would
have to switch with less than three inches of
water input signal pressure. Elements not meeting these specifications were rej ected. All tests
were made with the device loaded with the
equivalent load of four other elements.
Method of Assembly and Testing of Circuits
To simplify construction and testing of
FLODAC, the computer was divided into two
parts. Each half consists of a power supply
manifold and three rows of NOR elements.
There is a total of 280 elements in FLODAC.
The existing circuitry requires only 250 NOR
elements, but the extra elements were added in
case replacements had to be made or for possible changes or extensions to the logic. The NOR
element power inputs are plugged directly into
the manifold. Interconnection of the elements
is done by simply connecting one of the four
outputs of an element to one of the four inputs
of the next logical element in the circuit. These
connections were made with plastic tubing.

were made, and appropriate outputs were connected to the control panel indicators. To facilitate maintenance, FLODAC was constructed
so that one side hinges out, exposing all of the
internal circuitry (Figure 12).
The entire system was then tested, and after
straightening out a few minor problems in the
circuitry, FLODAC was working reliably as an
independent, coordinated system. Figure 13
is an overall view of the finished FLODAC assembly.
Testing the Complete Computer
After all the elements had been interconnected, the system was ready for a complete
checkout. This was done by carrying out simple programs which required use of the four
computer instructions: Add, Transfer, Jump,
and Halt. Instructions were stored in the fourword, four-bit memory unit.
The FLODAC clock was capable of being
pulsed manually so that a program could be
carried out one step at a time and checked for
correctness at every intermediate step. Pressure taps connected to indicator manometers
were placed at critical points throughout the
computer circuitry. This showed the state of
the elements and greatly simplified troubleshooting.
When a program was working satisfactorily
with manual clock control, the program was
tried with automatic computer controls. In~

One side of the computer contains the clock,
step counter, instruction portion of the static
register, function table, and A register circuits;
the other side contains the control counter, address portion of static register, memory select,
and memory circuits.
The two halves were wired and tested independently. Simulated pressure signals were
used where necessary when testing the circuits
on each side. When both were working separately, the entire computer was assembled, all
the cross connections between the two sections

639

Figure 12. FLODAC Circuitry, Internal View.

640

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

the number in the accumulator on each cycle
after the first.
Alternately, memory locations 2 and 3 can be
interchanged, and in this case the accumulator
will be augmented each cycle by the number
initially stored in location 4 until it again
reaches zero. In this form 16 cycles are possi~
ble.
SUMMARY AND CONCLUSIONS

Figure 13. FLODAC.

formation was stored in the memory, the
process was started by manually pressing the
program START button, and the program was
carried out automatically.
The most comprehensive test program makes
use of all four instructions and is shown below
as a matter of interest.
Memory
Location Instruction Address Explanation

+

(A)~A

1

A

4

(4)

2

T

4

(A)~4

3

J

1

Go to location 1
if (A) =1= 0000;
otherwise go to
location 4.

4

xx

xx

Arbitrary number; or Halt instruction if 0000.

This program takes an arbitrary number
(stored in memory location 4), adds it to the
accumulator, transfers the sum back to memory
location 4, tests to see if the number in the accumulator is now zero, and repeats this process
automatically until the sum in the accumulator
is zero. When this condition is reached, as it
must be after at most five cycles, the Conditional Jump back to 1, stored in memory location 3, is not carried out, and the program
moves on to memory location 4. The content of
memory location 4 is now 0000, which is interpreted as a Halt instruction, and the computer
stops. The above program, of course, doubles

The individuai reiiabiiity test given to each
component NOR element greatly reduced the
probability of encountering any serious prob~
lems during the final checkout of the system. A
few minor logic and performance problems did
show up, but these were easily traced and cor~
rected. FLODAC was operating reliably only a
few weeks after construction was begun.
The nominal clock rate of FLODAC is ten
cycles per second. This was chosen to avoid
wave propagation and reflection problems
which are potential dangers at not very much
higher frequencies because of the long lead
lengths involved and the lack of attention given
to exact impedance matching. It should be
pointed out that the speed of fluid signal propagation in air is almost one million times
slower than the speed of signal propagation in
electric wires. Thus, from the point of view of
signal wave length, a frequency of ten cycles
per second using air as the working medium is
analogous to a frequency of ten megacycles in
electronics. Simpler circuits built with elements
identical with those in FLODAC, but compactly
packaged, have operated with clock frequencies
as high as 250 cycles per second.
FLODAC has amply demonstrated that a
pure fluid general-purpose digital computer is
indeed feasible. The question remains: Is such
a computer desirable? There are many areas
in which fluid logic cannot hope to compete with
electronic logic simply because of the speed Umitations inherent in fluid systems even if the ut~
most advantage is taken of parallel and poly~
morphic operation.
Conversely, however, there are areas involv~
ing extreme environments, such as very high
radiation levels or very high temperatures,
where present-day electronics cannot hope to
compete with fluids, and here fluid logic may

FLODAC-A PURE FLUID DIGITAL COMPUTER

supply the only means of solving many pressing
military and space science problems. Between
these two extremes there is a vast area where
fluid logic does appear to be competitive with
electronics and where the advantages and disadvantages of both approaches will have to be
carefully studied. This area includes such devices as adding machines, desk calculators, tabulating machines, process control computers,
and such peripherals as keyboards and punched
card and paper tape readers. Here, timing
rates are frequently below a kilocycle, and the
speed disadvantage of fluid amplifiers disappears. Here too, the tremendous cost advantage plus the postulated reliability advantage
makes fluid logic look very attractive indeed.
It may further develop that, given sufficient
cost and reliability advantages, the marketplace
may well learn to live with slower computing
speeds for small general-purpose computers.
The authors believe that there is a vast role
to be played by fluid technology in the computer
field, and this view is shared by their company.

641

UNIV AC's FLODAC is the precursor of what
we hope will be long series of useful pure fluid
systems of increasing complexity and decreasing cost.
REFERENCES
1. AUGER, RAYMOND N., "Pneumatic Computer
Research in the USSR," AUTOMATIC
CONTROL, Vol. 13, No.6 (December 1960),
pp.43-48.

2. Refer to parts A through F of the Diamond
Ordnance Fuze Laboratories, "News Release" for March 2, 1960.
3. COANDA, H., "Precede et dispositif pour
faire devier, une veine fluide penetrant autre
fluids," Patent No. 788,140 (France), 217,
1934.
4. Fox, H. L., "A Comparison of the Reliability of Electronic Components and Pure
Fluid Amplifiers," Proceedings of the Fluid
Amplification Symposium, October 1962,
Diamond Ordnance Fuze Laboratories,
Washington 25, D. C.

DESIGN AUTOMATION UTILIZING A
MODIFIED POLISH NOTATION
William K. Orr and James M. Spitze
Friden, Incorporated
San Leandro, California
INTRODUCTION

THE EC/130

Our first objective in developing the Design
Automation (DA) System described herein was
to produce and maintain, using a digital computer, the manufacturing and field service documents for a small electronic calculator. However, as a long range objective we wanted a
system capable of handling the documentation
for virtually any digital computing device, and
aiding in certain design functions. On the surface this appears to be the very task performed
by existing DA systems but as it turns out the
construction techniques used on the calculator
give rise to problems not normally handled by
th~se systems.

To give the reader some idea as to the size
of the device we set out to document, we mention here a few of the features of the Friden
electronic calculator model EC/130. In addition
to those features normally associated with desk
calculators the EC/130 (cf. Figure 1) has a
four high push down stack as well as auxiliary
storage. All stack information is stored on a
magnetostrictive sonic delay line and constantly
displayed on the cathode ray tube shown in
Figure 2.
The EC/130 is a low cost high production
item on which great engineering effort has been
expended to reduce size and cost to a minimum.
As a result of this intense engineering effort
the degree of standardization is minimal. No

Because of the wide variance between existing and anticipated construction techniques, it
was decided to use Boolean equations as the
basic input. The equations are written in a
modified form of Polish notation which enables
one to very effectively relate the logic to the
hardware for trouble shooting purposes. Along
with the equations a description of each gate,
flip-flop, etc. is input to the system. The form
of these descriptions readily accommodates
most types of hardware implementation.
This paper is based upon our experience in
documenting the design of a small electronic
calculator. We shall indicate, as we go, how the
system is generalized to handle other digital
computing devices.

Figure 1. Friden Electronic Calculator Model EC/130.

643

644

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

Figure 2. Vic"\v of Calculator Packaging.

standard building blocks, such as flip-flop
modules, are used. For a basic circuit type (i.e.
amplifier, flip-flop, etc.) used n times, there are
typically n/2 different circuit designs.
The basic constructional unit in the EC /130
is a printed circuit card such as the one pictured
in Figure 3. Each card contains from 400 to
500 components. For purposes of automatic
insertion each lead of a component is located
on a point of a .050 grid. Thus, each hole on a
circuit card has an ordered pair of numbers
(x,y) associated with it giving its position relative to this fixed coordinate system.
To document the logic of the EC /130 and yet
be able to handle other more complex systems,
we needed a descriptive language which is hardware independent and yet can be related to any
type of hardware implementation. For this reason we chose Boolean equations as our basic
input. The particular format in which the equations are written was devised to facilitate the
process of relating the logic to the hardware ..
MODIFIED POLISH NOTATION
Any digital computing device is logically a
set of interconnected "elements," where for our

purpose we define an element as any combination of components which has a clearly definable
function with the exception of AND gates, OR
gates, and INVERTERS. For example, flipflops and drivers are considered elements. When
the elements of a computing device are combined, they are combined using AND and OR
gates. Thus, all such combinations can be described using Boolean equations. 1 Boolean
equations have been used by other manufacturers to describe equipment designs;2,3 however, we chose not to use the standard Boolean
notation for an equation written in this notation cannot be conveniently related to the corresponding hardware. There has also been some
work done, on an experimental basis, using a
combination of block diagram and Polish notation features as the descriptive language. 4 We
avoided the use of block diagram features for
their use tends to destroy the continuity of an
equation line.
A characteristic of most logic block diagrams,
such as the one in Figure 4, is that the inputs
( operands) are always shown to the left of the
associated gates (operators). A notation using
this form of operand-operator ordering is the
notation of Lukasiewicz, 5 the so-called Polish
notation. In this notation the input to the three
legged OR gate of Figure 4 would be written
AB + C +.
In the usual Polish notation each operator is
a binary or unary operator in the sense that it
operates on not more than two operands. Let
us consider the operators + (or) and • (and)
as not binary but n-ary. Then the expression
AB + C + could be written ABC +. If we
allow the scope of an operator to extend over n
operands we must in some way delimit this
scope. To delimit operator scope and also to
enhance readability we use parentheses. With
the scope of the operators extended and parentheses added to the notation we now write the
equation equivalent to Figure 4.
II = (A B C +) (D E +) •

Figure 3. Typical Printed Circuit Card.

(i)

Figure 5 illustrates how equation (i) is related
to the hardware. The location of a given gate
input (Le. the point at which this input may be
tested) is printed directly under the name or
gate where the input signal originates. For ex-

DESIGN AUTOMATION UTILIZING A MODIFIED POLISH NOTATION

ELEMENT
0003

A - -.....

+

8----1
C----1

645

JK0203C

0 - -....
E---I

'-"----11 I I'

•

I

+
JKOIOI QB
Figure 4. Logic Block Diagram.

ample, the quantity printed under the name A
(A being the naine of a particular element output), indicates where the signal, A, is connected
to the OR gate (the reader should refer to
Figure 4 where some of the location information has been indicated). The AND gate output is the input to an element hence the location
of the element input is given in line 0003.002.00
rather than under the AND gate itself. The
indication here is that the particular element
input can be found on circuit card JK at
(01,01), the component at JK0101 is a transistor (Q) and the lead of interest is the base (B)
lead.
It is important to note that the continuity of
equation (i) is completely retained in Figure 5,
and the clear separation between the logic and
hardware information enhances readability.
Further, the format in which the location information is printed reflects the structure of
the schematic of Figure 4.
A gate, G, is said to be at "logical level" j if
there are j-1 gates interposed between G and

!

II

the named input signals. For example, the
AND gate in Figure 4 is at logical level 2. The
full importance of the logical level indication
(cf. Figure 5) is clearly evident when an equation is longer than one line. Figure 6 serves to
illustrate how equations of arbitrary length are
handled and also supplies those details missing
from Figure 5.
Figure 6 is typical of the form that an element description takes. Line 0132.00.00 is the
heading line and contains the element name, the
element function code and the latest element
revision letter. Line 0132.01.00, contains the
name and location of the element output. The
gate reference line, 0132.02.12 contains the construction file reference (discussed in a later
section) for each gate in the input equation. In
the modified Polish notation there is a one-toone correspondence between operator symbols
and hardware gates. The correspondence between the symbols and the associated references
is thus determined by the order in which the
gates appear in the equation. The remarks

ELEMENT REFERENCE NO.
EQUATION NO.
REFERENCE LINE NO.
~ ELEMENT INPUT

0003.02.00 JKOfOIQB
02.01

01

02.02

02

II=(A

B

C

+)

(0

E

+)

•

N PI3260A NPI3280A NPI3250A NP21110A NP21120A::7LOCATION
JK0203C

L- Figure
LOGICAL LEVEL
5. Logic Schematic Corresponding to Figure 4.

JK0202R

OF

GATE INPUTS

646

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964
0132.00.00 EPCSTEP6 INV
AA
01.00 JK0627QC 01- EPCSTEP6
02.00 JK0528R
02.01
01
02.02
02
02.03
03
02.04
04
02.05
05
02.06
06
02.07
07

11= ((DPCTRO /
DPSTORFN +)1
COMDIGfN +J I
NP0611DA
NP0812DA NPI761DA
NP0809R
NP0412DA NP0411 DA
NP0409R

JKI710DA

01
02
03
07

02.12
02.13

EPCTR4FN +

NP0212DA NP0211DA NP0329DA

(EPCTR2FN
02.08
02.09
02.10
02.11

DIVFF

JKI425 R

HOME

0

(NBI5T

JKI009C JK2106R
J K0336DA

NSHIL')

DPSFN +)/+

JK2207C
JK0529DA JK0632DA
J K0932R
JKI711 DA

0050 0061
00700098 0099 0100 0101 0131
0120 0125
0126
OUTPUT FAILURE
RESULTS I N STACK I SHifT LEFT ERRORS

Figure 6. Computer Generated Logic Schematic.

line, 0132.02.13, is used to convey trouble shooting information to the service man.
In Figure 6 there are two lines with a logical
level indication of 07. Thjs implies that the inputs to the gate at level 07 are from elements
or gates implied by two lines of the equation. In
general, the logical level indicates the relationship between the location information associated with one line of an equation and that of
another.
The information which the DA system uses
to produce the logic schematic (cf. Figure 6)
consists of the construction file and the input
schematic pictured in Figure 7.

It may seem that we have gone out of our
way to eliminate one of the most important features of the Polish notation, namely, that it is
parenthesis free. However, keep in mind that
at the outset we were after a notation that is
convenient to use in design documentation. We
have traded those features of the Polish notation which facilitate mechanical translation for
features which add to the power of the notation
for our use in documentation.
RELATING THE LOGIC TO THE
HARDWARE
It is an inherent requirement of the DA system that its output fulfill the documentation
needs of both the production and field service

013200 EPCSTEP6

INV

013201

01= EPCSTEP6

013202

II=(CDPCTRO

013202

(EPCTR2fN
0050

0061

/
HOME'

departments. At the outset of the system design it was assumed that these needs would be
relatively compatible, i.e., that information
generated in a format acceptable to one department could be effectively utilized by the alternate department with only a minor amount of
reformatting. That this is not the case' becomes
evident when one considers the differing needs
of the two departments. Whereas a repairman
is interested in finding a circuit point as quickly
as possible, the production line requires the
precise location and size of each lead associated
with a part for automatic drilling and part
insertion.
Referring to the circuit card picture (Figure
3) , a repairman can more easily locate a circuit
point if he is given the location in terms of
visual ~olumns and rows (note the repairman's
removable plastic scale on the left margin of
the card) than if he is given the location in
terms of the .050" co-ordinates used in the card
production. To provide visual co-ordinates to
the field service department and absolute .050"
co-ordinates to the production department, an
updatable visual-to-absolute transformation file
is maintained as a portion of the part file. The
part file also contains an updatable dimensional
description of each part used in the ECj130.
Using the transformation file, the system performs automatic visual-to-absolute co-ordinate
transformation as the need arises. Given the
transformation file and dimensional informa-

DPSTORFN+J'
(NSI5T

00700098

NSHIL'J

00990100 0101

COMDIGFN+J/

DIVFF

EPCTR4FN

DPSFN +l"+
0131 0120 0125

0126

OUTPUT FAILURE RESULTS IN STACK I SHIFT LEFT ERRORS

Figure 7. Input Schematic From Which Figure 6 Is Generated.

+

DESIGN AUTOMATION UTILIZING A MODIFIED POLISH NOTATION

tion for a particular part, only the visual location of one lead of the part and a one digit
orientation code need be mentioned for the system to automatically determine the absolute
location of all of the leads of the part, thus
minimizing the input description of the ECj130
circuits as they appear in the construction file.

As an example, consider a transistor (Part
No. 223297) on card NP with its base lead located with a relationship to visual column 17
and visual row 14 defined by an orientation code
of 1. To completely locate this part, the system
input is NP 17 14 1 223297 and the output is as
sketched below:

NUMBER

NAME

LOCATION

LEAD

HOLE SIZE

223297

2N1499

NP 159-052
161-054
161-050

B
C

.026
.026
.026

The base lead (i.e. "key lead") is precisely located with reference to its nearest co-ordinate
intersection by the orientation number which,
through the transformation process, specifies
the exact location of the transistor. For all
parts other than transistors the orientation
code indicates the relationship (up, down, right,
left) of a part's second lead to its key lead.

E

ble size, the system was modified to handle tne
visual co-ordinate and key lead ideas. The immediate effect was a great improvement in DA
system acceptance.

Experience has shown the value of the two
co-ordinate system described above. At an early .
stage in DA system development, only the .050"
grid co-ordinates were used with all leads of a
part being specified. Although the production
deparhl1ents could get their docunlents with
ease, the field service repairmen and the
writers of the input documents were tied to the
same production oriented requirements with
a negative effect on DA system acceptance.
Recognizing the visual division of pri~ted circuit card parts into rows and columns and the
red(undant nature of specifying more than a
part's first lead when the part was not a variaFRIDEN

It should be stressed that the key lead concept
can be easily extended by a simple change to
the transformation programs to handle multilead modules of the type commonly found in
large digital devices. The fact that the ECj130
'is a very small electronic device should not
obscure the more significant fact that the basic
DA concept described herein is designed to be
applicable to much larger systems.

THE CONSTRUCTION FILE
Recognizing the prior entry of a part file and
co-ordinate transformation file, the first major
system input is the construction file, an example
of which is shown in Figure 8. NOTE: (1) Figure 8 is an example of the printed output of the
construction file, (2) the revision code ("AF"

INC

PAGE 020.00AF

E C / 130 CONSTRUC TION FI LE

REV
LTR

AF

AF

REF-LINE
INSERT
010.0
012.0
0132.000.0
002.0
004.0
006.0
007.0
009.0
0133.000.0
001.0
002.0

LOCATION

T

L

0

032
030

D
R
R

A

2

JK004
JK005
JK005
JK005
JK006
JK006
JK006
JK005
JK006

028
029
027
027
027
026
023

Q

JK006 024

D

C
R
Q

R
D

2
B
C
A
C
A

A

P

647

PART NUMBER

0223292
0223392
0223403
0804083
0804044
0223297

IN
OUT
1.5
01
II

PART
DESCRI PTI ON
IN662
12K 5PC 1/2W
6.8K 5PC 1/2W
680 PF lOPe 200V
22K5PC 1/2W
2NI305

REMARKS

HIGH SPEED INVERTER
(WATCH OUT FOR
VALUE CHANGE S IN
680PF CAP.)

01
2

0223257
0223292

II

10K 5PC 1/2W
I N662

2

0223292

12

IN662

Figure 8. Construction File.

fOUR INPUT OR GATE
INPUT 2 IS HEAVILY
LOADED

648

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

in the example for both page and circuit) is
determined by the DA system, and (3) the
"Part Description" information is obtained
from the part file at print time and is not part
of the construction file input.
The construction file is a sequential undatable listing of the various circuits used in a
digital device, and requires as input: (1) the
number and location of each part, (2) a code
for each circuit input/output, (3) a file reference number (of the form: Circuit, Line, Insert digit) used for file searching, (4) any
remarks pertinent to the construction of the
circuit, and (5) several coded entries explained
below. The combination of circuit reference
number and I/O code is the search key used by
the DA system to obtain the hardware location
of the inputs and outputs of Logic Schematic
elements, gates, and inverters. It should be
noted that the input codes for a particular gate
are determined by the order in which these
inputs appear in the equation. Typically, only
one construction file entry line is needed for
complete specification of a part.
Anyone of several non-zero entries in column
A (absolute) permits entry of mixed (visual
and/or .050") grid co-ordinate information for
those parts whose shape does not permit them
to be located in the normal relationship to the
visual grid. Entries to columns T (part type)
and L (lead code) give additional information
about the circuit component and are used:
(1) as sorting flags for the production oriented
documents and (2) to assist the servicemen in
accurately finding a given part. The Column 0
(orientation) entry describes the orientation
of the part with reference to its key lead. Column P is used in EC /130 construction to indicate a plated hole in a circuit card. A normal
part entry requires no entries to Columns 0, A
or P.

The construction file occupies a central position in this DA system. It is the source file for
the input/output location information appearing in the Logic Schematic printout, and for
generation of the various production oriented
documents: from the Construction File, control
information is produced for automatic insertion
machines and automatic drilling machines; and
by-product documents, such as bills-of-material,
are produced as requested by various company
departments.
ADDITIONAL FIELD SERVICE
DOCUMENTS
Besides the Logic Schematic there are two
other field service documents: a glossary of
terms and a logic block diagram. The Logic
Block Diagram is manually drawn and shows
how all the elements of the Logic Schematic are
interconnected to form the EC /130 system.
Groups of gates (represented as Boolean equations in the Logic Schematic) are shown as
single blocks referenced to the appropriate
Logic Schematic equation. The Logic Block
Diagram is used as a field service reference and
training aid.
The Logic Schematic File is the major data
source for the Glossary of Terms. A list of (1)
the names used in the Logic Schematic Boolean
equations and (2) the names of each Logic
Schematic element output is generated. This
list (containing the names and associated element numbers) and a card deck giving prose
definitions of the various names are used to
construct the Glossary of Terms.
The four columns of the Glossary of Terms
(Figure 9) are defined as follows: Column #1,
Boolean variable name; Column #2, elementequation having this output name (if the name
is used in an equation but does not appear as
an element output name, the words "EXT.
INPUT," i.e., "External Input," appear in this

FRIDEN
INC
EC/130 GLOSSARY OF TERMS
TERM

DEFINED AT

ENTERKEY EXT. INPUT
EPCSTEP60132.01

EPCSTPIN

0142.01

PAGE 07.00AF

USED IN EQUATIONS
0182.02 0183.02
0087.050091.060161.04
0185.02
0307.05
0310.05
0183.02
0236.02
0264.04

DEFINITION
ENTER KEY

0254.02
0308.05

0306.06
0309.05

ENTRY PHASE COUNTER STEP 6 OUTPUT INYERTER
FAILURE WILL RESULT IN STACK I SHIFT LEFT
ERRORS ENTRY NG. ADD OK. SUS OK .MULT NG. DIY
NG

0185.02
0249.02
0264.06

0232.02
0254.02

ENTRY PHASE COUNTER FLIP-FLOP I RESET
FAI LURE WILL RESULT IN STAct\ SHIFT UP ERRORS
ENTRY NG (MAYSO,SUS NG. MULT NG, DIY NG

Figure 9. Glossary of Terms.

649

DESIGN AUTOMATION UTILIZING A MODIFIED POLISH NOTATION

column); Column #3, element-equation numbers where this variable is used; Column #4,
prose variable definition.
The Glossary of Terms is the repairman's
entry point to the field service documents. In
many cases, a brief examination of a digital
computing device will indicate its major malfunction. For the EC/130, once this is done,
the Glossary of Terms indicates those elements
affected by the particular problem and, from
this point, reference is made to the Logic
Schematic and, if necessary, to the Construction File. Note that the variable names are
carefully chosen to be as closely related to their
function and as easily understood as possible.
ENGINEERING CHANGES
An important reason for the existence of a
DA system is to decrease the time lag between
the decision to make a product change and the
carrying out of this decision. The DA system
described herein permits rapid additions,
changes or deletions to all the files: part file,
card co-ordinate transformation file, construction file, logic schematic file, glossary, etc. Any
change to one file is automatically carried
through the system and reflected as necessary
in all subsequently maintained files. As an
example of the checking involved in the carrying through of changes, before the Logic
Schematic is printed, an automatic check is
made to determine if the hardware implied by
the Logic Schematic has been properly specified
in the other system files.
In the case of the many paged major output
documents (i.e. Construction File, Logic Schematic, Glossary of Terms) only the changed
pages are printed. These files have associated
with them an internally updatable page control file giving page limits and revision codes
(for each page). These files are built during
the first generation of their related printout,
with the page limits being set to waste as little
paper as possible while trying to prevent their
parent file's basic unit of information (i.e. construction file, circuit; logic schematic, equation;
glossary, name) from spreading from one page
to the next.
A problem of intrinsic interest is that of
adding to (deleting from) a page other than

the last one of a file. At first glance this would
push down (up) all subsequent pages causing
a potentially excessive printout of mostly unchanged information. To avoid this problem,
each page is looked upon as an extendable unit.
Additions to a page cause its being printed on
more than one sheet of paper with page indications of the form: Page 011.00AB, Page
011.01AB, etc. The page revision letter is updated whenever a page is changed thus precluding the existence of dissimilar pages with
the same page designation.
SYSTEM SUMMARY
The DA system described herein is comprised
of seventeen computer programs. Figure 10
gi ves an overall view of the system. The card
inputs, on the left of the figure, are the changes
(additions, deletions, corrections) to the various files. The outputs, on the right of the
figure, will occur only when required by a
change. Immediately preceding the printing of
the Part List, Construction File, or Logic Schematic there can occur an error listing indicating all detectable improper file changes.
CONCLUDING REMARKS
The system we have discussed is most properly a system for lVIechanized Design Documentation. However, in view of the fact that
logical equations are our basic input we can
provide various forms of design assistance,
such as, logic simulation, load analysis and
some of the more exotic things such as module
placement and cost approximation.
One of the unmentioned merits of the system
discussed is that it was very simple to implement. The system was designed and the necessary computer programs written for a Honeywell 400 computer in six months. This made
it feasible to do the documentation for a machine as small as the EG/130.
The initial reaction of new personnel to the
DA system and especially to the logical equation notation was one of mild horror. However,
as they began to use the system, this attitude
disappeared. In fact, it is now felt that the
Logic Schematic is a more useful aid to the
trouble shooter than the conventional circuit
schematic normally supplied.

"

650

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

PART FILE

1----_

CARD

(I) PART LIST

(2) CARD CO-ORDINATE LIST

CO-ORDINATE
FILE

CONSTRUCTION
FILE

INPUT SCHEMATIC
1---_ _ (I) LOGIC

SCHEMATIC

(2)GLOSSARY OF TERMS

VARIABLE
DEFINITIONS

Figure 10. DA System Diagram.

ACKNOWLEDGMENTS
We are indebted to Messrs. L. P. Robinson
and G. H. Hare for their help and encoura.gement throughout the development and implementation of this system. We would like also
to express our appreciation to Messrs. A. M.
Gould and R. A. Ragen who were responsible
for the design and documentation of the
EC/130.

familiar with the use of Boolean equations
in logical design).
2. GORDON, W. L.: Data Processing Techniques
in Design Automation. Proc. Eastern Joint
Computer Conference (1960), 205.

REFERENCES

3. HANNIG, W. A., and T. L. MAYES: Impact of
Automation on Digital Computer Design.
Proc. Eastern J oint Computer Conference
(1960), 211.
4. PREISS, R. J.: An Experimental System for
Logic Design Data Accumulation and Retrieval. Proc. IFIP Congress (1962).

1. PHISTER, MONTGOMERY, JR.: Logical Design
of Digital Computers (1959). (This is a valuable reference for the reader who is not

5. LUKASIEWICZ, J.: "Aristotle's Syllogistic
from the Standpoint of Modern Formal
Logic." Oxford, 1951.

SYSTEMATIC DESIGN OF CRYOGENIC LOGIC CIRCUITS*
C. C. Yang and J. T. Lou
Computer Sciences Laboratory
The Technological Institute
Northwestern University
Evanston, Illinois
INTRODUCTION

cells. This paper is concerned with the systematic design of cryotron logic circuits for such
storage systems. No constraints are imposed
upon the logic functions to be synthesized. However, emphasis is placed upon three-terminal
cryotron gate networks to realize complementary logic functions.

In recent years considerable interest has been
manifested in the fields of information storage
and retrieval and pattern recognition. An important element in the design of informationretrieval systems and pattern recognition devices is associative memory 5, 10-13, 15. An associative memory is particularly suitable for
search of a record from a large file, the sorting
of data into an ordered list 9, 10, 12 and the
identification of patterns. Cryotron circuits are
important components in the construction of
an associative memory system. Despite this importance and though cryotron technology has
been actively developed for some year~, it is
still in its infancy.

USE OF COMPLEMENTARY LOGIC
FUNCTIONS
The design of cryotron logic circuits discussed here involves the realization of complementary logic functions. In a cryotron circuit
each single gate has a resistance of the order of
0.01 ohm in the resistive state, and zero resistance in the superconducting state. If the
resistive state is identified as "0" of a binary
variable and the superconducting state is designated as "1," the two states are rather difficult to distinguish from each other because
of the small difference in resistance which corresponds to a small difference in current or
voltage of the circuit. To improve the reliability of cryotron-circuit operation, use of the
complementary logic functions are proposed.

(

An associative memory is designed to perform simultaneous comparisons of all stored
information with the interrogating bits. Thus,
in an associative memory system the memory
cells should be able to read and write and the
switching circuits should be able to perform
comparisons.
Cryotrons have been recognized as the elements most suited to the construction of such
a system. They are ranked among the most
challenging components in the digital computers to be designed.

An elementary cryotron circuit consists of
two separate branches representing a state and
its complement. If one branch is superconducting, the other is resistive. The superconducting
path allows the entire current to pass through;

In an associative memory system switching
circuits playas important a role as the memory

* The work reported here was supported in part by the National Science Foundation and the Office of Naval
Research.
651

652

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

the resistive branch blocks the flow of the current. Thus the superconducting branch, or nonzero current condition, designates the "1" bit;
and the resistive branch, or zero current condition, designates the "0" bit. This logic circuit
can be designed systematically by using a serial-parallel branch which realizes a given logic
function and another branch which realizes the
complement of that function.

1
2

:s.
X
2

Control
l-lindings

X:!.
m
X
m

Relay
Contact

II

1
2

Network

ttxoueh

-

m

f l (X )
m
f (X )
2 m
fn(X )
m

Figure 1. Block Diagram of a Multi terminal Relay
Switching Circuit.

An alternate method of designing a cryotron
logic circuit is to synthesize the given logic
function by using a controlled by-pass branch.
Whenever the main branch becomes superconducting, the by-pass branch is changed to resistive or is disconnected from the circuit by a
selection and control circuit. Conversely, when
the main branch becomes resistive, no matter
how small the resistance may be, the by-pass
branch is made superconducting to allow the
entire current to flow. This method may require a smaller number of cryotrons but the design is complicated by the selection and control
circuits.

be designated as a "0". Each cryotron gate is
in one of its two stable states: the superconducting state or the resistive state, which may
be designated as "1" and "0," respectively. The
state of the relay contact is changed by application of a sufficient current to its relevant control winding. Similarly, the superconductiveto-resistive (or vice versa) state-transition of
the gate is accomplished by passing an appropriate current through its associated cryotron control. In both cases the state transition
is entirely independent of the direction of the
control current, but dependent on its magnitude.

This paper is primarily concerned with the
systematic synthesis of cryotron circuits to realize the complementary logic functions. Each
cryotron circuit is split into two parts: the control circuit and the gate network. Each gate
in association with a relevant control is an
integral circuit element which forms a cryotron.

A single relay winding may control several
pairs of relay contacts, each pair of which is
known as a transfer-contact. One contact is
normally open and the other normally closed.
Each cryogenic switching device, as developed
in this paper, may control a number of gatepairs, each pair having the same variable assignment. The maximum allowable number of
cryotron controls in a single switching device is
limited by the resultant inductance of the serial
cryotron controls in each load circuit of this
device. On a single relay a number of transfercontacts may be used, so long as the maximum
allowable number of springs is not exceeded.

CRYOTRON SWITCHING CIRCUITS VS.
MULTITERMINAL RELAY NETWORKS
In view of the analogies between cryotrons
and relays as well as their respective switching
circuits, the techniques originally developed for
the synthesis of transfer-contact relay networks
may be applied to synthesize a three-terminal
cryotron gate network with complementary outputs, or to synthesize a two-terminal cryotron
gate network with a by-pass branch and the
necessary selection and control circuit. Resembling the multiterminal relay network illustrated in Fig. 1, a cryotron switching circuit
may be characterized by a block diagram as
shown in Fig. 2. Their similarities and differences are discussed below.
Each relay contact has two stable states:
"open" or "closed." The "closed" state may be
identified as a "1" and the "open" state may

For convenience of analysis a multiterminal
relay switching circuit may be split into two
parts: the control winding arrangement and
the contact network as shown in Fig. 1. A cryo-

Cryotron
Gate

1
COnstant

Current

2

I

°1

Sources

m

~

-

F(\t)

Network
°2

ptX )
m

Figure 2. Block Diagram of a Cryotron Switching
Circuit with Complementary Output Functions.

SYSTEMATIC DESIGN OF CRYOTRON LOGIC CIRCUITS

tron switching circuit may likewise be split into
two separate networks as shown in Fig. 2.
There are, however, several differences between them. While each transfer-contact with
its complementary variable assignment Xi and
Xi is controlled by a single relay winding, each
pair of gates assigned by Xi and Xi is generally
controlled by its respective cryotron controls;
but the current which passes through one of the
two controls at a time is determined by a single
cryogenic switching device. Thus the complementary gate-pairs may be considered equivalent to the transfer-contacts and the switching
devices equivalent to the relay windings.
While the variables Xi and Xi are assigned,
respectively, to the normally open and normally closed contacts of a transfer-contact relay, their truth values are: Xi = 0 and Xi = 1
when the relay is not operated. These values
are changed to
and
when the relay winding is excited by sufficient
current, at which time the relay is operated.
The variables Xi and Xi are assigned to two
separate ct;yotrons. One cryotron gate which
is represented by Xi is considered to be normally superconducting without critical or overexcitation, i.e., the current passing through its
control is below the critical value for gate statetransition, or even zero. The other, normally
resistive gate, is assigned by the variable Xi.
The resistive state is maintained by the application of a sufficiently large current in the control. The change of the variable truth value is
accomplished by switching a current from one
control circuit to the other, or vice versa. For
example, the normally resistive gate which
represents the variable Xi = 0 is changed to
Xi = 1 when its control current is transferred
to the other cryotron control to make the latter
cryotron gate resistive, i.e., Xi = O. In other
words, two cryotrons each of which includes
a "control" and a "gate" are needed for the
selection of the variables Xi and Xi ; but in the
relay circuit a single transfer contact relay
winding can obtain this result.
Although the cryotron gate network, like the
relay contact network, may have n outputs each
of which fulfills a different logic function
among f1 (Xm ) , f2 (Xm ) , • • •• fn (Xm ), where

653

m indicates the total number of distinct complementary variable-pairs, the series-parallel
connection of only two outputs which represent
the complementary functions F (Xm ) and
F (X m ) is generally adopted, as previously described. By taking advantage of these existing
similarities several well-developed synthesizing
methods-particularly the techniques of cascading three-terminal subnetworks with complementary outputs, the tree configuration, and
the symmetric network4-may be employed for
the realization of logic functions by means of
cryotron circuits.
CRYOTRON CONTROL NETWORK
A cryotron control network for use in controlling the gate states follows. This network
consists of m elements if the gate network is
composed of m distinct complementary gatepairs. Each element here is called a control
current switching device, shown in Fig. 3. Its
structural skeleton was originally proposed by
Buckingham3 and later studied by Vail and his
co-workers.16 However, its mode of operation
as herein proposed is entirely different.
As here conceived, each of these devices is
used for controlling a pair of complementary
cryotrons which are labeled Xi and Xi and
shown in Fig. 3. Each device, however, may
control several gate-pairs if all of them are assigned by the same Boolean variables. The
terminals P 1 and P!2 of the primary loop are
connected to a· current source of pulses or even
sine waves. The terminals S1 and ~ of the
secondary loop are connected to a constant direct current source I d. Suppose that the primary current Ip is a positive pulse applied in
the direction indicated by the arrowhead in
Fig. 3. The secondary current Is is induced
counterclockwise during the leading edge of Ip.
If the current Id takes the direction indicated
in the diagram, the current Is and a part of Id
xi

:----1

d

~

I

'- ____1

Figure 3a. Cryogenic Control Current Switching Device
for the ph Cryotron-Pair.

654

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Ied

Figure 3b.

Equilibrium eCurrent Distribution in the
Equivalent Graph.

ductance differences of the connecting paths bd
and cd with respect to the arc bc inductance,
must be kept as small as possible and the m devices therefore should not be connected in series
and use a common source ld unless the arc bc
inductance is made large enough to keep these
differences small.

become additive while passing through the arc
ac. The resultant current is sufficient to make
the arc ac temporarily resistive and thus~ the
current taking the shorter superconducting
path abd which includes the control circuit of
the cryotron Xi is large enough to make the
gate Xi resistive; but the gate Xi remains
superconducting because the current taking the
longer path abcd which includes the control circuit of the cryotron Xi is less in value. This
means that a bit "I" is transmitted through the
Xi gate circuit.

Referring to Fig. 3 and assuming that the
switching device is symmetric in construction,
the arcs ab and ac have the same inductance
values (Lab = Lac) ; this is equally true of the
load paths bd and cd whose values are (~d =
Led), The distribution of current components
are shown in Fig. 3 (b). Their magnitudes are
found to be:
Illb = Id
(la)

It should be noted that no current flows from
ld through the arc ac once it becomes resistive
until a second induced current I's is made to
flow clockwise around the secondary loop during the trailing edge of Ip. At that time the arc
ab is made temporarily resistive. The cryotron
gate Xi is changed into resistive because of the
larger current which passes through the path
acd.

Each of these currents flows from the node indicated by its first subscript to the node represented by the second subscript

The switching action takes place only when
the primary current Ip is changing either at the
leading edge or at the trailing edge of the applied pulse Ip. This implies that a sine wave
current source may be used to take advantage
of easy frequency control as well as phase adjustment.

If the current source Id is removed, persistent
currents hI and Ip2 will circulate in the loops
abca and abdca, respectively, and are given by

When there are m distinct gate-pairs in the
gate network, a total number of m control current switching devices are needed. The secondary circuits of these m devices may be connected in parallel and supplied by a common
direct current source with a magnitude mId, or
each device may be supplied by a separate
source I d. In the secondary circuit of each device, the distribution of Id between the two
parallel superconducting paths bd and bcd (if
once the arc ac bec9mes resistive) or cd and
cbd (if once the arc ab becomes resistive) is
inversely proportional to the inductances of
those paths which differ only in the small
amount of inductance of the arc bc. The in-

Ibd = (Lbe

+ Lbd ) Id /

Ibe = led = Lbd Id /

+ 2 ~d)
(~e + 2 ~d)
(Lbe

(lb)
(lc)

The current component Ibd must be large
enough to maintain the gate Xi in its resistive
state; but the current led passing through the
control Xi must be insufficient to transit the
state of the gate Xi'

hI
h2

=
=

~d

~d

Id / (Lbe + 2 ~d)
Id / 2(Lbc + 2 ~d)

(2a)
(2b)

The removal of Id from the device is equivalent
to the superposition of another Id with reversed
polarity on the original I d. Since this device is
assumed to be a superconducting circuit of a
balance bridge type, the reversed Id alone is
distributed in each of the paths ba, db, dc, and
ca with a magnitude Id / 2 and a reversed polarity with respect to Eq. (1) . When these
currents and those shown in Eq. (1) are superimposed in each path, the resultant branch currents in the equivalent graph are:
I~b = ld / 2

+ 2 L bd )
(4c + 2 L bd )

I~d = Lbc Id / 2 (Lbe
I~e = Lbd Id /

(3a)
(3b)
(3c)

SYSTEMATIC DESIGN OF CRYOTRON LOGIC CIRCUITS

I~c = ~c Id / 2 (~c

+2L

I:a = Id / 2

bd )

3. Different variable-pairs should be distributed as uniformly as possible throughout the synthesized network to equalize
the inductive loads among the control current switching devices.

(3d)
(3e )

We can convert these branch currents into two
loop currents which circulate in the loops abca
and abdca and thus form the persistent currents, as described in Eq. (2) and shown in
Fig. 4. However, when the Id source is reapplied, the original current distribution shown
in Fig. 3 (b) and given by Eq. (1) is recovered.
Therefore these persistent currents will not
cause an unsatisfactory result.

655

Three methods of synthesis procedure follow:
A. Synthesis by Cascading Three-Terminal
Sub-N etworks

Use of this method entails the following:
1. Check whether the function F (X m )

is
given in the form of the minimum product
as

CRYOTRON GATE NETWORK

(4)

A cryotron gate network which is considered
equivalent to a transfer-contact relay circuit
may be synthesized by one of the following
methods:

k=l

If it is given in this form, its complement
F(X m ) is then derived as a minimum sum
of the following form:

(a) Cascading three-terminal sub-networks
with complementary outputs;

n

(5)

(b) Tree networks; and
by the application of De Morgan's theorem.4 If F(Xm ) is not given as Eq. (4),
one of the minimization methods 4 should
be used to reduce these functions to their
optimum forms as given in Eqs. (4) and
( 5) in order to secure an economical
realization.
The function F(X m ) is expressed as an
"And" function made up of the subfunctions PI through P n. Its complement
F (X m ) is represented by an "Or" function composed of the complementary subfunctions P 1 through P n'
2. By use of the following relationship of
the logic function

( c) Symmetric networks if the logic functions to be realized are identified as symmetric functions.
If any of these techniques is to be used, the
following aspects should be taken into consideration:
1. The synthesized circuit should contain a

minimum number of cryotrons for economical realization.
2. All gates which constitute the circuit
should appear in complementary pairs to
meet the requirement of the cryotron control network. Each gate-pair is represented by the complementary Boolean
variables Xi and Xi.
b

Figure 4. Persistent Currents in the Equivalent Graph
After Id Source is Removed.

Pk

+P

k

P k +1 = P k

+P

k +1 ,

k = 1,2, ... , n - 1 (6)

the sub-networks realized by those subfunctions can be connected, as shown in
the resulting block diagram of Fig. 5.
The sub-network P 1 starts from input terminal I, i.e., node 1, and stops at node 2, P 2 from
2 to 3, and so forth, until P n from n to output
terminal 0 1• The function F (X m ) is thus realized between terminals I and 0 1 and expressed
by Eq. (4). All sub-networks realized by the
complementary subfunctions PI through P n

656

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

When F (X 4 ) is complemented by De Morgan's
theorem F (X 4 ) is found to be
F (X 4 ) = (Xl + X2 Xg) (X 2 X g + X4 )
(Xl

+X

2

[X g + X4 ] )

(9)

By comparison of Eqs. (8) and (9) with
Eqs. (5) and (4), respectively, the subfunctions are:
PI

==

Xl + X2 X g,

P2 = X 2 X
n

.1.

_

g -

V
I
.A.I T

g

+X

4,

V
IV
I
.A.2 \.A.g T

= X I (X + Xg)
= (X + Xg) X

PI
P2
V
\
.A. 4 I

2

4

2

,

P g = X I (X 2

+X X
g

4)

(10)
Figure 5. Block Diagram of Cryotron Gate-Network
Synthesized by Cascading n Three-Terminal
Sub-Networks.

stop at the same output terminal O2 , but each
starts from the node k which is identical with
the subscript k of its relevant subfunction P k •
The function F (X m ) given in Eq. (5) then appears between the terminals I and O2 •
Whenever any subfunction P k is still a composite function instead of a single variable, the
above steps should be repeated for synthesizing
the small three-terminal sub-network with node
k as its input terminal and node k+l and terminal O2 as its output terminals.

Illustrative Example 1
Design a three-terminal cryotron gate network which realizes the logic function
F (X 4 ) = Xl X 2 X g X 4 + Xl X2 X g X 4 +

(7)
and its complement, using complementary cryotron gate-pairs only.
In this particular problem the function
F (X 4 ) of Eq. (7) is not given in the same
form as Eq. (4). Since it contains only three
terms in its first canonical form, its complement F (X 4 ) should have thirteen terms in the
canonical form. By the use of a Karnaugh map,
F (X 4 ) in the form of Eq. ( 5 ) can easily be
found:
F(X 4 ) = Xl (X 2 + Xg) + (X 2
Xl (X 2 + X g X 4 )

+ Xg) X +
4

(8)

Each of these three pairs of subfunctions in
Eq. (10) represents a smaller three-terminal
sub-network which can be further decomposed
by repeating the synthesizing procedure because each pair Pi and Pi (i = 1, 2, or 3) is
also complementary.
The final network is shown in Fig. 6 in which
the total number of complementary gate-pairs
is ten and the distribution of variable-pairs is
2, 3, 3, 2 for the order Xl' X 2 , X g, X 4 • In this
case the required control network should have
four cryogenic switching devices. The device
for cryotrons assigned by the variable-pair Xl
and Xl or X 4 and X 4 has two serially connected
cryotron controls in each load circuit. Each of
the other two devices, however, has three series
controls in a load circuit.
B. Synthesis by the Tree Method
A complete tree of m distinct variable-pairs
Xi and Xi possesses 2m disjunctive outputs,
each of which represents a single term of the
2m possible distinct terms. The outputs are said
to be "disjunctive" with respect to each other
if there is no superconducting path between
any pair of the output terminals 0 through
2m - 1 which also indicate the decimal equivalents of the 2m distinct terms. Suppose that
the variable Xi is designated by 2 i- 1 as its decimal equivalent.

A complete tree gate network with three
variables X g , X2 and Xl distributed in the ratio
of 1: 2: 4, illustrated in Fig. 7, can be converted
into a three-terminal network with complementary output functions by connecting those
outputs of the tree to form the output terminal

SYSTEMATIC DESIGN OF CRYOTRON LOGIC CIRCUITS

-I"1n.----T--_ 01

F(x.,>

Figure 6. Cryotron Gate-Network Synthesized by
Cascading Three-Terminal Sub-Networks.

0 1 which represents all terms in the given function F (X m ). All the remaining outputs when
connected as a common terminal O2 contribute
the complementary function F (X m ). The synthesis can be carried out in two major steps:
1. Since each output terminal of a complete
tree represents a term of logic function,
the given function F (Xm) and its complement F (X m ) should be expressed in
first canonical forms.
2. Assign variable-pairs to cryotrons such
that the output terminals of a complete
tree which constitute the terms of the
function F (X m ) can be located as close as
possible to the outputs. When these terminals are connected to form F(Xm ) and all

~-fTl--6

5
~-fTI-_4

I

~-rn---2

'---LLr-_l
"---[I}--_O

Figure 7. Cryotron Gate-Network in Complete Tree
Form.

657

the remaining output terminals are tied
together to form F (Xm ), some complementary cryotron-pairs are connected in
parallel at output terminals. Each pair
of these parallel paths is always superconducting. They are therefore redundant and can be removed. An incomplete
tree which forms the synthesized gate
network thus results.
One possible way of obtaining this result is
to find the minimum sum form of the given
function by using the minimization method.
The relative frequencies of the appearances of
various variables in this minimum form are
examined. The most frequently appearing variable should be assigned nearest to the input side
but not the least common one.
An economical realization and almost uniform distribution of the inductive loads among
various cryogenic control current switching devices can also be attained by use of the general
principles of contact redistribution.
These two considerations should be combined
whenever there are more than one distinct variables which appear with equal and lowest frequency. These variables should be assigned
nearest to the output side and also distributed
in accordance with the Shannon rule. 4 Since
the distribution of variables in a tree is not
unique, there are various ways in which they
may be assigned.

Illustrative Example 2,
Suppose that the given function to be realized by the cryotron gate network is expressed
in the minimum sum form
F (Xa ) = X2 Xa + Xl X2 Xa
(11)
which may be expanded into first canonical
form as
F(X a) = Xl X 2 Xa + Xl X2 Xa +
(12)
Its complementary function in first canonical
form is found to be

F (X a) = Xl X 2 Xa + Xl X2 Xa + Xl X2 Xa +
Xl X 2 Xa + Xl X2 Xa
(13)
Since F(X a ) is given in minimum sum form,
shown in Eq. (11), examination of its variables
shows that the variable Xl appears only once,

658

PROCEEDINGS-FALL JOINT COMPUTER CON:FERENCE, 1964

but X 2 and X3 appear twice. The variable X2
or X3 but not Xl should be distributed nearest
to the input side, otherwise economical realization cannot be obtained.
If the initial variable distribution in a complete tree is 1, 2, 4, the variables can be assigned to cryotrons in the order X 3, X2 , Xl, or
X 2 , X 3, Xl' The variable Xl is assigned nearest
to the output side. The final synthesized network in both cases contains eight cryotrons
with three distinct variable-pairs assigned in a
distribution of 1, 2, 1. If the decimal equivalent of Xl is designated by 2 i - l one of the three
gate-pairs assigned by Xl and Xl is tied together at the output terminals 0 and 1; the
other two pairs are connected at terminals 2
through 5. Since each pair of these gates is
connected in parallel, it is always superconducting and thus must be removed. The gate
network synthesized by this method is shown in
Fig. 8 in which the complementary variablepairs X2 and X3 can be interchanged. The out..
put terminals 01 and O2 are derived from the
complete tree by connecting the output terminals 0, 1, 6 and all remainders, respectively.
If the initial distribution of 1, 3, 3 is used
in the complete tree in accordance with Shannon's rule, the variable X2 or X3 must be located nearest the input terminal. The remaining two variables are assigned to cryotrons in
diagonal positions. When Xl and Xa are diagonally positioned, the three gate-pairs near
terminals 0 and 1, 3 and 7, and 4 and 5 are
redundant. If Xl and X 2 are diagonally assigned, the redundancy occurs at terminals 0
and 1, 2 and 3, and 5 and 7.
For any other cases of assignment, the synthesized network must use twelve cryotrons.
This is not economical.

Illustrative Example 3
Referring to Example 1, the given function
F (X 4 ) of Eq. (9) contains the terms whose
decimal equivalents according to previous designation are 2, 9 and 14. If the variables are
assigned in the order of Xl, X 2 , X 3, X 4 from the
input terminal I to the output side in a complete tree of 1, 2, 4, 8 distribution, the output
terminals 2, 9 and 14 which correspond to the
terms 2, 9 and 14 in F (X 4 ) are located within
two sub-trees of the variables X3 and X 4 • When
the remaining 13 output terminals i (i = 0, 1,
..., 15 but exclusive of 2, 9 and 14) are connected to form F (X 4 ) , two pairs of complementary gates X3 and X3 and five pairs of gates
X 4 and X 4 are connected in parallel at the common output terminal. They can be discarded.
Therefore sixteen cryotrons are used in the
synthesized network. The distribution of complementary cryotron-pairs in the order of Xl'
X 2 , X3 and X 4 is 1, 2, 2, 3. In this case, Xl and
X,2 (and also X3 and X 4) can be interchanged
because of the same frequency of appearance.
If this property is not used to assign variables, two more cryotrons must be added. As
compared with the first method explained in
Example 1, four cryotrons are saved by this
technique.
C. Synthesis via Symmetric Network
In a cryotron switching circuit, a logic function realized by a gate network with two terminals built on cryotrons assigned by m distinct
variable-pairs is said to be symmetric when a
superconducting path is provided between these
two terminals by any n truth value changes of
these m variable-pairs. The symmetric function according to the definition given here is
usually expressed symbolically by
Sn (XI, ..., Xi, ... , X j ,

01

F(~)

02

FeJS}

I

Figure 8. Cryotron Gate-Network Synthesized by the
Tree Method.

••• ,

Xm)

The variables in the parenthesis represent the
variables of symmetry, i.e., the parameters of
symmetric function. The subscript n of S indicates how many distinctly assigned gate-pairs
must have their states transmitted in order to
make the path superconducting. This quantity
is called the characteristic number.
Some of the variables of symmetry may be
represented by the symbols without a bar over
each as, for instance, Xi, X m , etc., while others

SYSTEMATIC DESIGN OF CRYOTRON LOGIC CIRCUITS

are written XI, X h etc. These parameters are
all considered normally resistive gates, but
their complements XI, Xi, X h Xm, etc., are
treated as normally superconducting gates. The
designations of the parameters XI, X j , etc., and
their complements, XI, X h etc., are exactly opposite here to those which occur when XI, X h
etc., are not parameters of symmetric function.
When a symmetric function is involved, attention must be paid to its parameters.
It should be noted that the sum, as well as
its complement, of several symmetric functions,
are both symmetric. However, the symmetric
property of these composite functions cannot be
derived from the previous definition, especially
when the parameters are mixed with Xi and X j •
A more inclusive definition of the symmetric
function is introduced by Shannon4 : "A function of the m variables Xl, ... , Xi! ... , X h
..., Xm is said to be symmetric in these variables if any interchange of the variables leaves
the function identically the same."

The given function F (Xm) which is identified
as symmetric in accordance with either of the
described definitions, may be realized in a cryotron circuit by the following procedure:
1. Ascertain whether or not the given function is symmetric. If it is symmetric according to either definition, then determine its parameters and its characteristic
numbers. Suppose the parameters are
mixed with XI, ... , X h ••• , X h · • • • , Xm
and the characteristic numbers are equal
to p, q.
2. Express F(Xm) in symbolic form by
means of the known parameters and characteristic numbers.
F (X m) = Sp,q (Xl, ... , X h ••• , X h ••• , Xm)
= 8p (XI, ... , Xi, ... , X j , • • • , Xm)

+ Sq (XI, ... , Xi,

... , X h

••• ,

The complement is found by replacing the
characteristic numbers p and q with a
set of numerical values k, where k = 0, 1,
2, ... , m but exclusive of p and q. It
should be noted that all parameters in the
parentheses do not take complements.
4. Assign the parameters to all horizontally
positioned gates and their complements
to all vertically positioned gates.
As an illustration, suppose the parameters for some function are determined
as Xl, X2 and Xs. The complete symmetric gate network with its proper variable assignment is shown in Fig. 9.
5. Connect the output terminals marked by
the component symmetric functions
Sp (XI, ... , Xi, ... , X h ••• ,Xm) and
Sq (Xl, ... , Xi, ... , X h ••• ,Xm)
to form the composite symmetric function
F (X m ) . All the remaining output terminals marked by
Sk (Xl, ... , Xi! ... , X j , • • • , Xm)
where k = 0, 1, ... , m but exclusive of p
and q, when connected represent the function F(X m ).
6. Discard any redundant gates, one of
which usually appears as a complementary gate-pair connected in parallel and
equivalent to a short-circuited path. Some
of them may be removed by the method
of folding. 4

Xm)
(15)

3. Find the complement of Eq. (15) and

express it in symbolic form.
F (Xm) = Sp,q (XI, ... , Xb ... , X h

••• ,

Xm)

m

= ~ Sk (XI, ... , Xb ... , X j ,
k=p=q
k=O

••• ,

Xm)

659

Figure 9. Cryotron Gate-Network in Complete
Symmetric Form.

660

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Illustrative Example 4Realize the logic function
F (X a) = Xl X 2 Xa + Xl X 2 Xa +
Xl X'2 Xa

(17)

by cryotron circuit.
The given function F (Xg) is not symmetric
by the first definition if we consider the parameters of symmetry to be Xl, X 2, X g or Xl, X 2 ,
Xa. When Xl and X 2 or Xl and Xa are interchanged, Eg. (17) is left identically the same.
Thus it is symmetric in the variables X h X2 ,
X g by the second definition. Eq. (17) is equal
to "0" (which designates a resistive path), because each term contains two resistive gates.
Whenever any two of the resistive gates X h X 2
and Xa become superconducting, Eq. (17) is
changed to "1" (which represents a superconducting path). The characteristic number is
therefore equal to 2 in accordance with the first
definition. In addition, the characteristic number should satisfy the following relation:
mC n = m!/n! (m - n)!
(18)
which shows all possible ways of producing the
characteristic number n. The given function
F (Xg) expressed in symmetric symbolic notation is
(19)
F (X a) = S2 (X h X 2, Xg)
Its complement is found to be:
F (X a)

= So, a(Xl' X Xa)
1,

2,

(20)

The output terminal 2 of Fig. 9 represents .Eq.
(19). All other terminals 0, 1, and 3 which
are connected represent Eq. (20). The gatepair Xa and Xa located at the left bottom part
of Fig. 9 is redundant and therefore must be
removed.
If Eqs. (19) and (20) are synthesized by the
tree method 2 more cryotrons are needed.
DISCUSSION
Complementary logic functions realized by
cryotron circuits are easily accomplished
through the design of a control network and
the synthesis of a gate network. If the total
number of distinct cryotron-pairs used in the
circuit is m then the minimum number of cryogenic switching devices is equal to m. When

the Boolean variables assigned to the cryotronpairs cannot be distributed uniformly, some
switching devices may have heavy inductive
loads. In such a case, additional switching devices should be added to equalize the inductive
loads in their secondary circuits. However,
those devices which control cryotron-pairs with
the same variable assignment should be operated synchronously, so that their primary circuits are connected in series and supplied by a
common current source. The synthesized gate
network should use minimal elements to reduce
the cost; and it should have uniformly distributed Boolean variables to equalize inductive
loads in the switching devices.
If the switching device is considered equivalent to the relay control winding and the complementary gate-pair equivalent to the transfer
relay contacts, the same synthesis technique
which has been used in the design of the relay
switching circuit to synthesize a gate network
can be applied. The various synthesis procedures are systematic and easy to follow especially for anyone familiar with relay switching
circuits.
In the transfer-contact relay circuit, a minimal contact network without any redundancy
may contain a static hazard in the tie or cut
sets4 and cause momentary malfunction or even
a complete failure of the circuit. Although the
cryotron gate may have an intermediate-state
during the state-transition, its superconductiveto-resistive state change (or vice versa) is so
rapid that such trouble seems non-existent in a
cryotron circuit. This simplifies the synthesis
procedure.
When the realized circuitry is made more
complex, the overall circuit inductance is proportionately increased. This in turn increases
the time constant of the circuit. The switching
speed is accordingly lowered. Low gain film
cryotrons which have less inductances can be
used as the circuit elements to overcome this
limitation.
In the method of cascading three-terminal
sub-networks, the distribution of the various
gate-pairs can be examined by counting the
frequency of the appearances of the variables
in the given logic function while it is expressed

SYSTEMATIC DESIGN OF CRYOTRON LOGIC CIRCUITS
in its mInImum product or sum form. Although the method is simple and straightforward, it seems difficult to synthesize the cryotron network with a minimum number of gates.
In a tree-network of m distinct gate-pairs,
aside from the single pair nearest to the input
terminal I, the distribution among the remaining m - 1 pairs can be made almost uniform
by Shannon's rule, though an absolute uniform
distribution is impossible. But this almost uniform distribution cannot assure that the synthesized network is the most economical realization which has been illustrated, as Example
3. We should assign variables to cryotrons -in
such a way that those output terminals which
represent the terms of logic function to be
synthesized are located as close as possible. We
should try to group these terminals within the
same sub-tree or two adjacent sub-trees by
consideration of the relative frequencies of
variable appearance and/or the Shannon rule.
This will increase the number of redundant
gate-pairs which can be removed.
The gate-pairs in a complete symmetric network witl;1 i parameters cannot be uniformly
distributed because a single pair is always
nearest to the input and the i-pair is located
nearest to the output terminals. When i is
made larger, the degree of non-uniformity increases, proportionately. When a function is
symmetric special ~~tention must be paid to its
parameters because the designation of the variable X j is resistive. It is exactly opposite if
X j is not a parameter of the symmetric function. The designation of resistive X j is, therefore, restricted in the symmetric network. In
this case, the cryotron control assigned by X j
must be kept by a sufficient current flowing
through it to maintain the gate X j in its resistive state.
BIBLIOGRAPHY
1. BREMER, J. W., "Superconductive Devices," McGraw-Hill Book Company, Inc.,
New York. 1962.
2. BUCK, D. A., "The Cryotron-A Superconductive Computer Component," Proc.
IRE, p. 482. April 1956.

661

3. BUCKINGHAM, M. J., "The Persistatron:
A Superconducting Memory and Switching
Element for Computers," Fifth International Conference on Low Temperature
Physics and Chemistry, edited by Joseph
R. Dillinger, p. 229. August 26-31, 1957.
(

4. CALDWELL, S. H., "Switching Circuits and
Logical Design," John Wiley and Sons,
Inc., New York. 1958.
5. DAVIES, P. M., "A Superconductive Associative Memory," Proc. SJCC, p. 79. May
1962.
6. HAYNES, M. K., "Cryotron Storage, Arithmetic and -Logical Circuits," Solid-State
Electronics, Vol. 1, p. 399. September
1960.
7. ITTNER, W. B., III, and KRAUS, C. J.,
"Superconducting Computers," Scientific
American, Vol. 205, No.1, p. 125. July
1961.
8. LEARN, A. J., "Superconducting Computers," Electronics, Vol. 34, p. 45. N 0vember 24, 1961.
9. LEWIN, M. M., "Retrieval of Ordered Lists
from a Content-Addressed lVIemory," RCA
Review, Vol. 23, p. 215. June 1962.
10. NEWHOUSE, V. L., and FRUIN, R. E., "A
Cryogenic Data Addressed Memory," Proc.
SJCC, p. 89. May 1962.
11. SEEBER, R. R., Jr., "Cryogenic Associative
Memory," National Conference, ACM, Milwaukee, Wisconsin. August 1960.
12. SEEBER, R. R., Jr., and LINDQUIST, A. B.,
"Associative Memory with Ordered Retrieval," IBM J., Vol. 6, No.1, p. 126~ January 1962.
14. SLADE, A. E., and McMAHON, H. 0., "A
Cryotron Catalog Memory System," Proc.
EJCC, p. 115. December 10-12, 1956.
14. SLADE, A. E., and McMAHON, H. 0.: "A
Review of Superconductive Switching Circuits," Proc. National Electronics Conference, Vol. 13, p. 574, Chicago, Illinois. October 7-8, 1957.
15. SLADE, A. E., and SMALLMAN, C. R., "Thin
Film Cryotron Catalog Memory," Auto-

662

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

matic Control, Vol. 13, No.2, p. 48. August
1960. Also: Solid-State Electronics, Vol. 1,
p. 357. September 1960.
16. VAIL, C. R., LUCAS, S. P., OWEN, H. A.,
and STEWART, W. C., "An Approach to
the Experimental Study of Persistent-Cur-

rent Devices," Solid-State Electronics, Vol.
1, p. 279. September 1960.
17. YOUNG, D. R., "Superconducting Circuits,"
Progress in Cryogenics, Vol. 1, edited by
K. Mendelssohn. London, England. Heywood and Co., Ltd. 1959.

BINARY-COMPATIBLE SIGNED-DIGIT ARITHMETIC
Algirdas Avizienis
University of California, Los Angeles, California
and
Jet Propulsion Laboratory, Pasadena, California
They have maximal redundancy (2r-1 digit
values) for both odd and even radices when a
has the value:
a==r-1==amax
The characteristic properties of signed-digit
representations are listed below .
1. The algebraic value Z of the number Z
composed of n + m·+ 1 digits (Z-n ... Z-1ZoZl ...Zm)
is given by the conventional expression:

1. Signed-Digit Number Representations
Signed-digit representations are positional
number representations with a constant integer
radix r ~ 3, in which the allowed values of the
individual digits Zi are a sequence of
q(r +2 :::; q :::; 2r-1) integers: (-a, ... , -1,
... , a), where a is the maximum digit magnitude.
The value of a is chosen from the following
range:
1f2 (ro +1) :::; a :::; ro-1,
for odd radices ro ~ 3;
lhre

+ 1 :::; a

:::;

m
Z ==

re~l,

~

ZiFi

i == - n

for even radices re ~ 4.
Both positive and negative digit values are allowed. The individual digits contain all sign
information, therefore a separate sign digit is
not required for the entire number.' For example, only one set of digit values exists for
radix r == 3 (values -2, -1, 0, 1, 2) and for
r==4 (values -3, -2, -1, 0, 1, 2, 3) ; for radix
r==10 there are four sets, from 13 values (-6
to 6) to 19 values (-9 to 9).

2. Algebraic value Z == 0 if, and only if all
Zi == O.
3. The sign of the algebraic value Z is given
by the sign of the most significant (left most)
nonzero digit.
4. To form the representation of the additive
inverse -Z, the sign of ever~ nonzero digit
'Zi is changed individually.
.
5. The addition and subtraction of two
signed-digit operands Z and y satisfies Si ==
f (Zh Yi, Zi+h Yi+l) for all positions i, where Si
are digits in the representation of the sum or
difference s == z ± y.

Signed-digit representations are redundant,
that is, each radix r digit Zi assumes more than
r different values. In a conventional (nonredundant) representation only r values of a
digit (0, 1, ... , r-1) are allowed. Signed-digit
numbers have minimal redudancy (ro + 2 or
r e .+ 3 digit values) when the value of a is
chosen as follows:

There are no carry-propagation chains in
signed-digit addition (or subtraction), that is,
any digit of the sum is a function of only two
adjacent digits of the operands. Subtraction is
performed as a change of sign followed by an
addition. The logical time of one addition is

a == 1f2 (ro + 1) == amin
a == 1f2re + 1 == amin
663

664

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

independent of the length of the operands and
is equal to the time required by one digital
position. The rules of operation and block
diagram of a signed-digit adder for one pair
of digits are shown in Figure 1. Here ti is
called the transfer digit and may assume the
values 1, 0, and -1; Wi is called the interim
sum digit and may assume one from the sequence of values: (-Wmax, ... , -1, 0, 1, .... ,
w max) . In the case of minimal redundancy,
Wmax = amin - 1 is chosen; in all other cases
(a > amin), Wmax is chosen from the range
ami n - 1

~

Wmax

~

a-I

Previous publications present a detailed description of signed-digit number systems!, and
the general rules for variable-precision and

Si

5'+1

ADDITION (TWO STEPS)

ICAl

Z 1+ Yi = tt i-I +

t _1 = 0
'
t i-, = I

Wd

If

IZ,+Yils. Wmax

if

Zi +Y, ) Wmax

ti -I = -I if Z i + YI < - Wmax

I(8)

Si = Wi +

til

SUBTRACTION: chang_ lign of

Yi

if

Yi "0

Figure 1.

and add

Rules of Signed-Digit Addition

significant digit operations2 , on which this paper is based.

2. Application of Signed-Digit Arithmetic
The elimination of carry propagation removes a fundamental constraint of digital arithmetic units and necessitates a reconsideration
of all arithmetic algorithms. The most importtant new aspects of signed-digit (to be abbreviated "s-d" from now on) arithmetic are:
1. the addition time of a parallel adder consisting of any number of cascaded identical
digit-adder packages is (logically) constant;
2. the most significant digits of the product
(as well as of the quotient) are generated first
and may be processed further before the less
significant digits become available;
3. the addition (and subtraction) algorithms
apply to operands of an arbitrary multiple precision (arbitrary length with respect to the
length of the adder) : the most significant sections are added first and may be immediately
processed further;
4. the multiplication and division algorithms
are identical both for single- and multiple-precision operands;
5. in floating-point arithmetic the application
of a special digit value ~ (the space-zero) to
designate non-significant positions allows the
implementation of normalized significant digit
arithmetic3 ;
6. the non-significant digit value (spacezero) 0 may be employed to determine the completion of a multiple-precision significant digit
algorithm; in this case the lengths of the operands may be unknown at the beginning of the
algorithm.
A rather novel arithmetic processor may be
constructed if these properties of s-d arithmetic are utilized. The properties (2) and (3)
permit the elimination of temporary storage of
intermediate results in a complex algorithm;
right shifts are not employed, and the flow of
operand and result digits is only in one direction (to the left) , resembling signal flow
through gate networks. The properties (3),
( 4) and (6) cancel the distinction between the
implementation of single and multiple-precision
algorithms in an arithmetic processor and allow the completion of an algorithm to be de-

SYSTEMATIC DESIGN OF CRYOTRON LOGIC CIRCUITS

tected by an inspection of the operands. Property (5) permits the inclusion of significant
digit arithmetic while retaining all advantages
of the number system and without changing
the algorithms. Finally, property (1) permits
the assembly of fixed-time adders of any length
from identical building blocks (without any
carry-Iookahead or similar logic structures);
this feature promises convenient assembly and
restructuring of arithmetic processors for
hardware implementation of complex algorithms in a variable structure computer4 • The
cost of the various innovations, when compared
to a parallel binary arithmetic unit, is found
in the greater complexity of the individual digit
adders and in the increased storage requirements (for the same precision of operands)
due to the redundancy of the number representation.
A further important consideration in the
definition of a practical signed-digit arithmetic
processor is its compatibility with the widely
employed conventional binary number system.
The potential application of s-d arithmetic in
the VCLA Variable Structure Computer 5 established the need for a binary-compatible signeddigit arithmetic. In such an arithmetic the
s-d arithmetic processor accepts binary as well
as s-d operands and produces s-d results.
Furthermore, a reconversion algorithm is provided which allows the reconversion of s-d
numbers to conventional binary forms either
in the signed-digit or in a conventional binary
arithmetic processor. The following sections
describe a set of algorithms for a binary-compatible s-d arithmetic and outline the implementation of an aritlh"TIetic processor which employs these algorithms. The algorithms are
applicable to any radix r=2k, with k ~ 2; the
specific description will be given in terms of the
radix r=8. An adaptation for a decimal-compatible signed-digit arithmetic is also quite
evident.

3. Structure of One Digit-Adder
It is evident that any maximal-redundancy
radix r s-d number system, with the allowed
digit values ranging from - (r-1) to r-l, includes all allowed digit values (0 to r-l) of
the conventional number system with the same
radix. The prefixing of an individual sign to
each digit then will convert a conventional

665

number to an s-d number of the same algebraic value, in which all digits carry the same
sign as the conventional number. The conversion in this case requires no arithmetic and
is executed simultaneously for all digits.
A binary number may be interpreted as a
number of radix r=2 k (k ~ 2) by grouping the
binary digits into groups of k bits each. The
values of individual digits are then in binarycoded form. Consequently, a sign-and-magnitude form of a binary number becomes a radix
2k maximal-redundancy s-d number (with
all digits sharing a common sign) by means of
an interpretation of digit grouping. Any
register which provides storage for a radix 2k
s-d number will be able to store the binary
number as an s-d number. Since both positive and negative digit values occur in one s-d
number, it is necessary to choose the representation for negative digit values. Sign-andmagnitude and complement forms both may be
employed within each digit; the complement
with respect to 2k+l is a generally convenient
choice. Table I shows the "16's complement"
coding of digit values for radix 8.
The otherwise unused bit pattern 1000 is employed to designate the non-significant spacezero 0. The choice of representation for negative digit values determined the rule for digitwise subtraction, which is implemented as the
addition of "16's complements" of the subtrahend digits to the digits of the minuend.
The addition table for first step of a radix 8
digit-adder is presented in Table II.
The second step of addition generates the
sum digit of value Sj = '-Vi
tie The spacezero 0 (pattern 1000) is detected by a special

+

TABLE I: CODING OF DIGIT VALVES FOR
RADIX 8

Value

Code

Value

0
+1
+2
+3
+4
+5
+6
+7

0000
0001
0010
0011
0100
0101
0110
0111

-1
-2
-3
-4
-5
-6

0

".

~T'-

Code
1000
1111
1110
1101
1100
1011
1010
1001

666

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

TABLE II: FIRST-STEP ADDITION TABLE
FOR RADIX 8 (MAX. REDUNDANCY)
Zl +Yi

Wi

t i-l

Zi +Yi

Wi

t i- l

+14
+13
+12
+11
+10
+9

+6
+5
+4
+3
+2
+1

+1
+1
+1
+1
+1
+1

-14
-13
-12
-11
-10
-9

-1
-1
-1
-1
-1
-1

TU

nv

I 1
T.L

-...,Q

+7
+6
+5
+4
+3
+2
+1
0

-1
+6
+5
+4
+3
+2
+1
0

+1
0
0
0
0
0
0
0

-7
-6
-5
-4
-3
-2
-1

-6
-5
-4
-3
-2
-1
0
+1
-6
-5
-4
-3
-2
-1

IQ

~1

-1
0
0
0
0
0
0

logic circuit at the input of the digit-adder. It
is always entered as the value zero (0000) into
the adder. This conversion allows the use of
the same digit-adder for both "conventional addition" and "significance addition" modes; in
the latter mode the output of the digit-adder is
forced to space-zero 0 (pattern 1000) if either
one or both input digits were space-zeros. In
"conventional addition" mode the 0 digits may
be employed to mark the end· of a variablelength number; in this case, the output is set
to 0 only when both input digits are spacezeros. Conventional addition without use of
the space-zero values is also possible.
An inspection of Table II shows that an
ordinary four-bit (modulo 16) binary adder
will generate three correct bits of the interim
sum Wi. The correct value of the leftmost
(sign) bit and of the outgoing transfer digit
t i- I is computed by a separate logic circuit. To
add the incoming transfer digit ti to the interim
sum Wi one of two methods may be chosen:
either a second pass to add ti is made through
the same 4-bit adder which was used to compute
Wi, or a separate ± 1 circuit (carry-propagate
and borrow-propagate arrangement over 4
bits) is employed. A detailed study and comparison of these two methods is currently in
progress. l l

4. Addition and Subtraction
A convenient range for the signed-digit processor is the fractional range 1 > X > - 1 in
which the value X of an n-digit number x composed of the digits X1 X:2 ••• Xn is:
n
X == ~ Xir- i
i == I
Overflow occurs when Ito I == 1 is generated by
the adder position i==l; therefore the range in
,x:hich overfiO\"'1 ,XliII never be indicated is
n
n
~ (r-2)r-i~ X ~ - ~ (r-2)r-i
i==l
i==l
In the "significance addition" mode the spacezero digit 0 enters the digit adder as the value
zero, but the output of the digit adder is forced
to the space-zero by the special circuit which
senses 0, and is enabled by the "significance addition" command. In this case, the addition Xi
+0 will generate It i- l l==l when IXil==r-l, and
ti-I=O otherwise, while si==0 will always hold.
The result will be rounded to the precision of
the shorter operand. The roundoff by means
of 0 digits will be without bias if every digit
value is assumed to occur with equal probability. The maximum magnitude of the discarded
part is Emax==r- i (r-1) _r-n when it consists of
the digits xi, Xi+h' .. Xn' This value is reduced
(at the cost of additional logic) to Emax==r- i (r/
2) _r- n by executing Xi + 0 as Xi+ (-I- r/2)
whenever Xi =1= 0. The sign of ±r/2 is chosen
to be the same as the sign of Xi; either sign is
acceptable for Xi == O. In either case, roundoff
has been implemented as a part of addition and
executed concurrently at the level of individual
digits. In the "conventional addition" mode, 0
is always entered as value zero, and the digit
adder output is forced to 0 only where both input digits have the value 0. The result retains
the length of the longer operand.
In a floating-point system the exponent is
represented by a signed-digit integer of desired
range which is held at the left end of the fraction. All fractions are kept in normal form and
non-significant positions are filled with 0
(space-zero) digits. There is at least one 0 at
the right end of every fraction. When leading
zeros develop in a fraction, it is normalized by

667

SYSTEMATIC DESIGN OF CRYOTRON LOGIC CIRCUITS

Z
s-d augend
Y
s-d addend
digit sums
Zi+ Yi
interim sum digits
Wi
transfer digits
ti
digit-adder output Wi + ti
conventional sum
S
significance sum
S'

==

.6 0 7 4 7 5 ~
.2 7 1 5 ~ ~ ~
4 7 6 11 7 5 0
416 1 150
o 101100
.5 1 7 0 1 5 0
.5 1 7 0 1 5 t'J
.5 1 7 0 ~ ~ ~

Note: the value ~ enters the adder as the value
o in forming the digit sums Zi+ Yi'
Figure 2.

Addition Example (Radix 8)

left shifts and a corresponding decrease of the
exponent; significant digits are lost. Overflow
is corrected by the transposition of the radix
point of the result one position to the left and
an increase of one in the exponent; the fraction
gains one significant digit. Only one exponent
is needed with multiple-precision fractions,
since the exponent serves as the index of the
relative position of the leftmost digit Xl of the
fraction. Further details of floating-point addition have been presented in a previous paper.2

5. The Pack-Add Algorithm and Normalization
The "pack-add" algorithm is a variation of
the usual "clear-add" algorithm. It is applicable in several aspects of maximal-redundancy
s-d arithmetic. The packed form x* of the
s-d number x retains the algebraic value of x,
but has only r+ 1 possible digit~values:~·.-~{cT'"i"'-l,
... , 1, 0, -1). "Pack-add x" is implemented
as the addition followed by an immediate subtraction of ± 1 to the n-digit fraction x. The
addend ±1 is represented by the n-digit fraction c, in which all digits have the value Ci ==
± (r-1), plus an incoming transfer digit tn
== ± 1. Simultaneously the overflow transfer
digit to == ± 1 is discarded, thus subtracting
± 1 from x + c+ t n ; as a result the algebraic
values of x and x* remain equal. The signs of
Ci and tn must be the same as the sign of the
leftmost digit Xl in order to guarantee Itol == 1;
if Xl == 0, both signs of Ci and tn are allowable.
The sign of Ci which has been employed in the
algorithm is designated as the dominant sign.
When x contains one or more ~ digits at its
right end, the leftmost ~ digit (xn+! == ~) will
generate til == ± 1 as the result of the addition

of en+!, which is executed as + (r-1.)
the "significance addition" mode .

+~

in

After the execution of one pack-add algorithm, digits of the opposite (non-dominant)
sign may have only the magniture 1. Furthermore, any pair of these opposite sign digits of
unit magnitude will be separated by at least
one digit; at least one of the separating digits
will be a non-zero digit with the dominant sign.
The minimum separation increases by one digit
for every successive application of the pack-add
algorithm. These properties facilitate the· formation of multiples of s-d multiplicands and
divisors in the multiplication and division algorithms.
The application of the pack-add algorithm
also permits the elimination of pseudo-normal
s-d operands. There exists a class of maximal-redundancy s-d numbers of the same algebraic value which assume the forms )( == .16
... ~, and x==.02 ... t'J, with the worst case
being x' == .177 ... 77 t'J, and x == .000 ... 0 1 t'J,
in which the form x' is pseudo-normal. The
pseudo-normal form satisfies xl#O, but fails to
satisfy a minimum magnitude requirement for
its algebraic value; it also presents an incorrect
count of significant digits.
An exact rule for the recognition of normal
forms is required in maximal-redundancy s-d
arithmetic. An application of the pack-add
algorithm to a pseudo-normal form will cause
the appearance of leading zeros and permit
further normalization of the operand. A convenient definition of a normal form is that one
s-d operand
Z
.6074 7 5 t'J
packing addend
.7777 7 77
C
15703 16 147
digit sums
Zi + Yi
5103641
interim sum digits
Wi
1 1001 1 1
transfer digits
ti
.6 104 7 5 1
digit-adder output Wi + ti ==
.6 1 04 7 5 t'J
packed form
Z* ==

Notes: significance addition is employed and
the overflow transfer digit to is discarded to obtain Z*.
The second application of the pack-add
algorithm will yield the form Z** ==
.570475t'J without negative digit values.
Figure 3. Pack-Add Algorithm Example (Radix 8).

668

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

of the following conditions should be satisfied
byx:
IXII ~ 2;
Xl . +1, and X2 ~ 0;
Xl = -1, and X2 S 0;
X2 = ~ with any value of Xl'
The magnitude range of non-zero normal forms
x is given by
1 - r-n

~

IXI

~

r2 (r-1) + r-

n

where Xn is the least significant digit of x. The
...nIYl"1"YI<:Il
.&"' .... .L.&. ... ~.1.

fA",n'\

.LV..L ~.I.~

Af
V..L

f-h'"
.f",nnf-;"."..
\,I.l..I.c.;
.L~ ",vll.l.VJ...1

n n 1.,,,,,
V a.1Uv

V

..£~

-

1\
V

.: ....

~o

uniquely represented by Xl = 0 and ~ == ~.
Evidently, other definitions of normal forms
may be convenient under different circumstances.
Still another property of the pack-add algorithm is the elimination of all opposite-sign
digit values, which is a method of reconversion
into the conventional binary form. A digit
with the opposite signs survives a pack-add operation only if there was a zerO' digit at its left;
the new form will contain an opposite-sign
unit value digit in the former position of this
zero digit. Consequently, the longest string of
zero digits ending with an opposite-sign digit
at its right determines the number of pack-add
operations needed for a reconversion; k+1 operations are needed when this longest string
contains k zero digits. The worst case will require n-1 pack-add operations for an n-digit
form which has n-2 zeros separating non-zero
digits Xl and Xn with unlike signs; however,
the average number of operations required for
complete elimination of opposite-sign digits will
be considerably lower.
6. Multiplication

An important property of signed-digit multiplication is the availability of the most significant product digit in its final form after the
first two steps of the iterative mUltiplication
algorithm. Given the radix r s-d multiplicand
X and multiplier Y (with digits Yh Y2, ... Yn),
the algorithm is :
pW = r [p(j-l) + X Yj], with j = 1, 2, ... , n;
where P 2 adders for m
multiplier digits at once in case of a binary X,
and for m-1 multiplier digits at once for a
signed-digit X, if the s-d multiplicand X is
converted to its packed form X * prior to the
multiplication. The application of the packadd algorithm to -I- X leaves ± 1 as the only
digit value of the opposite sign in X *; the
number of successive applications is equal to
the minimum separation (in digits) between
any two opposite sign (± 1) digits. A single
s-d adder is sufficient to add all m-l mUltiples
of the opposite sign unit digits of X*, when the
s-d multiplicand X is packed m-2 times before placed into the multiplicand register as X *.
In conclusion, it is observed that the cascading of s-d adders differs from the cascading
of carry-save adders for binary multiplication
in several significant aspects. First, the carrysave structure serves as a special=purpose adder
for multiplication only and requires a carrypropagate adder to generate the .final result.
The s-d cascade is composed of fully complete
s-d adders which may be used separately for
independent operations when fast multiplication is not required. Furthermore, the radix .8
division algorithm uses the same s-d adder arrangement as the one-multiplier-digit algorithm
for multiplication.
The roundoff of a product is implemented by
concluding the algorithm when the required
number of product digits has been generated.
Significant digit multiplication ~,8 employs the
"conventional addition" mode for each step of
the algorithm; the number of significant digits

669

in the product is determined by a sequential
scanning of both operands 2. Exponents in a
floating-point multiplication are handled in the
usual manner.

7. Division
The most convenient method of division in
signed-digit arithmetic is the algorithm described by Robertson 7, in which the representation of the quotient is redundant and the value
of the next quotient digit is selected by comparing approximate magnitudes of the divisor
and the partial remainder. One quotient digit
qj is generated during each step of the division
algorithm, which consists of an iterative sequence of left shifts and additions or subtractions:
R(j) == r [R(j-I) - X qj] , with j==1, 2, ... , n
where X is the divisor, R (0) is the dividend
(satisfying IR(O) 1 < k 1 X I, with k to be specified) , R(n) is the remainder, the RW for n>j>O
are partial remainders, and n specifies the required precision of the quotient 2.
For radix 8 signed-digit division, the allowed
values of the quotient digits qj may be chosen
to be in the range 4 ~ pj ~ -4. In this case
the Ip.ultiplication algorithm and the division
algorithm are interchangeable when R(j) is substituted for pm, and -qj replaces the recoded
mUltiplier digit y'j. The entire preceding discussion of implementing multiplication applies
to division as well and will not be repeated
here. The important difference is that the
multiplier digits y'j were available, while the
quotient digits qj must be determined before
the next partial remainder RW can be computed.
The quotient digits qj is determined by comparing the magnitude of the number R', consisting of the first three digits and the temporary overflow position i==O of the partial
remainder R (-Ij, to the magnitudes of the numbers X' 0, X'17 X' 2 X' 3 consisting of the same
digits (i==O, 1,2,3) of the multiples Xj2, 3Xj2,
5Xj2 and 7Xj2 of the normalized divisor X
respectively. The magnitude of the quotient
digit will be Iqj 1 == g, where g is the subscript
of the least test number X' g which satisfies the
test condition:

670

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

if all four test numbers fail to satisfy the above
condition, Iqj I == 4 is to be chosen. The sign
of each nonzero qj is chosen to be such that the
sign of the term X qj is the same as the sign
of the partial remainder R (j-1) .
The divisor X is required to be packed and
normalized; in this case the analysis of the required precision of comparison1 shows that the
positions i == 4, 5, ... , n may be disregarded
in the choice of quotient digits. The initial
condition which is to be satisfied by R(O) in
order to apply the division algorithm without
quotient overflow is that before the first left
shift
IR'I

5411.0
:;)

~

410.8

2 3 4
TIME HOURS

Figure 6. Long-Time Drift Characteristics of Transfluxor Multivibrator for Various Setting Conditions.

678

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

nized that in any specific application, the transfluxor memory is required only to maintain a
constant output between successive analog inputs. In most hybrid computer systems, holding-time requirements rarely exceed one minute
and are usually of the order of several seconds.
Additional series of experiments were conducted to determine the general sensitivity of
the transfluxor circuit to temperature. Accordingly, the transfluxor core was placed in an
oven and the variation in sensing circuit frequency was observed over a telllperature range
from -80°F to + 150°F. These measurements
were repeated with the transfluxor set to five
different levels of saturation and are illustrated
in Figure 7. In the course of these experiments
it was observed that for each specific transfluxor geometry there exists a critical temperature beyond which irreversible effects take
place. That is, if the critical temperature is
exceeded information stored in the transfluxor
memory becomes essentially lost. The reason
for this effect lies in the fact that the coercive
force 17 He decreases with frequency. If this decrease becomes large enough, it then becomes
possible for signals about the minor aperture
to switch flux about the major aperture. Such
major aperture flux switching results in turn
in a change in the sensing circuit frequency.
This effect must be carefully avoided by suitable design of the transfluxor and by suitable
64

L-----------

choice of the resistor R placed in parallel with
the setting winding.
IV. DRIVING CHARACTERISTICS
The frequency of the sensing circuit, which
determines the DC output, is varied and controlled by means of trains of positive or negative voltage pulses applied to the setting winding. In order to achieve a high resolution and
hence a high accuracy, it is important that the
increment in frequency produced by a single
pulse be very small. For example, if the frequency is to range from 250 KC to 900 KC, it
is necessary that a single pulse produce a frequency change of less than 650 cycles, in order
that a 0.1 % resolution be obtained. The problem of selecting an optimum pulse-width and
repetition rate is complicated by the fact that
the effect upon the frequency of a setting pulse
of a given width is different when the frequency is being increased than when it is desired to decrease the frequency. This is illustrated in Figure 8 for a number of different
pulse-widths. In each case the core was first
saturated (high frequency), and a series of
rectangular voltage pulses were applied one at
a time so as to decrease the frequency to its
minimum value. The polarity of the pulses was
then reversed and the core brought gradually
back to the saturated state. From these data
it is apparent that for increasing frequencies
the pulse-width should be at least twice as
great as for decreasing frequencies. These
curves also point out the desirability of oper-

0560
~

1.26 "SEC.

~
z

.1

~480

ow

,~

a::

2",

~
a::

m

I~

~320
~

:>
:!:

8",

'""'' 'I"- /
" \I
/
/

.....-

~v

o

40

80

TEMPERATURE OF

120

160

Figure 7. Frequency-Temperature Characteristics of
TransfIuxor for Several Major-Aperture Setting
Conditions.

..........

?

1 1 I

--x---

1111

10

~ 1.00 "SEC.

i'--

0.25 "SEC.

\/""/ \."-

./v
~

-40

~/"""

II\,

I

--

I

7' ~

LL

~400

/'

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

'"

1 II

Q50 "SEC.
~

...........

F--

....

620 "SEC.
0.50 "SEC.

-

0.65 "SEC.
1111

1 1 I

100

IIII
I
1000

I I

IIII
10000

NUMBER OF PULSES

Figure 8. Typical Frequency-Resolution Characteristics of Transfluxor Multivibrator.

A TRANSFLUXOR ANALOG MEMORY USING FREQuENCY MODULATION

ating in the relatively linear low-frequency
range rather than over the entire frequency
domain.
The speed of response of the memory circuit
is determined by a number of design parameters and compromises. Of particular importance is the frequency of the clock multivibrator in Figure 3, since this determines the rate
at which control pulses are applied to the setting winding. The width of the control pulses
is likewise important in determining the speed
of operation, since wider pulses produce larger
increments in frequency. A compromise between speed and accuracy must hence be made.
The RC time constant at the output of the
pump circuit is also important in determining
the speed. Here the compromise is between
speed and output ripple, since the low-pass filtering action of the pump output circuit varies
directly with the time constant. The switching
characteristics of the transfluxor core itself
appear to have a relatively minor effect upon
the response time of the memory unit.
V. CONCLUSION

On the basis of experience with. a number of
prototype memory systems, it is concluded that
the FlYI transfluxor analog memory offers
unusual promise. The memory module is exceptionally simple, compact and economic, permitting the design of systems with large numbers of sample-hold channels. The usefulness
of this type of memory in the hybrid application is further enhanced by the fact that the
memory time under normal laboratory conditions is very long, permitting a great flexibility
in digital-analog scanning cycles. Since the
driving circuitry is time-shared among all the
memory modules, great care and sophistication
can be employed in its final designs, so as to
attain an optimum compromise between response, speed and accuracy. A second potentially useful application of the transfluxor
memory is in pure analog track-hold circuits.
Here the low cost of the individual modules
permits the utilization of a relatively large
number of them to store a continuous function
of time as a large set of discrete points.

Acknowledgments: The authors gratefully
acknowledge the helpful suggestions offered by
Mr. M. Palevsky of Scientific Data Systems,

679

Inc. and by Mr. G. Bachand of Sandia Corporation. Mr. P. Kibby, G. Keludjian and S. Rat~
ner, students at U.C.L.A., contributed interesting experimental data.
APPENDIX A
Transfluxor Geometry and Driving
Considerations
Major and Minor Aperture Signal Constraints
If the core material of a transfluxor has a
magnetizing force He, the coercive force for
any closed flux path j-k is
(1)

where
N j = Number of turns around leg j
lj-k

Ij -k

=
=

Mean circumference of path j-k
Current required to establish coercive
force for path j-k

Equation (1) can be used to establish the
constraints imposed on the major and minor
aperture signals by the geometry and material
properties of the transfluxor. The range of
allowable adjustment for the major aperture
control signal in the oscillator mode of operation (Figure 9a) is limited by the flux path
lengths 11 - 2 and 1'1-2 of Figure 9c. Applying

OR
1J'---"4---iMI.LTlVIBRATOR

Figure 9. Transfluxor Multivibrator Mode of Operation.
Figure 9a. Oscillator Mode of Operation.
Figure 9b. Minor Aperture Path Lengths.
Figure 9c. Major Aperture Path Lengths.

68.0

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Equation (1), with the assumption that the
threshold mmf of the transfluxor material is
Reo, yields
Heo 11-2 ~N1 ISET ~ Heo 1'1-2
(2)
ampere turns
where
Reo

= Threshold mmf of transfluxor ma-

terial in oersteds
11-2, 1'1-2

= Path lengths shown in Figure 9c
in centimeters

ISET

= Major aperture setting current -

amperes
N1

= Number of turns on major aper-

ture
The path lengths 11-2 and 1'1-2 can be regarded
as the basic geometric parameters for the
transfluxor since their ratio establishes the setting range of the major aperture.
1'1-2
11- 2

> ISET MAX
-

ISET MIX

(3)

Similar constraints can be established for the
minor aperture using the path lengths Ia-z and
Ll-l of Figure 9b.
Hco13-2 ~ N 3 Ie ~ Heo13-1

(4)

where
13-h 13-2

= Path lengths in Figure 9b in centimeters

N3

= Number of turns on minor aper-

ture
Ic

For complete minor aperture saturation, a
considerably higher value of magnetizing force
than the threshold value Rco is required. Designating this magnetizing force by Hes Equations
(4) and (5) become:
HCR 13-2 ~ N 3Ic

~

Heo 13-1

(6)

Ie MAX < 13-1 Heo
(7)
Ie MIN - 13-2 Hes
Equations (6) and (7) place a severer restriction on the adjustment range of Ie, particularly
if Hcs » R Cil ' Consider, for example, the prototype transfluxor used in the present research.
The parameters of Equations (6) and (7) for
this transfluxor are 13- 1 = 6.50 cm, 13-2 = 1.10
cm, Heo = 0.2 oersteds and Hes = 1.0 oersted.
Using these values Equation (6) becomes
1.10

~

N 3Ie

~

1.30 ampere turns

(8)

Since Equation (8) satisfies the conditions
of Equation (6), flux switching of the major
aperture by the minor aperture should not
occur. In the event that flux switching of the
major aperture by the minor aperture does become a problem, the path length 13- 1 must be
increased. This can be accomplished by redimensioning the transfluxor; but this would lead
to a reduction in the frequency range. A more
practical approach is to place a resistance
across the major aperture winding, which acts
effectively to increase the path length 13- 1 by
decreasing the major aperture field available
for flux switching.

= Collector current of saturated or

Major Aperture Driving Characteristics

on transistor in multivibrator
amperes
The ratio of the path lengths 13- 1 and 13-2
establishes the range of satisfactory adjustment for Ie according to
Ic
Ic

MAX

MIN

< 13- 1
-

L-2

(5)

As indicated by Equations (4) and (5), the
multivibrator parameters should be adjusted so
that the maximum value of Ie is greater than
that value of current necessary to just magnetize the unsaturated path 13-2, but smaller than
that value which would magnetize an unsaturated path 13-10 These limit values should be
separated by as large a margin as possible in
a transfluxor to provide adequate isolation between the major and minor apertures.

The primary requirement of the major aperture driving signal is that it be capable of
changing the flux state of the aperture by very
small increments so that the frequency of the
minor aperture oscillator is also changed in
correspondingly small increments. The accuracy of the memory is a direct function of the
number of quantized flux steps Mi into which
the major aperture flux range 0 1 can be divided. For an ideal square-loop core material
the number of flux increments is given by
Mi = N 1 0 1
VsT

(9)

where
N1

= Number of turns on leg
aperture

1 of maj or

A TRANSFLUXOR ANALOG MEMORY USING FREQUENCY MODULATION

v" =

Amplitude of a rectangular setting
pulse of width T applied to the major
aperture

Unfortunately, the actual major aperture
NI characteristics are not square but form
a distorted hysteresis18 loop due to the finite
inner-diameter outer-diameter ratio of the major aperture.

r o , rj

(10)

where

o

= Flux stored in major aperture core

0 x = Lumped constant which is a function
of applied volt-time integral and core
geometry
Mi = Number of input voltage pulses applied to the core (in this case the main
aperture)
T
== Time constant \Xlhich is a function of
the core geometry and material properties
Equation (10) applies until 0 reaches saturation for the given core 0 5 and can be plotted
as shown in Figure 10 with 0 = 0 As shown,
improved linearity can be obtained by making
0 x large with respect to 0 5 • However this improvement in linearity must be traded for resolution since fewer pulses M j are required to
saturate the core as 0 x is increased.

= Outer and inner radius of core (major aperture) respectively

= Linearity and is defined as the frac-

P

tion by which an incremental flux
change at the maximum value of Mi
differs from that at Mi = O.

o-

Hawkins and Munsey19 have analyzed the effects of core geometry on the driving signal
and core-flux state of a toroidal core. Although
their analysis is restricted to a toroidal shape,
it can be extended to a~y closed-magnetic-path
geometry possessing flux paths of different
lengths such as the major aperture of a transfluxor. The primary result of this study is
given by

681

The quantity P may also be interpreted as the
relative flux change at the worst point (near
saturation) on the hysteresis loop.
As shown in Equation (11) for any desired
value of P the maximum value of M j is determined by core magnetic properties and geometry only. In particular Equation (11) indicates that the closer (r{)/ri) approaches unity
the greater the resolution. Thus, ideally the
transfluxor major aperture should be structured so that rO/ri is as close to unity as possible.
Also as nonlinearity increases (Le. p ~ 1)
the resolution increases. This is advantageous
for the frequency mode of operation since the
DC voltage output of the memory is inversely
proportional to the minor aperture flux available for switching-(memory output voltage
,-' 1/0). The 1/0 dependence makes the memory output voltage a hyperbolic function of the
major aperture control signal. By suitable control and choice of P it is possible simultaneously to improve resolution and to make the
memory output linearly dependent on the major aperture control signal.

5•

A second significant result of the analysis is
an expression for the maximum number of
pulses Mi as a fl,Jnction of core magnetic properties and geometry of the form
Mi

MAX

=

IjSr
Ln (ril)
rj

Ln [_l_J
1- P

= Squareness
rial

1

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

----

4>

(11)

where

Sr

~

ratio of the core mate-

Nj -

Figure 10. Variation of Major Aperture Stored Flux
as a Function of Setting Resolution.

682

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

APPENDIX B
Transfluxor Multivibrators

Two-Winding Oscillator
The circuit diagram for the two-winding
transfiuxor multivibrator is shown in the system diagram of Figure 3. The basic operation
of the unit is discussed in detail in references
13, 14 and 20, and consequently will not be
described here. Two windings each with N
turns are '\vound around the minor aperture,
and the winding with N 1 turns is placed around
the major aperture. A control signal applied
to Nl changes the switching flux of the multivibrator causing the frequency of oscillation
to be a function of the magnetomotive force in
the minor aperture windings N. If the major
aperture is demagnetized the multivibrator
operates at minimum frequency. When the flux
state of the major aperture is equal to the saturation flux of the minor aperture by applying
a control signal of sufficient magnitude, the
multivibrator operates on remnant flux alone
at maximum frequency.
Using the prototype transfluxor described
above with 25 turns and a supply voltage of
12 volts, a frequency range of -250 KC to 1.0
MC was obtained for the circuit of Figure 3.

Single Winding Multivib1'°ator
The single winding oscillator of Figure 5
permits a reduction in number of minor aperture windings and provides closer control over

the collector current. As indicated in Figure 5,
the single winding multivibrator is actually a
clamped flip-flop with the single minor aperture
winding N connected between the collectors of
the transistors Ql and Q2. This circuit has
yielded satisfactory results under widely varying conditions. For example with a clamp voltage Vc = - 6 volts and N = 20 turns on the
transfluxor minor aperture, a six volt square
wave output was obtained over a 100 KC to 1
MC frequency range. Typical output waveforms are shown in Figure 11.

Frequency of Oscillation
An expression for the frequency of oscillation of the single or two-winding multivibrator
can be obtained by applying the definite integral form of Faraday's law to the transfluxor
minor aperture winding. This operation yields
the following expression for the frequency F-

F=

V
4NBsA

(12)

where:
V

= Voltage across the minor aperture
winding volts

N = Number of turns on single minor aperture winding
Bs

= Saturation flux density of transfluxor
core material-webers/meter 2

A

= Cross-sectional area of minor aperture
leg assuming the areas of legs 2 and 3
are equal-square meters

Figure 11. Typical Output Waveforms of Single Winding Transfluxor Multivibrator.
Figure lla. Output Waveform From Q2 Collector; Frequency = 100KC; Scale;
Amplitude = 5 Volts/CM; Time = 2 f-L sec/eM.
Figure llb. Output Waveform From Q2 Collector; Frequency = 500KC; Amplitude =
5 Volts/CM; Time = 1 f-L sec/CM.

A TRANSFLUXOR ANALOG MEMORY USING FREQUENCY MODULATION
Equation (12) is an approximate expression for the minimum frequency of the multivibrator in the demagnetized state. Although
the expression is idealized in the sense that it
does not include the effects of such factors as
switchover time, it is useful in estimating the
minimum frequency of oscillation. For exam-'
pIe, for the two-winding oscillator with V = 12
volts, N = 25 turns, A = 1.61 X 10-6 square
meters and Bs = 0.345 webers per square meter
Equation (12) gives 220 KC for the minimum
frequency as compared to the measured value
of 250 KC. A similar calculation for the single
winding oscillator with N = 20 turns and V =
6v yields 90 KC for the minimum frequency as
compared to 100 KC for the measured value.
REFERENCES
1. RAJCHMAN, J. A., and Lo, A. W., "The
Transfluxor-A Magnetic Gate with Stored
Variable Setting," RCA Review, Vol. 16,
pp. 303-311 (1955).
2. RAJCHMAN, J. A., and Lo, A. W., "The
Transfluxor," Proceedings IRE, Vol. 44,
No.3, pp. 321-332 (March 1956).
3. LI, K., "Application of the Continuous
Range Properties of the Transfluxor for
Control Purposes," RAC Report No. 1162
(December 30, 1957).
4. BOYAJIAN, C. F., "Transfluxor Analog
Memory," Proceedings of Conference on
Non-linear Magnetics and Magamps, September 23-25, 1959, Washington, D. C.,
pp. 313-323.

5.

PALEVSKY, 1\1:., SLOCOMB, G., and BLOCK,
D., "Digital to Analog Conversion ~or
PCM Telemetry and Digital Data Transmission Systems," IRE Convention Record, Part 5, p. 158 (March 1959).

6. KRAUS, MURRAY, "Transfluxor Analog
Memory," Control Engineering, Vol. 6, No.
12, p. 127 (December 1959).
7. HAASS, GUNTHER F., "Der Transfluxor als
Analogspeicher,"
N achrichtenterhnische
Zeit, Vol. 14, pp. 410-415 (August 1961).
8. WILKEN, A. C., "Interim Report on a
Multivibrator Flux Interrogator with
Memory," Sandia Lab Technical Memoranda, Report 46--63 (24), (April 1963) .

683

9. COREY, F. B., "A Tunnel Diode Transfluxor Oscillator with Analog Memory
Properties," Sandia Lab Technical Memoranda, Report SCTM 140-163 (24) ,
(August 1963).
10. ROYER, G. H., "Switching Transistor D-C
to A-C Converter," Transactions AlEE,
Vol. 74-1, pp. 322-324 (1955).
11. UCHRIN, G. C., and TAYLOR, D.O.,
"New Self-Excited Square-Wave Transistor Power Oscillator," Proc. IRE, Vol. 43,
p. 99 (January 1955).
12. VAN ALLEN, R. L., "Variable Frequency
Magnetic Coupled Multivibrator," AlEE
Transactions, Part I, Comm. and Electronics, Vol. 74, pp. 356-361 (July 1955).
13. MEYERHOFF, A. J., and TILLMAN, R. M.,
"High-Speed Two Winding Transistor
Magnetic-Core Oscillator," IRE Wescon
Convention Record, pp. 106--114 (1957).
14. MEYERHOFF, A. J., Digital Applications of
Magnetic Devices, John Wiley and Sons,
Inc., New York, New York, pp. 475-480
(1960) .
15. BURTON, P. L., and WILLIS, J., "Unusual
Transistor Circuits,H Wireless World, pp.
107-110 (March 1958).
16. PASNAK, M., and LUNDSTEN, R. H., "Effects of Temperature on Magnetic Core
Materials," Electrical Manufacturing, (October 1959).
17. ABBOT, H. W., and SURAN, J. J., "Temperature Characteristics of the Transfluxor,"
Proc. IRE, pp. 113-119 (1957).
18. ROBERTS, R. W., and VAN NICE, R., "Influence of ID-OD Ratio on Magnetic Properties of Toroidal Cores," Elect. Eng., Vol.
74, pp. 910-914 (October 1955).
19. HAWKINS, J. C., and MUNSEY, C. J., "A
Magnetic Integrator for the Perception
Programs," Aeronutronics Computer Operations Research Lab Publication No. 592,
Quarterly Report No.2, July 1- September 20, 1959.
20. STRAUSS, LEONARD, Wave Generation and
Shaping, McGraw-Hill Book Co., Inc., New
York, pp. 410-413 (1960).

THE USE OF A PORTABLE ANALOG COMPUTER FOR
PROCESS IDENTIFIC,ATION,·
CALCULATION AND CONTROL
L. H. Fricke and R. A. Walsh
Monsanto Company

St. Louis, Missouri
In the design and development of controlled
processes there are two areas of intense activity-the theoretical simulation of the total
plant and empirical simulations involving the
collection of reliable experimental data to assist in the construction of a special purpose
model. The simulation of a newly proposed
process, even from the best available theoretical basis, is usually only approximate. It requires use of large and expensive computer installations, either analog and/or digital, so that
by direct programming of the design criteria,
the optimum plant operating conditions may be
determined. However, even if such a model
were extremely reliable (pilot plant) , the scaleup problems are quite complex. In some cases,
it might be well-nigh impossible to maintain
the exact relationships between certain intrinsic parameters, surface tension, heat transfer,
etc.-and, of course, few theoretical models
can anticipate all the significant process characteristics. As a result, many full scale plants
are in need of partial redesign. The authors
feel that techniques relying on plant data are
indispensable for accomplishing this end.

and achievable controller schemes for optimum
operation. In particular, a newer method
employing a portable analog computer to first
determine system characteristics is described.
Following an analysis of these results the
method of reprogramming the computer to the
proper controller characteristics is given.
To make the example realistic and to avoid
the criticism that the methods are impractical,
a real system was studied and made part of
the discussion.
It is important to take a wide view to all
aspects of the work here described. Thus the
methods of procuring the basic data are simple
and generally applicable to any physical system. The procedure of reducing data and the
representation of dynamic behavior as a Laplacian transfer function is both routine and
commonplace to electronics or servomechanism
engineers. These methods are easy to use and
are equally applicable to any linear system and
any nonlinear system within the bounds of the
perturbations of interest.

DATA COLLECTION SYSTEMS
The heart of any experimental effort is the
data collection apparatus. The sensing elements
must be essentially free of any nonlinearities
and dynamic delays so that a clear, accurate

It is the purpose of this pa per to review
some of the present in-plant techniques employed to determine both the static and dynamic characteristics and show how the results
are used to select the correct process revisions
685

686

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

diagnosis may be had. It is our experience that
the best type of data collecting system (where
possible) is multi-channel recording oscillographs coupled with very fast strain-gage
transducers. Some of the distinct advantages
of direct-writing analog recording are:
1. The data collection system provides easily

adjusted signal conditioning such as filtering, suppression, and amplification.
2. The collection system provides signals
that can be easily utilized in continuous
analog computer calculation such as material balance, heat balance, etc.
3. The quality of both static and dynamic
process data can be evaluated immediately.
4. The intuition of the testing engineer is
strongly reinforced through the simultaneous observation of cause and effect.
5. Information which was not anticipated at
the time of the tests is frequently discovered through subsequent studies of the
records.
6. Malperforming process components or
systems can frequently be located quickly
by visual inspection of the recordings.
The ideal data system is one that combines
the virtues of both analog recording and digital
storage--the first to obtain information from
a limited number of signals, the second to provide complete coverage and ease the burden of
excessive data handling and computation.
SYSTEM IDENTIFICATION METHODS
Excluding those cases where the desired relationships can be derived completely by mathematical analysis, it is necessary to arrive at
process descriptions by the analysis of inputoutput pairs. To determine these relationships
one must make a cortelation between the variables of interest under nor:fl1.al operating conditions. One way of obtaining such a correlation is to force a pertinent independent variable
and observe the changes of its output. Another
is to examine statistically auto and cross correlations of the noise spectra of perhaps many
inputs and their respective outputs. This latter
technique is extremely time consuming and although is theoretically superior for the analy-

sis of multi input-output systems, is definitely
not recommended in practice. To date, few
practical techniques have been developed for
the process industries.
One of the earliest methods of system characterization was done by introducing sinusoidal
fluctuations on the independent variables and
measuring amplitude and phase ratio between
the output and input for the series of frequencies of interest. From this a linear description can be obtained in the form of a Bode
plot or Laplacian transfer function. However,
this method is found to be objectionable to the
process industries for two main reasons-first,
the order of delays and time constants may be
as long as 2 or 3 days and the measurement of
sufficient data points could very well take weeks
to several months and second, the perturbations necessary to obtain a good signal to noise
ratio might very well tend to undulate the
process deleteriously for too long a time.
Another of these methods, and one recommended in practice by J. O. Hougen, is the pulse
technique. In this procedure, independent variables are disturbed with a closed input pulse
of rectangUlar, displaced cosine, ramp or any
other shape that will have sufficient harmonic
content to excite the pertinent frequencies of
interest. The unknown particular output is recorded simultaneously with one driven input.
These input-output pairs are then reduced to
a frequency response form by numerical evaluation of the ratio of Fourier transforms. Thus
the performance function relating one pair is-

J
J

+OO

-

00

e-jOltf(t) out dt

PF = - - - - - - - +OO e-jOltf (t) i n dt
-00

which will yield an amplitude ratio and phase
angle for different preselected values of w.
Care must be exercised both in conducting
the plant tests and in reducing the data. If
pure time delay is present as indicated from
time history records, it should be removed by
shifting the time axis prior to data processing.
Hysteresis is a more difficult nonlinearity to
handle and its effect on the results of pulse
testing have not been thoroughly explored.

PORTABLE ANALOG COMPUTER PROCESS IDENTIFICATION, CALCULATING AND CONTROL

In any event, where permissible, the results
of the reduction of pulse data are most conveniently presented as a Bode diagram, with
amplitude ratio and phase angle plotted versus
frequency. Figure 1 shows the comparative
results of pulse testing and sinusoidal testing
of a shell and tube heat exchanger.
Generally it is useful and instructive to derive a linear model which will describe the frequency response data. This is done by finding
a combination of linear Laplacian forms which
will reproduce the data as a Bode plot.
This procedure of fitting a linear model to
the data of a system known to be nonlinear
has been found, in our experience, to be extremely useful and is usually sufficient to permit subsequent synthesis of the correct control
system. A single model is not expected to be
valid for all levels or modes of operation of a
process whose behavior changes drastically as
the operating levels are altered. However,
within a small range of normal operating conditions, these simple models have proved to be
very useful and adequate for the purposes intended.
There are several advantages to this
method-for one; the time required for the test
is reduced to a minimum becam~e only one dis-

o

-~

.,

,

,

"0
~

~
o
g

~

e

0.1

•

~_ _ _ _- 4______-+~~r-~~------~100°
Dynamic Response, Angle

.,

!

1'\,

~

\

I

~

\

~ O.OIf.----------+-------+-------->t--+--------I

~

.!.l

~

~

0.0011-------4-------+-------+--------1300

0

QOOO4~OOO=-----~OO~I------*'QI~----~1.~0------~IO
Frequency. radians /second

Figure 1. Comparison of Frequency Response Data
Obtained by Direct and Pulse Testing Methods. Tube
and Shell Heat Exchanger. Input: Water Valve Stem
Displacement. Output: Effluent Water Temperature
- • and 0 from Pulse Test; A and T::::J from Frequency
Test. Source: Lees, S., and Hougen, J. 0., Industrial
Engineering Chemistry, 48, 1058 (1956). Frequency
Test Data Supplied by S. H. Goodhue, Foxboro
Company.

687

turbance is required instead of a series of sinusoids. Another is that the plant can remain in
the normal operating mode with little or no
production time loss.
Conversely, there are some disadvantagesit is usually necessary to have available a large
digital computer to generate the Fourier transform pairs, so the test engineer will not spend
the major part of his time deriving the transforms by hand. Another is the degree of uncertainty involved in transforming chart readings
by hand to digital data sheets, or if one wishes
to be more sophisticated, the use of an analog
to digital converter device to feed the computer.
A third disadvantage is the necessity of fitting
the resulting Bode plots to curves describing
known linear models.
Still another approach to this problem of
deriving simple linear models characterizing a
controllable process is to augment the pulse
approach by utilizing an analog computer programmed with a preselected set of general models with adjustable coefficients. The scheme of
operation here would be to pulse both the independent variable input and the proposed model
and then to compare the process and model
outputs. A similar device has been marketed
by the vVayne Kerr Company and is called uThe
Transfer Function Computer." The disadvantage of such a system in present state development has been the interdependence of the
coefficients. Once one coefficient has been adjusted so that the best agreement of process
and model has been attained; upon proceeding
to adj ust the second coefficient one discovers
that the first must be readjusted again to further minimize the difference between process
and model, and so on. To overcome this interdependency of the coefficients, 3, 4, 5, considerable work has been done to derive process
identification models in a specific way. These
models are described technically as orthonormal polynomials. A short discussion of the
principles developed in the above references
follows.
Consider a linear, stable process whose dynamic characteristics are unknown. This open
loop system may be described diagrammatically:

X(t)-----I~----·y(t)

688

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

where x (t) is the input to the process, y (t)
the process output, and g (t) the process impulse response function.

where

Similarly, associate with the process a model
by the same input as follows:

IG(jw) - H(jw) 12

x (t)

Equation 2 will be used to generate H (jw), the
frequency analog of h (t). Now let

------II

h (t)

II-----w

(t)

where x (t) is an identical input to the model,
w (t) is the model output, and h (t) the model
impulse response function, which will be ad;l1e!tarl ;n
e!lH'''''
':I 'UT':I"tT
':Ie! to
Tl'HJlz-a UT{t\
......... u
..... ""...........
.,..,. IL4I'J ~It.,]
1J'\J
...... ..L""' ..... ""
." \ "I

J ..... u"'''''''''''

':Ie! .........
TVlllt>h
'-'L""' ......

~tr..J'

like y (t) as possible.
N ext, combine y (t) and w (t) through a summing device
e(t) = y(t) - w(t)
where e (t) is called the error signal. The error
signal is squared and integrated, allowing a
continuous evaluation of the following equation:

=

f~ [y(t)

- W(t)], dt

Eq. 1

o

I t is desired to adj ust the model in a systematic
manner such that lEI will be minimized. If the
input is a pulse, one may write
X(j .. )

= f~

GO.,)

= f~ e-;w, g(t)dt

H(j .. )

= f~ e-;w, h(t)dt

where G (jw) is the transfer function of the
process and H (jw) is the transfer function of
the process and H (jw) is the transfer function
of the model. After considerable manipulation,
Equation 1 is transformed as follows:

-.!..f
271"

+00

and

IX (j w) 12 1G (j w)

- H (j w) \2 d(1l

-00

Eq.2

= IG(jw) - H(jw) I •
IG( -jw) - H( -jw)/

n

H (jw)

= ~ aj Ki
j

Eq.3

(jw)

=1

If Equation 3 is substituted in Equation 2, it
can be shown that a sufficient condition for lEI
to be a minimum and that the aj in Equation 3
to be noninteracting is for the Ki (jw) to be
orthonormal. The restrictions produce
aj =

~f+oo Re IG( -jw)

• Ki (jw)

1

271"

-00

I X(jw) 12 dw

Eq. 4

Equation 4 illustrates the dependence of the at
on input, model, and process. If the input is
measured with care, the adjusted ai will insure
a good representation of the process if the
Ki (jw) 's are chosen properly. In the following
the jw will be replaced by the Laplacian operator s in order to obtain more conventional
forms. Three orthonormal functions have been
constructed from functions of the type:
P (s) = Va (1 - as~ i
Eq. 5
j

e-;w, x(t)dt

and if g(t) and h(t) are stable,

IE I =

IX(jw) 12 = X( -jw) • X( -jw)

(1 + as)l

+1

Research in this area may be considered as
an offshoot of ideas originating largely with
the late Norbert Wiener and A. N. Kolmogoroff4 who were responsible for three crucial
phases of the present work: the discovery of
a convenient form for representing the discrepancy between process and model in the
time domain, the conversion in the time domain
to equivalent integrals in the frequency domain, and the introduction of orthonormal
functions as an aid to minimizing the discrepancy of process and model.
To date, we have derived two sets of orthonormal polynomials to construct models of the
general form H (s) = a 1 K 1 (s) + a 2 K 2 (s) +
aaK3 (s). These are: if T equals unity1- s
K1 (s)
1 + 2s + S2

689

PORTABLE ANALOG COMPUTER PROCESS IDENTIFICATION, CALCULATING AND CONTROL

K 3 (s)

1 - 3.8266s + 2.8277s2
1 + 3s + 3s 2 + S3
1 - 2.5841s + 4.407s 2 - 2.823s 2
1 + 4s + 6s 2 + 4s 3 + S4

and if in Eq. 5,
1

V-;; =

1 and let i be 0, 1, 2:

(T 2s + 1)
(1 - TIs) (1 - T 2s)
K 3 (s) = - - - - - - - - - - (TIs + 1) (T 2 s + 1) (Tas + 1)
(TIs

+ 1)

The first set of the above was made orthonormal to the input weighting function of a
rectangular input pulse of duration of T /2. If
the duration of the unknown output is long
compared to the extent time of the input pulse,
the second set of polynomials may be substituted for the first. The second set has been
used to find simple models of flow systems and
other processes. The diagram of the functional
scheme is given in Figure 2.
In actual practice, the values of a l and T 1
are first adjusted for a minimum time integral
the model output, then a 2 and T2 are adjusted,
and still later, a 3 and T 3' When the best fit is
obtained by observing the time histories of both
the unknown and model to the pulse input along
with the value of the integral, the coefficients,
a h T h a 2 , T 2, as, and T 3 are read out and a simple expression is obtained for the input-output
pair of interest. The results of the application
of these to unknown transfer functions are
shown in Figures 3 and 4. Figure 4 shows how
transport delay times can be handled-that is,

UNKNOWN TRANS~ER FUNCT'ON'

.Q. =
I
MODEL

3

.2",b.Q£.+
I

-+

25

('+6.) ('Us)
TRANS~ER ~UNCT'ON'

1+6$

.978(1-6$)
(I +65)0 +4.s)

r
I-

o

~2.5

~

~2.0

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

o

10

12

l4

__~__~~~--~

16

1&

20

22

24

26

28

T'ME (SECONDS)

Figure 3. Time Responses of Unknown and Best Model
Values. Input Pulse 100 Units .2 Seconds Duration.

the input pulse to the model is delayed so that
the output of the unknown and the model will
begin at coincident times.
UTILIZATION OF PROCESS DATA
Once it has been established that the simple
linear model is sufficient to describe the process
in the region of interest, it is routine to determine the correct values of integral action, proportional action, and derivative action on a
standard process controller. The methods of
Bode and Black, Nyquist, root locus, etc. apply
directly.
lVIoreover, the open loop adaptive control
function can be determined by establishing a
simple linear model for different levels of operation. Thus, the necessary controller characteristics for the entire set of model functions can
be found as a function of these levels and with
the application of these characteristics the

X(t.)

Figure 4.
Figure 2. Functional Scheme.

Model Results for Unknown Containing
Transport Delay.

690

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

process will always be operating at an optimum.
Chemical systems are almost always nonoscillatory-that is, the transfer functions describing the dynamics are a series of time constants in the denominator with real roots. This
makes it very easy to formulate a procedure
to obtain a slightly more damped close loop
response than the one cycle quarter amplitude
ratio, one and one-half overshoots, or minimum
error squared criteria. Stability apart, this is
done by setting the transfer function of the
closed loop system with unknown controller
constants equal to unity. and rewriting the expression in descending powers of s in numerator and denominator. One then equates the
coefficients of like powers and solves for the
controller characteristics.
The general controller characteristic equation used will be

~=Ki + ~ + KIs
ei

s

This type of control is easily simulated on
the analog computer and is the one used in the
following example.

The first photocell "looks" at this bulb's light
output and is arranged to diminish the second
bulb's input for an increase in the light it
senses. The second photocell is arranged in a
circuit to give an output proportional to the
intensity of the second bUlb. The light from the
second bulb is isolated from the first photocell
so that no system instabilities can exist. Thus,
when the first bulb is pulsed, the second photocell produces an output change depending on
the
direction, gain,
and dynamics
of the 1_whole
_____ L ! ___
m1_ _
_ ___ 1 _ _
.J! _ ___ _ __ .e _ __
_ _ ••
L! _ __

l:UIIlUlIlaHUIl.

L

.lIle allalug

ulagrall1 .lur Llle £1.1-

rangement is shown in Figure 5.
If one were to try to consider the simulation
of the dynamics of the system, the simulation
might be as follows:
Each light bulb:

Power in (Pi) = Power radiated (P r ) +
Power absorbed (P a) + Power conducted
away (Pc)
Thus:
2

Ein
R
_

K

1

4
dT
T
)
et T + K2 mcp dt + K3 (T - room

INTEGRAL ERROR SQUARED

EXAMPLE
In order to demonstrate the use of the orthogonal polynomials approach and still have
something that is realistic, portable, and would
utilize the repetitive operation mode of the
analog computer, a system of two incandescent
lights and photosensitive resistors was selected.
The bulbs and photosensitive cells were arranged in two compartments of a box with
each cell looking at a bulb.
This system of lights was selected as an
example in preference to other applications
(flow or pressure control) of this technique to
chemical processes, and was from the beginning designed to be a part of a portable ensemble demonstrated to engineering groups.
Many of the dynamic characteristics of actual
chemical systems are exhibited by the incandescent lamp-photoresistor combination.
In this "process" the first bulb is operated
at a constant light level as adjusted by the
steady-state output of a computer amplifier.

Figure 5. Computer Diagram During Process
Identification.

PORTABLE ANALOG COMPUTER PROCESS IDENTIFICATION, CALCULATING AND CONTROL

et
R

Emissivity of tungsten

=

KJ
m
cp
K3

p(l

+ aT)

Stefan-Boltzmann Constant 5.67 X 10-8
vvatt/meter 2 /oK 4
Mass of Filament
Heat Capacity
Coefficient of Conductivity

or
dT
E ·2
- - - - - -In- - dt
p(l + aT) K 2 mcp
K1 et T4

K3 (T - T room )
K 2 mcp

Each photocell:
Upon consultation of the manual on CdS
photoconductive cells, 7, one vvill see that there
is a response time associated vvith the output
current vs. the change in light level. These
curves shovv that this apparent time constant
is not constant vvith level or past history but
a definite function of the history.

A static measurement at 80 volts with an input change from 79 to 81 volts gives a gain
of 4.7. Other values for the orthogonal model
constants at different operating levels are given
in Table I.
The values in Table I can be used in the general expression of the model, and a "transfer
function" vvritten for each case. These are
shown in Table II. Inspection of the numerator
of each expression in the orthonormal column
might lead one to think that the s terms are
part of the e-Ts series. Thus, ignoring the validity of the sign of the 82 term in some cases, the
function might be written as shown in the
exponential columns of Table II. Typical time
histories of the application of this technique to
the "process" are shown in Figure 6.
In process systems, the controller most always
follows the error device being placed before the
process in the forward loop. Thus, the form of
the closed loop function is always

~

Thus it might be expected that the "system"
vvill be at least fourth order.
To determine the "transfer function" experimentally, vve vvill use the analog computer to
pulse the first light, observe the "process system" output. N ext, pulse the input to the
orthogonal model, observe its output, and compare the differences betvveen process and model
output on an integral error squared basis. The
orthogonal set programmed on the computer is :

o

--

I

a1
a 2 (1 - TIs)
+
+
T 1s+1-(T1 s+1)(T2 s+1)
a 3 (1 - TIs) (1 - T 2 s)
(T1 S + 1) (T 2 s + 1) (T3 s + 1)

When the steady-state level of the lights is
80 volts and the input pulse height to the !Inknovvn is 10 volts, the values of the coefficients
aI, a 2, a 3 and T 1, T 2, T 3 vvere found to be:
For an increasing pulse For a decreasing pulse
a 1 = 3.13
T1 = .0543
a 2 = .657
T2 = .0063
a 3 = .579
Ts = .0067

a1 =
T1 =
a2 =
T2 =
as =
Ts =

3.29
.0538
.892
.0081
.632
.0075

691

Gc Gp

(s) =

I

1

+ Gc Gp

The above can be rearranged into the form:
aS n + Bsn-l + . . . . . 1
Asn + Bsn-l + . . . . . 1
If we then set this expression equal to unity,
and require that the models of the same be
unity for all s, then, vve must equate coefficients
of like powers.
TABLE I. ORTHOGONAL MODEL
CONSTANTS AT DIFFERENT
OPERATING LEVELS
.Level *
(Lamp
Volts)

a1

T1 sec.

40
50
60
70
80
90

52.2
31.2
10.78
3.86
3.13
1.29

.102
.077
.055
.041
.054
.043

Model Constants
a2

T2 sec.

29.0
21.8
7.46
3.00
.657
.397

as

.040 2.78
.033 1.77
.596
.024
.368
.019
.0063 .579
.0059 .208

Ts sec.
.0073
.0086
.0024
.0069
.0067
.0075

* Steady-state value of supply voltage with a rectangular pulse of + 10 volts for 20 milliseconds duration input disturbance in each case.

692

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

~90

using the data of Table II. These are shown in
Table III.

~
~

~ao

The analog computer was used as a check of
these values. The diagram is shown in Figure 7.
Equating like coefficients will often give a
transient response slightly more damped than
the integral error squared or the integral absolute value criteria. This is not a deterrent
to the application of the technique to chemical
processes, because in most instances the process
is quite noisy and very tight control is probably
impossible.

..J

~
~1.25

..~""

~o~O-.O~I--.~ro~~~~5--.~07--~.OV~-.~"--~.I~~-.~i~--;'.,,~
TIMECSECOND!5)

Close examination of Table III suggests that
the controller parameters K j , Kp and Kt be
made some function of the level of operation.
Logarithmic plots of these functions demonstrate that there is approximately the same
relative changes in each parameter for changes
in the level (Le., the controller constants calculated in each case are essentially only a functionof the open loop gain). In the example
cited, the approximate function of operating
level compensation is to interpose in the error

Figure 6. Typical Time Histories of Example
Application.

Thus, if the process is of the same order as
the controller, it is possible to completely compensate the system. If, however, as is the
general case, the process order is higher, astute
judgment must be used in selecting the predominate quantities. The values of Kh Kp and
Kt at different levels can be calculated this way

TABLE II. THE APPROXIMATE LAPLACE FORMS OF THE MODEL FUNCTIONS
Level *
(Lamp
Volts)

Functional
Orthonormal
84 (1 - .012s

40

(.102s

Exponential

+ 5.9 X 10- S

5 2

+ 1) (.04s + 1) (7.3

84 e-· 01S

)

X 10-3 s

+ 1)

(.102s

+ 1) (.04s + 1) (7.3

(.077s

+ 1) (.033s + 1) (8.6

19 (1 - 8 X 10-3 s
60

(.055s

+ 2.2

X 10-3 s

+ 1)

(.077s

X 10-3 s

(.041s

+ 1) (.019s + 1) (6.9

4.4 (1 - 5.8 X 10-3s
80

(.054s

+ 2.1

+ 1) (.0067s + 1) (6.3

X 10-3 s

+ 1)

(.055s

+ 1)

(.041s

* As

in Table I.

(.043s

+ 1)

+ 1)

+ 1) (.0075s + 1) (5.9 X 10-3 s + 1)

+ 1) (.019s + 1) (6.9s + 1)
4.4 e-· 006S

(.054s

+ 1) (.0067s + 1) (6.3

X 10-3 s

+ 1)

1.9 e-· 004S

1.9 (1 - 3.7 X 10-3 s - 9.6 X 10-6 S2 )
90

X 10-3 s

+ 1) (.024s + 1) (2.4
7.2 e-· 003S

X 10-5 S2)
X 10-3 s

+ 1)

19 e-· 008S

7.2 (1 - 3.4 X 10-3 s - 7.8 X 10-6S2)
70

X 10-3 s

+ 1) (.033s + 1) (8.6

X 10-5 S2 )

+ 1) (.024s + 1) (2.4

+ 1)

55 e-· 007S

55 (1 - 7 X 10-3 s - 2 X 10-5 S2 )
50

X 10-3 s

(.043s

+ 1) (.0075s + 1) (5.9 X 10-3s + 1)

PORTABLE ANALOG COMPUTER PROCESS IDENTIFICATION, CALCULATING AND CONTROL
TABLE III. VALUES OF CONTROLLER
CONSTANTS FOR VARIOUS
OPERATING LEVELS

693

ooo

~REF.~

RELAY

At

t

0

tON

Controller Constants

Level *
(Lamp Volts)

Ki

Kp

~

40
50
60
70
80
90

.11
.24
.96
3.40
4.20
12.00

.017
.026
.076
.203
.260
.620

.0005
.0006
.0010
.0030
.0020
.0040

STEP

CONTROLLER

* For an increasing 10 volt step. It is possible to
experience instability when the same values are used
with a decreasing step.
signal a gain change equal to .0014 eL / 10, where
L is the lamp level in volts. Coupled with this,
the fixed controller values are to be adjusted to
Ki = 12, Kp = .62 and ~ = .004. This will give
good control at all levels of operation without
readjustment.
REFERENCES
1. HOUGEN, J. 0., and R. A. WALSH, "Pulse
Testing Method," Chemical Engineering
Progress, Vol. 57, No.3, March 1961.
2. HOUGEN, J. 0., C. G. HAGBERG, L. H. FRICKE,
and O. R. MARTIN, "Process Identification
and the Design of Process Systems with
Predictable Performance." Proceedings of
the Twelfth Annual Instrumentation Conference, Louisiana Polytechnic Institute,
Ruston, Louisiana. (To be published in
Chemical Engineering Progress, August
1964) .
3. WIENER, N., The Extrapolation, Interpolation and Smoothing of Stationary Time
Series with Engineering Applications,
Wiley, 1949.
4. EYKHOFF, P., "Process-Parameter Estimation," Technological University, Elec-

PROCESS

Figure 7. Computer Diagram During Process Control.

tronics Laboratory,
May 1962.

5.

Delft,

Netherlands,

A. N., "Interpolation und
Extrapolation von Stationaren Zufalligen
Folgen," Bulletin de l' Academie des Sciences
de USSR, Ser. Math. 5, 1941.
6. KITAMORI, T., "Applications of Orthogonal
Functions to the Determination of Process
Dynamic Characteristics and to the Construction of Self-Optimizing Control Systems," Automatic and Remote Control,
Proceedings of the First International Congress of IFAC, Moscow, 1960, Volume II,
pp. 613-618, Butterworths, 1961.
7. RCA Photocells Circuits Data Solid-State
Photosensitive Devices Booklet ICE-261,
Radio Corporation of America, Electron
Tube Division, Harrison, N. J.
KOLMOGOROFF,

PROGRESS OF HYBRID COMPUTATION
AT UNITED AIRCRAFT RESEARCH LABORATORIES
Gerard A. Paquette
United Aircraft Research Laboratories
East Hartford, Connecticut
INTRODUCTION

niques were developed to permit further digital
application. These techniques include compensating calculations for sampling delay and
practical integration schemes. 3 - 5 Thus in some
systems presently simulated at United Aircraft,
most or all computation is becoming digital.

Many of the present day simulation problems
utilizing analog equipment exclusively require
large, expensive computing facilities. The nonlinear calculations involved in modern simulations require a large portion of the all analog
system. Increase in operation speed and reliability coupled with reduction in purchase cost
have made the digital computer desirable for
these nonlinear computations.

In addition, the digital computer is used to
support problem preparation and modification.
Utility programs permit procedure and data
changes from paper tape, typewriter, or digital
scope and light pen input.

Prior to the end of 1962, the analog facility
at United Aircraft Research Laboratories consisted of two large analog consoles, one small
analog console, and associated analog equipment with emphasis on nonlinear devices. At
this time, several problems required all of this
equipment combined.

THE UNITED AIRCRAFT HYBRID
FACILITY

Analog
A Beckman Ease 2133 Analog Computer is
assigned to the hybrid installation. Its complement of equipment emphasizes linear analog
operations in the expectation that the digital
computer will process most nonlinear calculations. The computer contains 100 operational
amplifiers, 150 potentiometers, 20 time division
multipliers, 10 quarter square multipliers, and
20 II-segment, diode function generators.

In hopes of improving the operation and
capacity for highly nonlinear simulations, a hybrid facilityl was added toward the end of
1962. This consisted of a general purpose digital computer, a D.C. analog computer, and interconnecting linkage. The hybrid system is
presently being used to simulate V/STOL aircraft, aircraft, 2 engine, and space systems in
real time. An example, Single Rotor Helicopter
Simulation, is discussed in this paper.

Auxiliary equipment includes a DO /IT
(Digital Output/Input Translator) which permits typewriter control of pot setting and component reading. A digital voltmeter is used for
component reading through the DO/IT or by
itself. A digital clock, part of the analog system hardware, is available for mode timing.

Initial plans for the .hybrid facility were to
use the digital computer for most nonlinear
functions and the analog computer for dynamics. As time progressed, advanced tech695

696

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Mode switching is provided by reed relays to
permit rapid, repetitive operation.

Digital
A Digital Equipment Corporation PDP-l
Computer was selected as the best compromise
of capacity, speed, and cost among 1962 computers useful for hybrid application. This computer resembles the TX-O computer at M.LT.
which has been used for real time simulation. 2
The PDP-l is a single address, single instruction, stored program machine with a word
length of 18 binary bits. Basic memory contains 4096 words with a memory cycle time of
5 microseconds. Instructions available permit a
wide range of logical operations and fixed-point
arithmetic. Instruction execution requires 5 to
10 microseconds for most operations. MUltiply
and divide average 20 and 30 microseconds,
respectively. These speeds would permit execution of approximately 2000 instructions in a
program providing 50 solutions per second.
Input/output devices include analog linkage,
typewriter, paper tape reader, paper tape
punch, and digital scope. The photoelectric
tape reader accepts eight level punched tape
at a rate of 400 characters per second. The
tape punch provides output at 63 characters
per second.
An incremental digital scope can be used to
display graphical and/or alphanumeric information. Various scope modes permit display
of points, incremental data, vectors, or characters. Writing speeds vary from 35 microseconds per point in point mode to 1.5 microseconds per point in vector mode.
A 2048 word memory is used with the scope
to maintain a fixed display while the computer
is operating independently. The scope memory
includes hardware to permit programmed character generation. Data transfer from the computer to this memory can be made as desired
to modify the display.
Light pen input to the computer is available
from the scope. On sensing light, the pen interrupts the computer and display sequence. The
current scope coordinates can be read to locate
the pen after the interrupt.
A real time, digital clock is included for timing of digital computation cycles. Two modes

of clock operation are used over a time range
of 10 microseconds to 13 seconds. In one case,
the clock can be preset to interrupt the program at a desired time interval within the
above range. In the second case, the clock can
be used as a data source with clock clearing
and reading under program control.

Computer Linkage
The linkage system can be divided into two
distinct parts: the computing linkage and the
control linkage. The computing linkage includes both data and logic converters from each
computer to the other. All converters are under
digital program control.
Computing data linkage includes 20 digitalto-analog and 20 analog-to-digital conversion
channels. These utilize a word length of 14
binary bits corresponding to an analog range
within plus and minus 128 volts. The 14 bit
word provides a resolution of 1 part in 16,384
which is consistent with analog accuracy.
Digital-to-analog converters were designed
and built at United Aircraft. The data word
from the digital computer is transferred to a
14 binary bit, flip-flop buffer storage; analog
gates; resistor network; and an operational
amplifier. Programmed data transfer to the
converter buffer requires 5 to 15 microseconds
depending on the initial location of the data
word. Overall conversion speed is primarily dependent on the response of the output amplifier.
Analog-to-digital conversion equipment consists of a Packard Bell, 20 channel multiplexer,
a sample and hold amplifier, and a Multiverter.
Programming sequence includes three instructions: select-multiplexer-channel, convert, and
read-converter-buffer. The select-multiplexerchannel instruction addresses the analog input
to be connected to the sample and hold. A delay
of at least 15 microseconds must be programmed before the convert instruction to permit mUltiplexer switching. On execution of the
convert instruction, the sample and hold enters
hold mode in which it will remain until conversion is complete. The Multiverter converts the
analog voltage one bit at a time and stores the
resulting binary word in its buffer. Conversion
requires approximately 75 microseconds. The
conversion can be programmed for automatic

HYBRID COMPUTATION AT UNITED AIRCRAFT RESEARCH LABORATORIES

computer delay or the time can be made available for computation. The read-converterbuffer instruction transfers the data word into
the computer. Overall analog-to-digital conversion time is 90 microseconds.
Logic linkage includes 4 digital-to-analog and
8 analog-to-digital conversions. The digital-toanalog logic converters permit program control
of single-pole, double-throw relays at the analog console. A ground or open circuit at the
input of each analog-to-digital logic converter
sets a digital status bit to one or zero, respectively.
The control linkage allows the PDP-l to set
analog computer modes and operate or monitor
all DO lIT functions. A single instruction corresponds to each analog computer mode. Existing modes at the analog computer set designated bits of a status word in the PDP-l to
close the information loop.
For DO lIT operation from the PDP-l, character codes similar to those of the DO lIT's own
typewriter can be transmitted to and from the
DO lIT hardware. The digital program can
then become a replacement for this typewriter.

HYBRID APPLICATION AND
PREPARATION
Real time simulation has long been associated with the analog computer. Preparation
and modification of the circuit diagram, patch
board, and potentiometer values is rapid. Improvements in analog components and automation of set up procedures have advanced analog
computing capability. However, as the operating ranges of modern physical systems have increased, the simulation nonlinearities and accuracy requirements have grown. Dynamically,
we still handle problems in 6-degrees of freedom but the needs for variable products, trigonometric functions, arbitrary functions, and
other nonlinearities have increased to the point
where the parallel analog system requires too
many expensive, and sometimes insufficiently
accurate, devices.

Application
The hybrid facility consists of digital and
analog devices and uniting linkage. The problem equations are divided between the two com-

697

puters to take advantage of the capabilities of
each device 4 , 5 as indicated in Table 1.
The analog equipment is generally used for
dynamics, implicit algebra, and simple diode
controlled nonlinearities though the digital can
often be extended into these areas as well. The
evaluation of nonlinear operations, especially
arbitrary function generation, is the primary
application of the digital computer.
Analog signals are repetitively sampled by
the analog-to-digital converters, operated on by
the sequential digital program, and transferred
to the analog through the digital-to-analog converters. The controlling factors in determining
the operations to be performed digitally include:
1. Digital memory available for program

and data
2. Conversion channels available to link the
computers
3. Time permitted for each sample-calculateoutput cycle
The quantity of digital memory and conversion
channels to be provided is determined from a
rough attempt at designing existing problems
intI') tho huh'l"i£l
<;!u<;!tOl'Yl
.I..LJ

..I...&..&.""V

\,I.I...&.'-'

r-J..L..I..'-4

U J Uvv..l...L.I..

Digital program cycle time is usually the primary limiting factor. The sample-calculateoutput cycle presents a fictitious time delay to
the simulation and must be sufficiently short
relative to the periods of the real system. Some
advance knowledge of the frequency spectrum
TABLE 1. TYPICAL USES FOR EACH
COMPUTER OF THE HYBRID FACILITY
Analog Computer

Digital Computer

Time Integration

Arbitrary Function
Generation
Variable by Variable
Products
Trigonometric Calculations
Logical Control

Constant by Variable
Products
Implicit Calculations
Limits, Dead Zones,
etc.
Flight Simulator
Coupling

High-speed Display

698

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

of the real system is generally available but
the delay influence is best determined experimentally. Application of the digital to the
lower frequency portions of the problem allows
lower point rate and more digital operations
per cycle. Use of the digital in the higher frequency areas can be permitted if the fewer
calculations available are more significant in
their corresponding analog representation.
Some problems require application of the digital computer to portions with different frequency band"widths. For optimum digital
utility, time sharing of the separate samplecalculate-output cycles can be provided by the
program.
As an example of selecting initial cycle time,
a reasonable choice is to use one-hundredth of
the shortest period of interest. This would provide a phase error of less than four degrees at
the selected frequency. The time delay error
can be further reduced by corrective measures
discussed below.
Effects of the sampling rate obtained with
the digital program are tested experimentally,
The nonlinear nature of most simulations does
not permit easy evaluation and comparison of
damping factors, frequencies, etc. A number
of scattered dynamic test cases are run at real
time. These are repeated with the analog time
constants increased or with dummy time delays
added to the digital program to represent relative slowing or speed-up. This form of comparison is also useful to indicate future
capabilities of the digital. Final problem verification also includes, whenever possible, the
simulation of a known vehicle and comparison
with flight test before extrapolation to an
advanced vehicle.

Preparation
The preparation of the digital program 6 is
quite similar to preparing the analog circuits,
as seen in Figure 1, except that a different language is used. Similar data scaling operations
exist in preparing the problem for either computer. Digital program sequence is linear, sacrificing space in order to avoid time consuming
subroutine linkage. Symbolic, machine language is used in describing the operations to
be performed and the locations of the informa tion in memory. Basic routines such as sine,

MODIFY PLUGBOARD I>NJ
CHANGE POT SETTINGS

Figure 1. Problem Preparation for the Computers of a
Hybrid Facility.

arctangent, function interpolation, square root,
etc. are available as building blocks for the programmer. The symbolic information is converted to computer language by an assembly
program.i Our experience at United Aircraft
has shown the digital programming to be easily
mastered by the same simulation engineers who
design the analog circuits. The program can
generally be prepared in the same amount of
time as designing and wiring a corresponding
analog circuit.
Though somewhat slower than analog patch
board changing, digital calculations can usually
be deleted, inserted, or changed during on-line
problem operation by program patching techniques. To retain good system organization, a
reassembly of the modified program is obtained
after the simulation session.
Digital data changes, including function
curves, are more rapid than can be obtained at
the analog. This capability is provided by auxiliary digital programs discussed later.
Checkout of the digital and analog calculations is initially independent. Digital algebra
and trigonometry are verified relative to the
system equations with all logical branches independently checked. Analog check is performed
by applying static voltage to various portions
of the problem and testing component output
values or time constants. The digital checking

,

699

HYBRID COMPUTATION AT UNITED AIRCRAFT RESEARCH LABORATORIES

requires more time than analog because of the
larger number of calculations usually performed at the digital. Typical checkout of the
program has taken' from two to three 8-hour
shifts. When each computer portion is independently checked, the system is closed and
conversion channels are checked for proper wiring at the analog and proper timing at the
digital.

F(4T1
T= DIGITAL CYCLE

ANALOG

FUCTIONAL
TIME

x__

I_DIGITAL X

I

I
I J_
___ ..

SEQUENCE
F(3T

___

I
I
I
I
- lI _ __

_=-~-~o-

F(2T)
I
I
I

I
I
_ _ _ _ ..JI _ __

F(T)

SOME DIGITAL TECHNIQUES FOR
SIMULATION

I

Relative to the analog computer, the digital
computer is a new element in real time simulation and its application bears some examination. A few demonstrative techniques are discussed below.

Delay Correction
The digital computer is generally applied in
the area of calculation from the motions of a
system to its derivatives. The digital output
will remain fixed over each sampling interval
and, though the analog integrations vary continuously with time, the analog will be read at
discrete levels each program cycle. Each output from the digital is dependent on data obtained at the start of the progranl cycle and
represents a delay of at least one cycle, T.
Consider the time relations of a closed loop
calculation involving one integration with digital feedback as shown in Figure 2. Initially, the
digital computer should have cycled at least
once before problem start to provide derivative
output for zero time. The functional time
sequence after the problem begins operation' is
shown in Figure 3. Assuming the computation
begins with the digital sequence at the start of
a cycle, the variable read at zero time will be
used to compute the derivative output at time
T. Likewise, the variable at time T will lead to
derivative output at 2T. Thus the analog re-

F (0)

~--+----:-I_ _--.-_ _-.-o

2T

3T

4T

TIM E

Figure 3. Function Timing Without Delay Correction.

ceives data one cycle time behind true time and
must integrate this constant data until the completion of the next digital cycle.
x(nT)

= x(nT - T) + Tx(nT - 2T) (1)

n = 1,2, ...

Higher order analog integration is affected in
much the same manner. Two integrators in
sequence would operate as in equation (2).
x(nT) = x(nT - T)

T=~

+ -x(nT 2

2T)

(3) .

x(nT) = x(nT - T)

+ Tx(nT

- T)

(3)

The order of extrapolation used provides a
trade-off between accuracy of function fit and
time for calculation and data handling. The
simplest is linear extrapolation as in Equation (4).

+ T) = 2x(nT) - x(nT - T)

(4)

The parabolic form is shown in Equation (5).
x(nT

+ T) =

3x (nT) -

3x(nT - T) + x(nT - 2T)
Figure 2. Typical Computer Application.

(2)

The effect of digital delay can be reduced,
where necessary, by extrapolating problem
variables forward one sample interval. The resulting influence, illustrated in Figure 4,
changes Equation (1) to the form in Equation

x(nT
x

T

(5)

At zero time, the system is generally at rest
allowing the variables at negative times to be

700

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

r ----

F (4T)

T= DIGITAL CYCLE

I

I
DIGITAL X
--+ I
(EXTRAPOLATED)
I

FUCTIONAL
TIME
SEQUENCE

+- DIGITAL- TOANALOG ~

I
F(3T

F(2T)

F (T)

F(O)

o

T

2T

3T

4T

TIM E

Figure 4. Function Timing with One Interval Delay Correction.

equal to the variable at zero time, i.e., x (0) =
x( -T) = etc. If initial derivatives are not zero,
an iteration must be made to calculate the
initial values at negative time and adjust the
derivatives.

Digital Integration
An examination of Equation (3) above shows
this to be identical to the Euler Forward Step
Integration method used for time integration in
digital computation. It is therefore possible to
digitally simulate the operation of integration
by this fast and easily programmed technique.
Use of this method for more than a single
integration in sequence must proceed from the
last integration first. That is,
x(nT) = x(nT - T) + Tx(nT - T) (6)
then
x(nT)

= x(nT - T) + Tx(nT - T)

(7)

For two integrations, it is also possible to use
Equation (8) which duplicates the equivalent
analog integrations with digital feedback and
delay correction.
x(nT)

T2

= x(nT - T) + 2 x(nT - T) (8)

For linearly fedback analog transfer functions such as lags, damped second order networks, etc., a difference equation approach,
discussed by Hurt, 3 can be used. By this technique, the Laplace transfer function is obtained
and converted to an equivalent pulse transform
from which a difference equation can be
formulated.

A rbitrary Function Generation
Various digital techniques are available for
evaluating function data. Among these are
polynomial representations and table interpolations. The table approach is useful for the
arbitrary shapes of aerodynamic curves. However, searching for the table arguments is undesirable because of the execution time required.
A direct fuinction look-up technique,S, 9 described for bivariate functions in Appendix I,
is used at United Aircraft. This method uses
a table of function values taken at equispaced
input arguments. The input intervals are
scaled to permit use of a portion of the binary
argument word as a table reference address
and the remainder of this word as the linear
interpolation ratio.

HYBRID COMPUTATION AT UNITED AIRCRAFT RESEARCH LABORATORIES

The use of a single argument interval often
requires an excessively large data table to adequately describe the function. Some reduction
in table size can be accomplished by subdividing the function into regions with different
argument modifying function to the problem
argument, i.e.,
f(x) = g(h(x»

(9)

Function Algorithms
Some calculations such as trigonometric or
logarithmic functions can be reduced to polynomial evaluations. A fast converging and reasonably accurate polynomial algorithm is desired. In general, Chebyshev polynomial fits/o
for these functions satisfy this need; e.g., sine
function for angle () over two quadrants
sin () = 1.5706268x 0.6432292x 3 + 0.0727102x 5 (10)
2()

estimate, four iterations of Equation (11) are
known to provide less than 0.01 % convergence
error.
OFF-LINE DIGITAL SUPPORT
Off-line, digital utility programs support
the simulation from problem preparation
through output presentation. This is especially
important when problem turn around time is
as frequent as eight hours, a common procedure at United Aircraft. Typical utility programs are as follows:
1. Assembly' and debugging12 systems for

2.

3.

4.

where x = 7r

The results are accurate to within 0.012 % over
the range of (), consistent with current day
analog resolvers. Execution time in PDP-l
computer averages 140 microseconds.

I terated Functions
Some computations require iteration in their
evaluation. The square root is a typical example. The square root can be obtained by using
the Newton-Rhapson method for iteratively
solving roots of equations. 11
(X2)

x(n

+ 1)

-,
-, + x(n),
x(n)
2

(11)

n = 1,2, ...

A fixed number of iterations can be used without convergence testing if the range of input
variable change and accuracy of rooting are
known.
In simulation activities, the problem variables should not change by a large ratio from one
program cycle to the next unless the variables
are insignificantly small within the range
scaled. If the successive input variables are
within 0.5 to 2 times the previous values and
the preceding root is used as the initial output

701

5.

program preparation and modification.
Coefficient generation programs 6 for
evaluating problem constants and potentiometer settings from engineering data.
DO/IT control programs 1 (UAC-15, S.
Sharpe and J. Miller) for potentiometer
setting and component reading.
Digital scope, arbitrary function display
with light pen, curve modifier. 14
Digital scope display9 for graphically presented and alphanumerically identified
time sequence, cross plot, or steady state
data.
;!

Some .of these systems are discussed in more
detail below.

Coefficient Generator
Equation coefficients used in the simulation
mathematics are functions of parameters of
the physical device and its environment. These
parameters are part of the problem data language used by the engineer and are often
changed during a study.
A digital program is used to compute the
problem coefficients from the engineering parameters. All scale factors to be applied in
converting coefficients to pot values for the
analog computer or constants for the digital
on-line program are included. Gain changes
needed to adj ust the range of computed pot
values are applied by the program. Range
changes for digital constants are generally not
required since the digital on-line program can
be scaled for wider range than analog due to
the one in over 200,000 parts resolution available.

702

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

Pot Setting
With the control linkage between the digital
and analog computers, it is possible for a program to set analog potentiometers directly
from the results of a coefficient generation program. The settings can be made and checked
faste:r ;)nd more reliably than by a human operator. If a failure occurs, the user receives a
typed output indicating the difficulty. If gain
changes are required, the digital program types
the information. For pots requiring frequent
gain changes, the digital-to-analog logic linkage
can be used to switch gains under program control.
Analog Check
The digital control of the analog computer
permits reading of all analog components. With
this feature, a program (UAC-8, G. Paquette
and J. Miller) has been developed for checking
the analog circuits. This program accepts equations representing a static condition on the
analog hardware. These are solved interpretively and results are compared with analog
components within specifiable tolerances. Errors are typed out. Changes in analog circuitry or pot values can easily be updated in
the check equations and data by typewriter
control or direct input from the coefficient
generator program. This system is discussed
further in Appendix II.
Function Display and Modification
Curves used with the hybrid simulation are
generally included in the digital calculation.
The few, if any, remaining on the analog are
still subject to the slow set up and change procedures typical of diode function generators
even with servo set capability.
Curves contained in the digital memory can
be loaded from paper tape and changed by tape
or typewriter input. In addition, the curves
can be displayed on a digital scope individually
or as maps for easy modification using the light
pen. This technique permits the user to rapidly
change function data without requiring a calculation of each point.
OPERATIONAL HYBRID SIMULATION
The Single Rotor Helicopter, Real Time Simulation sponsored by the Sikorsky Division,

demonstrates an application of hybrid computation at United Aircraft. The simulation consists of three basic portions.
1. Fuselage aerodynamics, kinematics, and

dynamics.
2. Main rotor aerodynamics and dynamics.
3. Fixed base, flight simulator.
The total force, 6-degree of freedom, aircraft
mathematics include computation of fuselage
and tail rotor forces and moments as functions
of air speed and direction. Along with main
rotor components, these forces and moments
are applied in computing linear and angular
motions. Most nonlinear aerodynamic and kinematic calculations are obtained at the digital
computer. Flight path and attitude integrations are performed at the analog computer.
The rigid, hinged blade main rotor dynamic
degrees include blade flapping and azimuth
speed. Force calculations, including effects of
mach number and stall, are obtained over the
blade span and rotor azimuth. The entire rotor
computation, including dynamics, is performed
at the digital computer.
The flight simulator, used to study flying
qualities and human factors, contains pilot controls; instruments; and a Norden Conalog, artificial world, television display. The amount of
data required is fairly large but the calculations are reasonably simple and contain few
nonlinearities. In order to minimize the number of digital-to-analog converters required,
these computations are performed at the analog
computer.
Auxiliary computation tools provide for
rapid implementation of desired studies:
1. A digital coefficient evaluation program

to convert engineering data into the digital program constants and analog pot settings.
2. Automatic controls at the analog computer to obtain aircraft trim at desired
flight conditions.
3. Digital scope, display programs for aerodynamic functions and dynamic output
data.
The digital computer provides the mathematical operations shown in Table II.

HYBRID COMPUTATION AT UNITED AIRCRAFT RESEARCH LABORATORIES

TABLE II. DIGITAL OPERATIONS FOR
HELICOPTER SIMULATION
9
2
15
2

Bivariate Functions
Univariate Functions
Trigonometric Functions
Two-dimensional Coordinate Transformations
2 Square Roots
4 Time Integrations
Numerous Term Products and Sums

The digital program cycle time is 0.03 sec. providing five cycles of rotor calculation within
each fuselage sample-calculate-output cycle.
The rotor calculation is executed more frequently because of the higher frequency range
of the rotor system relative to the aircraft.
Memory requirements for this program approach 4000 words for the simulation problem
and its data. The simulation program, coefficientgenerator, and arbitrary function display
occupy the same memory space and must be
used independently.
This problem, in a less sophisticated version,
was once simulated exclusively with analog
equipment. From this computer representation
and estimates of the requirements for the expansion, the digital program alone replaces
the following analog equipment:
172
295
118
64

Amplifiers
Coefficient Potentiometers
Variable Products
Arbitrary Function Curves

The original analog system required an a verage of four hours to set up and check out assuming approximately 40 function generators
were set during the previous shift. Set up and
check out of the hybrid system is less than 30
minutes. Part of the time saving is due to the
reliability of the digital computer and the reduction in analog components with a corresponding reduction in the number of equipment
failures encountered at check out.
Static trim ~ata for the helicopter was obtained from the original analog simulation;
the hybrid simulation; and a highly sophisticated, non-real time, performance program for
IBM 7090. Relative to the 7090 results, the
hybrid system produced values with one-fifth
to one-tenth the differences exhibited by the
original analog system.
Time histories of pilot control and re~ultant
helicopter motion were obtained from Sikorsky
flight tests. The same pilot control motions
were applied to the hybrid simulation. Good
correlation with the flight test was obtained.
FUTURE INDICATIONS
Trends at United Aircraft indiCate the future will find real time calculations processed
more extensively by the digital computer. Contributing to this trend are the following points:
1. Considering the helicopter problem above,

2.

The function curves each contain 32 points,
representing 31 linear segments. Exact replacement with diode function generators
would require192 11-segment units.

3.

The analog equipment presently utilized in
the hybrid version is as follows:

4.

59
67
16
4

Amplifiers
Coefficient Potentiometers
Multipliers
11-Segment Diode Function Generators

An important distinction between the two
systems, analog of the past and hybrid of the
present, is the speed of set up and modification.

703

5.

essentially two consoles of analog equipment were replaced by a digital computer
which costs significantly less tha,u one of
these consoles.
The digital equipment is highly reliable
and it can be preventatively maintained
during idle time.
Once checked out, a paper tape of program and data can be reloaded with high
confidence in its subsequent operation.
Set up by prepared program tapes is
much faster than analog set up.
Man-machine communication is improving with utility program support as discussed above.

Some real time problems at United Aircraft
have already become essentially digital. The
growth of the helicopter problem has been typical of this trend. The original hybridization

704

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

utilized the digital computer only in calculating
the highly nonlinear, main rotor aerodynamics.
Competitively priced digital computers are
now available with larger word size at effective
speeds up to four times that of the PDP-I. Indeed, computers with floating point arithmetic,
a step toward solving the simulation scaling
problem, are becoming available at reasonable
cost and provide floating point operation faster
than the fixed point calculation·of the PDP-I.

*

j =

I( x:xx

j = I(

The author wishes to acknowledge the efforts
contributed by members of the Analog Section,
United Aircraft Research Laboratories, in developing the equipment and software techniques summarized in this paper.
APPENDIX 1. BIVARIATE FUNCTION
GENERATION
The desired function
z = f(x,y)

(12)

is obtained by cross-linear interpolation within
a table of function values. The function table
is stored in memory without argument values
in the following sequence:
Zi,,=

:(C~>(X"Y'»)

yj+1

(14)

(yj - Yo)
tl.y

(15)

j =

The function interpolation for input arguments X and y proceeds as follows:
zx, j +1 = (Zi +1, j +1 - Zi, j +1) (

X - _Xi )
Xi +1
Xi

(18)

(19)

y:yY°) y,:/°)

(20)

)

=(

\

Xi

I

\

= (

where I denotes "integral part of." The loca..
tion of Zi, j is then
loc (Zi, j) = loc (zo,o) + i + Lj
(21)
and further
loc (Zi+l,j) = loc (Zi,j) + 1
loc (Zi, j +1) = loc (Zi, j) + L
loc (Zi+l,j+l) = loc (Zi,j+l) + 1

(22)
(23)

(24)

The interpolation ratios in Equations (16) to
(18) are obtained as the fractional parts left
after i and j are removed in Equations (19)
and (20).

F(X:XXO) (X:XXO)_j
=

where i, j = 0,1,2, ...

(Xi - x o)
i=
Llx

+ Zx,j

~ "0 )

o

(13)

The Yj arguments must be selected at equal
intervals, tl.y, and the Xi arguments must be
selected at equal intervals, Llx. Note that i and
j can be obtained as:

Yj

where Xi ~. < Xi + 1 and Yj ~ Y < Yj +1
The data for interpolation can be obtained frorri
the sequence (13) if i and j are computed.
From (14), (15), and the bounds on X and y,
above,

I

ACKNOWLEDGMENT

y - _Yj )

Z -- (ZX,j+1 - Zx,j) (

C~~_X~.)

(25)

F(Y:/O) (Y:/O)
=

C~+~~~,)

(26)

The table addressing operations described
above can be computed more rapidly if the
number of function values taken for each curve
at constant y, the X interval, and the y interval
are chosen as integral powers of 2; i.e.,
L

=

2C

(27)
(28)

+ Zi, j +

(29)

(16)

where C is a positive integer and Nand Mare
positive or negative integers. The divisions in
Equations (19), (20), (25), and (26) and the
multiplication in Equation (21) are then replaced by word shifts about the binary point.

1

HYBRID COMPUTATION AT UNITED AIRCRAFT RESEARCH LABORATORIES

APPENDIX II. ANALOG COMPUTER
SYMBOLIC SET AND DEBUG
A group of three PDP-1 programs (UAC-8)
provide problem checks for analog computer
users. The program group includes an equation
loader, an interpretive mathematical and logical equation solver, and an output printer or
puncher.
The user communicates with the analog
check program by paper tape or typewriter
using an equation language which defines the
components of his computer and their relations.
These equations may be defined directly from
the circuit diagram by technical aide personnel.
Analog computer components are denoted by
a letter and a four digit address identifying
the component type, console number, and component address. Component types include amplifiers, function generators, servo mUltiplierresolvers, electronic multipliers, trunks, and
potentiometers. In addition, dummy codes for
switches, relays, test voltage, etc. are available
for devices not read by DO lIT. All the above·
components except potentiometers may ·be
defined by equations relating to other components. Potentiometers can be defined by numeric value only. In addition to assigning component or test values, numeric values are used
to state gains, references, and function coordinates.
Mathematical or logical operations permitted
are listed in Table III.
TABLE III. OPERATIONS EXECUTED
BY UAC-8
Addition
Subtraction
Multiplication
Division
Square root
Function interpolation or extrapolation
Trigonometric operations sine, cosine, and
arctangent
Dead zone, symmetrical or not
Limit, symmetrical or not
Logical term control by greater or less than
test as with operational relays

705

A loading program is used to enter the equations and data from typewriter or paper tape.
In addition, the user can change existing equations or add to the current check system with
this loader.
An interpretive equation solving program
processes all mathematically defined components. Equations to be solved must represent
an open loop system as is common with static,
initial condition, or hold testing procedures; i.e.,
equations are solved sequentially, not simultaneously. The order of equations presented is
irrelevant as the program automatically determines the order in which solutions may be obtained. Digitally computed values can be compared with analog components within user
specified tolerances.
An output program provides typed solution
values with their component codes. In addition,
the output program provides the user with an
optional punched or printed copy of his updated
equation language.
REFERENCES
1. BELLUARDO,

R., GOCHT, R. E., and
G. A.; "The Hybrid Computation Facility at United Aircraft Corporation Research Laboratories," DEeDS
(Digital Equipment Computer Users Society) Proceedings 1963, Maynard, Mass.,
261-269 (1964).
PAQUETTE;

2. KRASNY, L. M., "The Functional Design of
a Special-Purpose Digital Computer for
Real-Time Flight Simulation," Electronic
Systems Laboratory, Final Report ESLR-118, M.LT., August 1961.
3. HURT, J. M., "New Difference Equation
Technique for Solving Nonlinear Differential Equations," AFIPS Conference Proceedings, Vol. 25, 1964 Spring Joint
Computer Conference, Spartan Books,
Baltimore, Md., 169-179 (1964).
Washington, D. C., 169-179 (1964).

4. Introduction to Hybrid Computation,
Training and Education Group, Electronic
Associates, Inc., Princeton, N. J., 1963.
5. Real Time Data Processing Notebook,
Beckman Instruments, Inc., Fullerton,
California.

706

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

6. PAQUETTE, G. A., "Some Operational
Aspects of a Hybrid Facility," presented
at Eastern Simulation Council Meeting,
East Hartford, Conn., December 1963.
7. "MIT-3 Macro Assembly Program for
Programmed Data Processor-1," Digital
Equipment Computer Users Society,
DECDS No.5, Maynard, Mass., 1962.
8. PAQUETTE, G. A., "UAC-10 Fast Bivariate
Generator," Digital Equipment Computer
Users Society, DEeDS No. 34, lVIaynard,
Mass., January 1963.
9. KEMBLE, T. H., "Digital Bivariate Function Generator and Display," presented at
Eastern Simulation Council Meeting, East
Hartford, Conn., December 1963.
10. HASTINGS, C., HAYWARD, J. T., and WONG,
J. P., Approximations for Digital Com-

puters, Princeton University Press, Princeton, N. J., 1955.
11. SCARBOROUGH, J. B., Numerical Mathematical Analysis (J ohns Hopkins Press,
Baltimore, Md., 1950), 2nd ed., chapter 9,
pp. 192-198.
12.

KOTOK, A., "MIT-1 DEC Debugging Tape,"
Digital Equipment Computer Users Society, DECUS No.6, Maynard, Mass., November, 1962.

13.
Preparation," presented at Eastern Simulation Council Meeting, East Hartford,
Conn., December 1963.
14. JACKSON, S. F., and PAQUETTE, G. A.,
"UAC-14 Digital Function Generate and
Display," Digital Equipment Computer
Users Society, DECUS No. 65, Maynard,
Mass., September 1963.

A STROBED ANALOG D,ATA DIGITIZER WITH
PAPER TAPE OUTPUT
R. L. Carbrey
Bell Telephone Laboratories, Murray Hill, New Jersey
INTRODUCTION

codes to an analog voltage and using this voltage as the horizontal position signal for the
sampling oscilloscope.

In a group doing research on communication techniques, a wide variety of analog signals are encountered which must be analyzed.
The most effective general purpose tool available for carrying out the analysis is a highspeed digital computer. Thus the problem of
converting large quantities of analog data to a
digital form suitable for use on the computer
arises frequently. A number of high resolution anaiog-to-digitai converters which can
handle data in the kilocycle range are commerciallyavailable, but the majority of signals
to be analyzed are those with frequency components in the range from a few megacycles
up to a gigacycle or more. For these,ordinary
real time A-to-D conversion cannot presently be
used.

The function of the digitizer is to convert
either the direct analog signal or the strobed
samples to a sequence of a selected number of
twelve bit binary words. Twelve bit words
permit resolving a full load signal to one part
in 4096 or about 0.025 7c. These words are
then stored in a coincident core memory with
a capacity of 4096 words; so its address positions are also controlled by twelve digits.
These are generated by a settable counter with
six digits allotted to the X location of the
memory and the remaining six to the Y location. Ultimately the stored digital data is
used to control a combination punch and typewriter which punches the paper tape. This
tape presently serves as the transfer medium
between the digitizer and the digital computer.
Ultimately, direct read-out to a magnetic tape
is planned.

Fortunately experiments in this range are
usually set up in such a manner that the signals
can be viewed on a sampling type oscilloscope
which means that the high-speed signals must
be repetitive in order to permit them to be
sampled many times at some relatively slow
rate. By designing a system which also performs the analog-to-digital conversion on these
oscilloscope samples and systematically stores
the resultant binary codes in a memory circuit, the range of operations has been extended
to include most of the signals which are encountered. A one-to-one correspondence between memory address and sample time is
obtained by converting the memory address

Before punching is started, however, one
should observe the results of the digitizing
operation to determine whether the data meets
the requirements for processing. Therefore,
digital-to-analog convarsion is also included.
The stored data can be displayed on the oscilloscope or an X-Y plotter. The results of
se"veral related experiments can be stored for
observation at one time, or one run can be
divided into a number of small segments each
of which can be examined in minute detail. A
707

708

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

lamp display section provides a visual indication of both address locations and data in
digital form.
The objective was to provide a digitizer which
was both flexible in operation and compact
enough to permit ready movement into the
laboratory where the experiment was being
run. To achieve this, the control problem was
simplified by using three types of manual operation. The number of words in any sequence
and their location in the memory is established
by manually registering memory address start
and end points. Octal thumbwheel switches
are used. This same type of switch is used to
manually set up any arbitrary binary word
which is to be written into the memory instead of a sample value. Finally, illuminated
push button switches are used to select the operation to be performed and to initiate a loading, transferring, plotting, or punching operation. Although thirty-three of the push button
positions provided on the console are actually
used to perform a variety of operations, many
of which will not be discussed, the basic
manual switching functions are those indicated
schematically in the block diagram discussed
below. A photograph of the complete unit is
shown in Fig. l.
In order to minimize the construction and
debugging time, most of the blocks were implemented with commercially available equipment all of which has proven to be very satisfactory.
BLOCK DIAGRAM
A simplified block diagram of the digitizer
is shown in Fig. 2. The heart of the system is
the coincident current core memory which
serves as a buffer unit between the varied input information rates and the fixed output
punching rate or any desired display rate. The
particular unit selected for the digitizer has a
capacity of 4096 words of sixteen bits each.
(The extra four bits are used for arithmetic
or flagging operations. ) The self-contained
access circuity was designed to operate in the
Random/Sequential Interlace mode with fu11
cycle operation. In the random mode, the internal address register for the writing operation can be set to any selecte,d one of the 4096

Figure 1. Digitizer and output typewriter with paper
punch.

address positions by applying the desired
twelve bit address word and then issuing a
load command.
If the unit is then switched to the Sequential
Interlace mode, it will proceed systematically
from this address advancing once per load
command. The unload address counter can be
similarly indexed. Full cycle control requires
that each load operation includes both clear
and write while each unload operation includes
both read and restore; therefore, the readout
is essentially nondestructive. The load and unload operations can be carried on in any arbitary sequence, but they cannot be performed
simultaneously, and care should be exercised
not to load in an area where wanted data is
already stored. A full cycle requires 10 microseconds; so the maximum operation rate is
100,000 commands per second.
For purposes of block explanation, the memory has been divided into four parts-the load
position address, unload position address, the

A STROBED ANALOG DATA DIGITIZER WITH PAPER TAPE OUTPUT

load into and the unload data from the common storage medium. The twelve bit positionaddresses are handled in parallel as are the
data bits. When switch 84 is in the position
shown, the selected orderly sequence of address
codes appears as the input to the X Position
Digital-to-Analog converter. The resulting output is a staircase voltage with the number of
steps equal to the difference between the start
and stop addresses, the risers equal to 1/4095 of
the full range, and the treads as long as the
time between load commands. This staircase
serves as the X axis input signal to the sampling oscilloscope replacing the internally
generated "slow ramp."

blanking" signal is provided which permits the
sample magnitude to be displayed at the horizontal position corresponding to the memory
address. This unblanking signal is also used
to initiate each A-D conversion. Thus the
conversion and subsequent loading operation
is asynchronous with the maximum rate being
limited to 40,000 conversions per second by
the twelve bit A-D Converter. A conversion
command causes the A-D Converter to sample
and hold the signal stored in the oscilloscope.
This double sampling process, once in the
~scope and once in the converter, is required
because the storage circuits in the converter
take longer to charge than the duration of
many of the phenomena to be observed. The
storage circuit in the converter must, on the
other hand, be very precise if the full 4096
level resolution is to be obtained. Low-speed
waveforms are connected directly into the A-D
Converter; so they are only sampled once as
in more conventional practice.!

As is usual in this type of oscilloscope, an
internal "fast ramp" is triggered by the synchronizing signal. At the instant this latter
ramp voltage becomes equal in magnitude to
the address voltage, a strobe sample is taken
of the Y axis input signal. The sample potential is then held until the fast ramp cycle is
completed and a new trigger operation takes
place.

Three microseconds prior to the completion
of conversion, a program pulse is generated
which initiates the load command for the memory. As a result, the "clear" part of the clear/
write cycle is almost over by the time the

Once a sample voltage has been established
on the scope's storage circuit, a beam "un-

FLEXOWRiTER

...---t

~DIRECT SIGNAL IN

CH. A
STROBED
SIGNAL IN

READ t PUNCH
HEAD : HEAD

COINCIDENT
CURRENT MEMORY
4098 WORDS
(12+4) BITS EACH

CH.B

~__s_2~1

SAMPLING
OSCILLOSCOPE

LOAD

PUNCH OR
RELOAO

I

UNLOAD'

I

I

x Axrs

I

INPUT

DATA STORAGE

I

I

I

I
------;-----I

LOAD !UNLOAD
START

cJNOTt~'&.IDDDoi
LOGIC

STOP

[0000]

709

I
I

I

POSITION
ADDRESS
I

MULTIVIBRATOR
OR
FLEXOWRITER
TIMING

Figure 2. Simplified block diagram of Tape Output Strobed Analog Data Digitizer.

710

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

digitization is complete and the twelve bit
word is available for writing into the memory.
The strobe, convert, and load sequence continues until all of the assigned positions have
been filled during one horizontal sweep. During setup, it is frequently desirable to observe
repeatedly all or part of a display. This is
accomplished in the auto-start mode by permitting a selected address to initiate a new
start command thus resetting the sweep and
starting over.
Once the data has been stored in the memory
in digital form, the usual procedure is to check
it by "playing it back." This is accomplished
by transferring the switches to the plot mode,
setting the Unload Start and Unload Stop
thumbwheel switches to the desired range and
pushing the auto-unload switch. Switch S4
connects the unload position address to the X
Position D-A Converter. Output from the
latter supplies the horizontal signal for both
the sampling oscilloscope and the X-Y Plotter.
The plotter is built into the control console
under a sliding plexiglass writing surface.
Unload command rates are controlled by an
internal multi vibrator with a fast unload rate
of about 40 kc permitting ten repeated oscilloscope displays per second of the full memory
load or correspondingly more frequent displays
of shorter memory sections. A variety of
slower speeds can be selected for use with the
plotter and visual readout. Conversion of the
stored data is accomplished by switching the
A-D Converter to its D-A mode.
PAPER TAPE PUNCHING AND CONVERSION TO MAGNE'TIC TAPE
A mixed alphabetic and binary data format
is used on the eight column punched paper
tape. Experiment titles and interspersed comments are typed in from the keyboard in a
conventional manner except that an appropriate one of four characters is. typed on each
line just before the carriage return key is operated. The control characters used are: H
(Holerith) for alpha-numeric characters, B
for binary data, P for end of experiment,and
X for end of tape. Anything which is not
wanted in the digital computer's magnetic tape
copy of the paper tape can be deleted by punching something other than one of these four.

Holes in column eight of the tape are punched
only by the carriage return key.
The start of a binary data run is indicated
by the letter "B" followed by the carriage return punch, and the end of the data is always
terminated by another column eight punch.
Each twelve bit data word is punched as two
six-bit characters with the first half of the
word identified by a space in column five and
the second half by a hole. The odd parity
function normally assigned to this column was
ignored since the paper tape reader at the
Murray Hill Computation Center generates its
own parity bit. Instead a check on the punching operation is obtained by simultaneously
reading the split words from the punched tape
back into the digital-to-analog converter and
plotting the result alongside the X-Y plot
which was made prior to punching. Sixteen
minutes are required to punch out a full memory load of 4096 words in sixty-eight feet of
tape.
The paper .tape reader which serves as the
peripheral input device to the computer, can
read a full memory load in sixteen seconds.
Although the reader cannot transfer the column eight punch to the magnetic tape, it can
recognize this "End of Line" indication, and
use it to generate the proper flagging instruction for the paper to magnetic tape conversion
program. Once the first generation magnetic
tape is produced, a computer program is used
to delete the parts so m~rked, unpack the data
and text, block them into the standard computer format, and translate double-case typewriter symbols to. appropriate digital computer
symbols where different. When desired, a
microfilm plot is provided for comparison with
the original X-Y plot. The process can, of
course, be reversed; so that computer data can
be put into the digitizer memory by way of a
punched paper tape.
SWEEP CALIBRATION AND LINEARITY
In the digitizer, one coded sample value is
stored at each memory address position, so the
standard sweep calibration; is made in nanoseconds per address. The nominal 10-volt reference voltage for the X Position Address
Decoder is set so that just eight complete

A STROBED ANALOG DATA DIGITIZER WITH PAPER TAPE OUTPUT

cycles of the oscilloscope's internal ten mc
calibration wave will appear when 4000 (decimal) address positions are used with a Sweep
Time/cm of 0.1 f-tsec. This calibration corresponds to 0.2 nsec/address. Selection of other
settings of the Ext. Horiz. Input and the
Sweep Time/ cm controls permits changing
this over a range from 4 f-tsec/address to 0.4
pi cosec / address.
In normal sampling oscilloscope usage, a
nonlinearity in the horizontal sweep cannot be
observed because the sample is taken at a time
proportional to the horizontal sweep voltage
and the sweep positions the beam at the actual
sweep value. The sweep can even be stopped
or reversed enroute, and the waveform will be
displayed with fidelity except for a brightness
change. The high speed ramp and associated
comparison decision must be linear, however.
When the horizontal position is converted to
an address as it is in the digitizer, each quantized horizontal increment is treated by the
computer as a specified time increment. This
will lead to distortion if the horizontal display
is not linear. A calibration run can be made
which will permit correcting the values in the
computer, but adequate linearity is much to be
preferred.
The linearity was measured by first calibrating the sweep for 0.2 nsec/address with the
ten mc test wave and then switching to the
Ion me test wave. Figure 3 shows a plot of
interpolated addresses or sampling intervals
between adjacent positive going center axis

crossings as well as those for negative crossings. At 0.2 nsec/address, 50 addresses correspond to one cycle, and the center axis slope
of a full load 100 mc sine wave is about 500
code levels per sample.
Although the actual axis crossing can be de~
termined only to the nearest 0.2 nsec sample
increment, the spacings interpolated from the
coded amplitude values immediately before and
after crossing should, ideally, plot on a horizontal straight line. The slight curvature of
the fitted line shows an effective compression
of about 1 % for the combined sweep, scope
amplifier, and threshold decision. The offset
from the 50 sample periods shows that the
initial manual calibration was also off by about
1 roo This can now be adjusted more precisely
with a ten turn potentiometer.
The dispersion of interpolated points indi~
cates that both of the foregoing are masked by
a combination of other factors which are
loosely lumped into the 'scope sync. category.
In normal sampling 'scope usage, repeated
patterns are observed, and the eye or the
camera averages the plotted points at anyone
place on the wave. The better the synchronization, the narrower will be the line of points.
In the digitizer application, however, the
amplitude samples are normally recorded only
once at each address-quantized horizontal position. No averaging takes place. If the "synchronization" is not perfect, some of the points
will be displaced slightly. A plot of the waveform will be somewhat irregular as illustrated

53~--------------------~------------------------------------------------------------~-==,

47~~

o

____~____~____~____~~__~__~__~__~~~~__~__~__~~
20

40

711

60
100
AXIS CROSSING NUMBER

teo

Figure 3. Sweep linearity calibration and synchronizing noise check by interpolated
address differences between same direction axis crossings of a 100 mc sine wave.
Strajght line at address difference of 50 would be ideal.

712

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

for the 100 mc repetition rate snap diode pulse
of Fig. 4a.

- --~~

Small timing variations of this nature account for the dispersion shown in Fig. 3. Since
the strobed sample is taken at the instant the
triggered fast ramp becomes equal in magnitude to the decoded horizontal address voltage
and each address is 1/4096 part of the total,
the combined synchronization and amplitude
decision must be better than this fraction to
keep the point spread within ± 1 address.
Both experiment and synchronization noise
can be averaged out by making repeated measurements of the data and averaging the results
either in the computer or in the digitizer. 2 See
Fig. 4b. The digitizer memory can store words
as long as sixteen bits, thus allowing the extra
four digits to be used for accumulation of sixteen repeated waveforms when full magnitude
signals are coded or correspondingly more
repetitions when fewer than twelve bit words
are coded.
SUMMARY
Perhaps the best summary of the digitizer's
capabilities is an illustration showing a few of
the varied types of data which have been con-

o

o

C\i

rr)
('\J

Figure 4a. One nanosec section of snap diode pulse at
4 picosec per sample with no sampling oscilloscope
smoothing. This shows waveform irregularity due to
noise and synchronization problems.

-·_·
A-

-~1.
-N

-1.

~

/

o

~.

-\
-

-

\ -

\-

-r
(ij

o

(\j

Figure 4b. Reduction of irregularity by computed
average of sixteen repeated runs including that of
Figure 4a.

verted from analog to digital form. The figures are microfilm plots made from precomputation tapes processed on the high speed digital
computer. Experiment and run titles which
were typed into the paper tape at the time the
experiment was run are generated at the left
of each microfilm plot along with supplementary information determined in the computer
program such as the maximum and minimum
value, but these are not large enough to be
clearly legible in reduced reproductions.
Neither are the horizontal scales which are
decimal integer equivalents of the memory
addresses. The plot program option to use
the maximum and minimum as vertical plot
limits was selected for all figures except number six.
Figure 5 shows a twenty-four sample section
of a snap diode pulse similar to that shown in
Fig. 4a, but here the samples are spaced only
40 picoseconds per address. The total interval is one sample short of one nanosecond. At
this sensitivity, the horizontal signal is changing in large enough steps to minimize the synchronization differences. Because the microfilm plot program draws straight lines between
sample points, the individual points can be
observed. It is apparent from the slope at the
top of the plotted pulse that the peak of the

713

A STROBED ANALOG DATA DIGITIZER WITH PAPER TAPE OUTPUT

tee serving as an echo line. Fig. 4b is the most
accurate representation of these 3-volt pulses
which repeat at 10 nsec intervals and have a
half amplitude width of 0.24 nsec.

J1\
I \
I

I

\

/

\

1

/

II

\

/

\

/

o

--

Figure 6 shows the 10 nsec pulse to a 200foot length of RG58A/U coaxial cable and the
pulse reflected back to the input from a short
circuit at the far end. The intervening 560
nsec, corresponding to decimal addresses 300
to 3100 at 0.2 nsec/address, were deleted from
the strip of microfilm. Transmission characteritics of cables can be determined from
this type of pulse response measurement. When
the meauring probe is bridged across the near
end, the same takeoff can be used for both the
input and output, and the pulse must travel the
full length of the cable twice before it reappears at the output.

II

\
I---

C\I

"'-

~

o

/

C\I

C\I
C\I

Figure 7 is a plot of the smoothed samples
of the peak output of the 40th, 424th, and 808th
-read pulses from a wire plated with a magnetic
film. 3 In the test setup, a single write pulse
was first applied at one location on the wire.
Then about 940 consecutive read pulses of 100
nsec duration were applied. The horizontal
position of the sampling oscilloscope was set
manually to the peak of the resulting output
pul~es and the address decoder was disengaged
because only the variation in peak magnitude

Figure 5. Twenty-four samples at 40 picosec per sample of one nanosec section of snap diode pulse. Slope
indicates that peak was not sampled.

snap diode pulse was not sampled. This pulse
is used as a 100 mc clock pulse for work on
high speed digital circuits. It was generated
by driving a silicon snap-off diode from a 100
mc source. The diode and input shunt capacitor were mounted in a 52-ohm ENe connector
tee section with a short circuited plug in the

l£.-.-

(

I

\

\

-'

1---

"" 1\
\

\V

o

oIl

C\I

o

oIl

o
2

.0
C\I

o

~

o

oC\I

oIl

C\I
C\I

o

~

.0

....C\I

o

oIl

if;

./

-

f-- ~
"",-

~

o
o

C\I

('t)

oIl

C\I
C\I
('t)

o

oIl

C\I

('t)

oo

('t)
('t)

oIl

o
o

"t

('t)

Figure 6. First 300 samples showing 10 nanosec input pulse to 200 ft. of RG58A/U coaxial cable, and last 300
samples, 0.6 usec later, showing return pulse reflected from short circuit at far end.

714

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

IV \

hA
V

~

V

~r 1\
V

~

~t ~
"1

J

Ii

Figure 7. Oscilloscope smoothed samples of 40th, 424th,
and 808th output pulses from eight adjacent sections
of a wire plated with a magnetic film. With fixed
sweep, samples are at pulse peak for three positive
and three negative output conditions.

was wanted rather than the pulse shape. The
internal smoothing control of the sampling
oscilloscope was set for maximum smoothing;
so the three selected samples actually loaded
in the memory represented an average peak
amplitude early, midway, and late in the consecutive read sequence. Following this, another block of 940 read pulses at a reduced
current was applied, and the selected samples
were loaded. The wire was then disturbed by
simulating writing operations at other locations along the wire, and still another 940
consecutive read pulses at the original current
were applied. The selected three samples were
loaded. This sequence of nine loading operations was then repeated except that the initial
single write pulse was negative. After the
nine positive and nine negative signals were
loaded, the test location was mechanically incremented and the test was repeated. The 4096
word memory permits eighteen samples to be
loaded at as many as 227 wire locations. In
the figure, only the first eight locations (cycles)
tested on the wire are shown.
The retiming wave for regenerative pulse
repeaters is usually recovered from the incoming pulse train by filtering techniques. As a

result, the amplitude and phase of the recovered wave is a function of the actual pulse
pattern being transmitted and the number of
repeaters in tandem through which the pulse
train has passed. A single repeater can be
used to simulate many aspects of a chain of
repeaters by delaying a long pulse train output from the repeater and feeding the train
back to the input in a self-timed closed loop.
The wavef TT decision determines if it
is time for the periodic dump of pre-selected
digital parameters. The variable TT holds the
time for the next dump, say 20, 30, 40 etc. seconds. TP is the printout time interval and increments TT when the dump time is reached.
If the dump switch is on and T > TT, the output dump is performed; if not, the program
proceeds to the next decision. The next test
keeps the entire digital program under the timing control of the master timer. The 375 cannot proceed further until the next Tl pulse indicates the beginning of the next computational
cycle. Further testing takes place only after
the Tl pulse arrives. The TDA test enables
the programmer to place the digital program
into a loop where only DA transfer is performed. The IC test is self explanatory. The
next two tests are used to sense the end of run,
produce a printout of the final conditions, and
then put the digital computer in the hold mode
waiting for a mode command from the DOS.
The last few tests are self-evident and require
no explanation with the exception of the seeniingly superfluous second test for dump. The
test for dump in hold mode makes it possible
to dump any time by putting the computer in
hold mode prior to the dump request, in addition to or in lieu of periodic dumps. In this
manner the programmer can determine parameter values with digital accuracy at any time
during the simulation.
4.3.4 Numerical Integration
Unquestionably one of the most complex and
time-consuming parts of the digital program is
the solution of the six simultaneous differential
equations which provide the position (altitude,
latitude, and longitude) and the velocity (radius
rate, velocity east, velocity north) of the vehicle.
The numerical technique selected for this calculation was the fourth order Runge-Kutta
method. The basic method as applied to a single
differential equation is described briefly.

730

PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1964

Let dy == f (x, y) represent any first order
dx
equation and
Kl == hf (xn, Yn)
h
Kl
K2 == hf(x n+-, Yn+-)
2
2
h
K'2
K3 == hf(x n+-, Yn+-)
2
2

(10)
(11)
(12)
(13)

Ay == -

1

(K1 +2K 2 +2K 3+K4 )
6
then X n+1 == xn+h and Yn+1 ==Yn+Ay

(14)

The increment for the second interval is computed in a similar manner by means of the
same formulae. The preceding technique was
extended to a system of six equations in an obvious manner. The fourth order Runge-Kutta
method was chosen since it is self starting, accurate, and will allow the use of large time
steps in the integration. The self starting feature simplifies the· programming and reduces
the memory requirement imposed to start other
numerical integration techniques. The error
of the fourth order Runge-Kutta method is of
the order h 5 , where h is the step size, and will
allow the use of large time steps. While the
processing time is considerably more than second order techniques the increase in allowable
step size more than compensates for it.
While preparing the digital program an effort
was made to combine the calculations due to
the integration with other necessary calculations to minimize the processing time as well
as the memory space requirements. This approach makes it difficult to trace the integration on the flow diagram of the digital program
(Fig. 10). For example, the Runge-Kutta constants are determined in block 6 and the variables are incremented for the calculation
of the next constant in block 9 (such as
Kl ~ VE) etc., and the equatIons
.
V'''E + are
2
evaluated with the incremented variables in
blocks 3, 4, 5, 6, and 7. The new value of the
integral at the end of each period is calculated
in block 9.

4.3.5 Utility Programs
In order to satisfy the various data handling
needs (type in, type out, punch tape, convert
binary to decimal, etc.) an excessive amount of
digital programming must be done. Fortunately, all these programs are already available,
tested, and clearly described in the 375's "software package". This is no small feat as one
considers that the above programs, together
with the numerous subroutines, normally add
up to about 75% of all digital programming
required.

4.4 Analog Section
The analog computer is the one link of the
HYDAC 2400 system ideally suited for control
system simulation by virtue of its capability for
high speed, parallel computation and its inputoutput flexibility. Output data can be displayed in a multitude of forms such as X-Y
plots, strip chart plots, oscilloscope displays,
auxiliary meters, etc. Special purpose input
equipment can easily be adapted for compatible
operation with the analog computer.
The block diagram of Fig. 12 delineates the
mechanization of the analog program.

l'1I0II_''°1
Moan

I

TOOO.NO
AIIO ,.,.

I

't¥.IJ,,a

I

REACTION .lET

~NTROLI~U.=U~----~-+------~

OR

~

CR

I

r-~--~--------~4-~~

T

T

I

"{T

T, V,

a,

I

I

I

C:OOIIJIIT

~~.~RT;:.tGI...:..- - - - - I - AIID DI.PL"Y~

I

CRTG,h.

DR.,CR.

Figure 12

HYBRID SIMULATION OF A LIFTING RE-ENTRY VEHICLE

As previously mentioned the TRFCS and rotational dynamics were programmed on the
analog due to their rapidly varying characteristics. When the vehicle is in the atmosphere,
the vehicle attitude is controlled by aerodynamic control surfaces. The aerodynamic control moments are calculated from the surface
deflections and the moment coefficients generated on the DOS 350 and transferred to the
analog where the moments are produced and
fed into the angular acceleration equations.
The angular rates, generated from the angular
acceleration equations, are used to calculate the
Euler angles () and cpo These angles are used
to resolve gravity into the body axis for use in
the ex: and f3 equations.
The redundant force equations for ex and f3
are computed on the analog since they are required in the short period sensor equations
which follow. The aerodynamic force coefficients in the ex: and f3 equations are generated
on the DOS 350.
The short period sensor equations are:
T == Ts (1 - .1875 ex'2) - .375 ex: ex: Ts (15)
~T

==

.021 (Ts f3

+ Ts f3)

(16)

T is the temperature rate at the no~p. ~p.n~or ~
and LlT is the temperature- rat~.diff~;~ntial-b~~
tween the two wing sensors. The stagnation
point temperature information Ts and Ts which
is used in these sensor equations is calculated
in the digital section. The T and ~ T are used
in the TRFCS control equations shown below:

== fl (T)
B'a == Kl (p, - fJ.c) + K P + K3 BR
BR == f~ (LlT) + K4 Ba
fJ.c == f3 (T)
BE

2

(17)
(18)
(19)
(20)

The T and ~ T terms supply damping to the
control equations alleviating the heating problems associated with and undamped trajectory.
Closed loop guidance is achieved by adjusting
the pitch axis controls with a compensated down
range error, DR E , and adjusting the p,c to compensate for the cross range error, CR E • The
pilot can manually control the range by adjusting his temperature rate profile to eliminate the
displayed down range and cross range errors.
A cockpit simulator was utilized to evaluate
the TRFCS in the manual mode, and is trunked

731

directly to the analog computer. Computer
outputs drive display meters on the TRFCS
CONTROL PANEL which monitor the vehicle
temperature rate, attitude, accelerations, control surface position and range errors.
As seen in the analog program block diagram, many of these parameters are transferred from the digital section. Some of the
parameters, though not necessary for control,
indicate trajectory status and therefore maintain the pilots confidence in his control information. The above parameters and other pertinent data are recorded on strip charts and
X -Y plots for permanent record of each flight.
5. CONCLUSION
A large number of test trajectories were used
to evaluate the performance of the hybrid simulation. An extensive check of the digital trajectory calculatons with integration time step
sizes from 0.05 sec to 2.0 sec was made. Comparison with trajectories calculated on an IBM
7094 revealed errors less than 100' in altitude,
0.1 fps in velocity, 1NM in range in the worst
case (a 45 minute orbit transfer case). Repeatability tests on the complete system including the flight control system were also made on
unguided re-entry trajectories using the
TRFCS to hold a fixed angle of attack (except
for small excursion for damping). The range
dispersion at the terminal point ·was found to
be less than 1.5 nautical miles. When this is
compared to the open loop sensitivity of range
to angle-of-attack (365 NM/degree) it indicates that the angle-of-attack error (including
analog and conversion) is less than 0.004. This
corresponds to less than 20 mv error in equiva·lent analog voltage.
The true test of the simulation program is
the overall performance and cost compared to
other simulation techniques. For this purpose
a careful study of the equipment complement
required for an all analog and all digital was
made. Table I shows the equipment complement for the hybrid simulation and an estimate
for the all analog and all digital methods.
Table II shows the cost comparison of the three
simulation methods. The cost per hour is based
on the relative purchase price of the equipment. The analog equipm2nt is 1.5 times the
hybrid and the digital .75 times the hybrid.

732

PROCEEDINGS-F ALL JOINT COMPUTER CONFERENCE, 1964

TABLE I.

EQUIPMENT COMPLEMENT FOR HYBRID, ANALOG AND
DIGITAL SIMULATION

HYBRID

ANALOG

DIGITAL

3-231R-V's with
600-amplifiers
350-servo set pots
90-1,4 square multo
30~servo set diode
function generators
10-electronic resolvers
(each contains
4-1,4 sq. multo
2-sine-cosine gen.)

I-DCS 375 with
8K-memory
16--sense lines
8-0CP lines
2-interrupt lines

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

1-231R-V with
205-amplifiers
150-servo set pots
38-1,4 square multo
3-electronic resolvers
(each contains
4_1,4 sq. multo
2-sine-cosine gen.)
1-DOS-350 with
l-serial memory field
1--counter field
I-arithmetic field
3-logic fields
I-Input-Output field
I-AD converter
I-multiplexer
4-DA converters

I-DOS 350 with
I-counter field
2-logic fields
I-Input-Output field
I-AD converter
I-multiplexer
20-DA converters

1-DCS 375 with
4K-memory
16--sense lines
8--0CP lines
2-interrupt lines
only 2x real time. This is based on a digital
calculation time for the short period of 40
milliseconds, which allows 10 samples per second for the short period when running 2x fast.
From Table II is seen that the hybrid simulation of the re-entry problem reduced costs

The cost comparison is made on the basis of
100 hrs of running time on the hybrid system.
It is estimated that half this time was run at
real time and one half at 20x faster. While
both the hybrid and analog are capable of 20x
real time operation the digital is capable of
TABLE II.

COST COMPARISON BETWEEN HYBRID, ANALOG, AND DIGITAL
ITEM

HYBRID

ANALOG

1 unit

1.5 units

ReI. Cost/hr of operation.
(assured to be directly proportional to
purchase price)
Cost of Real Time Runs

50

75

Cost of Fast Time Runs

50 (20x fast)

75 (20x fast)

Cost of Day to Day Setup, checkout &
Downtime

10 (10%)

50 (30%)

Total Cost
Total ReI. Cost

110
1

200
1.82

DIGITAL
.75 units

37
375 (2x fast)
20 (5%)
432
3.93

HYBRID SIMULATION OF A LIFTING RE-ENTRY VEHICLE
over an all analog method by 50 % and over an
all digital by 75 %. This saving can be attributed to the high accuracy digital calculation,
high speed analog computation, rapid automatic setup and checkout features, concurrent
2-variable function generation, and high speed
logic operations available in the HYDAC 2400
system. The operational and cost saving features of the hybrid system add to its status as
a powerful simulation tool.
REFERENCES
1. STALONY-DOBRZANSKI, J., "Temperature
Rate Flight Control System," Lecture given
at University of California, Los Angeles,
August 1963
2. STALONY-DoBRAZANSKI, J., "Application of
Temperature Rate to Manual Flight Control of Re-entry Vehicles and Energy Man-

733

agement," Proceedings National Aerospace
Electronics Conference, Dayton, Ohio, 1962
3. CHAPMAN, DEAN R., "An Analysis of the
Corridor and Guidance Requirements for
Supercircular Entry Into Planetary Atmosphere," NASA TR R-55, 1959.
4. FREDERICKSON, A. A., "Analog Computer
Mechanization for Guidance Law Studies,"
The Boeing Company, Report #D2-8117,
November 1960
5. LEES, LESTER, HARTWIG, F. W., and COHEN,
C. B., HUse of Aerodynamic Lift During
Entry Into the Earth's Atmosphere," Jet
Propulsion, Vol. 29, No.9, September 1959,
p.633
6. WISNESKI, M. L. "An Analog Computer
Simulation X-20 Glide Phase Guidance
Studies," The Boeing Company, Report
#D2-90234, August 1962

REVIEWERS, PANELISTS, AND SESSION CHAIRMEN
AFIPS and the 1964 Fall Joint Computer Conference Committee
would like to express their sincere appreciation to those listed below
for their contribution toward the formulation and execution of the
technical program.
SESSION CHAIRMEN

D. A. BAUMANN
R. BELLUARDO
L. C. CLAPP
H. E. EDEN
D. C. EVANS

H. G. KOLSKY
G. S. MITCHELL
D. B. PARKER
W."J. QUIRK
H~ M. TEAGER

J. H. TURNOCK, JR.
R. VICHNEVETSKY
P. R. WINTERS

REFEREES
C. M. ABLOW
G. N. ARNOVICK
P. B. BAXENDALE
R. W. BORNEMAN
J. R. BROWN, JR.
C. H. BURNS
S. G. CAMPBELL
W. C. CARTER
T. E. CHEATHAM, JR.
J. G. CLARK
A. B. CLYMER

D. J.

CRAWFORD

G. J. CULLER
W. J. DIXON
A. R. EAGLE
T. S. EASON
M. EDEN
B. ELSPAS
F. ENGEL, JR.
O. FIRSCHEIN
L. E. FOGARTY
A.R.FuRMAN
E. O. GILBERT
E. G. GILBERT
R. C. GOLD
J. GOLDBERG
M. GORFINKEL

J. GRIFFITH
R. S. GRISETTI
N. HARDY
C. HENSLEY
J. R. HERNDON
G. HILL
W. J. HOLLIS
R.M.HoWE
C. C. HURD
E. M. KING, JR.
G.A. KORN
J.P. LAZARUS
R. M. LEE
W. W. LICHTENBERGER
L. B. LUSTED
T. MARILL
C. H. MAYS
M. E. MCCOY
J. MERSEL
R. C. MINNICK
M. MONTALBANO
J. J. MURPHY
E. NAGLE
1. D. NEHAMA
J. NELSON
B. G. OLDFIELD
W. M. OVERN

A. M. PIETRASANTA
E. M. PIPER
N. E. POBANZ
J. H. POMERENE
L. C. RAY
L. G. ROBERTS
A.!, RUBIN
J. A. G. RUSSELL
L. A. RUSSELL
T. R. SAVAGE
O. H. SCHMITT
R. SILVER
C. H. SINGLE
R. C. SINGLETON
W. R. SMITH
R. SPINRAD
R. STACY
T. G. STOCKHAM, JR.
J. F. UNDERWOOD
R. VICHNEVETSKY
I. A. W ARHEIT
H. R. WARNER
R. R. WHEELER
W. E. WIEBENSON, JR.
J. W. YOUNG, JR.

PANELISTS
G. A. BE KEY
G. J. CULLER
E. G. FUBINI
J. T. GILMORE, JR.
R. C. GOLD
ReM.HOWE

E. M. KING, JR.
G.A.KoRN
R. LoRD
J. MCCARTHY
M. E. McCOY
T. J. MOFFETT

735

A. G. OETTINGER
G. A. PAQUETTE

D. T. Ross
D. SINNOTT
B. WIDROW

AMERICAN FEDERATION OF INFORMATION

PROCESSING SOCIETIES (AFIPS)
211 E. 43rd Street, New York 17, New York

Officers and Board of Directors of AFIPS
Chairman

Treasurer

DR. EDWIN L. HARDER*
Westinghouse Electric Corp.
700 Braddock Avenue
East Pittsburgh, Pa.

FRANK E. HEART*
Lincoln Laboratory
P. O. Box 73
Lexington 73, Mass.

Secretary

Chairman-Elect

SAUL T. GASS
IBM Corporation
1800 Yosemite Road
Berkeley 7, Calif.

DR. EDWIN L. HARDER
Westinghouse Electric Corporation
700 Braddock Avenue
East Pittsburgh, Pa.

ACM Directors
H. S. BRIGHT
Philco Corporation
Computer Division
5900 Walsh Road
Willow Grove, Pa.

HOWARD BROMBERG*
2024 Addison Street
Philadelphia 46, Pa.

EUGENE H. JACOBS
System Development Corporation
2500 Colorado A venue
Santa Monica, Calif.

DR. WALTER BAUER
Informatics, Inc.
15300 Ventura Boulevard
Sherman Oaks, Calif.

IEEE Directors
WALTER L. ANDERSON*
General Kinetics, Inc.
2611 Shirlington Road
Arlington 6, Va.

G. L. Hollander
Hollander Associates
P. O. Box 2276
Fullerton, Calif.

DR. ARNOLD A. COHEN
Univac
St. Paul 16, Minn.

CLAUDE A. R. KAGAN
Western Electric Co.
P. O. Box 900
Princeton, N. J.

Simulation Council Director

Executive Secretary

JOHN E. SHARMEN
Simulation Councils, Inc.
P. O. Box 504
Sunnyvale, Calif.

REDMOND GARDNER
AFIPS
211 E. 43rd St.
New York 17, N. Y.

A merican Documentation Institute Director
PETER LUHN
1000 Westchester Ave.
White Plaines, N. Y.

* Executive Committee
737

Standing Committee Chairmen
Admissions

Award

BRUCE GILCHRIST
Service Bureau Corporation
424 Park Avenue
New York 22, N. Y.

SAMUEL LEVINE
Teleregister Corporation
445 Fairfield Avenue
Stanford, Conn.

Conference

Constitution and By-Laws

KEITH UNCAPHER
The RAND Corporation
1700 Main Street
Santa Monica, Calif.

Eugene Jacobs
System Development Corporation
2500 Colorado Avenue
Santa Monica, Calif.

International Relations

Finance

PROF. JOHN PASTA
Digital Computer Lab
University of Illinois
Urbana, Illinois

WILLIAM D. ROWE
Sylvania Electronics Systems
189 B. Street
Needham Heights, Mass.

Publication
Planning

STANLEY ROGERS
General Dynamics
Astronautic Division
P. O. Box 166
San Diego 12, Calif.

JACK MOSHMAN
C.E. I.R.
One Farragut Square
Washington, D. C.

Public Relations

Social Implications of Information
Processing Technology

ISAAC SELIGSOHN
IBM Corporation
Dept. 1-812
590 Madison A venue
New York 22, N. Y.

DR. MORRIS RUBINOFF
Moore School of Electrical Engineering
University of Pennsylvania
Philadelphia 4, Pa.

1964 F JCC Chairman
Education

DR. RICHARD TANAKA
Lockheed Missiles and Space Co.
3851 Hanover Street
52-40 Bldg. 201
Palo Alto, Calif.

RICHARD M. BROWN
University of Illinois
Coordinated Science Lab
Urbana, Illinois

738

1964 FALL JOINT COMPUTER CONFERENCE
COMMITTEE
Registration:
ED C. DODGE, Computer Sciences Corporation, Chairman
THOMAS R. DINES, Control Data Corporation, Vice
Chairman
JOSEPH R. PARKER, The Service Bureau Corporation

Chairman:
RICHARD I. TANAKA, Lockheed Missiles & Space Company
Vice Chairman:
ARTHUR J. CRITCHLOW, IBM Corporation

Printing and Mailing:
CHESTER A. CREIDER, JR., Philco Corporation, Chairman

Secretary-Administrator:
R. GEORGE GLASSER, McKinsey & Company, Inc.
Treasurer:
ED C. DODGE, Computer Sciences Corporation

Publications:
WILLIAM H. DAVIDOW, General Electric Computer
Laboratory, Chairman

Technical Program:
DAVID R. BROWN, Stanford Research Institute,
Chairman
SAUL I. GABS, IBM Corporation
HAROLD E. PETERSEN, IBM Corporation
PROF. DANIEL TEICHROEW, Case Institute of Technology

Public Relations:
WALT KEESHEN, JR., IBM Corporation, Chairman
JOHN B. HATCH, Ampex COL]:,oration, Vice Chairman
Ladies'
MRS.
MRS.
MISS

Exhibits:
ARTHUR SCHOLAR, Pacific Telephone & Telegraph Co.,
Chairman
RON R. BANDUCCI, Pacific Telephone & Telegraph Co.,
Vice Chairman

Activities:
MARY Lou HowEY, IBM Corporation
DONNA PROCTOR, IBM Corporation
DANNY SIROSKEY, IBM Corporation

Education Program:
ROBERT J. ANDREWS, IBM Corporation, Chairman
NORTON O. SALBERG, IBM Corporation, Vice Chairman
HARRY ARNOLD, Control Data Corporation
MRS. KATHERINE WHITE, Physics International Co.

Local Arrangements:
RAYMOND D. SMITH, SCM Corporation, Chairman
THOMAS C. BIEG, IBM Corporation, Vice Chairman
OSCAR M. PALOS, Bank of America
ALBERT C. PORTER, California Public Utilities Commission

Consultants:
JOHN L. WHITLOCK, J. L. Whitlock Associates, Exhibits
WILLIAM C. ESTLER, Public Relations

739

EXHIBITORS
1964 FAll JOINT COMPUTER CONFERENCE
ADAGE, INC., Cambridge, Mass.
AERONUTRONIC, Division of Philco Corp.,
Newport Beach, Calif.
AMERICAN TELEPHONE & TELEGRAPH
COMPANY, New York, N.Y.
•
AMPEX CORP., Redwood City, Calif.
ANELEX CORPORATION, Boston, Mass.
APPLIED DYNAMICS, INC., Ann Arbor, Mich.
AULT, INC., Minneapolis, Minn.
BECKMAN INSTRUMENTS, INC., Computer
Operations, Fullerton, Calif.
.BENSON-LEHNER CORPORATION, Van
Nuys, Calif.
BRUSH INSTRUMENTS, Cleveland, Ohio
BRYANT COMPUTER PRODUCTS, Walled
Lake, Mich.
CALIFORNIA COMPUTER PRODUCTS, INC.,
Anaheim, Calif.
THE CALMA COMPANY, Los Gatos, Calif.
KENNEDY COMPANY
TEL-A-DEX CORPORATION
CAMBRIDGE COMMUNICATIONS CORPORATION, Cambridge, Mass.
C-E-I-R, INC., Washington, D. C.
COLLINS RADIO COMPANY,Dalias, Texas
COMCOR, INC., Subsidiary of Astrodata, Inc.,
Anaheim, Calif.
COMPUTER CONTROL COMPANY, INC.,
Framingham, Mass.
COMPUTER DESIGN, West Concord, Mass.
COMPUTER SCIENCES CORPORATION, EI
Segundo, Calif.
COMPUTERS AND DATA PROCESSING &
DATA SYSTEMS DESIGN, New York. N.Y.
CONDUCTRON CORPORATION, Ann Arbor,
Mich.
CONTROL DATA CORPORATION, Minneapolis, Minn.
CYBETRONICS, INC., Waltham, Mass.
DATA DISC, INC., Palo Alto, Calif.
DATAMATION, New York, N.Y.
DATAMEC CORPORATION, Mountain View,
Calif.
DATA PROCESSING DIGEST, INC., Los
Angeles, Calif.
DATA SYSTEMS, INC., Subsidiary of Union
Carbide Corp., New York, N.Y.
DI/AN CONTROLS, INC., Boston, Mass.
DIGITAL EQUIPMENT CORPORATION, Maynard,Mass.

DIGITRONICS CORPORATION, Albertson,
L.I., N.Y.
DYMEC, Division of Hewlett-Packard Com;..·
pany, Palo Alto, Calif.
ELCO CORPORATION, Willow Grove, Pa.
ELECTRONIC ASSOCIATES, INC., West Long
Branch, N. J.
ELECTRONIC MEMORIES, INC., Hawthorne,
Calif.
ENGINEERED ELECTRONICS COMPANY,
Santa Ana, Calif.
FABRI-TEX, INC., Amery, Wisc.
FERROXCUBE CORPORATION OF AMERICA, Saugerties, N.Y.
FRIDEN, INC., San Leandro, Calif.
FUJITSU, LYD., cloThe Nissho Pacific Corporation, San Francisco, Calif.
GENERAL ELECTRIC, Computer Department, Phoenix, Ariz.
GENERAL KINETICS, INC., Arlington, Va.
IBM CORPORATION, White Plains, N.Y.
INDIANA GENERAL CORPORATION, Chicago, Ill.
INFORMATION INTERNATIONAL, INC.,
Cambridge, Mass.
INVAC CORPORATION, Waltham, Mass.
KLEINSCHMIDT, Division of SCM Corporation, Deerfield, Ill.
LIBRASCOPE GROUP, GENERAL PRECISION, INC., Glendale, Calif.
LITTON INDUSTRIES, Beverly Hills, Calif.
McGRAW-HILL BOOK COMPANY, New York,
N.Y.
MEMOREX CORPORATION, Santa Clara,
Calif.
MICRO SWITCH, Division of Honeywell, Inc.,
Freeport, Ill.
MIDWESTERN INSTRUMENTS, Tulsa, Okla.
MILGO ELECTRONIC CORP., Miami, Fla.
THE NATIONAL CASH REGISTER COMPANY, Dayton, Ohio
NORTH AMERICAN AVIATION, INC., EI
Segundo, Calif.
OMNITRONICS, INC., Philadelphia, Pa.
POTTER INSTRUMENT COMPANY, INC.,
Plainview, L.I., N.Y.
PRENTICE-HALL, INC., Englewood Cliffs,
N.J.
RADIATION, INC., Products Division, Melbourne, Fla.

741

RAYTHEON COMPUTER, Formerly Packard
Bell Computer, Santa Ana, Calif.
RCA ELECTRONIC COMPONENTS & DEVICES, Harrison, N. J.
RCA ELECTRONIC DATA PROCESSING,
Cherry Hill, N. J.
RECORDAK CORPORATION, New York,N.Y.
RHEEM ELECTRONICS, Hawthorne, Calif.
ROTRON MANUFACTURING COMPANY,
INC., Woodstock, N.Y.
ROYAL McBEE CORPORATION, New York,
N.Y.
SCIENTIFIC DATA SYSTEMS, INC., Santa
Monica, Calif.
SC~Yf CORPORATIO?--~,. I'~ew York, N.Y.
SOROBAN ENGINEERING, INC., Melbourne,
Fla.
SPARTAN BOOKS, INC., Washington, D. C.
STRAZA INDUSTRIES, Las Vegas, Nev.

STROMBERG CARLSON, Division of General
Dynamics, San Diego, Calif.
SYSTRON-DONNER CORPORATION, Concord
Calif.
TALLY CORPORATION, Seattle, Wash.
TELEMETRICS, INC., Gardena, Calif.
TELETYPE. CORPORATION, Skokie, Ill.
TEXAS INSTRUMENTS, INC., Houston, Texas
TEXAS INSTRUMENTS, INC., Dallas, Texas
TRANSISTOR ELECTRONICS CORP., Minneapolis, Minn.
UGC INSTRUMENTS, Division of United Gas
Corporation, Shreveport, La.
VICTOREEN INSTRUMENT COMPANY,
JOHN WILEY & SONS, INC., New York, N.Y.
WYLE LABORATORIES, Products Division,
EI Segundo, Calif.
ZELTEX, INC., Concord, Calif.

742

LIST OF JOINT COMPUTER CONFERENCES
1. 1951 Joint AlEE-IRE Computer Conference,
Philadelphia, December 1951
2. 1952 Joint AIEE-IRE-ACM Computer Conference, New York, December 1952
3. 1953 Western Computer Conference, Los
Angeles, February 1953
4. 1953 Eastern J oint Computer Conference,
Washington, December 1953
5. 1954 Western Computer Conference, Los
Angeles, February 1954
6. 1954 Eastern J oint Computer Conference,
Philadelphia, December 1954
7. 1955 Western Joint Computer Conference,
Los Angeles, March 1955
8. 1955 Eastern J oint Computer Conference,
Boston, November 1955
9. 1956 Western Joint Computer Conference,
San Francisco, February 1956
10. 1956 Eastern Joint Computer Conference,
New York, December 1956
11. 1957 Western Joint Computer Conference,
Los Angeles, February 1957
12. 1957 Eastern Joint Computer Conference,
Washington, December 1957
13. 1958 Western J oint Computer Conference,
Los Angeles, May 1958

14. 1958 Eastern J oint Computer Conference,
Philadelphia, December 1958
15. 1959 Western Joint Computer Conference,
San Francisco, March 1959
16. 1959 Eastern J oint Computer Conference,
Boston, December 1959
17. 1960 Western Joint Computer Conference,
San Francisco, May 1960
18. 1960 Eastern Joint Computer Conference,
New York, December 1960
19. 1961 Western Joint Computer Conference,
Los Angeles, May 1961
20. 1961 Eastern Joint Computer Conference,
Washington, December 1961
21. 1962 Spring Joint Computer Conference, San
Francisco, May 1962
22. 1962 Fall Joint Computer Conference, Philadelphia, December 1962
23. 1963 Spring J oint Computer Conference,
Detroit, May 1963
24. 1963 Fall Joint Computer Conference, Las
Vegas, November 1963
25. 1964 Spring J oint Computer Conference,
Washington, April 1964
26. 1964 Fall Joint Computer Conference, San
Francisco, October 1964.

Conferences 1 to 19 were sponsored by the National Joint Computer Committee, predecessor of AFIPS. Back copies of the proceedings of these conferences may be obtained, if available, from:
• Association for Computing Machinery, 211 E. 43rd St., New York 17, N. Y.
• Institute of Electrical and Electronic Engineers, Inc., Box A, Lennox Hills
Station, New York, N. Y. 10021

Conferences 20 and up are sponsored by AFIPS. Copies of AFIPS Conference Proceedings may be ordered from the publishers as available at the
prices indicated below. Members of societies affiliated with AFIPS may obtain
copies at the special "Member Price" shown.

Volume

List
Price

Member
Price

20

$12.00

$7.00

21

6.00

6.00

22

8.00

4.00

23
24
25
26

10.00
16.50
16.00

5.00
8.25
8.00

Publisher
Macmillan Co., 60 Fifth Ave., New York 11,
N. Y.
National Press, 850 Hansen Way, Palo Alto,
Calif.
Spartan Books, Inc., 1106 Connecticut Avenue,
N.W. Washington, D. C. 20036
Spartan Books, Inc.
Spartan Books, Inc.
Spartan Books, Inc.
Spartan Books, Inc.

NOTICE TO LIBRARIANS
This volume (26) continues the Joint Computer Conference
Proceedings (LC55-44701) as indicated in the above table. It
is suggested that the series be filed under AFIPS and cross
referenced as necessary to the Eastern, Western, Spring, and
Fall Joint Computer Conferences.

743

AUTHOR INDEX
ALLEN, T. R., 387
AMEMIYA, H., 123
ANIZIENIS, A., 663
BACKMAN, C. W., 411
BAILEY, R. B., 717
BARANY, J. T., 435
BERGIN, G. P., 45
BITTMANN, E. E., 93
BOBRAw, D. G., 591
BARETA, D., 1
BRENNAN, R. D., 299
BROWN, J. L., 205
CAPOBIANCO, J. A., 81
CARBREY, R. L., 707
CARSON, D., 615
CHANANNIS, T. E., 69
COHLER, E. U., 175

G. L., 363
COLE, M. P., 351
CUNNINGHAM, B. E., 423
DAVIS, M. R., 325
DAVIES, P. M., 147
DICKINSON, M. M., 501
DORN, P. H., 351
DOODY, D. T., 205
. EDEN, M., 333
ELLIS, T. 0., 325
EWING, R. G., 147
F AGG, P., 205
FAIRCLOUGH, J. W., 205
FITZWATER, D. R., 465
FOATE, J. E., 387, 397
Foss, E. D., 363
FREDERICKSON, A. A., 717
FREEMAN, D. N., 15
FRICKE, L. H., 685
GABOR, A., 435
COLE,

GALL, R. G., 159
GARNER, E. G., 517
GIMPELSON, L. A., 233
GLUSKIN, R. S., 631
GRAY, R. G., 363
GREENE, J., 205
HALPERN, M. I., 57
HARGREAVES, B., 363
HARNETT, R. T., 313
HIPP, J. A., 205
HOWARD, J. A., 673
JACKS, E. L., 343
JACKSON, J. B., 501
JACOBY, M., 631
JOHNSON, E. L., 251
JOYCE, J. D., 363
KARPLUS, W. J., 673
KINSLOW, H. A., 443
KOPPEL, R. L., 81
KRULL, R. L., 397
LANZKRON, R. W., 489
LEWIS, C. R., 351
McATEER, J. E., 81
IvIACINTYRE, R. M., 69
MAYHEW, T.R., 123
MAYS, C. H., 623
MERMELSTEIN, P., 333
METZGER, L. G., 435
MURATA, K., 187
NAKAZAWA, K., 187
NEWHALL, N. S., 481
NUTTING, B. W., 527
OCKER, W., 291
OROZCO, E. G., 477
ORR, W. K., 693
OSEAS, J., 517

745

PAQUETTE, G. A., 695
PETERSEN, H. E., 313
PICK, G. G., 107
POUMAKIS, E., 435
PRYOR, R. L., 123

PYLE, W. I., 69
RANDA, G. C., 501
RAPHAEL, B., 577
READER, T. D., 631
ROBINSON, G., 615
ROY, R. J., 527
RUBINSTEIN, H. R., 175
RUDIE, D. D., 251
SAINT-PAUL, A., 717
SANO, H., 299
SANSOM, F. J., 313
SCHWEPPE, E. J., 465
SHARP, E. :M., 363
SHAW, J. C., 455
SIPPEL, R. J., 363
SPELLMAN, T. M., 363
SPITZE, J. M., 643
TALKIN, A. I., 539
TEITILMAN, W., 559
TEGER, S., 291
THARPE, A., 363
TRILLING, D. R., 277
Tou, J. T., 651
UHR, L. E., 35
W ALLI, C. R., 545
WALSH, R. A., 685
WARSHAWSKY, L. M., 313
WEBER, J. A., 233
WILLIAMS, S. B., 411
WOS, L., 615
YANG, C. C., 651
YOUCHAH, M. I., 251



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:17 03:45:31-08:00
Create Date                     : 2008:11:17 03:45:31-08:00
Metadata Date                   : 2008:11:17 03:45:31-08:00
Format                          : application/pdf
Document ID                     : uuid:bae8c024-9d9b-4582-8d75-8ff4658d6efc
Instance ID                     : uuid:b9b69de6-c17a-41ef-9dc2-fc1a857c6053
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 749
EXIF Metadata provided by
EXIF.tools

Navigation menu