1966 04_#28 04 #28

User Manual: 1966-04_#28

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

Download1966-04_#28 1966-04 #28
Open PDF In BrowserView PDF
AFIPS
CONFERENCE
PROCEEDI NGS

VOLUME 28

. 1966
SPRING JOINT
COMPUTER
CONFERENCE

AFIPS
CONFERENCE
PROCEEDINGS
VOLUME· 28

1966
SPRI NG JOI NT
COMPUTER
CONFERENCE

The id~as and opllllons expressed herein are solely those of the
authors and are not necessarily representative of or endorsed by the
1966 Spring Joint Computer Conference Committee or the American
Federation of Information Processing Societies.

Library of Congress Catalog Card Number 55-44701
Spartan Books, Div. of
Books, Inc.
1250 Connecticut Avenue, N. W.
Washington, D. C.
1966 by the American Federation of Information Processing Societies,
211 E. 43rd St., New York, N. Y. 10017. 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:
Macmillan Co., Ltd.
4 Little Essex Street
London W.C. 2

CONTENTS

COHERENT OPTICAL INFORMATION PROCESSING

w.

Computer Application of Electro-Optics

J. POPPELBAUM

GEORGE B. PARRENT, JR.

17

LOUIS J. CUTRONA

25

E. N. LEITH
J. UPATNIEKS

43

DEAN B. ANDERSON

53

C. T. GIBSON

61

A Data Management System for Time-Shared File Processing Using a Cross-Index
File and Self-Defining Entries
E. W. FRANKS

79

An Analysis of Time-Sharing Computer Systems U sing Markov Models

J. L. SMITH

87

DENNIS W. FIFE

97

Basic Theory of Partial Coherence

The Role of Coherent Optical Systems in Data Processing

Requirements for Hologram Construction

Application of Coherent Optical Transducers to Optical Real-Time
Information Processing

TIME-SHARING
Time-Sharing with IBM System/360: Model 67

An Optimization Model for Time-Sharing
iii

CONTENTS

IV

SIMULATION AND MODEL-BUILDING
T. C. BARTEE
J. B. LEWIS

105

Y. N. CHANG
O. M. GEORGE

113

J. H. KATZ

127

Markovian Models and Numerical Analysis of Computer System Behavior
V. L. WALLACE
RICHARD S. ROSENBERG

141

KATHE JACOBY
DIANA FACKENTHAL
ARNO CASSEL

149

ROBERT V. JACOBSON

159

W. M. SYN
R. N. LINEBARGER

165

A Digital System for On-Line Studies of Dynamical Systems

Simulation of Logical Decision Networks of Time-Delay Elements by Means
of a General-Purpose Digital Computer

Simulation of a Multiprocessor Computer System

SMPS-A Tool Box for Military Communications Staffs

Digital Simulation of Large Scale Systems

DSL/90- A Digital Simulation Program for Continuous System Modeling

PROCESSING LARGE FILES
GARY CARLSON

189

THOMAS B. CONNORS

193

C. ALLEN MERRITT
PAUL J. NELSON

205

BERNARD GOLD
CHARLES M. RADER

213

H. W. BRISCOE
P. L. FLECK

221

THOMAS G. STOCKHAM, JR.

229

Techniques for Replacing Characters that are Garbled on Input

ADAM-A Generalized Data Management System

The Engineer-Scientist and an Information Retrieval System

WAVEFORM PROCESSING
Effects of Quantization Noise in Digital Filters

A Real-Time Computing System for LASA

High-Speed Convolution and Correlation

v

CONTENTS

PROGRAMMING LANGUAGES
A Computer Program to Translate Machine Language into Fortran

WILLIAM A. SASSAMAN

Techniques and Advantages of Using the Formal Compiler Writing System
RENATO ITURRIAGA
FSL to Implement a Formula Algol Compiler
THOMAS A. STANDISH
RUDOLPH A. KRUTAR
JACKSON C. EARLEY

A Proposal for a Computer Compiler

235

241

GERNOT METZE
SUNDARAM SESHU

253

G. F. DUFFY
W. D. TIMBERLAKE

265

BRUCE DALE

277

JAMES J. GATTO

285

BUSINESS APPLICATIONS
A Business-Oriented Time-Sharing System

"Never-Fail" Audio Response System

Application of Computer-Based Retrieval Concepts to a Marketing
Information Dissemination System

CURRENT DEVELOPMENTS IN PERIPHERAL HARDWARE
A New Look in Peripheral Equipment Design Approach

EARL MASTERSON

297

DAVID W. BERNARD
FRANK A. DIGILIO
FRANK V. THIEMANN
RONALD F. BORELLI

307

CHESTER E. SPURRIER

315

A New Development in the Transmission, Storage and Conversion of Digital
R. P. BURR
Data
JOHN J. RHEINHOLD
Roy K. ANDRES

323

IBM 2321 Data Cell Drive

335

A Serial Reader- Punch with Novel Concepts

The IBM 2560 Multi-Function Card Machine

ALAN F. SHUGART
Y ANG-HU TANG

vi

CONTENTS

ANALOG/HYBRID TECHNIQUES
Hybrid Simulation of a Helicopter

W. J. KENNEALLY

E. E.

347

L. MITCHELL

I.

HAY

G. BOLTON

A Time-Shared Hybrid Simulation Facility

R. BELLUARDO
R. GOCHT

355

G. PAQUETTE

Hybrid Simulation of a Free Piston Engine

E.

R.

E.

Hybrid Analog/Digital Techniques for Signal Processing Applications

GAGNE

365

J. WRIGHT

THOMAS G. HAGAN

379

ROBERT TREIBER

Hybrid Simulation of a Reacting Distillation Column

R. RUSZKY

E .. E. L.

Transient Neutron Distribution Solutions by Compressed and Real-Time
Computer Complexes

389

MITCHELL

E.

GODTS

401

ROBERT S. LEDLEY
JOHN JACOBSEN

411

J.

COMPUTER TECHNIQUES IN PATTERN RECOGNITION
Pattern Recognition Studies in the Biomedical Sciences

MARILYN BELSON
JAMES B. WILSON
LOUIS ROTOLO
THOMAS GOLAB

A Chess Mating Combinations Program

GEORGE W. BAYLOR
HERBERT

Multidimensional Correlation Lattices as an Aid to Three-Dimensional
Pattern Recognition

A Pattern Recognition Technique and its Application to High-Resolution
Imagery

A.

431

SIMON

SAMUEL J. PENNY
JAMES H. BURKHARD

449

D. JOSEPH
S. VIGLIONE

457

R.
S.

COMPUTER APPLICATION OF ELECTRO-OPTICS
W. J. Poppelbaum
Department of Computer Science, University of Illinois

1.

INTRODUCTION

The first few years of existence of electro-optics
as a separate field have brought to light a wealth of
novel ideas and has warmed up a host of old ones
as well. It turns out that at this time there are two
large classes of ideas which have relatively little
overlap: the first class encompasses the development
of time-honored techniques into practical low-cost
designs; the second class contains the more futuristic
devices using laser amplification, laser logic, laser
source deflection, °etc}-4 Unluckily the latter ideas
have not yet reached that stage of development
where they can compete with more classical designs
as far as cost is concerned. Since the author has
devoted a previous papers to them, it might be useful to examine all those areas where patient development has produced reasonably low-cost designs that
have proved themselves in practice or are about to
do so.
The profusion of devices makes it mandatory to
reduce the length of the list of subjects still further
by eliminating arbitrarily the large field of techniques aiming at adaptive systems 6 or making use
of non dissected forms of the incoming information. 7
This field is amongst the most exciting but, because
of its links with biology, should perhaps be left
to a separate di~cussion.
The ordering principle for the topics will be their
occurrence in a highly symbolic system according to
Fig. 1. It might astonish you to see storage and display in one functional block: the reason is that the

majority of storage systems automatically give display and vice versa. It will also become apparent
that there is a preponderance of subjects in this
storage and display area and that further subdivision according to the method of access (electron
beam, light beam, and static) is convenient. For
simplicity's sake, areas, subdivisions and subjects
are indicated on the figure.
2.

INTERFACE LOGIC

The great contribution of electro-optics (or more
precisely its all-optical branch) to information processing is probably the development of methods
giving Fourier Transforms by optical means (see
2.1). Once this Fourier Transform is obtained, it
is natural to operate in the frequency plane by appropriate masks in order to eliminate high- or lowfrequency components or more generally to eliminate noise of given frequency distribution by
matched filters. Such operations can be done by
purely electronic means using matrix arrays of
modulated elements (see 2.3). T.hese techniques are
usually applied to continuous input information
(e.g., photographs), but there is no reason why the
same methods should not be applied to discontinuous patterns of dots, leading to parallel processing of up to 10 6 bits of information.
Other developments in the area of interface logic
are based upon the availability of glass fibers and
the performance of OR and AND functions between the input medium and bundles of such fibers.

2

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

HYBRID D-A
PROCESSOR

I1IIII~1---------"1

I

(ELECTRICAL SIGNAL)

I

IN

--.

INTERFACE
LOGIC

(LIGHT )

FOURIER

ASSOCIATIVE
PHASE

•

TRANSFORM
FIBER

MODULATION

--

(LIGHT)

OPTICS

~

STORE
SCANNER

•

( ELECTRICAL
SIGNAL)

VIDICON.
FLYING SPOT C.R.T.

AND

-

•

DISPLAY

~OUT

(LIGHT)

MEMOTRON / VIDICON
OSCILLATING CLOUD

SCANNER
MATRIX

PHOTOCHROMIC
ULTRASONIC DEFLECTOR
ARDENNE

TUBE

ELECTROLUMINESCENT
KERR EFFECT
DIFFRACTION GRATING

SCANISTOR

Figure I.

Practical electro-optical devices.

Encoding and decoding devices are particular examples of the~e techniques as is the associative fiber
,scanner described below (see 2.2).

2.1

PARAMOSAIC

Fourier Transform Optics

The idea of using lenses to obtain the Fourier
Transform of a planar density pattern has been
discussed at length by its protagonists Leith, 8
Cutrona,9 Parrent 10 and others.
High-precision
optics and strong coherent sources have made such
a system highly practical and it is now entirely possible to process up to 10 6 bits of positional information in parallel, e.g., by spatial filtering (see
below).
The fundamental principle of the (one-dimensional) optical Fourier Transform is shown in Fig.
2. The planes-or better, lin,es-of interest are the
left and right focal planes: the left-hand one contains the object, the right-hand one what we shall
here call the image even zf it is not the image of the
object in the conjugate sense., Let P be a point in the
image plane which is w below the optical axis: its
illumination or amplitude is determined by the
brightness and the phase of all beams coming from
the object. Because P is in a focal plane, these

beams are all parallel on the left side of the lens and
form an angle of wlfwith the optical axis, wheref
is the focal length. The beam issuing from the section between x and x + dx contributes an amplitude a(x) dx cos

2A~ where s is the path delay with

respect to some reference point-here chosen to be
the intersection of the object plane with the optical
axis. Geometry shows that s is a linear function of
x: this is the crux of the matter. Assumption of an
object and image of infinite extension and a change
of notation (i.e., replacing cos by the real part of an
exponential with an imaginary exponent) lead to the
realization that the total amplitude in P (called illumination) is simply the real part of the Fourier
Transform of a(x). Of course it is well known that
measuring devices-including our eye-actually see
the intensity, i.e., the square of the amplitude. This
leads to certain difficulties in practical systems, none
of which, however, cannot be overcome.

2.2 Associative Fiber Scanner
The use of GaAs lamps and photodiodes together
with fiber light conductors offers some rather interesting possibilities. As an example, consider the

3

COMPUTER APPLICATION OF ELECTRO-OPTICS
------~..

44~----

"I

I
I

dx

I

I
I

x

I

I
I

COHERENT LIGHT

I

~

Ao
REFERENCE
PHASE

P

ALL
PARALLEL!

OBJECT (INFINITE)

LET a (x)
TOTAL

IMAGE (INFINITE)

LENS

= TRANSMISSIVITY IN x, THEN

ILLUMINATION

IN

p=f

+

+00

a(x)dx COS 27rS

_00

Ao

00

=fa(X)

+00

COS(27rW) dx = R!a(X)eiWXXdX=

-00

.Aof

_00

'-----,.-----'

call

Figure 2.

Wx

Fourier Transform optics (one··dimensional).

arrangement in Fig. 3. It is assumed that we have a
film frame containing an m· n matrix of dark and
light spots as well as the m . n matrix of the negative
(i.e., the digit-wise complement). We want to build
a device which can decide in one operation whether
a given key word (XI ••• Xi • •• xn) is among the m
words (aAI ... aM . .. a>.n) (X = 1 ... m) in the frame,
and if so, in what position.
The principle is to inject into the fibers going into
the first digits the signal XI via lamp L I , etc., so that
digits aAI are illuminated by Xi. Similarly the digits
aM on the negative are illuminated by Xi. If we now
collect-by a second set of fibers-the outputs of
each row of photocells, the left-hand cell # X will
receive a signal V,aAixj while the corresponding
right-hand cell will receive ViaMxi. If we check the
cells by pairs via OR circuits, only that OR circuit
for which both inputs are 0 will correspond to
aAi = Xi: its position gives the X we search for. If
no such OR circuit exists, the key word is not contained in the frame.
The system described above has been realized at
the Department of Computer Science of the Uni-

versity of Illinois II in slightly modified form. It is
presently being converted in such a fashion that the
key word does not necessarily contain all the digits:
provision is then made to read ou't the remaining
digits upon coincidence. It will also be possible to
change the key word (and the digits involved) as a
function of the last word read out. This obviously
will lead to a Turing-machine-like behavior of the
system.
2.3 Phase Modulation Matrix

One of the astonishing photolithographic feats of
recent times is Anderson's 12 production of varactor
diodes having overall dimensions of the order of 10
microns. By suitable doping and reverse biasing, it
is possible to make the depletion region behave like
an optical transmission line, i.e., to use the regions
of high carrier density as mirrors at a distance of a
few thousand angstroms. It is not too hard to convince oneself that light going through the plane of
the junction will suffer a phase change  determined
by the thickness d of the depletion layer where d is

4

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

r-

o

,

IF WORD IN FRAME
(POS. OF OR GIVES ~)
1 OTHERWISE

PRINCIPLE:

Va).i 'Xi =0 and Vci>.i ·Xl
l

i

Figure 3.

=0 means au =Xi for all i !

Associative fiber scanner.

approximately given by the Early-formula d =
V3V frfO/2aq, q being the charge of one electron
and a the gradient of the donor density minus that
of the acceptor density. Figure 4 contains the expression  as a function of d.
Instead of using the diodes as transmission optical phase shifters, it is also possible to expose one

surface of the depletion layer by a transparent substrate and to shine the light into the device from the
side. Such reflective optical phase shifters lend
themselves more naturally to two-dimensional arrays, although it is not impossible to use transmission shifters in a matrix. A possible use of revlerse
biased diodes as storage elements makes such phase

5

COMPUTER APPLICATION OF ELECTRO-OPTICS
FOURIER TRANSFORM

INVERSE FOURI ER TRANSFORM
I

ARRAY
OF DIODES

x

X

COHERENT LIGHT

~

E = EOe iWoT

WX

LENS I

INPUT PLANE
( POSITIONAL)

l • LENGTH OF DIODES
CONSTANT OF DlOOES
d • d(V) • THICKNESS OF DEPlETION LAYER

OUTPUT PLANE
(POSITIONAL)

~(Wx) = A (wx)e i4>

w
z

:E

da::

n

DECREASED
(DONORS NEUTRALIZED BY
ITRAPPED ELECTRONS)

3.
-E

BIG

l

fJj
~

II'

P

n

II

L...-_---II--_--'

--iw I
•

60/=

Rq

In

SMALL

~

nL

LIGHT
~

lt)

WHEN THE LIGHT DISAPPEARS,
TRAPPED ELECTRONS
NEUTRALIZE THE DONORS.

BAR~ER

W
....J
W

V
PRINCIPLE: THOSE PORTIONS OF THE CdS
WHICH WERE I LLUMINATED HAVE
PERMANENTLY ACQUIRED A LOW RESISTANCE.
MOST OF V IS THEREFORE PERMANENTLY
APPLIED TO THE ELECTROLUMINESCENT
MATERIAL IN THESE SPOTS.

+E

Figure 9.

Electroluminescent storage.

11

COMPUTER APPLICATION OF ELECTRO·OPTICS

where the series diode has been locked into its low
impedance state by incident light, we shall have light
emission from the highly polarized electroluminescent layer.
4.3 Diffraction Grating Display
Fuller of LFE 23 has produced a combined storage
and readout system in which a thin magnetic film is
magnetized in spots by a coincident current arrangement as shown in Fig. 10. The composition of the
magnetic film is such that for one direction of
magnetization the domains are long and narrow, the
width of each being of the order of that of the wavelength of visible light and constant from one to the
next.
A Bitter Solution (essentially iron filings in a suitable viscous liquid) is held between two transparent
covers adjoining the magnetic film. As soon as the
right magnetization occurs, the Bitter Solution will
show a bunching effect and will take on the aspect

of a periodic structure having all the properties of
a diffraction grating. Incident light will therefore
be diffracted into an observer's eye in the correctly
magnetized spots, giving direct optical readout of
the state of magnetization. The memory action
obviously stems from the retention of this state even
after the selecting currents have been taken away.
Certain difficulties with diffused light and higher
order diffractions can be attenuated by covering the
device with a supplementary plate, producing total
reflection for all but the desired direction of output
light.
4.4 Paramosaic
A principle similar to that used in the Scanistor
(but extended to two dimensions) was used at the
Department of Computer Science of the University
of Illinois 24 to produce storage and display in a
matrix of wires with suitable elements thrown across

DIFFRACTED

LIGHT

OCCURS

nAo = d (sin a + sinf3)

LIQUID
BITTER SOLUTION (IRON FILINGS)
UNIFORM DENSITY

THIN

FILM

-dSTRIATED MAGNETIZATION

Figure to.

RANDOM

MAGNETIZATION

Diffraction grating display.

IF I

12

PROCEEDINGS-SPRING JOINT COMPUTER CONfERENCE, 1966

plications and there is a considerable bandwidth reduction when the profiles are sent as time sequences.

each grid-point (see Fig. II). The practicality of
such a "Paramosaic" hinges upon the cost of each
display element. The one shown in the figure only
gives temporary storage due to the inertia of the
lamp and the actual model (32 x 32) used a more
sophisticated design, consisting of a sensitive comparator and a flip-flop with readout via a tungsten
light: if the grid-points were within 0.2v of each
other, the light would come on permanently.
The interesting property of: the system is that any
single-valued function y = f(x) can be displayed by
giving a minimum amount of information, namely
the voltage distribution u(x) = kf(x) on the vertical wires. Making v(y) = ky for the horizontal
wires, only points with y = f(x) (or nearly) will
light up. Transmitting a sequence of "profiles"
u(x) can display line drawings with arbitrary com-

5. GRAPHICAL PROCESSING AND
COMPUTERS
Graphical processors always involve input and
output devices of the type described above.
Usually, however, the scanner is followed by a
digitizer, and a general-purpose computer is used
for processing and storage. The author feels that in
graphical processing, many interesting operations
can be performed at high speed and low cost by
appealing to the latest designs in analog circuitry
and by using storage principles of the kind discussed
in Section 4. The reasoning is simply that the best
scanners give resolutions of the order of 1000 lines
MATRIX OF WIRES

Y

u(3)=u(3)
3

u (y)= ky

2

a
10-_ _ _ _ _ U

(y)

Y- PROFILE
(NORMALIZED TO BE LINEAR)

DISPLAY

II u(x)=kf(x)

u(x)

I

ELEMENT:

=-0-

I
I

~~--------~------~------~---X
0 2 3
X - PROFILE
(CHOSEN

TO

Figure 11.

GIVE

CURVE TO

Paramosaic.

BE

DISPLAYED)

13

COMPUTER APPLICATION OF ELECTRO-OPTICS

(10 6 bits per frame after quantization) and that as
long as the machine interacts with a human a frame
rate of a few frames per second is adequate: the
data rate inside the processor is then of the order
of a few megacycles per second.
The Department of Computer Science at the University of Illinois is presently engaged in proving

these views in a system according to Fig. 12 used in
automating the constructions of Euclidian geometry. In this Artrix System 25 use is made of hybrid
digital-analog circuits with 0.3% precision from DC
to 2 megacycles, the signal swings being from - 10v
to + 10v. The three stores (PERMANENT, PAD
and ACCUMULATOR) are all formed on memo-

-

~

a

(r

•

b )4-JOYSTICK

~ ~

CIRCLE
GENERATOR

DISPLAY

---..

j-l

...,
TRANSF.

...,
TRIAL

...

(~~\J

ADDRESS
GEN .

...

-

256

1

IpOINTER]
DISPLAY

,

IINDICATOR

"

I

4

~

LINE

PERMANENT
STORE
( POINTS)

~J

-

.-

...--

INTERSECTION

I

\

LJ

f--

( TEMPORARY)

•

--

4l

\

IINDICATOR·I

..-

--

ACCUMULATOR
(DWGS. )

'

4

1\
1\

. Y

Figure 12.

..

_1

The Artrix system.

I

\

I
I
I

\

I

\

\
I

--¢
b-COUNTER COMMUT.

DISPLAY

-

I

\ I
\

II

lERASER]
H

I

\

DISPLAY

PAD

FINDER

,t

?-

,

\

IERASEfij
I

, t

h

.~

~

GENERATOR

X
COUNTER

CLOCK

14

PROCEEDINGS---SPRING JOINT COMPUTER CONFERENCE, 1966

tron-vidicon pairs with a 300-line resolution: their
contents are simultaneously sent to a display monitor which is also used for light-pen writing. A digital system positions all beams in synchronism and
permits the transmission of digitized coordinates to
the processing boxes (CIRCLE GENERATOR,
LINE GENERATOR and INTERSECTION
FINDER), thus obviating the storage of analog
signals: the digital versions, after being converted,
feed the analog processors.
Erasure is obtained by selective transfer of information from the permanent store or the accumulator to the PAD: the portions not to be transferred
are pointed at with a large aperture "ERASER"
light-pen. The "POINTER" light-pen is used to set
the initial construction points into the permanent
store: it has a small aperture. The "INDICATOR"
light-pen has again a large aperture and generates
a gating signal which allows the system to look up
the exact value of coordinates in the permanent
store. The two fundamental operations are the
automatic drawing of straight lines through two
points and the construction of circles with a given
center (a,b) and a given radius r.
ACKNOWLEDGMENTS
The author is indebted to Harold Fleisher and
Robert Pole of IBM, Charles Koester of American
Optical, Dean Anderson of Autonetics, Louis Cutrona of Conductron Corporation, Harrison Fuller
of LFE and James Tippett of NSA for helpful discussions and suggestions.
REFERENCES
l. C. J. Koester, "Some Properties of Fiber Optics and Lasers," Optical Processing of Information,
Pollock, Koester and Tippett,. eds., Spartan Books,
Baltimore, 1963, Part B.
2. W. F .. Kosonocky, "Laser Digital Devices,"
Optical and Electro-Optical Information Processing,
J. Tippett et aI, eds., MIT Press, Cambridge, Mass.,
1965.
3. C. J. Koester and C. H. Swope, "Some Laser
Effects Potentially Useful in Optical Logic Functions," ibid.
4. G. J. Lasher and A. B. Fowler, "Mutually
Quenched Injection Lasers as Bistable Devices,"
IBM Journal of Research and Development, Sept.
1964.
5. W. J. Poppelbaum, "Electro-Optical Infor-

mation Processing," Proceedings of the IFIP Congress, 1965.
6. R. E. J. Moddes and L. O. Gilstrap, "Research on Optical Modulation and Learning
Automata," Optical and Electro-Optical Information
Processing, J. Tippett et aI, eds., MIT Press, Cambridge, Mass., 1965.
7. J. C. Bliss and H. D. Crane, "Relat.ive Nlotion and Nonlinear Photocells in Optical Image
Processing," ibid.
8. E. N. Leith, L. J. Porcello and L. T. Cutrona,
"Coherent Optical Data Processing Techniques,"
Proceedings of the NEC, 1959.
9. L. T. Cutrona, "Recent Developments in
Coherent Optical Technology," Optical and ElectroOptical Information Processing, J. Tippett et aI, eels.,
MIT Press, Cambridge, Mass., 1965.
10. G. Parrent, "Relation Between Bandwidth
and Spatial Coherence in Experiments Involving
Dispersion," Journal of the Optical Society, vol. 55,
no. 9 (1965).
11. W. J. Poppelbaum et aI, "Film Sicanner,"
Quarterly Technical Progress Report of the Department of Computer Science, University of Illinois,
July-Sept. 1965.
12. D. B. Anderson, "Application of Semiconductor Technology to Coherent Optical Transducers
and Spatial Filters," Optical and Electro-Optical
Information Processing, J. Tippett et aI., eels., MIT
Press, Cambridge, Mass., 1965.
13. G. W. Stroke, "Theoretical and Experimental
Foundations of Optical Holography," ibid.
14. R. V. Pole et aI, "Laser Deflection and Scanning by Internally Lifting Degeneracy of M ultimode
Cavities," ibid.
15. H. Fleisher et aI, "An Optically Accessed
Memory Using the Lippman Process for Information Storage," ibid.
16. A. Reich and G. H. Dorion, "Photochromic,
High-Speed, Large Capacity, Semirandom Access
Memory," ibid.
17. M. Von Ardenne, Tabellen der Elektronenphysik, Ionenphysik und Uebermikroskopie, Deutscher Verlag der Wissenschaften, 1956, vol. 1, p.
202.
18. C. F. Pulvari, letter in Electronics, Feb. 28,
1964.
19. E. Lindberg, "Solid Crystal Modulates Light
Beam," Electronics, Dec. 20, 1963, p. 58.
20. J. W. Horton, R. V. Mazza and H. Dym,
"The Scanistor-A Solid-State Image Scanner,"
Proceedings of the IEEE, Dec. 1964, p. 1513 .

COMPUTER APPLICATION OF ELECTRO·OPTICS

2l. A. D. Berg and R. Smith, "An Electron Image Information Store," AGARD Symposium on
Opto-Electronics, Paris, 1965.
22. N. H. Lehrer and R. D. Ketchpel, "Thin
Film Conductive Memory Effects Applicable to
Electron Devices," Optical and Electro-Optical Information Processing, J. Tippett et aI, eds., MIT
Press, Cambridge, Mass., 1965.

15

23. H. W. Fuller and R. J. Spain, "A Thin Magnetic Film for Wall Panel Display," ibid.
24. W. J. Poppelbaum et aI, "Paramatrix Systern," Technical Progress Report of the Department
of Computer Science, University of Illinois, June
1964.
25. - - , "The Artrix System," ibid, July-Sept.
1965.

BASIC THEORY OF PARTIAL COHERENCE
George B. Parrent, Jr.
Technical Operations Research
Burlington, Massachusetts

INTRODUCTION

In (1) V is the analytic signal associated with the
optical disturbance, which we assume to be a single
Cartesian component of the electric field vector. In
terms of the mutual coherence function, the complex degree of coherence, 1'12 (T) is defined as

The structure for a fundamental treatment of
image formation problems already exists in the
formalism of modern coherence theory as introduced by Wolf.l An adequate introduction to the
subject is provided by Born and Wolf,2 (Chap. 10),
and a detailed description of most of the results of
the theory to date may be found in Beran and
Parrent. 3 Therefore it will not be necessary to review the subject extensively here. Rather, we shall
limit ourselves to a statement of the pertinent definitions and a summary of the treatment of the imaging problem in coherence theory.

(3)
It should be noted that the complex degree of coherence, like the mutual coherence function, is a
function of seven variables, six position coordinates,
and the time-delay coordinate T. The physical significance of these parameters is illustrated by the
example discussed below. The treatment of problems involving partially coherent light involves the
solution of the two wave equations:

BASIC DEFINITIONS
Mutual Coherence Function

The basic entity in the theory of partial coherence
is the mutual coherence function, r I2 (T), which may
be defined by

r I2 (T)

== (~h~2,T)

=

 == lim -2
T-oo

T

IT

Jdt

(4)

(2)

-T

(5)

* Equation

(2) is equivalent to the definition introduced by
Wolf, though in a slightly different form.

Equation (5) follows directly from the definition of
17

!8

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

the mutual coherence function and the properties of
the analytic signal.
For a large class of problems the theory outlined
in the preceding paragraph may be greatly simplified. These problems are characterized by the quasimonochromatic approximations, which are stated
as

{~;L\: :< I I}
T

where D.v is the spectral width. Of these two constraints, the second is obviously the more significant. White light may often be treated as quasimonochromatic if the path differences, CiT I, involved in the experiment are suitably small. In
those circumstances for which the approximations
above are applicable, the mutual coherence function may be replaced by the mutual intensity function, r(~I'-~2)'

r (x 1 , ~ 2)

==

r 12

=

r (KI , ~2 , 0)

(6)

The complex degree of coherence reduces to
1"12(0) == 1"12 and the wave equations (4) reduce to
the two Helmholtz equations
(s

1,2)

(7)

of these theorems. We shall reserve a discussion of
the significance of the incoherent limit for a later
point (a comprehensive treatment may be found in
Beran and Parrent,3 Chaps. 2 and 3).

The van Cittert-Zernike Theorem
An additional theorem is required before attacking the treatment of the image formation probl{~m.
The van Cittert-Zernike theorem may be stated as
follows:
The mutual intensity of the illumination
derived from a distant incoherent source
may be expressed in the form
2 ... i

r(XI, X2)

=

J 1(~)eXR f'(~I-~2) d~

(9)

Here I is the intensity distribution across the source,
and R is the distance from the source plane to the
observation plane. If the source is pl.aced- in the
focal plane of a lens and the coherence of the
emergent beam examined, it is found to follow the
same law with the R replaced by the focallengthf

THE IMAGING PROBLEM

where Is:. is the wave number.

Coherent and Incoherent Fields
Equations (1) through (7) provide the basis of the
theory of partial coherence as introduced by Wolf.
To apply this theory to the imaging problem arid
recover the familiar limiting forms, several the~rems
due to Parrent are required. Principal among these
are:

1. A field is coherent if and only if the
mutual intensity function describing it
can be factored in the form

Review of Image Theory

where
V2UC~1)

We may now direct our attention to the formulation of the general imaging problem. As will become clear in the following discussion, a basic description of image formation (at least as far as the
lenses are concerned) already exists in coherence
theory and, in fact, may be found in Refs. 2 and 3.
This theory has not however been appli<;:d to the
significant problems of image evaluation. Indt!ed,
the theory has been applied to very few problems.
In the next section the basic theory is outlined and
those pertinent problems that have been solved are
reviewed and discussed.

+

k 2 U(Kd = 0

(8)

2. An incoherent field ~annot exist in free
space; however, an incoherent source
consistent with this· result may be defined.
(For the proof of these theorems and their extensions to polychromatic fields the reader is referred
to Beran and Parrent. J ) Of particular significance
for the problem of image evaluation is the second

In coherence theory an object is described by its
mutual intensity* (or mutual coherence) distribution rather than its intensity distribution. Thus the
object described by rO(~l' ~2) and the relationship
between object and image,-ri(~h.x2)' is developed
by solving the two Helmholtz equations (7) subject
to the appropriate boundary conditions. The gen*Our discussion in this section will be limited to quasi·
monochromatic radiation. This serves to introduce the con(:epts,
and at the same time keeps the development tractable:.

19

BASIC THEORY OF PARTIAL COHERENCE

eral solution is (see Ref. 3, Chaps. 7 and 8):
C(XI,-X2)

=

J J rO(~I' ~2)K(~1 - ~I)
·K*(~2 - ~2)d~ld~2

(10)

Here K denotes the amplitude impulse response of
the lens; i.e., denoting the complex transmission of
the aperture by A (g), we may write

K(~) = K (

f3 )
2-.:i
AI
= J A(g)e

a·fJ
>./--

det

(II)

The two familiar limits may be recovered from (10)
by using the theorems of the previous section. Thus,
in the coherent limit, r l2 = VI Vf, and (10) reduces
to

CC~I' K2) = J VO(~I )K(~I - ~dd~1
.J V6' (~2 )K* C~2 - ~2 )d~2

(12)

From (12) and theorem I ("Coherent and Incoherent Fields," above), it is clear that the image of
a coherently illuminated object is coherent. A somewhat more surprising result (and certainly more interesting in the image evaluation problem) is obtained in the incoherent limit. Thus, we may take*
r l2 = 1(~1 )O(~I - 6) to describe the object. The
general image~Eq. (10), then reduces to

C(~I'~2)

=

J 1(~)K(~1 - ~)K*(:K2 - ~)d~

(13)

From (13) it is clear that the image mutual intensity
is no longer of the same form as the object mutual
intensity; i.e., the image of an incoherent object is
not incoherent but is partially coherent. This result
will be seen to have rather far-reaching implications
in the problems of image formation.
For most applications, the primary exposing radiation may be safely taken as incoherent. For example, sunlight is coherent only over a distance of
approximately 1/20 mm. Thus, even a reconnaissance system which resolved an inch on the ground
could probably be safely described by the incoherent
limit of Eq. (10). In this case, the intensity in the
image can be obtained by setting ~I = ~2 In (13);
thus

!i(~) =

J 10 (f) 1 K(~

- ~) 12 d~

(14)

Equation (14) will be recognized as the familiar
incoherent imaging equation. The difficulty arises,
of course, when the scale of the mutual coherence
function becomes comparable with the resolution of
the optical instrument. (This point will be discussed

* Actually this form for the incoherent limit is only an approximation and must be used with care. However, it is sumciently
precise to illustrate the present problem.

at length in a later section.) While this condition is
not likely to arise in the original taking system in
the near future, it becomes serious in viewing and
analyzing equipment such as microscopes, enlargers, and microdensitometers at the present state
of the art. If one envisions improvements in taking
equipment of a factor of two or more, it will become
even more serious. This point will become clear as
we analyze transilluminated objects.
While (10) represents the general solution to the
partially coherent imaging problem, a more useful
form for application to spatial filtering is obtained
by considering the object to be a transparency that
is transilluminated. This is, of course, the case in
almost all viewing of reconnaissance imagery, ~nd
certainly in all uses of microscopes and microdensitometers in image evaluation. To describe this class
of problems, it is necessary to describe the object in
terms of its complex transmission t(~). For transilluminated objects Eq. (10) may be expressed as

ri(~I'~2) = J JrO(~I'~2)t(~I)t*(~2)
·K(~I - ~1)K*(~2 - ~2)d~ld~2

(15)

In most cases, one is interested in the intensity of
the image, which may De obtained from (15) by setting ~I = ,!2. Thus,

li(~)

=

J J ro(~], ~2)t(~dt*(~2)K(~ - {d
·K*(~

- ~2)d~ld~2

(16)

In (15) and (16) rO(~I' 6) must be interpreted as the
coherence of the illumInation incident on the transparency. The illumination in most cases of practical
interest will be derived from a primary incoherent
source. In this case rO(~I' ~2) takes a special form(because of the van Cittert-Zernike theorem):
(17)
That is, it becomes a function of coordinate differences only. Under these circumstances (16) becomes
lie,!)

=

J J rO(~1 - ~2)t(~1 )t*(~2)K(~ - ~)
·K*(~ - ~2)dgldg2

(18)

From (18) it is clear that for transilluminated objects the transition from object intensity 1 t(~) 12 to
image intensity is nonlinear. The significa-nce of
this conclusion is that the customary image evaluation techniques and criteria are not, in general, applicable to such systems. For example, knowing
how such a system images sine waves or edges does
not permit us to describe how it images other objects. Furthermore, the same optical system could

20

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

be expected to yield different results if the coherence of the illumination varied. At high resolutions
a small variation in the scale of the coherence function can produce dramatic; changes in the image.
This may account, in part, for the difficulty encountered in intercalibrating instruments in different
laboratories, or in the cross-checking of microdensitometers that have essentially equivalent optical
components but produce different results in edge
trace analysis.
Since systems of this type are inherently nonlinear, it is impossible to characterize them by a
transfer function. This point is easily established by
taking the Fourier transform of both sides of (18).
Thus,

i~)

=

J i({})7*(~_ - Q){J r[~
K(~ - ~)K*(~)dqJdf1

- (~ + ~)]

v

v
/1

z,

0(.

Figure 1.

Coordinate system.

The geometry is illustrated in Fig. 1, in which ~ is
the coordinate in object space, a is the coordinate in
the aperture plane, and x is the coordinate image
space. Assuming paraxial optics and ignoring
obliquity factors, we may express the rdation between object and "image" as follows (Beran and
Parrent,3 Chaps. 3 and 7):
fi(XI, X2) =

J JJJ rO(~I' ~2)R(al )R*(a2)

(19)

In (19) the inner integral is characteristic of the instrumentonly, while the factors t({3) and t* (Il - (3)
are determined solely from the object spectrum.
However, (19) is not in the form of "object spectrum
times transfer function equals image spectrum." The
inner integral has been referred to as a generalized
transfer function, but that nomenclature is rather
misleading since the function is not used as a transfer function at all. A better terminology is the more
cumbersome one introduced by Wolf, the "transmission cross coefficient," which emphasizes that it
is a function of two frequencies.
With these general reservations in mind, we may
direct our attention to the development of the system analysis for spatial filtering systems.

Here R (a) describes the transmission of the aperture
and all integrals are infinite. The term a~2 /2/ is, of
course, the saggital approximation and the r's remain from the Green's function.
Assuming coherent quasi-monochromatic radiation, we find that
rO(~1,6)

UO(~I)U~(~2)

(21)

= U i (XI)U1(X2)

(22)

=

and the image becomes

r i (XI,X2)
where
Ui(x) =

JJ Uo(~)R(a)e

ik ~U.a)- ~ +r(a.x)]

2/

SYSTEM ANALYSIS
In this section the relationships between "object"
and "image" for three cases of imaging with coherent radiation are derived. Denoting by ZI and Z2,
respectively, the object and image distances, we define these cases as follows:

d~da
(23)

f d K (~ - a)4
.
·
we may wnte
I gnonng terms 0 or er
Z3

r(~, a)

=

ZI

+

(~

_ a)2

(24)

2z1

and

l.~+~=~
ZI

2.
3.

Z2

ZI = Z2
ZI =

0,

(25)

/

=/
Z2 =

f

Condition (1) produces an image in the ordinary
sense only if the object is: in the near field of the
lens. Condition (2) yields an "image" which is the
Fourier transform of the object, and condition (3)
yields a Fourier transform multiplied by a quadratic
phase term.

Hence, omitting constant phase terms we may rewrite (23) as

. J R(a)e

L+ ~ a(X ~ ~ )]
[~ (~+ z.~ _/~) +2z,
2z. - ;;- z:

ik 2 z,

·dad~

(26)

21

BASIC THEORY OF PARTIAL COHERENCE

I

Case (1):

Here an ideal lens is assumed again. Provided a, x,
and ~ and the condition

/

Under these conditions (26) becomes
U;(X)

=

J Uo(~) J R(a)e

'k [r

aE

o

x'

a2 »

ax]

2z,- z,-+ 2z. -

z.-

da

J Uo(~)e

2aEl

2z,

k

d~ (27)

is met, the inner integral yields a constant C and
(37) becomes'

Consider first the integral
;k[r -

2/

;kEx

;ka'

d~

e -zz,- U(a)

=

(28)

Here

U;(x)

=

C J Uo(~)e -V d~

(39)

;k(E-a)'

U(a)

=

J Uo(~)e-2Z'-d~

(29)

Equations (28) and (29) are obtained by simply
completing the square in the exponent. We may
now write (27) as
Uj(x)

=

J R(a) U(a)e;kG:.- ::- ;:,J da

i.e., a Fourier transform with no quadratic phase
term.

=/
Under these conditions we have immediately
from Eq. (20)
Case (3):

(30)

Or completing the square again we have

Z1

=

0

Z2

ikx'

Ok .[Z'
Z~]
I X
~+~
e

U;(x)

;kx'z,

e 2Jz.

U;(x)

J R(a) U(a)e

2z,

da

;k(a+

J R(a) U(a)e

(31)

da

(32)

comes
U;(x) = e 2Jz.

;k(a+z;x)"

de¥.

2z1

-a U(a)e

(33)

Under the condition
(34)

i.e., object in near field of lens, the limits -a to a
(the aperture size) may be regarded as infinite and
(33) may be evaluated by the inversion theorem for
Fresnel transforms, giving
V,(x) - elk"g«,,<,) Vo (:: x)

(35)

that is, an image mUltiplied by a quadratic phase
term.
Case (2):

Zl

=

Z2

(40)

or
(41)

If the lens is unapodized and unaberrated, (32) beikx'z, f a

ikax

= e 2T J Uo(a)R(a)e -21 da

;;-xr

2z,

(38)

or

Spatial filtering systems are properly constructed
around the configuration characteristics of case 2.
That is, this setup is used to display the Fourier
transform of the input transparency. A second
transparency is placed in the Fourier transform
plane to modify the spectrum. Then the process is
repeated and the "filtered" image is displayed in the
final Fourier transform plane.
In each spatial filtering experiment the coherence
conditions should be adjusted in accordance with
the foregoing analysis in order to be sure that the
approximations of the theory have been satisfied
and at the same time to minimize the degrading
effects associated with coherent imaging. These
effects arise primarily from the fact that such systems are nonlinear in intensity. Some examples of
these effects are shown below.
EXPERIMENTAL EXAMPLE OF
COHERENCE EFFECTS

=/

Under these conditions, (26) reduces to
Ui(x) =

J J Uo(~)R(a)e

;k(a' + E' +x' - 2a(x + E)l

2J

da d~

(36)

Completing the square on the exponent in (36) gives
U;(x) =

f

_lkEx I.a

Uo(~)e E-J

Ik(a-(x+E»)'

e
-a

2J

da d~

(37)

A simple experiment that illustrates the effects of
the spatial and temporal coherence is to form twobeam interference fringes by division of a wavefront.
Figure 2 shows the result of such an experiment.
Figure 2a shows high-contrast fringes formed with a
He-Ne gas laser illuminating a pair of small circular

22

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

Figure 2.

a

b

c

d

Effect of coherence length. A and B-with gas lasers; C and D-with mercury arc.

apertures~ The envelope function is the diffraction
pattern of the single aperture. In Fig. 2b, a piece of
plane optical quality glass 0.5 mm thick was introduced in front of one of the apertures only, to add
an extra optical path. Again illuminating with the
He-Ne gas laser, we observe no difference in the
fringe contrast. However, when the experiment is
repeated with a coherent field produced by a
mercury arc lamp without the glass plate, highcontrast fringes are again seen (Fig. 2c), but with
the glass in place, the fringes disappear (Fig. 2d).
The slight scale change between the two pairs of
illustrations results from the different wavelengths
(6328 A for He-Ne and 5461 A for the Hg green

line). This illustration shows that the coherence
length of the mercury arc radiation is quite small.
Both fields were spatially coherent but the coherence
lengths were quite different.
Introducing fine
ground glass across the pair of pinholes resullts in
the intensity distribution of Fig. 3. The c!xtra paths
introduced by the ground glass did not exceed the
coherence length; hence, high-contrast fringes are
seen over the whole field. A discussion of these
types of speckle patterns in terms of their autocorrelation function and their power-sp,ectral density are to be found in a paper by Goldfischer. 4 An
attempt to build a coherent projection printer is reported by Milinowski,5 in which a rotating pi(~ce of

BASIC THEORY OF PARTIAL COHERENCE

Figure 3.

Two-beam interference with diffusing plate.

ground glass is used to remove some of the coherence effects.
REFLECTED LIGHT
The different speckle patterns formed when coherent light is reflected from a rough surface have
been commented upon a number of times and perhaps form the most objectionable feature of coherent imaging by reflected light (as opposed to
transmitted light discussed in the last section).
Figure 4 shows a standard bar target that has been
printed on a matte photographic paper and then

Figure 5.

Figure4.

23

Photograph in reflected coherent light.

rephotographed in reflected coherent light. The
edge-ringing effects are masked by the speckle patterns. The speckling is produced by the interference
between the scattered light and is determined by
the coherence length of the incident radiation. Figure 5a is a photograph of a portion of a cementblock wall illuminated by a mercury arc so that the
light is spatially coherent. In Figure 5a the same
portion of the wall is illuminated by a gas laser; the
speckling completely obscures any structure of the
wall. Both beams had approximately the same
spatial coherence, but the gas laser has a considerable longer coherence length.

a
b
Effect of coherence length. A-spatially coherent only; B--spatially and temporally coherent.

24

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

REFERENCES
1. E. Wolf, Proc. Roy. Soc., vol. (A) 230, p. 246
(1954).
2. M. Born and E. Wolf, Principles of Optics, 2nd
ed., Pergamon Press, New York, 1964.

3. M. Beran and G. B. Parrent, Theory of Partial
Coherence, Prentice-Hall, Englewood Cliffs, N.J.,
1963.
4. L. I. Goldfischer, J. Opt. Soc. Am". vol. 55,·
p. 247 (1965).
5. A. S. Milinowski, ibid, vol. 54, p. 1406 (1964).

THE ROLE OF COHERENT OPTICAL SYSTEMS IN
DA TA PROCESSING
L. J. Cutrona
Conductron Corporation
Ann Arbor, Michigan

callens which produces a mUltiplicity of
one-dimensional diffraction patterns.
The basic configuration for obtaining twodimensional diffraction patterns is shown in Fig. 1.
In this figure S represents a source of light, LI
represents a collimating lens, PI represents the input
plane in which a transparency is placed, and lens L2
is the spherical lens which is the essential element
for producing a two-dimensional diffraction pattern.
Plane P2 is the plane in which the two-dimensional
spectrum (of the transparency in plane PI) is exhibited.
In order that the distribution of light in plane P2
be the two-dimensional spectrum analysis of the
density distribution of the transparency in plane PI,
it is necessary that planes PI and P2 be spaced a
focal length on either side of lens L 2. If f(x,y) represents the amplitude of light emerging from plane
PI, then the distribution of light amplitude in plane
P2 is given by Eq. (1):
F(a, (J) =
f(x,y)ejk(ax+ py) dx dy
(1) ,

INTRODUCTION
This paper describes a number of signal processing techniques in which coherent optical techniques
play an important role. The techniques are powerful and of great versatility.
Examples of both two-dimensional and multichannel one-dimensional signal operations are described. Of particular importance is the fact that
the most general linear operation can be mechanized
optically. Further examples show how antenna patterns can be simulated optically.
A configuration useful for achieving fine resolution in radar by the generation of a synthetic
antenna is described.
Finally, the use of several optical configurations
for communication purposes are discussed.
FUNDAMENTAL PRINCIPLES

JJ

Much of the capability of optical configurations
arises from the ease with which certain one-dimensional and two-dimensional spectral analyses are
made. I-4 Two basic configurations appear repeatedly. These configurations are

In Eq. (1), the amplitude of the light in plane P2

1. A configuration using a spherical lens
which produces two-dimensional diffraction, and
.
2. A configuration consisting of a sphericallens in conjunction with a cylindri-

Figure 1.

25

Configuration for
analysis.

two-dimensional

spectrum

26

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

is given by F(a, (3). Here k represents the wave
number of the light while a and (3 represent the
direction cosines of the diffracted beam with respect to the x and y axes.
The configuration of Fig. 1 can be converted to
a multichannel one-dimensional diffraction equipment by the addition of a cylindrical lens to the
configuration of Fig. 1. The cylindrical lens is
placed between planes PI and P2 to give the configuration shown in Fig. 2.
In this case the distribution of light in plane P2
is given by Eq. (2). It will be noted that this expression indicates distribution of light corresponding to
a multichannel spectrum analysis. The parameter y
is an index referring to a given channel. The other
parameters have been previously defined.
F(a,y)

=

J!(x,y)e

jkax

dx

(2)

Figures 1 and 2 will be seen to appear in a number of configurations in the following sections. A
photograph of equipment using the configuration of
Fig. 2 is shown in Fig. 3.
LINEAR OPERATIONS
Signal processing operations include a large number of linear operations. Among these operations
are spectrum analysis, filtering, auto-correlation,
cross-correlation, etc. Each of these operations,
including (a) the most general linear operation on a

Figure 2.

Configuration for one-dimensional multichannel
diffraction.

Figure 3.

function of a single continuous variable, and (b) the
most general linear operations on vectors, can be
mechanized optically.
Spectrum Analysis

The configuration of Figs. 1 and 2 are those essential for two-dimensional spectrum analysis or multichannel one-dimensional spectrum analysis. The
operation of these configurations formed the content of the above section.
Filtering

It is often desirable to perform filtering operations upon recorded signals. In such cases, it is
usually required to view the signals corresponding
to these altered spectra. To achieve this alteration
of the spectrum and viewing of the result, it is necessary to modify the optical configurations shown in
Figs. 1 and 2 to those shown in Figs. 4 and 5,
respectively.
The configurations in Figs. 4 and 5 permit operations on the spectra by filtering operations in plane
P2 • A number of filtering operations are possible:
In the simplest case, one can achieve bandpass
and bandstop filtering in plane P2 • A bandpass is
achieved by having a transparent region at the appropriate location in plane P2 • A bandstop is
achieved by locating an opaque spot at the appropriate position in plane P2.
A more complicated filtering operation can be
achieved by placing in plane P2 a transparency having a density varying as a function of position. This
corresponds to a filter which changes. the rdative
magnitudes of the spectral components.
A different filter is one in which phase variations
are desired. Difficulties in making filt.ers of this
kind arise from the short wavelengths of light.

Equipment for one-dimensional multichannel spectrum analysis.

27

ROLE OF COHERENT OPTICAL SYSTEMS IN DATA PROCESSING

Figure 4.

Configuration fortwo-dimensional spectrum analysis
and filtering.

Figure 5.

Configuration for one-dimensional
spectrum analysis and filtering.

multichannel

In the most general case, a filter is desired in
which both the magnitude and the phase shift of the
spectra can be varied. In this case one can place
two transparencies in contact in plane P2 ; one of
the transparencies has a varying density while the
other has a varying thickness or phase shift. This
permits the most general filtering operation to be
performed optically.
Information theory indicates a number of cases
in which a desirable signal operation is that of passing a signal through a matched filter. In general the
matched filter will require a variation of both magnitude and phase, hence the general filter consisting
of variable magnitude and phase is required.
A scheme for achieving the equivalent of a complex filter (magnitude and phase shift both variable)
makes use of a technique recently demonstrated by
Leith and Upatnieks,5 and Vander Lugt. 6
In this case a recording is made in which both
phase and magnitude are preserved but in which
this information can be recovered from a transparency having density variations only.
Auto-Correlation and Cross-Correlation

Important linear operations are those of autocorrelation and cross-correlation. These functions
will be considered together since the equipment
needed to mechanize the operations is identical. In
performing a cross-correlation the operations performed are those indicated by Eq. (3) while an autocorrelation is given by Eq. (4).
c,ojg(xo)
c,ojixo)

Jf(x)g(x
= Jf(x)f(x
co:

- xo) dx

(3)

- xo) dx

(4)

It will be noted from Eqs. (3) and (4) that to
mechanize these operations, techniques are needed

for performing multiplication, translation, and integration. A configuration capable of performing a
multiplicity of one-dimensional auto-correlations or
cross-correlations is given in Fig. 6. In this figure
the source and collimating lens to the left of the
plane PI causes a plane coherent wave to be incident
on the transparency f(x,y).
The optics between planes PI and P2 causes the
multichannel spectrum analysis of f(x, y) to appear
in the plane P2 • The optics between planes P2 and P3
perform a second multichannel spectrum analysis of
the signals in plane P2 • Thus, incident upon P3 is
the function f(x,y). If one looks through plane P3
toward the source, the distribution of light will be
the product f(x,y) g(x,y).
Let the holder which contains the function f(x,y)
have provision for transporting this transparency
along the x axes. If this displacement is through a
distance xo, then the distribution of light in plane P3
lookIng toward the source will be the product
f(x, y) g(x - Xo, y).

The combination of spherical and cylindrical
optics between planes P3 and P4 cause a multichannel spectrum analysis of the light distribution
emerging from plane P3 • Hence, the distribution of
light in plane P4 is described by Eq. (5).
c,o(xo,y; O() =

Jf(x,y)g(x -

xo,y)e jocz dx(5)

where
:= 27r"/A sin ().
It will be noted that Eq. (5) resembles Eq. (3)
except that a multiplicity of operations is performed
(one for each value of y) and that the factor e jocx
appears as a factor in the integrand. In Eq. (5),
=
corresponds to the light in a slit parallel to
the y axis. If only the light in this slit is recorded,
the exponential factor in Eq. (5) assumes the value
unity. In this case, Eq. (5) becomes identical with
Eq. (3) except for its multichannel feature. This
result is written as Eq. (6):
0(

0(

°

c,o(xo,y,O) = c,ojg(x,y)

(6)

As the plane P3 is transported,at a given position in
plane P4 , there will appear an amplitude of light
corresponding to the value of the cross-correlation
function for that value of the displacement Xo. This
auto-correlation function can be recorded by transporting a film past the slit. The configuration in
Fig. 6 is, thus, capable of performing a mUltiplicity
of sim ultaneous correlations.
To perform an auto-correlation using the configuration of Fig. 6 one uses a second copy of f(x,y)
in plane P3 •

28

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

.< Xo

f( x I Y)

I

Y ,0)

Sliit

00
P,4

Figure 6.

Cross-correlator configuration.

In the mechanization shown as Fig. 6 a relatively
complicated optical arrangement was shown to
image plane P l onto plane P3' It is necessary to use
this configuration in order to remove errors arising
from bias levels used in recording the signals in
planes Pl and P3 •
Auto-correlations and cross-correlations are important operations and there are many instances for
which information theory indicates these as optimum signal detection and/or parameter estimation
operations. It will be noted that the configuration
of Fig. 6 performs a multiplicity of such autocorrelations or cross-correlations simultaneously.
There is no difficulty in recording onto film a density of 50 cycles per mm.Hence 35mm film can be
used in configuration of Fig. 7 to perform simultaneously more than 1000 simultaneous auto-correlations or cross-correlations. Equipments having
the configuration of Fig. 6 are commercially avail-

Figure 7.

able. A photograph of such a device is shown as
Fig. 7.
General Linear Operation

The most general linear operation [0] on a function f(t) to produce an output g(t) can be written
in the form given by Eq. (7):
g(t) = O[f(t)] = j h(T, t)j(T) dT

(7)

In this equation, the nature of the operation to be
performed determines the kernel function h( T, t).
The fact that Eq. (7) represents a general llinear
operation is discussed in texts dealing with functional analysis. 7 Pertinent discussion has also been
given in pI~blications by L. A. Zadeh.s
In order to mechanize the operation givtm by
Eq. (8), the configuration shown in Fig. 8 may be
used.
(8)
g(t) = jh(T,t)f(T) dT

Cross-correIa tor .

Slit

---1--00
g'~~

Figure 8.

General linear operation configuration.

t)

29

ROLE OF COHERENT OPTICAL SYSTEMS IN DATA PROCESSING

If one looks toward the left, the light amplitudes
in the plane containing f( T) contains the product of
h(T, t) with f(T).
Between the transparency f(T) and the output slit
in which get) is found, is a pair of lenses, one of
which is spherical, the other of which is cylindrical.
This configuration performs the function of causing
the line-by-line spectral analysis of the light in the
f( T) plane to be displayed in the output plane. The
distribution of light in the output plane is described
by Eq. (9). It will be noted that Eq. (9) is a somewhat more general operation than that described by
Eq. (8), and that it describes a two-dimensional distribution of light in the output plane.
I(t,w) = !h(T,t)f(T)e-jWTdT

(9)

It will be further noted that Eq. (9) becomes identical with Eq. (8) if w is set equal to O. Thus, performing a linear operation expressed as Eq. (8) is
accomplished simply by observing the light which is
present in the central slit in the output plane.
Thus, performing a general linear operation optically requires the configuration shown in Fig. 8

/

together with the ability to record on two transparencies the functions h (T, t), which represents the
operation to be performed, and the function f(T),
which represents the function upon which the operation is performed. The result of the operation is
present in a centrally located slit in the output
plane of the equipment.
It is known that, if a number of linear operations
are performed in tandem, one can represent the tandem sequence of operations by a single equivalent
operation. Hence, Eq. (8) represents not only a
single operation but a sequence of linear operations,
if such is desired.

Matrix Multiplication
Eq. (8) and Fig. 8 are pertinent when a general
linear operation or a function of one variable is to
be performed. It is useful, however, to consider the
case in which a linear operation is to be performed
in a space of a finite number of dimensions. In this
case each input and output quantity of interest will
be a vector (n-tuple) and the linear operation will
be that of matrix mUltiplication. If J!I and J-2 repre-

~Co/lI... t."LH'

/-..

, . / A n t e n n a Master Transparency
/

.

~ Transform Objective

/ '

. / For Field Pattern

/

/~n'.','n. L...
~Master

/

Figure 9.

Microwave antenna simulator at optical frequency.

Transparency
Image

30

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

sent two vectors and if M represents a matrix one
may write
(10)
J'2 = MJIi
to indicate that J'2 is derived by a linear operation
on JIl.
In Eq. (10) JIl and J'2 are vectors (column matrices whereas M is a k by n matrix. These matrices
may be of the form given by'Eqs. (11) and (12).

The operation indicated by Eq. (10) can be performed by the optical configuration shown in Fig. 8.
In this case, the transparency h(r + t) is replaced
by a rectangular array representing the matrix M,
and f( r) is replaced by JIl. The output slit now
contains the values of Jt2 instead of g(t).
Thus, the configuration of Fig. 8 makes possible
the general linear operation for t, a continuous variable, as well as for discrete variables.
ANTENNA PATTERN SIMULATION

(11 )

The far field pattern of an antenna can be computed from its illumination function f(x,y) by the
use of the relation
F(a,{3) =

JJ f(x,y)e-jk(ax+{JY)dxdy

(13)

over
aperture

(12)

In this equation a and (3 are direction cosines of the
beam, F(a,{3) is the far field pattern, and k is defined by
27r
(14)
k =A

Figure 10.

Antenna simulation-Illumination Plane.

ROLE OF COHERENT OPTICAL SYSTEMS IN DATA PROCESSING

This quantity is the wave number and A represents
the wavelength used. If Eq. (13) is compared with
Eq. (1) it will be seen to have the same form. Thus,
the optical configuration shown in Fig. 9 can be
used to display the far field pattern of an antenna. 9
In this case, a transparency containing the aperture
function f(x,y) is placed in plane PI and the far
field pattern is observed in plane P2 •
In some cases, the far field pattern found in plane
P2 may be too small. It is desirable in this case to
use another lens to magnify the image found in
plane P2 • Such a configuration is shown in Fig. 9
where an enlarged image of the field in plane P2 is
displayed in plane P3 •
In fIg. 9, one finds that an image of plane PI
occurs between lenses L3 and plane P3 at plane P4 •
Thus, between planes P4 and P 3 one has an opportunity to observe the pattern as it emerges from the
. illumination function through the near field until at
plane P3 the far field pattern is obtained. With this
. configuration, studies of the relationship between
near field and far field can be made. In addition, by

Figure II.

31

inserting perturbations into the regions between
plane P4 and P3 , for example, by simulating a nonhomogeneous medium, it is possible to observe the
effects of perturbations on the far field pattern.
A series of photographs showing the far field developing from the illumination function for an array
antenna 9 is shown in Figs. 10-15. This set of photographs is the optical simulation of an antenna array
being built by J. P. Wild in Australia. The array
consists of 96 parabolas arranged on a circle about
IYz miles ·in diameter. Each parabola has a diameter of 45 feet. The frequency of operation is 80
megacycles.
Assuming that the far field pattern begins at a
distance 2D2/ A the far field pattern begins approximately 2400 miles from earth. This poses real problems for measurement of the far field pattern. The
configuration of Fig. 9, however, enables one to
obtain not only the far field pattern shown in Figs .
14 and 15 but also views of the near field pattern.
Thus, antenna simulation is another ,demonstration of the versatility of optical equipments.

Antenna simulation-near field.

32

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

Figure 12.

Antenna simulation-near field.

SYNTHETIC ANTENNA GENERATION
One of the most successful and important applications of optical data processing has been that of
synthetic antenna generation in airborne radar applications. Here, a sequence of signals collected as
an airborne radar is translated along a straight line
is used to achieve the effect of a long linear array.
The term synthetic antenna derives from the fact
that signal processing generates the long linear
array.
The fundamental idea can best be grasped by consideration of Fig. 16. For the physical antenna
array shown in Fig. 16a, the individual transmitting
and receiving elements are dipoles. While each dipole has a broad radiation pattern, the assemblage
of dipoles is made to produce a narrow antenna
beam by making the electrical lengths of the individual transmission lines such that signals arriving

in phase at the dipoles are added in phase at the
main transmission line to the radar. Since transmission and reception at each of the: dipoles is
simultaneous, this fixed adjustment of phases serves
to maintain the desired beam pattern.
Figure 16b depicts the generation of the synthetic
array. In this case the individual elements IDf the
array, as indicated by the x's, do not exist simultaneously. Starting with the position at the extreme
left, a radar pulse is transmitted and tht~ return signals recorded. A short time later the aircraft has
carried the side-looking antenna to the second position where another pulse "is transmitted and the received signals recorded. In this way a signal is recorded for each of the positions of the" synthetic
array. To achieve the effect of a linear array such
as Fig. 16a, the return signals must contain phase
information which is preserved in tht~ recording.
Then by appropriate data processing it should be

ROLE OF COHERENT OPTICAL SYSTEMS IN DATA PROCESSING

Figure 13.

Antenna simulation-near field.

possible to retrieve the stored data and combine it
in proper phase to synthesize the desired effect of a
narrow-beamed antenna.
It was evident that the radar would have to have
excellent transmitter frequency stability and a stable
frequency reference for use in comparing the_ phase
of the return signals with the phase of the transmitted pUlses. The method of signal storage (recording) had to preserve the range information so
that the data processing could be accomplished
separately for each element of radar range.
The well-known formula for antenna beamwidth
showed that, at least in theory, the synthetic-antenna'
concept had a great potential for fine angular resolution. The half-power beam width {3 of the physical
side-looking antenna (Fig. 17) is
{3 = k

~
D

radians

33

(15)

in which
A is the wavelength of the radar,
D is the length of the physical aperture, and
k is the illumination factor (greater than unity).
The distance across the antenna beam for a radar
range r is {3r, which represents the amount of data
that can be collected between half-power points for
this range. If this amount of data is processed at
each range, this would represent a synthetic antenna
length
(16)
Ls = {3r feet
if~" is expressed in feet. The phase information obtained for each of the element positions of the synthesized antenna is based on the round-trip distance
between the side-looking antenna and echoing objects; for the physical array the phase depends on
the one-way path length. As a consequence of this
difference, the phase difference between elements

34

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

Figure 14.

Antenna simulation-far field.

of equally spaced elements of a synthetic array is
twice that of a physical array with the same spacing;
a synthetic antenna has half the beamwidth of a
physical antenna of a given length. That is,
{3s

=

k,

i~~ radians

~x

=

{3sr

k,

D

k -- 2

feet

(19)

(17)

in which k, is the illumination function for the synthetic-sized antenna. Using Eq. (15) this can be expressed in terms of the size of the physical antenna
and radar range as
k, D
d·
{3S = k
2r ra lans

beamwidth. For the beamwidth {3s of the: synthetic
antenna, the distance across the beam at any radar
range r is

(18)

This indicates that the synth,etic beamwidth {3s is not
only independent of freque'ncy, but also decreases
with radar range.
To obtain a measure of resolution, the usual assumption was made that targets could be resolved
in angle if they were separated by one antenna

if the length of the physical antenna aperture D is
expressed in feet.
In theory, then, the resolution in tht! azimuth
direction for a synthetic antenna radar is indep,endent of range, independent of radar frequency, and
smaller than the physical length of the aetual sidelooking antenna carried by the aircraft. This assumes the generation of a synthetic antenna of a
length equal to the distance across the radar beam
at each radar range.
In the analysis represented by Eqs. (15)-(19), the
generation of a focused synthetic antenna was implicitly assumed. If unfocused synthetic antennas
are generated, one obtains a resolution given by
Eq. (21).

35

ROLE OF COHERENT OPTICAL SYSTEMS IN DATA PROCESSING

Figure 15.

Antenna simulation-far field (longer exposure).

TISTIT
Transmission Lin.
To Radar

tenna length is made as long as the unfocused technique permits.
3. The focused synthetic antenna technique:
In this case the synthetic antenna length
is made equal to the linear width of the
radiated beam at each range.

(a)

xxxxxxxxxxxxxxx ~

L

Position at Which Pulse is Transmitted
and Received Signals Recorded

As is shown in the sections which follow, the
linear transverse resolution for the conventional case

(b)

Figure 16.

(a) Physical array of dipoles.
generation.

(b) Synthetic array

It is useful to compare the azimuth resolution
capabilities of conventional radars, unfocused synthetic antenna radars, and focused synthetic antenna radars. The theoretical results are given by
Eqs. (20), (21), and (22). These results are plotted
as Fig. 18.

1. The conventional technique: In this
technique azimuth resolution depends
upon the width of the radiated beam.
2. The unfocused synthetic antennb technique: In this case the synthetic an-

Figure 17.

Synthetic antenna

geometry.

36

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

1000
500

-

£

c

200
100
50

0

4=
:)
0

lit
~

~

20
10
5

Curve c(focussed case)"

2

Figure 18. Aximuth resolution for three cases: (a)
conventional; (b) unfocused; (c) focused.

is given by
I .
AR
Reso utlOn conv = D

(20)

For the unfocused case, the resolution is given by
Resolutionunf= ~ -V>;R

(21)

whereas for the focused case, the resolution is given
by
Resolutionfoc =

~

(22)

In the above expressions A is the wavelength of the
radar signal transmitted, D is the horizontal aperture of the antenna, and R is the radar range.
Figure 18 is a plot of the resolution for each of
these cases as a function of radar range. This plot is
for an antenna aperture of 5 ft and a wavelength of·
0.1 ft.
One of the most successful applications of coherent optical data processlng is the conversion of
raw data obtained from a synthetic antenna type
radar system into a fine-resolution radar map. Synthetic aperture radars may· well become the most
important of the ground-mapping types of radars,
since they have a resolution potential at long ranges
which is considerably greater than that of other
types of mapping radars. Coherent optical processing is eminently well suited to the processing tasks
which arise in such radar systems.

The azimuth or angular resolution of a conventional radar is limited by the width of the physical
radar beam, which is given by AID, where A is the
wavelength and D is the antenna width. Because
radar wavelengths are several orders of magnitude
larger than optical wavelengths, very large values
of D must be used if radars are to achieve angular
resolutions comparable with those of photoreconnaissance systems. If one wishes to hav(! fine (linear) azimuth resolution at long ranges, the required
antenna length will be of the order of hundreds or
thousands of feet; obviously, such an antenna could
not be carried by an aircraft.
The synthetic antenna technique lO- 12 offers a way
around this impasse: the aircraft carries. a small,
side-looking antenna, producing a beam that is relatively wide in the azimuth direction, which scans the
terrain by virtue of the aircraft motion. The antenna is carried by the aircraft to a sequence of
positions which can be treated as if they were: the
positions occupied by the individual elements of a
linear antenna array. At each position, the antenna
radiates a pulse, then receives and ston~s the reflected signal. These stored data are then processed
in a manner analogous to the coherent weighted
summation carried out ina large linear array. The
processed radar signals bear a quantitative similarity to those which would be obtained if a large
antenna were used; in particular, the resolution and
the signal-to-noise ratio are greatly improved by the
signal processing.
Array-type antennas add, or integrate, the returns
received on each of the array elements. The synthetic antenna falls into the array category. One
can readily generate synthetic apertures which are
so long that they will only realize their full gain and
azimuth-resolution capabilities if they are focused
at the range at which the radar is operating. The
focusing operation represents a phase adjustment of
the signal received on each array so that, in the summation process, the contributions from all array
elements are combined in phase.

The Radar Signal
An aircraft carries an antenna which illuminates
a ground-swath parallel to the flight path; the radar
beam is oriented in azimuth roughly normal to the
direction of flight; at range R, the azimuth lineal
beamwidth /3R" is much larger than the desired
azimuth resolution at that range. Finally, the radar
is coherent, that is, the receiver has availablle a

ROLE OF COHERENT OPTICAL SYSTEMS IN DATA PROCESSING

reference signai from which the transmitted signal
was derived.
Synthetic antenna radars derive range information through pulsing, and derive fine azimuth resolution by processing Doppler-shifted radar returns
which lie in a spectral band which is adequately
sampled by the pulse rate of the radar. For our purposes, we may neglect this intermediate sampling
process and consider only the reconstructed azimuth
histories which are easily derived from the samples.
We will assume that the entire radar receiver and
processor behave as a linear system; we can then
investigate the response of the radar to a single point
target, and by superposition extend the results to
apply to realistic reflective complexes ..
Examples of radar imagery obtained by th~ use of

Figure 19.

37

synthetic antenna techniques are shown in Figs. 19
and 20.
The radar data is recorded onto film as an intermediate step. This film, called a signal history film,
is then used in an optical configuration such as that
shown in Fig. 21.
In this figure, the conical lens is the primary element responsible for focusing, while the combination of cylindrical and spherical lenses causes the
device to become multichannel so that the separate
range intervals remain resolved.
COMMUNICATIONS APPLICATIONS
The essential components of a communications
system are shown in Fig. 22. In such a system the

Fine resolution radar image, Washington, D.C.

38

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

Figure 20.

Figure 21.

Fine resolution radar image, southeastern Michigan.

Optical processor using a conical lens.

source generates the Information which is eventually
delivered to the destination. The source may be any
of a number of items. It may be oral as in voice
communication; it may be a: picture as in TV transmission; it may be a series of digits if digital data is
transmitted; it may be an· analog voltage.

The output of the source is sent to a coder. It is
the object of the coder to perform such operations
on the output of the source as will adapt these signals to the transmission channel. Often a transducer of some type is included in the coder such as a
microphone in the case of oral sounds, a TV camera
for scenes, so that the information is converted into
electrical form., Additional operations arc! also performed. The most common of these is to impress
the information onto some electromagnetic carrier.
Many types of modulation exist, such as amplitude
modulation, frequency modulation, and a number
of pulse modulations.
These operations are primarily for the purpose of
adapting the signal to the channel. However, in
more sophisticated communications syst1ems additional coding is employed for a variety of purposes.
For example, such additional coding may be used

39

ROLE OF COHERENT OPTICAL SYSTEMS IN DATA PROCESSING

r--- ----,

,.----- ----1
I
I

I
I
I

L

Source

r--

Cod.r

~

I
_ _ ..JI

Transmitter

1. .

I

.-11
I
I
.J
'----------

~

Chann.1

I

.~

_D._cod_.r---'H....._D_.,_tin_atio_n

•

--~---

R.c.i v.r

Noise

Figure 22.

Essential components of a communications system.

for the purpose of signal-to-noise improvement,
error correction, etc.
The output of the coder is fed to the communications channel. Two general types of channels are
employed, in one case a wire system connects the
transmitter to the receiver; in the other case (radio
transmission) an electromagnetic wave is launched
by way of a transmitting antenna and a receiving
antenna associated with the receiver abstracts from
this electromagnetic energy. A wide range of frequencies is available for either wire transmission or
radio transmission. Recently, this spectrum has
been extended to include visual frequencies so that
modulation of light sources such as lasers may now
be considered.
In either wire transmission or radio transmission,
noise is added to the signals. Often, this is additive

noise. However, multiplicative noise and multipath
transmission are operations (generally undesirable)
which may also be performed on signals as they pass
through the channel.
The signals from the channel become the input to
a receiver. It is the function of the receiver to detect
the signal and to convert it into a form suitable for
acceptance by the destination. If coding for signalto-noise improvement C1r error correction have also
been included in the coder, the operations necessary
to achieve these improvements are also performed
by the decoder.
Not shown in Figure 22 but sometimes used and
necessary are a number of administrative equipments. These equipments perform such functions
as automatic testing, automatic switching to a
standby unit in case of failure, etc.
CODER

Logic
Elements

'--_

_...--- TV Channel

Alphabet

Time 8ase
Generator

nL...-.---_---In_____rL
Figure 23.

Optical coding.

40

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

; - Collimator
;-Ultrasonic Cell

Cylindrical Condenser

J
Primary Objective

Figure 24.

Block diagrams of optical coders and decoders'
are shown in Figs. 23 and' 24. In these figures it is
assumed that an alphabet (set of symbols) and rules
for their selection have been previously determined
using information theoretic considerations.
CONCLUDING REMARKS
In this paper optical computing and optical signal
processing have been applied to a number of problems. The list of problemsjs by no means complete.
Optical signal processing must be considered as
an extremely powerful and versatile technique.
ACKNOWLEDGMENTS
The author gratefully acknowledges the contributions of many of his co~leagues and former colleagues to the content of this paper.
REFERENCES
l. L. J. Cutrona, E. N. Leith and L. J. Porcello,
"Filtering Operations Using Coherent Optics," Proceedings of the National Electronics Conference, vol.
15,1959. '

Optical decoding.

2. - - , "Coherent Optical Data Processing,"
IRE WESCON Convention Record, Part 4, 1959,
pp. 141-153, and IRE Transactions on Automatic
Control, vol. AC-4, no. 2, pp. 137-149 (1959).
3. - - , "Data Processing by Optical Techniques," Proceedings of the Third National Convention on Military Electronics, 1959.
4. L. J. Cutrona et. aI, "Optical Data Processing
and Filtering Systems," IRE Transactions on Information Theory, June 1960, pp. 386-400.
5. E. N. Leith and J. Upatnieks, "Wavc!front
Reconstruction with Continuous Tone Objects," J.
of the Optical Society of America, vol. 53., no. 12, pp.
1377-1381 (Dec. 1963).
6. B. A. Vander Lugt, "Signal Detection for
Complex Spatial Filtering," IEEE Transactions on
Information Theory, vol. IT-10, no. 2, lPP. 139-145
(Apr. 1964).
7. B. Friedman, Principles and Techniques of Applied Mathematics, John Wiley and Sons, New
York,1956.
8. L. A. Zadeh, "A General Theory of Linear
Signal Transmission Systems," J. of Franklin Institute, vol. 253, pp. 293-312 (Jan.-June 1952).
9. A. L. Ingalls, "Optical Simulation of l\1icrowave Antennas," IEEE Professional Technical

ROLE OF COHERENT OPTICAL SYSTEMS IN DATA PROCESSING

Group on Antennas and Propagation International
Symposium Program and Digest, Sept. 1964, pp.
203-208.
10. L. J. Cutrona et aI, "A High Resolution
Radar Combat-Surveillance System," IRE Transactions on Military Electronics, Apr. 1961, pp. 127131.
11. L. J. Cutrona and G. O. Hall, "A Comparison of Techniques for Achieving Fine Azimuth
Resolution," IRE Transactions on Military Electronics, vol. MIL-6, no. 2, pp. 119-121 (Apr. 1962).
12. L. J. Cutrona et aI, "On The Application of
Modern Optical Techniques to Radar Data Processing," presented at 9th Symposium of AGARD
Avionics Panel on Opto-Electronic Components
and Devices, Paris, Sept. 1965.
BIBLIOG RAPHY
Born, M., and E. Wolf, Principles of Optics, Pergamon Press, New York, 1959.
Cheatham, T. P., Jr., and A. Kohlenberg, "Analysis
and Synthesis of Optical Processes," Boston
University Physics Research Laboratories
Technical Note 84, Part I (Mar. 1952).
- - , "Optical Filters-Their Equivalence to and
Differences from Electrical Networks," IRE
National Convention Record, 1964, pp. 6-12.
Conductron Corporation Final Technical Report,
"Coherent Light Investigation," Conductron

41

No. D-5210-503-T246, Contract AF33(615)2738 (Dec. 1965).
Cutrona, L. J., "Optical Computing Techniques,"
IEEE Spectrum, Oct. 1964, pp. 101-108.
- - , "Recent Developments in Coherent Optical Technology," Optical and Electro-Optical
Information Processing, MIT Press, Cambridge,
Mass., 1965.
Elias, P., "Optics and Communication Theory," J.
of the Optical Society of America, vol. 43, pp.
229-232 (Apr. 1953).
- - , D. Grey and D. Robinson, "Fourier Treatment of Optical Processes," ibid, vol 42, pp.
127-134 (Feb. 1952).
O'Neill, E., "The Analysis and Synthesis of Linear
Coherent and Incoherent Optical Systems,"
Boston University Physics Research Laboratories Technical Note No. 122 (Sept. 1955).
- - , "Selected Topics in Optics and Communication Theory," ibid, no. 133 (Oct. 1957).
- - , "Spatial Filtering in Optics," IRE Transactions on Information Theory, vol. IT-2, pp.
56-65 (June 1956).
Rhodes, J., "Analysis and Synthesis of Optical
Images," American Journal of Physics, vol. 21,
pp. 337-343 (Jan. 1953).
Woodward, P. M., Probability and Information
Theory, with Applications to Radar, Pergamon
Press, New York, 1960.

REQUIREMENTS FOR HOLOGRAM CONSTRUCTION
E. N. Leith, A. Kozma and J. Upatnieks
Institute of Science and Technology
The University of Michigan, Ann Arbor, Michigan

INTRODUCTION

Vibrations
Vibration .of the reference beam mirror, the object, or the recording plate results in image degradation that, subject to a few rather plausible constraints, can be readily analyzed.
A hologram is made of the moving point P (Fig.
1). Let the mean position of the point lie at a distance Zo from the hologram. Also, let the motion be
resolved into two components, one along the line
from object to recording plate, and the other normal
to this direction. For simplicity, consider each of
the motions separately.
The former case was. treated by Powell and Stet-

Holography has in the last two years undergone a
tremendous resurgence. The laser has contributed
immeasurably to this, through the remarkable coherence of its light, which permits previously performed experiments to be carried out with relative
ease, and in addition allows the performance of
experiments which were hitherto hardly conceivable.
Old experiments have been repeated with vastly improved results, and the new interest has given rise
to new ideas with exciting promise.
This paper has a twofold purpose: first, to discuss
the techniques for making good holograms and to
describe how various factors degrade the process;
second, to describe other forms of holography, in
which phase is preserved by methods other than
through phase modulation of an interferometrically
produced grating.

~----------ZO----------~~I

ANALYSIS OF SOME STABILITY
REQUIREMENTS
Ideal conditions for biographic recording include,
among other items, completely stationary components, monochromaticity of the source, optical flatness of the recording surface. and linearity of the
recording process, Failure to achieve these conditions causes in general some degradation of the
hologram image.

Figur.e 1. Hologram for a point object vibrating axially.

43

44

PROCEEDINGS~SPRING

JOINT COMPUTER CONFERENCE, 1966 .

son 1 for the case of sinusoidal motion. We treat this
case more generally by assuming a random motion
with a prescribed probability density function for
Zm, the deviation of the object point from its mean
position.
The hologram of the moving point is a photographic'record of the time-averaged light intensity
exposing the recording plate, or, to the usual firstorder approximation,
E(x) =

I
0

TI"
27r{X2
e,ax + kexp -i T
~ + Zo + z'",(t1~I 2dt

A similar analysis for a random motion Xm in the
lateral direction results in a time-averaging factor

~
T

I
o

Tkexp - I.~ax + -7r

A Zo

= KT exp
1
.T

.(

-I

\ax +

+ -27r KZm(t)~ dt

X2

+

KZm

>:7r ZoX

2

A

27r )
+ T
Zo

IT [
0

27r K (1 - X2)]
exp - i T
Zo Zm dt (2)

Assuming that the random process
the integral becomes
.

Zm

is ergodic,

0

exp [- i

~
(x~
AZo

-

Let the vibration be sinusoidal;
The integral becomes

2X m X)] dt
Xm

(4)

= A cos (j"m t .

27rA
2]
-1 exp [-.1
-T
4AZo

iT

(1)

Here Z'", = Kz m , where K is :a scaling factor related
to the relative amplitude of vibration (K = 0 for
negligible motion of the poiht), e iax is the reference
wave, and k is a constant. The virtual image term is

IT

exp

{-i ~:. [~

2
2

COs wmi - AXCOSwml]}dl
(5)

A Bessel function expansion, after negle:ct of various small term~, leads to the hologram signal term
being multiplied by J o(27rAX). This is similar to the
AZo

case for axial vibration, except that the presence of
the variable x within the argument is a complication
which no longer make~s this factor merely attenuative.
Another interpretation is applicable, howe:ver.
The diffraction field of the point source, as formed
at the hologram plate, has the phase distribution
exp -

i(>.:. x?

The spatial frequency. of the dif-

fracted field is
(3)
(6)

where

M zm

ated at 27r
A

is the characteristic function of

K(l - x:).
Zo

Since

zo, the argument of M

.

Zm

evalu-

xis usually much less

27r
can be taken as - K.
,A
The reconstructed image is thus attenuated by the
factor Mzm; M zm (0) = 1 and M zm (v) < M zm (0) for
all v. Thus, M zm is always an attenuating factor. In
the case of a sinusoidal motion, the attenuating factor is a zero order Bessel function J 0 • Since J 0 is
oscillatory rather than monotonic, fringes (representing contours of constant vibrational amplitude)
form ~n the reconstructed image.
If the probability density function is Gaussian,
the characteristic function similarly is Gaussian; the
attenuation factor is monotone decreasing and
therefore no fringes are produced on the reconstructed image, only an attenuation proportional to
t han

K.

Substitution into the Bessel function argument
yields

zm

(7)
The lateral motion thus has, approximately, tht:~ effect of a low pass filter which degrades the resolution of the hologram and also reduces the angular
field over which the reconstructed image can be
observed. Note that the filter operates on lthe object
spectrum before its modulation onto the spatial
carrier a.
Finally, consider the effect of lateral motion of
the recording plate. In this case, a time-averaging
factor

1

T

IT .
0

exp

[2 (2

- 17r- Xm -

AZo

X -

Azoa)
-"Idt
7r..l

- - Xm

(8)

REQUIREMENTS FOR HOLOGRAM CONSTRUCTION

is produced. An analysis similar to the one just
given for the case of sinusoidal lateral vibration of
the object shows that the proc~ss acts, as in the
previous case, like a low pass filter except that this
filter acts on the signal after its modulation onto a
spatial carrier; the attenuation is thus more severe.
The Propagation Medium

The propagation medium in general is indifferent to whether the imagery is holographic oJ.: conventional; an important exception must be noted,
however. If the medium is time-invariant and is
available for the reconstruction process, then the
medium serves, in the reconstruction process, as a
compensator for the errors introduced in the holo-'
gram-making process. Thereby, high-quality imagery is supported in a medium which otherwise is
incapable of supporting good imagery. This is accom plished by using the real image term in the
reconstruction process: the real image term is conjugate to the original object; thus, phase irregularities are canceled when the real image term of the
hologram is formed through the irregular medium.
This process has been demonstrated experimentally in two instances. In the first, a lens with
severe spherical aberration was part of the medium,2
in the second, several pieces of ground glass were
inserted between object and hologram. 3 In each
case, imagery was produced in which the deleterious
effects of the medium were eliminated.
Coherence Requirements

The basic coherence requirements of the source
can be stated quite simply, although the coherence
problem when examined in depth becomes indeed
abstruse and could itself well be the subject of a
paper. For example, holograms can be made in
completely incoherent light, as proposed originally
by Mertz and Young, and discussed more recently
by others.
In the case of a transparency, the object can be
assumed to have no depth, and the coherency requirement is determined solely by the number of
fringes required across the hologram, which is, in
fact, just twice the number of resolution elements
required across the object transparency. Indeed,
techniques exist whereby holographic signals can be
modulated onto diffraction grating images, and the
source need not have the coherence required to produce such a raster of fringes. The minimum coherence length is that n~eded to produce the re-

45

required dispersion of the object signal.
For
example, if. a resolution cell on the object transparency is dispersed into a Fresnel zone plate image
for impulse response having M fringes, coherence
necessary for producing only M fringes is needed.
The space-spatial bandwidth product of the signal
(the spatial analog of the time-bandwidth or TW
product) is M. Thus, the required coherence is related to the TW product of the system impulse
response.
For the case of three-dimensional objects, the
situation is more severe, since superimposed on the
previous requirements is the requirement that the
coherence length encompass the object depth. For
an object of depth L, the second requirement is
).2
~ ~

L, where

~).

is the wavelength spread of the

source. 4 If the source has spectrum S(w), the reconstruction will have implanted on it, in the form
of intensity variations as a function of depth. the
autocorrelation function of the spectrum. This suggests the use of holographic methods for interferometric spectroscopy. Alternatively, proper selection
of S(w) offers a basis for giving precise information
about the depth dimension of the object. For example, in the case of a two-frequency source, fringes
that approximately represent the contours of constant depth are present in the reconstructed object.
FILM TRANSFER CHARACTERISTICS
In holography, photographic film plays the role
of both a square-law detector and a spatial storage
device or recorder. In an ideal recording, the intensity of the sum of two spatially modulated coherent
waves is recorded so that a linear relation is obtained between the intensity and the specular amplitude transmission of the resulting recording. On
subsequent readout using a coherent interrogating
beam, the original incident wave amplitudes can be
faithfully recreated from the stored data.
It is well known that if one uses photographic
film in the linear region of the D-Iog E curve, a twostep recording process with a gamma product of two
gives a linear relation. 5 However, the efficiency of
this type of recording, in terms of the brightness of
the reconstruction, is low and the process is difficult
to accomplish with good fidelity at high spatial
frequencies.
A more straightforward practice is to use a onestep process with exposure versus amplitude trans-

46

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

mission as the photographic transfer curve, where
exposure is the product of the light intensity and
the time of exposure. The amplitude transmission
is defined as

Ta

=

3.6
3.2
2.8

2.4

(~)Y2

(9)

10

>-

l-

where I' is the light intensity transmitted by the
recording while 10 is the total intensity of the coherent interrogating beam. Here we assume that
the amplitude transmission is a real function which
requires that the thickness variations of the film be
negligible or that the film be immersed in an index
matching fluid during readout.
Figure 2 shows the exposure-transmittance (E-Ta)
curve for a high-constrast film used in wavefront

e;;

2.0

1.6

z
~ 1.2

.8

bios point

.4

04---------~----------~----~~---

200

400

1800 2600

1000
LOG EXPOSURE

Figure 3. Exposure vs amplitude transmission curve. Kodak
649F plate, exposed with HeNe laser lRght (6328),
developed in D19 for 12 minutes at 68°F.

1.0

-

.s

c
0

U)
U)

·s

.6

bias point

U)

c

0

~

Q)

.4

-0
:J

==Q.
E

-

.2

0

0

I-

o+-~--~--~~--~~~~--~~--~~

o

200

600

1000

1400

ISOO

2200

E (exposure)

Figure 2. Log exposure vs density curve. Kodak 649 plate,
exposed with HeNe laser light (6328), developed in
D19 for 12 minutes at 68~F.

the D-Iog E curve is of interest only as a means of
relating conventional sensitometry to this appllication .
The linearity of the E- Ta curve mentioned above
is the same type of inverse linearity achileved with
a vacuum tube, that is, linearity about an operating
bias point. This poses no problem since the intensity functions of interest contain a bias term which
can be scaled to coincide with the operating point of
the E- Ta curve. That the linearity is inv,erse is ·of
little consequence for the type of wavefront relconstruction considered here since the spatial fluctuations of the intensity are modulated by a spatial
carrier frequency. The net effect is that the fluctuating part of the recorded signal is changed in phase
by 180 and in the readout the amplitude of the
recovered signal is similarly reversed in phase.
However, the recovered signal is ultimatdy sensed
by an energy detector such as the eye or a photocell
and the 180 phase change cannot be detected.
The reference wave Uo and the signall waVie U
combine at the recording surface to produce the
intensity
0

0

reconstruction while Fig. 3 shows the D-Iog E curve
for the same film. One observes from these figures
that there is a considerable region on the E- Ta curve
over which approximate linearity is achieved. Also,
this linear region does not coincide with the linear
region of the D-Iog E curve, but corresponds with
the toe and the lower part of the linear region of the
D-Iog E curve.
From these observations it is clear that the Dlog E curve is of little interest in wavefront reconstruction. Generally, a film which is optimally
recorded for wavefront reconstruction will be underexposed by conventional standards. Also, it is
apparent that attempts to achieve a specific "y of

1 = 1 Uo

Letting Uo = keiaX,
1

=

k2

+

+ U 12

and U
a2

+

=

(10)

ae- i"" we have

kacos(ax

+

cP)

(11)

The exposure time is chosen so that the product of
the constant part of Eq. (11) and the tim'e is equal
to Eo, the operating bias point on the T(Ji-E curve.
The amplitude transmission of the film is then made
up of a constant part, To, and a spatially fluctuating

47

REQUIREMENTS FOR HOLOGRAM CONSTRUCTION

part g(x,y) and is given by
Ta(x,y)

=

To

Using (14) this can also be written as

+

(12)

g(x,y)

R(u, v)

= cfJ {[ To

- Kei[aX+I/I(x,y»)

- Ke-/[ax+I/I(x,y»)]* H(x,y»)

If k is large compared to a(x,y) then the exposure
will be confined to the linear portion of the Ta-E
curve and the transmission Ta is
Ta(x,y) = To - (jt{a 2 (x,y)

+

2ka(x,y)cos[ax

¢(x,y)]} (13)

Effects of Film Resolution

To study the effects of the film resolution we assume that the amplitude of the reference wave is
sufficiently larger than the signal so that we achieve
a linear transfer. Under this condition, k is large
compared to a(x,y), a 2 (x,y) is small compared to
2ka(x,y), and Eq. (13) can be rewritten as

+ ¢(x,y)]}

(14)

Since we are assuming linearity, we can take into
account the film resolution by assigning an impulse
response to the film and treating the film as a device
in a linear system. The ideal transmission of the
film, Ta , is modified by the response of the film and
the result is given by
Ta(x,y)* H(x,y)

(15)

where H(x, y) is the appropriately defined impulse
response of the film and * denotes the convolution
operation.
The physical effect of the frequency transfer characteristics of the film is most easily illustrated by
considering film resolution as it affects Fraunhofer
diffraction holograms. In this type of hologram the
complex wave U is the Fourier transform or the
Fraunhofer diffraction pattern of the object. Thus,
a(x,y)e-//fI(x,y) = [a(u,v)] where a(u,v) is the object
which is to be stored as a hologram and later reconstructed. The reconstruction, in this case, is
performed by placing the photographic record in a
collimated beam of coherent light and, with a lens,
taking the Fourier transform of the -record. The
result, the light amplitude distribution at the back
focal plane of the lens, is given by

o

R(u,v)

=

where K = 2{jtk.
Performing the Fourier transform operation we
obtain
R(u,v) = Too(u,v) -, Ka(u - a,v)H(u,v)

+

where t is the time exposure and (j is the slope of the
Ta-E curve at the operating bias point Eo. Thus,
we have achieved a linear transfer in the sense described above.

Ta(x,y) = To - {jt{2ka(x,y)cos[ax

(17)

Ofra(x,y)* H(x,y»)

(16)

- Ka( -u-a, -v)H(u, v)

(18)

The_ second and the third terms of this expression
are usual images, displaced by ± a, from the lens
axis, which one expects; however, the images are attenuated by the modulation transfer function of the
film.
This situation is quite different from the usual
effect of the film transfer function, which is to cause
a loss of resolution through attenuation of the
higher spatial frequency components. Here, the
resolution is unaltered by the transfer function
curve; instead, the image is attenuated by an
amount proportional to its angular displacement
from the reference beam, axis. This effect, of the
film transfer function, is to cause a narrowing of
the field over which the reconstruction can be
viewed.
Effects of Nonlinear Recording

In order to increase the brightness of the reconstruction it is desirable to make the amplitude k, of
the reference beam about the same magnitude as
the amplitude of the signal, a(x,y). However, if this
is done, the recording is no longer linear. The effect
of this nonlinear recording can be analyzed by using the characteristic function technique for handling nonlinear circuits. 6 Let the input to the nonlinearity be E 1 (x,y), the original exposure, E(x,y),
with the bias removed. Then the output from the
nonlinearity is some nonlinear function of this input
given by -g(x,y). Then by expressing -g(x,y) as
an inverse Fourier transform we have
-g(x,y)

=

=

G[E 1 (x,y)]

1

00

_1
G(w)eiIllE,(X'Y)dw
(19)
211"-00
where G is the Fourier transform of the nonlinearity, G, and E 1 (x) = ta 2 (x,y) + 2tka(x,y) cos [ax +
¢(x)]. After substituting E1 in Eq. (19) we have
..-g(x,y)

=

48

PROqEEDINGS-SPRING JOINT COMPUTER CONFERENCE,1966

Expanding part of the expopential term using the
Jacobi-Anger formula 7 we have
-g(x,y) =

'"
L
Hj[a(x,y)]cosj[ax + ~(x,y)]
j=O

(21)

The intensity at the hologram using a plane reference wave, keiaX, is given by
I(x) = k 2 + a 2(x)

cos [ax +

2E~ (i)j

2ka(x)cos[ax

~(x)] (27)

+

where

where
Hj[a(x,y)] =

+

[",'" G(w)e i [/a"j"'J j [2tkaw]dw

L

~(x)

1

·amsin(ax + [A (x - f3m)2 + Om])

m

(22)

and where J j is the Bessel function and EO = 1, Ej =
2 (j = 1,2, ... ). The resulting transmission of the
record is
T.(x,Y)

=

To - {Ho[a(x,Yl]

+

t;

H j [a(x,y)] cosj [ax

+

4>(X,Y)]} (23)

Some general observations can be made about the
recording process from Eqs. (13) and (23). For j =
1, we have preserved the phase of the original signal
while distorting the amplitude. If the spatial carrier
frequency is large compared' with the spatial bandwidth of the signal, the various terms in the series
(23) will not contain overlapping spatial frequencies
even though the amplitude distortion tends to widen
the bandwidth of each term. In cases where a(x,y)
is a slowly varying function or a constant, most of
the information is contained in the phase part and
the nonlinearity is of no importance.
As an example, consider the case where the object consists of many randomly distributed points
of amplitude am and with random phase Om. For
simplicity, we take these points along a line parallel
to the hologram so that we can reduce the problem
to one-dimensional notation. The total amplitude,
due to the points at the hologram plane is
a(x)e-i~(X)

=

L

amei[A(x-~m)2+l/mj

(24)

m
Here we have approximated the phase of each point
at the hologram plane by a quadratic phase term.
Then
a(x) =

.

[L a~ + 2:E
_ mA (x _

a",a.cos [A (x -

13.~;· + Om _

13m)'

0.]] 1/'

where m = 1,2, ... , N - 1 and n = (m + 1), ... , N
in the second sum. We can also write

L
~(x)

= tan-

1

am sin [A (x - f3m)2

+

Om]

m

----------

L

m

amcos[A (x - f3m)2

+

Om]

Suppose _we take for the Ta -E curve of the film
a hard-limiter.fhis is an extreme case since film is
never this nonlinear; however, this nonlinearity can
be handled simply and it illustrates the eifeets.* For
a hard-limiter!ff '(w) =

(26)

~L

where L deJfines the

IW

--

transmission limits of the film.
.
for G (w) In (22) we have for H j
Hj[a(x)]

E

1

L

1r

Then substituting

.

ei[/a"j",
- - Jl [2tkac.c)]dw{29)
w

00

= _l_ (i)l-l.

_00

If we expand the integrand using a power-·series expansion we have for Ifj
Hj[a(x)]

=

EL ~ (;)I'+l-I[ta 2]1£
_J_

~

1r

Jl.=o

p.!

. I:,',wl'-iJl[2tkaw] dw

(30)

We assume that ta 2 is small enough when compared to 2tka so that only the first two terms of the
power-series expansion need be used. We also assume that the carrier frequency, a, is sufficiently
high that the coefficients H l , for j = 0 and j :> 1,
can be dropped since the spatial frequencies will not
overlap with the terms HI. Then the coefficient of
interest HI (that coefficient associated with the: reconstructed images) is
Hda(x)

2L

(31)

Then, the part of the recording needed for re(;onstructing the points is

2L

(25)

(28)

a(x)

T~(x) = -

cos [ax +

~(x)]

(32)

1r

*Strictly speaking the hard-limiter or any other odd symmetric limiter cannot be a true model for the film since film
does not have odd symmetry about the bias point. However,
the even contributions from the film nonlinearity are usually
much smaller than the odd ones. Other models which can be
used are the error function limiter (see A. Kozma, "Photographic Recording of Spatially Modulated Coherent Light,"
J. Opt. Soc. Am. (in press) or a 11th law device 6 ).

49

REQUIREMENTS FOR HOLOGRAM CONSTRUCTION

or, using (25) and (28) we can write

T~(x)

=

I: am sin (ax + [A (x -

2L

f3m)2

+ Om])

m

I:
a~ + 2 I: [amancos [A (x m
m,n

I

f3m)2 -

A(x

- f3n)2

+ Om -

Onll]

(33)
1/2

Since sin a = -cos(a + 7r/2) we see that the
numerator of Eq. (33) is the correct transmission
function needed to accurately reconstruct the
points. If the amplitudes of the points are all of
about the same magnitude (the object is of moderate dynamic range), then the first sum of the denominator is significantly larger than the double
sum. To see why this is true we can write the denominator of (33) as

ods. There are indeed various other possible
approaches, several of which we will proceed to
describe. All the ones described here involve lens
systems and most involve various forms of spatial
filtering.
The twin image term arises from the attempt to
record a complex function using a phase-discard-

The second term in the brackets is a large sum of
sinusoids with small amplitude and random phase.
In the limit as the number of points considered become large this term will go as the square root of
2a m a n h' .
- - 2 - w lch IS«
1. In this case, the denominator
'1; am
reduces to approximately a constant and the object
points are reconstructed without distortion.
If one of the points, say aI, in the object is very
much greater than the other points combined then
this is not the case. In this case the denominator
can be expanded as

The traditional objects used in
ing method.
holography have generally been transparencies,
which normally are real functions; however, the
Fresnel diffraction patterns are complex. The generation of a complex function from a real one is
explained by considering that the space between the
object and hologram planes treats the signal as an
all-pass dispersive filter; the phase relations in the
signal are thereby altered.
Accordingly, we might consider producing holo-

(34)
A straightforward but tedious calculation shows
that, in this case, the weaker object points will be
suppressed relative to the point with amplitude a 1
and that false points will appear'in the reconstructed
image.

grams through a process having a real impulse response, which would therefore retain the real nature
of the original signal. Figure 4 shows such a hologram-producing system. The signal (a transparency) is introduced at PI, and is imaged at P J • A
spatial filter having the property F(w) = F*( -w)

OTHER FORMS OF HOLOGRAPHY
The holographic process, ever since its invention
by Gabor, has been beset with the problem of eliminating the twin image that arises because of incomplete recording of the phase relations in the wave
fi~ld.
The off-axis reference or spatial carrier
method has proved an effective solution to the problem. With this method now convincingly demonstrated,. we turn our attention to alternative meth-

~ ~ ~
0

0

Figure 4. Optical system for generalized holograms.

50

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

is placed at P2; this ensures a real signal at P3 .
The signal is thus recorded with completeness without the need for a carrier-frequency reference beam
or other phase-preserving technique. We record
linearly in amplitude, producing
Uo + U = Uo + s* f

(35)

where f is the impulse response of the spatial filter
F, and s is the signal transparency, which is converted into the function U =, s* f.
In the reconstruction process, we image the hologram signal through a second spatial filter with
impulse response g(x), or transfer function G(w).
We require that, to within a ~onstant,

or
=

F(w)

=

e i4J (IIII)

(46)

cjJ(-w)

=

-cjJ(w)

(47)

with

Thus, if we want a filter that produces a re~al output
when the input is real, and if we want the: function
1/ F to be the filter reverse F( -w), and if the filter
is to be purely phase, then we require the phase factor to be antisymmetric, cjJ( -w) = cjJ(w). An example of this case is a lens, one half of which is concave and the other convex, as shown in Fig. 5. To a

(36)

SFG = S

F(w)G(w)

from which we derive

(37)

1

For convenience, we can let F and G be pure phase
filters,

I

I

F(w)

=

e i4J ,(IIII)

(38)

G(w)

= e;4J·(IIII)

(39)

Figure 5. The antisymmetricallens used in an optictll system for
generalized holograms.

(40)

first-order approximation, we have F(w) = e IK",2 for
w > 0, and F(w) = e
for w > O. Thus we may
write

(41)

(48)

thus we require

or

It is often convenient to use the same filter both
for making the hologram and reconstructing it.
Two cases arise: The signal may be passed through
the filter in the same manner in both cases, or the
signal (or the filter) may be reversed. In the former
case, we require for reconstruction that

I FI

2

=

(42)

from which we obtain
(43)
where E(W) is a function that assumes the value 0 or
1 and satisfies the condition E( - w) = - E(W).
Alternatively, if the reconstruction is to be made
with the filter of the signal reversed, the reconstruction condition becomes
F(w)F(-w) = 1

(44)

or sincef(w) = F*( -w), we have
F(w)F*(w)

= I F 12 =

1

(45)

_IK1III2

Clearly, the fabrication of such a lens is not practicable, since both halves must be matched to within
a fraction of a fringe. One might consider using a
symmetrical Fresnel zone plate; it obviously satisfies
the condition F (w) = F * ( - w). U nfortunatehy, it
fails to satisfy the requirement I F I = constant.
There is a feasible solution, however. '''ith a carrier-frequency method used in making holograms,
we may substitute for the required function e tJ( 1l1li1 '"
its real function equivalent 1 + cos (aw + K I Ull I w);
the first-order diffracted wave of this func:tion, written on a transparency, yields the desired filter function. A straightforward analysis shows that the required function can be produced, for a cylindrical
Fresnel zone plate (focal power in one-dimension
only) by removing a portion from the center of the
zone plate and joining the two outer portions.
Another method of producing a rea.l function
diffraction pattern involves the use of two identical
objects, positioned so that their summation produces a diffraction pattern with constant phase (Le.,

REQUIREMENTS FOR HOLOGRAM CONSTRUCTION

the diffraction pattern is real). A well-known
method of accomplishing this is to use a lens, which
takes the Fourier transform of the object. By making the signal symmetrical, its Fourier transform
will be real. Placing a strong point source on axis
in the object plane then causes the Fourier transform to be positive as well, and thus recordable
without the loss of phase. This technique is similar
to methods used in crystal analyses by X-ray dif~
fraction. A positive real Fresnel diffraction pattern
can be generated by displacing the object transparencies in the axial dimension, but maintaining
symmetry about the point source which supplies the
bias.
REFERENCES
1. R. Powell and K. Stetson, J. Opt. Soc. Am.,
vol. 55, p. 1593 (1965).
2. E. Leith, J. Upatnieks, and A. Vander Lugt,
ibid, p. 595.
3. - - and - - , SPIE Journal, vol. 4, p. 3
(1965).
4. M. Born and E. Wolf, Principles of Optics,
Pergamon Press, Bath, England, 1959.
5. D. Gabor, Nature, vol. 161, p. 777 (1948);
Proc. Roy. Soc. (London), vol. A197, p. 454 (1949);
ibid, vol. B64, p. 449 (1951).
6. W. B. Davenport and W. L. Root, An Introduction to the Theory of Random Signals and Noise,
McGraw-Hill, New York, 1958, Chap. 13.

51

7. W. Magus and F. Oberhettinger, Functions of
Mathematical Physics, Chelsea, New York, 1949,
p.I8.

BIBLIOGRAPHY
Baez, A. V., J. Opt. Soc. Am., vol. 42, p. 756 (1952).
Duffieux, P. M., L'Integrale de Fourier et ses Application a l'Optique, chez l'Auteur, Universite
de Besancon, Besan~on, France (1946).
EI-Sum, H. M. A., "Reconstructed Wavefront Microscopy," PhD thesis, Stanford University,
Nov. 1952 (available from University MicroEI-Sum, H. M. A., and A. V. Baez, Phys. Rev., vol.
99, p. 624 (1955).
Haine, M. E., and J. Dyson, Nature, vol. 166, p. 315
(1950).
Haine, M. E., and T.Mulvey, J. Opt. Soc. Am., vol.
42, p. 763 (1952).
Kirkpatrick, P., and H. M. A. EI-Sum, ibid, vol. 46,
p. 825 (1956).
Leith, E., and J. Upatnieks, ibid, voL 53, p. 1377
(1963); vol. 54, p. 1295 (1964).
Lohmann, A., Opt. Acta (Paris), vol. 3, p. 19 (1956).
Rogers, G. L., Proc. Roy. Soc. (Edinburgh) vol.
A63, p. 193 and p. 313 (1952); vol. A64, p. 209
(1956).
Papers presented at Washington Conference on
Electron Microscopy, National Bureau of
Standards, Nov. 1951.

APPLICA TION OF COHERENT OPTICAL TRANSDUCERS TO OPTICAL
REAL-TIME INFORMATION PROCESSING*
Dean B. Anderson
Autonetics, A Division of North American Aviation, Inc.
Anaheim, Ca-'ifornia

tronic art, it is essential that the access time to
current data be reducetl to a small fraction of a second without compromise of data capacity. Furthermore, as real-time optical processing is achieved, a
requirement for an optical adaptive capability will
also arise.
Optical information processing systems require
the functions of amplification, modulation, and detection to be performed throughout the signal spatial field. These functions can be effectively synthesized by an array of coherent optical transducers
extending across the signal spatial field provided
that the spacing between the individual transducers
and their size are comparable to the radiation wavelength. A quasi-microwave approach to coherent
infrared transducers and their· arrays using microphotolithographic techniques is delineated.

INTRODUCTION
Interest in optical information processing stems
from the never-ending effort to increase data handling capacity and to improve the interface with
human senses. The manipulation of two-dimensional data in an image format and processing in a
parallel organized integral transform distinguishes
the optical analog computer from its counterpartthe electronic digital computer processing onedimensional data in a sequential manner.' The
optical analog computer is admirably suited to performing linear operations such as matrix products,
Fourier transform integration, and related correlations and convolutions. The photographic plate is
usually employed as the input, memory, control
function, and output to demonstrate optical information processing concepts.
The high' signal sensitivity, large data storage,
and wide spatial bandwidth are the attractive characteristics of a photographic emulsion. However,
the time required to develop the latent image to
obtain access to data is both dismally slow and
cumbersome in comparison to electronic means.
The chemical amplification encumbrance has led to
consideration of thermoplastic and ultrasonic delay
line recording as an alternative with the attendant
compromise of serial data input. If optical analog
computers are to compete with the developing elec-

OPTICAL OPERATIONS
The application of communication theory to physical optics has provided the foundations of optical
information processing. 2,3 The basic image transformation operation is illustrated in Fig. 1. The
spatial signal is usually introduced at the object
plane by coherent plane wave illumination of a
photographic transparency. The resulting diffraction pattern in the Fraunhofer region is the Fourier
transform of the spatial signal. The use of a lens,
(focal length F) permits the scaling of the Fraun-

*Work supported in part by the Office of Naval Research

53

S4

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

~F
F'~
'II

y

DISTRIBUTION
(OBJECT)
PLANE 1

APERTURE

(LENS)
PLANE 2

FREQUENCY
(IMAGE)
PLANE 3

Figure I.

Basic image transformation operation.

hofer diffraction region to a more convenient location at the focus of the lens. The Fourier transform
of the spatial signal is formed in the lens image
plane as a spatial frequency spectrum. For some
applications, this spectral analysis is the desired
output.
If various shaped aperture stops or blocks are
inserted into the frequency plane, it follows that the
output signal distribution from a second transform
lens system will be altered by the filter impulse response. In fact, a lens acts as a low-pass filter.
Matched filter enhancement of the signal-to-noise
ratio can be demonstrated by inserting the complex
conjugate of the signal transform into the frequency
plane. The realization of a' complex-valued spatial
function in a photographic transparency is extremely difficult due to the required phase response.
An interferometric approach has been introduced
to record complex functions on photographic
plates. 4•5 The addition of a reference wavefront
as a carrier to the spatial signal produces in a photographic plate one component resembling a diffraction grating. The grating frequency is proportional

to the angular separation between signal and
reference beams. An interferometric recorded spatial filter of the symbol t is shown in Fig. 2.
The operations of convolution and correlation
can be realized by further compounding the system
with additional image transformations. The results

Figure 2.

Interferometric spatial filter.

COHERENT OPTICAL TRANSDUCERS TO OPTICAL REAL-TIME INFORMATION PROCESSING

from use of the spatial filter, Fig. 2, for pattern
recognition is shown in Fig. 3. The diffraction grating in the spatial filter has provided a convenient
means to separate, by orders, the various components of the matched filter process. Using the symbol t as the input, three components are observed
in the output: 1) the input convolved with the filter
impulse response, 2) a crude image reconstruction,
and 3) the input cross-correlation with the filter
conjugate impulse response-indicative of recognition.
Gabor's6 holography has been rekindled anew
with introduction of interoferometric methods because of the vivid three-dimension reconstruction of
the scene with parallax. 7 A hologram is a spatial
filter for a particular scene when coupled with the
transform in a human eye. The hologram, when
illuminated by a delta-function distribution (point
source), which has a uniform spectrum, allows passage of only those spatial frequencies which will
form the reconstructed wavefront and thus the desired image. For optical pattern recognition, the
holography process is inverted so that the unknown
object serving as a source illuminates a spatial filter
producing a single point image (correlation point).
Figure 3 also shows the symbol reconstruction using
the spatia] filter in Fig. 2 as a hologram. Both the
real and virtual images of the symbol are apparent.

55

Current optical pattern recognition techniques require a rigorous matching of the spatial filter and
the input. Factors such as position, scale factor,
orientation aspect, and inversion severely compromise the recognition fidelity. Some problems
can be solved by restricting the list of symbols to a
particular style.
Consider the problems of recognition and tracking of hurricanes in cloud patterns recorded by
satellites. Pattern characteristics peculiar to the
hurricane spiral and invariant with observation conditions are obviously obscured by noise. Therefore,
during the learning phase it will be necessary to
assemble a large catalog of spatial filters from successive cross-correlations of known hurricane spectra. From the catalog of spatial filters, a characteristic set are selected and the decision criteria
established. The correlation of unknown cloud
patterns with the stored filters provides a basis of
comparison in the recognition process. Of the
utmost importance is the optimization of the recognition process by including an adaptive feature; that
is, a measurement of the correlation point amplitude
ratio with respect to the side lobe skirt level and
distribution to alter the filters within the classification set. This means that techniques must be developed to alter the spatial filters dynamically so that
they can change their functional properties with
time in accordance with new data.
SPATIAL MODULATOR
The requirements of a spatial modulator to dy, namically implement optical spatial filters are briefly
outlined. A spatial modulator is schematically
illustrated as an array in Fig. 4. The functions of
amplification, modulation, and detection must be
performed throughout the aperture in a linear
fashion with respect to the control signal, while the
quantized elements of the array must operate independently without crosstalk. A spatial modulator
may operate in either a transmission or reflection
mode and may alter either the amplitude or phase
characteristic.
Factors which influence the quantization of the
spatial modulator into an array are available from
antenna theory. Some of these are:

Figure 3.

Spatial filter operations.

1. The half period factor (T) of the highest
spatial frequency component must be
greater than the array period which
must be greater than one-half the wavelength. (T12 > S > A/2)

56

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

/

~IIII
~I
Figure 4.

Spatial modulator.

2. The array factor giving rise to a grating
10 be period must exceed the angular
diameter of the lens :(see Fig. 1) for an
unambiguous operation. (Xis ~ DI F)
3. The beamwidth of a single element
must exceed the angular diameter of the
lens to be included .within the integration" (2Xld ~ DI F)
4. Random phase and amplitude errors
should be minimized to preserve the dynamic range in the optical system.
A wide variety of bulk interaction phenomena
exist to alter the optical properties of materials by
application of electric and magnetic fields or by
mechanical stress. Most of these interaction phenomena are weak -even in high fields. It is also
difficult to induce from the. outside the spatial perturbations. Therefore, a bulk spatial modulator
without quantization and with a ·significant spatial
bandwidth is impractical. However, heteroepitaxial
semiconductor, ferroelectric and ferromagnetic 8 materials imbedded with conductor arrays are a
promising approach.
Current integrated circuit technology provides an
approach to quantize the array. Moss9 has analyzed
various methods of modulating infrared radiation
using semiconductor materials which will respond
rapidly. A quasi-microwave approach using semiconductor diode junctions which may be assembled
into arrays for modulation and amplification will
be discussed in the following sections. The deple-

tion layer in diodes is conSIdered as an optical
transmission line where its length is controlled by
the applied voltage. Current integrated circuit te:chno logy is now becoming interconnection-limi1ted.
The interconnection limitation also prevails in an
optical spatial modulator.
However, t.here are
several means to circumvent the problem. A variety
of photoeffects occur in semiconductor material and
junctions when the illumination radiation wavelength is shorter than the band edge. Of particular
interest here is the photovoltaic effect in a junctilon.
The electron-hole pair created by absorption near
the junction is separated by the interna!l fieldl at
the junction and thus alters the optical properties
of the depletion layer for radiation longer than the
band edge. Through this process, it should be possible to control the optical spatial modulator diode
array by illumination of the array with a second
beam containing the spatial control signal. A similar control of a parametric amplifier array is also
possible through pump excitation. The photodetector array art is currently well establilshed and
need not be discussed.
PASSIVE INFRARED WAVEGUIDE
Implementation of an optical spatial transducer
requires interconnection by a waveguide which
preserves the state of polarization and mode! of
propagation" Optical dielectric waveguidles of circular and planar cross section have been demonstrated and reported in the literature. 10- 12 Control of
a specific mode of propagation is best accomplished
in transmission line with dimensions comparablle to
the wavelength. The binding of the electromagnetic
field to the dielectric structure depends upon the
relative index of refraction of the transmission
medium being greater than the surrounding environment. An active and a passive infrared waveguide structure is illustrated in Fig. 5. The rectangular dielectric image line supported on a
reflecting surface is ideally suited for coupling and
integration with optically active devices such as
semiconductor junctions. 13
As an example of dielectric image line waveguide,
Fig. 6 shows a "rat race" hybrid junction fOlrmed
photolithographically. The dielectric is thermally
grown silicon dioxide on a highly doped, poliished
silicon substrate. The dielectric cross section is
0.6 x 2.0 microns and thus is useful in the near
infrared region.
The results of an experiment demonstrating the
propagation of a single, lowest-order mode through

COHERENT OPTICAL TRANSDUCERS TO OPTICAL REAL-TIME INFORMATION PROCESSING

57

b-DEPLE'l'ION LA YER

DIELECTRIC IMAGE LINE

Figure 5.

DEPLETION LA YERW A VEG UIDE

Passive and active infrared waveguide structures.

a dielectric image line waveguide are shown in
Fig. 7. A cleaved cross section of dielectric image
line (0.3 x 1.2 micron cross section) and substrate
was used for the photomicrographs. A Lloyd's
mirror l4 demonstration of interference fringes from
the image line waveguide substrate is shown in the
upper figure. The black region is the silicon substrate. The visibility of the fringes immediately
adjacent to the substrate surface disappears because
the light source is polychromatic and temporally

incoherent. The presence of the waveguide is clearly
apparent. The discontinuity in the fringes immediately adjacent to the substrate is due to the reflection
from the outer surface of the dielectric image line
waveguide. Note the subdued interferenc~ normal
to the substrate resembling a Fraunhofer pattern.
This is due to reflection from the dielectric image
line waveguide at greater depth. The Lloyd's mirror
illumination has been removed and repla~ed by a
laser beam focus"ed on the dielectric image waveguide in the lower figure. The transmission of a
single mode through the waveguide is apparent. The
circular radiation distribution is due to the dipolar
field and the offset is due to the image phenomena.
The substrate surface in the lower figure is indicated by some scattering at the focused input
coupling.
ACTIVE INFRARED WAVEGUIDE

Figure 6.

Dielectric image
hybrid junction.

line

waveguide- "rat

race"

The depletion layer in a reverse-biased semiconductor junction diode will also guide optical
waves. 15 - 19 The free carriers in both nand p give
rise to a solid state plasma having a slightly reduced
index of refraction which confines light propagation
in the depletion layer. In the back-biased planar
diode, the thickness of the depletion layer sandwiched between nand p regions is controlled by the
applied bias field and may be comparable to infrared wavelengths. A depletion layer waveguide is a
useful active device because it provides an electronic
means to control an optical wave phase velocity.

58

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

the forbidden energy gap. Lattice absorption and
Reststrahlen bands exist in the far infrared region.
The intervening region is comparatively transparent
except for impurity and free carrier absorption. The
differential index of refraction between the various
layers in a depletion layer is comparativdy small
(10- 2 to 10- 4 ) so that a wave field is weaklly bound
to the junction. Careful attention must be given to
the selection of doping elements, their concentration and gradient, and the host lattice defects because fields surrounding the junction will cause absorption, diffraction, and scattering losses.
The work of Nelson and Reinhartl° is illustrated
in Fig. 8 which shows the transmission through a
GaP diode junction. Although their work exploited
the linear electro-optic effect for modulation, this
photograph vividly illustrates the changing dimensions of the depletion layer waveguide as a function
of the applied bias field.
ELECTRICAL

GALLIUM PHOSPHIDE
DIODE

Figure 8.
Figure 7.

Results of Lloyd's mirror experiment showing
transmission through dielectric image line waveguide.

Obviously, a depletion layer used as a dielectric
waveguide or resonator must be used in the spectral
region where it is transparent. Most semiconductors are opaque in the visible region but are transparent in an adjacent infrared region. The intrinsic
absorption is due to excitation of electrons across

Transmission through GaP diode junction depletion layer waveguide.
(By permission of Bell
Telephone Laboratories. See Ref. 20.)

There are various other mechanisms to control
the phase velocity in a depletion layer waveguide
besides that of geometry. One is the electro-optic
effect as above which leads to birefringenice in the
index of refraction. Another is the change of the
index of refraction below the band edge of a semiconductor due to the dispersion associated with the

COHERENT OPTICAL TRANSDUCERS TO OPTICAL REAL-TIME INFORMATION PROCESSING

Franz-Keldysh effect. The Franz-Kelkysh effect is a
shift of the band edge to a longer wavelength because of the application of an intense electric field.
The various considerations which enter into the use
of depletion layer waveguide as an active optical
circuit element suggest a 111-V semiconductor material and a wavelength just short of the band edge.
A depletion layer boundary may also be used in
the reflection mode as a movable mirror. A photo
field effect transistor shown in the photomicrograph
of Fig. 9 has been 4sed for a demonstration experiment. An alloy gate contact and an etched channel

Figure 9.

Photo field effect transistor.

were formed in the silicon slice between source and
drain. The use of a preferential etch, the alloy
junction technique, and oriented silicon has led to a
high degree of parallelism between the etched channel surface and the depletion layer boundary. The
pinch-off characteristic curve is indicative of the
optical quality in the boundary planes and shows
that the depletion layer can be driven into planar
contact with the channel surface. Experiments
show that the position of the reflected beam from
the etched channel front surface and the depletion
layer is controllable by the applied gate bias.
Illumination of the channel also provided a control
of the beam position.
PARAMETRIC INTERACTION
To provide optical amplification and a means to
control an operation by an optical logic "field, the

59

characteristics and feasibility of infrared parametric
interactions are discussed. Parametric interactions
involve the mixing of one or more signal frequencies
with an intense source called a "pump" producing
sum and difference combinations. The Manley and
Rowe 2l energy relations show that there are two
basic amplification mechanisms distinguished by the
manner that the signal and pump frequencies are
allowed to combine. Further discussion will be
restricted to the difference combinatioh which
creates an effective negative absorption and results
in a signal spectrum inversion.
Parametric interactions depend upon a reactive
nonlinear phenomena. The nonlinear capacity of a
varactor diode is due to the change of the depletion layer thickness. In the infrared region the
carrier inertia prevents a similar response; however,
the index of refraction of some materials have a
nonlinear behavior in intense light. The polarization nonlinear susceptibility of 111-V semiconductor
compounds is several orders of magnitude larger
than the piezoelectric crystals which have been used
for optical parametric amplification.
Recently, positive gain has been realized in difference frequency parametric interactions by Wang
and Racette 22 using NH 4H 2P04 and by Giordmaine
and MiHer 23 using LiNb0 3. They used a Q-spoiled
solid state laser to pump a nonlinear cyrstal under
index matching to efficiently produce a second
harmonic. After filtering and collimating the beam,
the harmonic was applied as a pump to a second
nonlinear crystal to obtain quasi-degenerate operation. Birefringence in the crystal was used to balance the index of refraction dispersion to obtain
matched phase velocities in their traveling wave
circuit.
A quasi-microwave approach24 which differs significantly from the above investigations using piezoelectric crystals is currently under way. A planar
section of depletion layer waveguide is used as a
multimode resonator tuned to the signal idler and
pump frequencies.
The dimensions have been
selected sufficiently small to prevent other undesirable resonances. The requirements for index matching in a traveling wave structure are removed by
the use of low-order modes within the resonator
wherein the fields and geometry defining the boundary conditions establish resonances which are algebraically related to the pump frequency. Within
the constraints of known material technology, the
available power and emission lines from continuous
wave gas lasers, and for an acceptably high nonlinear susceptibility, gallium arsenide is preferred

60

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

for diode fabrication. The current state of microphotolithography extends the quasi-microwave approach into the one-micron region and thus matches
with gallium arsenide. Signal coupling to the
amplifier will be provided by image line dielectric
waveguide. An optical circulator is desirable to
separate the input and output ports and provide a
degree of stability. The development of heteroepitaxial ferrite and the associated photolithography
completes the requirements so that a circulator may
be integrated with the optical parametric amplifier.
CONCLUSION
It is hoped that a future report will verify that the
quasi-microwave approach to optical information
processing is feasible by demonstration of operation. At this point in the development, interest may
be kindled for the extension into adaptive image
processing by an array where spatial logic is
achieved optically.

ACKNOWLEDGMENTS
Although the conclusions are those of the autho~.,
he is indebted to many colleagues at the Autonetics
Research Center. In particular, sincere appreciation
is due to Mr. R. R. August for the many stimulating
discussions of optical semiconductor technology, to
Dr. W. T. Cathey and Mr. J. E. Rau for use of the
spatial filters, and to Mr. D. Medellin for the
photomicrography.
REFERENCES
1. J. T. Tippett et aI, eds., Optical and ElectroOptical Information Processing, MIT Press, Cambridge, Mass., 1965.
2. E. L. O'Neill, "Spatial Filtering in Optics,"
IRE Trans. Inform., T., IT-2, p. 56 (1956).
3. L. J. Cutrona et aI, "Optical Data Processing
and Filtering Systems," ibid, IT -6, p. 386 (1960).
4. A. Vander Lugt, "Signal Detection by Complex Spatial Filtering," ibid, IT-I0, p. 139 (1964).
5. E. N. Leith and J. Upatnieks, "Reconstructed
Wavefronts and Communication Theory," J. Opt.
Soc. Am., vol. 52, no. 10, p. 1123 (1963).
6. D. Gabor, "Microscopy by Reconstructed
Wave-Fronts," Proc. Roy. Soc. (London) Ser. A,
vol. 197, p. 454 (1949).
7. E. N. Leith and J. Upatnieks, "Wavefront
Reconstruction with Continuous-Tone Objects,"
J. Opt. Soc. Am., vol. 53, no. 12, p. 1377 (1963).
8. G. R. Pulliam et aI, "Epitaxial Ferrite Mem-

ory Planes," 1965 NAECON, Dayton, Ohio, pp.
241-245 (1965).
9. T. S. Moss, "Methods of Modulating Infrared Beams," Infrared Physics, vol. 2, p. 129 (1962).
10. E. Snitzer, "Cylindrical Dielectric Waveguide
Modes," J. Opt. Soc. Am., vol. 51, p. 491 (1961).
11. N. S. Kapany and J. J. Burke, "Dielectric
Waveguides at Optical Frequencies," solid/state/
design, vol. 3, p. 35 (1962).
12. J. Kane and H. Osterberg, "Optical Characteristics of Planar Guided Modes," J. Opt. Soc.
Am., vol. 54, p. 347 (1964).
13. D. B. Anderson and R. R. August, "Applications of Microphotolithography to Millimeter and
Infrared Devices," Proc. IEEE, vol. 54, (Apr. 1966).
14. M. Born and E. Wolf, Principles of Optics,
Pergamon Press, New York, 1959, p. 261.
15. A. Yariv and R. C. C. Leite, "DielectricWaveguide Mode of Light Propagation in p-n Junctions," Appl. Phys. Letters, vol. 2, p. 55 (1963).
16. W. L. Bond et aI, "Observation of the Dielectric Waveguide Mode of Light Propagation in p-n
Junctions," ibid, p. 57.
17. A. Ashkin and M. Gershenzon, "Reflection
and Guiding of Light on p-n Junctions," J. Appl.
Phys., vol. 34, p. 2116 (1963).
18. R. C. C. Leite and A. Yariv, "On Mode
Confinement in p-n Junctions," Proc. IEEE, vol.
51, p. 1035 (1963).
19. W. W. Anderson, "Mode Confinement and
Gain in Junction Lasers," IEEE Journal of Quantum
Electronics, vol. QE-l, no. 6, p. 228 (1965).
20. D. F. Nelson and F. K. Reinhart, "Light
Modulation by the Electro-Optic Effect in ReverseBiased GaP p-n Junctions," Appl. Phys. Letters, vol.
5, no. 7, p. 148 (1964).
21. J. M. Manley and H. E. Rowe, "Some General Properties of Nonlinear Elements- Part I
General Energy Relations," Proc. IRE, vol. 44, p.
9041 (1956).
22. C. C. Wang and G. W. Racette, "Measurement of Parametric Gain Accompanying Optical
Difference Frequency Generation," Appl. Phys.
Letters, vol. 6, no. 8, p. 169 (1965).
23. J. A. Giordmaine and R. C. Miller, "Tunable
Coherent Parametric Oscillation in LiNb0 3 at
Optical Frequencies," Phys. Rev. Letters, vol. 14,
no. 24, p. 973 (1965).
24. D. B. Anderson, "Application of Semiconductor Technology to Coherent Optical Transducers
and Spatial Filters," Optical and Electro-Optical
Information Processing, J. Tippett et aI, eds., MIT
Press, Cambridge, Mass., 1965, pp. 221-234.

TIME-SHARING IN THE IBM SYSTEM/360:
MODEL 67
Charles T. Gibson
International Business Machines Corporation
Cambridge, Massachusetts

enables the rapid switching between jobs, or "'timeslicing. "
The Model 67 enables each processor of a multiprocessor system to operate as a single processor
with its own I/O subsystem, or, jointlY with other
processors in a symmetric multiprocessing configuration.
To achieve time-sharing and multiprogramming;
certain modifications to the product line were made.
It is the object of this paper to discuss a typical
configuration of equipment and how it will be used.
Certain areas where the programming systems relate
to the hardware will also be discussed.

INTRODUCTION
The basic architecture of the IBM System/360
makes it well suited to processing in a multiprogramming and multiprocessing environment. The
Model 67 extends this basic architecture to provide
the additional capabilities of an advanced timesharing system.
The Model 67 incorporates .multiprogramming,
multiprocessing, and multiaccess capabilities. Multiaccess allows several users at remote consoles to
communicate directly with the system and to present
a number of applications ranging from conversational compiling to desk calculator functions. M ultiprogramming is defined as the ability to have
several active programs reside in core simultaneously. As soon as one job is finishe...d, or is held up
by an I/O request, or has depleted its time allowance, the next task can begin immediately.
The dynamic relocation feature built into the
hardware facilitates multiprogramming; peripheral
operations will now be just like any other tasks in
the memory. Even without the multiaccess capability, multiprogramming provides much more
efficient utilization of the computer's resources than
in a stacked job operation. For the first time, a
central processing unit is a resource that can be
allocated. With multiaccessing, where some of the
jobs in core belong to remote terminals, the multiprogramming capability is further enhanced as this

CONFIGURATION
Bus Structure
A sample configuration is shown in Fig. 1. The
most significant part of the equipment is the shared
memories. Each memory module has four "tails,"
or buses, with one tail connected to each CPU and
one to each channel controller. A system having
two processors and two channel controllers has four
buses. Each memory module of 262,144 bytes of
750 nanosecond storage is independent and three
memory accesses can occur simultaneously. Conflicts that occur among the several buses connected
to each storage unit are resolved at the storage unit.
This conflict resolution adds 150 nanoseconds to
61

62

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

2067
CENTRAL
PROCESSING
UNIT

2365
PROCESSOR
STORA6E
262, 144 BYTES

2067
CENTRAL
PROCESSIN6
UNIT

2365
PROCESSOR
STORA6E
262, 144 BYTES

2848
CHANN.EL CONTROLLER

HI6~8l~EED

MULTIPLEXOR
CHANNEL

2860-3
SELECTOR
CHANNEL

Figure 1. Configuration of typical Model 67.

2365
PROCESSOR
STORA6E
262, 144 BYTES

TIME-SHARING IN THE IBM SYSTEM/360: MODEL 67

storage access time. Channel controller requests for
storage cycles are given priority over processor requests. No longer is the CPU tied to a particular
memory in the classical configuration. Now, both
channels may be loading two memories simultaneously at the maximum data rates, and there will be
no interference with the CPU's if they operate from
the third module. Likewise, a CPU and channel
could associate with one module in the classical
simplex method. Besides permitting higher data
rates to and from core, and with less interference,
the Module 67 frees the processors from the usual
role of working on a single job until it is done. One
CPU can work on a job in one core until it requires
a routine from .the disk, for example. While the
data transfer is being made, that CPU could process
another job in another module.

Common Routines
With shared storage, both CPU's could access the
same compiler and monitor and could utilize the
same job queues. In order for more than one CPU
to use the same copy of a routine, the routine must
be in reenterable coding. That is, there are no address modification or common storage locations
that would be affected by a second program which
happened to start the routine before the first ended
it. In fact, one job, partly through a routine, might
be interrupted to return after other jobs in the same
CPU had passed through. Reentrancy, therefore,
is a requirement of multiprogramming as well as
multiprocessing.
A parallel reenterable routine is one which can be
executed simultaneously by more than one task. In
Time-Sharing System/360 there is only one copy of
the supervisor in core regardless of the number of
CPU's attached. All of the supervisor is in reenterable coding; some of it parallel reenterable.
In many cases, however, it is impossible or undesirable to have more than one task at a time in a
routine; for example, one that sets or detects bits in
a common table. These routines are consequently
written in a serially reenterable fashion.
To aid in this, a new instruction, Test and Set, is
implemented. Its operation uses the left-most bit of
the specified byte to set the condition code. Simultaneously, the byte is set to all ones before another
access to the same storage is permitted. Test and Set
allows a second processor to check whether the first
has started a serially reenterable routine. In this
way, the first processor job can finish with the routine before allowing its further use. Also, Test and

63

Set is a means of breaking ties between two CPU's
which become available for a new task at the same
moment.

Signaling
For communications through common storage elements, a processor must be alerted when a message
has been prepared for it by another processor. The
extended direct-control feature and external interrupt lines of the Model 67 perform this function.
Associated with the direct-control instructions is
an interface at which eight signals are made available. A signal from one processor is connected to
one of the external interruption lines of another
processor. By means of the Read Direct or Write
Direct instructions, the program in one processor
causes an external interruption in another processor.
If a CPU recognizes a hardware error as indicated
by a machine check interrupt, it alerts another CPU
by the direct-control feature and causes a malfunction alert interrupt. The troubled CPU then goes
into the wait state while the second begins the recovery procedure.

Channel Controller
It is difficult to break away from traditional
thinking of a memory-CPU channel system configuration. With multiple tails on the memory and
independent channels, the CPU's really behave as
pumps, with one or more processing units working
on many jobs located in multiple memories. The
2846 Channel Controller is essentially the same bus
control unit as in the CPU. It enables the 2860
Selector and 2870 High Speed Multiplexor Channels
to communicate directly with the memories without
interfering with the CPU's bus control units. Channels are addressed by, and can return their interruptions to, either CPU, providing a flexible and generalorganization. I/0 terminations, therefore, are
not unique to a CPU, but may cause an interruption
in whatever CPU, by masking, is conditioned to
accept them.
The 2870 High Speed Multiplexor has the ability
to handle up to eight control units and 192 devices
on the basic interface, which can operate in the multiplexor or burst modes. Up to four medium speed
interfaces, which can address up to 16 devices, are
available on the 2870. These selector subchannels
only operate in the burst mode.
The basic interface can handle an aggregate rate
of 110k bytes per second with no selector subchan-

64

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

Table 1.
Basic
Interface

2870 Data Rates in kbps *
1st

Selector Subchannel
2d
3d

4th

110

180
180
180
180

88
66
44
30

* kbps

=

180
180
180

180
180

100

Thousand bytes per second.

nels attached. Lower data rates can be sustained
with the subchannels as shown in Table 1.
Dual Data Paths

Dual data paths have been provided to enable the
memories to reach any I/O device by at least two
paths. Partly for reasons of reliability, the dual
paths also provide flexibility in pathfinding in case
one control unit is busy. All of the I/O control
units have two tails, one to each I/O control element, which are under program control. This allows each channel controller to reach each I/O
device, and via any control unit in the case of pooled
devices. The 2973-2 Disk Switch, for example, allows any two 2311 Disk Storage Units to operate
simultaneously through the two 2841 Storage Control Units. Because of the' twin tails on the 2841s,
each Channel Controller can have as many as two
2311 disks operating through it simultaneously.
Similarly, any four of the sixteen 90KC 2400 tape
units may be operating with any combination of
channels. The 2973 switch and two-tailed control
units are unique to time-sharing configurations.
Pathfinding

With more than one possible logical route from
memory to a device, a pathfinding routine is necessary. The pathfinding routine will locate the first
available logical route in which the channel and
control unit are neither busy nor unavailable. In
Fig. 1, for example, there fire eight possible paths
for data to get to memory from a tape unit.
The routine is serially reenterable. The supervisor
enters the pathfinder by giv,ing it a symbolic device
address. From a Symbolic, Address table, the low
order bits of the actual I/0 address, called the device address, are immediately available.
The Symbolic Address table points to a Device
Group table where all possible device paths for a
group consisting of similar devices in a common
pool are given.

The pathfinding routine, knowing from tlhe device
path which channel and control unit are: needed,
'checks the corresponding Channel and Control Unit
tables for their availability.
In the System/360, a selector channel is busy if
any device is operational on it. On the multiplexor
channel, however, the data rates of each operational
subchannel must be examined so that the total multiplexing data capability will not be exceedl:!d by the
addition of another device. Consequently, the multiplexor channel is not busy until the total "weights"
of all devices attached exceeds 110kc.
The
"weights" of devices connected to the basic interface are their data rates and come from the Device
Group table; the weights for any 90kc magnetic
tapes on the selector subchannels are 1l5kc; for
180kc tapes the weights are 22kc.
If the channel or the control unit is busy, the path
is abandoned. If all the possible paths are busy, the
pathfinding routine returns with the appropriate
"busy" or "not available" bit set. A reve:rse pathfinding mechanism also exists to clear the busy bits
for the device, control unit and channel when an
operation is completed. The tables are created at
system generation time and can be modific!d by the
partitioning routines.
Error Recovery Procedures

When a machine error is determined by CPU
hardware, a machine check interrupt occurs in the
CPU and this same signal is broadcast to all other
CPU's in the system, which receive such indications
as malfunction (external) interrupts.
The original CPU will be put in wait state with interrupts masked, thus preventing it from disrupting
the total system. One of the other CPU's in the
system accepts the associated malfunction alert;, the
others going into the wait state. It is the function of
the active CPU via the "recovery nucleus'" to identify the failing unit in order to remove it from the
active system. Each CPU has a recovery nucleus in
a different memory module.
When a less disastrous fault occurs in the system,
such as failure to read a record correctly from a
storage device, the time-sharing monitor will invoke
a standard retry routine. If this retry routine fails to
read the record correctly, it will report this information to the time-sharing supervisor. The supervisor
will log this information and will then call for a system error analysis program, which will dec:ide which
units are to be eliminated from the resource table
in the supervisor.

TIME-SHARING IN THE IBM SYSTEM/360: MODEL 67

The decision as to which unit or units to drop
from the resource table is made by examining the
recorded error environment information, then determining the partitioning which would· have the
least impact on system performance. For example,
when a .fault occurs in a unit which has two data
paths, the system error analysis program will analyze the fault to determine if one of the data paths
or the unit itself should be eliminated from the resource table. The program will not eliminate an
operational unit from a resource table if there is at
least one data path to that unit.
Messages will be sent to the operator when a data
path is eliminated from the resource table, but no
maintenance action will be taken until either all data
paths to the unit are out or until the customer engineer and operator decide that maintenance is required. At this time, the customer engineer will call
for the diagnostic monitor and begin the diagnostic
procedures. If a CPU or memory element fails, a
warning message is broadcast to all active terminal
users who might be affected.

Remote Access
The Time-Sharing System will support the IBM
1052, 2741 and 2260 Display as remote terminal
devices. The terminals may be connected locally as
operator consoles, or remotely as user terminals.
The 2702 Transmission Control. and 2848 Display
Control accept data, serially by bit, and the transfer
to memory is made one byte at a time. The 2701
Data Adapter Unit is the general interface enabling
remote on-line attachment of IBM Model 20s,
Model 30s, other computers, data sources, and plotters. The interface can be a serial-by-bit communications adapter or the parallel data adapter. The
latter is an interface which can accept data up to
1,200,000 bytes per second and up to 48 bits at a
time.

DYNAMIC RELOCATION

M uitiprogramming
While the typical scientific computing installation
may have many large production programs in its
work load, it will have many more programs which
are small compared to the hardwa·re resources. The
maximal claims made by such programs do not include all of the I/O units or all of the core storage.
Moreover, these claims are indeed maximal in that
they include space in the storage for instructions,

65

intermediate results, and initial and final values
which are highly dependent on the precise data set
used in a particular execution of the program. The
claims include channels and I/O units, the use of
which is also highly dependent on the data set.
Some recent measurements indicate that for many
programs a storage area two or three times as large
as necessary is claimed.
Multiprogramming is a processing mode in which
a control program attempts to honor the hardware
claims of several distinct programs simultaneously.
The object is to keep the CPU busy executing problem program instructions rather than allow it to remain idle during I/O operations which may arise in
a problem program or in a control program which is
removing one problem program from the machine
and bringing in another. The goal is to increase
throughput.
A further refinement in multiprogramming comes
. from the observation that many machine runs consist of a compilation and an execution or an assembly and an execution. In a multiprogramming
system, one would therefore discover many copies
of the compiler, assembler, I/O routines, and programs from a math library existing in core storage
at the same time. Consequently, the notion of
common, reenterable programs arise.
A crude picture of time-sharing shows a control
program which, during these moments of idleness
with respect to one console, outputs all of the optional storage, inputs a previously outputted store
image for a second console, and then permits the
execution of a transaction for that console. There
is a cost in this operating mode in terms of time
used for the exchange of core images in order to
respond to console requests. In fact, the larger and
more complex the program, the more useful on-line
debugging can be, and the greater the cost of exchanging problem programs. This cost is an especially painful burden since the debugging process
is often such that no more information is required
for a console transaction for a large program than
would be required for debugging a small program.
What is needed in view of the application is a
system technique which encourages the transaction
aspect of time-sharing for debugging purposes, a
technique for elimination of redundant copies of
popular functions, and a facility for dynamic core
allocation. An ability on the part of the control
program to put a problem program in ready status
without honoring the complete storage claims and
without the necessity of altering the addressing
structure of the program is of great value. Properly

66

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

arranged, it permits effective multiprogramming
and multiprocessing.
This ability can be obtained through the notion of
a logical store and the high-speed monitoring of
addresses used by problem programs, and the conversion of these logical addresses into other physical
addresses. Virtual storage is defined as the entire
storage which can be reached by the logical addressing scheme. Thus, with 24 bits, there are 2 24 , or
16,777,216 byte locations in virtual memory. With
the 32-bit relocation option, 2 32 or 4,294,967,296
bytes are addressable in virtual memory. However,
in either case, the physical storage in the sample
configuration would be only 786,432 bytes. The
dynamic relocation scheme described here is the
method by which the virtual storage is mapped into
the physical storage.
Dynamic relocation is achieved by treating the
addresses supplied by the program as logical addresses, or relative addresses. A logical address is
identical to a physical address when the relocation
feature is not operative. When relocation is employed, the logical address is that address known by
the program. The physical address is the address
(after any relocation) presented to memory for a
reference. The logical addresses are translated by
means of a relocation table to physical addresses
when storage is addressed.
The relocation function provides the ability to
interrupt a program and record it on external media
such as a file or drum and at a later time to return
the program to main storage at different storage
locations without disturbing the execution of the
pi ogram except for the time element involved. The
locations at which a program and its data are stored
are assigned by the relocation table and occur in
4096-byte blocks. These blocks need not be contiguous even though they may be addressed by a
contiguous set of logical addresses. The physical
fragmentation of programs is thus not apparent to
the programmer.

Relocation Operation
Space-sharing is facilitated by breaking user programs into segments and sectioning these segments
into pages. By breaking programs up into pages,
physical memory may be allocated in page increments. Only those active pages are brought into
physical core storage.
The Model 67 CPU may operate in either the relocation or nonrelocation mode. With the 32-bit
option, the CPU may also run in either the 24- or

32-bit mode. The modes are specified by bilts 4 and
5 of the extended mode Program Status Word
(XPSW) as follows:
Bit 4

Bit 5

o

o

o

I

1

o

Modes
No relocation, 24-bit address
Relocation, 24-bit address
Relocation, 32-bit address
Data exception

The function of the Program Status Word is lexplained below (under "Other Features"').
All
normal instructions are relocated when bit 5 is set.
Addresses of control words and data in I/0 operations, however, are not relocated. Addresses glenerated by the CPU or channels for inte:rruptilon
purposes, such, as timer, CSW, and PSW addresses,
are not relocated. The standard, 24-bit rdocatilon
scheme is described in this section.
All logical addresses are formed using full 32-·bit
arithmetic. The sum of the 32-bit base register
specified in an instru.,ction as R 1, the 32-bit index
register specified as XI, and the 12-bit byte addn!ss,
or displacement, less the 8 high order bits forms
the 24-bit logical address. The logical address is
broken into three sections of 4, 8, and 12 bits spc!cifying the "segment" number, the "page" number,
and the byte, or "line" number, respectively. Figure
2 shows this breakdown.

10
SEGMENT
NUMBER

11112
PAGE
NUMBER

BYTE
NUMBER

Figure 2. Logical address.

There are 4096 bytes per page, where a page: of
programs resides in a block of core storage. With 8
bits for the page number, there are 256 possible
pages per segment. Each segment (1 ,048,576-byte
address space) can contain a program. It can contain a data set. It can also be a million-byte area of
working space. If the segment number is ignored,
each such program, data set, or space begins at
address zero. In the 24-bit scheme, several routines
will be packed in the same segment.
The relocation scheme operates essentially as follows. Each task in the system requires for its op0..
::Ew

wen

I-Z

~~
en en
w

( I) p/r ': 5
(2.) p/r ': 10

0::

(3) p/r ': 20

°
5

I0
w::E::> 4
N~c:L
:::;0::::J:
~(!)(!)

(b)

3

:EO::>
0::0:: 0
00..0:: 2
Z
~

For the program statistics assumed in Fig. 3 the
CPU was not in use more than 5% of the time. In
Fig. 5 a contrasting set of statistics has belen chosen
in which the CPU capacity is now the performance
limit. User response time does not solely determine
the completion rate even when there is only a single
user of the system. Queueing delays for use of the
CPU become significant as soon as there! is more
than one user. Performance is fairly inse:nsitiv,e to
the range of disc channel usage chosen. Owing to
the saturation of the CPU, the program throughput
increases very little for more than three users, and
for five users the user busy fraction has been halved.
Note that the program throughput is slightly higher
for p/r = 20 than for p/r = 5. The higher frequency of swapping operations for user programs
increases the number of phases of CPU execution
per program but reduces the average duration of
each phase. The net result is to reduce queweing
delays and thus improve the program throughput.
user prooram response
- - - - - user busy frac1ion
- - - - - user busy fraction (dynam'lc curve)
_. probability that disc chanl'11el is in use

1.0 - - - - - - - - - - - - - - - - - ,
(a)

en
00::
ZW

Figure 3.

•

System performance parameters from model 3 for

I/Ill

q/,.

=

r =

I, 1/1l2

=

I, 1/1l3

=

20, I/1l4

=

15,

5.

lays (note user program response) since the increase
in the number of users causes the disc channel use
to rise noticeably.
When disc channel usage increases to p / r = 20,
the disc channel becomes saturated. With five users
it is in use 95% of the time, and the user busy
fraction drops from 0.73 for one user to 0.46 for
five users. The task program response curve indicates the queueing delays ir.. the disc channel.
The program throughout is plotted in Fig. 3b
showing that for p/r = 5 and five users, programs
are completed at 4.7 times the rate when there is
only one user. The reason is that the dominant
factor in program completion rate is the user response time and users can respond in parallel. However for pi r = 20, the program throughput is only
3.7 for five users; here queueing in the disc channel
is causing significant delays and the user response
time is no longer the dominant factor in the completion rate.

~~
w::E
(!)~
~o::
en~

::>0..
::E wO. 5

wen

I-Z

enO
>-0..
en en
w

0::

I0
w::E::>
N~o..

°5

(b)

4

:::;0::::J:
 3
0::0:: 0
00..0:: 2
Z
~

2

3

4

5

N
Figure 4.

System performance parameters for model 3 for
I/Illr = 25, I/1l2 = 1, I/1l3 = 20, I/1l4 = 15,
q/r = 5.

93

TIME-SHARING COMPUTER SYSTEMS USING MARKOV MODELS

In the discussion so far we have assumed that an
increase in the number of users does not affect the
number of swapping operations for each user program. However if the amount of core storage allocated to each user program is reduced as more users
are allowed to use the system, the mean number of
block transfers per user program p/r must,increase.
We can therefore treat the curves plotted for fixed
values of p/r as static performance parameters, and
to obtain the true performance parameters we must
use a dynamic operating characteristic which gives
p/r as a function of N. An example is shown in
Fig. 4 where a dynamic curve for user busy fraction
is plotted assuming the relationship between p/r
and N given by the following table:
N
1
3
4
5
p/r
5
10
20
40
The result is a
formance with
The aspects
tion in system

formance obtained by each user with different
program statistics and a range in the number of
users. It is apparent that the user response time
in each iteration is a key factor in determining how
many ~onsoles can be serviced by this type of system. The user responses envisaged for this system
are elementary so that the curves of Figs. 3, 4, and 5
correspond to rapid responses. If slower response
times were expected the performance parameters for
the same number of users would be considerably
changed. This is illustrated by the curves of Fig. 6
where the mean response time is 2.5 times that for
the other figures.
In Fig. 7 the same performance parameters are
plotted as a function of the number of users for two
sets of statistics. Two curves for each parameter are
given corresponding to models 2 and 3. The curves

much more rapid degrading in perincreasing N.
discussed have concerned the variaprocessor use and the resultant per-

- - - user program response
- - -- - operator busy fraction
- - - probability that c.p.u. is in use

user prooram response
user busy fraction
probability that c.p.u. IS in use
probability that disc channel
is in use
1.0~--r--_r----r------'

(a)

1.0..--------------:::1

I':-~-

<~~-(l)

V)

00:: 0.8
ZW

«~

:EW
WOO

000
~a.
0000
UJ
0::

0.8

p/r =5

(2) p/r =10
(3) p/r =20

w:E
C)«
«0:: 0.6
00«
::::>a.

.... z

(a)

0.6 -

0.4 0.4

0.2 0.2

(I) I/fLlr=25

(2)1/fLl r =75

....

5

( b)

0
w:E::::>
N«a. 4
:J0:::I:
«C)C) 3
:EO::::>
0::0:: 0
oa.o:: 2
Z

(b)
3
I

~

II

2

3

4

5

N
Figure 5.

System performance parameter from model
3 for I/J.l.lr = 75, I/J.l.2 = I, I/J.l.3 = 20,
I/J.l.4 = 15, q/r = 5.

Figure 6.

System performance parameters from model 3 for
I/J.l.2 = 1, I/J.l.3 = 50, 1/J.l.4 = 15, q/r = 5, p/r =
20.

94

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

~

lLI

....l&J

:E

(b)

(0)

1.0 ~-------------...., . - - - - - - - - - - - - p/r = 20
p/r=5

«

0::

:. 0.8
llJ
(J)

z 0.6

0

Q.
(J)

llJ
0::

0

0.4

z
«
lLI
(!)

«

0.2

en

::>
:E

LaJ

....

2

>en

- - - - ----_. - Figure 7.

5

51

4

:3
N

CI)

user program response
user busy fraction
probability that C.p.u. is in use
probability that disc channel is in use

System performance parameters from models 2 and 3 for 1/J.t I r = 25, 1/J.t2 = 1, 1/J.t3 = 20, 1/J.t4 = 15, q / r = 5.

Table

-

1

J.llr

p/r

N

1
3
5
1
3
5
1
3
5

.172
.447
.626
.167
.423
.584
.156
.387
.522

-

1

= 20,

15,
J.l4

J.l3

Prob. CPU
is in Use
Modell

5
5
5
10
10
10
20
20
20

= 25,

User Busy
Fraction

Model 2 Modell
.172
.450
.633
.167
.425
.589
.156
.388
.524

.689
.597
.502
.667
.565
.468
.625
.515
.416

r

Probe Disc Channel is in Use
Program Loading

Model 2 Modell
.689
.600
.507
.667
.568
.472
.625
.517
.418

!L = 5

.103
.264
.370
.100
.251
.346
.094
.228
.308

Swapping

Model 2 Modell
.103
.268
.377
.100
.254
.351
.094
.231
.311

.035
.089
.125
.067
.169
.234
.125
.310
.418

Modd2
.035
.090
.127
.067
.170
.23.5
.12.5
.311
.419

TIME-SHARING COMPUTER SYSTEMS USING MARKOV MODELS

95

show that the I/O strategy of model 3 (preemptive
priority to block swapping operations) gives better
performance for larger N. One would expect a significant advantage to be given by this strategy whenever there is frequent use of the disc channel.
In Table 1 performance parameters derived from
models 1 and 2 with the same statistics are plotted.
The loading process has been modeled by an exponential distribution in model 1 and by a second
order Erlang distribution in model 2. For equal
mean values of these distributions it is seen that the
maximum difference in performance parameter
values is approximately 1%. This indicates a good
degree of insensitivity of these performance parameters to loading time statistics other than the mean
value.

and lumping of processing functions may be made
in the modeling without changing the significant
results. However it is possible to develop a more
detailed and accurate mathematical model than that
of Fig. 2 which is still solvable by RQA. Significant
points which could be included are the interruption
of user programs at discrete time intervals, specific
representation of the executive program execution,
and the use of multiple processors.
This modeling technique presents a useful and
economic alternative to constructing general simulation models in the analysis of time-sharing computer systems.

CONCLUSION

1. V. L. Wallace and R. S. Rosenberg, "Markov
Models for Numerical Analysis of Computer System Behavior," this volume.
2. T. Kilburn. et aI, "One-Level Storage System,"
IRE Trans. on Electronic Computers, Apr. 1962.
3. J. B. Dennis, "Segmentation and the Design of
Multiprogrammed Computer Systems," J. ACM,
vol. 12, no. 4 (Oct. 1965).
4. B. W. Arden et aI, "Program and Addressing
Structure in a Time Sharing Environment," to be
published.
5. P. M. Morse, Queues, Inventories and Maintenance, Wiley, New York, 1958.
6. A. L. Scherr, "An Analysis of Time Shared
Computer Systems," Doctoral Thesis, Department
of Electrical Engineering, MIT, June 1965.
7. E. G. Coffman and R. C. Wood, "Interarrival
Statistics for TSS," System Development Corporation Document SP-2161 (Aug. 1965).
8. D. W. Fife and J. L. Smith, "Transmission
Capacity of Disc Storage Systems with Concurrent
Arm Positioning," IEEE Trans. on Electronic Computers, vol. EC-14, no. 4 (Aug. 1965).

An example has been given of the use of Markov
models in the analysis of computer systems. With
sufficient statistics available on the user and program characteristics, useful predictions on the system performance and capacity could be made. The
curve for the dynamic operator busy fraction in
Fig. 4 illustrates the limitations involved in multiprogramming and the segmenting of programs. The
nonlinear increase in the amount of page swapping,
as the number of pages of core memory assigned
to a program is reduced, is not unrealistic. As the
effect on system performance is so marked it is suggested that considerable care will have to be taken
in assigning a suitable working area of core to each
user program.
The general model proposed for the time-sharing
system of Fig. 1 involves approximations and assumptions on the operation of such a system and the
probability of the service times. Experience to date
has indicated that, provided one is only interested
in mean value performance, liberal approximation

REFERENCES

AN OPTIMIZATION MODEL FOR TIME-SHARING *
Dennis W. Fife
Massachusetts Institute of Technology
Cambridge, Massachusetts

INTRODUCTION

its initial priority and the amount of execution time
it has received. Compared to the round-robin, the
priority procedure has greater flexibility inherent in
the choice of initial priority assignments and the
maximum execution time allocated to jobs of each
priority level. By a proper simplification, a multiple
priority scheme becomes a round-robin procedure.
The pioneers of the time-sharing field have experimentally found successful versions of the above procedures for their particular systems. But the future
development of on-line computer systems will undoubtedly benefit from attempts to establish general
quantitative properties of scheduling schemes, including ones which are not necessarily in current
use. A good approach to take for this objective is
to model the queueing situation resulting from a
proposed scheduling procedure. Even more desirable however is an optimization technique which
will allow one to model a class of scheduling procedures, and which will systematically synthesize
an optimum procedure according to some specified
criterion. The importance of Markov stochastic
models in queueing theory suggests that the theory
of Markov sequential decision processes4--6 will provide the desired optimization model.
This paper describes some results produced by
this type of model for a time-shared computer with
four remote consoles and three queue levels for
user jobs. Swapping and program loading time are
included, and a rather general execution time distribution is treated. The optimal system has been
computed for two distinctly different performance

The proper design of scheduling processes for
time-shared computers has provoked much discussion. One of the factors promoting discussion
is the great variety of scheduling procedures which
one can feasibly program, and which will operate
with adequate efficiency. There is wide latitude for
conjecturing possibly improved procedures. Moreover, the performance requirements of time-sharing
demand more sophisticated schemes than one can
analyze with simple queueing theory, yet it is not
feasible to experiment with many alternative procedures in operational systems and produce quantitative evidence of their relative merits.
The scheduling techniques in use today are of two
major types: round-robin procedures and multiple
priority level procedures. A round-robin process 1,2
treats the queue of users uniformly, giving each
program a "slice" of execution time and then swapping it for another. This conforms to one intuitive
notion of time-sharing, inasmuch as each user may
obtain an equal share of computer time on a short,;.
term basis. Multiple priority schemes 3 allow the
choice of a job for execution to be determined by
*This paper is based upon research performed at the Systems
Engineering Laboratory of the University of Michigan and submitted as a Ph.D dissertation in electrical engineering. The
author is grateful for financial support from the U.S. Air
Force Rome Air Development Center and the National Science
Foundation. Assistance in publication was also provided by
Project MAC at MIT.

97

98

PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966

steps, with a scheduling action possible occurring at
any 50-msec step.
Two important conventions will be imposed on
system operation. A user console may only have
one command in process at any time. Also, every
command must be initiated from a user console,
thereby excluding one job from initiating another.
As a result, the system may have at most four user
jobs in process. The completion of any command
marks the beginning of a user reaction time, after
which another command arrives from the console.
One can conceive at this point of a very genc~ral
scheduling procedure in which each decision requires a dual choice:

measures, both related to response time. Although,
a wide class of procedures is admissible, the optimal
systems have much the same structure as those used
in contemporary systems.
THE SYSTEM
The model concerns a hypothetical time-sharing
system typical of those currently in  1Yj 1max, and qj is Yj
in the example.
c) Vj = aj - OJ and 23 ~ Vj ~ 4.
d) aj + "'fj = Ej.
e) Sj = Vj + 1, Le., the S-bits of Integrator i.

A DIGITAL SY$TEM FOR ON-LINE STUDIES OF DYNAMICAL SYSTEMS

111

Repeated runs may be made and ~w variables may
be sampled or displayed by maki g changes at the
LINC keyboard. If parameters i the differential
equations are changed, rescaling may be required,
and the scaling program is then called again on the
time-shared computer. The same is necessary if
overflow occurs because of wrong estimates on
the I q; I max.
It is of interest to estimate some typical operating
times. After input typing is completed, the reaction
times are between several minutes and several seconds depending on the accessibility of the timeshared system programs. The loading and running
time on the DDA is at most about 20 seconds for
2 15 iterations of 256 integrators. The time for repeated runs depends largely on the time required
for the user to enter new information at the LINC
keyboard.

experience will provide some insight. Very little
theoretical work has been done, and the combination of nonlinear equations, incremental methods,
and quantization makes the prospect of estimating
useful error bounds discouraging.. It also may be
noted that the sequential processing of the integrators introduces an ordering problem in the mapping
program, and the effect of a given ordering scheme
on computational errors is again difficult to predict.
Nevertheless, the system is proving very useful
in problems where on-line searching and experimentation lead to more complete understanding of
certain physical problems. The combination of
general and special-purpose digital computers is
of great value for studying complex dynamical
systems.

SUMMARY

The authors wish to thank Dr. H. K. Knudsen
for his valuable work on the mapping and scaling
programs, and Mr. R: A. Carroll for his work in the
planning and construction of the DDA.

The design of a system for on-line studies of
dynamical systems has been described, and the
details of operation of the high-speed DDA have
been given. Two applications of the system which
are showing its usefulness are
1. Spectral analyses of radar data in which
a number of frequencies, spectral windows, smoothing times, and range gates
were examined. On-line techniques enable the user to search for combinations
of interest rather quickly. The LINC/DDA combination can generate 30
spectral lines, compute a periodogram,
and display the results in about 20 seconds.
2. Trajectory generation in simulation
studies where the effect of changing
parameters in an estimation algorithm
are of interest. A set of 3-degree-offreedom equations that includes atmospheric drag variations and gravitational variations requires 55 integrators.
One run (i.e., one trajectory) requires
5 seconds in this case.
A subject requiring further study on the system is
error analysis. Error prediction for equations that
are integrated by incremental arithmetic operations
is extremely difficult, but it is believed that more

ACKNOWLEDGMENTS

REFERENCES
1. T. C. Bartee, I. Lebow and I. Reed, Theory
and Design of Digital Machines, McGraw-Hill, 1962,
pp. 252-269.
2. G. F. Forbes, Digital Differential Analyzers,
G. F. Forbes, Sylman, Calif., 4th ed., 1957.
3. M. Palevsky, "The Design of the Bendix Digital Differential Analyzer," Proc. IRE, vol. 41, no.
10, pp. 1352-1356 (Oct. 1953).
4. J. M. Mitchell et aI, "The TRICE-A High
Speed Incremental Computer," IRE Nat. Conv.
Record, Part 4, pp. 206-216 (1958).
5. H. K. Knudsen, "A Program for Automatic
Mapping of Differential Equations on a DDA"
(to appear).
6. H. K. Knudsen, "The Scaling of Digital Differential Analyzers," IEEE Transactions G-EC,
EC-14, no. 4, pp. 583-589 (Aug. 1965).
7. O. A. Reichardt, M. W. Hoyt, W. T. Lee,
"The Parallel Digital Differential Analyzer and Its
Application as Hybrid Computing System Element," Simulation 4, n.z., pp. 104-113 (Feb. 1965).
8. M. W. Goldman "Design of a High Speed
DDA," Proc. FJCC, pp. 929-949 (1965).

SIMULATION OF LOGICAL DECISION NETWORKS OF TIME"·DELA Y
ELEMENTS BY MEANS OF A GENERJ\L·PURPOSE DIGITAL COMPUTER
Y. N. Chang and O. M. George
North American Aviation, Space and Information Systems Division
Downey, California

INTRODUCTION

with the IBM 7094 program described herein. In
addition, the time-sequential states of all the elements are plotted on the S-C 4020 in the form of an
n-channel recorder chart.
The art of simulation involves building a mathematical model which represents the system. Boolean algebra is the natural mathematics for a logic
system; however, Boolean algebra does not incorporate time per se. The authors propose and illustrate an extension of standard notation so that
time relationships between cause and effect can be
expressed explicitly in the Boolean equations that
are written to describe the logical operation of a
system.

For the purpose of this paper, a logical decision
network is defined as a system whose elements can
be in either of only two states, TRUE or FALSE.
Therefore the operation of the system can be described by a set of simultaneous Boolean equations
which are functions of time. These states must be
defined specifically for each of the elements of the
system, and in particular might represent yes and
no, on and off, energize and de-energize a coil,
"make" and "break" of a relay contact, presence
and absence of voltage at a node, open and close a
mechanical valve, etc.
Digital switching networks, relay control systems,
production and manpower scheduling, and the
transportation problem are examples of logic systems. In logic systems like the last two examples,
the digital program is used to solve the problem. In
the first two examples, where hardware is involved,
simulation on a general-purpose digital computer is
used to verify the time-sequential operation of the
system before money and time have been spent in
building it. A simulation should also permit one to
vary the time delays in order to set tolerances for
design specifications. A third application would be
a study of the effects on the system of malfunctions
of any elements. Finally, if one has simulated the
checkout of various subsystems, it should be possible to simulate a combined system without recoding the Boolean equations. All of this can be done

MECHANIZATION OF A LOGICAL SYSTEM
Input and Dependent Elements
Any physical device (e.g., relay coil, switch, light,
squib, or hydraulic valve) which has only two possible states is defined as a "logical element." A
logical element can also be abstract (e.g., the set or
reset action of a motor switch, the grounding of a
buss, the short circuiting of a battery, or the presence of voltage at a node)~ Letter T is used to represent the "true" state (i.e., on, closed, energized,
shorted, etc.) of an element, and the letter F represents the opposite "false" state. A device which has
more than two states must be resolved" into n logical
elements. For example, an n-position rotary-type
stepping switch must be programmed as n logical

113

114

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

elements where each element is in state T only while
the switch makes contact at its position. In order
to simulate the operation of a system by means of
the digital computer program described in this
paper, each logical element must be identified by a
name of six or fewer legitimate alphameric characters.
Input elements (e.g., hand-set switches, or radiocommand signals) are defined as those logical elements whose states are independent of the states of
other elements. The states of input elements are assigned from time to time during the simulation by
the entry of data.
A dependent element is defined as a logical element whose state is determined by solving a Boolean equation which expresses the state as a function
of time-delay variables and/or the states of input
elements.

Time-Delay Variables
A time-delay variable is always related to a logical element and, therefore, is identified by the same
name as its associated control element. For instance, the coil of a relay (say dependent element
DEPEND) may control the operation of two timedelay contacts. The states of these contacts would
then be time-delay variables in Boolean equations.
To indicate the source of control of the two contacts, the name DEPEND would be used for each
appearance of the variables in the set of Boolean
equations for the logic system. The time-sequential
effect of the operation of each of the two contacts is
determined by their specific delays.
A special Boolean algebra notation is introduced
here to specify the time dependence of cause and
effect for a variable. Two types of time delay are
recognized. The a-delay is defined as the elapsed
time between a change of state from F to T of an
element and the resulting change from F to T of an
associated variable. The ,B-delay is defined similarly for a change from T to F. These delays are
separated by a comma and written as a numerical
superscript on the name designating the variable
(e.g., va,p is written as DEPEND s,3). Each variable
may have a different set of a and ,B values even
though the variables are associated with the same
logical element (i.e., a relay may have several different time-delay contacts). The omission of a and
,B implies that the change of state of the variable occurs instantaneously with that of the control element (i.e., no time delay).
As an example of this extended Boolean algebra
notation, refer to the equations given below in the

section "Application of Program to a Simplified
System."
In Eqs. (1-3) switches START and
STOP are input elements (manually controlled), and
we have a 2-contact relay, CONRLY, a.nd a 4contact device, TIMER, as dependent dements.
Equation (1) defines the state of dependent elem,ent
HORN as a function of three variables and relative
time. Time is explicitly included by means of the
a- and ,B-delays. The * represents the logical ope:ration AND, + represents OR, and the bar over the
third variable represents NOT. Note tha1t a timedelay variable TIMER appears in all three equations but with different values of a. These three
terms (variables) represent three of the contacts of
the timing device, a dependent element whose state
is defined by Eq. (2).
The validity of the results of any simulation depends on the accuracy with which the mathematical
model represents the physical system. The Boolc~an
program described in this paper is no exc(~ption to
the rule. The fundamental principles of modeling a
logic system are illustrated by the set of Boolc~an
equations (1-13).
Since the illustrative control
system comprises only single-input electrical deviices
(relays and timers) connected in series-parallel
groups, one can write the Boolean equations more
or less by inspection once the schematic diagram,
Fig. 3, has been drawn. However, an explanation
of some of the details might be desirable.
The term (START + TIMER), in Eq. (2) for
the state of dependent element TIMER, r1epresemts
the fact that START is a momentary push button
which starts the timer immediately, but TIMER
continues in state T after the push button is released (i.e., after START changes from T to F).
The meaning of the time-delay variable TIMER~ 15,0
is that although dependent element TIMER
changed from F to T state, the effective state of this
term will not become F (i.e., complement of T)
until 15 seconds later as indicated by the a-delay. A
similar time-delay variable TIMER 5,0 appears in
Eq. (1). Therefore, the horn will start blowing
when the start push button is pressed, but it will
stop automatically 5 seconds later. The variable
TIMER 10,0 in Eq. (3) signifies that dependent dement CONRL Y changes from F to T stat,e 10 seconds after TIMER = T. Note that STOP is a
The variable
normally closed push button.
CONRL Y in the term (CONRL Y + TIMER 10,0)
maintains the element in state T until push button
STOP is pressed, even though the timer stopped
automatically after running for 15 seconds.
A ,B-delay of zero is indicated for each time-de:lay

115

SIMULATION OF LOGICAL DECISION NETWORKS OF TIME-DELAY ELEMENTS

variable in Eqs. (1-3), which signifies that the
"drop-out" action of the contact is instantaneous.
For hardware, the delays are never zero but they
may be small compared to other time intervals in
the sequential operation of the system. Proper
simulation may necessitate entering a small value,
rather than zero, for such a delay. The behavior
of dependent elements HORN, CONRLY and
TIMER is independent of the value of fJ so the
use of fJ = 0 is satisfactory for the simulation described in Eqs. (1-3). Conveyor A (Fig. 2) must not
.start until after conveyor B is in motion, and should
shut down automatically if conveyor B stops. These
requirements are expressed in Eq. (4) by the a- and
fJ-delays on the time-delay variable CNVB 5,3.
A simple illustrative control system was chosen so
that the use of a- and fJ-delays in a Boolean model
could be explained. Many control systems incorporate multiple-input devices such as motor
switches, latching relays, and flip-flops. The states
of such a device should be related to the inputs by
means of a Veitch diagram so that the Boolean
equation will give a correct state for all combinations of the inputs. A discussion of these techniques
for modeling logic devices is presented in the Appendix.

CODEDJ
BOOLEAN
EQUATIONS

I

J

MAP Y
ASSEMBL

1

i-------------~;A-~;~--------------j

I

I
I

:
BooLEQ
SUBROUTI~ I

I
I

ELEMENT
NAME TABLE

CONTROL
CARDS

SEQUENTIAL
INPUTS

I

I

l
I
I

l_____ ----------i---------1----- J
CONTROL
PROGRAM

I

I
SoC 4020
PLOT OF
STATES
VS TIME

PRINT
SEQUENTIAL
DATA AND
DIAGNOSTICS

Figure 1.

OPTIONAL
SEQUENTIAL
PRINT OF
STATE CHANGES

Functional diagram of Boolean simulator program.

PUSH BUTTON STATION

~

FUNCTIONAL DESCRIPTION OF DIGITAL
COMPUTER PROGRAM
The functional organization of the complete
program is shown diagrammatically in Fig. 1. The
philosophy of the basic control program is similar
to that of an earlier program I written by the authors in machine language for the IBM 704. In detail, however, the current program differs considerably because it has been coded for a seven-indexregister IBM 7094 for operation iD the FORTRAN
IV IBSYS/IBJOB system, and new features have·
been incorporated as a result of use of the original
program in the analysis of many control systems. 2
Basic specifications for the current program were
1) efficient use of core and 2) maximum execution
speed so that logical systems of 2000 or more elements could be simulated economically. The Boolean structure of the FO R TRAN IV source language
is not compatible with these specifications. Consequently, the major part of the program is written
in the MAP symbolic language.
The Boolean equations which describe the logic
system are coded in MAP and assembled as a subroutine named BOOLEQ as illustrated in the following section and also in Fig. 4. The basic con-

START

o

STOP

0'

SELECTOR SW ITCH

L R

0::::] HORN

o

LOCKOUT STOP

Figure 2.

A conveyor system.

trol program solves the equations, checks for
incompatible states, prints diagnostic comments,
and increments time automatically to simulate the
operation of the logic system. The desired sequence
is directed by 1) states of input elements entered as
data at any time, 2) the time delays (which may be

116

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966
SYMBOLS

- - - : Selector Switch
-0--0-

Start Button Normally Open

~ Stop Button Normally Closed

-{"}- Relay Coil or Device

¥

*

Relay Contact Normally Open
Relay Contact Normally Closed
TIMER

-L...

STARI)ooT---------tt-----f

HORN
Control Relay
CONRLY

STOP
Master Push Buttons

Conveyor A
CNVA
Conveyor B
CNVB
Crusher
CRUSH
SELSW
CNVCLO

SELSW

Conveyor CLeft
CNVCL

I

: Selector Switch

II ~,_W-___"II....I...

11

FOLLCWING SPECS
ELEMENT
18
21

STATE
T
T
F

21

***

SCALE
SAVE STATE

0.1 SECCNDS

TIME

1

***

F

T

22

INPUT

~

STATE

VARIABLE DELAYS ENTE~ED
ELEMfNT
CONTROL

***

1200

NEXT CASE

~OT

MET
STATE
F
F

SINCE TIME ( SECONDS
0.0
0.0

50.0 SECONDS

TIME

DEPENCENT ELEMENTS DISABLED
ELEMENT
STATE
20

F

Figure 6.

Sample printout of inputs and specifications.

veyor system simulation summarized in the plot
(Fig. 8) represents a two-minute operation of the
system; the IBM 7094 execution time was only eight
seconds. This increase in speed of execution was
also due to the programming of a greatest-increment
selection procedure which relieves the user of the
responsibility of analyzing the system and selecting
the proper increment at each instant of time. This
automatic feature also ensures that no critical event
will be missed as a result of making a time step that
exceeds any effective delay. An S-C 4020 plot of the
results was added which increases the accuracy and
speed of analysis of a logical system. In most cases,
this plot is sufficient and the maximum speed of
execution is obtained by not entering any specifications and by not requesting a printout of the results.

Normally, the production of a digital simulator
program involves two steps: creating the model, and
then writing the program. SIMSCRIPT 4 is a generalized language that permits the model and simulator program to be written in a terminology that is
more oriented to simulation than is the language of
FORTRAN. The SIMSCRIPT preprocessor produces a set of routines which can be compiled by
FORTRAN to produce machine-language decks for
a general-purpose digital computer. We recognize
the power of a generalized language for programming simulations, but wish to point out that
for the class of problems (analysis and debugging
of control systems, the transportation problem, and
certain manpower and production scheduling problems) which can be solved by the special program

122

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966
RESULTS CF BOOLEAN ANALYSIS

•••

TIME
ELEMENT
*START

STATE
T

•• *

TIME
ELEMENT
*STAR T

STATE

TIME
ELEMENT
HORN

STATE

TIME
ELEMENT
CCNRLY

STATE
T

TIME
ELEMENT
TIMER

STATE
F

***

TIME
ElEI'4ENT
FLASHA

STATE
F

•••

TIME
ELEMENT
CNVCL

STATE
T

•• *

TIME
ELEMENT
FLASHA

STATE
T

•••
*.*

**.

0.0 SECONDS

ELEMENT
HORN

STATE
T

ELEMENT
TIMER

ST ATF.
T

ELEMENT

STATE

ELEMENT

ST'ATE

STATE

elEMENT

STATE

ELE ... ENT

STATE

ELEMENT

STATE

STATE

ELEMENT

STATE

ELEMENT

STATE

ELEMENT

STATE

STATE
T

elEMENT

STATE

ELEMENT

STATE

ELEMENT

STATE

STATE
T

ELEMENT
FlASHA

STATE
T

ELEMENT

STATE

ELEMENT

STATE

STATE
T

ELEMENT

STATE

ELEMENT

STATE

ELEMENT

STATE

STATE

ELHIE"NT

STATE

ELEMENT

STATE

ELE'4ENT

STATE

STATE
F

ELEMENT

STATE

ELEMENT

STATE

ELEMENT

STATE

0.1 SECCNDS

ELEMENT

F

5.0 SECCNDS

ELEMENT

F

10.0 SECCNDS

ELEMENT
CLASS

15.0 SECCNDS

ELEMENT
CNVE

18.0 SECONDS

ELEMENT
FLASHB

?O.O SECCNDS

ELEMENT

21.0 SECCNDS

ELEMENT
FLASHB

Figure 7.

Sample printout of results of simulation.

described in this paper, only the model needs to be
programmed and debugged. The executive program
is invariant; it has already been written and checked
out for correct operation, simplicity of data entry,
appropriate diagnostic messages, and a concise presentation of the results of the simulation.
The program described in this paper has saved
thousands of dollars and man-hours by permitting
the checkout of a control-system design before time
and money are spent in building it. The program
has also been used for the analysis of "race" conditions in relay circuits, single-point failures, and the
effects of malfunctions or proposed changes in
design.

In this paper, instead of relating the outputs directly
to the inputs, we establish an intermediate state for
the device, or so-called dependent element. The
outputs are then related to the dependent element
by time-delay variables. To relate the statles of the
element to the inputs, it is necessary to have a complete logical description of the states, otherwise the
simulation may give incorrect states to the: element
for those input conditions which are not defined. A
good way to relate states to inputs is to use a Veitch
diagram except for single-input devices iin which
case the state-to-input relationships are slequential
(i.e., time-delay relationships) rather than (;ombinational. 3 The model of the element is simply the
Boolean equation for the Veitch diagram. The following examples illustrate this procedure.

Appendix

Motor Switch
TECHNIQUES FOR MODELING
LOGIC DEVICES
A logic device is described conventionally by
stating the relationship of its outputs to the inputs.

This device uses a motor to open or dosle a set of
contacts. There are two inputs, one for the set
Figun: 9 is a
action and the other for reset.
schematic diagram of a motor switch in which it

SIMULATION OF LOGICAL DECISION NETWORKS OF TIME-DELAY ELEMENTS
CHECKOUT OF 8l-030 BOOLEAN ANALYSIS PROGRAM WITH EQUATIONS
BASIC UNIT OF TIME IS DECISECONDS
O. M. GEORGE, 41-200-300, 4 JUN 1965

FOR

CONYE~R

123

SYSTEM SWITCHING NETWORK.

NODEA

SPARE
FLASHB
FLASH A
CLASS

CNYE
CNYO
CNYCL
CNYCR
CRUSH
CNVB
CNVA
CONRl Y
TIMER
HORN

, I
I

,..

CLASL

...

,~

CNYEL
CNYOL0
CNYCl0
CRSHl0
CNVBL0
CNVAl0
SELSW
STOP
START

05

1 22

3444 5

9

1111

TIME IN
Figure 8.

SECONDS

S-C 4020 plot of true states.

takes 10 milliseconds to open or close the contacts.
Let us label the components and actions by the following identifiers:

The action of the motor can be written very simply
as follows:
SET

MTRSW
SNODE
RNODE
SET
RESET

the motor switch
input node for set
input node for reset
set action of motor
reset action of motor

RESET

= SNODE'"
=

MTRSWo.01,O.Ol

(15)

RNODE'" MTRSWo.01,O.0l

(16)

The state of the motor switch, however, should first
be represented by a Veitch diagram

124

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

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

r---------------------------,

I

MTRSWa,1J

SET COIL

:
I

SNODE < > - - - - - - - i - - # - - - - - - - {

SNODE < > - - - - - - - ; . - - - - - - - - - i
MAGNET
LATRLya,fj

INPUTS

0--

MTRSW a ,6
RNODE 0-0--;----11 t - - - - - - - - - i

INPUTS

OUTPUT VARIABLES~
LATRLy a ,6

a

I

AGNET

RNODE 0-0---:---------t~t--- - - - - : - - - - i

OUTPUT VARIABLE-o+o-MTRSWa,1J
I

COMPLEMENT

IL __________________________
RESET COIL
_

VARIABLE~ MTRSW a ,6

Figure 10.

L __________________________ _

Figure 9.

RESET
RESET

The equations for the set and reset coils are

Motor switch.

SET
impossible
T

F
no change

so that all the possible states are included in the
Boolean equation that is written for dependent element MTRSW. Note that one block of the diagram
is labeled "impossible" because of the interlocks
indicated in Eqs. (15) and (16). The Boolean equation for the motor switch can now be written from
the Veitch diagram and comprises two terms as
follows:
MTRSW

=

(SET * RESET)
+ (MTRSW * SET

* RESET)

Magnetic latching relay.

(17)

The first term specifies the T state, and the second
defines "no change" (i.e., it is a memory term). It
is not necessary to have a term for the F state because it is implied by the nature of binary algebra.

Magnetic Latching Relay
In this device, two permanent magnets are used in
conjunction with a set coil and a reset coil. When
both coils are energized or de-energized simultaneously, there is no resultant force to move the
switch; it remains in its previous state. When only
one coil is energized, the relay is set or reset accordingly. Figure 10 is a schematic diagram of a magnetic latching relay with 5 millisecond a- and fJdelays for the output variables. Let us identify thr.s.!e!."
• Performs job processing
• Requests I/O via 704x

I

- - - - - - - .!n'po:!
- - - ._ - - - - '_]_
• Analyzes a job's control cards and
enters job in DCS
• Converts a job's input deck to "DeS"
format and stores on disk':'

I

Preprocessing Phase

~

1-_ _ _...-,J!.lB""M- !.9Q4_~a~_C.!'~n~e.! _____ _

fo-

• Provide for punched
card I/O

• Provides direct link from 1301
to 709x for transmitting 709x
programming systems

- - - - - - -

~e.!u'p E~i..e

'J--

- - - .- - - - • Selects available tape units
• Signal,S operator to mount tape unitl;
• If necessary, converts input tapes t.o
DCS format and store s on disk

I
__ J!!~ .!.3.2 !....~i!k_S.!o.!~.:. __ _
•

Provide for printed output

• Provides for residence of
709x programming oystems
• Provideo intermediate otorage
for I/O

Figure 2.

DCS: preprocessing phase.

IBM 1014 Remote
___ .!n.s'!!~:'LU2i.! ___ - - fo•

Provides additional
facilities for man/machine
communication

.Selects job irom queue for processing

• Transmits (part of) job's input file to
704x buffers
.Establishes 704x buffers to receive
job's output

• Provide for tape I/O

• Transmits appropriate programming

system (DC-IBSYS) to 709x
.Transfers control to job via DC-IBSYS

Figure 1.

DCS machine configuration.

terns. The other is the trend towards increasingly
automatic operating systems. Figure 1 shows the
general, machine configuration of DeS and the
principal functions of the various equipments.\
The main advantages of DeS are that 1) it mirtimizes the need for operator intervention (and generally overlaps such intervention with useful computation) and 2) it processes several jobs in parallel.
The parallel processing of jobs makes it possible
for the system to time-share its various equipments
to a greater extent than is realizable with serial
processing.
In genera], any given job which DeS processes
goes through three phases: a preprocessing phase,
a processing phase and a postprocessing phase.
Each phase consists of one or more stages. The
preprocessing phase consists, of the input and setup
stages; the processing phase consists of the execution stage; and the postprocessing phase consists of
the breakdown, punch, print and purge stages. An
additional stage, the utility stage, is not associated
with any of the three phases; it occurs in lieu of the
execution stage. The phases and stages, and their
principal functions, are shown in Figs. 2, 3 and 4.
With regard to modeling, three properties of DeS
stand out in importance.
1. Commutator Control. The main loop of the
Des control program consists of a comm utator,
i.e., a sequence of gates (or switches) which relinquishes,control to various parts of the DeS con-

Prod,:s sing Phase

I
I
I

U.!i~tr E~s..e:' ___-_-_-_-_-_g_

_______

L_

• Performs tape-to-print I tape -to-punch
and card-to-tape operations for records

in DCS format
L -________________
__

Figure 3.

DCS: processing phase.

I- ___ ~~a~~~'!. ~~~

____ _

eIf necessary, deblocks
709x output (from DeS format) and transmi,ts to tape
e Rewinds tapes and returns
them to availability status
.If necessary, deblocks 709x
output for (simulated) 720
printing

r- - - - - -

Postprocessing Phase

...-_+-__--1

~uE-<:..hl'~.s.e_ - - __]

• Punches output previously
stored on disk

r- - - - - -

~rin.! ~t~.I~ -

- - __]

I---.....f • Prints output previously
stored on disk

r- - - - -I

L -_ _

Figure 4.

.!:'~ll.e_S.!a.B':.. -

- - __]

• Purge s data pertaining to
job from 704x and disk

DCS: postprocessing phase.

,

129

SIMULA TION OF A MULTIPROCESSOR COMPUTER SYSTEM

trol program for only very short bursts of time. *
Therefore, in a strictly imitative model, the model
clock would advance in microscopic increments.
This renders a strictly imitative approach incompatible with a macro-level model.
2. Parallel Processing. The fact that DCS processes jobs in parallel means that the model must
view all jobs in the system concurrently. This requirement has led to the system-state approach
described in Section 6.
3. Facility Sharing. For efficiency purposes certain facilities within a multiprocessor system are
generally shared by several jobs. An important
instance of facility-sharing in DCS is the sharing of
the disk by programs residing on the 709x and 704x.
Whenever programs on both computers make competitive demands for the disk, one program is delayed while the other is serviced. Thus, the sharing
of facilities is a major contributor to overhead t
occurring in a multiprocessor system. The treatment of overhead in the model is of basic importance and is handled by the Overhead Analyzer.

r'

-------------:1

0 0

0

1
1
• • •
I
L ______________ .J

Remote I
Stations

Key
Punch

Central
In

Central
Out

r--- - - - - - - - - - - - ,

.----.

o
o

3. THE SIMULATED SYSTEM
The extent of the simulated system is indicated in
Fig.5.
An individual job may be submitted by a programmer at a remote station or a remote terminal;
it is at this point in time that simulation of the job
begins. Simulation of the job continues until the
time the job is returned to the originating station or
terminal. Thus, the model is able to give simulated
results on turnaround time. The gross events for a
job submitted at a station are the following:
• A messenger picks up the job at the station and transmits it to keypunching
and/or "central in" of the computer system.
• The Job is processed by the computer
system proper and stacked at "central
out" of the computer system.
• A messenger picks up the job at "central
out" and delivers it to the originating
station.
For a job submitted at a remote terminal, messenger
pickup service is not required; messenger delivery
*A multiprocessor control program is mechanized in this way
in order to (try to) keep the various equipments in the system
continually busy.
t Overhead, in a general sense, is defined as time not devoted
to the performance of directly useful work. Overhead is defined
in a numerical sense under "Updating the Matrix" in Section 6.

•
•
•

L _____________
Computer System Proper

Figure 5.

J

o

___ .J
Remote
Terminals

Simulated system.

service mayor may not be required, depending on
whether or not off-terminal output is generated.
An individual job is simulated at a more detailed
level during its passage through the computer system proper. Here, a job is simulated at the "stage"
level. Thus, the model is able to give simulated
results on throughput time, i.e., time through the
computer system proper. Figure 5, Computer System Proper, shows the 12 stages included in the
model. In a typical case a job might be processed
by the following stages:
Card input stage-to read job's input onto disk;
Setup A stage-to mount an input tape for the job;
Setup B stage- to convert contents of input tape to
an internal processing format;
Execution stage-to perform job's main execution
(input from disk and output to disk);
Breakdown stage-to reconvert tape output and release tape;

130

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

Punch stage--to punch output stored on disk; and
Print stage-to print output stored on disk.
The arrows shown in Fig. 5 indicate the precedence relations among stages. This concept is an important one in connection with a multiprocessor
system and will be discussed in Section 6 (under
"Software Parameters").

5. THE JOB GENERATOR
An individual job fed to the Simulator is characterized by 21 parameters:
1. Job identification number.
2. Time-of-arrival in system.
3. Station or terminal at which job ar-,
rives.
4. Job priority, e.g., 0,1,2, ... , with
"zero" the lowest priority.
5. Maximum time in execution stage, as
specified by programmer. *
6. Maximum number of lines of printed
output, as specified by programmer.
7. Maximum number of cards of punched
output, as specified by programmer.
8. Keypunching time.
9. Whether job enters computer system
via cards or tape.
10. Whether I/O is direct mode or compatibility mode. t
11. Rate of I/O calls during execution
stage.
12. Number of cards of input.
13. Number of characters of remote terminal input.

4. OVERVIEW OF THE SIMULATION
SYSTEM
The multiprocessor simulation system (Fig. 6)
consists of two computer programs: the Job Generator and the Simulator.
The Job Generator is an auxiliary program which
generates the properties of jobs that are fed to the
Simulator. The program accepts as input the statistical properties of the user's job population. Its
output consists of parameters that characterize a set
of specific jobs; the set represents a sample drawn
from the user's population of jobs.
The Simulator accepts two general kinds of input:
1) the output produced by the Job Generator and 2)
user-supplied input. The latter includes parameters
that characterize the hardware system, the software
system, and the environment of the computer
system. Output from the Simulator consists of
various statistics that give measures of system performance.
The Simulator consists of two parts: the Simulator Proper and the Overhead Analyzer. The Overhead Analyzer is subordinate to the Simulator
Proper and services the Simulator Proper on demand. The Simulator Proper is virtually independent of the computer system configuration, the
configuration-dependence being buried almost exclusively in the Overhead Analyzer.

·Parameters (5), (6) and (7) are programmer-specified cutoff
parameters.
t Two modes are available in DCS for data transmission between the 709x and 704x: direct and compatibility. Direct
mode I/O conventions take full advantage of DCS facilities
whereas compatibility mode I/O conventions do not; thus direct
mode transmission is faster. Jobs written in FORTRAN IV,
COBOL and MAP operate in the direct mode inasmuch as the
IBM 7090/7094 IBJOB Processor operates on DCS in the direct
mode. Other kinds of jobs written for the standard 709x Data
Processing System operate on DCS in the compatibility mode.

User-supplied Input:
• simula tion control parameter s
.hardware parameters
• software parameters
• environmental parameters

SIMULATOR

r------------,
I

.......
I

Statistical
Properties
of User's Job
Population

r----

r--JOB
GENERATOR

J..
Parameters for
Specific Set of Jobs

T
I

I
I
I

I

.

PART I:

SIMULATOR PROPER

~

I
I

~ Meas ures of

PART II:

I
I
I

I

1
OVERHEAD ANALYZER

I

I

I

I

I

L___________ --'
Figure 6.

Simulation system.

-J
=:e

-,

Sy stem
Perfo

"""-

SIMULATION OF A MULTIPROCESSOR COMPUTER SYSTEM

14.
15.
16.
·17.
18.
19.
20.
21.

Base time* for setup A stage.
Base time for setup B stage.
Base time for execution stage.
Base time for utility stage.
Base time for breakdown stage.
Number of cards of punched output.
Number of lines of printed output.
Number of characters of remote terminaloutput.

It is the function of the Job Generator to construct

sets of job parameters that reflect the actual jobs of
a particular user's installation. Thus, the input to
the Job Generator consists of statistics on the user's
job population. The input consists mostly of 1)
frequency distributions for individual job parameters and 2) data specifying correlations among
various parameters.
In order to help specify the generator an extensive
analysis was made of a full month's actual data of
a large aerospace company. The analysis included
the computation of frequency distributions, means
and standard deviations for all job variables, as well
as the computation of scatter diagrams and correlation coefficients for various pairs of variables.
In addition, statistical significance tests were made
in order to insure that the data sample was sufficiently reliable.
6. THE SIMULATOR
In this section we describe the Simulator itself.
The section consists of six parts. The first two discuss input and output of the Simulator respectively.
The third part discusses the basic approach of the
model, the system-state approach. Part four presents the model logic. The fifth part reviews some
basic concepts in Simscript, the language in which
the model is mechanized. And the final part describes the program organization of the Simulator.

Simulator Input
In addition to the sets of job parameters fed to the
Simulator (Section 5), four other classes of parameters are required: simulation control parameters,
hardware parameters, software parameters and environmental parameters.
Simulation Control Parameters. Parameters that
control simulation include 1) time simulation be*Base time for a multiprocessor stage is the processing time
for that stage under conditions of "no overhead" in the multiprocessor system. In general, actual processing time for a stage
is greater than base time due to the existence of overhead.

131

gins, 2) time observation begins,t 3) time simulation
ends, and 4) options governing simulation output.

Hardware Parameters. Hardware parameters include 1) number of read-punch units, 2) number and
types of printers, and 3) number of remote terminals. Thus, hardware parameters serve to specify
an equipment configuration.
Software Parameters. Software parameters enable
us to study the effect of scheduling jobs within a
multiprocessor system under various scheduling
policies.
Fixed Versus Dynamic Stage Scheduling. One
such parameter is fundamental and specifies the
stage scheduling mode: fixed or dynamic. DeS,
as implemented, schedules job stages in a fixed
sequence, i.e., a given job has its stages executed in
an unvarying sequence each time it is run. It is
possible" however, for a multiprocessor control
progranl to schedule job stages dynamically, i.e., in
accordance with on-the-spot conditions within the
system. The idea of dynamic scheduling in connection with parallel processing of jobs has been suggested by Leiner et al. 6
With regard to dynamic scheduling the concept
of precedence relations is basic. In Fig. 5, if two
stages are connected by arrow (e.g., execution and
breakdown), then one stage (execution) must precede the other (breakdown). However, if two stages
are not connected by arrow (e.g., punch and print),
then the order in which the stages are executed is
immaterial. Under the dynamic scheduling option
the model observes the stage precedence relations
shown in Fig. 5, with the pool queue stage holding
the queue of jobs scheduled for the punch, print,
and remote terminal output stages.
Stage Queue Disciplines. Each stage in the simulated computer system has a job queue associated
with it. For each job queue there is a queue discipline which specifies the basis on which jobs in the
queue are ranked for service. The queue disciplines
to be invoked at various multiprocessor stages are
specified by means of a class of software parameters.
At the print stage, for instance, one might choose
to service jobs in the queue 1) on the basis of priority and time-of-arrival in the computer system; 2) on
the basis of priority, maximum number of lines of
tIn simulating a traffic system it is sometimes useful to consider the simulation period as consisting of an initialization
period followed by an observation period. This enables the user
to suppress the gathering of statistics while the system is building
up into a more-or-Iess "steady state." The feature has been used~
for example, in the simulation of an automobile traffic network.

132

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

printed output, and time-of-arrival in the computer
system; or 3) on some other user-specified basis.
Each of these options is available by parameter,
with option (3) requiring user-supplied code in the
program.
Queue discipline options are also available at the
execution, punch, terminal input and pool queue
stages.
The implementation of queue discipline options
in the model raises a question in Simscript. In the
terminology of Simscript the problem of ranking
jobs in a queue becomes the following: How can
the entities belonging to a Simscript set be ranked
on the basis of n attributes, given that Simscript
provides machinery for rankipg on the basis of one
attribute only? A discussion of the problem is given
in the Appendix.

Cutoff Parameters. A final class of software
parameters specifies 1) the maximum time any job
can spend in the execution stage; 2) the maximum
number of lines of printed output for any job; and
3) the maximum number of cards of punched output
for any job. These installation-specified cutoff
parameters are used by the multiprocessor system
in the event the programmer himself does not
supply overriding cutoff parameters.
Environmental Parameters. Environmental parameters specify the environment within which the computer system operates. These parameters include
the following: 1) the number of stations in the system, 2) the messenger pickup and delivery schedules
at each station, and 3) the messenger transmission
times from (to) each station to (from) the computer
system.
Simulator Output
Simulator output reports are delivered at intermediate points of simulation as specified by user
option and at the end of simulation. Each report
contains two types of statistics: updating and cumulative. Updating statistics are those that are gathered since the issuance of the previous output report, while cumulative statistics are those that are
gathered since the beginning of observation.
Before describing the items of output on a report,
we define four kinds of statistics:
1. Throughput time for a job is defined as the time
it takes for the job to pass through the multiprocessor com puter system.
2. Turnaround time for a job is defined as the difference between the time the job is returned to a
station~nd the time the job· was submitted to the
station.

3. Each job is assigned a sequence number when
it enters the computer system. Similarly each job
is assigned a sequence number when it exits from
the computer system. The computer system service
displacement for a job is defined as the computer
system entrance number minus the computer syst1em
exit number. The absolute computer system service
displacement is defined as the absolute value of the
computer system service displacement.
4. Corresponding to (3), a· job is also assigned
sequence numbers when it enters the system at a
station and when it leaves the system. This gives
analogous definitions for system service displacement
and absolute system service displacement.
The definitions in (3) and (4) make it possible to
measure the extent to which the (computer) system
deviates from being a first-in, first-out service facility.
A simulator output report contains ten c:lasses of
statistics:
1. Overall performance of the systemincluding the mean, high, low, range
and standard deviation for each of the
following:
throughput time, turnaround time, absolute computer system service displacement, and absolute
system service displacement.
2. Job queues at stations.
3. Job queues at the various computer
system stages.
4. The activity/inactivity of the various
computer system stages.
5. Computer system stage performance,
including base time vs overhead time.
6. The activity/inactivity of computer
system equipments.
7. Throughput time by priority.
8. Turnaround time by priority.
9. Turnaround time by station.
10. The distribution of jobs within the system.
Figures 7, 8, 9 and 10 illustrate selected sections
of output in more detail. Figure 7 illustrates job
queues at computer system stages. Figuw 8 illustrates computer system stage performance. Figure
9 illustrates activity/inactivity of computer syst1em
equipments. And Fig. 10 illustrates throughput
time by priority.
In addition to the aggregative statistics above,
detailed statistics are collected on each individual
. job processed by the Simulator.

133

SIMULATION OF A MULTIPROCESSOR COMPUTER SYSTEM
SECTION 3.

STAGE QUeUE S

SU8SFC T10N 3.1

UPDA TI NG

NO. OF JOIiS
IN QUEUE
A T START OF
REPORTI NG
PERIOO

ST4GE

(11

C 21
C 31
141
( 51
161
11)
181
191
( 10)
C 11)
I 12)

CARD INPUT
TAPE Il,iPUT
TERM INAl INPUT
SETUP A
SETUP B
EXECUTION
UTILI TY
AREAKOOWN
POOL QUEUE
P UNC H
PR INT
TERMINAl OUTPUT

NO. OF JOBS
IN QUEUE
AT END OF
REPORTING
PERIOD

MEAN NO. OF
JOBS IN QUEUE
DURI NG
REPORTING
PERIOD

0
0
0
0
0
0
0
0
0
0
0
0

2.1911

TI ME
QUEUe
EMPTY
2.1561
4.0000
4.0000
4.0000
4.0000
1.6216
4.0000
4.0000
4.0000
3.9076
3.8839
4.0000

o.
o.
o.
o.
8.9819
o.
o.
o.
0.0541
0.0434

o.

TI ME
QUEUE
NONEMPTY

JOBCkJEUE
HOURS

1.2439

11.1645

o.

o.
o.
o.
o.
35.9216
o.
o.
o.

O.

o.
o.
2.3124

o.
o.
o.

0.'2188
0.1738

0.0924
0.1161

o.

o.

Job queues at computer system stages.

STAGE PERFORMANCE

I).

SUASFC T ION 1).1

UPOA TI N:>

STAGE
STAGE

01 MEN-

DC SYSTEM
OVERHEAD
TIME

BASE
TI ME

SION

1.~059

1
1
1
1
1
1
1
1
1
3
1

111
CAItO INPUT
C21
TAP!, IfIIPUT
131
TERMINAL INPUT
141
SETUP A
f 51
SF.TUP R
161
FXFCUTIUN
(71
\JTIl ITY
(816REAKOr:JWN
f 101 PUNCH
Cll)PRINT
(12) TERMINAl OUTPuT

13111hl21

0.0200

O.
O.
O.

0.4178

O.
O.

o.
O.
o.

0.3067
3.0251

0.0599
0.3463

2.5466
0.0849

o.

O.

OVERHEAD
FACTOR
1411311111

1.3259

o.

O.

O.

Figure 8.
6.

STAGE
EXECUTION
TIME

121

111

SECTIO~

LOW NO. OF
JOBS I~ QUEUE
DUlliNG
REPJRT I'4G
PER DO

26
0
0
1
0
32
1
0
0
4
2
0

0
0
0
0
0
26
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0

Figure 7.
SECTION

HIGH NO. OF
JOBS IN OUEUE
DURING
REPORTING
PERIOD

NET
GROSS
MUL TI PRoceSSI NG MULTI PROCESSING
FACTOR
FAC TOR

0.49

1.0153

o.
o.
0.4178
o.

o.

2.5466
0.0849

161IlIlSYS BUSY T

151C 31/SYS BUSY T

0.49

o.
o.

O.
O.

o.

1.0000

0.16

0.16

o.

1.0000
1.0000

o.

0.95
0.03

0.95
0.03

0.3666
3.3714

1.1955
1.1145

0.14
1.26

0.11

o.

O.

o.

O.

o.

o.

O.

1.13

o.

o.

Computer system stage performance.

EQUIPMENT ACTIVITY/INACTIVITY

SUBSECl ION 6.1

lIPOA TI NG
DISTRIBUTION OF OBSERVATION TIME
BY EOU I PMENT BUSY/I Dl. E

EOUIPMENT

Tl ME

709X DATA PROCESSING SYSTEM
704X OATA PRnCESSING SYSTEM
CARD READER
1
CARn PUNCH
1
PRINTER
1
PR INTFI<
2
PR INTFR
:\
R FIoIOTE TERMINAL

BUSY

IDLE

2.5466
2.6857
1.3259
0.3666
1.6554
1.2446
O.47i4

1.4534
1.3l't3
2.6741
3.6334
2.3446
2.1554
3.5286
4.0000

o.

Figure 9.

HSTRIBUTION OF SYSTEM bUSY TIME
BY EQUIPMENT 8USY/IDLE

PEPCENTAGE
[OLE
BUSY

BUSY

IDLE

63.7
67.1
33.1
9.2
41.4
31.1
11.8

2.5466
2.6851
1.3259
0.:\666
1.6554
1.2446
0.4114

0.1391

o.

36.3
32.9
66.9 \
90.8
58.6
6t1.9
88.2
100.0

TIME

o.

o.

1.3598
2.3191
1.0303
1.4411
2.2143

l.6851

PERCENT AGE
BUSY
IDLE
94.8
100.0
49.4
13.7
61.6
46.3
17.6

o.

5.2

o.

50.6
86.3
38.4
53.7
tl2.4

IDO.O

Activity /inactivity of computer system equipments.

SECTION 1. THROUGHPUT TIMF BY PRIORITY

PR lOR I TV

NUMBER OF

THROUGHPUT TIME (MINUTESI

JOB S

o

Bl

1

3

Figure 10.

LOW

MEAN

HIGH

30.19
10.96

18.63

0.55

18.10

3.13

Throughput time by priority.

RANGE

18.08
15.51

STANDARD
DEVIATION

21.52
6,.3~

134

PROCEEDINGS~SPRING

JOINT COMPUTER CONFERENCE, 1966

The System-State Approach.

overhead empirically, i.e., by observing the effects of
overhead in an actual multiprocessor system. This
kind of measurement has turned out to be feasible.
The kind of measurement required in support of a
strictly imitative model might not have been feasible. A strictly imitative model would have required
an extensive analysis and timing of the multiprocessor control program itself.
4. The model is relatively independent of the
computer system configuration being modeled. The
model can be viewed as consisting of two components:
a large-sized configuration-independent
component and a small-sized configuration-dependent component. Since these components are practically distinct, the effect of making a change to the
computer system configuration can be determined
on the basis of making a corresponding change to
the appropriate part of the configuration-dc;~pend'ent
component of the model.

In simulating a multiprocessor system at a macrolevel we have rejected a strictly imitative approach
and have constructed a model based upon the system-state approach. The basic concept in this approach is that the multiprocessor computer system
is consid~red to "change state" whenever any job in
the computer system completes any stage or whenever a new job enters the computer system. Each
such change of state is accompanied by an advance
in the model clock.
The system-state approach yields four important
benefits:
1. The model clock is advanced in the largest
possible incremen,ts, consistent with a faithful simulation. Consequently, the resulting model is at an
appropriate level of abstraction and its running time
is relatively short.
2. The system-state approach is conceptually
straightforward whereas a strictly imitative approach would have been conceptually difficult. By
definition, a strictly imitative approach is one in
which the model logic resembles in very large measure the logic of the multiprocess or control program
itself. Hence, a strictly imitative approach leads to
model logic which tends to become as complex as
multiprocessor control program logic.
3. In order to characterize multiprocessor overhead in the model, it suffices to measure actual
2

~

3

Model Logic
In the system-state approach the statt! of the
multiprocessor computer system is repres1ented by
a 7-by-12 matrix (Fig. 11). The 12 columns of the
matrix represent the 12 stages of the model. The
movement of a job through the computer system
is represented in the model by the movement of a
job from column-to-column of the matrix.
Not all elements of the matrix are relevant. Some
elements are never relevant; some are rele:vant for
5

4

card
input

tape
input

terminal
input

setup
A

setup

row·vector

B

6

7

8

9

execu- utility break- pool
down queue
tion

10

11

punch

print

terminal
output

12

d

= dimension

X

X

X

X

X

X

X

X

X

X

X

X

2

P

= queue

X

X

X

X

X

X

X

X

D

F

F

F

3

q

= job queue

X

X

X

X

X

X

X

X

D

F

F

F

4

e

= job execution

X

X

X

X

X

X

X

X

0

X

X

X

5

t

= base

X

X

X

X

X

X

X

X

0

X

X

X

6

v

= overhead accumulation

X

X

X

X

X

X

X

X

0

X

X

X

7

s

= successor

X

X

X

X

X

X

X

X

D

X

X

D

discipline

time remaining

stages

Figure 11.

System-state matrix.

135

SIMULATION OF A MULTIPROCESSOR COMPUTER SYSTEM

fixed stage scheduling only; and some are relevant
for dynamic stage scheduling only.
The System-State Matrix. The system-state matrix
consists of seven 12-dimensional row vectors.
1. Dimension Vector. Let d i denote the ith element of the dimension vector d. The value d i specifies the number of jobs which the ith stage can
process concurrently. We have

d

=

(a, 1, c, 1, 1, 1, 1, 1,0, a, b, c)

where a = number of read-punch units, b = number of printers, and c = number of remote terminal
units. Note that d 9 =
since no job can be processed by the pool queue stage which is merely a
queue for punch, print, and remote terminal output
under dynamic stage scheduling.
2. Queue Discipline Vector. Let Pi denote the ith
element of the queue discipline vector p. The value
Pi is a code which specifies the queue discipline to be
invoked to rank the jobs in the queue belonging to
the ith stage.
A discussion of queue disciplines is given above
(under "Software Parameters").

°

3. Job Queue Vector. Let q; denote the ith element ofthejob queue vector q.
For i =;tf 9, qi identifies the set of jobs waiting for
ith stage execution. Thus qi is a vector. The job
identification numbers constituting this vector are
ordered according to Pi' the queue discipline for ith
stage execution.
For i = 9, qi identifies the set of jobs waiting for
10th, 11th or 12th stage execution. Again qi is a
vector. This vector is relevant only in the case of
dynamic stage scheduling. The job identification
numbers constituting this vector are ordered according to P9.
4. Job Execution Vector. Let ei denote the ith element of the job execution vector e.
Then ei, i =;tf 9, is itself a vector whose jth element
is denoted ei,j' j = 1, ... , d i . If ei,j > 0, then ei,j is
the identification number of the job being executed
in the j th position * of the ith stage. If e i,j = 0,
then no job is being executed in the jth position of
the ith stage.
The value e9 is null.
5. Base Time Remaining Vector. Let ti denote the
ith element of the base time remaining vector t.
Then t i , i =;tf 9, is itself a vector whose jth element
is denoted ti,j' The value ti,j specifies the base time
*The number of "positions" of the

ith

stage equals di.

remaining for the job in the jth position of the ith
stage.
The value t9 is null.
6. Overhead Accumulation Vector. Let Vi denote
the ith element of the overhead accumulation vector
v.

Then Vi, i =;tf 9, is itself a vector whose jth element
is denoted Vi,j' The value Vi,j specifies the overhead
time which has accumulated for the job in the jth
position of the ith stage.
The value V9 is null.

7. Successor Stages Vector. Let Si denote the ith
element of the successor stages vector s.
Then Si is itself a vector whose jth element is denoted Si,j' The value Si,j is in turn a vector that specifies the successor stages for the job in the jth position of the ith stage.
Updating the Matrix. The essential steps in updating the system-state matrix are the following:
1. Overhead Factor Vector. In accordance with
relevant properties of the system-state currently
existing, the subroutine called the Overhead Analyzer computes the overhead for each job being
processed. Relevant properties include 1) the particular stages that are active; 2) the number of jobs
that are active in each of those stages; and 3) the
input/output properties of active jobs. The overhead factor for the job in the jth position of the
ith stage is designated fi,j ~ 1.
An example of an overhead factor is the following: Assume "printer 2" has a maximum rate of
1100 lpm and assume that due to overhead existing
in the current system-state its actual rate is 1000
lpm. Thenfll,2 = 1.1.
The analysis supporting the specification of the
Overhead Analyzer is discussed in Section 7.

2. Potential Advancement of Model Clock.

The

potential advancement in the model clock is
w =

~~n {ti,jfi,j},

ej,j > 0, j

=

1, ... , d j , i
=

1, ... , 12

No job iIi the-system will complete its current stage
until this amount of time passes.
3. Actual Advancement of Model Clock.

The

actual advancement in the model clock is
r

= min {w,zl

where z is the amount of time remaining before the
next job enters the computer system.

136

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

4. The New Base Time Remaining Vector. Let
t(g) = (t~g») = «t~~»))
I.)

1

designate the value of the t vector following execution of the gth system-state. And let
e(g) = (e~g») = «e~~»))

printer.

I.)

1

designate the value of the e vector following execution of the gth system-state. Then the value of the t
vector following execution of the (g + 1)th systemstate is
where
t.(g+
. I) =

I.,

e~g~ =

{o,

I.)

t~g.) _ ~, e~g.) >
I.)

fi.j

I.)

Each printer in the simulated computer
system is an entity; it is permanent since it exists in
the system for the full course of simulation.
Examples of attributes are "number of ,cards of
input" and "time printer busy"; the former is an
attribute of job while the latter is an attribute of

printer.

°
°

An example of a type of Simscript set is stage
Each of the 12 stage queues is a set. The
members of each set are the jobs in the queue.
An exogenous event is an event caused by forces
outside the boundary of the simulated syst1em. An
example is the event ENTER, which marks the I~n­
trance of a job in the system.
An endogenous event is an event caused by preceding events within the boundary of the simulated
system. An example is the event DONE, which
marks the completion of a job on the computer.

queue.

5. The New Overhead Accumulation Vector. Let
v(g) = (v~g») =
1

«

v~~»))
I.J

designate the value of the v vector following execution of the gth system-state. Then the value of the
v vector following execution of the (g + 1)th system-state is
where

6. Inter-Stage Movement of Jobs. Any job whose

stage is complete is moved from its current stage to
its new stage queue. As many jobs as possible are
moved from stage queues to stage execution.
Review of Simscript Concepts

The Simulator has been mechanized using the
Simscript language and hence is structured within
the general framework provi~ed by Simscript. The
reader is referred to Dimsqale and Markowitz 7
for a description of Simscript or to Markowitz
et al 8 for a complete reference manual on the language. In this section we review by example the
basic Simscript concepts, namely, the concepts of
temporary entity, permanent entity, attribute, set,
exogenous event and endogenous event. Entities,
attributes and sets depict the status of the simulated
system, and events cause changes to the status.
An example of a type of temporary entity is job.
Each job fed to the Simulator is an entity; it is
temporary since in general the job is not present in
the system during the full course of simulation.
An example of a type of permanent entity is

Program Organization

The Simulator consists ,of two phases that are executed serially. Phase I performs the simulation and
writes output data on disk, and Phase II delivers the
output reports constructed from this data.
Data Description. The data description of the Simulator is expressed by means of 2 types of temporary
entities and their attributes, 10 types of permanl~nt
entities and their attributes, and 6 types of SI~tS.
Temporary Entities.
A temporary entity JOB
exists for each job in the simulated system. This
entity. is described by a total of 46 attributes. A
temporary entity BATCH exists for each batch of
jobs being carried 1) from station to keypunching
and/or "central in" and 2) from "central out" to
station. This entity is described by a total of thlree
attributes.
Permanent Entities. A permanent entity STAGE
(with 29 attributes) exists for each of the 12 stages
in the computer system. A permanent entity ST ATION (with 27 attributes) exists for each station in
the system. A permanent entity READ /l?UNCH
(with four attributes) exists for each read/punch
unit in the computer system. A permanent entity
PRINTER (with three attributes) exists for each
printer in the computer system. And a permanc!nt
entity PRIORITY (with 10 attributes) exists for
each job priority level.
In addition to the above, four more permanent
entities serve array-dimensioning functions.
Finally, the (implied) permanent entity SYSTEM
is described by a total of 94 attributes.

SIMULATION OF A MULTIPROCESSOR COMPUTER SYSTEM

Sets. A set STATION QUEUE is owned by each
station in the system. A set KEYPUNCH QUEUE
is owned by the SYSTEM: A set STAGE QUEUE
is owned by each stage in the computer system. A
set EXECUTION QUEUE is owned by the SYSTEM. A set CENTRAL OUT QUEUE is owned
by each station in the system. And a set BATCH
QUEUE is owned by each batch of jobs in the system.
The member entities of each of the above sets are
JOB's.
Program Logic. The logic of the Simulator is expressed by means of 2 exogenous event routines
and 10 endogenous event routines. For supporting
logic the event routines, in turn, call upon 28 subroutine subprograms, 3 function subprograms and
10 report subprograms.
Exogenous Event Routines. The routine GO performs program initialization. This routine is the
first in the program to be executed and is executed
once only. The routine ENTER is executed each
time a job is entered in the simulated system.
Endogenous Event Routines. The routine LOOK
is executed at the beginning of the observation
period. This routine performs initialization for
statistics gathering. The routine STOP is executed
at the conclusion of the simulation period. This
routine terminates Phase I of the Simulator and
calls report-writing Phase II. The routine STAT is
executed each time a report is to be issued. This
routine generates output data for the report. The
routine TO is executed each time a messenger picks
up a batch of jobs at a station for transmittal to
keypunching and/or "central in" of tb,e computer
system. The routine KEY is executed each time a
batch of jobs arrives at keypunching. The routine
ON is executed whenever there arrives at the computer system 1) a batch of jobs direct from a. station; 2) an individual job via keypunching; or 3) an
individual job via a remote terminal. The routine
DONE is executed each time the computer system
completes processing of a job. The routine FROM
is executed each time a messenger picks up a batch
of jobs at "central out" for transmittal to a station.
The routine EXIT is executed each time a job exits
from the simulated system. And the routine STEP
is executed at the conclusion of each system-state.
This routine carries out the logic indicated under
"Model Logic" above.

137

7. ANALYSIS OF MULTIPROCESSOR
OVERHEAD
The specification of the Overhead Analyzer represented a major phase of the modeling process. The
specification was based on an intensive, empirical
analysis of the occurrence of overhead in an actual
multiprocessor system (DCS).

Modification to DeS Operating System
In order to measure actual DCS overhead, the
DCS Operating System was modified so that it produces a binary tape containing a sequence of "timestamps." The time-stamps are created during DCS
operation and stored in 460-word data buffers, just
like other output. The resulting time-stamp data
provides a profile of actual system-states and a profile of individual jobs passing through the computer
system.
Prior to modifying DCS we consulted with DCS
experts on the question of what effect the collection
of time-stamp data would have on actual DCS operation. Their judgment was that DCS operation
would be affected in only a negligible way and that
the act of observing DCS "from the inside" would
not affect significantly our observation results. *
This judgment was shown to be correct by an actual
experiment carried out following modification of
the system. The experiment consisted of running a
set of jobs twice-under standard DCS and under
modified DCS. The running times differed by 15
hundredths of 1 percent-specifically 3 seconds in
some 34 minutes.

Time-Stamp Data
Entries on the time-stamp tape are of three types:
state identifiers, events and I/O counts.
State Identifiers. Each occurrence of a change-ofstate in DCS causes a time-stamp entry identifying
the new system-state.
Events. Each occurrence of an event in DCS causes
an event time-stamp entry. An event time-stamp
consists of four components: 1) type of event, 2)
buffer saturation indicator, 3) job number identifying the job associated with the event, and 4) time of
occurrence. The principal types of events timestamped are the following:

* An exception to this is the occurrence of buffer saturation;
the collection of time-stamps induces buffer saturation somewhat earlier than normal.

138

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

• Reading one card from the ith reader,
i = 1,2, ...
• Printing one line on the ith printer, i =
1,2, ...
• Punching one card on the ith punch
unit, i = 1,2, ...
• Typing one character.
• Reading one card image from tape.
• Beginning/ending of DCS purge stage.
• Beginning/ending of system load.
• Beginning/ending of library load.
• Beginning/ending of dump.
I/O Counts. Each occurrence of an end-of-systemstate on DCS causes seven time-stamp entries giving
counts of input/output activity that occurred
during the preceding system-state:
•
•
•
•
•
•
•

Number of 709x reads.
Number of 709x writes.
Number of 709x non-data selects.
Number of 709x input J?uffer loads.
Number of 709x outpu~ buffer loads.
Number of 704x input buffer loads.
Number of 704x output buffer loads.

Analysis of Time-Stamp Data
Using routines that print and plot time-stamp
data and that compute overhead factors for specified system-states, we have been able to construct
appropriate statistical distributions for inclusion in
the Overhead Analyzer of the model.
Table 1 illustrates four sets of overhead factors
collected in 5-second intervals from a 7094/7044
installation. Each of the four columns represents
a cumulative frequency distribution. The meaning
of a typical entry in this table, e.g., entry 45 in column 2, is as follows: Consider the case where jobs
on the 7094 are in the compatibility mode and issue I/O calls at a rate of less than 4-per-second, and
compute overhead factors for the 1100 line-perminute printer every 5 seconds. Then 45 percent of
these overhead factors are 1.04 or less.
8. SUMMARY
With the advent of multiprocessor computer systems the prediction of computer system performance on a prescribed job load has become a problem of considerable complexity. This paper has
described a model whose principal purpose is to
ease this problem. A second ,important purpose of
the model is to determine the effect of varying basic

Table 1.

Illustrative Overhead Factors

Cumulative Percentage
Printer (1100 lpm)
Overhead Reader
Com patibility
Factor
I Direct
<4 I/O
calls per
> 10 I/O calls
per sec
sec
(1)
(2)
(3)
(4)
1.01
1.02
1.03
1.04
1.05
1.08
1.15
1.30
1.50
2.00
2.50
3.00
3.50

64
76
78
80
87
89
99+

12
26
36
45
49
59
75
84
91
98
99+

0
2
3
9
14
19
27
42
61
77
91
97
99+

4
10
22
26
30
36
52
68
84
93
97
99+

system parameters-hardware, software and environmental.
The model is at a macroscopic level, i.e., it attempts a relatively high degree of abstraction of the
real system. This level of simulation has been made
possible in connection with a multiprocessor system as a result of using the system-state approach,
the main idea in the model. With simulation at a
macro-level the running time of the program is attractively short. For a sample of the runs completed to date the ratio of real time to simulatled
time is 195. That is, a typical 16-hour workload
can be simulated in less than 5 minutes. The 5
minutes here refers to 7094 time using a 7094/7044
Direct-Couple System to host the simulation.
Following are some representative questions to
which the model has helped provide answers:
• For a given equipment configuration and a speci- '
fied job load, what improvement in throughput
can be achieved using dynamic stage scheduling
rather than fixed stage scheduling?
• If all jobs submitted from Station 1 are assign1ed
priority level 9 (highest priority) rather than thc!ir
currently assigned priorities, what change will result in the mean throughput time (and high
throughput time) for jobs submitted from each of
the individual stations?

139

SIMULATION OF A MULTIPROCESSOR COMPUTER SYSTEM

• If a third printer is added to a given two-printer

equipment configuration, what change will result
in the mean number (and high number) of jobs in
the print stage queue? What change will result
in printer equipment utilization? Answer questions two ways-assuming third printer 600 lpm
and 1100 lpm.
• For a given equipment configuration and a specified job load, suppose the queue discipline for the
execution stage is changed from 1) priority and
time-of-arrival to 2) priority, maximum time in
execution stage, and time-of-arrival.
What
change will result in the mean throughput time
(and high throughput time)? What change will
result in the mean (high) absolute computer system service displacement?
• Suppose messenger service is improved by adding
one messenger and by making prescribed changes
in the messenger schedule. What change will result in the turnaround time at each station?
An indication of the level of effort of the multiprocessor simulation project is the amount of programming involved. The Simulator itself consists of
some 2650 source cards in Simscript. The Job Generator consists of some 375 source cards, also in
Simscript. The modification to DCS consists of
some 650 source cards in MAP. And the routines
that analyze the time-stamp tape produced by the
modified DCS consist of some 2175 source cards,
in FORTRAN and Autocoder.
ACKNOWLEDGMENTS
I am grateful to R. A. Rock and L. A. Verret for
their collaboration on the multiprocessor simulation project, to H. Jacobs for his consulting services
on the project, and to B. Dimsdale for his counsel
and encouragement.
Appendix

RANKING A SET ON n ATTRIBUTES
Simscript provides automatic machinery for ranking the entities of a set on the basis of one attribute.
It is sometimes necessary, however, to rank the

entities of a set on the basis of n attributes. In such
a case one can employ a function that maps n attribute values into a "'composite attribute value"
and rank the set on the basis of the composite
attribute.
Consider, for example, the following problem:
Let n equal the number of attributes on which
the ranking is to be based.
Let the ith attribute "outrank" in importance
the U + l)th attribute, i = 1, ... , n - 1.
Let Xi denote the value of the ith attribute; assume Xi is positive integer-valued, with its maximum
mi; i.e., Xi = 1,2, ... , mi·
Then the n attribute values (Xl, ... , Xn) can be
mapped into an appropriate composite attribute
value by means of the function
n

n-l

f(xl, ... ,X n ) =

Zn

+L

i-I

Zi

II mj

j=i+l

where Zi = Xi if ith attribute is ranked "high" in
Simscript sense (i = 1, ... , n), and Zi = mi - Xi if
ith attribute is ranked "low" in Simscript sense.
REFERENCES
1. G. K. Hutchinson, "A Computer Center
Simulation Project," Comm. A CM, vol. 8, no. 9,
pp. 559-568 (1965).
2. IBM 7090/7040 Direct-Couple Operating System: Operator's Guide, IBM Systems Reference
Library, C28-6384.
3. - - : Programmer's Guide, ibid, C28-6382.
4. - - : System Programmer's Guide, ibid,
C28-6383.
5. J. H. Katz, "Simulation of a Traffic Network,"
Comm. ACM, vol. 6, no. 8, pp. 480-486 (1963).
6. A. L. Leiner et aI, "Organizing a Network of
Computers to Meet Deadlines," Proceedings of the
EJCC, 1957, pp. 115-128.
7. B. Dimsdale and H. M. Markowitz, "A Description of the' Simscript Language," IBM Systems
Journal, vol. 3, no. 1, pp. 57-67 (1964).
8. H. M. Markowitz, B. Hausner and H. W.
Karr, Simscript: A Simulation Programming Language, Prentice-Hall, Englewood Cliffs, N. J., 1963.

MARKOVIAN MODELS AND NUMERICAL ANALYSIS
OF COMPUTER SYSTEM BEHAVIOR*
Victor L. Wallace
Systems Engineering Laboratory
The University of Michigan, Ann Arbor, Michigan
and
Richard S. Rosenberg
Logic of Computers Group
The University of Michigan, Ann Arbor, Michigan

INTRODUCTION

at the expense of very large samples. Exploration
means even further calculation as parameter values
and structures are changed and solution repeated.
Even if everything has been done to reduce the system to the simplest model having the desired
properties, the calculations are still likely to be
extensive (hence expensive).
In this paper we will discuss an approach to the
solution of computing system congestion which is
very often an attractive alternative to simulation
for a system designer or "architect." The approach
is based on the use of finite-state Markov chains
as models for the system, followed by a numerical
solution of a set of algebraic equations for the equilibrium probabilities of those Markov chains. t
It will be shown that, through the use of an efficient
program for the accurate solution of large problems
of the above type, much less computation time is
needed than would be needed to simulate the same
system.
This technique also shows promise of providing a
procedure which is well suited to use on-line in a
man-machine interactive mode. In such a mode, a

The advent of multiple-access computing, the
increasing variety of processors in systems, and the
growing use of multiprocessing and multiprogramming in computing systems has put many new burdens on the computing system designer-plannerprogrammer. The selection of suitable system
structure and programming structure, as well as the
selection of scheduling rules, requires a much more
detailed and precise understanding of the stochastic
behavior of system traffic than has been required in
the past. In short, the "architect" of system hardware and software is finding a need for more and
more insight into the behavior of computers as networks of queues and processors.
As a rule, his chief tool for obtaining this insight
has been by the use of Monte Carlo simulations.
However, as the systems gain in complexity, and as
system design becomes more sensitive to the effects
of congestion, these simulations become either too
expensive or their estimations of probability too
imprecise to be viable as tools for exploring system
behavior in depth. Accuracy can be obtained only

tFollowing Churchman, 1 we note that since our procedure
does not involve "sampling" of the model, it is not a simulation
technique at all.

*This work was sponsored by the Rome Air Development
Center, Rome, N.Y., under Contract No. AF 30(602)-3558.

141

142

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

user of the procedure should be able to explore
systems freely, and without excessive delays, while
solutions to the problems he poses are prepared for
him. He should also receive precise, reproducible
answers which can be rationally compared with the
results of other analyses and other systems. The
procedure described here comes close to these goals
in many respects.
MARKOV CHAIN MODELS
It should first be pointed out that the mathematical models known as Markov chains represent
a quite broad and useful class of stochastic models
for computer systems. Indeed, most models usually
represented by networks of queues and processes
can be approximated quite closely by some model
derived from a Markov chain. However, the usual
problem encountered in the use of these models is
one of size; the number of states in the chain representing the system can easily exceed all reasonable
bounds. By going to numerical methods, rather
than the analytical methods typical of queueing
theory, it is possible to deal with much larger
Markov chains and hence to make substantial use of
their generality.
Now, in the most common cases we regard the
system being modeled as an interconnection of
queues and processes,~ with a prescribed stochastic
flow of tasks among them. In this context, any
processing capability which can be occupied by at
most one task at a time can be considered a process.
Thus an arithmetic processor, a segment of memory,
a data channel, a stored program, a console, or even
an operator or user can be considered processes.
Also, in this context, a queue is any list or collection
of uncompleted tasks whose routes are stochastically indistinguishable. There will usually be an
integer variable associated with each queue or group
of processes:. e.g., the number of tasks waiting in
that queue, or the number of processes in that group
currently occupied by tasks. Also associated with
each process will be a random time variable representing the duration of time that a task will occupy
the process. At the end of that interval the values of
some of the integer variables will change, due to the
motion of the task from the process to its next
process. Many things can happen to this flow:
processes may be blocked by other processes, preemptions may occur, priorities may be assigned.
Whatever happens it should be represented in the

model. However, in order to be solved it. must be
described in terms of a mathematical model which
is capable of solution.
As a practical matter, the most useful model for
the purpose is the Markov chain, which will be
described in the following sentences. For the sake
of generality, and in order not to lose the ability to
represent blocking, preemptions, priorities, and
other complications, this discussion is relatively
abstract and general.
The process of creating a Markovian model
whose characteristics approximate a given computer system having any complexity in its rules of
behavior is, broadly speaking, a part of queU(~ing
theory, and a thorough presentation of that process
will not be attempted here. It suits our purposes
merely to indicate the nature of the Markovian
restrictions, and so to give assurance that: Markov
chains can be often applied as models. A paper by
Smith,2 appearing in another session of this conference, presents a discussion of several such models
which represent aspects of a time-shared computer
system, along with conclusions derived from RQA-l
analysis. That paper will serve to illustrat(~ the next
remarks more concretely. Two previous applications of Markovian models and of RQA-l have also
been discussed elsewhere,3,4 and serve as good illustrations.
Consider the state of a system to be described by
an n-component vector ~= {Xt.X2, •.. ,XnJ. Let
the components Xi be integer-valued and 0 ~
Xi ~ N i , where Ni is a known finite integer., for e:ach
i = 1,2, ... , n. Let the value of the state:!. at any
particular time t be represented by a random variable ~, so that {~/' 0 ~ t < ooJ represent.s a continuous-time stochastic process. Since the value of
~, will vary with time by distinct jumps, the time
intervals between successive jumps can be designated by a sequence of random variables {Tt. 72, . . . J.
V nder certain conditions, the process 2£, can be
represented by a Markov chain. Let
i

=

1,2, ...

and
to =

(J+

(2)

so that the Ii' i = 1,2, ... , represent time values
immediately after occurrence of a jump. Then let
the following be true:
(1) For every pair of states (1, m) represent-

tIn queueing theory, the term server would be more common.

(1)

ing a jump from 1 to !!1 which is possi-

143

MARKOVIAN MODELS AND NUMERICAL ANALYSIS

ble (probability ~ 0), the sequence (TI'
T2, ••• J is a family of conditionally independent 5 random variables: given
Xt·

I

=

l,x t .

=

m.

(2) F~~ each ia~d each fixed pair of states
Q, m) in the above set

pr(Tj S T' I~tj_1 = l,~tj = mJ
= 1 _ t:-"!..!!!.T'

(3)

where v.!. •.!!!. is a positive constant.
Under these circumstances ~t is a continuous-time
finite-state Markov chain.
If we interpret the state variables as representing values of queue lengths, numbers of occupied
processes of a particular type, etc., and if we interpret the times tj as the times just after arrivals occur
or processes complete, then what this implies is that
the intervals of time between arrivals, and the intervals of time during which a task occupies a process,
must be
1. Independent of all other inter-arrival or
occupancy times, and
2. Exponentially distributed random variables when the state at the beginning of
the interval, and the consequences of
ending the interval, are known.
However, since state variables may represent any
integer variable related to the system modeled, the
latter interpretation is sometimes unnecessarily restrictive. It should especially be noted that frequently a model which is not Markovian in a particular defined state space will be Markovian if
several additional variables are added. One usually
attempts to choose as state variables Xj the smallest
set of variables for which ~t is Markovian.
The requirement that all processing intervals must
be exponentially distributed, in the sense of Eq. (3),
is often too severe a restriction. Fortunately, there
are several recourses available. First, there is a considerable range of derived distributions which can
be constructed by appropriate interconnection of
"exponential" processes. 6 In other words, a "nonexponential" process can be replaced by several artifica I exponential processes. The cost of this artifice
is the addition of more state variables, and thus an
increase in the complexity of the model. Figure 1
(adapted from a figure of Morse 6 ) shows several of
these derived distributions in order to illustrate
some of the variety of distributions available by
this means. If we represent, schematically, an exponential process by the symbol of Fig. 2, then the

3
Figure 1.

Distribution functions and density functions derived
from the exponential. The mean of each distribution
is 1/p,. (a) Exponential, parameter p,. (b) Special
second order Erlang, parameter p,. (c) Special fifth
order Erlang, parameter p,. (d) Hyperexponential,
second order P,I = p,/2, P,2 = 2p" al = a2 = 1/2.

Figure 2.

Schematic representation of an exponential process
with mean service time 1/p,.

Erlang and Hyperexponential processes can be
represented by Figs. 3 and 4 respectively.
Secondly, if only one of the processors does not
have an exponentially distributed processing interval, the entire system can be transformed into a
related discrete-time Markov chain by a process
known as imbedding.7
Once the discrete-time
imbedded chain has been solved, one proceeds
(usually in a straightforward manner) to find the
related solution of the original process. One important class of proc.esses for which this approach

Figure 3.

Schematic diagram modeling an nth order Erlang
process.

144

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

Q,

Q

-

2...

-

fL

!-L2:

--

fLn
Figure 4.

Schematic diagram of an nth order hyper-exponential
process.

is highly useful is the class of semi-Markov processes. s
This survey of modeling techniques was necessarily brief, and intended merely to indicate that a
great deal of flexibility in modeling is available if
one can treat either continuous-time or discretetime Markov chains which have a large number of
states. Again, for examples of the power of the
models Refs. 2, 3, and 4 are recommended. They
are, in fact, relatively simple models; many more
complex models can and have been treated effectively.
EQUILIBRIUM JOINT PROBABILITY
DISTRIBUTIONS
The prime objective of most analyses of queueing
systems is the evaluation of the equilibrium 9 probabilities of state. Since the state is described by the
vector {Xh X2, ... ,xn }, the probability distribution
of the state will be a multivariate distribution, and
the state probabilities will be joint probabilities for
the variables Xh X2,' •• ,X n • Once these joint probabilities are known many other probabilistic measures are readily established as marginal distributions, expectations, or simple functions of these.
Through-put rates, processor utilization efficiency,
expected waiting times, distributions of queue
lengths, distributions of the number of processe&
occupied, and probability of "busy signal" are but a
few of these which are readily computed from the
equilibrium probabilities of state.

In order to simplify what follows, we will refer to
the states without regard to their vector character.
In other words, we will refer to a state as a positive
integer i which is the result of a function i = iC~)
which assigns an integer value to each distinct vector state which occurs with a nonzero probability.
(Since each dimension of every.:! is finite, the se:t of
values of i will also be finite). The vector interpretation is readily recovered after the calculation of
the "probability of state i" is completed. Appropriate marginal distributions, expectations., etc., can
thus still be computed. By this device, we can treat
the state as a finite integer, and the vector-vallued
Markov chain {:!t: 0 ~ t < oo} by a one-dimensional
continuous-time finite-state Markov chain {it: 10 ~
t < oo}. Correspondingly, if it is a discrete-time
vector-valued Markov chain {~k: k = 0,1, ... } which
must be solved, then it can be treated as a onedimensional discrete-time Markov chain.
THE RECURSIVE QUEUE ANALYZER
The Recursive Queue Analyzer,1O RQA-l, is a
computer program designed to evaluate the equilibrium joint probability distributions of the state
variables in very large, finite Markovian quew~ing
systems. It has been designed to facilitate the
analysis of both discrete- and continuous-time
Markov chains having as many as 5000 states. The
primary design goal has been to provide a computation fast enough to encourage experimentation
with models in the study of system design. This has
been achieved through efficient use of available
(32K) high-speed storage in the computer (an IBM
7090), and through careful program design. The
program was written in the MAD language, with
selective use of the UMAP assembly language.
For a continuous-time Markov chain with a finite
state space, one can always write an equation for
the equilibrium probabilities in the form

JIQ

=

0

(4)

where 7r is a vector whose ith element is the equilibrium-probability that the system is in state i, and
Q is a matrix of constants called the transition intensity matrix of the chain. Q is descriptive of the
system model.
For a discrete-time Markov chain with a finite
state space, one can equivalently write an equation
for the equilibrium probabilities in the form
1[A = 1I

(5)

145

MARKOVIAN MODELS AND NUMERICAL ANALYSIS

where 7r has the same significance, and A is a matrix
of constants called the transition matrix of the
chain.
The RQA-l employs an iterative procedure to
determine the solution ~ to Eqs. (5) and (6). The
procedure is a straightforward power-iteration procedure,1I so that if J!.k is the kth iterate,

thrO.ughout the transition table) and r takes values
0,1,2, ... ,(Bi - fJi)/O. In other words, the quadruple (ai' fJj, 'Yi, B i) specifies the occurrence in the matrix of elements with value ai at coordinates (fJi' 'Yi),
(fJi + 0, 'Yi + 0), ... ,(Bi , 'Yi + (Bi - fJi»' Thus, the
quadruple (ai, fJi' 'Yi, B i) might represent the matrix
'Yi

~

(6)

is the (k + 1)th iterate. The matrix G may be either
equal to the matrix ~Q + I, (~ a scalar), or the
matrix ~A + (l - ~)I, (~ a scalar), depending on
whether Eq. (4) or (5) is to be solved. The ~ and ~
are chosen so as to guarantee efficient convergence
to a solution of (4) or (5).
Clearly, a 5000 degree matrix when stored as a
two-index array requires 25,000,000 locations of
storage, which is unreasonable for a "fast" program. However, both A and Q are generally sparse
matrices (have mostly zero-valued elements) and
will usually have a high degree of repetition of equal
element values. Hence a scheme of storage which
lists location information along with value information is a necessary starting point. * The repetitiveness is partially a result of a "block structure"imposed on the matrices A or Q by a choice of a
well-behaved mapping function i(x), and partially a
result of the fact that the probabilities of transition
from a state 1 to a state m are often constant functions of one or more of the coordinates of 1, at least
over some range of values. Both of these effects are
often imperfect, but still useful. . (If they were perfect, they would have to have been the result of a
process having independent projections, and the
matrices A or Q would be Kronecker sums of the
matrices of the projection processes.)
In the program a set of four vectors, together
called a transition table, are constructed which
implicitly define the matrix. Let us call them a, fJ,
'Y, and B and denote their ith elements by ai, fJi'
'Yi, and Bi respectively. The quadruple (ai' fJi' 'Yi, B i)
specifies one or more elements of a matrix in the following manner:
The value of the element is ai and its matrix coordinates are (fJi' 'Yi)' Due to the repetition usually
found in the matrices, the value ai may occur in
other locations of the matrix with coordinates
(fJi + ro, 'Yi + ro), where 0 is a constant (fixed
*The storage scheme below, and the procedure for carrying
out the iteration when using this storage scheme, were suggested
to the authors by Prof. R. V. Evans, of the Case Institute of
Technology (private correspondence).

o

o0
o0
-

0
0
0 aiO
o0 0

o

0
0
0
0

o

o

o

o

o

o

0

0

o0 0
000
o aiO
o0 0

0
0

0
0

o0
o

o

0 0
0

o0 0
o aiO

o0

0

0

0 0

(7)

and the matrices represented by the other quadruples can be considered to be added to it to form A,
or Q. If no repetition of the value ai occurs, the
value of Bi will be equal to the value of fJi'
. For this matrix storage scheme, it is possible to
carry out a vector-matrix product very efficiently.
Let 7ri denote the ith component of the kth iterate.
Then each iteration (Eq. (6» is carried out in the
following sequence:
1. The vector to contain J!.k+l is initially
zeroed.
2. Set i = 1, j = O.
3. Multiply ai by 7rfi+jo and accumulate
into 7rk~Vo.
4. Repeat step (3) for j = 1,2, ... , until
(fJi + j 0) is greater than B i.
5. Resetj = 0, and repeat steps (3) and (4)
for i = 2,3, ... , until all quadruples
have been treated.
SPEED OF SOLUTION-A COMPARISON
For the simple power-iteration used in the RQA-l
program, the number of multiplications required
per iteration is equal to the number of nonzero
elements in the matrix (A or Q). This is exactly

146

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

equal to the number of distinct pairs of states (!, m)
which represent possible starting and ending values,
respectively, of a jump in the stochastic process
{:!tl (or {xd). Thus, if we average over alli the number of distinctly different values that can be reached
in a single step from 1, and represent that average
by the symbol E, then the number of multiplications per iteration is the product ES of the average
"activity" E, and the number of states S.
In order to compare the speed of solution of
RQA-I with that of simulation in a continuoustime case, we will estimate the relative error 11 in
the computation of the equilibrium probability of
some event. Let this probability have value 7r, and
be the sum of any number of limiting state probabilities. Let the absolute initial error, resulting from
the choice of the initial iterate, be Eo. Then, it has
been shown 10 that the convergence error of the
RQA-I algorithm after k iterations is usually
(8)

In contrast, we now estimate the number of random number generations required for simulation of
the same models. It will be assumed that the limiting probability 7r is estimated by calculating the percentage of total time that the system is found to be
in the state i. Then the standard deviation s of the
estimate of 7r can be approximated by the expression
(11)

where T is the duration of the simulation (T is in the
time units of the system, as is also 1/1'). For the
absolute convergence error, 117r, to be within two
standard deviations of the estimate a duration of
simulation of
T = 8(1 - 7r)
7r

is required. The number of random numbers generated (assuming one per jump) would need to be
R = 8v(1 -

where 11' I is the nonzero eigenvalue of the matrix
Q having smallest modulus, v is the rate of occurrence of jumps averaged over all states, and it is
known that.W < I. Thus, the number of iterav
tions required to reduce the relative error to the
order 0(11) is
I =

I log (11/110) I
log (I -

(9)

1~ 11

where 110 = EO/7r. Further, the number of multiplications required is of the order of
M _ ES I log (11/110)
-

log

~

I

- 1~ 1)

7r

7r)

(13)

11' I 112

It should be observed that the typical time to
generate a random number is much great.er than a
"multiply-time," and that present simulators often
take much more time for housekeeping than for
actual generation of the random numbers. Thus a
simple comparison of R with M is biased strongly
in favor of simulation. Nevertheless, we proceed to
make only a simple comparison. The ratio of R/ M
is approximated by

- 7r)
-MR = ES 7r1128(1I log
(11/110) I

(10)

Of course, other operations are also required, but
RQA-I holds the iteration time to about twice the
multiplication time, and all tasks other than iteration and output do not significantly increase this
computation time.
These figures are consistent with experience on
the IBM 7090. Generally, for 100-state problems
such as that reported by Fife and Rosenberg,3 about
30 iterations per second were obtained, with complete solutions (within 0.0001) in about two seconds.
For 1000-state problems, three iterations per second
is typical, with solution times on the order of
20 seconds.

(12)

11' I 112

Typically

b~
v

v log

~-

41)

11' I

(14)

< < I, and the second factor is thus

approximately unity. Hence
(15)

Since the usual applications will be ones in which
is not close to unity, we can usually also neglect
the (1 - 7r) factor. The remaining function.,
7r

8

(16)

which approximates R/ M, is plotted in Fig. 5 for
This figure
graphically shows that the ratio R/ M incn~ases very
110 = I (a fairly conservative choice).

MARKOVIAN MODELS AND NUMERICAL ANALYSIS

100
8

I~

____~__~L-~_ _ _ _ _ _~~~_

10
Figure 5.

100

1000
ES7T

10,000

Illustrating the computational merit of the numerical
. techniques.

rapidly as more accuracy (smaller 11) is required, and
decreases as the number of states, the activity E, or
7r are increased. Thus for small enough 11 the number of random number generations required in the
simulation can be very much larger than the number
of multiplications required in the iterative process.
This results from the fact that simulation error
(from Eq. (11» normally decreases as the square
root of simulation time, while iteration error (from
Eq. (9» decreases exponentially with the number
of iterations. Where repeatability and comparison
of results are important, errors of the order of 0.001
are not at all unreasonable. In such a case, even in
an extreme problem having S = 5000, E = 20, and
7r = 0.1, the iterative techniques will have an advantage of two orders of magnitude over simulation.
Add to this the much greater housekeeping involved
in simulation, and the advantage is dramatic.
A comparison for the discrete-time Markov chain
solution would result in similar conclusions.
CONCLUSIONS
The purpose of the foregoing comparison was not
to issue a call for everyone to abandon simulation
for the analysis of computer systems. Rather, it was
intended to point up a potential which should not
be ignored. There are many difficulties incurred in
the use of a program like the RQA-l which need to
be overcome before it will be universally applied.
The process of modeling systems by Markov chains
is a relatively sophisticated one, and often requires
a great deal more "cleverness" than does a Monte
Carlo approach using G PSS or Simscript. Secondly,

147

the representation of the model in the form of a
matrix in the RQA format is. now a quite tedious
process. (A coupling of an RQA-like procedure
with a problem-oriented language can relieve this
difficulty, and is currently ·under study.) Thirdly,
although the Markovian models have much generality, there will always be problems which cannot
be so modeled, and hence must be simulated (unless
the expense is prohibitive).
On the other hand, even one order of magnitude
improvement in the time required to solve a system
congestion problem with precision can make a manmachine interactive exploration of system configurations by a system "architect" practical when it
might otherwise have been impractical. Also, with
the current provisions in RQA-l for defining the
transition matrices in literal form, so that parameters can ·be altered by a simple change of data at
execution time, it is possible to obtain extensive
sets of graphs describing functional relationships
accurately and economically, as was done in Refs.
2, 3, and 4. Using these features, all of Smith's
published results 2 required less than 4 minutes of
IBM 7090 computation.
REFERENCES
1. C. W. Churchman, "An Analysis of the Concept of Simulation," Symposium on Simulation
Models: Methodology and Application to the Behavioral Sciences, A. C. Hoggatt and F. E. Balderston, eds., South-Western Publishing Co., Cincinnati, 1963, pp. 1-12.
2. J. L. Smith, "An Analysis of Time-Sharing
Computer Systems Using Markov Models," this
volume.
3. D. W. Fife and R. S. Rosenberg, "Queueing
in a Memory-Shared Computer," Proc. of the 19th
Nat. Con! A.C.M., Philadelphia, 1964.
4. - - and J. L. Smith, "Transmission Capacity of Disk Storage Systems with Concurrent
Arm Positioning," IEEE Trans. on Electronic Computers, vol. EC-14, no. 4, pp. 575-5~2, (Aug. 1965).
5. M. Loeve, Probability Theory, 3d ed., Van
Nostrand, 1962, pp. 351-353.
6. P. M. Morse, Queues Inventories and Maintenance, Wiley, 1958, Chap. 5.
7. D. G. Kendall, "Stochastic Processes Occurring in the Theory of Queues and their Analysis by
the Method of Imbedded Markov Chains," Ann.
Math. Stat., vol. 24 (1953).
8. W. L. Smith, "Regenerative Stochastic Pro-

148

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

cesses," Proc. Roy. Soc. (London), Ser. A, vol. 232,
p. 6 (1955).
9. E. Parzen, Stochastic Processes, Holden-Day,
1962, pp. 247-253.
10. V. L. Wallace and R. S. Rosenberg, "RQA-l,

The recursive Queue Analyzer," Systems Engineering Laboratory Technical Report No.2, University
of Michigan, Ann Arbor.
11. J. Todd, Survey of Numerical Analysis,
McGraw-Hill, 1962, pp. 196-197.

SMPS-A TOOLBOX FOR MILITARY COMMUNICATIONS STAFFS
Kathe Jacoby, Diana Fackenthal and Arno Cassel
Franklin Institute Research Laboratories
Philadelphia, Pennsylvania

INTRODUCTION

The percentage of messages of a specific
class with transit time less than T minutes
shall be greater than P percent.

Many papers oriented to the computer user deal
with programming languages. These languages may
be either flexible or oriented toward a particular
problem field, such as military information retrieval
or simulation; however, they are languages requiring the user to learn vocabulary, grammar, punctuation, and spelling to translate his problem into the
specific language. This is not easy and generally requires considerable practice.
An officer on the communications staff of a military headquarters does not have time to study a
language and learn how to express himself in it. In
addition, he does not have the experience of an industrial engineer who is accustomed to flow-charting the operations needed to accomplish a function.
Nevertheless, he needs to evaluate the effectiveness
of his present methods and procedures and level of
staffing under conditions which would occur when
the workload might suddenly change because of
world or local military or political events. He also
needs to be able to determine whether any changes
in methods, procedures, or staffing will improve the
total response of the system.
The prime criterion for evaluation of a com;"
munication system is message transit time. Within
this criterion are subcriteria to be chosen by the
headquarters involved, which may specify:
The maximum transit time for messages of
a specific class shall be less than T minutes.

Transit time through a system depends on two
factors: processing time and waiting time. Processing time can be determined without the use of
computers by observing the required time to perform specific tasks and by summing this time over
all the tasks to be performed on a specific message.
Waiting time is either batching or queuing time.
Batching time is the time an operator waits after
completing one task on a message before delivering
it to the next task or operator, so that the first operator can continue performing the same task on a
number of messages; this time can be estimated.
Queuing time can be mathematically estimated
when only a few queuing points are involved.
However, when many dynamically interacting
queues must be considered, Monte Carlo simulation techniques must be used to gather information
about the formation of queues and the delays
caused by queuing. This requires digital-computer
simulation.
The Franklin Institute Research Laboratories
(FIRL) has developed two tools for officers on the
communication staff of a military headquarters to
use for system evaluation; these tools were developed as part of a study for the Department of
the Army and the Defense Communications Agency
to improve message processing operations within a
headquarters. 1 One tool is a method called Auto149

150

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

matic Flow Process Analysis (AFP A) which allows
personnel without any flow-charting or systemanalysis experience to develop accurate flow charts
by carrying out a set of procedures. 2 The second is
Simplified Message Processing Simulation (SMPS),
with which the same personnel can prepare a simulation model and message samples by following a
set of simply stated procedures; SMPS does not
require personnel to learn any programming
language.
With SMPS, members of a military communications staff can evaluate a message-processing system
under dynamic conditions ,without requiring the
services of, personnel experienced in computer
technology or programming,. The SMPS toolbox
contains building blocks and a framework with
which a model of a message-processing system
can be built.
COMMUNICATIONS STAFF NEEDS
The communications staff at a military headquarters needs to be continually aware of the capabilities and effectiveness of their current messageprocessing systems, not only with respect to current
traffic but also with respect to crisis conditions
which may occur. Figure I' shows an overview of
the activities within a Message Communications
Terminal oflice (communications center and staff
message control) at a military headquarters. Within
the limits of military regulations and command

structure, this staff is able to suggest changes to
improve system operation.
However, changes
should not be implemented unless there is assurance that the total system operation will be improved; therefore, methods for evaluation are required. Because of the differences in ne(~ds, n~gu­
lations, and traffic at different headquarters, only
the staff at the individual headquarters (rather than
a higher agency) can best evaluate its own syste:ms.
The likelihood that these operational staff persoll1nel
have programming background or inclination is
very small.
TOOL 1, AFPA
AFPA permits the non-system analyst to c:onstruct an accurate flow chart of the operation of his
system. In the message-processing case for which
AFPA was designed, the message passes along the
flow of the chart through the tasks performed in
the boxes of the flow chart. A task is called an
event and specifies what personnel and equipment
are involved (such as a communications-
2

SECRET
SECRET
CIJNFIO
EFTO

2
3

3:3
5

2

6

2

17

V8
1

1
1
2

7
1

1

1

1
2
1

1
1
1

AGEN. COPt

'lIt>
3
'3
3
10
4
6

..

31
10
l!I
5
5

3

11

2

It

3
1

1:>

2

8
9

2

6

1

1

22

7

1

TS
SECRET

:\

It:)

3

lit

1
3

2
1

C!J~FIO

3

2'

1
CONf'IO
It
C0"4F10
CONFIO
5
2
CONFt 0
5
EFTO
5
EFTO
2
UNClAS
11
UNCUS
1
UNCUS
:\
CONFIO
12
:ONFIO
3
CONFIO
2
CONFIO
CONFIO
1
CONFIO
i
SEGREr
16
OF INPUT CAROS

"l
.. 8

1
1
2

1
1

3
3
3

'3

11

Figure 9.

5
5
5

4

11

CO~FIO
U~CLAS

'In

1
5
It

39
11

1

1

~

?
1
1
1
1

4

11)
38

1

12
13
lit

2

NO
ND
YES,

NO
NO
NO
NO

5
!»

12

32
11

o

1

4

i

2

2

n

1

1

1
5:>

1

1

4
3
2

4

3

5

n

1
R

17
9

!:l

()
/)
()
()

NO

1
1

'In
o

NO
NO
NO
NO
NO

3

2
1
'3
1
8
1
1
1
1

SPE:n SI»EC. OR I :i/ADD

NO

4

4

<)

NO
NO
NO
NO

1
3

2

8

V:J

NO
NO
NO
NO
NO
NO
NO
NO

!

21
1

CHI»

NO

NO
NO
NO
NO

V14

o

o
/)

o
o
o

o
o

o

o
o
o
o

o
o

o

()

I)

o

o
o
()

o

o

()

o

()

/)
()
/)

o

o
o

o
o
o
o

o

o
o

o
o
o
1

o
()

o

o

o
/)

o

o
o

o

,o

Listing of input messages provided by input programs.

alternative FORTRAN input-preparation program
is available with which the message characteristics
necessary for the run can be easily specified. A
listing of these specifications and detailed diagnostic
routines concerning card or logical errors is provided. The other outputs of this program are the
same as those of the first input program.
Relatively few items in the printout of the simulation run are significant to this type of model.
Hence, the volume of printout to examine is not
excessive.
The most important question in evaluating a
model of a message-processing system is, "How
long does it take a message to get through the
system?" This information is most meaningful in
terms of the cumulative distribution function of the
total transit time through the system; however, it
may also be important to know the time through
major subsystems, as well as the time for messages
with special characteristics.
A major output of SMPS is a deck of cards,
each of which contains all the characteristics of a
message, a transit time either through the entire
system or through a major portion of the system,
and an Jdentifier specifying the meaning of the
transit time given. Thus, this card deck can be
processed manually, by EAM equipment, or by

computer to select the messages with the characteristics of interest and to determine the transit-time
distributions for these characteristics.
The other output of SMPS is the printout produced by the GPSS program. The portions of the
output significant to the user include the tables
which give the fraction of total number of messages with transit times less than each increment of
an accumulating time scale, and the queue statistics
which indicate where bottlenecks occur.
RANGE OF APPLICABILITY OF THE
PRESENT PACKAGE
Although this application is based on AFPA flow
charts, the technique does not require that AFPA
be used. The .flow chart which describes system
operation may be construc"ted independently; however, in this case, more skill may be required in
defining the tasks of suitable size. Th,e basic concept is that a task must be small enough that the
personnel and equipment involved would not be interrupted to perform any service for any other
message.
The basic structure of SMPS assumes that a message has certain properties which are recorded in the
simulation representation of the message-namely,

SMPS-A TOOLBOX FOR MILITARY COMMUNICATIONS STAFFS

the G PSS transaction parameters. Two properties
are not fixed and may be defined at each headquarters; however, these properties may have, at
most, 10 values. The characteristics chosen are
ones most meaningful to a variety of military headquarters. Hence, although the processing examples
carried out thus far involved military terminal processing, SMPS should be useful for any processing of
military or nonmilitary messages. Although such
properties as off-line encryption or security classification are not apt to be meaningful for nonmilitary applications, any properties defined can be ignored in a model. If the statistical input program
is used, each specified characteristic must be examin~d to determine whether it can be ignored in
creating the message sample.
In its current form, SMPS can be used to simulate
any message-processing application where the
transit time for a message and its flow through the
processing steps depend only on the message characteristics defined in SMPS and on statistical
variables.
APPLICABILITY OF TECHNIQUE
FOR OTHER USES

157

task, and several time factors.
Two decision
modules corresponding to two- and three-path
branchings, will probably be sufficient. Decision
modules have variables of relations (less than, equal
to, greater than, for example), a number being
tested by the relation, next task if true, and next
task if false. A few special modules can be programmed to insert in the flow-process chart for
priority assignments, tabulations, origination rates,
and the like. With these types of modules, a model
can easily be constructed.
ADVANTAGES OF THE SIMPLIFIED
MESSAGE-PROCESSING SIMULATION
A "language" such as SMPS is easier to learn
than a simulation or programming language: it
has no grammar and little vocabulary. A model in
SMPS can be constructed very quickly. Changes
are readily made and alternatives are easily compared. Because the level of abstraction is high, the
model is easily understood in terms of activities
which occur and of what is required for the activities.
REFERENCES

The SMPS technique is not limited to dynamic
analysis of message processing. Whenever a system
can be looked on as consisting of processing units
which can be described by a small number of characteristics and where both processing time and
batching time depend on characteristics of these
units alone, a set of building blocks and a structure
similar to SMPS can easily be constructed in a
very short time by personnel with programming
experience.
Because most flow charts contain relatively few
patterns of boxes and lines, it is possible to describe most systems by reusing a few modules with
different variable values. For example, one general
equipment- or personnel-use module can be used
which includes as variables a queue number, three
or four equipment/personnel identities, the next

1. A. Cassel et aI, "Improved Message Processing (IMP)-An Analysis of Headquarters MessageProcessing Operations," Technical Report 1-055,
Franklin Institute Research Laboratories (Oct.
1965).'
2. P. W. Maraist and A. Barskis, "Automated
Flow Process Analysis (AFPA)-A Technique for
Analysis of Headquarters Message Processing,"
ibid, no. 1-160 (Nov. 1965).
3. K. Jacoby and D. Fackenthal, "Simplified
Message-Processing Simulation (SMPS)-A Technique for Analysis of Headquarters Message Processing," ibid, no. 1-161 (Nov. 1965).
4. General Purpose Systems Simulator II, Form
B20-6346··1, International Business Machines Corporation (1963).

DIGIT AL SIMULATION OF LARGE-SCALE SYSTEMS
Robert V. Jacobson
Advanced Systems Department, Space and Information Systems Division
Raytheon Company, Sudbury, Massachusetts

Over the past decade systems analysis teams have
repeatedly demonstrated the feasibility of using
general purpose digital. computers to simulate the
operation of large-scale real-world systems. BAG,
DECAP, INCA, STAGE, TEFORM and TEMPER
are all representative examples.
However, the
process of developing and using these system simulations has not always been entirely satisfying to the
ultimate users. The purpose of this paper is to
examine the process of simulating systems, and so
to suggest some causes of dissatisfaction and their
remedies. Because of the diversity of usage, it seems
to be important to define the key words to be used.

here, but this author believes that clarity suffers as
a result.
The task flow diagram (Fig. 1) shows how a
typical case moves from the problem statement to
the final analysis. The figure shows five different

SYSTEM
ANALYSIS

SYSTEM
PROBLEM

System Model is used to mean the interre-

lationships and logic which describe
the system adequately for the task at
hand.
A Simulation is a mechanism based on a
, model which operates "like" the system. That is to say, a simulation is an
operating version of the model.
A Digital Simulation is a simulation in
which the system quantities are represented by digits, and so is most easily
implemented on a digital computer.

COMPUTEH PRINT-OUT
(FOR ANALYSIS)

DIGITAL SIMULATION
a TEST DATA

This usage follows M. R. Lackner's paper "Digital Simulation and System Theory." 1 Note that
the term computer simulation under these definitions would mean a simulation of a computer.
Other writers 2 have used "computer simulation" in
the samt? sense that "digital simulation" is used

Figure 1.

159

MODEL CONCEPT
a SCENARIOS

MODEL DESIGN
TEST DATA

a

Task flow diagram of model/simulation construction and use.

160

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

people (or organizations) in the "loop;" while in
fact a smaller number of individual people may be
involved, the division of tasks into these five categories seems to be a useful one.
The flow begins with the "customer" who states
the problem to be analyzed to the systems analyst.
(The customer is defined as the person or organization with a principal mission other than the processes to be described below.) Let us assume that
the systems analyst determines that the problem
can best be solved through the use of a digital simulation and that he directs the model designer to
design a system model. In many cases the systems
analyst and the designer of the system model will
be the same person or organization. The simulation designer, bearing in mind the scenarios which
are to be analyzed, designs a simulation which is
based on the model. The system analyst uses the
output data generated by the digital simulation to
draw conclusions about the operation of the realworld system, and reports them to the customer.
Once a working computer program for the digital
simulation has been constructed, the system analyst/model designer hopefully can deal directly with
the computer with the help of the computer supporting staff.
With the above d,efinitions in mind let us consider
first the information flow from the system analyst to
the model designer. The model designer would like
to identify and define the variables and constants
which the system analyst considers significant, and
to find expressions which adequately describe their
interrelationships. Next he wants to develop a logic
diagram which represents the flow (often with time)
of events or processes in the system, and which ties
together the interrelationships. Two problems often
arise here. The system analyst would like to have
"every" real-world variable included in the model,
and would like relationships to be "completely accurate." * In fact, the systems analyst probably
doesn't know quantitatively the contribution made
to the accuracy of the model by each of the parameters and variables which he can identify, or a complete representation of their interrelationships. It
is the author's view that the model designer can best
serve the system analyst by urging the initial selection of variables and relationships which will most
simply (rather than accurately) describe the real-

* The words "large-scale" are included in the title to exclude
from this discussion systems which can in fact be completely
simulated such as savings bank records or an airlines reservation
system.

world system, with the long-range objective that, as
understanding of the operation of the model grows,
complexity can be introduced. As an example of
initial simplicity if one were to simulate detection of
a target by a radar, one might compute the effect
of each of the dozens of quantities which enter into
the detection of a target. On the other hand" one
might begin with a model which says that for a given
radar, detection never occurs beyond a given range,
but at lesser ranges detection always occurs for all
targets. Oversimplified? Perhaps, but :indeed because received signal varies roughly as the fourth
root of target range the approximation would not be
significantly in error if, for example, one were
modeling an air defense information processing
system, and were not directly concerned with the
sensors, in this case the radar, but rather with such
things as data storage and correlation, data lirik
saturation, and displays. The fact that a larg(~ aircraft was "detected" at 75 miles instead of 80 miles
as it would be in the real-world may contribute far
less to the inaccuracies of the model than othe~r as- .
sumptions which had been made by default so to
speak, rather than explicitly. That is to say that the
model designer may overlook factors having a far
greater effect on accuracy.
Since the very purpose of constructing the model
and simulation is system analysis, it is implicit that
the contribution to similitude, or accuracy of each
of the model's elements is not known quantitatively
at the beginning of the design effort. If the model
designer can restrain the systems analyst's desire to
model "everything," and rather model as little as
possible initially, the result will be that the complete
structure of the model will emerge at t.he earliest
possible date and then can be quickly converted
into a digital simulation. The systems analyst., and
the model designer are now in a position to test the
significance of each of the elements of their model
in a systematic way. Continuing the example given
above, they might like to make detection range a
yes-no function of the target range, modified by
a linear function of the nominal target cross section.
If this elaboration yields a significantly different
result, they might go a step further and try a model
in which target cross section was a function of both
nominal target cross section and target attitude
relative to the radar.
The important point is that as early as possible in
the design cycle they have a model (and a computer
simulation of it) which operates and generates output. They have been forced to think through the
entire system, as a result have gained a better under-

DIGITAL SIMULATION OF LARGE-SCALE SYSTEMS

standing of the system operation, and so have more
accurately identified the really significant system
parameters and variables. The level of detail to
which the model will then be expended is far more
likely to be uniform, and both have the assurance
that something will come from their efforts, however
much it may fall short of their original aspirations.
Equally important, the systems analyst will have a
clear image of the model's structure and so will be
better able to evaluate its output. These points may
be summarized as:
The Model Designer's
Role: To convert the significant elements
of the real-world system into a unified
mathematical/logical model.
Objective: To maximize the utility of the
mathematical model.
Guidelines: Evolutionary model design to
achieve a uniform level of detail, and
systematic evaluation of the model design.
The problems which the simulation designer must
solve revolve around the conflict between the generality of the model and the explicit character of computers. The model's logic and expressions must be
stated in an explicit way, input data must be of a
stated form and content, and the format of the output data must be described in advance. On the
other hand, the model designer can be expected to
want to make changes during the design process,
and each change will cost time and money. The
simulation designer will be of greatest service to
the model designer and systems analyst if he accepts
this fact of life, and keeps in mind the thoughts suggested below.
The Simulation Designer's
Role: To convert the mathematical model
into a useful computer program.
Objectives: To maximize machine indedependence and to simplify the process of changing the model/simulation.
Guidelines: To serve the problem at hand,
not the computer.
The simulation designer should first take steps to
minimize the impact of the particular computer to
be used on the problem to be solved. That is to say
the computer should serve rather than dominate the
problem. Secondly through forward-looking design
techniques, the simulation designer can often facilitate the changes which will inevitably be sought by
the model designer after he has experimented with

161

the first primative versions of the simulation. The
resulting computer program should have the following characteristics:
•
•
•
•

Inherent adaptability.
Complete labeling of output.
Careful source program record keeping.
User-oriented input and output, and
operating documents.
• Graphical outputs as appropriate.
• Machine independence.

As an example of adaptability the computer program may call for a list to be scanned. In a FORTRAN program this would probably be done with a
DO-LOOP. If there is some uncertainty about the
list size, the DO-LOOP upper limit can be an input
parameter, so that it can be easily and universally
changed if necessary. Likewise if a number of
WRITE formats use a common list of labels which
are subject to change, it might be better to input the
labels rather than store them in the individual format statements. The important point is not so much
these primitive examples themselves as the design
objective of simplifying changes.
Obviously the simulation designer should be alert
to the effect of computer limitations on simulation
design, and so model design. The size of memory
core storage is the most obvious current limitation,
but running time, turn-around time, and input/output device selection are also significant. Depending
upon his personal background the model designer
may need little or considerable guidance from the
simulation designer. However, the latter shouid
resist the temptation to overwhelm the model designer by detailing the prohibitions placed on the
model design, but rather seek to minimize them.
The impossible cannot be achieved, but imaginative
thinking can often reveal clever solutions to the
problem at hand.
In many cases, the simulation design process will
consume time and money comparable to if not
greater than that devoted to operating the completed simulation. This fact focuses attention on
the need for careful, systematic simulation design
procedures. For example as a general rule the
output should include an appropriate heading which
adequately identifies the computer run. Adequate
identification might include identification of the
input base data used, the particular version of the
simulation used (since it may be in a state of flux),
the date, and some statement of the objectives of the
run. Equally important is the proper and consistent
use of such a heading. In the rush to meet a com-

162

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

puter run submission d~adline while debugging,
there is a temptation to bypass the process of updating the heading data. However, this is one place
where haste does indeed make waste, and sooner or
later the time and money expended on at least one
computer run of a series is lost because the printout
has lost its identity. At best the run must be repeated; at worst wrong conclusions are drawn and
additional runs wasted.
It is equally important to keep careful records of
changes to the program. It should always be possible to associate a given set of printouts with the
_ specific program that produced it. This permits the
model designer to track the evolving model design
with the output of the simulation. Not uncommonly a change in the model (and its reflection as a
change in the simulation) will produce an unexpectedly negative effect and the model designer will
want to rescind the change. If he has failed to mark
changes systematically, the simulation designer may
have difficulty in retracing his steps.
A technique has been evolved at Raytheon for
using the field 73-80 of the standard FORTRAN
punch card to record changes. Field 73-78 is coded
with the name of the subroutine, for example
SAMPLE. Field 79-80 holds the serial number of
the change. Assuming subroutine SAMPLE were
included in the first attempt at compilation, field
73-80 for all punched cards would show SAMPLE
Ol. If no more changes were made until say the fifth
batch of compilations, the new and changed cards
would be identified as SAMPLE 05. Furthermore
the simuiation designer inserts a comment card at
the head of SAMPLE which briefly identifies the 05
changes to SAMPLE and assists the model designer
in controlling the growth of the simulation. When
subroutine SAMPLE has been completed the final
punched card deck can have a short subroutine
identifier, i.e., SAMP, and sequential serial numbers
inserted in field 77-80 by a standard utility program.
Finally the simulation designer makes a major
contribution to the value of the model simulation by
providing customer-oriented input and output
formats, and straightforward and well-documented
operating procedures. If he has done his job well,
the completed simulation can be operated by the
model designer directly as suggested by Fig. I.
Hopefully the input format matches the normal
practices of the system analyst. If he is accustomed
to thinking of a quantity in nautical miles, he obviously should not be required to input it in meters.
Likewise output data should conform to and should
be labeled in his terms, not computer program sym-

boIs. During the design and test of a simulation a
variety of output formats will likely be developed
for debugging. Since the specific data which the
system analyst will want to see will vary with the
purpose of the specific run, it is useful to be able
to suppress specific output formats through the
setting of control parameters. The analyst can concentrate on the subject of interest, and I/O device
charges are minimized. Lastly, recognizing that one
picture often is worth ten thousand words the simulation designer should be alert for situations in
which graphical output would be useful to thle systems analyst. Some languages such as DYNAM0 3
specifically include graphical output. Generalized
programs have been developed which will produce
graphs on a line printer. 4, 5 Many computer systems
now feature X-Y plotters, but conventional line
printers can be used in a graphical mode, and can be
assumed to be available at almost all computer installations.
Figure 2 is a plot of aircraft and decoy positions
relative to a surface-to-air missile (SATvI) site: generated by the DECAP model. Notice that all labels
are designed for easy reading. Distances are shown
in nautical miles East-West, and North-South of the
site. The program was designed so that the SAM
site is automatically located in the appropriate
quadrant of the map, and the scales are adjusted
to match. In the case illustrated the program slensed
that the cloud of targets was roughly South-Wiest of
the SAM site and so it located the SAM site in the
North-West quadrant of the map. The symbols
used for targets are defined at the right. The game
and run are identified, and the specific time: and
location depicted is noted. Figure 3 is. a plot of
cumulative kill probability as a function of reentry
vehicles used for each of four differe:nt attacks
against a point target. It is part of the DACE model
developed by Raytheon using the Bolt, Beranek,
and Newman, Incorporated remote-acl:;ess, timeshare system, TELCOMP. The basic plotting function is a part of the system software. The simulation
designer specified the headings, and s.cales, and
modified the variables to be plotted to match the
specifications of the PLOT function. Specifically
the variable to be plotted may range from - 1 to + 1.
In the case illustrated the variable to be plotted,
cumulative kill probability, ranges from 0 to + l.
The Instructions to transform and plot the variable
take the following form:
PK (A, B) = (PK (A, B)
PLOT

PK (A, B)

-

0.5) *2

ONNUM

163

DIGITAL SIMULATION OF LARGE-SCALE SYSTEMS
GAME-009

RUN-XO~

leGEND
~T

NIII

FA,s""'EST

610 SECONDS -

'0

~ARGET

ARRAY AT SITE 2.
]0

II

]5

20

25

$-TARGET ENGAGED
.-TARGET TRACKED

30

'0

10

5 ••

NORTH

V-TWO SOM8RS
I-ONE DecOY
2-""0 OECOY5
4 0 .. £ BOMSER
+ONE DECOY

.0;.

...

ee.
J

II

1 1

2 1

If

tONE OEC.OY
M-TWQ

eo ... a~s

+11010 OeCYS
(_TOO

MAMY

URGETS

1

!

'-ONE pOHPER
+lWO DECYS

1 1
5
1.

AND

el
$:I

.10

10.
SOUTH

15

CF

l$

~HE

20.

.20

25

H

SIn:

30.

.30

10

5.

r'RG;r EN',CEO- 2
TARGETS BEING TRACKEO-

5.

10

15

20

25

30

)

Figure 2.

A computer-generated map to show disposition of aircraft, and decoys.

(A and B define the four different cases being
studied and NUM is the number of reentry vehicles
yielding the plotted kill probability.) The advantage
to the simulation designer of the generalized instruction, PLOT, is that he can concentrate his attention
on the problems of the specific simulation. Figure 3
also illustrates a valuable feature of on-line computing. The system analyst monitors the output
from the simulation. When he obtains the desired
results, he can interrupt the computation and go on
to the next case.
The same effect can be achieved on batch computers by storing successive values of a variable on a
scratch tape with appropriate tags. When the run is
completed, the executive portion of the simulation
can make use of an auxiliary program to provide
appropriate headings and scales and to construct
a plot of the variable as a function of the independent variable with which each value was tagged.
TEFORM, a central war model, computes counter-

force and countervalue potential ratios at each event
cycle time and stores the values. These are brought
back at the end of a game and converted into a time
plot which follows the event initiated printout.
Since the above implicitly has been stated in terms
of the current family of high-speed batch processing
computers, one might ask what changes the new
remote-access, time-sharing computers will have.
The author's own limited experience suggests that
the model designer will appear to absorb the simulation designer's job in large part because he will communicate directly with the computer directly
through his remote console. In fact, it is likely that
the simulation designer's function will remain but in
a new form. First his role in a specific task will become consultive. In looking over the model designer's shoulder either literally, or figuratively, he
will spot program needs which can be best met with
techniques unfamiliar to the model designer, and
suggest them. More Important, however, will be the

164

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966
CUMULATIVE
.2

KILL
.4

PROBABILITY

RV'S

0

.6

ASGN'O

•••••••••••••••••••••••••••••••••••••••••••••••••••

.8

1.0

0.0000

)

1.0000

2.0000

3.0000

11.0000

18.0000

P\
INTERRUPTED AT STEP
~DO PART 40

Figure 3.

601200

A graph generated by a computer in real time.

simulation designer's contributions to the programming language. Being able to anticipate at
least to some extent the things the model designer
is going to do, he can seek out ways to adapt the
programming language to the needs. The other area
in which the simulation designer can contribute is in
applications of mass memories. If the computer system is capable of storing the input data and results
from a large number of previous runs, the system
analyst may want to be able to compare current
runs with earlier runs. He may want to be able to
repeat an earlier run with only one or few changes,
and compare the results. Since the limitations on
data links are not likely to be eased quickly, the
remote-access, time-sharing system is probably
going to be characterized by a low data transfer rate
for some time to come. As a consequence the systems analyst will appreciate a programming lan-

guage which enables him to state his problem succinctly, and to receive only the answer desired
without being distracted by unwanted output. The
simulation designer will be challenged in the dec:ade
ahead to bring to the systems analyst and the model
designer the full power of on-line computing
coupled to a mass memory.
To summarize, system simulations are susceptible
to two broad defects, lack of credibility, and lack
of accessibility. The first is within the controll of
the model designer. If he begins his design with the
maximum simplicity rather than complexity, he can
strive for uniformity of detail, and at the same time
give the systems analyst a clear quantitative: measure
of the effect of departures from "com plete accuracy." By imaginative design of input and output
formats, and operating procedures, the simulation
designer can give the systems analyst a 4:;omputer
program that is easy to operate, and adaptablt~ to
the problem at hand. In the last analysis all of the
above comes down to being customer··oriented.
Each individual in the loop serves best when he
adopts the viewpoint of the person preceding him.
REFERENCES
l. M. R. Lackner, "Digital Simulation and System Theory," Document No. SP-1612, System Development Corp. (Apr. 6, 1964).
2. M. Greenberger, "A New Methodology for
Computer Simulation," Document No. l\J1AC-TR13, MIT Project MAC.
3. A. L. Pugh III, Dynamo User's Manual, 2d ed.,
MIT Press.
4. R. G. West and J. R. Reynolds, "FORTRAN
Programs for Plotting Two Dimensional Graphs,"
Document No. NMC-TM-65-31, U.S. Naval l\,fissile Center (June 21, 1965).
5. G. H. Grace, "Application of Empirical
Methods to Computer-Based System Design,"
Document No. SP-1952, System Development
Corporation (June 1, 1965).

DSL/90-A DIGITAL SIMULATION PROGRAM
FOR CONTINUOUS SYSTEM MODELING
W. M. Syn
Systems Development Division
and
Ro bert N. Linebarger
Data Processing Division
IBM Corporation, San Jose, California

of blocks is analogous to the wiring of the patchboard on an analog computer. Therefore, these
digital-analog simulation programs combine the
best features of the analog and digital computers:
the flexibility of block connection structure of the
former and the accuracy and reliability of the latter.
DSL/90 is a new digital simulation package for
the 7090 family of computers. The program is available from the SHARE library (lWDSL No. 3358).
Its development, from drawing board to production
code, was guided by the following broad objectives:

INTRODUCTION
Computer simulation has been used for some time
in the analysis and design of dynamic systems. With
recent advancements in computer performance, the
field of dynamic simulation-long the exclusive
domain of the analog computer-has begun to
utilize digital methods. No less than a score of
digital simulation programs have appeared since
R. G. Selfridge's pioneering effort in 1955; and the
number is ever-increasing. These programs offer a
convenient method of simulating continuous system dynamics employing well-known and easy-touse analog computer programming techniques.
The common starting point for such simulation is
the conventional analog block diagram, and the
common approach is the breakdown of the mathematical system model into its component parts or
functional blocks. These blocks, having a near oneto-one correspondence with analog computing elements such as integrators, summers, limiters, etc.,
usually appear as subroutines within the simulator
program. Using one of the sim ulation packages,
"programming" involves no more than merely interconnecting the functional blocks by a sequence of
connection statements according to the rules laid
down by the input language. This interconnecting

• To incorporate within it all the desirable
and proven features of its predecessors;
• To make this useful technique of digital
simulation attractive to a group of users
who are not analog-computer-oriented,
yet retain the large following of analog
programmers who are devoted to the
building-block approach to system analysis;
• Toprovide a "continuous system simulator" program that is applicable to a
broad range of continuous system analysisand not restrained by conventional
digital-analog simulator techniques.
165

166

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

Some of the DSL/90 features are:
• A library of DSL system blocks such as
integrator, limiter, summer, etc.;
• A simple nonprocedural applicationsoriented input language specifying the
rules for connecting the library blocks
together;
• An input routine which permits quick
and easy parameter entry and data
changes;
• Complete print output routines including a graphical output facility;
• Choice of numerical integration routines
with or without error bounds using centralized or noncentralized integration
schemes;
• Automatic sequencing of input language
statements (this is called "sorting" in
programs such as ASTRAL and
MIDAS);
• Facility to add to the DSL/90 library
any user-defined blocks in the form of
subroutines (FORTRAN, MAP or
binary decks);
• Intermixing of DSL and FORTRAN
language statements;
• Repeatability of language statements
(macro-generation);
• Dynamic storage of data.
Although DSL/90's input .language statements
are block-oriented, they are not restricted solely to
block notation. DSL/90 permits an intermixing of
its input language statements (henceforth called
DSL statements) and FORTRAN IV statements.
Thus, the power of FORTRAN is made available
to the problem solver. One far-reaching implication of this language feature is that simulation
"programming" may begin anywhere from the
analog block diagram formulation of the problem
to the higher-level mathematical model in the form
of ordinary differential equations.
OPERATIONAL FEATURES

The Connection Statements. In the DSL/90 input
language, the basic functional block is characterized
by an output (outputs) that is functionally related
to one or more inputs. Parameter names and initial
conditions, if any, are also included in the statement
which has the following general form:
Outputs = Block name (Initial conditions,
Parameters, Inputs)
Below are examples of basic DSL connection or
structure statements:
1. OUTNAM = SQRT (TEMP)
In the block diagram representation (Fig. 1),
SQ R T is the name of the functional block. It has a
single input called TEMP and the output is given
the name OUTNAM.

TEMP-~·I

~-"""·~OUTNAM

"
SQRT

Figure 1.

2. Y = INTG RL (lC2, YDOT)
Figure 2 represents the block INTG RL which is
the basic DSL/90 integrator block. IC2 and YDOT
are its initial condition and input name respectively.
IC2

~

·1;

YDOT

..... y

1

INTGRL

Figure 2.

3. OUT1,OUT2

VALVE (LEVEL, INHI,
INMED, INLO)
Figure 3 illustrates a user-supplied functional
block named VALVE with two outputs OUT1 and
OUT2. LEVEL is a unique parameter name se=

LEVEL

l

Basic Language Features
The DSL/90 language statements may be classified into three general categories: I) structure or
connection statements which define the interconnection of the functional blocks, 2) data statements
which permit the entry of alphanumeric information, and 3) simulation control statements.

IN HI
INMED
INLO

: OUT 1
OUT 2

:1
VALVE
Figure 3.

167

DSLj90-A DIGITAL SIMULATION PROGRAM

lected by the user, and INHI, INMED and INLO
are the names of the three input variables to the
block.

blocks supplied as part of the DSL/90 simulation
package are preassigned. DSL/90 provides an extensive library of functional blocks which are listed
in Table 1.
The above format for characterizing functional
blocks in DSL/90 is consistently adhered to. However, there are these exceptions: the basic operations
of multiplying, dividing, summing and subtracting
are replaced by the operators *, /' + and -, respectively. To this list of operators we add ** for
exponentiation. Let us illustrate one of these operations by simulating a multiplier output (Fig. 4),

From the above illustrations, it should be evident
that a functional block in the DSL/90 language is
completely specified by the unique names assigned
to the inputs and outputs of each block. The user
is free to select names meaningful to his process
simulation, the only restriction being that a name
consists of no more than 6 alphanumeric characters,
the first of which is alphabetic.
User-supplied
blocks may have any name following the same restriction above. However, the names of standard

OUT

=

A·B.

Table 1. Functional Description of Standard DSL/90 Blocks
GENERAL FORM

**

FUNCTION

Y=f~ X

Y = INTGRL (IC, X)
INTEGRATOR

*
*
*

+ IC

EQUIVALENT

+ IC

Y=Jot X dt

MODE-CONTROLLED

Y·IC
LAST OUTPUT

Y = REALPL (lC, P, X)
Y (0) • IC
1ST ORDER SYSTEM (REAL POLE)

py + Y

Y = LEDLAG (lC, PI ' P2 ' X)
Y(O)" IC

P2 y + Y .. PI

PI =0, P2 • I
PI =0, P2· 0

• X

EQUIVALENT LAPLACE TRANSFORM

••
•
Y + 2 PI P2 Y

POLE)

2

EQUIVALENT l.APLACE TRANSFORM

~~

Y=

EQUIVALENT L.APLACE

Y=DELAY (N,P,X)

Y(t) = X(t-P)

ZERO-ORDER

HOLD

I
I

S2+2PI P2 S

QUADRATIC INTERPOLATION

P =TOTAL DELAY IN TERMS OF INDEPENDENT VAR.
Y=O
N = MAX NO. OF POINTS DELAY

Y (0) = 0

+I

+ P2 Y • X

Y(O) • IC
DERIVATIVE

Y ,. ZHOLD (P, X)

I

X+ x

Y ,. DERIV (lC, X)

DEAD TIME (DELAY)

PS

I

PS+I
EQUIVALENT L APL ACE TRANSFORM 1_1_ _
P2S + I

Y = CMPXPL (IC I , IC 2 , PI , P2 , X)
Y(O) ,. IC I
y(O) ,. IC 2
2 ND ORDER SYSTEM (COMPLEX

PI· I, P2 • 0

y.

INTEGRATOR

t

L.APLACE TRANSFORM •

Y=MODINT (IC, PI' P2 , X)

LEAD- LAG

*

dt

Y(O) "' IC

t

TRANSFORM' S

=P

t < P

EQUIVALENT ·LAPLACE

TRANSFORM' e -PS

Y·X

P·I

Y • LAST OUTPUT

P·O

EQUIVALENT l.APLACE

Y .. IMPL (lC, ERROR, FUNCT)

Y"IC

IMPLICIT FUNCTION

y .. FUNCT (Y)

TRANSFORM

FIRST ENTRY
t • 0
t ~ 0
IY- FUNCT(Y) ''-ERROR'

lyl

I

1.
( 1- e-S t )
S

+ P~

168

PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966

SWITCHING FUNCTIONS
Y II FCNSW (P, XI , X2 , X3)

y. XI
y. X2
y. X3

P< 0

Y =INSW (P, XI' X 2 )
INPUT SWITCH (RELAY)

Y - XI
y. X2

PO

P~O

XI < X2

Y • 0
Y • I

XI ~ X2

y·O
Y • I
y·O
Y • ,

PI
P2
P3
P3

>
>
>
>

0
0, (PI " 0)
0, Yn-I • I , (P2 ~ 0, PI ~ 0)
II
0, Yn-I =0,
"

THESE FOUR BLOCKS EXIST AS BUILT-IN MACROS WITHIN DSL.
AN EQUIVALENT INTE~RATOR CIRCUIT IS GENERATED FOR EACH
CENTRALIZED

**

P-O

INTEGRATION

SCHEMES WITHIN

INTGRL MUST BE THE RIGHTMOST

TERM

IN-LINE CODE REPRESENTING
USE TO PERMIT THE USE OF

THE BLOCKS.

FOR EACH LEVEL OF

USAGE.

IF X IS A SINGLE VARIIABLE

NAME THEN IT MUST BE UNIQUE WITHIN THE PROBLEM. IC MUST ALSO BE UNIQUE. (-IC IS
NOT VALID). A LITERAL MAY BE USED FOR IC. ALSO SE E SECT. 5-1.

We have decided not to use OUT = MULT (A,
B), but simply OUT = A ~B. Let us summarize
these ideas by considering a solution to Mathieu's
equation:

y + (1 + A cos t) y = 0

y (0) =

0, y(O) = YO

As the DSL connection st41tements for this circuit
follow a near one-to-one cqrrespondence with the
functional blocks in Fig. 5, they may be written as:
FCN
MULT
Y2DOT
YDOT
Y

A * COS (TIME)
FCN*Y
- Y - MULT
INTG RL (0., Y2DOT)
INTG RL (YO, YDOT)

(Note that TIME is a DSL system name representing the independent variable of integration. It may
easily be renamed by the user.)
,
Observe that the DSL statements in the above
example are also FORTRAN arithmetic statements,

and the right-hand portions of the statements are
merely FORTRAN expressions. Therefon;:, as such,
their complexity is restricted only by the rules' 1that
govern arithmetic expressions in the FORTRAN
language.
Furthermore, these expressions can serve as
inputs to any functional block, regardless of
whether it is a DSL/90 or user-supplied block. For
example, the first three DSL structure statements in
the problem above may be written as one statem1ent,
Y2DOT

=

-

Y - A * COS (TIME):+: Y;

=

-

Y * (1.

or perhaps as
Y2DOT
Y+( I + A

cos t) y : O.

+ A * COS (TU~E)).
y(O):O;

1-----1----_ Y

B
MULT

A - -.....

x

yeo): Yo

t---·OUT

Figure 4.

Figure 5.

169

DSL/90-A DIGITAL SIMULATION PROGRAM

FUNCTION GENERATORS
GENERAL FORM
Y·AFGEN (FUNCT. X)

ARBITRARY LINEAR FUNCTION GENERATOR
Y·NLFGEN (FUNCT. X)

NON - LINEAR FUNCTION GENERATOR

FUNCTION
Y: FUNCT (X) Xo~X" .Xn
LINEAR INTERPOLATION
y. FUNCT (X o)
X< Xo
Y=FUNCT (X n)
X> Xn
y. FUNCT (X) Xo~X ~ Xn
QUADRATIC INTERPOLATION (LA GRANGE)
Y= FUNCT (X o)
X< Xo
y. FUNCT (X n)
X> Xn

LIMITER

y. PI
y. P2
y·x

Y·QNTZR (P, X)

y. kP

Y·LIMIT (PI' P2 • X)

¥

X

P2 ~---.. X PI~X~ P2 ~x (k-1/2)P 0 AND (X-Xn_I) P2 X< PI ""-/ lAy ~ I If(Y) o· I -I I flY) 1 r Y ~ II Y~ ·rtf)-' I I'! p 2 170 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 In addition, if the output, YDOT, of the first integrator is not a variable of interest, the two integrators may be "nested" as follows: Y = INTG RL (YO, INTGRL (0., Y2DOT)). Finally, if the variable Y is the oRly one whose output is desired, the problem may be described by a single DSL connection statement, namely, Y = INTGRL (YO, INTGRL (0., - Y * (1. + A*COS(TIME)))). The Data Statements. The subject of data entry was given prime consideration during the development of language features of DSL/90. The end result is free-form and symbolic specification of parameter values and initial conditions following a card identifier label which is punched left-adjusted in the first six columns of a data card. For example, Co Is 1-6 PARAM INCON CONST 7-72 A = 0.5, PARI = 62.4, PAR2 = 3.215 E + 4 ICI = 0.2, XDOT = 1.3 CIC = 7.3, C2C = 100., T = 46.25, EPSILN = 1.0 - 05 The identifying labels begin in column one. The data items, separated by commas, may be placed anywhere in columns 7-72. Blanks are ignored. Three consecutive decimal points at the end of any statement indicate that it is to be continued on the next card. Continuation may begin anywhere in columns 1-72. Data statements may be intermingled with connection statements. The Control Statements. The statements may be conveniently grouped into three types: 1. Problem output control statements include print and plot requirements, title information and labeling of graphs, such as: PRINT PREPAR GRAPH LABEL RANGE .01, Y, Y2DOT .005, Y, Y2DOT 8.,6., TIME, Y, Y2DOT SOLUTION OF MATHIEU'S EQUATION DELT, X The above cards will cause the printing of TIME, Y, and Y2DOT at intervals of 0.01 units of time, and preparation of TIME, Y, and Y2DOT for graphing at intervals of 0.005 units of time. A single 8 x 6-inch graph properly labeled as directed, will be made with Y and Y2DOT plotted vs TIME. The maximum and minimum values attained by DELT and X will be printed at the end of the run. 2. Problem execution control statem,ents are used to set error bounds and step size for integration routines, prescribe run cutoff conditions, and to specify other pertinent run information. Typical examples are CONTRL DELT = .05, FINTIM = 2.0 ABSERR YDOT = 1.0 E - 5, Y = 5.0 E - 4. The simulation will be executed from 0 to 2.0 with an integration interval of 0.05. The error bounds on YDOT and Y will be held at 1.0 x 10- 5 and 5.0 x 10- 4 , respectively. The latter bound will be applied to all other unspecified integrator outputs. 3. System control statements provide the user with a number of options, the most important ones being choice of integration methods, bypassing the sequencing routine, and renaming of system variables. They also include an END card which signifies the end of a logical set of data ,cards, and a STOP card which ends the computer run. For example: CONTIN INTEG MILNE NOSORT RENAME TIME = X, DELT = DELX FINISH DIST = O. These cards cause continuation of the simulation from the last calculated point, selection of the Milne 5th-order integration scheme, exercise of the no-sort option, renaming of two systems variables, and termination of the run when the value of DIST reaches zero. All data and control cards, with the exception of the END and STOP cards and certain logical groups of cards (such as continuation statements) may be intermixed with DSL structure statements and may appear in any order. Proper statement order is determined by an internal sort based on correct information flow. Table 2 shows a c:ompll~te list of DSL/90 data and control statements. Returning to Mathieu's equation, a complete DSL/'90 program for y + (1 + A cost) y = 0 may be written as follows: 1-6 7-72 SOLUTION OF MATHIEU'S TITLE EQUATION Y2DOT = - Y*(1.0 + A * COS (TIME)) PARAM A = 0.5 Y = INTGRL (YO, INTGRL (0., Y2DOT)) YO = 20.0 INCON INTEG MILNE 171 DSL/90-A DIGITAL SIMULATION PROGRAM TABLE 2 Summary of DSL/90 Data Statement Format, Label COL. Function (By Example) 7-72 1-6 PROBLEM DATA I""PUT: PARAM CONST INCON AFGEN NLFGEN TABLE TAU ~ 25., PAR = 3.15BE3, C4 = 2.0 E-5 CONI =45.3, PI=3.14159, K=3 ICI = 20., A = 50.2, IC3 = 0 FCN = 3.,25.,5.2,26.4,6.0,24., 7.5,21.3 FY3 ~ 0.,850.,5., 1245.,8., 1.574E3, 12.4, 2.4E03 PARI (8) = 4.5, INPUT(l-4) = 2.,2*8.6, 3.52E3 PROBLEM OUTPUT CONTROL: PRINT 0.1, X, XDOT, VELOC TITLE MASS, SPRING, DAMPER SYSTEM IN DSL/90 PREPAR .05, X, Y, XDOT GRAPH 10., 8., TIME, X, XDOT LABEL MASS, SPRING, DAMPER SYSTEM - 6/1/65 RANGE X, XDOT, VELOC, DELT PROBLEM EXECUTION CONTROL: CONTRL DELT = .002, FINTIM = 8.0, DELMIN = I.OHO FINISH DIST=O., ALT=5000. . RELERR X = I .E-4, XDOT = 5.E-5 ABSERR X = I .E-3, XDOT = I.E-4 CONTIN INTEG MILNE RESET GRAPH, PRINT DSL/90 TRANSLATOR PSEUDO-OPERATION';: RENAME TIME = DISPL, DELT ~ DELTX INTGER K, GO MEMORY INT(4), DELAY (100) STORAG IC(6), PARAM (10) DECK SORT NOSORT PROCED X = FCN (A, B, PAR5, IC3) ENDPRO MACRO OUT = FCN2 (ICI, R, T, X) ENDMAC END STOP CONTRL ABSERR PRINT END STOP DELT = .02, FINTIM = 2.0 Y2DOT = 1.0E-5, Y = 2.0 E-5 0.05, Y, Y2DOT It should be apparent by now that the DSL input language is block-oriented, symbolic, and free-form. The use of FORTRAN is not limited to arithmetic statements. All FORTRAN library functions such as SQRT, SIN, COS, etc., are available. Under the rules which are clearly defined within DSL/90, a large subset of FORTRAN becomes available to the simulation user without sacrificing the ease of block notation programming. What this means to the engineer who is unskilled in FORTRAN programming is simply this: he can still perform his process simulation with a simple language, following a step-by-step building block approach. As he becomes more proficient, his programming becomes correspondingly more efficient and he may want to include elementary FORTRAN language features in his connection statements. Still later, as the complexity of his problem increases, he may use to advantage the more powerful features of DSL and FORTRAN. Advanced Language Features There are a number of other DSL/90 language features which are especially useful for the simulation of large or complex problems. We shall examine several of these. Procedural Statements. Recall that the order in which DSL statements are entered is unimportant because connection statements are separated from the rest and sequenced (or "sorted") by the DSL processor (unless a "no-sort" option is exercised). In other words, the DSL/90 language may be considered as nonprocedural. In contrast, FORTRAN is a procedural language since FORTRAN statements are executed in the order in which they are written. Frequently, in a complex process simulation, it is desirable to introduce procedural statements within the simulation program. The purpose may be to control signal flow in certain portions of the program, or perhaps to compute a large number of parameter values once and only once. DSL/90 uses a pair of pseudo:-operations, PROCED and ENDPRO, punched in columns 1-6, to designate the beginning and end of a block of procedural statements (they may be DSL or FORTRAN statements). Input and output names may be specified on the PROCED card to allow the procedural statements to be sorted as a block relative to other DSL statements. For example: PROCED TEMP = BLOCKA (TEST, IN) IF (TEST) 10, 10,20 TEMP = LIMIT (PARI, PAR2, IN) 10 GO TO 30 20 TEMP = IN + TEST CONTINUE 30 ENDPRO During the sequencing of DSL statements, the above procedural statements will be treated as a single functional block with output TEMP and inputs TEST and IN, as illustrated in Fig. 6. The order of the statements within the procedural block remains unchanged. Macro-Generation. Pseudo-operations MACRO and ENDMAC, which are punched in columns IN TEST :1 III BLOCKA Figure 6. TEMP 172 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 1-6, are used to define a macro block. One may think of a macro as a repeatable procedural block with parameter variations. This is best illustrated by example. The following statements constitute a macro-definition: 1-6 7-72 MACRO OUT = FILTER (VI, V2, K, IN) VI = (IN - V2)/K V2 = INTGRL (0., VI) OUT = V2 + O.5*VI ENDMAC During the definition of the macro, no language statements are produced. The name of this macro, FILTER, must be unique. However, the output name OUT and the input names, VI, V2, K, and IN, are dummy symbols which will be replaced by the actual names specified at the time when the macro is used. The subsequent appearance of the statement LINE 1 = FILTER (AI, A2, TAU,XIN) will cause the following three statements to be generated in-line: Al A2 LINEI = (XIN - A2) /TAU = INTGRL (0., AI) = A2 + 0.5* Al Just as in the case of the procedural block, these statements will be sequenced as a single functional block with LINEI as output and AI, A2, TAU and XIN as inputs (see Fig. 7). The statements within the block are not sorted. Both DSL and FORTRAN statements may appear within a macro. At A2 TAU : XIN ~I .. LINEl Figure 7. Implicit Function Block. DSL/'90 provides an implicit function block called IMPL for the solution of an implicit equationf(y) = 0 expressed in the form of y = f(y). Clearly some iterative technique must be employed. These iterations must be performed within each integration interval until a convergence criterion is satisfied. The program for IMPL uses the direct iteration method developed by Wegstein. If there is no convergence after some preassigned maximum number of iterations, the simulation of the problem is terminated with appropriate diagnostic printout. To use the implicit function block, one writes t.he DSL statement, Y = IMPL (YO, ERROR, FOFY) followed by the set of DSL or FORTRAN (or bOllh) statements evaluating FOFY. Y, YO, ERROR and FOFY are symbolic names selected by the user. The DSL/90 system then sets up the necessary iterative loop. Let us illustrate by solving the implicit equation y C . (e Y - 1) =---Y e (C is some constant) One simply writes: Y = IMPL (YO, ERROR, FOFY) A = EXP(Y) FOFY = C* (A - 1.0) / A The DSL/90 translator will automatically generate the following statements: 30001 Y = IMPL (YO, ERROR, FOFY) IF (NALARM .LE.O) GO TO 30002 A = EXP(Y) FOFY = C* (A - 1.0) / A GO TO 30001 30002 CONTINUE Note that three statements, and only those three, are added to the ones written by the user. The first time the IMPL routine is entered, NALARM is set to one, and Y is given the initial guess YO. After eaeh calculation of f(y), program flow returns to the IMPL subroutine where the convergence criterion is tested. If satisfied, NALARM is set equal to zero and y assumes the most recently calculated value of f(y). Otherwise the iteration continues. User-Supplied Functional Blocks. Although DSL/ 90 provides an extensive library of operational blocks, there are occasions when special blocks are required to simulate specific process elements. These special blocks are programmed by the user as subroutines either in FORTRAN or MAP and simply added to the data at the time the simulation run is made. The user may treat these special blocks like all other DSL library blocks, interconnecting them to build a complex system model. As an example of the use of special blocks, consider the modeling of the analog-to-digital convertler shown as a nonlinear stepwise quantization in Fig. 8. If no such general block existed in the DSL library, it would be difficult to construct such a characteristic from the standard blocks available. How- DSLj90-A DIGITAL SIMULATION PROGRAM --------------~~--------------~XIN Figure 8. ever, the quantization effect is easily modeled by the following FORTRAN statements: FUNCTION QNTZR (P, XIN) QNT = AINT (0.5 + ABS (XIN)/P) QNTZR = SIGN (p* QNT, XIN) RETURN END The parameter named P containing the value of the quanta step size is the only parameter supplied to the QNTZR block. This value of P is entered into the simulation program in exactly the same way as any other DSL parameter-on a PARAM card. Note also that the two blocks AINT (for truncation) and SIGN (for transfer of sign) are standard subroutines of the FORTRAN library. The above FORTRAN subprogram for the quantizer may be entered directly with the data cards for the simulation run, or as an alternative, it may be compiled independently and the resulting machine language deck (binary deck) added to the data deck. This functional block may even be added to the permanent DSL library by simply loading it on the library tape. In fact this was the case with the QNTZR block when we found it to be sufficiently useful to warrant a place in the DSL library. The ease with which a difficult nonlinearity has been modeled in a few lines of FORTRAN coding is quite apparent and typifies the flexibility of DSL/90 for handling nonlinear functions and special blocks. Arbitrary Functions. DSL/90 provides two functional blocks, AFGEN and NLFGEN, for handling arbitrary functions of one variable. The x, y coordinates of the function points are entered sequentially following an identifying label and the symbolic name of the function, e.g.: 1-6 7-72 AFGEN FCI = -10.2,2.3, - 5.6,6.4, 1.0, 5.9, etc. 173 Although the total number of data storage locations is necessarily fixed by machine size, there is no restriction on the number of points one may use to define any function. The only requirement is that the x coordinates in the sequence x\, YI, X2, Y2, .. ' are monotonically increasing. Any number of arbitrary functions may be defined, identified only by their symbolic names assigned by the user. As an example, the DSL statement Y3 = AFGEN (FC1, XIN) will refer to the function called FC 1. AFG EN provides linear interpolation between consecutive points, while NLFG EN uses a second-order Lagrange interpolation formula. Tabular Data. This feature of DSL/90 allows blocks of data to be tr"ansmitted to the UPDATE subroutine in tabular form. In the construction of a special block, the user may have to consider sets of initial conditions, history and input parameters. This DSL/90 feature will eliminate the need for a lengthy subroutine argument string. To illustrate, suppose we wish to build a special block called SPEC which requires two initial conditions and 10 parameters. We begin by writing the following two DSL statements: 1-6 7-72 STORAG IC(2), PAR(10) TABLE IC(I) = 2.0,IC(2) = 0.0, PAR(l) = 4., PAR(2-10) = 9* 1.5 The first statement instructs the DSL/90 system to assign a total of 12 locations-2 for the array IC and 10 for PAR. The second statement illustrates the manner in which numeric values are entered into these reserved locations. Now, when we subsequently use a statement such as YOUT = SPEC (lC, PAR, XINPUT) DSL/90 system will replace the names IC and PAR with the addresses of the first locations of the arrays IC and PAR respectively. Obviously, the user when programming his subroutine SPEC must realize that the first two arguments in SPEC are location pointers to his arrays. His subroutine could begin with the following: FUNCTION SPEC (LOCIC, LOCPAR, XIN) COMMON /CUR V AL/C(l) I = LOCIC J = LOCPAR CURV AL is the labeled common where the current values of all variables are stored, and I and J are indices referencing the first initial conditions IC and parameter values PAR. 174 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 System Features DSLj90 System Organization~ The DSL/90 Operating System is separated into two major functions: language translation and model simulation. Each function operates independently under standard IBSYS control but as one continuous single-pass operating system. The transition is made by having the translator develop on an IBSYS scratch tape all the elements of a standard IBSYS job as well as the representation of the model to be simulated. This tape is then switched in as the standard IBSYS input for compilation and execution to complete the simulation. Diagnostics are printed if errors are found in translation or simulation. Elements which may appearas input to the translator are: 1) DSL/90 problem-oriented language sentences to describe the model, 2) data input to the model for parameter values and control of the simulation and output, 3) binary and BCD subroutines and functions supplied by the user for the simulation, and 4) appropriate controls to load binary or BCD subroutines and functions from a library tape. The entire system may be placed at any level of a standard batched IBSYS run. Three additional tape drives are required-two auxiliary and one for plotting. DSL/90 may be run as an independent program or it may be used as a subprogram of a conventional FORTRAN program for control purposes. Centralized Integration. By use of the block name, INTG RL, a user may specify that centralized integration is desired. The translator sets up statements so as to compute all inputs to the integrators but bypass computation of outputs until the end of the iteration cycle. At this time, all integrator outputs are updated simultaneously. A choice can be made between the 5th-order Milne Predictor-Corrector, 4th-order Runge-Kutta, Simpson's Trapezoidal, or Rectangular Integration methods. The first three allow the integration interval to be adjusted by the system to meet a specified error criterion, a factor which allows it to take large or small steps depending on the rate of change of one or more variabl(!s. There is provision in DSL/90 for the user to supply his own integration scheme, which mayor may not be centralized. Dynamic Storage Allocation. Data in DSL/90 is stored in a single vector including current values of structure variables and table values for function generators, integration history, error bounds, STORAG variables, etc. The storage is allocated dynamically (i.e., at execution time) according to what portions of the simulator are used and how many integrators, tables, and structure variables are in the simulation model. Standard DSL/90 blocks are loaded only if used. APPLICA TIONS Sort. A nonprocedural input language such as DSL/90 transfers the responsibility of establishing the execution sequence from the user to the program. To accomplish this DSL/90 alters the sequence of input statements according to the rule: an operational element (or statement) is properly sequenced if all its inputs are available either as input parameters or· initial conditions or as previously computed values in the current iteration cycle. Unspecified algebraic loops are identified and, if any, the run is halted. The result of this sequencing operation is a properly organized FORTRAN IV subprogram. Main Program Control. DSL/90 provides for callirig the simulation routines from a MAIN program specified by the user. Hence the actual digital simulation may be placed under control of a FORTRAN routine compiled at execution time. This feature allows for testing of response conditions, matching boundary values, and dynamic: alteration of parameters, initial conditions, or run control data between parameter studies. Having illustrated operational features of the DSL/90 digital simulation program, we will now draw upon the previous introduction to show how DSL/90 has been flexibly applied to simulation problems. Three specific simulations will be considered: 1) a biomedical block notation problem involving a respiratory servomechanism; 2) a process analysis problem involving the simulation IOf heat transfer dynamics of a recirculating furnace used in the glass industry; and 3) the simulation of the flight dynamics of a portion of the SATURN V booster rocket. DSL/90 provides special programming features such as different integration methods, sorting, special blocks, etc., which make it attractive to the user for continuous system simulation. Several of these features will be illustrated in the examples to follow. Application No. i-Respiratory Servo Simulation This problem involves evaluating the response of a proposed model for respiratory control of CO 2 175 DSL/90-A DIGITAL SIMULATION PROGRAM partial pressure in the venous and arterial blood streams of a human. De Fares et al performed the original study on an analog computer and represented the basic CO 2 control mechanism in respiration by the three-compartment model shown in Fig. 9. Using the original study as a guide, this first example will illustrate the ease of handling conventional analog simulation problems using DSL/90. By introducing disturbances in the CO 2 content of inspired air, the dynamics of such a control model may be studied. The objective of this model is to hold constant th~ partial pressure of the CO 2 in the receptor by controlling the diffusion conductance of CO 2 from the receptor area and of the inspired gas to the alveolar lung tissue. Thus, the CO 2 partial pressures of alveolar tissue and local body tissue will respond dynamically to changes in CO 2 content of the inspired air. Network Model. Because of the dynamic analogies existing between the gas dynamics of the CO 2 diffusion model above and conventional circuit dynamics, it is convenient to represent the biological model by an equivalent circuit model. Figure 10 shows three capacitors tied together with variable nonlinear conductances, which represent the diffusion characteristics of the separate tissue/blood interface. The capacitors represent local tissue CO 2 LOCAL CO2 Figure 9. C02 control model. The CO 2 control system operates as follows: The alveolar tissue in the lung serves as an exit sink for CO 2 production and possesses both CO 2 capacity and conductance characteristics. In a similar manner, body tissue can be considered as having an equivalent CO 2 capacitance and conductance. CO 2 produced by the body is partially stored in the local body tissue, raising the local body tissue partial pressure of CO 2 • The CO 2 produced is simultaneously diffused through the tissue and picked up by the blood stream (venous path). The CO 2 is then carried to the lung and subsequently diffused to the alveolar tissue, raising its CO 2 partial pressure. Simultaneously, CO 2 is produced in the region of a receptor (C0 2 detector) in the medulla. This CO 2 is similarly diffused and carried to the alveolar tissue through the venous blood stream. It can be shown that the basic controlled variable in this system model is the partial pressure of CO 2 in the receptor tissue located in the medulla. If CO 2 -enriched air is also brought into the lungs, it simultaneously affects the CO 2 diffusion and buildup in the alveolar lung tissue. De Fares et al have shown that the partial pressure of CO 2 in the receptor can serve as an effective mechanism for controlling diffusion of CO 2 from the receptor and from inspired air. In this study, the CO 2 partial pressures of mixed venous blood flow and body tissue will be assumed equal. Similarly, the CO 2 partial pressures of arterial blood flow and alveolar lung tissue will be assumed equal. . LUNG C02 RECEPTOR Figure 10. BODY TISSUE Equivalent network model. capacity, and the voltages become the respective CO 2 partial pressures. The voltage source E represents the partial pressure of CO 2 -enriched inspired air and is defined by the following relation: where E Fi (B-47) Fi % CO 2 content in inspired air B = atmospheric pressure in mm Hg. Table 3 lists the electrical network parameters and variables together with their physiological equivalents. Digital-Analog Simulation. As a first example of DSL/90 application flexibility, conventional analog 176 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE. 1966 Table 3. Electrical and Physiological Equivalents, Application No.1 Elec. Physiological ':'Units Symbol Qkantity GI CO GZ CO G3 COZ conductance-receptor to lung C Capacity of lung tissue Liters (gils)/mm Hg (gas) Capacity of body tissue Liters (COZ)/mm Hg (CO ) Z Capacity of receptor tissue Liters (COZ)/mm Hg(CO ) Z VI COZ partial pressure of lung tissue mm Hg (CO ) Z VZ COZ partial pressure of body tissue mm Hg (CO ) Z V3 COZ partial pressure of receptor tissue mm Hg (CO ) Z E Partial pressure of COZ in inspired air mm Hg (CO ) Z 14 Bony COz production Liters (COZ)/min IS Receptor COZ production Liters (COZ)/min II ~02 diffusion from inspired air to lung tIssue Liters (gas)/min ~OZ diffusion from body tissue to lung tIssue Liters (COZ)/min CO Z. diffusion from receptor tissue to lung tissue Liters (COZ)/min C C I j z 3 Z 13 Z 2 conductance-air to lung tissue Liters (gas)/min/mm Hg (gas) conductance-body tissue to lung Liters (COZ)/min/mm Hg (CO ) Z Liters (COZ)/min/mm Hg (CO ) Z - ':'Units are liters BTPS, m. m. Hg, minutes block notation will be used to program the simulation. Figure 11 represents a DSL/90 digital-analog simulation block diagram of the network model shown in Fig. 10. Since DSL/90 operations are in floating-point arithmetic, no problem scaling is required and the parameters may be entered directly in terms of their conductances are given by the following relations: where t/; is proportional to the slope of the experimentally determined steady-state cardiac output versus CO 2 partial pressure curves-liters (C0 2 )/ min/mm 2 Hg (C0 2 ); and e == initial value of G, liters (COi)/min/mm Hg (C0 2 ), Using data from respiratory experiments, the following parameters and initial values hold for the simulation: VI (0) V 2 (0) V3(0) t/;I 40.0 45.0 45.0 0.0038 0.00344 0.l7 0.0008 0.1648 0.0625 0.0007 0.001 0.0025 0.0002 0.25 The DSL/90 statements which describe this simulator follow. TITLE RESPiRATjOI\ SERVO PROBLEM - ANALOG MODE SOLUTION ::j,\=;:'-; i.-STEP( TDELAY)) hj)K2=E i ~~-Vl G;=PSll*V3-THETAl 11=Gl*ADR2 Vl=INTGRL(VlIC.(ll+12+13)/Cl) ADR4=V2-Vl G2=PSI2"V2-THETA2 12=G2*ADR4 V2=INTGRLlV2IC.( 14-12)/C2) ADR7=V3-Vl 63 =PS I 3*V 3- THE T A3 13=G3*ADR7 V3-INTGRLlV3IC.( 15-13)/0) 6-1-65 RUN 1 Connection Statements i PARA'I CI-0.00344. C2=u.17. C3=0.000S.... ~~k ~:~ :g~ i~;s ~S i~~~ ~~~~: ~6~;; 3~~E ~~~~2 ~: ~~u 7. 6.21. 4 CO,'lST 14-0.25. 15=0.0(;1. TOELAY=20.0 INCON VlIC=40.0. V2IC=45.0. V3IC.45.0 CO,'lTRL FINTU'l=36.0. DELT-0.05 RELERR Vl=O.OOl :NTEG MILNE Run } Control PRINT 001, Vb V2. V3' Gl. G2. G3. 110 12. 13 PREPAR 0.05. Vl' V2. "3' G1. G2. G3. 11. 12. 13 GRAPH 6.0. 4.0. TIME. \/lo V2. V3 LABEL PAR PRESS 3.0 PRCNT C02 RUN 1 6-1-65 GRAPH 6.0. 4.0. TIME. Gl' G2. G3 LAtlEL CONDUCTANCE 3.U PRCNT C02 RUN 1 6-1-65 GRAPH 6.0. 4.0. TIME. 110 12. 13 LABEL C02 DIFFUSION 3.0 PRCNT C02 RUN 1 6-1-65 END STOP Print and Plot Output P:~~~ct,~:r. 177 DSL/90-A DIGITAL SIMULATION PROGRAM + ++ Figure 11. Digital-analog simulator block diagram. Figures 12 and 13 show nonretouched DSL/90 plots of CO 2 partial pressures and tissue conductances. Inhaled air containing 3% CO 2 was assumed for 20 minutes followed by a 20-minute span of normal room air with no CO 2 content. During the first 20 minutes, the receptor tissue (medulla), body tissue, and aveolar lung tissue all take up CO 2 • The second 20-minute span shows the nonlinear response during purging of body CO 2 • Figure 14 shows part of the results printout and input data format. After the initial runs were completed, a change in the G 3 conductance characteristic was suggested by medical research personneL Instead of a linear relationship between G 3 and receptor CO 2 ' partial pressure, a smoothwise increasing empirical function as shown in Fig. 15 was substituted. To do LEGEND LEGEND VI V2 ~ r- .•.. ..... ,- IO '0 x -~ ~ -~ -. ! ,/ '§ ~x_ ~ ~ ~ it'f _ 18 • '" x I -8 /,' ~ N 'N r5 ,I,I 'I I I :+---~----r---~-=='==--'----, Figure 12. '-'" N 0 il >: --------,: CD -N II ~ - CD .,; : ! , CD ~ ~ ----- B. 16. GI G2 G3 .... va TIME 24. 32. 40. Par press 3.0% C02 run 1,6-1-65. .-.~ '? ,\ B - '0 ",\ I:. 1\ ''I "\\'.~.:.... .........-.-...-.-- .. '.:l N .,; ~ II> cO cD 4B. B. Figure 13, 16. TIME 24. 32. 40, Conductance 3.0% C02 run 1, 6-1-65. 48. PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 178 *** DSLl9D SIMULATION DATA TITLE RESPIRATOR'! SERVO PROBLEM - *** NETWORK MODE SOLUTION &-1-65 RUN 4 PARA!'. Cl~0.uiJ344') CZ·u.17. C3~u.Ov()8 •••• this, it was necessary to redefine the G 3 conductance characteristic as the output of an arbitrary function generator block as follows: PSIl.O.0038. PSIZ.O.OuZ5. PSI3.0.00002 . . . . THETA;<=".v&"~. THETAI-v.lb41:1. THlTAj= v.vvv7. G3 E·~1.4 (ONST 14=0.Z5. 15'0.0()1. TDELAy z 20.0 FINTI""36.0. DELT.U.v5 RELERR Vl·O.OOI INTfG "ILNE PRINT 0.1. VI. V2. V3. GI. 62. G3 PREPAR 0.05. VI. V2. V3. 61. 62. 63 LABEL PAR PRESS 3.0 PROH C02 RUN 4 6-1-&5 6RAPH 6.0. 4.0. TIME. 61. 62. 63 LAI:lEL CONDUCTANCE 3.U PRCNT C02 RUN 4 In addition to the analog model approach shown here, two other methods were programmed in DSL/ 90 involving the network equations directly and &-1-6~ FIlD T DSL/90 simulation data. Figure 14a. T I .~ E VI O. 10.000:-02 :?OOOf:-Ql 1.000~-01 0 OOE - C 1 I).OOOE-Ot 6.0f)f")E-,)1 It. 7.000~-,,)1 OOE-I) 1 (}. 000!:-0 1 1C.OOOE-01 1.100F: 00 1.?00E 00 1.3001: Of) 1.400E 00 1.500~ 01) !.600E 00 1.700r- 00 1.800E 00 1.c)OOr: CO 2.000E 00 :' • I) V3 4.,)000F 01 4.S030E 01 4.1)082E 01 4.51~!3E 01 It-s192E 01 It-. !) 24/t-E 01 ' It-. I) 2 9 /.. E 01 4.53 4 2E 01 4.5389E 01 01 4.'1433E 01 01 4.5 1.. 76E 01 01 01 I h 5518E 01 4.'5558F 01 01 It .55S6E 01 01 rq I •• 5 (>3 3 E 01 I • • ') f~ f, P, E 01 01 01 I •• '5 -, 0 2 E 01 Ot I• • », 3 5 F 01 I .. • ') 766 E 01 01 I • • 57 ') 7 E 01 5 9? R E 01 ')062 f 01 4.SR26F= 01 V2 It.OO,)OE 01 1+.1'n7~ 01 1+ • (11 (} E 01 If. ?"3 f)qE 01 It-. 231.,6 r: 01 (+.235'11: 01 4.2V')OE OL 1.... ?3 /.f")'= 01 4.2331E 01 't. l3 ~ 1,= 01 4.~315f 01 1+.?30 Q ': 01 I ... 2 }'J 1 E 01 1... 2295E 01 4.??~'-}E 01 It. Z 2 g I... E 01 4.??7C)E 01 1+ • 2271, r- 01 4.227CE ')1 't.?26 Cj,= 01 4.~~f)?r:: 01 4.22 'j iJ E 01 01 ~C:;J: 4.5000E 4.5036£ 4.S0Q7E It. 516~F 4.5225E 4.5?8,st 4.")144E 4. 5 /t-0 1 E 4.1)45 'iF 4.1)t')01E 4.5'557F 4.560SF 4.56'>1': I t .56Qt)E I... 573i3r: 4.S17QE 4.5819E 4.:857 C 4.SWnE /+0 Ito 01 01 01 01 01 01 01 01 4.5 Q c;/+;: 01 I AFGEN (F3, V3) where the G 3 characteristic is given in a sequence! of X and F(X) values. AFGEN F3 ~ 0.0, .0002,48., .0002,49., J)0021" '" 50., .00023, 51., .00027, 52., .00031, 53., .00035,... 54., .00039, 55., .00043, 56., .000465, 57., .00048" ... 58., .00049, .59., .000495, 60., .0005, 80., .0005 INCON VIIC'40.0. VZIC·45.U. V3IC'45.1. CONTRL = It. ~'" Gl 6.2000F-03 6.31471=-03 6.51321:--03 6.7232E-03 6. '12 flltE-03 1.1.7.62E-03 7.3168E-03 7.S003E-03 7.676')E-03 7.8468'=-03 8.0103E-03 8. 16 76E-03 8.118<)E-03 e • 1.6 4 It C - 03 8.6043E-03 r.7':\89f-03 8 • 8 6 13 ,'t [ - 0 3 8.99Zer::-03 9.11251:-03 9.2276f-03 9.1382E-03 't:::r::-03 t .6f')?'1E 01 G3 G2 '5.00001:-02 5.0089E-02 5 • 0 2 It- 2 E- 02 5.0404E-02 ~.c)00E r)l 3.510C:: 01 ':3. f) ZOE 01 3.510r:: 01 '3 • 51~ or: 01 3.5,)f')C:: 01 1.S60E 01 1.570r: 01 ~.['jC)n ,') 1 ()l ":\.f:,()0 f) 1. c:; IV) DSL/90 1 ~1' •. , " _ .... _ l~ .00 ~l'=, 01 It • C' O:.? :1 '= 01 14.00?:;~ 01 It. 00 2 ~c:: 01 4.f)0?,")r~ 01 It. OO? (~i: 01 I • • OO? ;:) c 01 I, • (' ()? 01 I~ .(1) ) C\ ,: 01 4.00~~': 01 ~rJ.1lJlt\TrIJN ,~ r I ~1 E SO 2 3f 4.5023E '... 50.::? 3E 't.50?3E 1·.5023E 01 01 01 01 01 (~ • (~O 2 3!: 01 4.~0~3E 01 I •• r; 0 1. 3f= 01 4.I)O?'3E 01 1•• 5021,E 01 It. .• :Jut9E Ul, 501 9E 01 It. It. 5 C 19 F. It. '501 q E 4.1)01<)E l h 50 t 'H: It. 5019 E It. 50 19F 1·.')019F 4 • " () 1 'I f 01 01 01 01 01 '5.240C;~-02 5 • 2 It- 86 E- 02 ').2'61E-02 2· 5.0562~-02 5.0714E-02 5.0861f-02 5.1002E-02 5. 1137E"':02 5.1267F-02 5.1392E-02 1).1511c;-02 5.1628E-02 '5.1 '( 39:'=:-02 5.1846E-02 I) • 1 ') I. () E- 0 ? 5.2047r:-02 5 • 2 1 It 2 ~ - 0 2 '1.2233 c -02 5.23211:-02 01 01 01 4.S0I.CJE 01 4."nlc)F 01 l ... '50 I (] F 01 ~ -- 6.2713~-03 6.2711[-03 6.2lt?E-01 6.?.7!2E--03 2.1708E-/V. 1 -. JU~~8E-u., 6.271'5f-v~ "Co ?OO38E-04 5.00'57E-02 5.00'J7E-02 2.0038~-04 5.1Y057~-02 2.00 ';!8 E-O/+ 2.0038(-04 5.0057f:-()2 5.0057E-02 5.()()1)7E-02 5.0057f::-01. 5.0057E-02 5.0057f:-0? 5.0057E-02 13.1192 SECONDS Figure 14b. ,,,,", 6.L. 6.27!'3E-03 6.2l14f-03 6.27L41:-03 6 • :? 7 l't 1= - 0 3 6.2713(-03 6.2713E-01 2.0165~-04 2.02' 751:-04 2.0:'1831:-04 2.0437:::-04 2.0588!:-04 2 • 06 8 4 I: - 0 It 2.0777E-04 2.0A67f-04 2.0953::-04 .7..10361=-04 2.11I'1E-04 2 • 1 1 <; ~ r:- i) 4 ?1265':-0 /.,. ?1336E-(Y.,. 1 • l't 0 4 r: - () It 2 • 11.,. 70 r: - 0 It 2.1t)33E-04 2. I 593F-()/.,. 2.1652':-04 ...... '!l ,.... ':>021E 01 2.0000'=-04 2.0060E-04 Respiratory servo problem-network mode solution. 2.00~!3E-04 7..0038~-04 2.()0"38F=-04 2.00-::\A=-0/.. 2.00'l8~-04 1.. 00 ~17~-04 2.00:r/~-04 179 DSLj90-A DIGITAL SIMULATION PROGRAM 6.0 5.0 or 1<2 4.0 >< If) LL. 3.0 2.0 1.0 48 52 Figure 15. 56 60 v V F3 0.0 48 49 50 51 52 53 54 55 56 57 58 59 60 80 .0002 .0002 .00021 .00023 .00027 .00031 .00035 .00039 .00043 .000465 .00048 .00049 .000495 .0005 .0005 G3 conductance characteristic. fundamental compartment models. This last approach has proven particularly attractive since the biomedical user can directly program his own simulation problem without learning an artifax tool such as analog computer notation, network analysis, or FORTRAN programming. These techniques result in a major reduction in the user time required from initial problem coding to achieving final results. In addition, complete printouts and digital plots are available for each problem run, considerably simplifying the simulation documentation problem. Application No.2-Glass Tank Recirculating Furnace This second example involves the analysis of the heat transfer dynamics of a recirculating furnace used for preheating combustion air on a glass tank. The problem illustrates the ease of using generalized block notation in DSL/90 for performing continuous system simulations. In this case, the example was drawn from the industrial process control field. The technique, however, is broadly applicable to any continuous system analysis problem. As shown in Fig. 16, air is forced through a large preheating chamber, called a checker, filled with bricks cross-stacked to allow passage of the air around the brick surface, thereby preheating the cold air from the brick. The preheated air is then mixed with fuel, fired, and the resultant flame front melts the glass material in the tank. The hot combustion gases are forced through another checker, heating up the cold brick, and finally forced out the stack. After a period of time, usually about 15 minutes, the flow direction valve is reversed so that the cold checker that had been heated by the hot gases now becomes the preheating checker for the cold incoming air. Similarly, the previous hot checker that had been cooled by the cold input air now receives hot combustion gases which heat it up [] GLASS TANK REVERSING VALVE ,Figure 16. HOT CHECKER Schematic diagram-reversing furnace. again. The object of the simulation is to study the heat transfer dynamics of the recirculation furnace during the heating and cooling cycles induced by air flow reversals. The first step ~as to divide each checker chamber into three blocks, as shown in Fig. 17, effectively breaking a continuously distributed system into a GLASS TANK HOT CHECKER COLD CHECKER jTG~ ~~I jTatJ ~~ jTG~SI ~RIKI TBRIK6 TGAS6 TAIR Figure 17. Reversing furnace-end view. 180 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 sequence of lumped-parameter segments. The nonlinear heat transfer relationships for each block are given by Eqs. 1 and 2. d dt P2 V (TA T GAS = (TAF I TIN - (TAF I T GAS + hA I (T BRICK - T GAS) + K [(TBRICK + 460)4 - (T GAS + 460)4] :t M (T B T BRICK = hA 2 (T BRICK - hA I - (1) T AMB) T GAS) - K [(TBRICK + 460)4 - (T GAS + 460)4] (TBRICK - (2) 3. Checker temperature is uniform in any plane perpendicular to flow. 4. Gas temperature is uniform in any plane perpendicular to flow. 5. Brick thermal conductivity is infinite. Approximation 1. Distributed temperature in each checker is represented by a lumped parameter system of three stages. The generalized block of Fig. 18 has one: input, the entering gas temperature, and two outputs, the exiting gas temperature and the internal brick temperature. Once the block has been programmed and checked out, the user can connect any numb(~r of these together to represent the system by simply using the DSL/90 statement: TGAS, TBRIK = CHEKR(TGIC, TBIC, TIN), CHECKER .. BLOCK Figure 18. where Checker block. (TA = specific heat of the gas, (TB = V =: M = P2 =: FI = = Al h K =: = TBRICK = T GAS = TIN =: specific heat of the brick, volume of the checker, mass of the checker, gas density, gas flow, heat-transfer surface area of brick, conductive heat-transfer coefficient, radiation heat-transfer coefficient, checker brick temperature, checker gas tern perature, and input gas temperature to checker. These differential equations were programmed in FOR TRAN and used to define the characteristics of a checker-block, shown in Fig. 18. The following assumptions and approximations hold for Eqs. 1 and 2. Assumptions 1. Heat transfer by radiation and convection. 2. Temperature of checker is a function of time and space (I-dimensional). where TGAS TBRIK TGIC TBIC TIN output gas temperature of checker, internal brick temperature of checker, = initial gas temperature, = initial brick temperature, and = input gas temperature. Figure 19 shows the block model of one complete checker. Three checker blocks have been used ~GAS FLOW r----~ Figure 19. Block model of checker gas flow. together with three switching blocks that revers(! the flow direction through the blocks. Now if this block model is used as a model of each checker, the DSL/90 statements which repre,sent this system can easily be written by the user 181 DSLj90-A DIGITAL SIMULATION PROGRAM in terms of the basic checker blocks as follows: .. ••• STRUCTuRE STATEMENTS * " •• TGfIIIII ChECKER 5~'11 TCrlt:S C1 1:\= j,\S;'; I TRIGR.TAIR.TGAS2) C2: ~:o I.,Si/1 TR IGR. TGA:;1 .TGA:;3) C 3, r;. I 1';:;;\( T R I GR. TGAS2. TCOI~8) 1';0 I :-;,,;( (TR I GR. TCO:-l6. TGAS5) 5 ,1';= ,1\5;': i TR IGR. TGAS4 .TGAS6) C6; 1';- iNS;" TR I (,R. TGAS5. TAl R) T R I GR.-O. 5+S TEP ( TREVRS) e,,: ... ~ ~ ~ HOT CHECKER BLOCKS TGASltT~RiKI-CHEKR( TGI IC.TiH IC.Cl IN) TGAS.2. TbRI K2.CHEKR (TG2IC. TI:I21C .C21 N) TGAS3. TeRI K3-CHEKR« TG31 C. T831C. C31 N) * ••• COLD CHECKER BLOCKS TGAS". TtlR I K4.CHEKR (TG4IC. TB41 C. C41 N) TGASS. TI:lRI KS.CnEKR (TG5IC. TB51 C. C51 N) TGAS6. TI:!RI K6.CH!::KR (TG6IC. Te61 C6IN) * ••• DATA TIIIIQ ~ N e * ••• LEGEND . .. . N I:) ... ""N ~ i....\11 Et:j N "". r.n $ fl- .. N :l :l ~ c. PARAM INCON PRINT CONTRL pr<~PAR GRAPH LABEL GRAPH LABEL END STOP Fl-120000 •• TAIR.360 •• M-IOOOOO •• K.4.5E-06. TiiEVRS-15. SIGMAA-O.24. TCOMB-2800 •• AI-15000.. H-IO.. TG1IC-850.. TElllC-1600 . . T(,4IC-Z300 . . TtI4IC-1300 . . SIGMAB.0.24 • • • • TAMB-120 • • • • • AZ-300 . . . . . v-sooo . . . . . TG2IC-13i)() •• TI:!ZIC-ZOOv •• TI,;5IC-1900 •• TtlSIC-I00u . . Figure 20. 5. 10. TIME 26. 20. 15. 30. Third checker block temperatures, run 5. TG3IC-1800 . . 'OO T63IC-2501l . . . . . TG6IC-UOII . . . . . TB6IC-700. LEGEND TGA86 TIIIIK8 0.1' TGASl' T(,AS2' TGAS3' TG"S4' TG"&5. TG"&6 • • • • TBRIKI. TBRIK2. TBRIK3. TBRIK4. TBRIK5. TBRIK6. TRIGR. ClIN F I NT IM-30 •• DELT-O.ul 0.05. TGAS3. TG"S6. T6RIK3. TBRIK6.TG"Slt TG"&4. TdRIKlt TBRIK4 6.0. 4.0. TIME. TGAS3t TflRIK3 3RD CHECKER BLOCK TEMP& RUN 4 6.0. 4.0. TGAS6. TBRIK6 6TH CHECKER BLOCK TEMPS RUN II Note that the parameter and variable names are almost direct symbolic equivalents of the physical notation used for describing the furnace. Figures 20 and 21 show the actual plotted results of temperature variations at the outlets of the hot and cold checkers for a IS-minute flow reversal cycle. Advantages of this approach in addition to those already mentioned in example no. 1 include the ability to expand the simulation easily to include control system blocks and other system dynamics without disturbing the existing furnace simulation. This feature has proven particularly powerful in analyzing complex industrial processes. Application No.3-Saturn V Booster Rocket Vehicle Description. This study applies digital simulation to the flight dynamics analysis of a large space vehicle booster. The problem illustrates the use of DSL/90 algebraic notation stat~ments. In this study, the system example was drawn from the aerospace industry, but the use of DSL/90 algebraic notation can be applied to a broad range of problems including parts of the previous two examples. The vehicle used in this study was the SA TURN V launch vehicle for the APOLLO lunar mission. As shown in Fig. 22, the vehicle configuration consists of three booster stages and the APOLLO spacecraft. The overall length is 360 feet and, fully fueled, the vehicle weighs approximately 6 million pounds. The first, or S-IC, stage is powered by five ... III "" "" "" "" "" "" .. III ~ ~~----'------r-----.-----r----.-----' 5. Figure 21. 10. TIME 15. 20. 26. 30. Sixth checker block temperatures, run 5. F-l engines, each of which provides a thrust of 1.5 million pounds. The four outboard engines are swiveled and provide for thrust vector control during powered flight. The SATURN V vehicle has an independent inertial navigation and guidance system from that in the APOLLO spacecraft in addition to a control computer and required sensors. Trajectory. This simulation is concerned with the analysis of flight dynamics from launch through first-stage burnout. The booster-stage flight profile is shown in Fig. 22 and consists of a gravity turn for 150 seconds with separation occurring at approximately 60,000 meters altitude and a 2350-m/sec velocity. The rigid body equations of motion that were simulated form a perturbation set with respect to a rt!ference frame moving along the nominal trajectory as shown in Fig. 23. Axes X), X 2 X3 form an orthogonal set, with X 2 aligned along the nominal velocity vector and axes X), X 2 lying in the nominal boost plane. The fuel sloshing dynamics of the first stage propellants were 182 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE,1966 25 1 +-- APOLLO SPACELAFT 20 S-IVB f ~ Q S-IV B STAGE tS-lif X oo a:: 15 LIJ J- LIJ ~ z LIJ a ::l ORBITAL INJECTION 10 J- 5ct S-IC STAGE l 5 o TIME Figure 22. I rUJ.""UII Y ...... point Figure 23. 1000 (SECONDS) SA TURN V configuration and flight profile (from Ref. 5). Nominal Nominal 750 500 250 Reference frame axes (from Ref. 6). included as well as the dynamic effects of elastic bending along the booster longitudinal axis. The attitude control system was also included in the simulation, together with the dynamics of the gimballed thrust VECTOR control system and hydraulic actuators for the engines, as shown in Fig. 24. Since the defining equations of vehicle motion are far too complex for the purposes of this paper, the reader is referred to the basic documentation for the complete problem description. To illustrate the features of DSL/90, only a small portion of the larger problem will be treated-the pitch axis control system. Figure 25 is an expanded description of the control system filters, together with actuator and engine dynamics. The command signal filte:r block processes the pitch command signal from the control computer prior to applying it to the engine gimbal hydraulic actuators. In order to investigate booster flight dynamics, a primary wind disturbance was applied to the vehide during the first stage of powered flight as shown in Fig. 26. Horizontal wind loading was assumed, with varying azimuth angles for wind heading. Referring to Fig. 25, the transfer functions for the command signal filter and engine dynamics can be expended in Laplace notation to yield the equivalent linear operational equations: S2{j2 = K I {j21 u + K 2S {j2 + K 3{j2 (3) 183 DSL/90-A DIGITAL SIMULATION PROGRAM m .---------, IT /3~ r---------· I t----+----+----i~ HYDRAULIC I I I I I I I I L _________ J L _ _ _ _ _ _ --' ¢2 /32 ENGINE DYNAMICS ACTUATOR DYNAMICS + ¢:p II ---I I--~~~O----. : DATA ADAPTER DIGITAL COMPUTER L...-.........-f.---1 I ¢ DYNAMICS I INERTIAL REFERENCE SYSTEM 'HI r------ --l VEHICLE DYNAMICS I I INCLUDING LONGITUDINAL I I L ________ ~ BENDING a FUEL SLOSHING 14-----' I L---r--~ . . . fR 'X 2 + ¢2 + ¢2 WIND LOAD DISTURBANCE 'X2 NOMINAL PITCH RATE - DEG/SEC ¢2 PERTUBATION IN RIGID BODY PITCH RATE - DEG/SEC ¢2 PITCH RATE DUE TO VEHICLE FLEXING MEASURED AT THE RATE GYRO STATION - DEG/SEC PERTUBATION IN PITCH ATTITUDE - DEGREES . fR ¢2 cpJP ,Bil ATTITUDE DUE TO VEHICLE FLEXING MEASURED AT THE STABLE PLATFORM STAT ION - DEG/SEC u /32 PITCH ATTITUDE COMMAND, UNFILTERED /3i /3 /32 ENGINE GIMBAL ANGLE (PITCH AXIS) -DEGREES PITCH ATTITUDE COMMAND, FILTERED Figure 24. Simulation signal flow diagram (from Ref. 5). and S2P2 = (K32P~ - K 31 (2)S + (K 36 P2 - K 3S (2) + (K34P~ .... K 33 (2) S1 (4) where S is the conventional Laplace operator. From Fig. 24, the expression for the unfiltered pitch command signal P~ I U becomes: P21 11 = ..... [aO(cI>2 + cI>/P) + alex + ~2 + ~l')] (5) Equations (3) through (5) can be directly programmed as DSL/90 statements as follows: * PITCH ATTITUDE CONTROL SECTION BET2CU == - (AO*(PH12+ PH12FP) +Al*(CH12D+PH12D +PH2DFR)) BET2CD = INtG RL(B2CDO, K 1*BET2CU + K2*BET2CD + K3*BET2C) 184 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 COMMAND SIGNAL FIL TER C /32 ACTUATOR ENGINE DYNAMICS a 2 K32S + K34 S + K 36 Kl IU S2+K2 S +K3 Figure 25. {.3.C 2 S3+K3IS2+K33S +K35 /32 Pitch axes control system. BET2C = INTG RL(BET2CO, BET2CD) BET2DD= K32*BET2CD - K31 *BET2D + K34*BET2C ... - K33*BET2 + INTG RL(IC53, K36*BET2C - K35*BET2) BET2D = INTGRL(BET2DO, BET2DD) BET2 = INTGRL(BET20, BET2D) For the complete simulation, over 400 DSL/90 statements were required, not including the function generators and data statements. Both block and algebraic notation were used for describing the simulation configuration. The above small portion of problem coding is an excellent example of the ease of using both algebraic and block statements in DSL/90. Note the use of symbolic names for variable and data names which closely resemble the actual names. This feature has proven particularly helpful for large simulations . The SATURN V flight dynamics were simulatled for the first 120 seconds of powered flight. Figures 27,28 and 29 show resultant DSL/90 plots for three of the system variables being studied. The SATURN V simulation demonstrated several important features of digital simulation. First, a complex nonlinear aerospace problem could be successfully solved in DSL/90 by engineers relatively unskilled in programming. Second, many problems require both algebraic and block notation. The ability of DSL/90 to handle both of these requirements was amply proved. Third, problem solutions could be obtained quickly with a minimum of setup time. The original programming I'equified approximately 16 hours of an engineer's time for problem setup. Each run of 120 seconds flight time required approximately 25 minutes of IB]\1 7094 computer time. In addition to the above featuf(!s, DSL/90 allowed the user to model his problem in segments, checking out portions of the simulat,ed vehicle independently, and then to hook these se:ctions together. As an example, the trajectory equations form one section of the simulation, programmed in algebraic notation, of which the control system is another independent part programmed in block notation. . 20 ___- - - - 75 m/s .18 .16 >- t: u .14 0 ...J >- w t- U > 0 w W u 0 W .12 ...J ...J > J: Z > i ...J /' , "" "" '" /' POINTS TO ORIGINS - -- CHICAGO '\ -"- -- - --- - -,--- - -- <-- CST POINTS TO FLIGHTS CINCINNATI EST POINTS TO FLIGHTS A REPEATING GROUP ~ ADAM-A GENERALIZED DATA MANAGEMENT SYSTEM GENERATE FILE, DESTINATION, CMDS. BEGIN OBJECT. ROLLVALUED, OBJECT NAME (CITY), ROLLVALUED, TIll! ZONE, DECIMAL, TAXI (TAXI FARE), BEGIN GROUP, ORIGIN (ORIGINS) , LENGTH VARIABLE. SCAN TO NON' '. ALPHA. USE OBJECT ROLL. LENGTH 1 COL. ALPHA. USE ROLL TIMES. SPACE TO NEXT CARD. SPACE 25 COL. LENGTH 5 COL. NUMERIC.4 DIGITS. TERMINATED BY '-'. SPACE TO NEXT CARD. BEGIN REPETITION ROLLVAWED, NAME, LENGTH VARIABLE SCAN TO NON' '. ROLLVALUED, TIME ZONE, LENGTH 3 COL. ALPHA. USE ROLL TIMES. IlEGIN GROUP, FARES, TERMINATED BY '--'. SPACE TO NEXT CARD. BEGIN REPETITION ROLLVALUED, DECIMAL, END GROUP, BEGIN GROUP, ROLLVALUED, NAME (CLASS) , SPACE 12 COL. LENGTH 2 COL. COST (FARE), SPACE 12 COL. LENGTH 6 COL. ALPHA. USE OBJECT ROLL OF CITY FILE. Appendix B NUll!RIC.5 DIGITS. END REPETITION. AN EXAMPLE OF FILE GENERATION FLIGHTS (FLIGHT) , TERMINATED BY , - - - , SPACE TO NEXT CARD. NAME, SPACE 25 COL. LENGTH 5 COL. INTEGER, DEPARTS (DEPARTURE TIME), INTEGER, ARRIVES (ARRIVAL TIME), INTEGER, NR OF STOPS, FLIGHTS. END GROUP, ORIGINS. END OBJECT. ALPHA. USE OBJECT ROLL OF FLIGHT FILE. SPACE BACKWARD 25 COL. LENGTH 5 COL. NIlMERIC.4 DIGITS. SPACE 4 COL. LENGTH 5 COL. NIlMERIC.4 DIGITS. SPACE 21 COL. LENGTH 1 COL. NUMERIC. 1 DIGIT. END REPETITION. END REPETITION. SPACE TO NEXT CARD. Figure 8. part of an entry, to allow for variable numbers of repetitions in different entries. Groups are conceptually structured as entries, with a fixed and variable part, but physically they differ from entries in that all their data are not necessarily contiguous. Variable data, including· repeating groups, are accessed by pointers within the fixed-data section of the entry or group to which they belong. Property descriptions reside within the property roll for a file, rather than in the file itself. ALPHA. USE NEW ROLL CLASSES. FARES, END GROUP, 203 Message to generate destination file. A message to generate the Destination file is shown in Fig. 8. In this file generation language, spacing is not significant, so the message was spaced out for readability. The first column gives, for each property, the property type; the second column, the property name with synonyms enclosed in parentheses. The next column contains directions for reading input, in this case from cards. Variable length fields and fields out of order are handled here. The last column gives the type of conversion (e.g., ALPHA, NUMERIC, or the name of a usersupplied conversion subroutine) to be applied to the input data as it is read in. THE ENGINEER-SCIENTIST AND AN INFORMATION RETRIEVAL SYSTEM C. Allen Merritt and Paul J. Nelson IBM Technical Information Retrieval Center International Business Machines Corporation Yorktown Heights, New York To illustrate this new relationship between the technical professional and the information retrieval system, we will examine the philosophy and mechanics of the IBM Technical Information Retrieval Center. This particular system represents an integrated approach to the storage, announcement, dissemination, and retrieval of technical information. It combines the best features of both machine processing and human information skills, and is applicable to a wide range" of data bases and system activities. INTRODUCTION During the last few years a veritable explosion of study, effort and accomplishment by business, government, and university organizations has taken place in the realm of information retrieval and dissemination. Theoretical problems have been explored, new equipment and techniques" have been developed, and a number of successful operating systems have been implemented. This paper will look at the impact of such information retrieval systems or cent~rs upon their most important clientele-the engineer-scientist or the technical professional. Who are these people? Let us define them as professionals, working in a scientific or engineering discipline, and very likely in a research and development environment. Most of them share some basic information problems. They recognize that the rapid expansion of knowledge and data in their technical fields is taxing their time and memory capacity to the limit. There are increasing pressures on them for more interdisciplinary knowledge. Technical obsolescence is a real problem, for they live in a fast-moving environment where today's research idea can be tomorrow's hardware. As a result of these problems and pressures, the engineer-scientist, sceptical at first, has been drawn toward a new source of help- the machine-oriented information retrieval and dissemination system, backed by the technical library . PHILOSOPHY AND APPROACH The IBM Technical Information Retrieval Center (lTIRC), located in Yorktown Heights, New York, was established to serve the IBM scientists and engineers in all their laboratory locations. A wide diversity of occupations are involved, ranging from physicist to circuit designer to programmer. ITIRC exists to supply the right information to the right person in the shortest possible time and at the least possible cost. This is no small undertaking when you consider the size of the company, the number of locations, and the tremendous range of interests in research, development, manufacturing, and sales. Add this complexity to the general information problems described earlier and the need for an information retrieval center becomes urgent. Regardless of need, however, an information retrieval system cannot be established until man205 206 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 agement recognizes its value and is willing to set aside funds and manpower for its operation. Further, this funding must cover a period long enough to permit a valid judgment about the value of the services rendered. How this valid judgment can be arrived at will be discussed later. Along with management and the staff of the information center, the individual engineer-scientist has certain responsibilities to the system. First, he must supply the system with a complete and accurate description of his occupation and related information needs. Second, as his assignments or interests change, he must be alert in notifying the system about the changes. Finally, the information center looks to him for feedback-is he receiving pertinent material, is he missing significant information, is he getting prompt service? The system has built-in techniques for making this feedback easier, but it still takes initiative on the part of the customer to supply complete and pertinent data. In parallel with the user's responsibilities, the staff of ITIRC accepts similar ones. We are committed to translate his interests into the retrieval and dissemination programs accurately and fully, to act promptly on his sugge.:>lions and complaints, and to follow up with him personally whenever significant questions arise. The ITIRC also has commitments to management. Like every operation in a large business, we must frequently justify our existence, measure our services in tangible terms, and demonstrate growth and improvement in many ways. This, too, is not an easy task because information retrieval deals so often with intangible results-but it must be done. THE SCOPE OF THE SYSTEM Dissemination What we call the Current Information Selection program is one of the keystones of ITIRC activities. The engineer-scientist customer submits a textual description of his information needs and job responsibilities. This goes to an information retrieval specialist who is thoroughly familiar with the sophisticated machine-searching techniques that are used, as well as with the types of documents that are entering the system. He analyzes the user's specificatio'ns and constructs an accurate profile for entry into the system. If necessary, he' goes back to the customer and obtains more detail or clarification. Once the profile is checked out and operating, it is compared several times a month with all of the current documents being processed into the information center. Whenever the text of a document abstract matches the profile, a printed abstract is generated automatically and sent to the customer. He screens each notification and takes appropriate action-by telling the Center how relevant the document is, by reviewing it on microfilm, or by requesting a personal copy if he needs it. Retrieval Retrospective searching is another important function of ITIRC. All current document input is added to a set of master searching tapes, a file that now includes abstracts of over 125,000 documents. Search questions come in from customers throughout IBM, often through the local IBM libraries. They are directed to the appropriate IR specialist, depending on which of the several classes of documents need to be searched. The specialist analyzes the request and formulates one or more machine search questions, using the various logicall tools at his disposal, as well as his broad knowledge of the data base to be searched. The output of abstracts that answer the question is reviewed by the specialist and sent to the customer. He may be satisfied with the answers, or request a deeper or'narrow(!r search, of ask for another search on a related topic that has been brought to light. In the latter case, the process is repeated. Retrospective searching is normally schl;!duled to yield answers within 48 hours. However, an emergency question can be processed almost immediately. Also, to handle urgent re'quests from distant locations, the Center maintains two sat.ellites. at laboratories in San Jose, California, and LaGaude, France. These have the search programs and duplicate sets of the master search tapes that are updated monthly. Announcement Supplementing the Current Information Selection program already described, ITIRC publishes monthly three series of announcement bulletins. These cover all current documents processed in the three major data bases-IBM reports, IBM Invention Disclosure material, and selected external (nonIBM) documents and journal articles. These bulletins are made available to all IBM librari,es, report centers, and publishing groups. They are also distributed to selected individuals who have expressed a need for reviewing all current literature in the system. THE ENGINEER-SCIENTIST AND AN INFORMATION RETRIEVAL SYSTEM The bulletins contain abstracts of documents in order of accession, including titles, authors, sources, detailed abstracts, and descriptive index terms assigned by the IR specialists. Each issue also contains a category index that offers the reader a quick way to scan the contents selectively. This section lists each document title under one or more of 23 broad subject headings, with easy cross-reference by page number back to the abstracts. A second manual searching aid is an alphabetical subject index based on the descriptive terms assigned to each document. Each entry includes title, accession number, and page reference. Both indexes and abstracts can also direct the reader to a location on microfilm where the complete text of most documents is available for viewing. Supplementing the general-purpose bulletins are indexes designed for library and refe'rence use. For the same documents we publish monthly alphabetical author indexes, indexes of the original source numbers, and sequential listings of the accession numbers-all with complete titles. Any of these machine-produced indexes can be cumulated quarterly or as required. And, with the same machine programs, various special classes of documents can be pulled out and indexed. A specialized type of announcement medium is a monthly compilation of all the current research and development projects in the company; we call this an automated project file. Updated regularly, it contains descriptions of the projects and budget, manpower, and planning information. It is distributed to a controlled listing of management people as an information and control vehicle. Microfilm and Hard Copy To make the complete text of input documents as widely available as possible, ITIRC is operating a comprehensive microfilming program. Currently we are putting on film all the invention disclosure material, almost all the IBM reports, and as much of the external material as copyright and distribu~ tion restrictions will permit. The medium used is 100-foot reels of 16mm microfilm, with a capacity of about 2300 frames per reel. Depending on the equipment available, these are distributed in reel form or packaged in special cartridges. Most IBM library locations have complete files of film going back several years and now covering over 24,000 documents. Thus, for complete copies of documents processed by ITIRC, the system customer has two al- 207 ternatives. He can request them from his nearest IBM library, which has many current documents on hand or can order them if needed. Or he can go to a nearby microfilm reader to scan them. Some locations have reader-printers, in which case the user can make selective copies of pages or short documents. Admittedly, the problem of supplying hard copy to many customers is a constant challenge. However, the Current Information Selection program helps the situation by preselecting a relatively small percentage of the total documents for the user. All of the major system output-machine listings and publications-offers complete bibliographical data and detailed abstracts. This gives the customer a chance to do his own screening without having to order documents blindly. By the time he decides he wants a personal copy of an item, he is reasonably sure of its value. The screening process built into the system, combined with microfilm accessibility, tends to control the amount of hard copy requested and to assure its worth when requested. THE DATA BASE OF THE SYSTEM One of the major goals of ITIRC is to cover the pertinent scientific and technical literature, both inside and outside IBM, as completely as possible. Obviously we had to start with what we considered the most important types of data and expand from there. The following are the major classes of input documents now being processed: 1. IBM Research and Engineering Project Files, mentioned earlier, are the official reporting medium for all R&D activities within the Corporation. 2. IBM reports include formal technical reports, laboratory and testing reports, informal published memos, IBM papers cleared for external use, patents issued to IBM. personnel, reference and operating manuals, and a variety of miscellaneous documents. 3. IBM Invention Disclosures are novel ideas submitted as Inventions to solve specific problems. The most promising are selected to be filed for patent. 4. Non-IBM reports are selected documents of interest to IBM engineers and scientists. Typical examples are Defense Documentation Center reports, university reports, and technical journal articles. 208 PRO~EEDINGS-SPRING JOINT COMPUTER CONFERENCE. 1966 5. IBM Suggestions. . Like many other large companies, IBM has a suggestion system that over the years has amassed a large number of sugge:stion reports covering proposed changes 'in products or procedures. These have been placed on a separate set of search tapes in a structured format. When the numerous new suggestions are received they ·are matched against the data file to see whether similar ideas have been submitted 'in the past. If no match occurs, the s~ggestion is investigated further by the 'Suggestion Department to see whether it should be accepted and an award made for it. As new technologies dev~lop and new kinds of publications and reports ap'pear, the ITIRC staff is constantly evaluating them 'and expanding the data base of the system. THE SEARCH LOGIC OF THE SYSTEM One of the most important factors in the ITIRC system is the computer logic used for searching (both retrospective searching and current dissemination). It is a flexible technique for searching a normal text data base (in this case, the text of the abstract). It is not a simple technique to use, but an experienced IR specialist can achieve a high degree of precision with it. A fundamental point is inherent in the words "normal text." Since the data base contains the language of the original document (and author), we can phrase search questions or user profiles in the same kind of normal English or accepted technical language. We use not just single words but phrases and adjacent or associated words. We scan not only the abstract but the title, author, source information, and index tenns associated with a document. With this in mind, let us look at the specific types of logic available. Single Word Logic Single words can be searched for individually. a) RETRIEVAL Families of single words can be searched with an OR technique, to cover variations in spelling,synonyms, and the like. b) RETRIEVAL or RETRIEVING or SEARCHING or SEARCH or SEARCHES We can use AND logic to :search for combinations of associated single words, where two or more of the words must be present in the abstract to satisfy the request. c) INFORMATION and RETRIEVAL We can use OR logic within the AND logic groups. d) (INFORMATION or DOCUMENTS or DATA or LITERATURE) and (RETRIEV AL or RETRIEVING or SEARCHING or SEARCH or SEARCHES) And we can expand a broad, simple AND group to make it much more narrow and specific. e) (INFORMATION or DOCUMENTS or DATA or LITERATURE) and (RETRIEVAL or RETRIEVING or SEARCHING or SEARCH or SEARCHES) and (MEDICAL or MEDICINE or BIOMEDICAL) In the examples, a) and b) are very broad questions which would probably not be used to search a large file. Example c) is more specific, but would probably miss some of the documents that would be picked up by d). And e), which requires a match from each of three groups, is even more precise. A djacent Word Logic This is a powerful tool for searching the normal text of abstracts. Two normally related words may by their contextual positioning havt~ entirely changed meanings. To avoid such "false drops," we can search for them as adjacent words in a specified sequence. a) INFORMATION RETRIEVAL The above question would not match on RETRIEV AL OF INFORMATION or any other contextual arrangement. Within these adjacent word groups, we can make allowances for spelling and synonyms by means of OR logic. b) (INFORMATION or LITERATURE) (RETRIEV AL or SEARCHING or SEARCH) This would match on INFORMATION RETRIEV AL or LITERATURE SEARCHING" etc. Also, we can look for related groups of adjacent words by lumping them together as a single: OR family. c) INFORMATION RETRIEVAL or SELECTIVE DISSEMINATION We can again use the AND technique to make a question more precise. One adjacent word group can be ANDed with another, or a single word. THE ENGINEER-SCIENTIST AND AN INFORMATION RETRIEVAL SYSTEM d) INFORMATION (RETRIEV A L or SEARCHING or SEARCH) and MEDICAL (LITERATURE or DOCUMENTS or DATA) e) INFORMATION (RETRIEVAL or SEARCHING or SEARCH) and MEDICINE The adjacent word technique is particularly useful when we are searching for specific phrases that we know are likely to occur in pertinent documents. It makes it easy to look for "operations research," "numerical control," "time sharing," and the like. The Match Criterion This is simply a numerical designation of the number of matches required for the computer to register that a document answers a given question or satisfies a user's profile. Either a single word or a complete logical group (OR, AND, or adjacent word group) is considered as one logical unit. Raising this criterion beyond a match of one is a helpful device when a question involves two distinctly· different subject areas that we are trying to find in combination. For example, if we wanted documents about information retrieval and dissemination only when they related to medicine and medical literature, we could raise the match criterion to two and phrase the question as follows: INFORMA TION (RETRIEVAL or one SEARCHING.or SEARCH) logic~l or } umt SELECTIVE DISSEMINATION and MEDICAL (LITERATURE } or DOCUMENTS) one or logic~l umt MEDICINE or BIOMEDICAL Both logical units would have to be found in the document to satisfy the criterion of two. NOT Logic (Negative) If a user is interested in certain aspects of a given subject area but wishes to eliminate or bypass portions of it, we can instruct the computer to ignore the documents matched if they contain specified words or phrases. For example: INFORMATION (RETRIEVAL or RETRIEVING or SEARCH or SEARCHING) not SDI not SELECTIVE DISSEMINATION 209 A bsolute YES Logic (Imperative) If a user wants to see all abstracts that contain a specified word or phrase or name, regardle~s of the rest of the document's content, this can be achieved by appropriate coding. The specified imperative will override all other logic, including the match criterion and NOT logic. If the NOT example just given also contained MEDICINE as an imperative, an answer would be printed out even if the abstract contained both MEDICINE and SDI. This technique is very useful for extremely specific words that we know will identify documents pertinent to the user's interests. The examples used to describe the search logic were necessarily brief and simple. Figures 1 to 3 give a more complete illustration. They show how the original information supplied by the customer is converted into a working profile by the IR specialist, and how the profile actually matches against current input documents. HOW DO WE EVALUATE SYSTEM PERFORMANCE? Measuring the results obtained from a system like ITIRC is a challenge that increases as the system grows, the data base broadens, and the number of users expands. It cannot be done on a hit-or-miss policy of voluntary feedback, although spontaneous reports from users are very helpful. We have worked out more formal techniques. Each set of answers to a retrospective search request is sent out with a simple return card. The customer is asked to check off the following: - The following items were not specific answers to my question. - The following were not listed as answers but 1 believe should have been. "I am responsible for development and marketing of Information Retrieval appl ications across all industry lines. This includes feasibil ity studies of techniques of automatic indexing, abstracting; optical character recognition, type composition and editing; language translation, syntactic analysis; query languages; file organization, image storage ?nd retrieval; tra·nsmission of images; copyright problems; dissemination of information, as we II as mec han i zat ion of library operat ions. " (User also primarily interested in external sources) Figure 1. The original information supplied to the IR specialist by a user on his data sheet. 210 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 S;ngle Worth OCR ISR SOl MEDLARS not IBM CONFIDENTIAL Adjacent Words (INFORMATION or DOCUMENT or DATA or TEXT or IMAGE) followed by (STORAGE or STORING or RETRIEVAL or RETRIEVING or SELECTION N SELECTING or SEARCHING or SEARCH or SEARCHES or SELECTED "' ABSTRACTING or DISSEMINATION or DISSEMINATING or QUERIES or QUERY) SELECTIVE DISSEMINATION (AUTOMATIC or AUTO or AUTOMATED) follo_d by (ABSTRACTS or ABSTRACTING or COMPOSING or COMPOSITION or INDEX or INDEXING or ABSTRACT or ABSTRACTED or INDEXES or EDIT or EDITING or EDITED or TRANSLATION or TRANSLATING or CLASSIFYING or CLASSIFICATION) TYPE followed by (COMPOSITION or EDITING) (LANGUAGE or LANGUAGES)foliowed by (TRANSLATION or (OPTICAL or CHARACTER or PATTERN) followed by (RECOGNITION or RECOGNIZING or SENSING or READER or READERS) (SYNTACTIC or SYNTACTICAL) followed by (ANALYSIS or ANALYZING) GRAPHIC DATA PROCESSING (FILE or FILES) followed by (ORGANIZATION or ORGANIZING) (IMAGE or IMAGES) follo_d by (TRANSMITTING or TRANSMISSION or TRANSMITTAL) LIBRARY or LIBRARIES) followed by (MECHANIZING or MECHANIZATION or AUTOMATION) TRANSLATING or TRANSLATED) QUERY followed by (LANGUAGE or LANGUAGES) Figure 2. Match Criterion set at one -- thus no imperatives necessary. The completed profile created by the IR specialist from the information on the original data sheet. --- The answer report proved satisfactory to my question. --Other comments. If the response is negative or if the search seems to be incomplete, the IR specialist concerned promptly goes back to the requester, by phone or letter, and offers further assistance. For example, he may run a revised search, based on added data supplied by the user. Records are kept of the number of searches, the processing time, the user's reaction to the answers, and whether any further action was required. Since the Current Information Selection program deals with over a thousand users on a recurring basis, a mechanized feedback system was in order. Accompanying each printed abstract sent to a customer is a matching Port-A-Punch response card. When he reviews the abstract, he simply punches out the appropriate box and returns the card. He has a choice of the following reactions to a document: 1. Abstract 'of interest, document not needed. 2. Send copy of document. 3. Abstract of interest, have seen document before. 4. Abstract not relevant to my profile. 5. Comments-written below. (Change of address, change to profile, etc.) The Port-A-Punch cards, into which the program has already punched user, document, and date identification, come back to ITIRC for processing. Document requests and comments are sorted out for immediate action. Then periodically the accumulated cards are run against a statistical program. The statistical program supplies a complete analysis of the returns, for each individual user and for all users, with separate reports for each of the major data bases: 1. Total notifications sent out. 2. Number and percentage of response: cards returned. 3. Number and percentage of interest (with a breakdown into each of the: three responses listed above). 4. Number and percentage not relevant. In addition, the program gives us several special listings: 5. Users who received no notifications in the current period. 6. Any users who failed to return their response cards within a specified period. 7. A list of users whose "not relevant" response exceeded a predetermined percentage. With the help of these statistics, the IR specialist can quickly identify any customers who do not seem to be getting satisfactory results from the system. He can then review the profiles and if necessary make personal contact with the users to revise or THE ENGINEER-SCIENTIST AND AN INFORMATION RETRIEVAL SYSTEM AD-608~6~' UNGUISTIC TRANSFORMATIONAL ANALYSIS. OCTOBER 1964. THORNF. JP LYONS. J INDIANA UNIVFRSlTY AD-608747 RADC-TDR-64-200 CONTR AF-30 (6021-2951 THE CONTRACT WAS CONCERNED WITH THE FEASI&ILITY AND UTILITY OF A KERNELIZATION PROCEDURE FOR PURPOSES OF !iNFORMAtioN RETRiEvAu. THE LEADING SECTION DISCUSSES. IN GENERAL. THE PROBLEMS INVOLVED IN THE KERNELI ZAT ION OF COMPLEX ENGLI SH SENTENCES. THE REMIII NDER I SIN THE FOR"! OF APPENDICES. APPENDIX I CONTAINS A DETAILED REPORT OF THE KERNELIZATION PROCEDURE. APPENDiX II REPORTS ON A SERIES OF EXPERIMENTS. TO DETERMINE TO WHAT EXTENT' INFORMATION WAS PRESERVED IN KERNELIZED VERSIONS OF SENTENCES. APPENDiX I II REPORTS ON A FREQUENCY taUNT OF THE TRANSFORMATIONS EXHIBITED BY A STRETCH OF RUNNING TEXT. FINALLY. APPENDIX IV CONTAINS A LIST OF TRANSFORMATIONAL RULES WHICH HAVE ACTUALLY BEEN WRITTEN. WITH REFERENCES TO SIGNIFICANT PUBLISHED (A"ID ~OME UNPUBLISHEDI MATERIAL. 119P. 23-MIsCELLANEOUS LANGUAGE RETR I EVAI ! SYNTAX II NFORMAT I ON DOCUMENTATION GRAMMAR~ 65f\ 0040~-MFOO 1 Figure 3a. A typical document match against the profile. This document matched on INFORMATION RETRIEV AL. Note that there is also a relationship between SYNTACTIC ANALYSIS in the profile and LINGUISTIC ANALYSIS in the document. AD-608404. DESCRIPTORS AND COMPUTER CODES USED IN NAVAL ORDNANCE LAB()RATORY LIBRARY RETRIEVAL PROGRAM. DECEMBER 1964. OOC ' LIBERMAN. E AD-60840" U.S. NAVAL ORDNANCE LABORATORY NOL TR-64-20 THE DESCRIPTOR AND COMPUTER CODES ARE LISTED SEPARATELY BY 5UFlJECT. EQuIPMENT DESIGNATIONS (INCLUDING ACRONYMS. TRADE NAMES. CODF. NAMES. ETC. I AND CORPORATE AUTHORS. PERSONAL NAMES. AND GEOGRAPH I C PLACE NAME S. THE SE DE SCR I P TOR S HAVE BEEN DEVELOPED OVER A FOUR YfAR PERIOD. THEY PROViDE A SUBJECT APPROACH TO TECHNICAL REDORTS LITERATURE FOR USE W[TH IBM 1090 COMPUTER. THESE DESCRIPTORS COOl FORM T:J T HE ARE AS OF LABORATORY I NTERES T [N RESEARCH. DEVELOPMENT. TEST. AND EVALUATION IN ORDNANCE AND REbATED F[ELDS. 228P. ,i~;~A~gT~~N~~~~ lFVALf ESCR ~~~~~~I ES CODES 656 00412-MFClOI Figure 3b. AD-608574. STATI~T1CAL A typical document match against the profile. The. match here also occurred on INFORMA TION RETRIEV AL. In addition there is a close connection between LIBRARY AUTOMATION in the profile and LIBRARY RETRIEVAL in the docilment. [S ,AUTOMATiC CLAssiFICATION/A REASONABLE APPLICATION OF ANALYS[S OF TEXT. AUGUST 1964. !lDC DOYLE. L B update their profiles. Thereafter he can monitor program results to make sure that the revisions are producing the desired effect. The overall statistics offer a good yardstick for measuring system performance. Such figures as number of notifications sent out, percentage returned, current relevance percentage, and quantity of documents requested are all pertinent to evaluating how well the system is operating. HOW HAS THE SYSTEM PERFORMED TO DATE? Growth 1. The data base described now includes abstracts of 125,000 documents, with current additions at the rate of approximately 10,000 per year. 2. The number of IBM users of the system is increasing steadily. From the pilot group of 500 professionals participating in Current Information Selection early in 1965, we have expanded to 1700 users. The rate of retrospective searching activity is now up to about 300 searches per month at Yorktown and 100 searches at La Gaude, France, and is increasing. 3. The satellite operation in La Gaude, France, is now offering full service to W orId Trade Corporation personnel in Europe, supplying both retrospective searching and Current Information Selection to more than 400 customers all over Europe. User Response Statistics After a statistIcal analysis of over 100,000 CIS response cards, we found that the overall proportion of relevance was 79.1 % of the returns. This figure was 77% in the first 6 months, and increased to over 80% in the third quarter. ·Much of the improvement was due to the rewriting or revising of the initial profiles. SYSTEM DEVELOPMENT CORP. 110-608';74 THE CRUCIAL QUESTION OF THE QUALITY OF AUTOMATIC CLASSIFICATION Is TREATED AT CONSIDERABLE LENGTH. AND EMPIRICAL DATA ARE INTRODUCED TO SUPPORT THE HYPOTHESIS THAT CLASSIFICATION QUALITY [NPROVES AS MORE [NFORMAT[ON ABOUT EACH DOCUMENT [S USED FOR [NPUT TO THE CLASS[F[CAT[ON PROGRAM. SIX NON JUDGMENTAL CR[TER[A ARE USED IN TESTING THE HYPOTHES[S FOR 100 KEYWORD LISTS (EACH LIST REPRESENTING A DOCUMENT 1 FOR A !'-ER [ES OF COMPUTER RUNS IN WH I CH THE NUMBER OF WORDS PER DOCUMENT Is INCREASED PROGRESSIVELY FROM 12 TO 36. FOUR OF THE ~[X CR[TERIA INDICATE THE HYPOTHESIS HOLDS. AND TWO POINT TO NO EFFECT. DIlEVIOUS WORK OF THIS K[ND HAS BEEN CONFINED TO THE RANGE OF ONE THROUGH E[GHT WORDS PER DOCUMENT. F[NALLY. THE FUTURE OF AUTOMA T [C CLASS [F I CAT [ON AND SOME OF THE PRACT I CAL PROBLEMS TO BE FACED ARE OUTL INED. 34P. 23-M [SCELLA~EOUS II NFORMAT I ON RETR i EVAU CLASSIFY[NG [NDExING FILE DOCUMENTATION CO,,!DUTERS 65B OD420-MFOO 1 Figure 3c. 211 A typical document match against the profile. The match is on both INFORMATION RETRIEVAL and AUTOMATIC CLASSIFICATION. Operating Results 1. As expected, the first several months of actual operating experience showed us numerous avenues of improvement, since this was the first effort to correlate user profiles with a natural text searching program. The group had prior experience in writing retrospective search questions. However, we found a noticeable difference in practical strategy between searching a large data base with a few questions and searching a relatively small data base with over a thousand questions (profiles). When we set up the European satellite in September with this experience in back of us, we found that most of the earlier 212 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 start-up problems virtually disappeared. The initial statistical results from Europe were very similar to our current domestic figures. 2. Overall, between 12 and 13% of the CIS returns were requests for copies of the complete documents. A much higher percentage of requests (15 to 20%) came rrom the Data Processing Division and World Trade personnel who were scattered in small locations without direct IBM library facilities. For our largest single group of users in a major IBM complex with library facilities, this figure dropped to about 10%. 3. Only about 5% of the total responses were "Relevant, but have already seen the document." This can be viewed as an encouraging comment on the timeliness of the announcements, as well as the nonavailability of some documents from any other source. 4. The highest percentage of relevance was returned for the data base containing IBM internal documents (technical reports and the like), which was to be expected. The Importance of Personal Contacts Even though we are talking about a highly mechanized dissemination system with 1500 customers, we have found that the "personal touch" is extremely important. With a small staff serving so many, it is obviously not possible to talk directly to every user every month. However, the personal conversations and letters that we do have time for have paid dividends in terins of customer satisfaction and participation. The quarterly statistical run selects and prints out a "trouble-shooting" list. On it are all the users who during the quarter (a) had a high percentage of irrelevant notifications, (b) received none at all, or (c) returned none of their response cards. With this list, the information retrieval specialists look at the operating profiles and often are able to adjust them. If not, they go directly to the users, by telephone if possible. The ensuing discussions usually pinpoint the trouble-a profile needs changing, a user did not realize the function of the response cards, etc. On a daily basis, all response cards are scree:ned and these with "Comments" punched are sorted out for immediate handling. Some of thes,e request profile changes, or ask questions about the abstracts they have received. Again, the information retriteval specialist checks out the current profile and goes back to the user to make necessary revisions. The net result of this personal contact is to improve the caliber of the profiles, particularly the problem cases. Each call also has the effect. of assuring the user that he is not merely a number in an impersonal computer system. He knows that he can get help to change his profile as needed, that his responses to the system are being monitOired by a group of specialists, and that if he has complaints or suggestions they will be acted upon. CONCLUSIONS What is ITIRC accomplishing now, and what are the future possibilities? First, it is in full operation, serving many hundreds of users throughout the Corporation. Second, the data base is a broad one, now covering the most critical areas and capabl ..) Either the right- or left-hand side of (5) may be used to evaluate the steady state mean squared value ofJ(nT). EXAMPLE-FIRST ORDER SYSTEM Figure I. Random noise applied to a filter. situation of Fig. 1, where a given noise sequence e(nT) is applied to H(z), resulting in an output noise sequencef(nT). We can conveniently examine this model using the convolution sum. Thus, n f(nT) = L h(mT)e(nT - mT) (1) As an example, consider the first order system of Fig. 2. Let the analog-digital conversion noise el(nT) have variance u~ and the roundoff noise e2(nT) have variance ut The system functilon H(z) of Fig. 2 is given by 1/(1 - Kz- 1 ) and h(mT) = Km. The output y(nT) can be expressed as the sum of a signal term yo(nT), caused by x(nT), and a noise termf(nT), whose mean squared value can be written, from (3), as m=O n where h(mT) is the inverse z transform of H(z). The input noise e(nT) is presumed to be zero for m < 0 and the system is initially at rest. Squaring Eq. (1) yields n J2(nT) = u~ 0 1=0 Now, if e(nT) is a random variable with zero mean and variance u 2 , and recalling our assumption that e(nT) is independent from sample to sample, the st~tistical mean of Eq. (2) reduces to n E[f2(nT)] = u2 L h2(mT) (3) m=O For a system for which the right side of (3) converges, the steady state mean squared value of f(nT) can be obtained by letting n approach infinity. For this case, a formula which is usually more convenient can be obtained in terms of the system function H (z). Noting the definition. H(z) = = lim E(.f(nT» = n-+ao (2) L h(mT)z-m (Km)2 (u~ + u!) 1- K y(nT) ~--------------~ (4) of the z transform, we can form the product H(z) !)z -I and!. by performing a closed contour inte- gration in the z plane within the region of convergence of both H(z) and H~! ). arrive at the identity (7) The implications of Eq. (7) are tricky. The mean squared value of the noise clearly increases as K approaches unity. The maximum gain of the fHter also increases (the gain of the system of Fig. 2 at de: is (1/(1 - K». For this filter with low frequency input the signal power to noise power ratio (S2/ N 2) is proportional to (1 + K) / (1 - K) which approaches infinity as the pole of the filter approaches the unit circle. This is a general result. However, with a finite word length, the input signal must be kept small enough that it does not cause overflow m=O H ( (6) from which the steady state value can be instantly written as h(mT)h(lT) x e(nT - mT)e(nT - IT) + un ~ m=O n L L m = E[.f(nT)] = (u~ K (5) Figure 2. Noise mode for first order system. EFFECTS OF QUANTIZATION NOISE IN DIGITAL 215 F~LTERS -r cos bT in the computation. Thus, the obtainable signalto-noise ratio decreases as K approaches unity. Clearly, each case deserves its own considerations, as the signal-to-noise ratio in the filter depends very much on the actual conditions of the use of the filter. Finally, we comment that the cases K = 0, K = 1, in Eq. (7) are unique because U2 becomes zero since no multiplications are performed. ~--~~y(nT) EFFECT OF DIFFERENT REALIZATIONS OF THE SAME FILTER There are a variety of ways of programming a second order digital filter (or in general a filter with more than two singularities). Suppose a particular system function H(z) is desired. If quantization is ignored, then only the relative speed and memory requirements of the different methods are of interest in deciding which way to use. However, Kaiser's work shows that the truncation of system constants affects different realizations differently, and may in fact lead to instability in some realizations. The noise effects described here also yield different results for different programming configurations. The point is illustrated through the examination of the two systems of Fig. 3. Fig. 3a represents a noisy programmed realization of the difference equation: Figure 3a. Noise model for realization. second order system-direct y(nT) = 2r cos bTy(nT - T) - r2y(nT - 2T) + x(nT) - r cos bTx(nT - T) (8) and Fig. 3b represents the pair of simultaneous difference equations: w(nT) = x(nT) + 2r cos bT w(nT - T)} - r2 w(nT - 2T) (9) y(nT) = w(nT) - r cos bT w(nT - T) Both systems have the transfer function H(z) = 1 1 - rcosbTz1 - 2r cos bT z -I + r2 Z-2 By examination of the poles and zeros of H(z) in Fig. 4, we see that our network behaves as a resonator tuned to the radian center frequency b for the sampling interval T. In Figs. 3a and 3b, X (nT) represents the noiseless input to the filter, el (nT) represents the noise due to A-D conversion of the input, and e2(nT) represents the noise added by rounding. The roundoff noise can be caused either by a single roundoff after all products are summed, or by the sum of the roundoff error due to each of the multi- Figure 3b. Noise model for second order system-canonical realization. plications. It is simpler to program the latter, but more noise is created. Note that, while in the realization of Fig. 3b the noise terms el (nT) and e'2(nT) are injected into the filter at the same place as the input X(nT) and thus see the same transfer function H(z), in Fig. 3a the noise term e2(nT) is injected in a different part of the filter and sees a different transfer function: 1 HI (z) = 1 _ 2r cos bT Z-I + r2z-2 (10) Thus we can expect that the noise due to e2(nT) will be different for the filters of Figs. 3a and 3b. Considering first the realization of Fig. 3a, we can, after some manipulation, obtain the result, u~ = ui UI (r,bT) + u~ u2(r,bT) (11) 216 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 the poles of the filter, so that at low frequendes, the complex conjugate poles interact to form a low pass filter. In the "canonic" realization the noise is also filtered by a zero which is close to de and thus the output noise is of a band-pass nature and less total energy is able to pass through the fillter. Second, we note that Eqs. (13) and (14) have the same functional dependence on pole positions, namely, that the mean squared output noise is inversely proportional to the distance from the pole to the unit circle and therefore directly proportional to the gain of the filter. From these results one can, for example, estimate the word length needed for a simulation requiring many filters. One such system is a vocoder synthesizer shown in Fig. 5. Typically, a vocoder synSPECTRAL COEFFICIENTS Figure 4. I I Pole zero representation of Eqs. (8) or (9). I I where O"I and O"~ are the variances of el (nT) and e2(nT), and with 1 U2 = SYNTHESIZED SPEECH + r2 1 _ r2 x r 4 + 1 _ 2r2 cos 2bT and UI = __1_1 [1 _ 1 2 r2 sin bT( + r2) ] r + 1 - 2r2 cos 2bT VOCODER SYNTHESIZER 4 1 - r2 More insight can be obtained into these results by letting r = 1 - € and allowing € to be quite small, of the order of 0.05 or less. Then (11) reduces to the simple form (12) Carrying through a similar computation for the realization of Fig. 3b yields Figure 5. Vocoder synthesizer. thesizer wi1l contain about 100 resonators. Assuming that the noise from each resonator is additive to the noise from all other resonators and picking an effective average € of 0.01, we arrive at a total noise output of about 7 or 8 bits. It is clear that word lengths of at least 20 bits are needed to avoid audible noise outputs superimposed on the vocoder generated synthetic speech .. (13) which can also be reduced, for small values of 2 O"n = 1 4f [2 0"1 + 2 0"2] f, to (14) Several important facts can be deduced from Eqs. (12) and (14). First, the so-called "straightforward" realization of Fig. 3a leads to increased noise for low resonance frequencies whereas the "canonic" realization of Fig. 3b does not. Physically, this resuIt can be explained by noting that, in the straightforward realization, the noise "passes through" only EXPERIMENTAL VERIFICATION FOR FIRST AND SECOND ORDER FILTERS The results of the preceding computations wc;!re experimentally verified by programming various realizations of first and second order difference equations on the TX-2 digital computer. To p,erform a measurement of output noise for a given digital filter, the computations were performed with rounded arithmetic using a 36-bit word, and simultaneously, using rounded arithmetic with a shorter word and exactly the same input. The outputs of 217 EFFECTS OF QUANTIZATION NOISE IN DIGITAL FILTERS the two filters were subtracted, squared, integrated and divided by the number of iterations of the equation. The inputs to the filters were random noise or sampled sinusoids. The filters were programmed using the PATSI 4 compiler, and the various waveforms of interest, including the mean squared output noise, were displayed during the computation. The measurement was taken when the mean squared output noise seemed to reach a steady value, or in the case of the very high gain filters, when the patience of the observer was exhausted. As we shall see below, the necessary observation time for confidence in such a measurement is highly dependent on the gain of the filter. Figure 6 shows the predicted and measured output noises for some one-pole filters, as Eq. (7), with tTr = O. The horizontal axis is the pole position and the vertical axis is the mean squared output noise normalized to tT~. Table 1 gives the predicted versus measured output noises for several two-pole filters (no re~l zeros) with various pole positions, along with the measurement error. All of the results seem to confirm the theory. It is advisable to determine, on a statistical basis, the measurement time required before the variance of such statistical observations is sufficiently small. Thus, consider a random variable q defined as q 1 = - n L Assumingf(nT) to have zero mean, we can immediately perceive that the mean value o-f the measurement q is given by E[q] = 10 9 8 7 6 tTl (16) 29 BITS'N RANDOM NOISE I PUT o • 28 BITS, RANDOM NOISE INPUT • = 29 BITS SINE WAVE I NPUT X II 5 4 I&J ::l Q Cf) I&J 3 0:: n (15) f2(nT) m=O where f(nT) is an output noise signal as indicated in Fig. 1 due to a set of mutually independent input noise samples e(nT). Figure 6. Predicted vs measured quantization noise for first order system. Table 1. Two-Pole Filter Noise Measurement Mean Squared Output Noise Predicted Measured 204 289 508 1011 2824 5553 5553 11014 11014 3306 3306 203 297 520 1058 2880 5933 5503 11450 11079 3740 3359 Error % Pole Positions 0.49% 2.77 2.36 4.65 l.98 6.40 0.90 3.96 0.59 13.12 l.60 .5 ± .5j .5 ± .707j .5 ± .778j .75 ± .56j .875 ± .332j .90625 ± .235j .90625 ± .235j .921875 ± .169j .921875 ± .169j .75 ± .654j .75 ± .654j 218 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 where aJis the variance of the (stationary) random variablef(nT). Now assuming thatf(nT) is a set of stationary Gaussian variables with correlation coefficient p(rT), then it can be shown that 5 E[f2(mnf2 (IT)] = ul + 2R2(mT - IT) (17) where R2 is defined as the covariance between f(mT) and f(lT). From Eqs. (16) and (17), we arrive at the expression for the variance of q, O"~ = E[q2] - E2 [q] This can be evaluated for first order system of Fig. 2. For that case R (mT - IT) = K21m - ~ and, for large n, Eq. (18) reduces to specify the magnitude and phase of the output. Since the poles of the filter are directly on the unit circle, the noise, according to Eq. (12) Q1r (14) becomes infinite. This is indeed the situation.* The saving feature is the gradual increase of the noise term, so that if one runs the program for a limited time, or periodically resets the initial conditions, catastrophe can be avoided. To study this problem theoretically, consider the simultaneous differ,ence equations y(nT + T) = cosbTy(nT) 1~ + sin bT x(nT) x(nT + T) = - sin bT y(nT) + cos bT x(nT) (21) ~ with initial conditions x(O) "circuit" is shown in Fig. 7. 1, y(O) = O. The (19) where u; is the variance of the input e(nT) as in Fig. 1. Of major interest in determining the time needed to perform the measurement is the ratio of the standard deviation to the mean of q. Using an argument similar to the one that leads to Eq. (7) we can for the first order system relate to U] by the formula u} = u;/(1 - K2), which combined with Eqs. (19) and (16) yields ) - - - -......- -...,.. Y(n T·f- T) cos bT u; E[q] = (1 - K2) Vn 2 sinbT ) - - - -......~-.,. X (n T + T) (20) Thus, for example, if K2 = 0.99, we need 10 8 terms in the measurement of Eq. (15) in order to reduce the standard deviation of the measurement to 2% of the mean of the measurement. Assuming that an iteration could be done in 100 /lsec, 10 4 seconds would be required for such accuracy. NOISE CONSIDERATIONS IN PROGRAMMING ITERATIVE SINE WAVE GENERATORS One must be especially attentive to noise considerations in the programming of iterative sine wave generators. Various efficient routines exist to compute the sine or cosine of a random argument rapidly, but for instances where the argument is nT for successive integers n, the most efficient way to generate sinusoidal functions is by the use of iterative difference equations. These are, of course, digital filters with poles directly on the unit circle, inputs equal to zero, and initial conditions which Figure 7. Iterative sine and cosine generator. The z transform X (z) of one output x(nT) can be written X(z) = Z2 - zcosbT + zE2(z) - cos~bT E 2(z) - sinbTE 1 (z) z2 - 2z cos b T + 1 (22) We see that the first two terms of the numerator correspond to the signal and the remaining terms to the noise, E, (z) and E2 (z) being respectively the. z *Various nonlinearities can be introduced to keep the noise finite. This is adequate for many applications since thle selectivity of the filter can be relied on to keep the output spe(:trally pure even if the phase of the output is unpredictable. EFFECTS OF "QUANTIZATION NOISE IN DIGITAL FILTERS transforms of the added noises el (nT) and e2(nT), both introduced by roundoff error. Defining: h (nT) - Z - 1{ 1 - h (nT) - Z 2 - I{ cos b T 2z cos bT Z Z2 _ Z2 _ (23) -sin bT } 2z cos b T + 1 where Z -I is the inverse z transform, we can from Eq. (3) write the total noise as n £(f2(nT)) = ut L htcnT) m=O + u~ (24) n L h~(nT) m=O Solving Eq. (23) explicitly and letting £2 _0 we arrive at the result 12 + ut u~ 1; £2 sin 2(nbT - bT) } = n (25) Notice that is was impossible to use Eq. (5), since the result obtained would be infinite and thus no time-dependent result could be formulated. Equation (25) tells us that the noise increases linearly with the number of iterations of the difference equations. For example, after 10 6 iterations, the noise is about 10 bits. Assuming that one iteration is performed in 100 !J.sec, several minutes could certainly pass, even in an 18-bit machine, before the generated sine and cosine waves begin to look noisy. Another program for generating a cosine wave is expressed by the iteration y(nT + 2T) = 2 cos bT y(nT + T) - y(nT) with initial conditions yeO) = 1, y (T) = cos bT. Noise analysis of Eq. (26) leads to a functional dependence of the mean squared noise, of the form _._n__ ; thus appreciably greater quantities of noise 2 } + 1 219 (26) sm bT are generated at low frequencies, and fewer iterations are available before the program becomes unusable. The comparison of Eqs. (21) and (26) was performed qualitatively on TX-2 by programming identical sine wave generators using both methods. For all frequencies, the method of Eq. (21) produced sinusoids of more nearly constant amplitude than the method of Eq. (26), but this difference in behavior was negligible for frequencies greater than one fourth of the sampling frequency, and, using 36-bit arithmetic, the distortions were almost unobservable for these frequencies. For low frequencies (of the order of one thousandth of the sampling rate) the method of Eq. (26) was completely unusable, with the generated sine wave being terribly distorted in the first period. REFERENCES 1. J. F. Kaiser, "Some Practical Considerations in the Realization of Linear Digital Filter," 3rd Allerton Conference (Oct. 20-22, 1965). 2. J. B. Knowles and R. Edwards, "Effect of a Finite-Word-Length Computer in a Sampled-Data Feedback System," Proc. IEEE, vol. 112, no. 6, (June 1965). 3. W. R. Bennett, "Spectra of Quantized Signals," Bell System Technical Journal, vol. 27, pp. 446-472 (July 1948)~ 4. C. M. Rader, "Speech Compression Simulation Compiler," J. Acous{. Soc. Am. (A), June 1965. 5. J. L. Lawson andG. E. Uhlenbeck, Threshold Signals, MIT Rad. Lab. Series 24,McGraw-Hill, New York, 1950. A REAL-TIME COMPUTING SYSTEM FOR LASA H. W. Briscoe and P. L. Fleck Lincoln Laboratory, * Massachusetts Institute of Technology Lexington, Massachusetts ing data from the entire array. The data is recorded on standard Y2-inch 7-channel digital tape in a format that is compatible with most commercially available processing equipment. The data rate is such that a full 2500-foot reel of tape is written every 6 minutes. In order to reduce the array output to a manageable level, it is imperative that some online processing be done. Since significant seismic events appear at the array as discreet bursts of energy lasting from one minute to several hours spread throughout the day, this on-line data reduction for LASA consists of selecting those sections of recordings which contain data from interesting seismic locations. Thus, the on-line processing, part of which takes place in the same general-purpose processor that is used for formatting and recording the digital tapes, consists of 1) predetection processing to improve the signal-to-noise ratio for detection, 2) detection of teleseismic events, 3) source location of detected events, and 4) testing various remote components in the system. Events occurring within preselected regions are then further processed off-line either on-site or at remote processing centers. ln this paper, we will be primarily concerned with the first two steps in the on-line processing; predetection processing and detection. PHYSICAL DESCRIPTION OF LASA The Large Aperture Seismic A.rray (LASA) consists of 525 vertical motion seismometers installed in an area of approximately 10,000 square miles in eastern Montana. Each seismometer is located at the bottom of a 200-foot borehole to reduce noise generated by wind, traffic, and livestock. The seismometers are grouped in clusters (subarrays) of 25 seismometers each, and the 21 subarrays are arranged in a series' of successively inscribed squares (see Fig. 1) to produce a logarithmic density taper. The data from each subarray of 25 seismometers are collected in a buried vault at the center of the cluster where they are low-pass filtered to avoid aliasing and are digitized at 20 samples per second. The frequency passband of the seismometers, wellhead amplifiers, and low-pass filters is approximately 0.5 to 5 cycles per second. Figure 2 shows the inside of one of the buried vaults including the rack of equipment for filtering, mUltiplexing, and digitizing the signals and a second rack containing digital phone-line modulating equipment used to transmit the digital data over open wire and microwave links to the LASA Data Center (LDC) in Billings, Montana. The Data Center, shown in Fig. 3, contains general purpose and special purpose digital processing equipment which is used for recording and process- PREDETECTION PROCESSING TECHNIQUES Predetection processing uses the LASA as a wideband phased array antenna to improve the signal- *Operated with the support of the U.S. Advanced Research Projects Agency. 221 222 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 ",. ./ /' -- ---....., ......... " /@ / / ,I \ \ @ \ \ ''{§) , ....... ""'" '-----.,.,. ./ ",. 1 4 - - - - - - - 200 km - - - - - - . . . Figure I. to-noise ratio for detection of small teleseismic events_ In a' conventional phased array, this is accomplished by appropriately delaying (phasing) and adding the signals from each element in the array. The phasing delay is adjusted so that the signals add coherently and the noises add incoherently. Delaying the data from the elements of the array is equivalent to pointing a conventional antenna in a certain geometric ditection in space. Since seismic noise tends to come from discrete sources with discrete velocities, the processing can be further improved; strong noise sources can be suppressed by selecting gains or amplitude weights (the antenna "taper"), which place nulls of the antenna sidelobe pattern in the proper direction. Thus the noise does not add with random phase but with a controlled anti-phase. If the noise is allowed to add with random phase, the antenna gain in signalto-noise ratio should be approximately the sq~are root of the number of elements, but this gain may be much greater if the strong sources of organized noise can be specifically rejected. Since the LASA is designed to receive: wideband signal energy (the passband includes more than an octave) and since many seismic noise sources emit energy over much narrower bands in frequency, additional signal-to-noise gain can be obtained by optimum frequency filtering. In fact, one of the most powerful techniques for combining data from the elements of a seismic array involves employing a different set of amplitude weights (a different taper) at each of several frequencies in order to optimize the use of sidelobe nulls at each frequency. Varying the amplitude gain on a single eleme:nt as A REAL-TIME COMPUTING SYSTEM FOR LASA 223 each element and· adding the resulting data from all the elements. Most other linear processing techniques are degenerate forms of this "filter, delay and sum" processing. For the detection of seismic signals it is often advantageous to further filter the data through a narrow bandpass filter. On-line processing for the LASA involves the use of both convolution and recursive digital filtering and will be described in more detail in a later section of this paper. ON-LINE PROCESSING FOR THE LASA We now turn our attention to the specific implementation of the processing concepts described above. The functions to be performed by the online processing facility are: 1. Read data into memory. 2. Write data onto magnetic tape. 3. Form 10 beams. 4. Make eight event detectors. 5. Locate source of events. 6. Test components in the system. 7. Output data for monitoring. Figure 2. a function of frequency is the same as filtering the data from that element. It has' been shown that the optimum design for combining data from the elements of an array of seismometers consists of applying a different filter and time delay to data from First, all the data is read into core memory of the general-purpose computer. That is, every sampling interval (50 msec), each seismometer waveform is digitized, multiplexed, and transmitted to the core memory. Second, all this data is written onto magnetic tape. Each record on tape contains two samples from each sensor (100 msec of data). Third, approximately 10 processed outputs are Figure 3. 224 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE. 1966 its status so that maintenance teams can bt~ dispatched to repair faults as they occur. Seventh, the computer provides seve:ral on-line analog outputs for monitoring the system performance. Figure 4 shows the equipment configuration used to accomplish these tasks on-line. The two generalpurpose computers are identical machines. Each machine has a 16,384 eighteen-bit word memory with a 1.75 microsecond cycle time. The! tape units shared by the two machines are standard seventrack IBM compatible drives operating at 75 inches per second with character density of 800 characters per inch. The special-purpose processor (usually referred to as the "Multi-Channel Filter" or l\.1CF) is designed to perform filter-and-sum proc,essing with 25 input channels and up to five processed output channels. The data displays indicated in the diagram provide the on-line monitoring of the system. Now we shall discuss in more detail how these points are accomplished. The real-tim'e program- formed. Five of these are formed using the delayand-sum method to steer the entire array to monitor five predetermined locations. The other five are formed using the more powerful filter-and-sum method on up to 25 channels to produce five overlapping beams to monitor the entire region of the world from approximately 20° distance to 100° distance. All these beams have a pr"detection signalto-noise ratio improvement wb .,_ ~ allows detection of weaker events in the areaS being monitored. Fourth, several independent event detectors are connected to selected channels from widely separ~ted sensors or beam outputs. The event detectors uutput the GMT time of any event occurring in their input waveforms. Fifth, the outputs from event detectors connected to widely separated sensors are put into a source location program which determines where the event originated. On the basis of the location of detected events, a decision to save Qr reuse the tapes is made. Sixth, the general-purpose computer periodically tests each component in the system and types out EXECUTIVE PROGRAM PDP -7 No. 1 F*'ULT MON(TORING PROGRAM ON-LINE EVENT EVENT BEAM OUTPUT DETECTION RECORDING SELECTIOIN FORMING PROGRAM PROGRAM PROGRAM PROGRAM PROGRAM I L ~O 1+-' MAGNETIC TAPE UNITS SHARED BY 2 PDP-7 COMPUTERS DATA DISPLAY UNITS PHONE LINE INTERFACE (> EQUIPMENT 1 - - - - + - - -.. SPECIAL PURPOSE PREDETECTION PROCESSOR PDP-7 No.2 o () INTER-COMPUTER COMMUNICATIONS (I) BACKUP FOR PRIMARY ON-LINE FUNCTIONS (2) OFF -LINE UTILITY OPERATIONS (3) FUTURE ON-LINE SLOWED DOWN TIME PROCESSING Figure 4. 1-+--_. 225 A REAL-TIME COMPUTING SYSTEM FOR LASA ming system is timed by an interrupt pulse which occurs every 50 msec whenever a new set of data samples is ready to be read into the memory. At this time the program starts a block transfer which automatically reads the data into 651 consecutive locations. When the next data ready interrupt comes, the computer reads the data into the next 651 consecutive .locations and starts another block transfer which writes out onto magnetic tape the data stored from the start of the first block to the end of the second block. The data rates of the input and output are just right so both these data transfers interleave without running into each other. While the data are being transferred into core and onto tape, the main program is processing the data. All the processing is subject to the following constraints: It must operate on each data sample as if comes in; the total time for all the processing must be less than 50 msec; and everything must fit into the remaining memory not used for input/output buffering. The first waveform processing we do is to form five delay-and-sum beams. This is shown in Fig. 5 where the h(t)'s represent simple delay lines. A teleseism from an interesting area of the world can take up to 15 seconds to propagate across the array so the simple minded method of putting 15-second delay lines (300 locations) for each data channel would take all the remaining core memory. Instead, the delay for each particular channel is used as an index to tell into which sum box each data sample is to be added. This way only 300 locations are used for each beam, and each data sample is only used once. This program takes 5 msec (about 3000 cycles) and occupies about 2400 locations in core. The other five processed outputs are formed by filter-and-summing in the MCF special purpose Figure 5. computer. Figure 5 also shows this processing, but here the h(t)'s represent linear filters. Each output is . formed by passing each of the 25 input channels through a different filter and summing the filtered waveforms. The 25 input channels for the MCF can come directly from a single subarray of seismometers via the phone-line interface, or from the general-purpose computer which can form clusters of widely separated seismometers. The MCF interruptS the program in the central computer each time an output sample is ready. The interrupt answering program accepts the sample, stores it in core memory, and clears the interrupt. The actual operations of this special-purpose computer are: 25 In where In = 78 LL hi.j!n-i,j j= I i=O the output at time n, = the ith most recent data input from the jth channel, and hij = the impulse response for the jth channel. Each filter is a 78-point convolutional filter. That is, the last 78 data samples from each input are stored in memory and every sampling interval (50 msec) there are 78 multiplications between these data and 78 presto red "filter constants" with the accumulated sum of the product pairs being the output sample of one filter. Then the 78 inputs are pushed down with the new data sample being stored at the head of the list and the 78th one dropped. All this is repeated 25 x 5 or 125 times, making a total of 9750 multiplications and 9875 additions. A trick is used to get all these operations done in 50 msec. The memory cycles that get the filter points are standard read-restore cycles, but the cycles that get the data points are read-save-restore-previous-data sample, so that the "push down list" can be done in essentially no extra time. Phasing delays can be introduced by using filter response functions less than 78 points long and adding appropriate number of zeros at the beginning and end of each response function. The next processing step consists of event detection on selected channels. Figure 6 shows a block diagram of one event detector. First, the input waveform is passed through a bandpass filter and the output energy is measured. If this energy should suddenly increase over what it had been, the detector decides there has just been an event and the current GMT time is typed out, along with the channel number that triggered the detector. !n-i,j = 226 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 E:VENT IF INPUT A 3-POLE BAND PASS FI LTER 0.95-1.45 B DIVIDER RECTIFIER 1---.....- - - - - - - - - - -..... (FORMS) C C+E LOW PASS FILTER T =30sec GO-sec DELAY LINE E %~ THRESHOLD t--------.. . . NO EVENT IF £.E < Tl-tRESH10LD AUTOMATIC EVENT DETECTOR Figure 6. Each pole in the bandpass filter is of the recursive type as opposed to the convolutional type described earlier. This is shown in Fig. 7. To synthesize a transfer function with two: complex conjugate poles and a zero at the origin of the S plane (a RLC filter), we use a recursion formula where the present value of the filter output is a linear combination of the two previous filter outputs and: the first difference of the input waveform. The difference equation is shown in the figure. This has the advantage of requiring only 15 registers in memQry for the constants per pole, independent of the ringing time of the filter. If we look again at Fig.! 6, we see that the event detector uses three rec~rsive filters in cascade in order to provide v~ry rapid attenuation of low frequency microseismic noise energy. The three poles are synchronously tuned ,to res 0nate at the same frequency so that the shape of the filter makes an approximate match to the spectrum of the energy of a teleseism. This is done in order to maximize the signal-to-noise ratio at point B. The passband of the filter is 0.95 cps to 1.45 cps because our investigations! of many weak teleseisms showed this to be the frequency where the energy lies for short-period vertical seismometers. This passband is very effective in eliminating local events which have energy at frequencies much higher than this. This filter output is then rectified so that the signal at point C is an appro~imation to the power of the signal at point B. The waveform is rectified instead of being squared for two reasons. First, it takes less time to compute, and second the dynamic range that the following blocks require is considerably reduced. 4 Now, following the lower path, the signal is passed through a low-pass filter whose: time constant is 30 seconds. This is long enough to smooth the fluctuations caused by the seismic signal, yet short enough so that it will accurately follow any long-term variation in the noise power and system calibration. Thus, at point D we hav4! a slowlyvarying signal which is proportional to the background noise level in the input seismic signal. This signal is then passed through a 60-second delay line such that its output at E is simply the signal at D delayed in time by one minute. Now, the signal at C, which is proportional to the energy in the frequency band 0.95 to 1.45 l~pS is divided by the average background noise energy in the same frequency band one minute earlier. We say there is an event if this ratio exce<;:ds a given threshold; otherwise there is no event. The reason for the 60-second delay line becomes dear if you consider what would happen if it weren't there and a slowly emerging event should come in. Both the signals at C and E would rise together and their ratio would stay constant. Clearly, putting a delay line in circumvents this problem. If the threshold is set too low, the event detector will have a high false alarm rate-that is, it will be constantly triggering on every little nois1e pulse that comes along. On the other hand, if the threshold is set too high, only very strong events willl trigger the event detector. We have varied the threshold and empirically decided to make it 5.82. With this value and pure gaussian noise as an input, seven false alarms are registered per day on the average" Actually, however, the seismic signals we use are not gaussian noise, but have many small local man- 227 A REAL-TIME COMPUTING SYSTEM FOR LASA jw a x o x(t) 1 1 y(t) S-PLANE b - ..........~-ffi-----. (j x ....-~-1 -ot e -2at -e -ot 2e Z-PLANE cos bt UNIT CI RCLE ONE-POLE FILTER Figure 7. made events in them; so in practice, the false alarm rate with a threshold of 5.82 is about four per hour. Using eight independent event detectors, the program takes 10 msec and occupies 1300 registers in core. The main disadvantage of this event detector is that it cannot discriminate between a strong local event or a noise burst in the data line or a teleseism. Anything that has sufficient energy around 1% cps will trigger this event detector. We have found that for our data about one event in 10 is a genuine teleseism, the other nine being local events of one sort or another., We get around this by having more than one event detector connected to seismometers separated by several kilometers. Then, whenever several event detectors trigger within several seconds of each other, we say a teleseism has been received. The small local events are too weak to register on several event detectors, or else take a longer time due to their lower horizontal velocity. This screening effectively reduces the false alarm rate from 90% to about one per day. When a teleseism has been detected, the program examines the relative arrival times at the various sensors and, since these determine the origin of the teleseism, the program looks to see if this location is in an area that it has been told is interesting. If it is, the program tells the operators to save the rele- 228 PROCJ:<:EDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 vant data which has been recorded on magnetic tape. Thus, the tape recorders have been acting as mass buffer storage for the d~ta. In order to save the data that has teleseisms that are too weak to be detected by the automatic event detector, one points a beam at the selected area and puts an event detector on hs output, and if this single event detector triggers, the data is saved. In conclusion, we have described a system with a real-time program directing the overall op{~ration­ from routine testing to selecting the data fOir further off':'line processing. These operations are done on the basis of real-time waveform processing. Without automating these tasks, the Large Aperture Seismic Array would be quite impractical to operate because of its large size, both in data which accumulates and remote transducers which periodically fail. HIGH-SPEED CONVOLUTION AND CORRELATION* Thomas G. Stockham, Jr. Massachusetts Institute of Technology, Project MAC Cambridge , Massachusetts INTRODUCTION periodic complex transform pair. are of period N since Cooley and Tukeyl have disclosed a procedure for synthesizing and analyzing Fourier series for discrete periodic complex functions. t For functions of period N, where N is a power of 2, computation times are proportional to N log2 N as expressed in Eq. (0). (0) Both functions F(k) = F(k + 'cN) (2a) f(j) = f(j + (2b) and cN) TRANSFORM PRODUCTS where k ct is the constant of proportionality. For one realization for the IBM 7094, k ct has been measured at 60 JLsec. Normally the times required are proportional to N 2 • For N = 1000 speed-up factors in the order of 50 have been realized! Eq . .( 1b) synthesizes the Fourier series in question. The complex Fourier coefficients are given by the analysis equation, Eq. (la). Consider two functions g and h and their transforms G and H. Let G and H be multiplied to form the function C according to Eq. (3), C(k) = G(k) x H(k) and consider the inverse transform c(j). given by Eq. (4) (3) c(j) is N-l N-l F(k), = L: f(j)W- ik c(j) = (la) j=O ..!.. L: N g(J)h(j - J) J=O N-l N-l f(j) = ..!.. L: N k=O F(k) Wik = (lb) ..!.. L: N h(J)g(j - J) (4) J=O as a sum of lagged products where the lags are performed circularly. Those values that are shifted from one end of the summation interval are circulated into the other. The time required to compute c(j) from either form of Eq. (4) is proportional to N 2• If one computes the transforms of g and h, performs the multiplication of Eq. (3), and then computes the inverse where w = e 27fI / N , the principal Nth root of unity. The functions f and F are said to form a discrete ·Work reported herein was supported (in part) by Project MAC, an M.I.T. research program sponsored by the Advanced Research Projects Agency, Department of Defense, under Office of Naval Research Contract Number Nonr-4102(Ol). tTo be able to use this procedure the period must be a highly composite number. 229 230 PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 transform of C, one requires a time given by Eq. (5) l~irc = 3 kCI Nlog 2 N + kmN N(lOg2 N + Il) = k circ (5) where k circ = 3k cl , Il = k m/ kf(:irc, and kmN is the time required to compute Eq. (3). Of course this assumes N is a power of 2. Similar savings would be possible provided N is a highly composite number. APERIODIC CONVOLUTION The circular lagged product discussed above can be alternately regarded as a convolution of periodic functions of equal period. Through suitable modification a periodic convolution can be used to compute an aperiodic convolution when each aperiodic function has zero value everywhere outside some single finite aperture. Let the functions be calledd(j) and s(j). Let the larger finite aperture contain M discrete points and let the smaller contain N discrete points. The result of convolving these functions can be obtained from the result of circularly convolving suitable augmented functions. Let these augmented functions be periodic of period L, where L is the smallest power of 2 greater than or equal to M + N. Let them be called da(j) and sa(j) respectively, and be formed as indicated by Eq. (6). fa(j) = f(j + io) 0 ~ j ~ M - 1 = 0 M~j~L-I = fa(j + nL) otherwise (6) L(log2 L + Il) K = (7) where M + N ~ L < 2(M + N). For this case, while L must be adjusted to a power of 2 so that the high-speed Fourier transform can be applied, no restrictions are placed upon the values of either M orN. SECTIONING Let us assume that M is the aperture of d(j) and N is that of s(j). In situations where M is con- least integer ~ M/ P (8) Let the ith section of d(j) be called d;(j). Each section is convolved aperiodically with s(j) according to the discussion of the previous section, through the periodic convolution of the augmented sections, da;(j) and sa(j). Each result section, r;(j), has length L ,= P + N and must be additively overlapped with its neighbors to form the composite result r(j) which will be of length + KP N ~ M + (9a) N If ri(j) is regarded as an aperiodic function with zero value for arguments outside the range 0 ~ j ~ L - 1, these overlapped additions may be expressed as K-l r(j) = L r;(j - iP) j = 0,1, ... KP + N - 1 i=O (9b) Each overlap margin has width N and there are K - 1 of them. The time required for this aperiodic sectioned convolution is given in Eq. (10). T sect = kcl(P wherejo symbolizes the first point in the aperture of the function in question. The intervals of zero values permit the two functions to be totally nonoverlapped for at least one lagged product even though the lag is a circular one. Thus, while the result is itself a periodic function, each period is an exact replica of the desired aperiodic result'. The time required to compute this result is given in Eq. (7). Taper = k circ siderably larger than N, the procedure may be further streamlined by sectioning d(j) into pieces each of which contains P discrete points where P + N = L, a power of 2. We require K sections where + N)log2(P + N) + 2Kk cl (P + N)log2(P + + Kkaux(P + N) = k ct (2K ~ + 1) (P + N) N)log2(P + N) + Kkaux(P + N) k cl (2K + 1) (P + N) [log2(P + N) + ~~I] (10) where Il' = kaux/2kcl. Kkaux(P + N) is the: time reThese quired to complete auxiliary processes. processes involve the multiplication~ of Eq. (3), the formation of the augmented sections daj(j), and the formation of r(j) from the result sections r;(j). 1For the author's realization in which core memory was used for the secondary storage of input and output data, Il' was measured to be 1.5, whkh gives k aux = 3k c1 ~ 300 Ilsec. If slower forms of auxiliary storage were employed, this figure would be enlarged slightly. For a specific pair of values M and N, P should be chosen to minimize T sect. Since P + N must be a 231 HIGH-SPEED CONVOLUTION AND CORRELATION power of 2, it is a simple matter to evaluate Eq. (10) for a few values of P that are compatible with this constraint and select the optimum choice. The size of available memory will place an additional constraint on how large P + N may be allowed to become. Memory allocation considerations degrade the benefits of these methods when N becomes too large. In extreme cases one is forced to split the kernel, s(j), into packets, each of which is considered separately. The results corresponding to all packets are then added together after each has been shifted by a suitable number of packet widths. For the author's realization N must be limited to occupy about VB of the memory not used for the program or for the secondary storage-of input/output data. For larger N, packets would be required. instead of implicitly through K. That form is given in Eq. (12) Tfast ~ k ct M«P least integer ~ M / 2P N In L M K L ~ PIN 32 The accuracy of the computational procedure described above is expected to be as good or better 48 64 96 128 192 256 192 208 384 416 768 832 1536 1664 3584 1 2 2 1 2 1 2 1 1 64 128 128 256 256 512 512 1024 2048 Time in seconds Tstandard T fast 0.2 0.31 0.3 0.4 0.8 1.25 3.0 5.0 12 48 20 0.6 0.8 1.3 1.8 3.0 3.8 8'.0 Time in milliseconds per unit lag Tstandard/ M Tfast/M 1.0 1.4 1.5 1.9 2.0 1.5 (14) ACCURACY (11) 24 + #t'l (12) This choice can favor the standard method. Table 1 compares for various N the actual computation times required in seconds as well as times in milliseconds per unit lag. Values of M, K, and L are also given. Relative speed factors are shown in Table 2. Comparative Convolution Times for Various N 16 N) The process for combined-sectioned-aperiodic convolution of real functions described above was implemented in the MAD language on the IBM 7094 Computer. Comparisons were made with a MAD language realization of a standard sum of lagged products for N = 16, 24, 32, 48, 64, 96, 128, 192, and 256. In each case M was selected to cause Eq. (11) to be fulfilled with the equal sign-. This step favors the fast method by avoiding edge effects. However, P was not selected according to the optimization method described above (under "Sectioning Convolution"), but rather by selecting L as large as possible under the constraint. For very large numbers of sections, K, Eq. (10) can be simplified to a form involving M explicitly Table 1. + EMPIRICAL TIMES If both functions to be convolved are real instead of complex, further time savings over Eq. (10) can be made by combining adjacent even and odd subscripted sections da;(j) into -complex composites. Let even subscripted da;(j) be used as real parts and odd subscripted da;+ I (j) be used as imaginary parts. Such a complex composite can then be transformed through the applicatitm of Eqs. (la), (3), and (lb) to produce a complex composite result section. The desired even and odd subscripted result sections r;(j) and rl+ I (j) are respectively the real and imaginary parts of that complex result section. This device reduces the time required to perform the convolution. by approximately a factor of 2. More precisely it modifies K by changing Eq. (8) to = N)/P) [log2 (P Since it makes no sense to choose P < N, for simple estimates of an approximate computation time we can write COMBINATION OF SECTIONS IN PAIRS K + 3.0 3.9 6.0 1.9 1.6 2.1 7.8 12.0 13.3 1.9 2.2 2.2 232 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 Table 2. N Speed factor Speed Factors for Various N 16 24 32 48 64 96 128 i .a.4 .i3 1.5 2.3 2.8 4.0 192 256 512 1024 2048 4096 5.2 6 13* 24* 44* 80* * Estimated values. than that obtainable by summing products. Specific investigations of the accuracy of the program used to accumulate the data of Tables 1 and 2 are in process at the time of this writing. The above expectations are fostered by accuracy measurements made for floating-point data on the Cooley-Tukey procedure and a standard Fourier procedure. Since the standard Fourier procedure computes summed products, its accuracy characteristics are similar to those of a standard convolution which also computes summed products. Cases involving functions of period 64 and 256 were measured and it was discovered that two Cooley-Tukey transforms in cascade produced respectively as much, and half as much, error as a single standard Fourier transform. This data implies that the procedures disclosed here may yield more accurate results than standard methods with increasing relative accuracy for larger N. APPLICATIONS Today the major applications for the computation of lagged products are digital signal processing and spectral analysis. Digital signal processing, or digital filtering as it is sometimes called, is often accomplished through the use of suitable difference equation techniques. For difference equations characterized by only a few parameters., computations may be performed in times short compared to those required for a standard lagged product or the method described here. However, in some cases, ·the desired filter characteristics are too complex to permit realization by a sufficiently simple difference equation. The most notable cases are those requiring high frequency selectivity coupled with short-duration impulse response and those in which the impulse response is found through physical measurements. In these situations it is desirable to employ the techniques described here either alone or cascaded with difference equation filters. The standard methods for performing spectral analysis 2 involves the computation of l~gged products of the form N-j-l F(j) = L }=o x(.()y(J + j) (15) which, in turn, after weighting by so-callc!d spe:ctral windows are Fourier transformed into power spectrum estimates. Speed advantages can be gained when Eq. (15) is evaluated in a manner similar to that outlined above (under "Aperiodic Convolution") except that in this case L is only required to exceed N + 0 where 0 is the number of lags to be considered. This relaxed requirement on L is possible because it is not necessary to avoid the effect of performing the lags circularly for all L lags but rather for only 0 of them. An additional constraint is that 0 be larger than a multiple of log2 L. The usual practice is to evaluate Eq. (15) for a number of lags equal to a substantial fraction of N. Since! the typical situation involves values of N in the hundreds and thousands, the associated savings may be appreciable for this application. Digital spatial filtering is becoming an increasingly important subject. 3•4 The principles discussed here are easily extended to the computation of lagged products across two or more dimensions. Time savings depend on the total number of data points contained within the entire data space in question, and they depend on this number in a manner similar to that characterizing the onedimension case. ACKNOWLEDGMENTS The author is indebted to Charles M. Radc;:r of the MIT Lincoln Laboratory for his ideas concerning the Cooley-Tukey algorithm and to Alan V. Oppenheim of the Electrical Engineering Department, MIT, for suggesting that high-speed convolutions might be realized through the utHization of that algorithm. During the preparation of this work the author became aware of the related independent efforts of Howard D. Helms, Bell Telephone Laboratories, and Gordon Sande, Jr., Princeton University. REFERENCES 1. J. W. Cooley and J. W. Tukey , "An Algorithm for the Machine Calculation of Complc;:x Fourier Series," Mathematics of Computation, vol. 19, no. 90, pp. 297-301, (Apr. 1965). HIGH-SPEED CONVOLUTION AND CORRELATION 2. R. B. Blackman and J. W. Tukey, The Measurement of Power Spectra, Dover Publications, New York, 1959; also Bell System Technical Journal, Jan. and Mar. 1958. 3. T. S. Huang and o. J. Tretiak, "Research in Picture Processing," Optical and Electro-Optical 233 Information Processing, J. Tippett et ai, eds., MIT Press, Cambridge, Mass., 19.65, Chap. 3. 4. T. S. Huang, "PCM Picture Transmission," IEEE Spectrum, vol. 2, no. 12, pp. 57-63 (Dec. 1965). A COMPUTER PROGRAM TO TRANSLATE MACHINE LANGUAGE INTO FORTRAN William A. Sassaman TR W Systems, Inc. Redondo B'each, California vately developed execution supervisor. The symbolic media was chosen over the binary machine language since the symbolic cards make it easier to distinguish between the various types of data, allow macro identification and contain otherwise useful information. Since continuity of usage is expected between the original and translated versions of the program, it appears highly desirable to maintain much of the symbolic notation. In my original thinking of the translational process, I was impressed with the concept that actual translation was, in general, a clerical process rather than an inventive one. That is, the programmer following the assembly listing figures out from it (and any documentation) what the original programmer was doing and codes this in the appropriate language for the new machine. Although often it is necessary to have a knowledge of the problem being solved, much of the time the translating programmer operates as a clerical symbol manipulator. It is true that the rules for the symbol manipulation are complex, but the task is basically clerical and therefore subject to automation. In the translator I have tried to assign these simple clerical tasks to the machine and allow the human more time to perform in the areas where he can contribute the most. From a technical viewpoint, it is probably impossible to write a program which will translate all of one computer program into a similarly efficient program for a second computer. However, as with This paper describes a computer program which translates machine language into FORTRAN. The program was developed at TRW, Inc., to aid in the conversion process from our existing equipment to a third generation computer. The translator was written to be a real help to people personally involved in conversion, and is intended to be an operational program rather than a pure research project. As the title of this paper indicates, the output language is FO R TRAN . Since the translator design is not very dependent upon output language, this appears to be arbitrary. FORTRAN was chosen since it is a standard. It is well defined and runs on both our second and third generation computers. It has deficiencies but they are known. It was desired to' go to a problem-oriented language to increase future human productivity and therefore machine language output was not encouraged. In addition, compiler writers expand considerable effort to obtain efficient machine language codes and duplicating this effort appears a waste. Anyone who really wants machine language can get it as a byproduct of the FORTRAN compilation and handmassage it to any degree of perfection he desires. If the problem is so complex that no FORTRAN translation is possible, then a completely human effort appears in order. The input is symbolic assembly language for the IBM 7000 series computer operating under a pri235 236 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 many mathematical processes, it is feasible to approach the solution as a limit, such that a maximum automated transfer of source programs may be effected with minimal cost and human intervention. The task of writing a translation program has as its major obstacles the definition of the rules for translation. It would seem unlikely that anyone could a priori define all the rules. Therefore a learning approach has been defined to allow the development of the model as experience is gained in translation. I did not try to design for a 100% translation. Input/output, functions, subroutines, standardized routines, etc., need not be translated. Further the conversion effort is not by nature one that may be completely automated. During the process of converting a program, decisions are made as to the plan of attack during conversion, i.e., the human programmer, who has cognizance of the physical problem being solved and the capabilities and shortcomings of the program, decides which areas are to be rewritten, which areas are to be deleted, which areas will be replaced by system subroutines or standardized routines, and finally the remainder is to be translated (or transliterated if you wish). It is rather apparent that these decisions are probably not the sort to be made by the computer. Further, the rewriting or regrouping of computations must also be performed by humans. The remaining area, translation, is a potential area for automation. Of course, I try to do a good job' in that which is translated; however, the law of diminishing returns dictates that the translational rules limit one to about 90% of the code. Further, I concluded that the source machine language program contains a great deal of information and the translator, retrieving and organizing this information could perform a very valuable service . in documentation as well as· aiding the conversion effort. The translator during translation attempts to operate as the human does. The. programmer in translation recognizes in coding not only the individual instructions but also, and more specifically, problem-oriented functions, which may be one or more machine language instructions. It is the purpose of the translator then to recognize these functions with their terminals as well as to gather and organize the program information pertaining to the translational rules. The functions are gathered into statements as appropriate before output. Many of these functions are easily recognizable in the machine language code. A simple example of machine language instructions which are easily recognizable as functions are arithmetk codes. These may easily be built up into larger statements. One of these arithmetic statements consists of a string of functions appropriately connectl!d. The translator inserts a right parenthesis prior to each multiplication or division, and a left parenthesis following each square root or other function. A similar left or right parenthesis must be entered at the start of the statement. The statement is normally terminated by a store instruction. The address of this store instruction is obviously the left side of the FORTRAN statement and followed by an equal sign. The method of translating addresses illustrates the buildup of rules for translation. Consider the coding: l.) 2.) 3.) 4.) 5.) 6.) 0 CLA AXT FAD FOP STQ TIX A 10,4 A + 1 B,4 C + 10,4 0,4,1 The first A is obviously translated as A. Since A A (1), A + 1 must be translated as A (2). Instructions three through six are translated as a DO 1000p using the dummy variable NO X 4. Since it is subject to index register modification and has no additive address, the B is assumed to be a vector running backwards in storage and is translated as a [.orward running FORTRAN array B (NO X 4). The C is assumed to be forward running and is translated as C (NO X 4 + 10 - 10), where the tc!ns cancel out leaving C (10). Obviously the 0 is translated as a FORTRAN numeric statement number. Functions may be more complex and require more complex rules for translation. A good example of these are the programmer tricks of using instructions for something the manufacturer never intended; for the IBM 7000 series, a PXO 0, 0 will clear the accumulator; a LRS of zero will impose the sign of the accumulator into the ~Q, etc. Such translation is analogous to the handling OIf idiOims and slang in human language outside of a word for word grammatical translation. The last bit of philosophy in the design of the translator is the target. The programs to be converted are engineering applications involving algebraic algorithms. These algorithms are easily defined and form the basis of the translator rule set. As a result of these thoughts, the translator was designed to intimately interface with and operate under the supervision of the human us(~r. The human describes the rules for the particular pro- A COMPUTER PROGRAM TO TRANSLATE MACHINE LANGUAGE INTO FORTRAN gram involved via control cards, defines areas to be translated and criteria for recognition of areas of coding to be translated as FORTRAN subroutines. Operating with these rules and the basic set, the computer then performs any initial translation. This initial attempt normally tells the user what tasks cannot be handled in FO R TRAN, indicates the need for additional rules such that the translator will give a better translation. The deck is then resubmitted to the computer. The human examines the computer output and either edits it to achieve the desired code or redefines the rules or control cards and translates over again. This learning process and human interface dictates the need for a system to afford maximum convenience and ease of communication to the user. Although this would appear to be an ideal on-line application, the schedule, hardware and manpower available dictated the utilization of a typical centralized large-scale computer. OPERATION The translator's functions are to retrieve information from the source deck, organize this information, merge it with other data, apply the rules for translation and provide interfaces with the human during the process. This is not done on-line, although the nature of the problem indicates an online solution might enhance the process. In order to accomplish these functions, the translator is designed in six separate (and recoverable) phases. The main task of each of these phases is: Phase I Phase II Phase III Phase IV Phase V Phase VI Separate the program into logical groups. Handle parameters data types, dimensions, COMMON, initial values. Core map of symbol allocation and overlay. Translation of macros. Translation into FORTRAN, routine by routine. Editing and merging. Although these are the main functions, the phases have additional tasks because of convenience of execution. In order to explain the process, I will go through it phase by phase, explaining what is done and where the information comes from. Phase I is the initial phase whose primary task is to divide the program into logical groups of man- 237 ageable size. The input to the translator is the source symbolic card deck, or a tape containing the card images. The input is read, basically a card at a time, and broken into the following categories. • Areas to be treated as FO R TRAN subroutines (tape) • Data and parameters (tape) • Symbolic equivalence (core/cards) • Macro skeletons (tape) In order to make these distinctions, the translator must know the algorithms for separation. The BEG IN pseudo operation is recognized as the start of a routine and the terminus of a previous routine. Origin and transfer cards are assumed to signal the end of a routine. Decimal, octal and Hollerith data are presumed to be in the data domain unless they appear to be in a routine and do not have a symbolic location assigned to them. The programmer is allowed to enter control cards in the data stream to allow the programmer to label name COMMON in the output stream. Each card included in a subroutine area is assigned a FORTRAN location number. In order to build up an initial table of floating point (real) symbols, the address of each floating point instruction is saved as well as the address of a loading instruction immediately before it or a storing instruction immediately following it. Each symbolic name is saved, in sequence, with all origin, intermediate transfer cards and the final end card. The address of the first intermediate transfer card (if none, the address of the end card) is saved as the point at which computation will be initiated. Phase II is designed to handle data and parameters. The list of floating point symbols generated in Phase I is organized and checked for redundancy. The translator then reads the data and parameter tape and compares the parameter symbolic name to the built up symbol table equivalences. The symbol is then checked to see whether it is an allowable FORTRAN symbol (alphanumeric, initiated, by a letter), what the type is, and what the dimension is. The translator tries to define a new symbolic reference for illegal symbols, expands the symbol table of equivalences and builds up a table of real and integer symbols not conforming to the FORTRAN rules. Every attempt is made to keep the original symbol as it is assumed to be mnemonic. From the contents of the data card. image, a data statement is generated if initial values are assigned to the parameter. The name and dimension are included in the name COMMON block as assigned by the 238 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 translator or the programmer if he has such input information. Upon termination of a name COMMON block, the card images are saved on an intermediate tape with the images of the type statements. Upon processing all dat q cards, the translator calls the computation, using:the address of the end card (or first intermediate transfer card). A listing is then made of all parameters with their original symbolic name, the corrected name, if any, and the comments from the data card. Phase III (storage allocation core map and overlay structure). The program reads the tape containing the above information, compares it to the equivalence table and breaks it ino n strings. These strings are then printed in n columns with origins matched on the vertical scale. Phase IV (macro translation). Macros are currently translated as functions, if they can be, or are ignored. Details of translation are similar to the translation of subroutines. Phase V (translation into FORTRAN subroutines). This is what most people consider the heart of translation. The card images of the area to be converted an! read into core from the tape storage. Each card is assigned a sequential external formula number. Those which are not used will be suppressed at output time. An initial pass is made to find the address of all transfer instructions and to save the concomitant FORTRAN numeric location. Locations which are transfers, or transferred to, are appropriately flagged. New numeric locations are assigned for undefined transfer addresses. Special flags are set for the addresses of TIX instructions, TXI and TXH (under: certain circumstances index loading instructions, address modification, etc.). The actual translation is now begun. The translator is broken into two alternate paths here: the first being a search for instructions or functions that initialize a statement (a statement being merely a string of appropriately connected functions); the second being a search for functions that sustain or terminate a statement. In general, the translator scans the coding until it recognizes the start of a statement; then it switches to the terminal branch where it builds up the function into a statement until some terminating condition is reached. If on the initial scan, a sustaining type instruction were encountered, the translator initiates an appropriate function to start things off and transfers to the terminal branch. Similarly if in the terminal branch the translator finds an initiating statement, it supplies a terminal function to complete the statement. being processed, tries to search out particular programmer tricks since something "different" is happening, and then transfers to the initial branch. Loading, storing and transfer instructions, and instructions which are transferred to, are samples of what are considered to start or end a s1tateml~nt. CALL type instruction (TSX) are considered to start or end a previous statement and start a new one unless the translator can determine that they are replaceable by a built-in arithmetic function or other- functions, in which case the function is included in the statement being processed and the translator continues on the terminal branch. Arbitrarily terminated or initiated statements are stored in or picked up from "dummy" accumulaltor, MQ, registers, etc. The translator on either branch attempts to search out TIX loops, where a register is counted down from n to 1 or TXI loops where a register is incremented from 0 to n and translates as DO loops nested to a level of 7; if all 7 index registers are used and the index registers are not saved internally. A DO statement is inserted just prior to initiation of the loop. The loop is terminated by a dummy CONTINUE. The pseudo symbol NOXA is used to represent index register A. The algorithm for conversion of parameter addresses while in a TIX loop deducts the initial value of the index register from any associated address. Note: there is a difference in the assignment of vectors in machine language programs and FO R TRAN, each considering the other backward. The algorithm attempts to cover the difference. As previously mentioned, the easiest instructions to translate are the arithmetic instructions where each operation and address is added to the righthand end of the statement being generate:d. For multiplication and division a pair of parentheses must be added, one at each end before the operator and operand are saved. For functions, a simHar pair of parentheses must be added except of course, the functions appear on the left, before the initial parenthesis. A storing type instruction adds an equal sign on the left and the address of the operand to the left of that. Translated output statements are built up in a table, word by word, until a terminating condition is reached. The statement is compacted by reducing spurious blanks, continuation numbers are assigned if more than one card image is required; and the images are written on a blocked output tape with an alter number for each card image. If it has been referenced, th,e FORTRAN numeric location is also written out on the A COMPUTER PROGRAM TO TRANSLATE MACHINE LANGUAGE INTO FORTRAN first card image. At this point an almost side by side listing of the original coding and the translated code are printed for the user. By actually scanning, ins~ruction by instruction, while the whole subroutine is in core, the translator can look for particular sequences of coding which represent a special case. Much of the detail coding to effect these rules is lengthy and tends to be repetitive so that many subroutines are used in the areas of duplication. The coding of the translator is all very straightforward, and often tedious. Phase VI allows the user to edit the translator output from the previous phases which consisted of an almost side by side listing of the original and translated coding. Also used is the tape which contains all of the previous translation including the alter numbers. It is the purpose of Phase VI to allow the editing of this tape by use of the alter numbers and to produce a new tape and/or a new listing and/or a punched card deck. The editing is performed by a series of control cards which allow the user to add or delete cards from the tape or to juggle large blocks from one place on the tape to another, without actually shuffling through the cards. To maximize usefulness, the output tape may be fed into the FORTRAN compiler at this time without the submittal of a separate run or punching the cards. USER INPUTS The recipe for elephant stew traditionally starts with "clean one freshly killed elephant." Similarly the user's input starts with the program to be translated. This may be in the form of symbolic source cards or blocked card images on a tape. In general, the areas for which translation is not desired are deleted from the deck. This deck is preceded by a control card that tells the translator whether this is a SMASHT, SCAT or IBMAP deck and 239 whether cards or tape is expected. A number of EQU cards may be input by the user to assign names to illegal symbols, rather than accept the translator's naming. REAL and FIXED define the type of data these operations refer to when the translator has insufficient information to arrive at the appropriate conclusion. Control cards define the subroutines of function calling sequences for translating the TSX address. The rules for separation of areas into subroutines may be defined either by special coding in the translator or insertion of dummy control cards. Special algorithms for translational rules are coded into the translator at this time. The run is now ready for submittal. Upon return of the run, the data previously furnished may be modified and the appropriate processes repeated or the user may desire to continue into the editing phase and obtain an output deck. SAMPLE TRANSLATION Translation is such a complex functiDn that no all-encompassing sample is feasible in such a short period of time. CONCLUSION AND SUMMARY The translator described here is not a perfect tool - it does not translate everything nor" is everything it translates perfect. It does not handle dynamic programming, i.e., where coding is actually charged, nor does it handle indirect addressing. Patently it does not translate into FORTRAN those things FORTRAN cannot do. Complex and double precision arithmetic are not attempted. It is designed to relieve the programmer of much of the clerical task of translation and to allow the user input into the translational process and absolute control of the final output. For those applications we have used it for, it has performed rapidly and effectively. TECHNIQUES AND ADVANTAGES OF' USING THE FORMAL COMPILER WRITING SYSTEM FSL TO IMPLEMENT A FORMULA ALGOL COMPILER* Renato Iturriaga, Thomas A. Standish, Rudolph A. Krutar and Jackson C. Earley Carnegie Institute of Technology Pittsburgh, Pennsylvania Second, because FSL is a high-level language incorporating certain power of expression, the task of describing compiling processes is sufficiently manageable and easy that experimental flexibility is achieved. By this we mean that we were able to experiment with a variety of organizations of parts of the compiler in order to select those with desired properties. In particular, we were able to experiment with the syntax of Formula Algol without appreciably changing its semantics. We could also change its semantics without appreciably changing the syntax. Thus we were able to use FSL as a tool to improve the source language and at the same time to improve its implementation by finding the best compilation techniques. In contrast to the case of a hand coded compiler, we were not forced to make any organIzational commitments which were of prohibitive expense to change. This is the essential reason underlying the property of flexibility, and flexibility makes FSL a good tool for a programming language designer. A third feature of using FSL to write a compiler is that it is a rare counterexample to the familiar tradeoff between efficiency and generality. The use of the Floyd-Evans production language 7,8 permits one to write an efficient syntax analyzer with sophisticated error recovery, and a compiler written in FSL not only is reasonably efficient but if written INTRODUCTION Implementing a compiler, as everybody knows, is not an easy task. There have appeared in the past few years a number of compiler writing systems. 1- 3 One of these is Feldman's "Formal Semantic Language" (FSL}.4,5 In Feldman's thesis the assertion is made that FSL is potentially a powerful compiler writing system. The Formula Algol compiler 6 is a large, nontrivial compiler incorporating several new language features, and the use of FSL to implement it constitutes the first significant test of the power of FSL. We find Feldman's assertion is justified, and the ideas he set forth in theory have been found to be successful in practice. Some of the more important advantages of FSL that we have found are as follows. First, the amount of time and programming effort required to implement a compiler such as the Formula Algol compiler is reasonably small (on the order of a man-year). *The research reported here was supported by the Advanced Research Projects Agency of the Department of Defense under Contract SD-146 to the Carnegie Institute of Technology. R. Iturriaga is partially supported by the National University of Mexico and the Instituto Nacional de la Investigacion Cientifica. T. A. Standish is a National Science Foundation graduate fellow. 241 242 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 properly can produce efficient object code. For example, the Formula Algol compiler produces for some classes of expressions more efficient code than the current handwritten Algol compiler in use at Carnegie Tech. A fourth feature of FSL is, that it is a language sufficiently general to allow several of the betterknown useful compiling techniques to be expressed and utilized. For example, THUNKS 9 were used to implement parameter calls In procedures, dope vectors 10 were used to implement array storage and accessing, and the use of symbol table techniques was made easy by the fact that tables are primitive in the language. The reason; for this generality is that FSL contains a powerful set of primitives that permit a user to express a large variety of compiling mechanisms directly by combination of these primitives. This feature also permitted us to invent several new variations on known 'compiling techniques which were well adapted to the problem at hand. A fifth property for which, at present, we can produce no real evidence attes~ing to its usefulness, is that a compiler written in FSL is given a formal description. This means that in contrast to handwritten compilers we are provided with a framework in which we can begin to approach the problems of proving that compilers recognize given source languages correctly or that they compile correct code. In the case of handwritten compilers these questions are unthinkable. As an example of the kind of approach that can be made once. a formal description is given we cite a doctoral thesis by Evans, II in which certain properties of the production language are proven. Finally, the activity~ of implementing Formula Algol had a feedback effect on the design and implementation of FSL itself.12 Modifications were made easy by the fact that FSL is in effect compiled in itself and thus possesses the ~ame organization as the compilers it produces. For example, an accumulator symbol was introduced as a variable to allow the user to deal formally with the use of the accumulator. This represents a small change in the original philosophy of FSL, which waS designed with machine indeperidence in mind. It is, however, a small change with far-reaching consequences. With the exception of the property of the usefulness of formal descriptions of compilers, we will present later in this paper concrete evidence supporting each of the claims we have made in this introduction. Our first task, however, is to explain briefly the operation of the compiler writing system. A BRIEF EXPLANATION OF THE COMPILER WRITING SYSTEM The compiler writing system uses two formal languages to describe a compiler. First, a syntax analyzer for the source language is written as a program in the production language. This program is processed by a translator called the production loader producing as output a set of driving tables which are stored for later use. Second, a collection of semantic routines is defined by writing a program in the formal semantic language. Another translator called the semantic loader then translates this collection of routines into a set of tables and a block tDf code, which code is compiled for use as a part of the compiler itself. This output is also intermediate and is stored for later use. The compiler itself (Fig. 1) is another program which reads in both the syntax tables and the semantic tables and code, and by using thesl~ translates a source language program into an objt!ct program. For the sake of efficiency a preliminary lexical transformation is performed on source language text as it is read in by a routine called the subscan. This routine recognizes the primary units of the language which are operators, fI~served words, identifiers, and constants. These primary units of the source language are not fixed by the system but are declared in the production languagc~. The subscan is a closed routine called by statements in the production language. Each time it is called it returns with the next primary unit in the source language string. As each identifier is recognized by the subscan its print name is stored in a table unless it has been entered previously, and an integ,er representing its relative address in the table of print names is transmitted. This integer functions from that time on as the internal name of the identifier. Abbreviations of reserved words and of opc~rators are transmitted directly, and constants whil:!h arle too long to transmit directly are saved in at tabl.~ and their locations are transmitted instead. The fundamental mechanism in the compiler is a push-down stack of ordered pairs (a, fJ) where a is, a primitive syntax unit and where fJ holds semantic; information and is called the "description of a." Syntactic analysis of the source language proceeds by a sequence of manipulations of this stack.. Tht! production language is used to define these manipu .. lations and it consists of a sequence of productions of the following form: THE FORMAL COMPILER WRITING SYSTEM FSL TO IMPLEMENT A FORMULA ALGOL COMPILER ~OURCE PROCESSED BY PRODUCTIONS DIFINING INPUT) (SU8SCAN SYNTAX PRODUCTION SYNTAX ANALYZER OF SOURCE LANGUAGE 243 TAILES THIS lOX IS LOADER lANGUAGE THI COMPILER. ...", ____J COMPILER EXECUTIVE SEMANTIC PROCESSED BY SEMANTIC ROUTINES SEMANTICS TAlLES SEMANTIC WRITTEN IN 'SL. DIFINING O. AND I-----------t-. COMPILED LOAD.II CODE SOURCE LANGUAGE .OR COMPILE TIME ROUTINES ( OIJECT PIOGRAM INPUT ~ I O~~:CCTUT;::G::M I~---___--~------.--\-( I LOADED • (OlnCT OIJECT PROGRAM OUTPUT 15 OBJECT CODE OUTPUT) IEFORE PROGRAM EXECUTED RUN TIME ROUTINES 'OR SOURC, LANGUAGE Figure 1. LABEL L5 L4 L3 L2 L I I -- R3 R2 R I I ACTION *LINK where the appearance of everything except L I and the two vertical bars is optional. Each production tests for the presence of a particular configuration among the topmost syntactic units in the stack by attempting to match the pattern given by L5 L4 L3 L2 LI against them. If a match. is found and if -- R3 R2 RI occurs in the production then the configuration matching L5 L4 L3 L2 L I is transformed into the configuration represented by R3 R2 Rl. Then the ACTION is executed. If -- R3 R2 R 1 is absent and a match is found then the ACTION is executed and no transformation is performed. The only three actions we will discuss in Flow of systems. this paper are the actions EXEC, SUBR, and RETURN. The actions SUBR and RETURN will be explained later. The action EXEC N, with parameter N, is a call to the semantic routine numbered N. This semantic routine may, among other things, alter the descriptions of the syntactic units involved in the stack transformation described by the production. For example, the description of an identifier may consist of the address of the run time location assigned to the variable that identifier represents. The description may also bear type bits telling the type of the variable (e.g., real, integer, formula}. After the action is executed the link is examined to see ifit is prefixed by a *. If it is then the subscan is called" and the next primary syntactic unit in the source language string is recognized and 244 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 placed on top of the stack .. Then control passes to the production whose label is given by the link. If a * does not precede the link then subscan is not called and control changes as in the previous case. In the event that the pattern L5 L4 L3 L2 Ll did not match the configuration of syntactic units at the top of the stack control passes to the next production in sequence. Also if the link is blank the action on the next line is executed and this process repeats until a nonblank link is found. A sequence of productions may be organized into, a closed subroutine by use of the actions SUBR and RETURN. The first production in such a sequence must be labeled and its label, say L, is the name of the closed subroutine. To call the closed subroutine starting at label L we execute the action SUBR L. When we wish to return from the subroutine we execute the action RETURN and control returns to the link of the production that called the subroutine originally. The control mechanism contains a pushdown stack permitting recursive calls on the closed subroutines. The general structure of the syntax analyzer for Formula Algol is as follows. The major units of the source language, such as statements and expressions, correspond directly to subroutines in the production language, which s~broutines analyze the given major units. For example, there is a production subroutine called the "statement scanner," which is called every time a statement is expected in the source language. There is also a production subroutine called the "expression scanner," which processes expressions of all types and which is called every time an expression is expected in the source language. The statement scanner may call the expression scanner and, in fact, corresponding to the occurrence in the source language of statements which contain other statements as parts, the statement scanner may call itself. The flow of control through the syntax analyzer is governed by the structure of the source language program being analyzed. It is roughly true. that the structure of such large production subroutines as the statement scanner and the expression scanner is the following. Upon entrance to the subroutine the first few characters of an expected source language construction are subjected to a sequence of tests which separate the various possible classes of constructions that may be encountered into cases. Corresponding to each case a transfer is made to a part of the routine which treats that case specially. This basic scheme of organization was first introduced by Evans in the writing of the Carnegie Tech: Algol compiler 8 and the structure of the syntax analyzer for the Formula Algol compiler is basically an extension of ilt. Because the flow of control in the syntax analyzer is directed by the constructions· encountered in the source language it will be possible to use the following technique to explain various mechanisms found in the compiler. We will focus our attention on a critical subset of productions responsible for plroCessing a given type of construction. This critical subsystem will always be embedded in a larger context but- since the flow of control will never involve that contex,t we may isolate the critical subsystem for study. This subsystem will involve calls on a set of semantic routines, and these semantic routines will be solely responsible for the compilation corresponding to the constructions which the critical subsystem processes. An explanation of the primitives in the formal semantic language is given in Refs. 4 and 5. A complete summary of those primitives is not given in this paper, but the subset of primitives used below are accompanied by explanations in order to make the treatment self-contained. A DETAILED EXAMPLE Let us consider an example of the compilation of the assignment statement X +- A + B xC;. As we begin to process this statement control in the productions will be transferred to the statement scanner at label Sl where at entrance to the: scanner the first character X has been recognized by the subscan and has been stacked as a syntactic unitt I on top of the push-down stack. Furthermore, subscan sets the description of I to be the integer which is the relative address of its print name. The critical productions in the ~tatement scanner which tr,eat this case are as follows: SI S2 *S2 I I I +- - E +-+- I I EXEC 19 EXEC 91 *El *Sl The first production at S 1 matches all statements which start with an identifier, and control is transferred to S2 after scanning the next character. At S2 a discrimination is performed on the second character and in the case of assignment statements the initial identifier I is changed to an E and control is transferred to EXEC 9 where a look-up in the symbol table is performed using the integer in the THE FORMAL COMPILER WRITING SYSTEM FSL TO IMPLEMENT A FORMULA ALGOL COMPILER description of I. This causes the retrieval of the location of the variable X which was assigned previously and stored in the symbol table while processing the declaration of X. It is conceivable that X was not declared and thus not stored in the symbol table. The table look-up procedure sets a signal in the event that it fails to locate an object during a table look-up and a test on this signal enables us to write a semantic error exit corresponding to the case where a variable is used but not declared in a source language program. Upon finding the entry corresponding to X in the symbol table the run time location of X, and its type (real, formula, etc.) are retrieved and the description of E in the stack is set to contain the run-time address, the type bits, and a bit to denote that the location rather than the value of X is desired. This description will be carried along as the associate of E until code is compiled to perform the assignment. Thus the FSL code for EXEC 9 looks as follows: 9 i MARKJUMP [FIND]; SIGNAL -RIGHT2.- KEY + MODEO + TYPE + RELOC: FAULT 9 $ i "FIND" KEY .- SYMBOL [LEFT2 , $ , TYPE.- SYMBOL [0 , , $ , ] RELOC .- SYMBOL [0, , ,$] ; JUMP[ < FIND> ] Upon entrance to EXEC 9 we execute a mark transfer to a closed subroutine called FIND which performs the symbol table look-up using the integer given in the description in the LEFT 2 entry (same as L2 position defined above) in the push-down stack. LEFT2 is a variable whose value is this description. It is used in the statement KEY .- SYMBOL [ LEFT2, $ , , ] to locate the entry in the symbol table named SYMBOL which begins with the integer given by the value of LEFT2. Each line in the symbol table is of the form [integer, location, type, relocation base]. The relative position of the dollar sign $ among the commas indicates which of the entries in the located line we wish to extract. Hence the statement KEY .- SYMBOL [LEFT2, $ , , ] extracts the location assigned to the variable whose internal integer is the value of LEFT2, and assigns this location to be the value of the variable KEY. If a zero occurs in place of LEFT2, as in the statement TYPE.- SYMBOL [ 0 , , $ , ] , the extraction defined uses the line previously selected 245 saving the cost of an additional identical look-up. Thus for our example the routine FIND simply sets the KEY to the location of X, TYPE to the type of X, and RELOC to the relocation base of X (the relocation base is used to implement recursion and is too complicated to explain here). The statement JUMP [ < FIND > ] is a return to a mark transfer call. Returning now to the consideration of EXEC 9 we assume we have executed a mark transfer to FIND and have returned with either the signal set false to denote that the table look-up was a failure, or the signal set true and the variables KEY, TYPE, and RELOC set with the extracted values. The statement SIGNAL -- RIGHT2.- KEY + MODEO + TYPE + RELOC : FAULT 9 $ is equivalent to the Algol statement if SIGNAL = TRUE then RIGHT2.- KEY V MODEO v TYPE V RELOC else PRINT ('SEMANTIC FAULT 9') where MODEO is a variable containing a bit denoting that a location rather than a value will be used. Executing this statement causes the logical union of the values of the variables to be stored as the description of the element in the R2 position of the stack in the event that the signal was true, and it causes a semantic fault to be printed otherwise. At this point in the consideration of our example, control is returned from EXEC 9 back to the production that called it. This in turn causes another character to be scanned and control to be trans- . ferred to E 1 which is the beginning of the expression scanner. The expression scanner contains two main parts, one starting at E 1 which expects an operand, as would be the case, for instance, at the beginning of an expression, and the other starting at E2 which expects an operator or separator. Thus upon transferring control to El we will find the following set of productions: El E2 I E EXEC 7 *E2 SUBRCOM *El At El the first production matches and control is transferred to EXEC 7 with the syntax units in the stack looking like E -- E I . EXEC 7 is roughly the same as EXEC 9 the main difference being that the description of the E in the RIGHT 1 position is set to contain a bit denoting that the value rather than the location of the variable is desired. So far X .- A has been scanned and converted to E -- E. We now scan the operator + and transfer control to E2 in the productions. The expression < OP > stands for a class of binary operators including the 246 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE. 1966 ROUTINE FOR COMPilATION l I 1 (UN) 1 1 t 1 1 NG" 1 1 1 1 (RE> 1 1 1 1 ClSO 1 (PN) 1 (aT) 1 (SIl> 1 (SG) 1 . COM ·1 ·2 .J +4 +5 +6 ., +1\ +9 +10 +11 +12 +13 +14 "15 H16 +1 +2 INSE E +3 Al TE E +4 I" (SIl> (SIl) "5 +6 E .7 E +8 >119 HAl +1 >120 IS IS E E E NoT ALSO Is INST eLSa ClSO E E E E E E E (SIl) (SIl> (SG) (SIl) H22 (SIl> >124 H26 (SG) (51l) +1 (SIl> +2 Nl .... .. 1 .. 1 .. 1 .. 1 .. 1 .. 1 .. 1 .. 1 .. 1 .. 1 .. 1 .. 1 .. 1 .. 1 (5G) 1 (SG) 1 IL To (5G) 12ft (SIl) +1 (SIl) >130 (SIl) (SG) +1 >132 NG· E >136 SIGN E ENT I E (SG) +2 ARCT r: (SIl) +3 SORT E (SIl) +4 ExP (SG> +5 L.N ~ET E (SG) ·6 CoS E (SG) .7 SIN E (SG) !':OM 11~ ~OM 116 10n 117 100 US 10n !lOM .8 ~OM I ., COM Figure 2. plus sign so the production at E2 matches the + sign on top of the stack and control is transferred to the production subroutine labeled COM. This subroutine is given in Fig. 2. Notice that the expression < SG > in the LEFTI posit~on matches any arbitrary character. Subroutine COM is equipped with an operator precedence comparison mecJtanism for sorting on the hierarGhies of operators: so that, for example, in the expression A + B x C, code is compiled to perform the multiplication first· and the addition second even though the order in which these operators are encountered in the syntax stack is the reverse. As we enter subroutine COM, production COM+7 matches and a transfer to H28 occurs. Nothing matches from H28 until the end, so control returns to the expression scanner which recognizes the next two characters and: returns to subroutine COM with E -- E + Ex I: in the syntax stack. Then production COM+5 matches the stack, control passes to production H30, nothing matches until the end of subroutine COM, control returns to the expression scanner, two more characters are recognized, and a final transfer is made back to sub- , (SG> ·1 IIET IIET IIET RET r.OM ' r.OM COM (SG> (SG) H34 "0M .. ET IIET 19~ :>07 1 O~ 1 n~ 176 1\5 77 AU 105 114 105 (SIl) NG H~~ ASS E (SG) (SG) L.I 1 matches the semicolon on top of the stack at production COM+ 15 and control passes to production H 16. The firs1t production to match the stack is production H30. This leads to the first instance of object code compilation in the processing of the statement. All previous actions up until this point have consisted of postponements. The compilation is accomplished by transfers to EXEC 100 and to EXEC 125 which compile code to mUltiply Band C. In the case: of arithmetic operands CLA B is constructed. In the MPYC case of formula operands, code is produced to construct when executed the formula tree x B/ ,·C The semantic routines used to accomplish this test the types of the operands, which types have been stored in the descriptions assigned by EXEC's 7 and 9, and they compile the appropriate code. At the completion of this compilation the syntax stack is THE FORMAL COMPILER WRITING SYSTEM FSL TO IMPLEMENT A FORMULA ALGOL COMPILER altered to look like E -- E + E; I because the terminal Ex E has been replaced by a single E as is seen by inspecting production H30. The semantic routines also set the description of the topmost (rightmost) E to contain the type of the expression and the fact that the code compiled leaves the value of the expression in the run-time accumulator. Control now passes back to the beginning of subroutine COM for another iteration of the process. Subroutine COM will be seen to reenter itself iteratively until the entire expression is consumed, until code for it has been compiled, and until its external representation in the syntax stack has been replaced by E in the case of pure expressions and nothing in the case of assignment statements. We are now at the point where the syntax stack looks like E -- E + E; I and where we have reentered COM. On this pass production COM+ 15 matches and passes control to H 16 where successive productions fail to match the syntax stack until production H28, at which point E + E is compiled by EXEC 100 and EXEC 123. The compile-time routines responsible for producing code detect the fact that code has been compiled leaving the value of the second operand in the run-time accumulator. Thus the code compiled is ADD A. Again the semantic routines analyze the types of LEFT2 and LEFT4 to determine whether code should be compiled to add numerical expressions or to add formula expressions. After compiling ADD A the stack configuration is changed to E -- E; I and control passes back to the beginning of subroutine COM. On this final trip through subroutine COM production H 16 constructs code to perform the assignment of LEFT2 to LEFT4 and subroutine COM is exited with only the semicolon remaining in the syntax stack, the assignment statement having been consumed entirely. In the case of expressions, rather than assignment statements, an E is left upon exit in the RIGHT2 position with its semantic description set to contain its type and the fact that it resides in the run-time accumulator. The strategy of subroutine COM comes from a well~known compilingJechnique for which no claim to originality is made. Both Floyd and Evans have used similar techniques in their Algol compilers. FLEXIBILITY OF THE SYNTAX ANALYZER We will now present examples showing how we can experiment with, extend, redesign or improve the syntax of the source language. 247 Suppose we want to add a new type of binary logical operator NOR (equivalent to the Pierce operator familiar to logicians and electrical engineers) and suppose we choose to denote it by the pair of characters - v in the source language. Let's . agree that in the expression - A 1\ B - v C V D the NOR operator binds less tightly than ;.... ,1\, and v so that fully parenth(!~ized the expression looks like ( ( (--- A) "B ) ...., V (C v D)). We need to do four things to add this operator to the source language: 1) we declare the character pair ~ v to be a primary syntactic unit for subscan; 2) we expand the definition of the class of operators < OP> to include v so that the production labeled E2(above) will detect the presence of this new operator and will pass control to subroutine COM. The last two steps are additions to subroutine COM itself: 3) we insert the production :.0;., - v i HNOR after production COM+ 12 (cf. Fig. 2); and finally 4) we insert the production HNOR 'E --- v E < SG > I I EXECK COM E < SG > after production HAl + 1 (cf. Fig. 2). Here EXEC K must compile code for Boolean expressions using the NOR operator and it looks as follows: K ~ TEST[LEFT4, BOOLEAN] 1\ TEST[LEFT2, BOOLEAN] - CODE ( RIGHT2 -- (LEFT4 v LEFT2)): FAULT K ~ This is our first example of the use of the code brackets CODE ( . . . ) . An expression contained in code brackets describes code to be generated and inserted into the object program. The test commands test the descriptions in the LEFT4 and LEFT2 positions to see if they contain bits denoting the type BOOLEAN. From this example we see that we can 1) add operators and choose their hierarchies at will, 2) change the hierarchy of an operator without changing the operator itself, 3) by redefining an EXEC routine, change the meaning of an operator without changing its syntax, and 4) delete operators at will. This exemplifies the kind of experimental flexibility available to users of the FSL system. The organization of the compiler is such that other kinds of additions, deletions and alterations may be performed in the syntax analyzer with ease. For example we may add a new type of variable by adding its declarator to various lists, by inserting a 248 PROCE~DINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 production in the production subroutine that processes declarations, and by inserting tests and consequent compiling actions; in the semantic routines which are called corresPQnding to expressions and statements using the new ~ype of variable. It is also easy to add new types of statements to the statement scanner and to add new types of expressions to the expression scanner. The implementation of the list processing part of the Formula Algol language demonstrated to us the ease with which it was possible to extend the compiler. Unfortunately, space precludes an adequate description of this ex. tension. As a last example of a notational change we consider the evolution of the notation for formula patterns F INST P as defined; in the first Formula Algol paper}3 F INST P is, a Boolean primary which tests whether the formuia F is an instance of the formula pattern P. Later this notation was changed to F = = P and an additional type of test was added of the form F » P tb test whether F contains a subexpression which is :an instance of P. In the case of changing INST to := = one merely had to substitute = = for INST in the productions. When »was added it was possible with a minor correction to share the productions for = = to process ». This correction consisted essentially of substituting a class symbol representing the set { = =, »J for occurrences of == in certain productions. The semantic routines associated with these productions were also altered 'to compile different code for the two different cases. FLEXIBILITY OF THE SEMANTIC ROUTINES Having treated some exampl~s of the ftexibi~ity of the syntax analyzer we now ttirn our attention to corresponding properties of t~e semantic routines. The following example is intended to demonstrate the kind of experimentation that can be done with the compiling processes in order to improve both the compile-time efficiency and ithe parsimony of the formal description of the compiler. 'The example deals with a type discrimination problem encountered in the compilation of expressions involving unary and binary operators, For instance, when code is generated for A + B, the types of A and B must be checked. is w~ll defined, the opREAL + REAL erands are already complete, :and the result is of type REAL. REAL + BOOLEAN FORMULA + REAL is an illegal construction. is well defined, but the right-hand operand must be made into a formula data term using a cell from linked list memory before a formula repn!senting the sum can be constructed, and thli! result is of type FORMULA. We shall describe two methods of implementing this type discrimination (which is the function of EXEC 100). The first is the most recent obsolete method and the second is its successor. In the former method the' set of operators was partitioned into a small number of equivalence classes. Two of these are the arithmetic op'erators +, -, x, =, >, . . . and the Boolean op,erators v, 1\, - , . . . . For arithmetic operators, EXEC 100 checks the types of the operands for compatiibility and sets a switch (MACHINE) to 2 if eithe:r operand is of type FORMULA, and to 1 if both operands are arithmetic. In the following version of EXEC 100, X7 is an address extractor. 100 ~ TEST[LEFT4, BOOLEAN] v TEST [LEFT2, BOOLEAN] -- FAULT ]loo: RIGHT2 -- RIGHT2 1\ X7; TEST[LEFT4, FORMULA] v TEST [LEFT2, FORMULA] -- MACHINE -- 2; - TEST[LEFT4, FORMULA] -- CODE( CONSTRUCT FORlvlULA [LEFT4]) $; --- TEST[LEFT2, FORMULA] -- CODE ( CONSTRUCT FOR·· MULA[LEFT2]) $ MACHINE -- 1 ; TEST[LEFT2, REAL] v TEST[LEFT4, REAL] -- SET[RIGHT2, REAL] : SET[RIGHT2, INTEGER] $ $ $ As more operators and data types are added to a language this method becomes complex and inefficient both with regard to the space required to express the sequence ~f tests and the average timle required to execute such a sequence. Therefore wle have invented a successor to the above method. The successor is described as follows. It is based on a single four-column table (DISCR) which may be preloaded. The first entry in a row of this tabl'i! is a coded word which has three fields: [TYPE1, OPERATOR, TYPE2] THE FORMAL COMPILER WRITING SYSTEM FSL TO IMPLEMENT A FORMULA ALGOL COMPILER Any combination of two types and an operator may be described in a single word. Unary operators have one of the two types fixed. The second entry indicates a compile time routine to be executed which makes the operands compatible. The third entry points to a compile time routine which actually compiles code for the expression. The final entry is the type of the result. DISCR may be initialized as follows: REAL + REAL REAL + INTEGER FORMULA + REAL FORMULA v BOOLEAN NONE ~ BOOLEAN none none ADD REAL ADD REAL CONS2 FADDFORMULA CONS2 OR FORMULA none NOT BOOLEAN When the syntax stack matches any production of the form E E 1 - E 1 EXEC 189 COM then the following code is executed: 189 ~ COMB -- (LEFT4 xL12 + LEFT 3) x L6 + LEFT2; R -- DISCR[ COMB, $ , , ] ; ~ SIGNAL FAULT 189 : FINAL -- DISCR [ 0, , $ , ]; TYPE -- DISCR [ 0 '" $ ] ; R ¥= 0 - MARKJUMP [R] $ ; JUMP[FINAL] $ ~ Here L12 and L6 are shift constants, and LEFT3 contains a small but unique integer representing the operator. In some cases we may experiment with the organization of compile-time processes to improve the quality of the object code produced, by which is meant we can reorganize some processes so that they produce less code which is more efficient. A small example of this is as follows. Certain patches of object code may be defined as nonexecutable because the flow of control may not enter them directly. For example, control must bypass a procedure declaration which may be entered only through a procedure call. If there are several adjacent procedure declarations then one may jump around each of them in turn or, preferably, one may jump around all of them simultaneously. The latter scheme is preferable because the object code requires less machine space, it runs slightly faster, and it looks less complex to the programmer trying to debug the system. The actual scheme for compiling these jumps has changed several times because we were able to try one method, tear it out, and try another both in the same day. 249 ORGANIZATIONAL EFFICIENCY IN THE COMPILER When planning the structure of a compiler written in FSL we can take advantage of an organizational principle commonplace in programming, which states that when performing a class of operations which have certain common processing requirements we should, if possible, make a division of labor allowing the common processing requirements to be treated by a single shared routine. It is easy to apply this principle when writing EXEC routines since we can write a single EXEC routine performing labor common to several different compilation processes and we can share it in conjunction with other EXEC's to perform each separate process required. An example of this is EXEC 100 which is shared in the compilation of arithmetic expressions as is seen by looking at subroutine COM (Fig. 2). Another example is EXEC 160 which does everything common to procedures and blocks. Production subroutines may also be shared. It may occur that certain syntactic constructs are used in different places in the source language with different semantics. For example, a list of identifiers can be used as a variable list in a declaration, as an array name' list, as a formal parameter list, as a value list and as a specifier list. The productions in the syntax analyzer are written so that all identifier lists, no matter the context in which they occur, are processed by a common subroutine of the form: ID 11 1 - EXEC 190 ERROR 190 1- AID 1 - * * AID AID ID RETURN As is seen, this production subroutine transfers control to EXEC 190 with the integer corresponding to the identifier on top of the stack. It does this for every identifier in the identifier list. In each of the different contexts of an identifier list it is necessary to process the identifier list in a different manner. To accomplish this, EXEC 190 is made into a variable capable of containing transfers to other EXEC's. For example, when, in FSL, the statement XEQ 190 -- XEQ 2 is encountered, it means the next time EXEC 190 is called, EXEC 2 will be executed. This will cause an identifier list to be processed as a variable list by the semantics. Similarly the statement XEQ 190 -- XEQ 3 will cause EXEC 190 to call EXEC 3 thus allowing an identifier list to be processed as a list of array names. By this mechanism one can treat the same syntactic 250 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 construct differentially in the semantics on the basis of context. The addition of the XEQ construct to FSL is an example of the effect of feedback from the process of implementing Formula Algol on the design of FSL. FORMULA MANIPULATION It was decided to represent formulas inside the computer as trees or list structures built from cells taken from an available space list in a standard linked list memory. To add fbrmula manipulation to the source language formula variables were introduced. In most cases _the syntax already existing for numerical Algol was shared for formula manipulation. While no changes in the productions were necessary for this shared syntax, tests had to be added to the semantic routines to discriminate between numerical and formula compiling operations. For the new constructions added to the source language such as EV AL, = =, > > , and the extraction operator in patterns, additions were made to the productions and semantic routines were defined for them. Because most actions involving formulas are either interpretive at run time or involve manipulations which cannot be compile<;l into the object code as macros due to the size of the code involved, a set of run-time routines were constructed in machine code. These run-time actions constitute, more or less, a basic order code for formula manipulation. In effect, the compiler produces code for two machines, one an interpreter accomplishing formula manipulation and the other the hardware accomplishing numerical manipulation. For example, we saw (Fig. 2) that in subroutine COM EXEC 100 and EXEC 123 are called in seque~ce when we compile code to add two operands together, E + E; As we have seen previously EXEC 100 checks the types of the operands and sets a switch (MACHINE) specifying the machine for which we, are to compile code. The structure of EXEC 123 is as follows: 123 ~ operand in the accumulator, and an operator in RO. Using cells from the list of available space it constructs a tree structure representing the sum of the operands and leaves the address of the head of this tree structure in the run-time accumulator. The reader can now see how we could implement complex arithmetic by defining yet a third machine, which performs complex operations, and by extending the compiler by the same process used to accomplish the formula manipulation extension. LIST PROCESSING We will consider one example of list processing to try to convey some of the flavor of the mechanisms involved. Consider the statement INSJ;:R T [A, 13, C] (AFTER LAST, BEFORE FIRST T) OF S. Here we assume that S contains a list (represented by a chain inside the computer). For the sake of specificity let S contain the list [ V, T, V, V] where V and T have been declared of type SYIVfBOL. After the insertion statement is performed the list is to look like [ V, A, B, C, T, V, V, A, B, C]. In a manner similar to that for formula manipulation a list processing machine is defined with an order code represented by a set of run-time routines. The compiler compiles a sequence of list processing instructions chosen from this order code corresponding to each list processing statement. Basic to the operation of the list processing machine is a push-down stack extant at run time called the chain accumulator. Most of the run-time list processing operations consist of manipulations on chains stored in the chain accumulator. The code produced by the compiler corresponding to the statement INSERT [A, B, C) (AFTER LAST, BEFORE FIRST T) OF S is a sequence of list processing operations whose mnemonics are as follows: Instruction STACK A MACHINE = 1 -+ qODE (RIGHT2 -- LEFT2 + LEFT4): CODE (Xl -- LEFT2; RO __ '+'''; ACC -- LEFT4; MARKJUMP[CONSTRUCT FORMULA]; RIGHT2--ACC) $ ~ . Here the routine CONSTRU(::TFORMULA is a basic operation of the formula manipulation machine which expects a right operand in Xl, a left p: Comment (on top of the chain ac:cumulator) STACK B (on top of the chain ac:cumulator) CONCATENA TE (the top two chains in the chain accumulator) STACK C (on top of the chain accumulator) CONCATENATE (the top two chains) GO TO () CLA symbol to denote last FIND POSITION (this routine locatc~s the! last element of the chain THE FORMAL COMPILER WRITING SYSTEM FSL TO IMPLEMENT A FORMULA ALGOL COMPILER PERMUTE (): on top of the chain accum ulator and stacks a pointer to this element on top of the chain accumulator) (we change the order of the elements in the chain accumulator so that the pointer is moved into the third position) CLA T FIND POSITION (locate the position of the cell in the chain on top of MINUS ONE the chain accumulator which occurs direcflybefore the first occurrence of T in that chain; stack a pointer to that position on top of the chain accumulator) (as before, change the PERMUTE order of the elements in the chain accumulator so that the pointer is moved· into the third position) (this routine performs inPERFORM sertions using information INSERTIONS sa ved in the chain accumulator) GO TO X (on top of chain accumuSTACK S lator) (replace S with the chain TAKE that occurs as its contents) CONTENTS GO TO p X: Let us now trace the effect of the execution of this code on the chain accumulator. We will adopt the symbolism that I 4> represents the state of the chain accumulator before we start to execute the code. As we enter the code we build up the list [A, B, C] and stack it on top of the chain accumulator. This proceeds in the following steps. First we stack A on top of 14> producing A 14>. Then we stack B on top of this producing B I A 14>. Then we concatenate the top two chains on the chain accumulator producing A n B I 4>, where n has been used as a symbol for the concatenation of chains. Next we stack C producing C I A n B I 4>, and then we concatenate again producing A n B n C I 4>. At this point the construction of the chain [A, B, C] is complete and control transfers to location () in the code where we stack S producing S I A n B n C I 4> and take 251 its contents producing V n T n V n V I A n B n C I 4>. Control now returns to p where we compute an9 stack a pointer to the last element· of the contents of S giving' 0, I V n Tn. V n .,.V I A n B n C I 4>. This pointer is moved to the third position in the chain accumulator producing V n T n V n VI( I . A n B n c.1 A sec. I 0 I 4>. ond pointer is now computed and stacked. It points to the position before the first T in the chain on top of the chain accumulator o~V n T n V n VIt I A n B n C I'I 0 I 4>. This pointer is also moved into the third - position in the stack giving ~n T n V n \ I A n B n C 1,0 0 14>. We could continue in this fashion computing and stacking a's"many pointers as we wish, each pointer corresponding to a place where an insertion is to be performed. We now transfer control to a routine which actually performs the insertions. This routine pops the chain V n T n V n V from the top of the chain accumulator and inserts a copy of the chain A n B n C after the position given by each pointer in the chain accumulator looping until all pointers in the chain accumulator are exhausted. The state of the chain accumulator after the execution of this statement is I 4>. Control in the code now passes to X where the execution of the program continues. The reason for the existence of transfers in the code sample given is because the order of recognition of syntactic constructions in the insertion statement in the source language is the reverse of the order in which we utilize these constructions in the computation expressed by the code. Specifically we must stack S and compute its contents before we compute any pointers locating positions in the contents where insertions are to be performed. However, the constructions telling us where to make insertions are encountered in the source language before we encounter the expression telling us the object on which the insertions are to be performed. Floating addresses are used in the compiler to implement such reversals. Since the semantics of the source language demands that all insertions be performed simultaneously we are forced to compute all locations where insertions are to be made before performing any insertions. 1 / CONCLUSIONS In this paper we have outlined the broad organization of the Formula Algol compiler. We have also presented examples exhibiting various proper- 252 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 ties of the FSL compiler writing system. We have not described completely or, in some cases at all, the implementations of declarations, switches, arrays, for statements, recursive procedures, block administration, formula manipulation or list processing. For a complete and detailed treatment of these the reader is referred to another paper by the authors, "The Implementation of Formula Algol in FSL."14 The subject matter was chosen to reveal what we feel to be interesting techniques involving the use of a formal compiler writing system. ACKNOWLEDGMENTS The authors are deeply indebted to Professor Alan J. PerIis who guided a'nd inspired our effort. Many of the creative and original ideas presented are his. However, we alone remain responsible for errors of style or content. REFERENCES 1. R. Brooker and D .• Morris, "A General Translation Program for Phrase Structure Languages," Journal ACM, vol. 9, p. 1 (1962). 2. J. C. Reynolds, "Cogent-A Compiler and Generalized Translator," Applied Mathematics Division, Argonne National Laboratory, internal paper. 3. R. Bolduc, T. E. Cheatham and A. Dean, "Preliminary Description of the Translator Generator System-I," Computer Associates, Inc. (Apr. 1964). 4. J. A. Feldman, "A Formal Semantics for Computer Languages," doctoral dissertation, Car:' negie Institute of Technology (1964). 5. __ , "A Formal Semantics for Computer Languages and its Application in a CompilerCompiler," Communications of the ACM, vol. 9, p. 3 (Jan. 1966). 6. A. J. PerIis, R. Iturriaga and T. Standish, "A Preliminary Sketch of Formula Algol," Carnegie Institute of Technology (July 1965). 7. R. W. Floyd, "A Descriptive Language for Symbol Manipulation," Journal ACM, vol. 8, p. 579 (1961). 8. A. Evans, "An Algol 60 Compiler,'" Annual Review in Automatic Programming, vol. 4, Pergamon Press. 9. P. Z. Ingerman, "THUNKS," Communications of the ACM, vol. 4, p. 55 (Jan. 1961). 10. K. Sattley, "Allocation of Storage for Arrays in ALGOL 60," Communications of the A CM, vol. 4, p. 60 (Jan. 1961). 11. A. Evans, "Syntax Analysis by a Production Language," doctoral dissertation, Carnegie Institute of Technology (1965). 12. R. Krutar, FSL II, Carnegie Institute of Technology, Computation Center, internal publication. 13. A. J. PerIis and R. Iturriaga~ "An Extensilon to ALGOL for Manipulating Formulae,," Communications of the ACM, vol. 7, p. 127 (Feb. 1964). 14. R. Iturriaga et aI, "Implementation of Formula Algol in FSL," Carnegie Institute of Te.:;hnology, Computation Center (Oct. 1965). A PROPOSAL FOR A COMPUTER COMPILER* Gernot Metze and Sundaram Seshu Coordinated Science Laboratory and Department of Electrical Engineering University of Illinois The system designer, however, needs a language which is powerful enough to permit the description of the macroscopic structure of the system independent of the microscopic structure of its components. While the description of the system in this language may also be used for simulation purposes, the primary objective is the description of the relationships between system components in such a way that a compiler program can supply the detailed structure of the components, guided by certain design and optimization criteria which are stated explicitly or built into the program. Thus, the program should be a true compiler, and the system design language should permit a description of the system on a higher level than the languages proposed by Proctor,2 Schlaeppi,3 and Schorr. 4 The linguistic aspects of a system design language, while interesting, have not been considered here, except that the language was developed in close analogy to the programming language FORTRAN, reflecting the feeling that computer programming and computer design are related fields. In particular, concepts such as modularity (subroutine structure), interfaces (subroutine argument linkages), parallel operations (multiprogramming), flow diagrams, etc., pervade both philosophies. Just as FORTRAN translates arithmetic statements written in near-human language into a computer program, the computer compiler will translate a system description, given essentially in the nearhuman language of the programmer's manual, into a description of the hardware, e.g., ANDs, ORs, INTRODUCTION In recent years digital computers have been applied, with great success, to the automation of an increasing variety of tasks in the design of digital systems, from the printing of wiring tables and the drawing of logical diagrams to the optimization, according to certain criteria, of the layout of components and wiring, and even the actual computercontrolled production of subassemblies such as printed circuit boards or integrated circuits. Similarly, the design of circuits, especially those involving nonlinear elements, has been made easier by computer programs (e.g., which perform tolerance analyses). On the system level, the use of digital computers has been limited to tasks which are equally mechanical, such as programs which check for violations of fan-in, fan-out, and cascading rules. More recently, languages have been developed which permit the simulation of a proposed system on an existing digital computer. Alternative system designs can be evaluated not only on the basis of performance statistics produced by the simulator, e.g., timing and utilization of machine components, but also by permitting the execution of programs written in the instruction language of the system being simulated.) *Supported in part by the National Science Foundation under Grant GR-32 and in part by the Joint Services Electronics Program under contract number DA 28 043 AMC 00073 (E). 253 254 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 NOTs, and FLIPFLOPs, and their interconnections. GENERAL DESCRIPTION OF THE COMPILER In comparison to manual approaches, the design of a digital system by compiler methods can be expected to be much fastqr and much cheaper, making it possible to examine (either externally or within the compiler itself) many alternative designs and select the one that is best according to some criterion. In particular, one could automatically examine the design for such features as speed, cost, or maintainability. If the input language is sufficiently powerful, the effect of adding special features such as buffered input/output, look-ahead controls, etc., can be examined with a minimum of changes to the specifications. Perhaps most important is the prospect that one good system designer can design the entire system, leading to a more uniform and more balanced result. It is convenient to break the computer compiler program into two parts: a' hardware-independent system compiler which reads the input language and produces an intermediate language output, similar to the assembly language output of most compilers, and a hardware-dependent logic compiler which reads the intermediate language and produces a detailed machine description in terms of the basic building blocks specified. The system compiler incorporates several standard assembler features, such as "macro," "repeat," and "library," as well as the facility of interspersing intermediate language statements if desired. The intermediate language output is a microinstruction string for each subprogram (subcontrol), optimized according to a specified measure. Although the system compiler is otherwise hardware-independent, this measure may involve ,hardware cost. The microinstruction string output of the system compiler includes a specification of the time-hierarchy and is thus equivalent to a flow chart. The intermediate language may also be used to drive a simulator program which permits experimental programming in the ~nstruction language of the proposed system. The specification and the development of the logic compiler is fairly straightforward conceptually. The Boolean minimizations required introduce bookkeeping problems but no other difficulties. The logic com pi let; is not discussed any further in this preliminary report. The concept of a library subroutine emters the discussion of a computer compiler in two distinct ways. The conventional notion is similar to that of a subcontrol (e.g. arithmetic control, I/0 control), but in addition open subroutines ("built-in functions" in FORTRAN terminology) may be used, such as algorithms for arithmetic operations. However, one could now have several algorithms which are equivalent in their final answers, say for division in two's complement representatipn, and ask the compiler to choose the algorithm which fits best with the rest of the design. Thus one may want to call for any subroutine from a class of subroutines which is identified by a class name. With a sufficiently rich library one could conceive of "dime a dozen" designs that one could choose from. The proposed compiler is also a good research tool. Since designs can be produced simply, one could produce examples rapidly to study n4~W design ideas. Finally, the concepts generated h(!re might well suggest procedures for the synthesis of noncomputer systems thus providing a formal basis for "systems engineering." THE INPUT LANGUAGE The description of a digital system involves two aspects: the global description, and the subcontrol (subprogram) description. The subdivision of the system into subcontrols is similar to the subdivision of a program into subprograms, and must: be done by the system designer. (Thus we implicitly seek modular designs.) However, in contrast to conventional programming, subcontrols may operate in parallel, i.e., simultaneously, thus giving rise to the need of a global description of the system. Counterparts to these concepts will become necessary when multiprogramming compilers are written. Global Description The global description carries the special ide:ntifier MACHINE xxxx followed by the following types of global hleaders: 1. Definitions of global constants by the op1eration SYN (see register declarations below) which define word length, memory size, etc. 2. Declaration of subcontrols which may operate in parallel. 3. Information necessary for optimization, such as cost, time and other measures. A PROPOSAL FOR A COMPUTER COMPILER There are no program statements in the global description. Subcontrol Description Each subcontrol description has an identifier and: the necessary header statements followed by the instruction statements, i.e., the program, which describe the subcontrol: 1. The identifier is a statement of the type SUBCONTROL ARITH where ARITH isa name chosen by the designer. (The subroutine linkage mechanism is further discussed under Subroutine CALLs below.) 2. Register Declarations are analogous to DIMENSION and COMMON statements in FORTRAN except that 'we follow the machine language convention and demand that even single bit registers be declared. There are five statement types in this category: a) REGISTER A(L) defines a register A of L bits where L is an integer or a previously defined symbol. Individual bits in the register are referred to by subscripts which normally range from to (L - 1). Other ranges of consecutive SUbscripts must be specified explicitly, as for example in ° REGISTER A( -1, ... ,L - 2). b) SYN (F,N) assigns the value N, which must be a positive integer, to the symbol F, which may then be used in register definitions and subscripts. c) CONNECT (EAQ(-I, ... ,38» = ES.A (0, ... ,19). Q( 1, ... ,19) permits the concatenation of registers. The registers on the right must have been previously defined but need not be full registers. In the example above, Q(O) is not part of the extended AQ register. d) EQUIV (FNCTN(O, ... ~9) = IR(3, ... ,13» labels (a part of) a register by another name and is thus the inverse of CONNECT. e) INTERFACE (ARITH) M,A,Q defines registers M, A, Q as interface registers in common between the current control and the subcontrol ARITH. The INTERFACE statement is similar to the FORTRAN COMMON statement but differs from it in two respects. First, several subcontrols in a machine may be operating simulataneously, which is not the case in present programs. Since the compiler would normally try to use existing registers for temporary storage, it must be aware of the interface registers which may be used by parallel controls. Secondly, for the convenience of the logic 255 compiler as well as for readability, the alternate control with which the register is shared should be identified. Interface registers must be dimensioned by REGISTER, CONNECT, or EQUIV statements, and must be referred to by the same names, in each of the subcontrols which share them. However, the order in which they are listed in the INTERF ACE statement is not important. 3. Instruction Decoding. The assignment of bit configurations for the various instructions is a task that is best left to the logic compiler. We therefore allow the design engineer to use mnemonics for instructions. There are two types of instructions involved. First we have the instructions that are to be decoded and obeyed by the current subcontrol. 'Second there are instructions to be given to other subcontrols (for example, main control may request a memory subcontrol to read or write a word). In the first case, we need to decode and jump to the appropriate control sequence. In the second case, we need only set up a configuration of bits in an appropriate register. In both cases, the function is undefined. We must, however, specify (to the logic compiler) the bits that are to be used to define the function. a) The format of the decode and jump statement is DECODE (IR(O, ... ,9» HLT, LLS, LRS, JMP, JAN, ... where IR(O, ... ,9) is (part of) a previously defined register and HLT, LLS, etc., are mnemonics which must appear as location field symbols in the main program. The DECODE statement is itself part of the main program since it serves as a multi-way branch, analogous to a computed GO TO. b) The format ofa translation (or decoder) statement is UNDF (IR(O, ... ,9» RM, WM. RMW Here IR is a previously defined register and RM, WM and RMW are' instructions to be passed on to other subcontrols. The system compiler generates a decoder for each such UNDF statement. Each decoder is defined in detail by the logic compiler. UNDF is a header statement. The mnemonics on the right of the parentheses in both statements must be single-valued Boolean functions of the bits that are enclosed within the parentheses. For example, consider the execution of the instruction REPLACE ADD MEMORY, which replaces the contents of the memory cell by the sum of the previous contents and the contents of the 256 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 accumulator. We need to set up first a READ MEMORY (RM) instruction and then a WRITE MEMORY (WM) instruction in the instruction register. of the memory subcontrol. If FN is the function part of the main instruction register, we cannot write UNDF (FN), RM, WM for RM and WM are not single-valued functions of FN alone. Some control flip-flop is also involved and must therefore be defined as REG ISTER CN (1) UNDF (FN, CN) RM, WM The symbols that are used on the right must appear exactly once in the DECODE statement of another subcontrol to permit correlation by the logic compiler. 4. Program Statements, which may contain a label, include the following types: a) Register Transfers. Tije gating of information from a register A to a register B is specified by B = A. The symbol on the right· must either be a register or an undefined function. Partial register transfers are indicated by subscripting. Gating is assumed to be parallel. b) Branch Statements. i) DECODE, the counterpart to a computed GO TO, has been discussed in the preceding section. ii) An unconditional branch is indicated by simply writing the symbol (without the words GO TO). iii) A conditional branch is indicated by IF (A(O) iv) = 1) JMP where the true exit is the statement labeled JMP, the false exit the next statement. The condition must be based on a single bit being 0 or 1. The WAIT statement is similar to the IF statement, except that the true exit is the next staterpent, and the false exit is the WAIT statement itself, e.g., WAIT (RQ = 1) permits the subcontrol to go on to the next statement only after RQ has been set to 1. c) SET and CLEAR permit individual bits, or entire registers, to be set to 1, or cleared to O. Sub:scripts are allowed. d) SUBROUTINE INSERTIONS a fie accomplished by writing the name of the subroutine, with the argument list in parentheses. Both library subroutines and programmer-defined subroutines are treated as macros. Subroutines may be called by their class name if the choice of the particular subroutine is to be left to the compiler. e) Subcontrols call other subcontrols through the statement CALL. Since subcontrols may be parallel or sequential (see the following section), and one would like to be free to define them either way by means of global headers, we provide thre:e formats for the CALL statement: CALLS SUB(RQ) CALLP SUB(RQ) CALL SUB(RQ) By convention the argument in parenthes,es (RQ) is the name of the request flag. The terminalls Sand P designate the CALL as sequential or parallel and override the global definition. In the simple CALL, the global definition prevails. In each case a string of statements which load interface registers follows the CALL statement, terminated by an ENDC. Consider the following example of a main control to core control CALL (Store Accumulator instruction): CALL CORE (MCRQ) MCAR = ADDR M=A MCIR = WM ENDC If the memory control is defined as sequential in the . global headers the compiler produces the microinstruction string GATE MCAR = ADDR GATEM = A DECODER 2 = WM CONNECT DECODER 2 to MCIR SET MCRQ WAIT (MCRQ = 0) If on the other hand the global definition states that the memory control operates in parallel with main control, the following microinstruction string 257 A PROPOSAL FOR A COMPUTER COMPILER results: WAIT (MCRQ = 0) GATE MCAR = ADDR GATEM=A DECODER 2 = WM CONNECT DECODER 2 to MCIR SET MCRQ 5. The Slash Notation. One of the most common operations in a computer is to read a word from memory into a register or store a word from a register into memory. Therefore we invent a special shorthand notation for this purpose. The notation /REG / refers to the memory location whose address is in register REG. Thus IR = /P/ states that the word whose' address is in the program counter P is to be read and loaded into the instruction register IR. Similarly /ADDR/ = A states that the contents of A are to be stored in the memory location whose address is in register ADDR. Naturally the compiler must be given the interpretations of the two statements by means of macro definitions. This macro is given the special name MEMORY. Since the memory address and buffer registers are unique to the calling program, this memory definition must be part of the calling program. Alternatively it may also be defined in detail in the global headers as a macro with a local macro MEMORY (calling the global one) defining the interface registers. PARALLEL AND SEQUENTIAL SUBCONTROLS As remarked earlier, a subcontrol is similar to a subprogram. Thus one intuitively expects to use some type of LINK JUMP (or RETURN JUMP). Since a subcontrol may be called from several places (in the same or different controls) it appears intuitively necessary to store the calling address in some register. If such a procedure were followed, the subcontrol would have to interpret the contents of this register and return to the calling point. The FORTRAN analog is the ASSIGNED GO TO. This technique is aesthetically unappealing since the subcontrol has to know the various points from which it can be called-an impractical procedure for library routines. Also the notion of a parallel subcontrol has no exact analog in subroutines. An interrupt subroutine comes close but a more exact analogy is the communication betweerr'two computers. In both of these cases, the standard communication technique is the use of flags rather than LINK JUMPs. Thus parallel subcontrols must be initiated into action by means of a flag flip-flop and must similarly indicate the completion of the action by a flag flip-flop. There appears to be no reason why these two flip-flops could not be the same. We label it the REQUEST flip-flop. By convention the CALL sets the REQUEST and the subcontrol clears it when it is through. One would like to be able to write library subroutines (subcontrols) with the parallel/sequential consideration. The executive program (or in our case, the global headers) should decide whether the subcontrol is to be used as a parallel or a sequential subcontrol. The REQUEST convention permits one to achieve this objective. There is one further distinction between parallel and sequential usage which must be mentioned. If a parallel subcontrol can be called from two (or more) other subcontrols t~en it should have two (or more) sets of interface registers and request flip-flops. If RQ 1, RQ2, ... are the different request flip-flops, then a subroutine can serve a fixed hierarchy of requests by the statement WAIT (RQl + RQ2 + = 1) where + denotes the Boolean OR. Similarly, a scanning procedure can be arranged by using a string of IF statements. In order to make it possible to write library subroutines independent of the number of requests, a simple extension of the INDEFINITE REPEAT feature of macro compilers may be used, with the necessary information carried in the library call. In a sequential subcontrol multiplicity of interface registers is not necessary. It may be used without harm, of course. We may finally note one distinction between intercomputer communication and parallel subcontrols. If two computers are tied together, either computer may request action by the other (and conflicts are somehow resolved). In our case, however, the standard hierarchical structure of programming must be observed. If subcontrol A can call on sub0' 258 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 control B, subcontrol B may not call on subcontrol A. Thus the problem is simpler. TIME AND CONTROL HIERARCHIES We have implicitly noted that there are two notions of hierarchy among. subcontrols. The different subcontrols form a partially ordered set under the relation of extended CALL. As in conventional programming we insist that this relation define a true partial ordering. Beyond this fact, however, we ar~ not too concerned with this logical hierarchy. A second partial ordering, which is not ab initio a partial ordering but may be converted into one, is by time of operation. If two subcontrols may operate at the same time they are at the same level in this partial ordering independent of the logical hierarchy. They are parallel subcontrols in our earlier terminology. Consider for example a main control, a buffered input/output subcontrol and a memory subcontrol. Since I/O is buffered, it may operate at the same time as main control. Since the I/O subcontrol may call on memory subcontrol, the memory subcontrol may operate at the same time as main control. Thus the logical hierarchy is that shown at the left in Fig. I, :while the time hierarchy is the one shown at the right. piler. Subcontrols are complete subprograms but are processed according to macro conventions, that is, they are stored in source language with dummy dimensions and dummy register names. They may contain such macro features as "indefinite repeat," "If True," "If False," etc. An example of the library call for such a library subcontrol is ARITH LIB AC5(A, Q, OV, N) where AC5 is the identifier of the library routine, ARITH is the name assigned in the machine, A, Q and OV are registers and N is the dimtmsion (defined in global headers). It is sometimes necessary to label the "next statement while using the indefinite repeat directive. An example is a "scanner" which services requests in sequence. For this purpose we introduce the CONTINUE statement. An example follows: SUBROUTINE CORE (RQ, Ml, MAD, MI, ct, AL. WL) REGISTER MAR (AL). MBR (WL) IRP (RQ, MI, MAD, lIT, Cl) REGISTER RQ(!). M(WL). MAD(AL). MI(!) IF (RQ • 0) C! DECODE (MI) RD. WR MAR. MAD HI - MBR • CLEAR RQ C! MAR' MAO MBR - HI CLEAR RQ C! Figure 1. Hierarchy of subcontrols (Hasse diagrams): Logical (left); Time (right). (Formally, "parallel" is a binary relation which we extend by transitivity. The partial ordering relation in the time diagram is "not parallel, and below in logical ordering.") THE LIBRARY The library material for the compiler should contain two classes of programs: subroutines and subcontrols. A subroutine is an "open" subroutine or a macro. Algorithms for arithmetic operations, incrementors, etc., come under this category. These algorithms are divided into- types and are called by type names; the detailed choice is left to the com- If there are three controls which wish to use~ this memory control in parallel, one may use the library call LIB CORE «RQI, Ml, MAl, MIl,), (RQ2, M2, MA2, MI2,), (RQ3, M3, MA3, MI3,), AL, WL) In the subroutine, .CORERD and .COREWR are library subroutines which set up the signals for reading and writing core memory . We note that C I is a repeated argument which has not been specified in the library call. Hence it becomes a cn~ated symbol, a different symbol for each repetition. On the other hand, STM is not an argument. Hence this symbol is assigned to the first occurrence. The repetition IRP uses simultaneous substitutions for all arguments. (This is the simple extension ref,erred to earlier.) The CONTINUE statement is not 259 A PROPOSAL FOR A COMPUTER COMPILER translated; its label is assigned to the "next" microinstruction. It is easily verified that the "IF, CONTINUE" arrangement in the subroutine is in fact a scanner. THE MICROLANGUAGE (OUTPUT LANGUAGE OF THE SYSTEM COMPILER) The output of the system compiler is a preamble followed by a string of microinstructions. The preamble contains the information necessary for the logic compiler. Wherever possible, one would like to perform microoperations in parallel. For this purpose the system compiler will associate an ordered-pair level index with each microinstruction and specify in the WAIT field the ordered pair indices of the microsteps which must be previously completed. Thus the output becomes a description 'of the flow diagram. The micro language is permissible in the source program as well (without the ordered-pair indices, of course). In fact, arithmetic algorithms have to be written in microlanguage. In the source program a switch to the micro language is initiated by SAMPLE DESIGN OF A SMALL DIGITAL SYSTEM In order to demonstrate the versatility and power of the input language, we present here the system design of a small digital computer with a sequential arithmetic subcontrol and a parallel input/output subcontrol which handles one-word transfers to and from memory. The card format is essentially that of FORTRAN. A detailed discussion of the example will be found in the foHowing section. The register layout and data paths are shown in Fig. 2. ARITH II -MICRO and terminated by -COMPILE. Data from· All arithmetic operations in the microlanguage are Boolean. The conventions are A+B A OR B (-A) NOT A (outer parentheses essential) A AND B A EXCLUSIVE OR B A *B A(+)B Other operations can be added later. Subscripts are allowed, and the RANGE of symbolic subscripts may be specified. An equality sign denotes a definition. If the variable on the left is a flip-flop, the quantity on the right decides whether the flip-flop is set (1) or cleared (0). Otherwise the equation is taken as a signal definition (decoder output for example). Other microoperations (all self-explanatory) are: ext devices Figure 2. System layout and data paths in the sample computer. MACHINE CSLIAC * GLOBAL HEADERS SYN (WL,20), (DWL,39) , (AL,IO), (FL,IO), (AAL,5) , • * * * LENGTHS OF REGISTERS ARE DEFINED AS FOLLOWS: WI.. SINGLE WORD, DWL. DOUBLE WORD, At • ADDRESS, FL • FUNCTION, AAL • ARlrnHETIC ADDRESS, AFL. ARI'rIDIETIC FUNCTION. IOFL. INPUT/OUTPUT FUNCTION, CFL • CORE MEMORY FUNCTION PARALLEL (MAIN, 10), (MAIN, CORE), (IO, C .,/ INPUT CARD DECK /' .,/ SELF LEVELING PICKER KNIVES PIVOT ASSEMBLY FLEXURE ASSEMBLY Figure 2. DETAIL Flexures vs pivots. Comparison of flexure springs and pivots applied to the same card feed picker knife assembly. Parallel Motion Flexure vs Slides Mechanical elements which normally require slides to provide parallel motion can be greatly improved by using parallel motion flexure springs. As noted previously, slides are not very high on the preferred list of mechanical motion. It is very difficult to prevent metal-to-metal rubbing contact and the system is usually very dependent upon lubrication. By using parallel flexure springs (Fig. 3) it is possible to completely eliminate sliding friction, lubrication, and heat. In addition, the system will never develop play or clearance during its operating life. ing deviation from a true straight line motion is 0.002 inches. Sealed Ball Bearings vs Sleeve Bearings Sealed ball bearings usually result in a higher product cost than simple sleeve bearings. It is our belief that this additional cost is easily offset by reduced maintenance. The total cost of the downtime for a failed bearing will probably pay for the additional cost of providing ball bearings throughout a machine. Sealed ball bearings in most applications have the added advantage of requiring no 302 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 MOUNTING BASE SLIDING BE)~RINGS PARALLEL MOTION FLEXURES Figure 3. Parallel motion flexures vs slides. Comparison of two methods of supporting and guiding an assembly which is in reciprocating motion. field lubrication, having very low friction, producing very little heat and possessing constant characteristics throughout their life. Sealed ball bearings are good examples of "off-the-shelf" mechanical components in which a solution to all the problems of metallurgy, surface finish, and lubrication required for a predictable life has already been found by the bearing manufacturer. Eccentrics vs Cams and Followers Cams and followers (Fig. 4) have the desirable characteristics of being able to convert rotary motion into controlled reciprocating or linear motion. Cams and follower systems in our applications, unfortunately, have many undesirable characteristics. For example, since the basic shape of cams and followers is cylindrical, the contact between the two is essentially a line contact. While this is somewhat modified in practice by the elasticity of metals, the fact remains that the unit pressure can be exceptionally high. A single cam and follower provide positive drive in one direction only and must rely on a return spring for drive in the opposite direction. A system with two cam surfaces to provide drive in both directions may eliminate the return spring, but in so doing must become a very precise assembly. Other:disadvantages of cams and followers are that they require lubrication, and bearing problems sometimes develop because of the exceptionally high speed of the rather small diameter cam follower. To date, we have found it possible to provide all our reciprocating drive needs by using sealed ball bearings in eccentric drive systems. This allows designs with no lubrication, no return spring, low unit forces and "off-the shelf" package assemblies. The time displacement curve of an eccentric system is normally very close to a sine wave. In our applications we have found this potential disadvantage to be a very minor price . to pay for the many advantages. Flat Belts and Pulleys vs Gear Trains Gear train power transmission systems providing rotary motion to a number of shafts characteristically have the disadvantage of requiring vt~ry accurate shaft center locations, lubricants and relatively high-cost components. Modern, thin, flat nylon belts running on smooth pulleys (Fig. 5) solve many of these problems. The cost of the entire system is much lower, center locations are much less criti1cal, the system requires no lubrication, and problems of tolerances of all kinds can be absorbed in one spring-loaded belt-tightening idler. The life of a properly designed system of this type is exceptionally long. The reason for this is that the be:lt is very thin and pliable and readily wraps around the var- 303 A NEW LOOK IN A PERIPHERAL EQUIPMENT DESIGN APPROACH SUPPORTING BEARINGS COUPLING SUPPORTING BEARINGS "- ......... ......... < PARALLEL MOTION FLEXURES Figure 4. /" ~ ....... ....... Eccentrics ys cams and followers. Two methods of applying controlled driving power to a reciprocating assembly. GEAR TRAIN IDLER GEARS Figure 5. Flat belts and pulleys vs gear trains. Shown on the left is an actual fiat belt system used to drive rolls in a card transport system. A possible gear train drive is shown on the right. 304 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 ious pulleys. It can be guided by one or more crown pulleys, and therefore, is not in rubbing contact with any element. A drive system of this type, it might be argued, has the disadvantage of not being synchronous., One answer to this is to make the entire machine asynchronous-which is no handicap. If this cannot be done, a timing belt can be employed as discussed below. Timing Belt vs Gear Trains Toothed belts or timing belts are a very satisfactory substitute for gear trains when it is necessary to rotate two or more shafts in synchronism. While the timing belt may not be as precise as certain highquality gear trains, it appea'rs that they are completely adequate in our applications. The timing belt has many of the same advantages over gear trains as does the flat belt. For example, it does not require lubrication, it is not sensitive to wide tolerances on shaft centers, and all tolerances can be absorbed by a single spring-loaded or adjustable idler. Moving Coil Motors vs Clutches and Brakes The introduction of moving coil motors has perhaps been as close to a breakthrough in the electro- --- ....~...... mechanical component field as anything known. This is a DC motor in which the rotor consists of a very-low-inertia copper coil. The coil can be either a disk or a cylinder. This type of motor has many desirable characteristics: very high torque .. toinertia ratio, low inductance, does not saturate (air core), operates on low voltage and is very compatible with solid-state driver systems. Also, bc!caust: of low voltage and inductance, it produces very little brush commutator arcing. We have founcl that all functions normally provided by a clutch and brake system can be easily accomplished by one or more of these motors in a servo system. The degree of servo sophistication depends entirely on the application. A motor in this application has many desirable characteristics such as no high-friction suffaces, no impact of mechanical parts, no change: in operating characteristics throughout life. In addition, it provides its own power. Figure 6 shows the simple paper-feed drive system that can be used in a high-speed printer in place of the typical clutch and brake. Depending on the servo system, it can provide not only start and stop functions, but also variable speed and can operate in either direction. This is one of the prime examples of the way in which it is possible to exchange typically troublesome electro-mechanical elements with their many UPPER PAPER FEED SHAFT LOWER PAPER FEED SHAFT ~ DRIVE MOTOR ,I ! LMOVING COIL MOTOR TACHOMETER DRIVE BELT ~ a PULLEYS Figure 6. CLUTCH a BRAKE ASSEMBLY Moving coil motors vs clutches and brakes. Two drive bystems to supply controlled drive to the paper feed section of a high-speed printer. A NEW LOOK IN A PERIPHERAL EQUIPMENT DESIGN APPROACH moving parts to a highly electronic system which has only one moving part-a simple low-inertia armature operating in simple rotary motion on sealed ball bearings. Moving Coil Motors vs Indexing M echanis,ms The same moving coil motor discussed in the preceding paragraph can also be used to great advantage as a substitute for very complex indexing mechanisms which require very long development times because of the many problems of metallurgy, surface finish, and lubrication. Even if the complex mechanism problems are reasonably well solved, providing a device with a trouble-free life, it would still leave something to be desired. A moving coil motor can frequently provide the same indexing function with the additional advantage of very long trouble-free life, plus additional control features such as interruptions of the indexing function for indefinite periods and the substitution of continuous motion at various speeds, even in a bidirectional mode. EXAMPLES OF GOOD DESIGN PRACTICES Following are a few examples of good design practice rules which have been applied: Subassembly vs Ship in Bottle. It is our general rule to make a subassembly of critical inter-related parts so that they can be bench, assembled, bench tested, or bench repaired. This may seem like a very obvious design goal, but, unless it is stated, it sometimes becomes obvious too late. Multi-Motor vs Complex Drives. We have found that it is very often desirable to use several drive motors in a single machine rather than develop a very complex drive to transmit power over large distances. This is perhaps somewhat analogous to the change in power distribution in a manufacturing plant since the days of a system consisting of overhead line-shafts with the power coming from a single large steam engine. Today, this job is accomplished by small individual motors added to each device requiring power. Because of the mass production of fractional horsepower motors, we have found it possible to buy motors for less cost than that of custom-made hardware to transmit power over distances or around corners. The multimotor drive of a machine also provides the opportunity for a more flexible control during start up, shutdown, or test modes. 305 Avoid the use of Glue, Cement, and Tape in Assemblies. This may sound like a very odd recommendation in this age when so many successful products make extensive use of these techniques. Again, it must be stressed that this guide is recommended for the design of equipment to be manufactured, serviced, and used in a data processing environment. The successful application of modern cementing techniques is a very specialized business and can only be accomplished if everyone is fully aware of the critical quality control problems. Another way of stating the problem is that because of the limited production quantity and the multitude of parts and assembly problems that must be solved, it is very dangerous to assume that the quality control aspects of an assembly requiring cementing will get proper attention. A void Trapped Belts. Since we have eliminated gear trains and have gone to the use of belt drives, our machines will characteristically have several fairly complex belt drives. We have found without exception, that if the design is started with the idea in mind that the design should avoid trapped belts, it can be accomplished. In all of our machines, any belt can be replaced without tools. SUMMARY Four Product Lines The success of the program can be stated very simply. We have in quantity production four new product Jines. Three are considered basic peripherals. This nOw permits our division to ship complete computer systems with all units manufactured in-house. Success of Design Approach Rules The tabulation of Fig. 7 shows the degree of success in both eliminating moving parts and in doing more things electrically and fewer thingsmechanically. The chart lists a number of machine elements and discusses the typical solution vs our method. It is difficult to do this comparison in a completely unbiased way. We believe that the chart shows a significant difference resulting from our design approach decisions. Sometime after we had made the decision to use an "expensive" moving coil motor system in the paper feed area of our high-speed printer, we noted that the parts costs were being reduced and that with continuing development work, the entire sys- 306 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 tern was being simplified. Finally, we decided it would be interesting to make a cost comparison between the new moving coil approach and our old clutch and brake design. To our very pleasant surprise, the parts costs turned out to be almost identical and because of the mechanical simplicity of the moving coil motor system assembly, labor cost was actually lower. In summary, then, the effect of the rather high design approach goals can be stated as follows: Of the four peripheral product lines presented, none of the machines contains operating gears, * cams or followers, clutches or brakes, mechanical indexing mechanisms, trapped belts, linkages, and none of the machines requires lubrication. A ttainment of Specifications Goals 1 Each of the four product lines fully met or exceeded the specification goals because of the more flexible design approaches. In some cases, the specifications can still be revised upward. It is also pleasant to note that, again because of the flexibility of the design approach, future additional improvement in performance can be obtained from each of the machines by a relatively small additional development effort. Reliability Goals The story of the success or failure of reaching the reliability goals is still being written. There is nothing to date to indicate that any of the design ap• At the present time, some "off-the-sheIP' small, sealed gear head motors are in use. They do not require field lubrication. CARD PUNCH ELEMENTS ACTIVE COMPONENT SUMMARY COMMENTS ON • COMPETITIVE PUNCHES ALL HAVE GEARS. ONE KNOWN MAKE HAS AS MANY AS 43. GEARS a CAM FOLLOWER SYSTEMS a CLUTCH BRAKE SYSTEMS MECHANICAL INDEXING SYSTEMS SLIDING ELEMENTS (IN ADDITION TO PUNCHES IN GUIDES) PIVOTS I a LINKS (IN ACTIVE OPERATION) a HONEY WELL PUNCH 0 ALL HAVE CAM FOLLOWER SYSTEMS SOME AS LOW AS TWO, UP TO AS MANY AS 26. 0 RANGE FROM ONE TO TWO. 0 THE COMMON METHOD OF INDEXING, A CARD FOR PUNCHING. 0 THE COMMON SOLUTION IN PUNCH BAIL, STRIPPER BAIL, CARD FEEDINCI, AND OTHER AREAS. IN GENERAL USE THROUGH-OUT. UF' TO FOUR PER INDIVIDUAL PUNCH INTERPOSER SYSTEM. 0 0> BELTS RANGE FROM NONE TO A DOZEN WITH SOME TRAPPED. 4- FLEXURES RANGE FRON NONE TO A FEW. I( SERVO SYSTEMS NONE KNOWN .2: LUBRICATION AREAS RANGE FROM AN OIL BATH CRANK-' CASE TO 30 AREAS SOME OF WHICH ARE IN SETS OF 80. 0 TRANSISTORS RANGE Figure 7. 300- 500 80 o Comparison of card elements, showing effect of design approach. proach decisions were anything except extremely· sound. ACKNOWLEDG MENTS This paper has reported on what is beli,eved to be an important advance in the design approach of peripheral equipment. The author wishes to thank the many individuals and groups for thdr contributions in making the effort a success. A SERIAL READER-PUNCH WITH NOVEL CONCEPTS David W. Bernard, Frank A. Digilio, Frank V. Thiemann, and Ronald F. Borelli Honeywell ED P, Terminal Equipment Group Waltham, Massachusetts INTRODUCTION A card punch traditionally has been looked upon as a machine which is composed of many complex and ingenious mechanisms because of the complex task that it must perform. Complex mechanisms, however, have an ingenious way of making noise, . being unreliable and difficult to service. An attempt has been made to break away from the historical approach, by taking a new look at the real requirements and producing a design using novel electromechanical and electronic components which avoid many of these difficulties. Some of the design considerations are presented here. While the total engineering program capitalized to a large extent on a concurrent card reader development, this reader-punch development included all engineering phases from feasibility study through production models and reliability studies. The success of the program can be attributed in large measure to the use of "off-the-shelf" mechanical components with known life and reliability, and the use of solid state electronics and new motive devices and actuators to perform functions formerly satisfied only by mechanical devices. Figure 1. The Honeywell 214 Reader-Punch The basic card transport, input hopper, read station, and stacker of this machine are modeled after and use parts common to the Honeywell high-speed card reader which was under development at the same time. A card is picked from the input hopper, and fed broadside into a wait station. From here it is fed serially through a read station, then through the punch to a cornering station where it is kicked THE SERIAL READER-PUNCH The Honeywell 214 Serial Reader-Punch reads at 400 cards per minute or reads and punches at 100 to 400 cards per minute depending upon the number of columns punched. See Fig. 1. 307 308 PROCEEDINGS~SPRING JOINT COMPUTER CONFERENCE, 1966 Figure 2. Transport with punch head removed. "on-the-fly" into rollers for broadside power stacking. Figure 2 shows the transport with the punch head removed. Card motion is left to right. Inp~t Hopper The input hopper has a capacity for 1200 cards and is tilted slightly away from the operator completely exposing the front side for easy card loading. Cards are selected or picked on demand (asynchronously) by a flexure-mounted picker knife under the control of a high performance servo system in lieu of the conventional clutch. The picker knife system is shown in Fig. 3. Use of flexures for articulating the knives, pivoting the arm, and connecting to the drive crank should be noted. Sealed bearings are used at the crank pin and in the moving coil servo motor. Motor acceleration and deceleration are controlled by an SCR reversing bridge, via a tachometer generator and differential amplifier. The rest position of the picker knivf:s is determined by photoelectric detection of the motor shaft position. Cards enter feed rolls and are driven into the wait station. These continuously running feed rolls and all others associated with the transport are powered by nonsynchronous induction motors through noncaptive flat belts thus eliminating the need for gear trains and lubricants as well as the close tolerances associated with fixed-center shafts. From the wait station, card motion in a serial or column by column manner is initiated by a solenoid actuated pinch roll operating against a continuously running capstan. Read Station Figure 3. Picker knife and drive system. Additional feed rolls continue the card through the read station at 44 inches per second. These are belt driven and are part of the read station subassembly. The read station consists of 12 solar cells for reading the data and additional cells for strobe generation from the trailing edge of the card. A single projection lamp provides nearly uniform illumination over the entire surface of the card. As the trailing edge of the card uncovers apertures over the strobe cells, a staircase waveform is generated corresponding to the column llocations. Since the trailing edge is continuously referenced, A SERIAL READER-PUNCH WITH NOVEL CONCEPTS strobe pulses are unaffected by minor changes in card velocity resulting from slippage or eccentricity of drive rolls and tolerances are noncumulative. To allow for scored cards, that is cards perforated for later separation, a continuous strip cell for all 80 columns is not used, but rather is divided into 8 segments, each with 10 apertures, arranged to become active sequentially under the control of an associated gate or guard cell ~hich is wide enough to be unaffected by the score in the card. A wide variety of trailing edge cuts are accommodated by a mechanical shutter that switches active apertures between card rows 6 and 7, and 7 and 8. 309 providing %-in throw at the card. A complete excursion occurs in 30 msec. Card edge damage is negligible because the accelerating force is applied gradually to the entire length of the card. Since the transport is asynchronous, the card itself is constantly tracked by photocells, and logic conditions are established to determine the next operational sequence or error conditions. For instance, failure to stack, in either the normal or reject modes allows the card to travel to the end of the transport where it signals an error condition and the transport shuts down before a jam occurs. Punch and Drive Stacking From the punch station which is described below, the card is transported via a flat belt to a second cornering station where it is sensed by photocells for regular or offset stacking. The card is kicked "on-the-fly" into broadside stacker rolls. Figure 4 shows a card leaving the punch station, and another entering the broadside stacker rolls. The kicker is an armature type solenoid with a self-damping multiple layer flexure plate attached. The design keeps the operating air gaps short while The punches are driven by an eccentric shaft continuously rotating at 4800 rpm. The shaft is flexure coupled to a flexure mounted bail imparting nearly linear motion to the punch interposer carried by the bail. See Fig. 5. Figure 5. Punch head. Figure 4. Punch and stacker area. This eliminates cams, cam followers, and rotary pivots. It is estimated that if a cam and cam follower were used in this system, the follower would rotate at speeds in excess of 25,000 rpm, or if a sliding follower system were used a lubricant would be necessary. Every effort has been made to eliminate the need for lubricants throughout this device, including the area subject to most sliding motion and wear and the collection of abrasive paper dust -the punch and die itself. A two-column punch has been designed in order to keep the speed of the eccentric shaft at half of what it would be for a single column punch with the same throughput and little additional complexity elsewhere. Flexure spring pivots are used throughout to eliminate rotary pivots which are susceptible to fretting corrosion when experiencing small oscillatory motions (Fig. 5). A properly de- 310 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 signed flexure spring for this application has a fatigue life of billions· of cycles. This is borne out by representative samples of these flexures tested for over 1Y2 billion cycles without failure, exceeding by faT the expected useful life of the machine, under average operating conditions. PUNCH SELECTION MECHANISM INSIDE PREf7 INTERPOSER Stripping Mechanism After punching, selected punches must be withdrawn and returned to a rest position. The device which does this is known as a stripper. A precise timing relationship must exist between the punching and stripping actions. While this can be accomplished by the use of gears and cams, this design has avoided these components by making the stripper an integral part of the eccentrically driven punch mechanism. On the downstroke, the eccentric drives only the selected punches through the card. On the upstroke, the common stripper simultaneously withdraws all previously selected punches. Thus proper timing is achieved automatically and phasing adjustments are not required. (Fig. 5). Punch Selection Mechanism The heart of the punch selection mechanism is a simple flexure spring which serves as both the armature of the selecting solenoid and the mechanical punch interposer. There is one for each of the 24 punches. This interposer is mounted on the stripper bail between two preformed beams (Fig. 5). In the nonpunching position, it rests against the outside preform where it cannot contact the top of the punch. In the selected or punching position, it moves to the inside preform where, on the next downstroke, it makes contact with the top of the punch (Fig. 6). As punching load is applied, the thin interposer is reinforced by the stiff inside preform. The flexure thus acts like a rigid column and transmits the required punching force without buckling. Since both preforms and the flexure have a common point of attachment, there can be no relative sliding motion between them and therefore no wear. The deflected beam preforms are used here to avoid the manufacturing problems inherent in contoured machined parts. Since the interposer is carried by the reciprocating assembly and selection is done magnetically, the relative motion which normally exists between the reciprocating and fixed members and results in mechanical wear has also been eliminated. The interposers are held in a normally nonpunching position by a permanent magnet. Because of their initial preload, the interposers NON PUNCH\' PUNCH Figure 6. Punch selection mechanism. move to the punching position, when the fi'eld of the permanent magnet is reduced by an electromagnet. This punch selection system has only one moving' part, the interposer, which does not slide, pivot, or impact. The change of the interposer from the nonpunch to the punch condition occurs at the top of the stroke when a clearance is established between the punch and the interposer. There is no impact between the interposer and the punch because the action occurs very near the top of the stroke where the velocity is essentially zero. Punch Head Accessibility The punch head mechanism can be opened by an operator to clear card jams in a matter of seconds (Fig. 7). This feature is provided by splitting the punch head at the junction of the die and punch guide. In this case, the increased manufacturing cost of splitting the head is justified on the basis of reduced maintenance cost and increased uptime and throughput. Punch Check In a punch of this type a means is generally provided for verifying that correct punching has occurred. Short of reading the card immediately after punching, which is an unwarranted expens1e, a check on the motion of the punch or its actuator can be incorporated. Several methods of checking this punch were considered and rejected. Mechanical contacts were rejected as being unreliable and prone to failure because of wear. An echo check generally involves sensing the position of the actuator armature at a specific time during the cycle. This was rejected as being too far removed from the actual punching and difficult to implement for this particu- A SERIAL READER-PUNCH WITH NOVEL CONCEPTS 311 Figure 8. Punch check cores and punch with magnet attached. Figure 7. Punch station, punch head open. lar interposer. Reluctance pickups would detect the motion of the selected punches, but signals would be small because of the low velocity, and peak output would occur at midstroke before the punch pierces the card. The method selected is a fail-safe position detector which senses the punch at its maximum excursion fully through the card. With this device the position of the punch is actually sensed and checked against input data when the tip of the punch has gone through the card and into the die. Attached to the shaft of each punch is a tiny permanent magnet with a field strength at its surface of about 500 gauss. Mounted adjacent to each punch is a ferrite memory core which can be saturated by an external field (Fig. 8). When the punch is in the up position, its magnet has negligible effect on the core. When a punch is selected, the permanent magnet moves closer to its associated memory core and saturates it. Each core has single turn primary and secondary windings. The primaries are excited by a common alternating carrier current. The secondaries are connected to peak voltage detectors. In the nopunch position, the core functions as a transformer, coupling the carrier signal from the primary to the secondary. At the bottom of the punch stroke, the permanent magnet saturates the core decreasing the primary signal coupled to the secondary winding. The resulting null in secondary voltage causes the detector circuit to generate a logic signal indicating that the punch has pierced the card. While the detectors operate continuously, their outputs are sampled only when the punches are in the card. The punch check logic is such that operation of unselected punches, or failure of selected punches creates an error signal. This is an extremely simple punch check system and appears to be the safest alternative to a post-punch reading of the card. INDEXING Indexing mechanisms fall into four general groups: 1. Clutched pinch rolls 2. Gated stop units 3. Oscillating pushers 4. Geneva and similar type mechanical indexes The inherent advantages and disadvantages of these mechanisms can be summed up as follows. 1. Clutched pinch roll: a) Wearing clutch face, latches and sprocket teeth. b) Good control because the tabulating card is always gripped and under control of the rollers. 2. Gated stop unit: a) Many moving and pivoting parts. b) Card edge damage. c) Tabulating card can be ejected. 312 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 3. Oscillating pusher: a) Card edge damage. b) Lacks positive card control. 4. Geneva and similar type mechanisms: a) Wear. b) Backlash. Because of the many disadvantages of these and similar devices, a simple servo system was designed using a high-performance moving-coil motor to drive the card pinched between a pair of index and idler rollers. The card can be indexed for punching well within the tolerances specified for the card, or skipped at high speed between columns. The card also can be transported through the punch (for read-only modes) or ejected after punching is complete. The coincident development of this moving-coil motor was a significant factor in the successful design of the indexing system which can step the card 0.174 in 80 times/sec and skip at 100 in/sec. The motor used has a torque per ampere constant of 6 oz in/amp and a moment of inertia of 50 x 10- 5 oz in sec 2 • Since the load inertia consists only of the card, the steel index and aluminum idler rolls, their connecting shaft and tachometer, an exact inertia match with the motor is possible (Fig. 7). The elimination of armature iron in the motor gives the low inertia, inductance and high torqueto-inertia and high torque per ampere ratios that provide an ideal marriage between low-power. solid state control circuitry and the indexing requirements. Servo System The servo system used in the reader - punch to index a card through the punch head is a precision velocity servo as shown in Fig. 9. A velocity servo is used in lieu of a position servo because it performs the indexing task with accuracies well within the specified tolerances without requiring the use of expensive feedback elements such as resolvers, synchros, etc. Under the control of this velocity servo, a card is moved a distance of 0.174 in (two columns) in 5 msec a maximum of 39 times per card by means of a set of driving rollers, directly coupled to the motor shaft without any intervening belts, gears, etc. Zero backlash and faster response are attainable by this direct drive system. All timing relationships and synchronization within the punch head are derived from the con- VELOCITY SERVO CONTROL. LOOP ELECTROMAGNETIC PICKUP I I PUNCH STROBE I ....B_L_O_C_K_ _ _ _---.III ADVANCE PULSE I S f-- FLIP FL.OP STOP PU LS E R o ---------------------------------------LEVEL ADJUSTMENTS _:_~_:_H_Ss_pp_EE_E:_D_R. . ;.:-=:_:~:E.;. . c.RN=-E:~:-'-'E"'---I~~ SUMMING AMPLIFIERS I + I f I I I I I I I I I l r------- Q HONEYWE:LL SERVO MOTOR DC TACHOMETER Figure 9. Velocity servo control loop. tinuous running eccentric drive shaft by an electromagnetic pickup. This pickup generates an advance timing pulse (A TP), the signal to begin advancing from one punch position to the next as well as the punch timing pulse (PTP), used to synchronize selection of the interposers and the punch check timing pulse (ETP). The punch strobe pulse which initiates the stopping of the card is generated from a photo electric sensing block having 40 apertures, one for each of the 40 stop positions. As a card passes under the strobe block, the trailing or registering edge of the card uncovers an aperture, generating the brake pulses to position the card for punching the next two columns. Because of continuous strobing of the trailing edge of the card, each increment and its associated positional tolerance is independent of the previous increment and therefore any error is noncumulative over the length of the card. A card enters the punch station at a speed of 100 in/sec, is picked up by indexing rolls and its speed reduced to 44 in/sec. When the trail- 313 A SERIA,L READER-PUNCH WITH NOVEL CONCEPTS ing edge of the card is sensed by the first photocell, a brake'pulse is generated and the card is registered. Subsequent synchronization between punching and indexing is controlled by the electromagnetic pickup on the continuously running punch eccentric. The timing relationships can be seen in Fig. 10. --® (f) ..J ..J lLJ (.) g 0 :I: a.. CHECK PULSE (ETP) PUNCH PULSE (PTP) ADVANCE (f) a:: lLJ li: ::J a.. :E oct lLJ a:: a.. PI) LSE (ATP) ADJUSTABLE DELAY MULTIVIBRATOR -@ STOP PULSE TO SERVO TIMING RESET----t PHOTOCELL SELECTOR Figure 11. Punch strobe logic. Figure 10. Punch timing diagram. Punch Strobe As in the read station, registration of the card for punching is controlled by photocell detection of the card's trailing edge~ Strip cells are arranged behind a mask with 40 apertures, and illuminated by the single projection lamp. No lenses are used. As a card approaches the first punching position, all 40 apertures are covered by the card. As the trailing edge of the card uncovers the apertures, a staircase current waveform is generated by the photo cell. Each step of current is amplified and differentiated. The output of the differentiator triggers a multivibrator whose output signals the servo system to stop the card. The card waits until the first column pair has been punched. The servo is then restarted and the card advanced until its trailing edge uncovers the next aperture, apd so on (Fig. 11). Only one cell is connected to the differentiator at any given time. The stop pulses are counted by a scale of 40 counter. Output gates from various stages of the counter select the cell which is connected to the differentiator. In effect, the counter tracks the cards down the row of apertures. Every time the card exposes the last aperture of a cell, the counter gates off the exposed cell and gates on the next cell. Using only one photocell at a time allows the punch to handle cards which have been scored or perforated for tear-off stubs. An adjustable delay multivibrator between the photo cell circuits and the indexing servo allows the card to travel a short controllable distance beyond the point where the trailing edge is sensed. This electrical vernier provides adjustment of the location of the card relative to the die and eliminates the need for a fine mechanical adjustment such as a lead screw, with its problems of backlash and possible loss of adjustment with vibration. ServO' Control The way in which the velocity servo controls the card from position to position within the punch head can be followed by referring to the block diagram, Fig. 9, and the series of timing pulses, Fig. 10. An advance timing pulse triggers a voltage refer- 314 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 ence level providing the input to the summing amplifiers. The output of the summing amplifier is fed to the power amplifier which drives the motor. The motor begins accelerating the load to the velocity established by the voltage reference, driving the tachometer which in turn feeds back a negative voltage to the summing amplifier. This voltage is proportional to the rotational speed of the motor. The motor and load accelerate until the feedback voltage of the tachometer is equal to the input voltage reference. At this point, acceleration ceases and velocity remains constant at 44 in/sec. The acceleration from zero to 44 in/sec is accomplished in less than 1 msec. The constant velocity level is maintained for about 3 msec until a strobegenerated stop pulse drops the voltage reference to zero. Consequently, the summing point is negative since the only signal present is the feedback voltage from the tachometer. The power amplifier is now conditioned to decelerate the motor and load to a stop. Deceleration time is less than 1 msec. The card is now registered within the tolerance required for punching. The total time for indexing and punching is 12.5 msec (80 cps) with 5 msec for indexing and the remainder for punching. In the block diagram, a second summing amplifier and voltage feedback loop are shown. The purpose of this loop is to achieve the proper gain and reduce the servo "dead zone" for optimum response. The constant velocity level is of extreme importance in this servo system because positionai accuracy depends upon the motor and load braking from the same velocity for each increment. The specified tolerance for punch hole registration relative to the trailing edge is ±0.007 in. The two-column punch design permits this velocity level to be considerably lower than that which would be required of a single-column punch with the same throughput. An additional advantage is found in the reduced wear on component parts. In the voltage reference level area of the block diagram (Fig. 9) a high- and low-speed level distinction is indicated. In the above explanation, reference to either input voltage or constant velocity relates only to low speed, 44 in/sec. The high speed is used for ejection when punching is complete and in a read-only mode, for transporting cards at 400 cards per minute without indexing. It is also used in the high-speed skip feature described below. High-Speed Skip Feature This particular feature is unique in that it permits high speed skipping between columns while punching. Skipping is performed automatically without requiring any special program routine and is accomplished by two logical functions-searching for blanks (SFB) and blanks found (BF). The control logic sends out two pulses, one for each column to be punched, requesting data and simultaneously checking for blank columns. As long as blanks are found in both columns the card moves at high speed. When blanks are no longer signaled the indexing system immediately drops from the high speed to the low speed and resumes normal indexing. Registration after a high-speed skip is maintained with the same degree of accuracy as a single increment because the low speed of 44 in/sec is resumed two columns prior to braking. CONCLUSION This paper has described a card reader-punch designed around mechanical components of proven reliability. The use of electrical functions to replace troublesome mechanical operations has n~sulted in a much simpler mechanism than found in conventional machines of this type. Additional advantages are increased operator convenience and reduced maintenance requirements. ACKNOWLEDGMENTS The authors wish to acknowledge the Icontribution of the development team whose talents have made this effort successful, in particular Messrs A. B. Ragozzino, R. Carman, C. H. VVang, P. Nelson and J. Rae, and E. G. Hazle for hils help in the preparation of materials for the present paper. THE IBM 2560 MULTI-FUNCTION CARD MACHINE Chester E. Spurrier IBM SDD Development Laboratory Rochester, Minnesota INTRODUCTION into one unit and thus bring a "system" philosophy to card handling. The IBM 2560 Multi-Function Card Machine (MFCM) provides the System/360 Model 20 with a unique and versatile input/output capability. It combines the facilities of a card reader, card punch, collator, interpreter, and card document printer, all under control of the Model 20 processor. (See Fig. 1.) Two card hoppers, an optical read station that reads both primary and secondary cards, a common punch station, an optional printing station, and five selective radial stackers provide the Model 20 system with a card handling capacity never before possible with one pass of the cards. GENERAL DESCRIPTION The MFCM reads 500 cards per minute and punches at a rate of 160 columns per second. The card throughput during punching is a function of the number of columns punched or spaced, beginning with column 1. It varies from a minimum of 91 cards per minute for 80 columns punched to a maximum of approximately 340 cards per minute for 1 column punched. With the optional print feature installed, the machine can print 138 characters per second per line. Throughput when printing is also a function of the number of columns printed and varies from a minimum of 99 cards per minute when printing 64 characters to a maximum of 397 cards per minute when printing 1 character. Since the Model 20 operates in a time-sharing mode, the machine prints and punches simultaneously and thus only the operation requiring the greatest .amount of time limits the throughput of the machine. All the logic circuitry for controlling the MFCM is contained in the processor. The only electronic circuits located inside the MFCM are the magnet drivers, solar cell amplifiers, and pulse shapers needed for proper operation. All timing pulses needed by the processor, except those required for reading, are created by 13 magnetic sensing coils HISTORY Prior to the development of the MFCM, approaches to peripheral card handling equipment generally assumed a separate machine for each of the functions of reading, printing, punching, collating, and selecting cards. Combinations of some of these five functions had been successfully achieved, for example, in the collator-reproducer of Remington Rand, the IBM 101 statistical sorter, the IBM 1402 and 1622 Reader Punches with their multiple hoppers and stackers, and the Sperry Rand 1001 with its reading-sorting-collating capability. However, not until the development of the MFCM did any machine combine all five functions 315 316 Figure I. PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 IBM System-360 Model 20 showing the IBM 2203 Printer, the IBM 2020 Processor, and the IBM 2560 Mul1:i-Funcltion Card Machine. which detect the motion of magnets embedded in five separate timing discs. Card movement and location are monitored by nine solar cell sensors, rather than the more conventional mechanical card levers. The lower half of the MFCM contains two gates of electronics, power supplies, and the chip box. The upper half contains the card handling mechanism (see Fig., 2). An unusual: feature of the machine is the so-called "backbone" or vertically mounted plate on which are mounted most machine components. This backbone feature greatly improves accessibility of the card path and components over the more conventional side frame or "boxed-in" approach. The two card feed hoppers are mounted on the front or operator side of the backbone. The stacker assembly, which consists of a magnetic selector unit and five radial stackers, is also located on the operator side. All other components are mounted on the rear side of the backbone, including the entire serial card path, the read, punch, and print units, and the drive motor. The motor drives all units through toothed belts and pulleys. CARD FEEDING Card motion during reading or ejecting in the MFCM is controlled by the card feed clutch. From each parallel hopper the cards are fed into a cornering station by picker knives and continuously running feed rolls, as shown in Fig. 3. From the cornering station they move serially through the read, punch, and print stations before cornering again to move in a parallel path into one of the five stackers. The movement from the hopper through these operational stations is under complete processor control and is carried out by either cam operated or magnetically operated feed roll selection devices and the feed clutch. Cards are designated as primary or secondary according to the hopper from which they are fed. During a typical operation, one of each type of card is always in position to enter the read station, one of each type of card is always in position to enter th,e punch station and a single card is in position in the print station. As the card in the print station passes through the station to go on to the stacker, either THE IBM 2560 MULTI-FUNCTION CARD MACHINE PRIMAHY 317 SECONDAHY Figure 2. Rear view of the MFCM showing location of major components. the primary or secondary card at the pre-punch station is fed through the punch unit to the print station and the corresponding primary or secondary card at the pre-read station is fed through the read unit to the pre-punch station. At the same time a card is being fed from the corresponding hopper to the pre-read station. All of this card movement occurs simultaneously during one clutch cycle, and thus all card stations are occupied on every cycle. Under processor control, cards from one hopper can be held indefinitely at the pre-read and pre- punch stations while cards from the other hopper are processed through the machine. READING SYSTEM A magnetically operated pressure roll and the continuously running read inject roll grip the card and feed it into the read station from its pre-read position. The card is accelerated up to the reading velocity of 146 inches per second, which matches the peripheral velocity of the continuously running 318 PROCEEDINGS- -SPRING JOINT COMPUTER CONFERENCE, 1966 --- --SECONDARY HOPPE PRIMARY HOPPER Figure 3. Schematic of the MFCM card path. read feed roll. As the leading edge of the card is gripped by the read feed roll, the trailing edge leaves the inject roll so that the card is under the control of the read feed roll for the entire read operation. The holes are sensed by 12 silicon solar cells located below the card path. Light is provided by 12 lens tip lamps located above the card path. The lamps are individually adjustable for position and intensity. Both the lamps and the cells are mounted inside sealed assemblies behind glass plates to prevent card dust accumulation from affecting light transmission. During a read operation, the CPU must be supplied with a series of pulses synchronized with card motion and timed so as to indicate the optimum time for sampling the output of the read circuits for each of the 80 card columns. The device which accomplishes this in the MFCM is the magnetic read emitter. A schematic of the emitter is shown in Fig. 4. The rotor or drum of the emitter is mounted on the read feed roll shaft. The periphery of the drum is plated with a thin, hard coating of cobalt. The stationary housing of the emitter contains 60 heads or probes equally spaced around the periphery of the drum. The housing also contains a write coil, a read coil, and an erase coil. As the leading edge of the card enters the read station, the trailing (or column 80) edge of the card uncovers a solar cell. The cell is located so that it becomes uncovered as column "zero" is directly over the read cells. The uncovering of the trailing edge cell causes the CPU to send a signal to the emitter write driver. This results in 60 magnetic bits being recorded on the drum due to the flux generated by the single write coil passing through the 60 heads. The read feed roll on the drum shaft feeds a card one column in 1/60 of a revolution so Figure 4. Schematic of the Magnetic Read Emitter. that as each column is passing under the read station, the 60 magnetic bits on the drum have rotated one position and are being sensed simultaneously by the 60 heads. The cumulative flux change of the 60 heads is sensed by the common read coil. Any air gap variation between the drum and the he:ads caused by eccentricity is of little consequence since the output signal of the emitter is the sum of the 60 signals. After the card has left the read station, the erase coil is energized and the 60 bits are erased so that the emitter may be resynchronized with the next card as the card is being read. PUNCHING To register a card for punching, the punch pusher clutch and the desired path selection solenoid is energized. The primary or secondary card s.elected is pushed into column 1 registration and the incre- THE IBM 2560 MULTI-FUNCTION CARD MACHINE mental pressure rolls are closed. Command. from the processor controls the number of columns punched and incremented. The chief difficulty in designing a high-speed serial punch is in maintaining accurate punching registration over 80 columns of movement. An error of only 0.001 inch in column to column spacing would result in the punching being about one full column out of registration after 80 spaces. The basic problem is the high card acceleration The necessary to achieve desired throughput. MFCM solves this pI:oblem in two ways: 1) by keeping the acceleration as low as possible, and 2) by using feed rolls with a very high coefficient of friction to minimize card slippage. The punch unit is designed to allow approximately threefourths of the 6.25-millisecond punch cycle for card movement, thus minimizing the acceleration requirements. The unit utilizes three cams: one to drive the punch through the card, one for positively restoring the punch, and one for moving the interposer-armature assembly, as shown in Fig. 5. By optimizing each of these motions, the time the punch is in the card has been reduced to approximately one-fourth of the punch cycle. The punch mechanism is controlled by a magnet unit utilizing the so-called "no-work" principle. The magnets are only required to prevent the armature from moving rather than causing them to move; thus, the origin of the term "no-work" magnets. Several advantages are realized by using this style of magnet ·unit. 'Since reluctance of the magnetic circuit is low, the coil and core size may be reduced, resulting in a much more compact unit. Also, magnet driving requirements are lowered and heat dissipation is reduced. Figure 5. Cross section of the punch mechanism. 319 A constantly energized single hold coil surrounding all 12 punch magnets prevents the armature from following the interposer cam. When a punch is to be operated, the appropriate punch magnet coil is energized. This cancels the hold flux, which releases the armature at the high point of the interposer cam, and the armature spring causes the armature to follow the cam. This moves the interposer between the punch bail and the punch, causing the punch to be driven through the carel. The restore lever pulls the punch out of the card. CARD DOCUMENT PRINTER Basic requirements for the MFCM included a card document printer that would provide an output of 100 fully printed cards per minute, with up to six lines per card. Existing printing mechanisms were capable of such output, but at an unreasonable cost, so an entirely new print unit was developed. The desired output is achieved by using a wire matrix print head for each print line and printing in the serial mode. These wire matrix print heads may be positioned manually by the operator in any of the 25 printing row locations from the top to the bottom of the card to accommodate any card format. Each of the printed lines may contain up to 64 characters spaced at 10 characters per inch. A wire matrix five wires wide by seven wires high forms the characters. The wires are driven against an inked ribbon, card, and platen to print the character on the carel. One matrix of 35 wires, hereafter called a print head, prints a complete line on a card. To print six lines on a card, six print heads are required. Print heads are installed in groups of two to the maximum of six. An incremental drive moves. the card from position to position, stopping the card in each position. Each print head prints a character on the card in a 7.23-millisecond cycle, which achieves the rated speed of 138 characters per second per line, or 828 characters per second for six print heads. A card ejected from the punch station is stopped in print position 1 registration by a magnet-operated print gate. During the first print cycle the card is gripped by incrementing rolls. An· emitter on the incremental drive triggers each print cycle, which consists of setting up the characters for each print head, printing all of the characters in the position, and moving the card to the next column. Upon 320 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 completion of printing, the card is ejected from the print station during the following feed cycle. A ribbon is continuously driven past all the print heads at an average speed qf 7 inches per second. A spring-loaded reversing mechanism assists the ribbon-drive motor in achieving rapid ribbon reversal. Print Mechanism Figure 6 is a cross section of the print unit. Each print armature is fastened to a print wire. A print unit contains 70 wire and armature assemblies or two heads. A tube, which is securely fastened at ~--J)RINT TUBE .-IlZmaIIlWf--MAGNE:T MOUNTING BAR '---llRINT CAM '----PRINT ARMATURE '----BUCK COIL '-----HOLD COIL '-----HOLD MAGNET Figure 6. Cross section of the print unit. the unit and at the print head, guides each wire. A compression spring drives each armature and wire against the ribbon, card, and platen to perform the printing. The print armatures are controlled by nowork magnet units similar to those used in the punch unit. Characters are' formed by energizing the required buck coils. The selected armatures drop onto the print cam which controls the time of impact of the wires, and restores the armatures to the magnet after printing. When not printing, the armatures are held away from the print cam by the hold magnets. six heads. The common side of the 35 coils for each head are connected to the power supply through a separate silicon-controlled rectifier. This circuitry allows the 210 magnets required for six print heads to be controlled by only 35 drivers, since the six heads are set up sequentially rather than simultaneously. Two things make sequential operation possible: 1) a memory dwell built into the print cam, and 2) a motionless period for the card which is long enough to allow the three print cams to be timed for sequential operation. Figure 7 shows the sequential timing and the c:am profile for the three print unit cams. At high dwell on the print cam, the armatures have been restored from the previous cycle and are ready for setting up in the next print cycle. Setup begins when a pulse arrives from an emitter on the incremental driv~, timed with high dwell on the print cam for print unit one. The selected buck coils for print head one are energized for 350 microseconds, during which time their armatures are released. The armatures drop to the memory dwell which is an intermediate dwell on the print cam just following the high dwell. After the coils are de-energized and the holding flux increases, the armatures are not reattracted back to the magnets due to the air gap created by the memory dwell. After the 350-microsecond buck pulse for head one, there is a 1. 00microsecond delay before head two is set up to allow the silicon-controlled rectifier for head one! to turn off. Head two is then set up in a similar manner. The second print unit, which controls head three and four, is timed so that the setup for its two heads comes just after the print circuitry has completed the setting up of heads one and two. The third print unit is similarly timed with respect: to the second. As a result of this method of timing, PRINT HEAD BUCK PULSE TIMINGS -- 0-Figure 7. either free running or synchronous with an external clock. The format used on the tape is shown in Fig. 8. Although there are several alternative possibilities this particular case is of special interest because the "unrecorded" tape, shown in Fig. 8a, carries a "prerecorded" clock pulse on one of the two available channels. A sketch of a complete recording is shown in Fig. 8b. The "clock h is on the upper track and the data is on the lower. It will be noted that the data bits are recorded in space register with the timing bits. The magnetic head used in the system is a low-cost "two-track stereo" record/reproduce head of the type used in home entertainment tape recorders. • A block diagram of the electronic systc!m used for recording is given in Fig. 9. It will be seen that the function of the prerecorded clock bits is equivalent to that of the optical pick-off in Fig. 6. When recording, the serial data stream enters a convtmtional synchronizing interface so that the character "start" or "sync" pulse is recognized and a 10lcal timing oscillator is phased with the sign ali. Each successive local oscillator pulse samples each data pulse following the stl:ut pulse, places the data in a one-bit storage flip-flop, and simultaneously starts the incrementing tape drive. When the corresponding "stop" signal is received from the recorded clOick track, the data is recorded with an RB pulse through the data head winding, the one-bit storage flip-flop A NEW DEVELOPMENT IN THE TRANSMISSION, STORAGE AND CONVERSION OF DIGITAL DATA II t I } II P reo -recorded Clock Pulse 200 bpi II /4 Tape I} Data Track Fig. SA I" } Clock 1/4 Tape I } Recorded Data t Fig. 88 Figure 8. ,---------------1 I I I I I I I Phased, Clock Character Length Pulse Counter I I 329 is cleared and the system waits for the next bit of the character to be delivered. This process is repeated through the entire character, so that the tape is incremented step-by-step for each bit in sequence. As a result, for example, seven motions are made for the Baudot code and eleven for the ASCII code. When the character is completed, the system rests until the next start pulse appears on the line. The maximum rate at which this simple system will accept serial data for recording in this manner is theoretically 800 bits per second and practically 600 bits per second for an incrementer using a type PM-368.printed motor. This is, of course, far in excess of conventional printing telegraph rates. The local timing oscillator and counter chain must conform to the particular signal bit-rate and format. The recorded packing density is 200 bpi. A standard home-entertainment EIA cartridge of 300 foot capacity will therefore accomodate approximately 60,000 characters in the serial format. Readout can be accomplished with varying levels of sophistication depending upon the desired result. In the simplest case the incrementer motor is run continuously by a constant DC command. The electronics for this are shown in Fig. 10. The operating speed of the tape is adjusted by setting the level of the "go" command from the motion control flip-flop to the desired level. The recorded signals are recovered from the head, amplified and limited in a threshold decision circuit to obtain "clean" pulses. The clock track and data track signals are then applied to a coincidence logic and flip-flop Motion Control FF ,----1 I I S C I o ...--E---I Tape Li miter ~~p ,..-------, . '----+--1 S C Single Bit Storage FF Figure 9. -= / Record t--~-...., / Pulse Generator Record Winding Head PROCEEDINGS~SPRING JOINT COMPUTER CONFERENCE, 1966 330 Motion Control FF Go r-----------~------------~S Stop r-----------~------------~C Tape Regenerating Clock winding FF Output Signal J--~--11 S Data wind ing o Coincidence Logic Figure lO. circuit which regenerates th¢ form of the original data stream. The signal transitions (i.e.,'bit rate) resulting from this type of read-back are "noisy" in time since there is no speed stabilizati~n on the tape motion other than that provided by ~he servo. Speed (and therefore frequency) bumps :on the order of ± 5% can be expected in the short term. Long-term accuracy of =1:: 10% is readily achieved. This read-back method is not suitable at rates of less than 800 baud and is ,limited in the upward direction by mechanical tape! path considerations to about 3000 baud. An improved but slightly more complex read-out method is obtained by using the system as an in(;rementer (Fig. 11). In this arrangement, the clock track output is used for a "stop" signal, as previously described, while the "read" command pulse is obtained from either the internal local osciallator or an external reference pulse. In Fig. 11 it is shown as originating from an external source. The rlead command pulse and the data pulse are applied to a logic system including a single bit storage: flip-flop and a regenerating flip-flop to recreate a replica of the original input signal. In this case, the output signal is not noisy in time Speed Escalator Motion Control FF Reference Clock Pulse "s C 0 A NEW DEVELOPMENT IN THE TRANSMISSION, STORAGE AND CONVERSION OF DIGITAL DATA but has, instead, transitions which occur exactly in synchronism with the reference pulse train. The upper frequency limit for this operation without the further improvement described below is 600 baud. The upper frequency limit for synchronous operation may be extended by a further improvement. This is obtained by inserting the block marked "Speed Escalator" in Fig. 11 between the points marked "X", and is subject to the restriction that at rates above 600 baud the system will not stop the tape before the next bit. That is, a synchronizing time of one to six bits (at 200 bpi) is required on starting and a similar number of bits will be lost while stopping, the synchronizing interval measured in bits being proportional to the square of the operating speed in excess of 800 baud. For higher speeds therefore, the system begins to operate as a data "block" reader. The effect of the speed escalation circuit is to provide an additional command to the incrementer which increases the limiting speed as the reference (read command) pulse is raised. The incrementing rate therefore tracks with the command, holding the entire system in synchronism with the reference clock up to a maximum speed set by mechanical limitations in the tape path. This limit lies at about 3000 baud for a simple mechanical system. At this speed, about 6-bit intervals (0.03") are required to synchronize. In this case also the output signal is not noisy and remains in exact synchronism with the reference clock throughout the speed range. From a servo viewpoint, the system operates as a random incrementer timed from the tape signals at low speeds and gradually executes a transition to a so-called "phase-locked" servo locked to the tape as the speed is raised to high speeds. In summary, therefore, the random incrementer drive applied to a single capstan serial tape transport provides a system which will record synchronously at rates up to about 3000 baud (when speed escalation is used) and which will read synchronously or free-running over the same range. It should perhaps be specifically noted that the drive is reversible simply by inverting the command signal to the incrementer electronics so that rerecording and rereading operations can be obtained through the use of additional electronics. PARALLEL FORMAT DUAL-CAPSTAN BUFFERING SYSTEM This more sophisticated apparatus uses two incrementer systems in a dual-capstan drive with 72" 331 magnetic tape as a buffering system for store and forward applications in a digital communications path operating at rates up to 4800 baud. The device includes five basic functions. These are the input serial-to-parallel converters, the parallel data recording system and tape drive, the machine control logic system, the parallel data reading system with its tape drive, and the output parallelto-serial converters. These elements are shown in the block diagram of Fig. 12. The input and output blocks constitute the interfaces between the storage system and the outside world. Since the parallel-to-serial conversions which occupy these blocks depend upon time relationships in the external signals, they both contain clocks or timing generators which must be compatible with the particular type of information which the buffer is supposed to handle. A change of element speed or bit rate on either side of the buffer requires a corresponding adjustment in the clock rate on that side, as is the case with the previous serial machine. It is, of course, possible to omit the serial-toparallel conversion blocks. In this case, the middle three components function simply as a parallel-toparallel storage device. The heart of the buffer is, -in fact, contained in these three blocks and a description of the apparatus is most easily understood by assuming initially that we are dealing with a parallel device and looking at these functions first. The mechanical arrangement of the magnetic tape path as shown is intended to indicate that the recording and reading stations are separated by a distance which is as small as possible. When there is no information stored on the tape in the machine, the tape is drawn up into a "tight" condition between the magnetic heads. The existence of this tight condition is sensed by a switch in the tape path and modifies certain of the machine functions, as will be explained later. When a character arrives at the input terminals of the recording circuitry, it is immediately recorded and transported to the output where it appears in a register. If the character is not immediately removed from the machine, additional characters arrive at the machine input and will continue to be recorded upon the tape which will therefore begin to form a loop containing stored information between the recording and reading stations. The size of this loop can grow until it contains approximately 250,000 characters. At any time during this process, characters may be removed from the output, which will, of course, tend to decrease the size 332 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 r------------------~ I Tape Transport I I I I I I I I I I I I I ~--~ Read Incrementer Record Incrementer Input Data (Serial) Serial To Parallel Conversion Parallel Recording Circuitry Co pstan Control Logic Record Com mand Parallel Reading Circuitry Read Command Control Signals Control Signals Input Data (Parallel) Parallel To Serial Conversion ---0 Ou tput Data (Serial) '---------0 Output Data I[ Parallel) Figure 12. of the loop. Finally, when characters are no longer being applied to the input, the output can continue to run until the tape has resumed its tight condition and has been cleared of all data. It is important to note that each capstan is individually controlled and the: device may therefore be used as a speed changer.; As an example, the input character rate could be; 2,000 baud while the output could be provided at slower speeds such as 100 baud. The speed conversion could be maintained until the storage loop is filled to capacity. Reverse speed conversion is also possible, that is, slow input speed, high output,speed. In this particular case, it would be necessary: to inhibit the readout until sufficient information is built up in the loop between the two magnetic heads. Low to high speed conversion could then be maintained until all the information in the loop had been transmitted. It is obvious that once this point is reached, the output cannot be any faster than the input data rate. The "tight tape" condition! modifies the machine functions. When no input data is being recorded but transmit or read data is being commanded, the record capstan remains stationary and only the read capstan moves on external command until such time as the stored information in the loop of magnetic tape is depleted or until the tape becomes tight between the record and read head. When this final condition exists the tight tape switch actuates and commands the record capstan to move at the same velocity as the read capstan even though no information is being put into the record statiion. As the read commands continue, a point will eventually be reached where no character is recorded. on the tape. In this case, a timing circuit is provided to transport a length of tape over the read head equal to the length of tape between the record and read heads. Should no additional characters be recorded each time a read command is given, both the record and read capstan will operate at their control velocity for this period of time insuring that no information is trapped between the two heads. The device also provides for bidirectional tape motion in both the record and read capstans. Via proper external command, the read capstan may be reversed and stopped at any specific point on the tape. This feature is utilized for retransmission of information in the event that the receiving terminal did not properly receive the transmitted information. The record capstan provides the same: type of control so that incorrect data received and recorded on the tape may be erased and rerecorded with the proper information. Other interfaces may be provided to allow this system to interrogate the received A NEW DEVELOPMENT IN THE TRANSMISSION, STORAGE AND CONVERSION OF DIGITAL DATA information prior to recording. This serves the purpose of deleting certain information which is not required to be stored, providing the capability of code conversion, and allowing for additional data to be inserted for coding of the information block to follow. 333 Equipment incorporating the "random incrementer" has been manufactured for RCA Communications, Inc. and is in use at the present time. The rapidly increasing amount of digital communication would indicate many additional applications and requirements for the unique capabilities of this new technique. CONCLUSION REFERENCES The random incrementing technique can be incorporated in many equipment configurations other than those described in this paper. The flexibility and simplicity of the basic capstan drive allows the design of peripheral devices that combine the functions of a number of presently used machines into a single unit. The new technique also offers the higher speeds and greater storage capacity of magnetic tape in new areas and can eliminate data conversion operations in many systems. l. R. P. Burr, J. J. Rheinhold and R. K. Andres, "A New Technique for Application of Magnetic Tape to Digital Communications," to be presented at IEEE International Convention and Exhibition, New York, Mar. 22, 1966. 2. "Operating Principles and Performance of a Developmental Random Incrementer for Reading and Writing Magnetic Tape," Engineering Memorandum No. 29, Photo circuits Corp., Glen Cove, N.Y. (Nov. 8, 1962). IBM 2321 DATA CELL DRIVE Alan F. Shugart and,Yang-Hu Tong IBM Corporation, Systems Development Division San Jose, California The L-sbaped configuration was devised to offer optimum servicing accessibility to the cell array. Functionally, from a circular array of 10 cells with 20 subcells each, a cell drive positions a selected subcell of 10 strips beneath an access station. At this station a selected strip is withdrawn from the subcell. Gliding on a film of air which acts as a hydrodynamic bearing, the selected strip is rotated past a magnetic head for data transfer. Upon completion, the strip is returned to its original location in the subcell. Magnetic recording, strip transport, and logic organization are described in the next three sections. Following these is a section briefly discussing some other important design considerations. These include anticlastic curvature, squeeze film, hydrodynamic lubrication film, computer simulation, minimum wear of machine elements, and contamination control. INTRODUCTION Ten years ago IBM announced the 305 and 650 RAMAC Data Processing Systems-systems that heralded the on-line processing concept, wherein business transactions could be economically processed as they occurred. This was made possible largely through the use of the 350/355 Disk Storage Files, whose 5 million stored characters were directly accessible. Since that time, significant advancements have been made in direct-access memory development. These include the double density 350/355, the 1405, the 1301 and the 2302. Pioneering the removability and interchangeability features of direct-access storage media was the 1311 Disk Storage Drive. A further advancement is the 2321 Data Cell Drive. During the conceptual stage of the 2321 Data Cell Drive, two basic decisions were made: 1. To use magnetic recording techniques MAGNETIC RECORDING for data storage because of simplicity in the recording and reproducing processes, and 2. To use thin strips as storage media be.. cause of the high volumetric efficiency in packaging the media within a ma~ chine frame. Storage Medium The storage medium is a 2~ x 13 x 0.005-inch saturated polyester strip having an iron oxide coating for magnetic recording on one side and an antistatic coating of carbon on the other (Fig. 2). A set of 10 strips is contained in a subcell. Each strip has a pair of coding tabs for identifying its position in the sub(;ell, and a single latching slot for picking up the strip. Chamfered sides and a "swallow" tail are introduced to control strip dynamics. Physically, the components are arranged in a mechanical section and an electrical section (Fig. 1). Each section is a separate self-contained frame, facilitating manufacturing, shipment, and installation. 335 336 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 CELL ARRAY PRESSURIZER HEAT EXCHANGER PNEUMATIC CONTROLS -, DRUM DRI VE' \ HYDRAULIC POWER SUPPLY PORTABLE CONTROL BOX MAGNETIC HEAD C. E. POWER PANEL ~~~~~~E~~i;et~~~~ SEPARATION FINGER DRIVEr<:: PO WE R SUPPLY GATE OPERATOR PANEL I NNER COVERS RELAY PANEL POWER SEQUENCING PANEL POWER SIUPPLY PANEL C. E. PANEL MOTION CONTROL a RECORDING ELECTRONIC GATE 1/0 PANEL ELECTRONIC ~ATE COOLING 1/0 CONNECTORS '- 1/0 SIGNAL CABLE Figure 1. Component layout. Twenty subcells are housed in a cell. Ten cells are attached around the periphery of a spindle, forming a cell array. Each cell is physically removable and interchangeable. For machine operation involving less than a full complement of 10 cells, ballast cells are used to dynamically balance the rotating array. One hundred addressable recording tracks are available on each strip. Dual-frequency recording at a nominal density of 3500 flux reversals per inch provides each of the 100 tracks with 17,500 bits of storage capacity. Logical extensions show the following incremental storage capabilities: Track Head position Strip Subcell Cell Full array Bits 17,500 (20 tracks) . . . . . . . . . . . . . 350,000 (100 tracks) ... : . . . . . . . 1,750,000 (10 strips) . . . . . . . . . . . 17,500,000 (20 subcells) . . . . . . . . . 350,000,000 (10 cells) . . . . . . . . . . 3,500,000,000 Recording is accomplished in a serial-seldal fashion. At a nominal strip velocity of 250 inches per second, the data transfer rate is 437,500 bits per second. Magnetic Head The magnetic head has 40 laminated elements, 20 write and 20 read (Fig. 3). Each element (read or write) is physically aligned with its adjacent element on a 0.090-inch center-to-center spacing. The head can be moved to 1 of 5 discrete positions, thus provi~:ag for 100 tracks per strip. The effects of thermal and hygroscopic expansion of the flexible medium, the element position tolerances, and strip registration repeatability are compensated by making read elements much narrower than the write elements, that is, 0.007 inch vs 0.018 inch. Furthermore, since the updating of any record requires the identification of its address, the reproducing gap precedes the recording gap by 0.150 inch. Strip-to-head spacing of approximately 75 micro- 337 IBM 2321 DATA CELL DRIVE {D t lr· f; 007 / DATA STRIP (100 TRACKS PER STRIP) \ 090 I -J. II I Ii I REPRODUCING GAP y......w....w....w....w...M...JoI...W,------, .150 SUB CELL (10 STRIPS PER SUBCELL) -----~---RECORDING GAP f----LONGITUDINAL SLOTS ii' JL. 0 18 WRITE ELEMENTS DIRECTION OF STRIP TRAVEL Figure 3. DRIVE (10 CELLS PER DRIVE) CELL (20 SUBCELLS PER CELL) Figure 2. Data cell array. inches is controlled by a self-generated hydrodynamic lubrication film and longitudinal slots on the head surface. Circuitwise, a read element is equivalent to 1 millihenry in parallel with 30 picofarads on a differentjal basis. This represents a self-resonant frequency of approximately 1 megacycle and an impedance of about 7 kilohms at 437.5 kilocycles. Recording Electronics The recording circuits perform the following functions: selection, write, read, safety, and contro1. Since only one of the write and read elements is operative at a time, its selection is accomplished by an XYZ diode matrix of dimensions 2 x 10 x 2, respectively. XY selects one of 20 elements, and Z Magnetic head. controls the mode of operation (either write or read). In recording, the data transmitted from the control unit is converted from return-to-zero into nonreturn-to-zero dual-frequency code by two write drivers, each supplying unidirectional current into one or the other half of the write winding (Fig. 4). In readback, processing of the signal is begun by the head preamplifier, located with both write and read matrices in a special package mounted on the head assembly. To minimize the effects of common-mode WRITE DATA TENS DECODE WRITE STATUS 1 OF 20 READ ELEMENTS Figure 4. Block diagram of write/read circuits. 338 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 noise, amplification starts d:ifferentially and remains so throughout the entire reaJdback channel. Because of the dual-frequency encoding and the gap-filling techniques used in the recording process, the amplifier is never required to read through an absence of signal. Hence, the overall philosophy was to have the readback channel maintain no threshold level, so that the: ability to recover data depends exclusively on the signal-to-noise ratio. To insure data integrity, safety circuits are used to monitor critical points i of the recording electronics and to set the 2321 inoperative immediately, should an unsafe condition c;levelop. Synchronization between :data handling and strip position with respect to the ~ead is accomplished by two transducers mounted on the drum drive and associated amplifiers. These ~ransducers produce one pulse for each revolution df the drum and define the beginning and end of the usable strip area. STRIP TRANSPORT Cell Drive The basic function of a cell drive is to bidirecltionally rotate the circular array of 10 cells to 1 of 200 discrete subcell positions through the shortest angular distance. For high speed and positioning accuracy involving a moved inertia of 2.4 in-Ib-sec 2, an electrohydraulic servomechanism was selected. A schematic of the drive and its control is shown in Fig. 6. DECODED SUBCELL ADDRESS SEEK Data Handling To compensate for variations due to the oscillator frequency and/or the medium velocity, a variablefrequency oscillator (VFO) is used in the readback process to produce a signal whose frequency and phase are controlled by the reproduced raw data. A synchronous detection is thus possible. Although the VFO is physically located in the control unit, its relationship with, and importance to, the 2321 warrant a brief discussion. The block diagram of Fig. 5 shows the significant components of the VFO: who~e output is a linear function of the phase difference between data and VFO output over a periodic range. : 2. The filter, which has a low-pass characteristic to attenuate fast changes in the phase error due to noise in the input signal or to instantaneous peak shift. 3. The variable oscillator, whose output frequency varies in proportion to the error signal. When the error signal is zero, the output frequency is the design center frequency of the oscillator. 1. The error detector, Figure 5. Block diagram of variable-frequency oscillator. Figure 6. Cell drive and servo controls. Cell positioning is initiated by a seek instruction. When all safety interlock conditions are satisfied, the decoded subcell address selects the appropriate reed relays. With the use of a reference oscillator and programmable transformer, the proper voltage level is applied to the stator windings of a resolver. Induced voltage in the rotor windings, generally known as error voltage, is amplified, demodulated, and summed with a velocity feedback from the DC tachometer in the servo control circuit. The controlled current is used as an input to the dual-gain servovalve. During reed relay selection, a brake is released, IBM 2321 DATA CELL DRIVE and the blocking valve is moved, permitting a flow of oil through the servovalve to the hydraulic motor which converts flow to rotary motion of the array. As the array rotates, the rotor windings sense a decreasing error voltage which, in turn, decreases the input current to the servovalve. The resultant decrease in oil flow to the hydraulic motor decelerates the array until no further error signal is present or a null point is reached. As the null is reached, the arrival detector signals the blocking valve to be moved and the brake to be applied, locking the array at the addressed position. Finger Drive Concurrent with cell motion, two pairs of strip separation fingers are moved to 1 of 10 positions for the selection of 1 of 10 strips in a subcell. A separation finger drive (Fig. 7) is then initiated. The subcell springs, which maintain the vertical position of the strips, are first parted by a pair of wedges. Simultaneously, the separation fingers move vertically. downward, followed by a horizontal movement for strip separation. The wedges and fingers remain in the actuated position until the strip is fully restored. SEPARATION FINGER CARRIAGE Figure 7. Finger drive. Drum Drive To pick and restore the selected strip, the drum drive is required to rotate both clockwise and counterclockwise. Conventional electric motors do not provide the torque-to-inertia ratio to meet the stringent access-time requirements. In addition, during strip restore, it is difficult for the motors to control the precise indexing at turn-around (defined as the shaft position when the direction of rotation changes). Lack of turn-around control further complicates the latching of the drive shaft at 339 its home position when the restore operation is completed. The present drive uses mechanical indexing, which allows energy storage and transfer. Two magnetic clutches are mounted on the shaft-one to maintain constant speed in the clockwise direction, and the other, constant kinetic· energy in the counterclockwise direction. The basic principle is shown in Fig. 8. A torsion spring, through the lever and the index roller, stores the kinetic energy of the drive during the restore cycle. During the pick cycle, the wound-upspring provides sufficient torque to rapidly and smoothly accelerate the drive to near synchronous speed, at which time the magnetic clutch is engaged to maintain a constant period of 50 milliseconds per revolution or a strip surface velocity of 250 inches per second. A similar arrangement controls the turnaround indexing. Also mounted on the drive shaft is a drum. Attached to the drum by two connecting links is a pickup head which contains a latching flipper for strip pickup and a release lever for strip release. In front of the drive is the strip housing with two openings, one for the magnetic head and the other for passage of the pickup head as well as the selected strip. Attached to the strip housing are a front guide ring and a rear mounting plate. They guide the pickup head and register the revolving strip. The drum drive may be considered as a slider crank inversion (Fig. 9). The drum is analogous to a crank shaft, the links to a connecting rod, the pickup head to a piston, and the housing guides to a cylinder. With the drive shaft latched and the drum at rest, the pickup head is approximately % inch above the strips. When the shaft is unlatched and the drum begins to rotate, the pickup head first moves downward to latch the selected strip, then upward, and subsequently locks onto the rotating drum. During restore, the strip is propelled by the pickup head in a reverse direction. The pickup head is unlocked and directed downward by housing guides. At "bottom dead center" of its downward travel, the strip, fully replaced in the subcell, is released. The pickup head then reverses its direction and continues upward to the latched or home position of the drive shaft with the drum once again at rest. LOGIC ORGANIZATION The logic organization of the 2321 is shown in Fig. 10. Principal areas are the interface, address- 340 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 TORSION SPRING iNDEX STRIP HOUSING MAGNETIC CLUTCH (COUN T E R CLOCKW ISlE) MOUNTING PLATE CONNECTING LINK Fi~ure 8. Drum drive layout showing principle of mechanical indexing. DRUM Similarly, status signals are transmitted from the 2321 through the interface to indicate the drive con- ditions. MAGNETIC HEAD Addressing The physical location of a recording track is identified by: PICKUP HEAD 1. Data cell drive number i. Data cell number (0) SEPARATION Ie) STRIP WITHDRAWAL Figure 9. Ib) STRIP PICKUP Id) PICKUP HEAD LATCHED TO DRUM Strip pick cycle. ing, motion controls, and' recording electronics. Address information and control signals are transmitted to the 2321 through ~he interface to initiate the selection of the proper track for data transfer. 3. Subcell number 4. Strip number 5. Cylinder (head position) number 6. Track number When a record is selected, each item of the new address listed above is compared against that of the previous address. From this comparison, the ne1cessary electronic and electromechanical action required to place the selected record in the data transfer position is determined. For example:, assume that the new record is in the same data cell drive, but the remaining portions of the address differ. The new address thus causes the following to occur: 1. The cell array is rotated to the sel<;!cted subcell. 2. The magnetic head is positioned. 3. The finger drive and the drum drive are activated to select and transport the selected strip past the magnetic head. 341 IBM 2321 DATA CELL DRIVE MOTION CONTROL INTERFACE 8 ADDRESSING RECORDING ELEC STATUS WRITE DATA CONTROL SIGNALS HEAD ADDRESS SET ADDRESS BUS POS 3-7--.....-1-.1 HEAD ADDR REG rJ:.- ~ ~ 8 r---- ~ '--_ _---'-=-=..J HEAD BAR ADDR SET MECHANISM INDEX TRANSDUCER INDEX CIRCUITS sIGNAL....-·-------~ READ DATA ... --t-----------~ STATUS SIGNALS I READWRITE CIRCUITS X-V SELECT READWRITE ELEMENT HEAD DECODE I OF 20 ~ READ/WRITE ELEMENTS -I----....,t H HEADBARml ADDR IA ~.________________.____________~____~HEAD REG 2 ~ POSIT lONER FINGER ADDR SET ~ FINGER ADDR REG +1 ~ .~--------------------------~4---~ FINGER ...--;:::;: POSITIONER 3 3A SUBCELL ADDR SET ~SUBCELL ADDR REG CELL t ~ 1t r-- SUBCELL DECODE I OF 10 SUBCELLS ~ SERVO ELECT ADDRESS SET CELL ADDR REG -J~ .4- ~ 8 ~'--r----r-J iO SIGNALS ,...-1----------1 L - -_ _--&.;...=...I STATUS CELL DECODE I OF 20 LOGICAL CELLS r-- CELL .....'--_D_R......,'..... V_E_...J DRUM DRIVE MOTION CONTROL + CONTROL. SIGNALS FINGER DRIVE DRIVE STATUS SIGNALS " , , , , 1 - - - - - - - - - - - 1 OPERATIVE [ CONTROL Figure to. 4. The specific read/write head element is electronically selected. When the new address is the same as the previous address in a specific area, no electromechanical action is required for that area. For example, if the only difference between a new and previous address is the selection of a track within the same cylinder 14- Logic flow diagram. posItIon, the only action would be the electronic switching of the proper read/write head. Typical Record Update During the cycle of updating a record, a typical sequence of events involves a seek, read (for address search and verification), write, write-check, and restore. 342 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE. 1966 A seek operation causes the addressed data track to be placed in the proper status to allow data transfer, as described under "Ad~ressing." A read operation involves the amplification and shaping of the reproduced signals prior to their transfer to the control unie Successive read operations, in a simple read mode, can be performed on up to 20 tracks on 20 successive drum revolutions because of the mUltiple read-elements-per-head design. A write operation entails the transfer of write data to the 2321. Track formatting is organized so that updating of the data portion of a record does not require the rewrite of either the entire record or the entire track. A write-check operation is a read operation performed following a write operation to verify the da ta written. A restore operation returns the strip presently on the drum to the original subcell. This operation is performed under one of three conditions: 1. When a strip different from that on the drum is requested. . 2. When the drive is not selected within 800 milliseconds upon completing the instructed operation, be it a seek, a read, or a write. 3. When the drive is specifically instructed to restore the strip. strip is rotated past the magnetic head in the cylindrical housing. The phenomenon of the curled-up edges is known as anticlastic curvature (Fig. lIa). The cross section (Fig. 11 b) assumes a wave form, whose amplitude is a maximum (Yo) at ejther edge and exponentially diminishes to zero at the center. The major governing parameters of the phenomenon include Poisson's ratio (~) of the elastic material, the material thickness (t), and the bending radius (R). Simply explained, a force couple e:xists at the strip edges, as shown in Fig. 11c, b~~caus(, the outer fiber of the bent strip is under tension and the inner fiber under compression. A thorough mathematical analysis has been made, and a practical approximation of the ildeal solution of the defining equations was used in strip fabrication. This requires a carefully controlled edge chamfer of the side of the strip nc~xt to the drum (Fig. 11d). The chamfer reduces the circumferentiall compressive force on the inner fiber, leaving a surplus of the tensile force on the outer fiber. This surplus allows a radially inward-directed force component. to counteract the force couple, producing a nearly perfect flat cross section. Uniform spacing be:tween the rotating strip and the stationary magnetic head is thus achieved, resulting in a constant reproduced signal and drastically reducing the wear rate. Formatting All storage devices on the IBM System/360 have no mechanical formatting designed into them. Instead the format of a record is determined at the record level and by the user. Each track is identified by: POISSON'S RATIO "---'I.-----+-- BENDI NG 1. A home address which defines the physicallocation of the track, as well as the track condition. 2. A track descriptor record which allows alternate track assignment. Following the home address and track record, data records may be formatted to length. The maximum record length, as record per track application, is 2000 bytes. . descriptor any record in a single 8-bit data SOME OTHER DESIGN CONSIDERATIONS Anticlastic Curvature Transverse deformation of a bent strip creates serious compliance and wear problems, when the (JL) RADIUS (R) (0) YO' YI' Y2 a: (c) JL.t t ,R INNER FIBER xI,x2 a : _ UNDER COMPRESSION JL BENDING AXIS (b) SURPIi..US CIRCUMFERENITIAL ~CHAMFER ~~CE L_~x--1_tlFl • ------1-----RANDIN. AXIS SECTION X-X (d) Figure 11. Anticlastic curvature. IBM 2321 DATA CELL DRIVE Squeeze Film The theory dealing with pressure of a thin flat film whose bounding surfaces are in relative lateral motion was extensively treated by Osborne Reynold some 80 years ago. However, limited work exists in the study of pressure dealing with surfaces in relative normal motion. While "squeeze film" literally applies to surfaces being brought together, the term is also conveniently borrowed here in describing the converse phenomenon when surfaces are being parted. In transporting strips, squeeze film effect was experienced at three critical areas and times: 1. During strip separation, the swift parting of strips creates a pressure differential as shown in Fig. 12a such that: (A) PI ~ P2 (on either side of the selected strip) and (B) PA :> PI or P2 (on either side of the separated packs). ~n (A), long strip settling time was needed to equalIze the pressures and to achieve stability before the selected strip was brought within "a pick able range. As for (B), in addition to a further penalty in terms of time, a high separation force was encountered in overcoming the pressure differential. The potential problem of access time and strip wear was resolved with the use of carefully filtered, accurately directed, and precisely balanced air flow from above the cell to nullify the squeeze film effect and to dampen strip oscillation. Serving an equally important function, this same air provides lubrication to reduce resistance, wear, and "stiction" during strip picking and restoring. g ST~¥\ I ~ AIR SELECTED SEPARATED PACK ~2 P AM.IENT PRESSURE PI SEPARATION FORCE ....... RUCTION FORCE "A -.. - .. (al DRUM MAGNE TIC HEAD STRIP STRIP PASSAGE OPENING (el Figure 12. Squeeze film. «('\ _PI' 343 2. During the first pass (defined as the condition when the strip is partially in the cell as shown in Fig. 12b), the wrapping action of the strip on the drum causes the strip to adhere to the drum. In due time, after several drum rotations, centrifugal force and "unwrapping" force (similar to a bent beam) overcome the squeeze film effect and allow the strip to comply to the magnetic head. However, by introducing longitudinal grooves on the drum (as shown in Fig. 8), pressure between the strip and drum is relieved, and the squeeze film effect is removed almost instantaneously, thus permitting first-pass read/write operation. 3. During forward rotation, as the trailing end of the strip is brought sharply against the housing across the strip passage opening, the impact is cushioned by air (Fig. 12c, Area X). In this instance, the beneficia] effect of the squeeze film is instead fully exploited. Hydrodynamic Film Compliance to the magnetic head of a flexible rotating strip constrained in a cylindrical housing is very complex in analysis, and influenced by many parameters. Two of these have been briefly mentioned under previous headings. This section deals principally with the self-generated hydrodynamic lubrication film effect. Briefly stated, a thin layer of air, the "boundary layer," adheres to, and travels with, a moving body. When this boundary layer comes into contact with a similar layer adhering to a stationary body, a viscous shearing takes place, causing a change in momentum of the moving layer, converting the change into static pressure, and developing a load-carrying force. In the case of a rotating strip, this force balances the centrifugal force and "unwrapping" force. The film effect is achieved by creating a converging wedge-shaped spacing in two critical areas: 1. At the leading edge of the strip with a properly derived drum geometry, as shown in Fig. 13a. 2. At the area downstream from the protruding magnetic head, as shown in Fig. 13b. Once compliance was achieved, optimization of the strip-to-head spacing became possible. This was accomplished, in turn, by controlling the effective air-bearing area with properly designed longitudinal slots on the face of the magnetic head (as shown in Fig. 3). By shaping the unrestrained strip end in a tra- 344 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 CONVERGING WEDGE-SHAPED SPACING DRUM MAGNETIC HEAD (a) mentals of smooth contours for static and dynamic transients were followed to avoid impact and wear. However, none of the computer simulation work is as significant as that done in analyzing the feedback control system. Early in development, a root locus program was developed to facilitate the transient response analysis of open and closed-loop systems with limited capability in treating certain nonlinearities in the forward path. Subsequently, a digital simulation language was written with extensive coveragl~ of nonlinear conditions, such as servovalve hysteresis and saturation, viscous and coulomb friction, t:lectronic control, etc. Without the aid of the simulation work, the very nonlinear nature and the timevariant characteristics of the complex AC S4~rvo system would have rendered the design an extremely difficult, if not an impossible, task. Minimum Wear of Machine Elements CONVERGING WEDGE-SHAPED SPACE A simple wear theory has been postulated and developed by IBM's Physical Technology Laboratory in Endicott. The theory is based on the maximum shear stress criterion; that is, plastic flow is INNER COVERS (b) FRONT NOZZLE Figure 13. Hydrodynamic film. REAR NOZ:ZLE DATJ~ pezoidal ("swallow-tail") design, a near circular form throughout the rotating strip is obtained. With the incorporation of other equally critical parameters (such as, surface finish, strip registration force, strip housing and magnetic head geometry, etc.), total compliance at optimum spacing was thus attained across the strip width. '- PLENUM Computer Simulation Analytical techniques through computer simulation have been broadly applied throughout the 2321 Data Cell Drive Program. For instance, the powering and control of a solenoid application was optimized by equating an~ solving the electromechanical energy conversioin process. Control of the magnetic clutches was similarly designed for optimum performance. AlsQ, in designing the strip housing and pickup head g~ide, the basic funda- CELL FILTER "--...-~_...v OUTSIDE AIIR LOWER NOZZLE Figure 14. Contamination control. IBM 2321 DATA CELL DRIVE assumed to occur when the maximum shear stress at any point exceeds the shear stress at yield. By keeping the stress in the contact area below an established level, the initiation of wear can be prevented. The wear theory and its experimentally verified wear data have been extensively applied in determining the limiting design stresses of all critical contact surfaces in the 2321. The analysis included two general categories: first, cylinder-against-cylinder as in cams and followers, and second, cylinderagainst-groove as in journal bearings. Contamination Control It was recognized in the early development stage that particulate contaminants in the strip transport system could adversely affect recording reliability and eventually the life of the strip. Other than the implementation of the appropriate error-recovery actions, the problem was attacked by creating a miniature "clean room," housing the area of concern. This consists of: 1. Inner covers to isolate the cell array from the surrounding mechanism, with 345 the front entry door serving a functional purpose. 2. Pressurization of the "clean room" with filtered air. 3. Three vacuum nozzles strategically located to continuously insure the cleanliness of the critical areas. Physical arrangement of the contamination control scheme is shown in Fig. 14. A high-pressure blower is used to draw air from the outside and to recirculate internal air through the vacuum nozzles. Inside the plenum is a replaceable filter which effectively removes micron-size as well as larger particles. ACKNOWLEDGMENTS The success of the 2321, embodying numerous technologies, is the result of the dedicated effort of many individuals in development, product testing, and manufacturing. To these individuals, the authors extend their sincere appreciation and acknowledgments. HYBRID SIMULATION OF A HELICOPTER W. J. Kenneally Avionics Laboratory, U.S. Army Electronics Command E. E. L. Mitchell, I. Hay and G. Bolton Electronic Associates, Inc. Princeton, New Jersey INTRODUCTION The recent and rapid increase in the application of the airmobile concept within the U.S. Army is well known. Accompanying the fact of the airmobile division, brigade, etc., has been the concomitant requirement for the development and improvement of the airborne electronics (avionics) to support this major innovation in conventional warfare. This increased emphasis for the development of new and more sophisticated avionic equipments and subsystems has led to the organization of an Avionics Laboratory within the U.S. Army Electronics Command. In the Avionics Laboratory, the problem of defining system performance character- . istics for advanced avionics has in turn generated a requirement for analyzing the tactical mission envelope of both existing and advanced Army air.. craft. One aspect of this particular task-that of evaluating avionics systems synthesized to provide particular mission capabilities has resulted in the development of a unique man-machine known as the Tactical Avionics System Simulator (Fig. 1). This simulator system integrates a real-time hybrid digital-analog computer (expanded EAI HYDAC 2400) with two operable cockpits-e.g., functional combination of crew inclosures, motion systems, synthetic instruments, control loading, and acoustic 347 and visual simulators (Fig. 2). As illustrated, the TASS includes all of the necessary subsystem hardware to provide for the simulation of the aircraft, the avionics systems and the external environment. The basic requirement in the implementation of this expensive and sophisticated system was that the crew be able to realistically "fly" the aircraft from hover thru transition to high-speed flight while providing the avionic engineer with a "hands on" simulation capability. The primary goal then was to develop a computer program that would provide for the realistic representation of the vehicle dynamics, which when coupled to the rather extensive "cue generators" (e.g., acoustic, motion, feel, and visual simulators) would generate an accurate and meaningful tactical environment and hence a valid base for the evaluation of various avionic equipments and systems. The first major system to be evaluated with the aid of this system was. that of the Advanced Aerial Fire Support System (AAFSS)-a next generation armed helicopter. Schedule requirements dictated that the hardware components that collectively comprise the TASS would be delivered only 75 days prior to the initiation of the AAFSS evaluation. The installation, checkout, integration" and computer programming for the evaluation were required to be accomplished in this 75-day interval. To 348 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 4 2 5 1 DIGITAL COIIPUTER 8 HIGH SPEEO ANALOG 11 COCKPIT MOTION SYSTEMS 18 CONTROL LOADING SYSTE II 2 HIGH SPEED ANALOG 7 DIGITAL CONTROL DESK 12 CENTRAL CONTROL DE SK 3 NON-LINEAR EQUIPIIENT 8 30"X30" X-Y PLOTTER 13 PILOT'S 17 VIDEO SPECIAL EFFIECTS GENERATOR 4 DIGITAL OPERATIONS SYSTEII 8' PILOT'S 14 GUNNER'S TERRAIN MODEL 5 231R ANUOG COIIPUTER 10 GUNNER'S COCKPIT COCKPIT Figure 1. Tactical Avionics System Simulator (TASS). p--------~--, '1 ::1':3J : I IJ . CO~~~~ERi~;'JHIC~E \ I L ________ ~::::::'l~-'" VELOCITIES u t----=:""';"-M )( DISTANCES La Ma No ANGULAR RATES pqr EULER ANGLES pqr CONTROL ETC. OXCG, OM ,Figure 4. Piv'ision of ta&ks between analog and digital sections. PILOT 351 HYBRID SIMULATION OF A HELICOPTER sections of the hybrid computer. With the requirement that the simulation be able to cover a full mission from takeoff to touchdown, a representative simulation of the airframe dynamics over all flight regimes was of great importance. 1-3 It was found that a straightforward, conventional analog program for the complete simulation would have required too large a complement of analog WIND Vw \f!w-' EARTH TO Uw,vw,W'II... SUMMATION BODY AXES FOR TOTAL U,V,W WIND VELOCITIES ... RESOLUTION DISTANCE FROM N,E,h --. BODY AXES UEJVEJWl TRAVELLED TO EARTH N.E. REFERENCE height FRAME XA ... VA... ZAo.. GROUND VELOCITIES equipment, and of this the major demand was from forces and moments produced by the main rotor. Hence, a division of tasks between analog and digital sections was arrived at by assigning all the forces and moments calculations to the digital section and integrating these forces and moments by continuous, parallel analog equipment to derive the required outputs. Ug, VO, Wo .. - a tMi LA ... MA--. NA ... ANGULAR RATES pq r . 8¢l/I EULER ANGLES ,. Ixx P. q ,r -- ~ FUEL RATE ~ STORES WEAPON~ Mi MASS,CG MOMENT dx CO ... OFINERTIA~ .... DXCG .... -" pq 'r ... -.. --- + AOSC AISC CONTROL Blse a PILOT ~TR -.. .. 8,cp,l/I --.... N, E. h U,V,W OM _ U, V. W -... Figure 5. Analog program-block diagram. 352 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 The scheme is shown in Fig. 4. The analog requirement was approximately 100 amplifiers, which left a considerable amount of equipment for the simulation of the flight control systems. The digital computation of the forces and moments of the main rotor, tail rotor and fuselage was accomplished in 50 msec, thus giving a sampling time of 20 samples per sec. : One consequence of hybrid programming is the existence of an interface between analog and digital sections. As a result of the sampling effects introduced, there is an unavoidable phase lag that can adversely affect loop damping within the simulation. However, using digital prediction on the computed forces and moments, equivalent damping to the real-world vehicle is obtained-up to about 2 cps natural frequency. Analog Section The analog program developed for the six degrees of freedom simulation followed the block diagram shown in Fig. 5. Here, the moments and forces pB~ generated digitally were integrated to give angular rates and body velocities, and these in turn wt:~re integrated to give vehicle orientation and distance traveled. The operations involved in the computation are primarily integrations and rotations of the velocity vectors from one axis system to another. Figure 6 shows the generation of angular rates and orientation angles of the airframe. So as to allow for continuous feedback paths around the rate integrations, the hub moments were linearized as functions of the control inputs A IS and B IS and spin rates p and q. These feedback terms were then allowed for by subtracting equivalent terms from the hub moments computed on the digital computer, so that only differences had to be transmitted. 4 AL = L - (LpP + + LqQ + LAlsAls LBlsBls) AM = M - (MpP + MqQ + MAlsAls + MBlsBls) ________________________________________________ VEttlCLE ~-P~~I£i p 8 u Figure 6. Analog simulation of angular rates and Euler angles. 353 HYBRID SIMULATION OF A HELICOPTER Since the moments due to velocity were not removed, these corrections were only close to zero at hover. It should be mentioned, however, that there was not really any approximation, since the net pitching moment at the analog integration at any instant did correspond to that computer digitally, but part of it arrived a little early to help reduce effects of phase shift. Values for the derivatives were obtained by measuring changes in the variable at various speeds and choosing compromise values to cover as wide a range as possible. Avionics, comprising an inner loop stability augmentation system and outer loop long-term stabilization were simulated by standard analog techniques to provide the necessary control inputs and feedback. Linkage Section Data transfer between the analog and digital sections of the simulation was controlled by a standard program written for the HYDAC 2400. This program provided for up to 20 channels of analog to digital and 12 channels of digital to analog conversion. The transfers were 12 bits and sign in a sign magnitude convention. The Input/Output Subroutine on the digital computer controlled all data transfer, reading a block of mUltiplexer channels on analog to digital input, and establishing voltages on banks of track/store amplifiers on digital to analog output. The analog to digital conversion at 70 J.lsec per channel was used to input the variables u, v, lV, p, q, r, Q, A os , A IS , B IS , f)TR and dx to the digital computer.- Since scale factors are normally different between the analog and digital sections of a hybrid computer, the scaling was adjusted by multiplying by a constant during the spare time while the next channel was being converted, before storing the variable in an input buffer. Because the number of DA converters was limited to six, voltages were transferred to two banks of track/store amplifiers to provide the equivalent of block demultiplexing. The first bank was used to output X, Y, Z, L, M, N to the analog computer, and the second outputted V T, Q MR. Spare channels in this bank were used for monitoring digital variables dynamically and were found extremely useful during debugging phase of simulation. Digital Section The digital section received inputs from the pilot's con trol actions through A os, A IS, B IS, f) TR, from the helicopter velocities u, v, w, the spin rates p, q, rand the rotor speed Q. The primary purpose of the digital program was to compute all forces and moments acting on and about -the center of gravity of the vehicle. The total forces and moments were then I UVW pq,r H IN/T/ALlZAT/Oli AOS MAIN AIS BIS ROTOR AERODYNAMICS RO OM W/M Rol f U~W .q,r LMR UVW AERODYNAMICS VARIABLES -~ ROr l OM LMR FXR FYR WM FUSELAGE ~ AERODYNAMICS XF v'F LRH MRH SUMMATION LFQMR MF OF FORCES AND ZF NF MOMENTS YTR QTR RO TTR~ UVW -----.. pq,r---tlo TAIL ROTOR AERODYNAMICS OM------ Figure 7. Digital program-block diagram. VT XA'YA' LA.M~ 354 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 transmitted to the analog computer 20 times a second, synchronization with real time occurring just before the input data ,block where a waiting loop was executed for the master timing pulse. The digital program generated these forces and moments by a succession of subprograms which calculated the effects of fuselaige, tail rotor and main rotor separately. These are shown in block form in Fig. 7. A secondary function of the digital program was to make various program options available during program checkout and running. These permitted printing of intermediate results, programmed halts, system checkout with test data, and for the hybrid operation, inclusion of a prediction computation to compensate for the 50-msec,delay introduced by the computation interval. Implementation of the: digital programming phase was concerned with coding and extensive checking. Fixed point arithmetic was used throughout the computation cycle, necessitated by the short cycle time required because of interaction with the continuous analog section. : The fixed point coding of the arithmetic operations was quite straightforward; once scaled equations had been written, occasional checks for overflow and improper divide being the only precautions taken. The main program embodied all the computation for the 12 rotor stations, ~ince this was by far the largest section of coding. ' Computations for the forces and moments of the other components, i.e., wing, tail, propeller, etc., were coded as closed subroutines mainly to simplify program organization and checkout and to simplify modification as the programs developed and the vehicles become more firmly defined. Communication between main and subprograms was by means of a common storage area so that no time was required to transfer arguments and results from one region of storage to another. Of the various programs shown (Fig. 7) by far the most important is that of the Main Rotor. Its organization was dictated by the requirement to step around the azimuth computing forces and moments on the disc at each point. The main rotor was represented by 12 stations defined by the azimuth \}t and station y-discussed previously. The sets of computations of forces and moments contributed by the stations \}t, y were essentially identical, differing only in the terms involving sin \}t and cos \}t. Because the values of \}t are multiples of 90°, clearly it was not necessary to evaluate all the sines and cosines; instead the program was arranged to branch to one of four paths at each of two appropriate points. For each path, it was then necessary only to add, subtract or omit corresponding terms equivalent to sin and cos of 1, - 1, or O. REFERENCES 1. "Simulation of Helicopter and VSTOL Aircraft," vol. 1, Navtradevcen 1205-1. 2. "The Simulation of Helicopter Motion and Avionics System," PCC Report 65-6, Electronic Associates, Inc., R & C Division, Princeton, N.J. 3. "Preliminary Dynamic Report for Trainer SH-3A (HSS-2) Weapon System," Navtrad(!vcen 1524-5. 4. M. Connelly and O. Fedoroff, "A Demonstration Hybrid Computer for Real Time Flight Simulation," AMRL-TR-65-97. A TIME-SHARED HYBRID SIMULATION FACILITY R. Belluardo, R. Gocht and G. Paquette United Aircraft Corporation Research Laboratories East Hartford, Connecticut INTRODUCTION accommodate several problems. The second of these requirements was met by selecting a digital computer system and designing a hybrid linkage system such that each user, whether hybrid or digital, would find this system as easy to program and operate as he would a single non-time-shared hybrid computer. A Digital Equipment Corporation PDP-6 Digital Computer was selected for this purpose. 3 This computer is equipped with a core memory of 65,000 36-bit words and 16 high-speed storage register / accumulators. Cycle time for these memories is 1.75 microseconds and 400 nanoseconds, respectively. Five teletype stations, six Dectape units each capable of storing about 65,000 words and a paper tape reader constitute the input/output devices for this system. Randomly addressable core storage associated with a single processor can be expanded to 262,000 words. The system can accommodate several parallel processors. The number of teletype stations can be expanded to 64. A schematic of the complete system is shown in Fig. 1. This computer will simultaneously accommodate several problems in real and non-real time in addition to several users involved in utility operations such as edit, assemble, compile and debug. Each user's program resides in a portion of core memory and is protected from all other users by hardware and software features incorporated in the machine. On-line communication with the system permits use of symbolic debugging techniques with resulting The capability for combined analog-digital computation at the United Aircraft Research Laboratories was greatly expanded in January 1966 by the addition of a large-scale, time-shared, generalpurpose digital computer and a pool of hybrid linkage equipment which can be distributed to any of four analog consoles. The digital computer timesharing system provides hardware and software for the simultaneous use of the system by several users at teletype consoles. This expansion was necessitated by the increased demand for time on an existing hybrid facility which has been in operation since December of 1962.1,2 Typical uses for this equipment include determination of static and dynamic performance characteristics of rocket engines, jet engines, fuel controls, helicopters, and V/STOL aircraft. GENERAL The ability to efficiently and simultaneously handle several problems of varying size and complexity, and ease of utilization were the basic requirements which influenced the selection of components for this system. The first of these requirements was met by selecting a digital computer capable of performing both time-dependent (real time) and non-time-dependent calculations on a machine sufficiently fast and large enough to simultaneously 355 356 16 K CORE MEMORY 16 K CORE MEMORY PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 MEMORY BUS ARITHMETIC INPUT/OUTPUT BUS PROCESSOR 16 WORD FAST MEMORY PAPER TAPE READER Figure I. TELEPRINTER CONTROL DATA COMMUNICATION SYSTEM DATA CONTROL DECTAPE: CONTROL. HYBRID LINKAGE Schematic of digital computer. reduction in large problem checkout time. Finally, initial and operating costs are low enough so that relatively long periods of time at one of the consoles are still economically feasible. Basic to this digital system is a 6000-word executive routine which provides overall coordination and control of the total o]l>erating system. Additional software packages available include an editor, FORTRAN II (FORTRAN IV is currently under development), a macro-assembler, a relocating linking loader, a desk calculator and a symbolic debugging program. . The present hybrid linkage system contains a Raytheon Multiverter which combines a 48-channel multiplexer with a 14-bit analog to digital converter. Total conversion time is under 40 microseconds. The system also contains 40 Adage Model 4W13 digital to analog converters. These units feature ± 128 volts output and 14-bit accuracy. Since the system was designed as a multi-user system, it was felt that all users should be able to address particular D / A's or A/D's beginning with address O. This was acc,omplished by designing address relocation hardware for the linkage system. Basically, relocation constants are added to A/D and D / A addresses. These constants are predetermined numbers that are functions of how many D / A's and A/D's are assigned to other users. Protection hardware which prevents inadvertant addressing of converters assigned to another user was also designed into the system. The remainder of this paper is concerned with a detailed description of the hybrid linkage system and modifications to the PDP-6 monitor system that were required to make time-shared, time-dependent computing possible. THE HYBRID LINKAGE The possibility of having several hybrid simulations in progress sim ultaneously on one dngital l~om­ puter creates a need for a rather special hybrid linkage. Over and above the requirements that each analog computer have the appropriate numbc!r of accurate, reliable and fast converters are the special requirements imposed by the use of one digital computer to service several analog computers. The solution to this problem was found by using a pool of linkage equipment which could be distributed easily and effectively. The analog to digital converter channels and the digital to analog converters are distributed to the four analog consoles by a patch board located within the PDP-6 hybrid linkage as shown in Fig. 2. SpecialIj 0 Instructions and Analog Assignment A PDP-6 user cannot normally execute: any input/ output instructions. Input and output are performed by the monitor on request from a user. Devices must be assigned to a user before h·e can expect to use them. In order to make the use of 357 A TIME-SHARED HYBRID SIMULATION FACILITY HYBRID LINKAGE DIGITAL COMPUTER I PATCH BOARD ANALOG COMPUTERS REMOTE TELETYPES I CONSOLE 0 .....--------:-/ \ [!ill r-A-'--N-A4~L~-G-T-~ 40 DIGITAL TO ANALOG CONVERTERS DIGITAL CONVERTERS CONSOLE I IPDP-Sl--I DISCRETE DISCRETE IN OUT I CONSOLE I REAL TIMEJ l CLOCK Figure 2. Once set up the hybrid linkage allows each programmer, both digital and analog, to address analog to digital converters and digital to analog con- :3 Hybrid linkage. hybrid equipment as simple and as fast as possible, the in-out instructions on the PDP-6 were divided into two classes; the normal in-out instructions which are illegal for a user and the special instructions which are legal for users. Most instructions for the hybrid linkage are legal for all users. One user cannot, however, affect another user's hybrid equipment. This protection is accomplished by both software and hardware features. Once a user has been assigned a specific analog console he can use only that portion of the linkage connected to that analog console. The monitor turns on the correct portion of the linkage whenever a job is selected for running. The monitor can actually turn on anyone of five analog consoles. These are con- . soles NONE, 0, 1, 2 and 3. Console NONE is turned on for all users lOot assigned a specific analog console. A user cannot change analog console assignment except via the monitor commands. Patch Board Wiring and Converter Addressing CONSOLE 2 verters starting at address O. Each analog program will use as many A/D's and D/A's as is needed. The corresponding digital program will address the converters by identical addresses. This addressing scheme applies to all "four" hybrid computers. A particular program will not change from day to day as the converters are distributed to users in different arrangements. Of course the total number of converters is limited. This addressing scheme also protects each user. In order to properly distribute analog to digital converters and digital to analog converters to the analog computers the hybrid linkage must be "set up." This requires a patch board to be wired and inserted in the patch bay at the hybrid linkage. The number of converters used on each console must also be entered in a toggle switch register. The linkage hardware will then automatically relocate converter addresses so that each user starts addressing with number O. Since this addressing is perhaps the most unusual feature of this hybrid linkage a more detailed description is in order. The outputs of all digital to analog converters appear on the patch board in the hybrid linkage. The analog computer patch panel 358 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 positions that are to be used for D / A outputs are also wired to this patch board. The D / A outputs must be patched to the analog computers in an orderly way. The D / A outputs are used starting at number o. The required number of converters for console 0 are wired in order. ;The next consecutive group of D / A converter outputs are wired to analog console 1, starting with position 0 on console 1. The next group is wired to console 2 and the final group to console 3. The number o( converters delegated to each analog console is then entered on the toggle switch register. The analog' to digital converters are distributed in the same marmer. Figure 3 is a block diagram of the address calculating hardware. The six-bit address comes directly from the programmer's in-out instruction. The console number is selected' by the time-shared monitor. The numbers No, N j, N2 and N3 are set in the toggle switch registers and correspond to the number of components of this type assigned to the corresponding analog console, Consider an example. Let console 2 be selected and No = 10, N 1 = 10 and N2 = 4. The program addresses converter number 3. The output of the subtractor signals an illegal address when the result of the calculation is zero or negative. 4 - 3 is positive and therefore does not signal an illegal address. The addition circuit will add 3 to No + N 1 and will therefore calculate 23. If the patch board wiring is examined at this point, converter number 23 will be found wired to patch panel position 3 on console 2. As a second example, suppose console NONE is selected and the programmet addresses channel O. The subtractor signals an illegal address and the converter action is inhibited.; Any illegal converter reference would result in this same action. Summary of Linkage Instructions In this section an outline of the use of each component in the hybrid linkage,.is given. This is done without going into a detailed description of the instruction or data formats. These instructions are exactly the same for any of the "four" hybrid computers. Two instructions are used with the digital to analog coilVerter system. One instruction is used to select a converter address. ; The other instruction transfers data to the selected converter. Each data transfer instruction will increment the address by one. Consecutive data transfers will load consecutive converters. Three instructions are associated with the analog to digital converting system:. One loads the con- verter address and starts the converter, another transfers data to the computer. The third instruction is used as a skip instruction for timing purposes. This instruction will skip when conve:rsion is complete. As the data is transferred into the computer the converter address is automatically incremented by one and the next conversion is started. Discrete inputs can be read from each analog console into the user's digital program. Discre:te outputs can be set at each analog console from the user's program. This requires two instructions; one to read and one to set. There are 12 of these discrete inputs and outputsperrYlanently assigned to ea1ch analog console. The hybrid linkage contains a millisecond clock that is used mainly by the real-time monitor for all timing control. Any user can, however, read the clock. This is useful in computing times Ifor program execution within one computing time interval. TIME-SHARING SOFTWARE Time-dependent problem solutions using the digital computer combined with dynamic devices, as in hybrid simulation, require execution of th,e digital program within a repeated, fixed time interval while the problem is operating, i.e., compute mode, in analog terminology. In previous hybrid computation at United Aircraft Research Laboratories the repeated digital program cycle and the execution time were the same. In many instances, the repe tition rate, or duty cycle, need not be as short as execution time. With a longer duty cycle and/or a faster computer, a portion of the duty cycle can be shared with program service activities. By minimizing the ratio of time-dependent program, execution time to an acceptable duty cycle, a number of these programs can coexist within a common duty cycle. Time-Sharing Control Software control is provided to accomplish time sharing by the PDP-6 Multiprogramming Syste:m. 4 This system includes a resident monitor which handles input/output service and schedules user program execution. Using the PDP-6 priority interrupt channels, the monitor sequences programs based on delayed input/output reque:sts, clocked timing, and user's programmed or teletyped commands. As shown in Fig. 4, service is provided, in order, to input/output device requests, monitor service requests from user software or teletype, and a round-robin sequencing of user programs. 359 A TIME-SHARED HYBRID SIMULATION FACILITY 6 BIT ADDRESS FROM PDP-6 t__-----,~ 6 BIT RELOCATED ADDRESS TO CONVERTER ILLEGAL ADDRESS SIGNAL ANALOG CONSOLE SELECTED (0) 6 BIT RELOCATION CONSTANT _(_O_)_ _ _ _ _ _ _ _ _ _ _ _~..~~t-----------~ ~N~2_____~-N-O-+-N-I-+~N...2~~t------------~ Figure 3. Converter addressing. Programs in the round-robin include the users software as well as library routines called by the user such as editor, FORTRAN, etc. Exact, repeated interval control is not a function of the basic monitor. Clock control is used to terminate programs in order to prevent long operation of a, single user without looking at the service requirements of others. However, clock control is at low priority and is often deferred for monitor or inputj output functions. 360 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 In order to implement this form of time·,sharing, a number of new features were added to the monitor. These functions, described below and s.ummarized in Table 1, include control of: 1. 2. 3. 4. Duty cycle User time Time synchronization Hybrid linkage assignment The last is provided for the assignment of proper linkage hardware to each user. Duty Cycle ORIGINAL DEC MONITOR UACRL Figure 4. MONITOR Monitor priority. Exact timing of time-dependent users has been designed into the monitor using the UACRL clock at high priority. The time-dependent programs are sequenced within an accurateJ repeated time interval (the duty cycle) preset to a desired value in milliseconds. Each time-dependeht user receives a preassigned position and time in;terval within the duty cycle. ' Dectape and teletype reading and writing operations can interrupt time-dependent service. Any of the routines used at this high~r priority is completed well within one millisecond. i Their combined use over the duty cycle should n~ver exceed 10% of the duty cycle. The current time-sharing at UACRL permits up to 95% of the established duty cycle for timedependent use. Time-dependent users are commutated within the duty cycle in ia queue separate from the round-robin of non-time~dependent users. The remaining 5~~ of the duty; cycle is reserved for monitor functions and the round-robin. While the percentage for non-time-dependent use seems small, time-dependent users often' operate in compute mode for reasonably short~ infrequent intervals. When compute mode does not exist, most of this user's time is returned to ~he system for lower priority service. ' i The duty cycle can be set by a teletyped command TSET x, where x is the desired duty cycle in milliseconds. This command is accepted by the monitor only when all time-dependent jobs are absent since the duty cycle affects all time-dependent users. If a user attempts to set the duty cycle when it is protected, he receives a typed return indicating the number of a job still in time-dependent status and the original duty cycle is retained. A command TCLEAR can be typed by a residlent time-dependent user to permit a duty cycle change while retaining his original memory and equipment. He must reinstate his timed operation by a TJOB command, described below, once the new duty cycle is set. One command, TREAD, can be entered from teletype or from the user's program to access timing information. As a teletype entry, TREAD will yield a printout of the duty cycle, time-dependent job numbers and their reserved time intervals, and time left for additional reservation (balance of 01.95 duty cycle in the present system). The use of TREAD as a programmed operator results in the transfer of the duty cycle value to a designated machine accumulator. This information is useful in calculating data affected by the time interval as a problem initializing operation. User Time With one time-dependent user in the syste:m, execution of the program at the start of each duty cycle would provide accurate cycling. Program execution time varies due to data values and program branching and interruptions, but accurate time cycling of one user is possible by converting analog information at the start of the cycled program. With more than one time-dependent user, the second and later users must be assured of simillar 361 A TIME-SHARED HYBRID SIMULATION FACILITY Table 1. Influences Summary of Commands Added to the Monitor Source Command Action Errors Telfotype TSET x Set duty cycle to x in milliseconds if none of the jobs are currently in timedependent status. x) 8191 or x ~eletype =0 Response Ix MSEC CAN'T BE SET j IS A TD JOB Duty cycle protected by existing time-dependent job. None Carriage return/line feed Teletype TCLEAR Release duty cycle protection for initiating job. None Carriage return/line feed Teletype TREAD Type value of duty cycle, reserved user intervals, and remaining time available for time-dependent use. None In Duty Cycle MSEC DUTY CYCLE JOB NUMBER r.rIME ml jl mL h Ix MSEC AVAIL None Program TREAD Transfer value of repetition time to specified accwnulator. None Teletype TJOB y Establish a reserved time interval, y, in milliseconds, if available, and set duty cycle protection for the initiating job. y> (0.95 Duty Cycle z MSEC AVAIL less sum of existing reserved intervals) None Carriage return/line feed User Time Teletype TJOB 0 Release the execution time interval (or set zero time) for the initiating job. Duty cycle protection is set. None Carriage return/line feed Program TSYNC Return control to the monitor for job switching and signal the execution of the succeeding instructions in the initiating job when its next execution interval begins. Execution when job does not have nonzero reserved time interval. TSYNC FROM NON TD JOB Time Syncronization Teletype ENABLE ANAx Hybrid Linkage Teletype DISABLE ANAx or DISABLE Reserve analog console x linkage for the initiating job, i f available. The physical hardware assignment exists only during this job's operation. Only one console may be assigned to a job. Release analog assignment for the initiating job. TD JOB TIMED OUT TSYNC instruction not executed before clock interrupts time-dependent job. None None Device previously enabled by another job. ANAx ENABLED FOR JOB j Nonexistent console NO SUCH DEVICE number. Illegal device name DEVICE CAN'T BE ENABLED None Carriage return/line feed None - note, wrong address is ignored and any console that was assigned is released. Carriage return/line feed 362 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 cyclic scheduling. This is accomplished by requiring all time-dependent users to establish a reserved interval within which they must complete their operation. Any time not needed by the assigned user, within his time interval, is a,lotted to the queues of non-time-dependent operati0ns. Time-dependent programs operate at high priority following each interrupt I for successive reserved intervals until all job intervals are exhausted. The remainder of the duty cycle is used for non-timedependent job functions. If all job operations are exhausted, the remainder or the duty cycle is spent in counting this dead time (the null job). The null job data is a useful indicator of computer utilization. Figure 5 illustrates the ~ubdivision of the duty cycle. The monitor schedu!les all these operations within separate queues with high priority given to the time-cycled queue. The information supplied to the clock comes from a ring table in sequence. This table contains the reserved job intervals and the Ne.xt Time Dependent User Last Clock Interrupt balance of the duty cycle. Thus, with two timedependent users active, the executive sequences three time values to the clock which determine the interrupts. When the executive responds to an interrupt, it sets the clock interval for the next operation. This will always occur within the first clock count after interrupt was signaled. Should the interrupts occur during execution of a time-dependent program, the job is reduced to round-robin operation and is informed of the error via teletype. To establish an interval for the user a command TJOB y is typed into the system, where: y is the interval in milliseconds to be reserved for the initiating job. A time slot is then entered at the end of the time-cycled queue for the user. The: time: requested should represent maximum program execution time plus a buffer time for higher priority inputj output and program swapping. This buff,er is recommended as 10% of execution time or one millisecond, whichever is largest. The sum of reserved intervals must be less than Service and Response to Monitor Command Exit By TSYNC Cornrnutated Round-Robin usersl Exit At Termination Null Job E.xit At Termination *Next Clock Interrupt Time-Dependent Job Interval First Timed Last Timed Continue non-time II-_u..".s.:oo.er_In_.:tw.:oe....r...,;:v...a....l ___---tI .. ·· .. 1-1__u_s_e_r_In_t_e_r_v_a_l_ _ _t--_C..;.y_C_l_e_d_Op.;;....er_a_t_~_.o_n_ _ _--f Duty Cycle Interrupt T ** j Interrupt Ta Interrupt Next Duty Cycle Interrupt Duty Cycle * This interrupt must occur after time-dependent user service. ** T. must occur before 0.95 of duty cycle. J Figure 5. Time sequences. *This interrupt must occur after time-dependent user service. **Tj must occur before 0.'95 of duty cycle. A TIME-SHARED HYBRID SIMULATION FACILITY 0.95 of the duty cycle. Should an excessive interval be specified, an error response will be typed and the user denied entry to the time-cycled queue. A command TJOB 0 can be used to release the user's reserved interval but retains protection of the duty cycle. This allows for additional sharing of cyclic operation by two or more cooperating users. Since they require time cycling only during active analog linked computing in simulation, an often small percentage of total use of the computer, users may successfully alternate time-dependent and round-robin operation. Time Synchronization While the TJOB command reserves an interval for the user, it does not actually enter his program into cyclic operation. A programmed operator TSYNC must be executed within the user's program to accomplish the transfer. Prior to execution of this instruction, the reserved time interval was used for non-time-dependent functions. The TSYNC command will result in an error return if it is encountered without a reserved interval being previously set. This includes the condition of zero time reserved with TJOB o. When TSYNC is correctly executed, the user's operation is terminated for the remainder of the current duty cycle whether he was operating in time-cycled queue or round-robin. When this user's interval is entered during the next duty cycle, the program begins execution at the instruction following the TSYNC. Thus, the TSYNC command provides for initiating and maintaining time-cycled operation. Termination of timed operation occurs when nonhybrid input/output is attempted or the user signals an exit from program branch or teletype. While input/output service results in termination of cyclic operation, this monitor controlled service proceeds legally at its lower priority. Automatic return to cyclic execution is possible if the user provides a TSYNC after completing the input/output programmed operator sequence (Table 1). Hybrid Linkage Assignment The monitor provides for user assignment and protection of hybrid linkage as provided for any 363 other input/output device. The teletyped command, ENABLE ANA x, allows a user to reserve analog console x for his needs. Once assigned to a specific user, only that job is permitted to access the actual equipment. Only one console can be assigned to a job. A subsequent analog ENABLE, calling for a different console, will result in the release of the prior console as well as enabling the newly specified console. Hardware assignment of the hybrid linkage takes place whenever the job is selected for operation regardless of which queue contains the job. In this way, round-robin operated debugging can include analog equipment. The reserved equipment can be released by a corresponding DISABLE ANAx, or just DISABLE, as well as the job canceling KJOB.4 CURRENT STATUS The entire system which includes the digital computer as delivered by Digital Equipment Corporation, the hybrid linkage as designed and assembled by United Aircraft, and the modifications to the standard PDP-6 monitor as implemented by United Aircraft has been operating satisfactorily as described since February 1, 1966. REFERENCES 1. R. Belluardo, R. E. Gocht and G. A. Paquette, "The Hybrid Computation Facility at United Aircraft Corporation Research Laboratories," Proceedings, DECUS (Digital Equipment Computer Users Society), 1963, Maynard, Mass., pp. 261-269 (1964). 2. G. A. Paquette, "Progress of Hybrid Computation at United Aircraft Research Laboratories" Proceedings, 1964 Fall Joint Computer Conference. 3. "Programmed Data Processor-6 Handbook," (F-65), Digital Equipment Corporation, Maynard, Mass. 4. "PDP-6 Multiprogramming System Manual," (ACTOO), Digital Equipment Corporation, Maynard, Mass. HYBRID SIMULATION OF A FREE PISTON ENGINE R. E. Gagne Mechanical Engineering Division, National Research Council Ottawa, Ontario, Canada and E. J. Wright Free Piston Development Company Kingston, Ontario, Canada INTRODUCTION Unfortunately, however, the lack 'of any mechanical connection to the pistons, other than a simple rack and pinion system to maintain an out-of-phase relationship between the pistons, presents a piston control problem which does not exist in a crankshaft engine. This problem is one of ensuring that the pistons do not exceed certain mechanical design limits irrespective of engine loading. It was principally to investigate various piston control schemes that this simulation of a specific engine was undertaken. The ability to implement any control action without the expense of tooling special components and without the risk of mechanical damage has shown the hybrid simulation to be a valuable design tool. A number of attempts have been made to simulate the free piston engine in the past 2- 4 from which we concluded that neither the analog nor digital computer simulations alone provided the most suitable means of handling the problem. It was felt that the ability of the analog to handle the system dynamics and to allow intimate operator contact with the problem should be teamed with the digital , computer's ability to perform the thermodynamic calculations involved; and this hybrid approach seemed a most reasonable way to proceed. . In this discussion we will describe our hybrid The free piston engine principle is one which has intrigued mechanical engineers for decades. Indeed, the original gas engine of Otto and Langden employed a piston assembly which did not contain the now conventional connecting rod and camshaft arrangement I and hence may be considered as an early implementation of the free piston principle. Today, however, the free piston principle is normally applied to a highly supercharged two-stroke compression ignition engine in which two opposed reciprocating pistons are used in a diesel cylinder. These pistons do not transmit mechanical energy but instead pneumatic energy is delivered in the form of high-pressure, high-temperature exhaust gas to a separate power turbine to obtain shaft power. Such an engine has great performance potential in that it combines the superior thermal efficiency of the diesel cycle and the flexibility of a free turbine drive with a basic mechanical design simplicity in which highly stressed rotating members are absent. Further, unlike the conventional engine arrangemen,t, complete dynamic balance of the pistons is obtained so that the engine is vibrationless, thus eliminating any need for complicated and expensive vibration isolation mountings. 365 366 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 approach to this problem, confining ourselves to a discussion of the simulation itself rather than the results obtained from it. We use it only as a vehicle for exhibiting the power of hybrid simulations of systems of this type. THE HYBRID COMPUTER The hybrid computer available to us was certainly modest compared to systems available today. It consisted of an Electronic Associates 131 R analog computer, a Control Data (nee Bendix) G 15D digital computer, coupled together through an Epsco 8 x 8 converter system. The analog equipment has been modified to allow individual mode control of some integrators; all mode relays were replaced with the faster and more dependable reed type, and a scheme for master mode controlling the equipment from the digital computer was implemented. The system is shown in Fig. 1. The patchable logic used was a small logic trainer, the Digiac 3010, which interfaced to the individual mode control relays of the integrators through re- lays. The comparators used were analog amplifi(!rs with suitable diode feedbacks. The limited dynamic performance of the;~ analog equipment required that the simulation be run at a much reduced time scale, which certainly detracted from the operator's 'feel' for the problem. As well, since the digital computer is also slow, the calculation times were quite long, and this calculation speed was further decreased over that possible with machine language programming by using all programs, including interface control, written in ALGO. s The slow computing speed was possible only by halting the simulation at both ends of the engine stroke at which time the digital calculations were donie. ENGINE DESCRIPTION The free piston engine consists of a pair of opposed pistons which are constrained to move out of phase under the influence of gas pressures existing in chambers adjacent to them. The pistons do not transmit mechanical power as in conventional crankshaft engines, but instead serve to provide;: a IIADDAYERTER" CONVERTER· SYSTEM 1---------1 I I I I I G -15 D DIGITAL COMPUTER I D-A CONY. I MAG. TAPE IK INTERPRETIVE MEMORY OR 2K MACHINE MEMORY PAPER TAPE I I I I I .-'" TYPE 8 CHANNELS A-D CONV. I I ANALOG MODE CONTROL I I I I TIMING UNIT I 2 CONSOILES EACH OF I I I I I I I 48 AMPLIFIERS .... I I 1_____ I I I I I I I r-----..J DRUM TIME OPTION Figure 1. 131R ANALOG COMPUTER I I ~- ~ I I I I I I I I WRITER 1 CHANNELS I I National Research Council's hybrid computer. PATCHABLE LOGIC I HYBRID SIMULATION OF A FREE PISTON ENGINE cylinder of varying volume in which the chemical energy of liquid fuel may be released in a highly supercharged and effiCient diesel cycle to generate hot, high-pressure exhaust gas. This is subsequently passed through a simple gas turbine wheel to obtain mechanical power. Figure 2 is a diagrammatic sketch of an outward compressing machine and it shows one half of the engine. The engine is essentially symmetrical about its centerline, except that it is usual to arrange the exhaust ports and intake ports of the diesel cylinder to be controlled by separate pistons. For convenience, however, these ports are both shown on the same side. Further, because of the symmetry of the engine, it is convenient to simulate the motion of only one of the pistons. The remainder of the discussion is limited to a consideration of this case. The piston itself serves to divide the cylinders into three separate expansion chambers. The complete cycle of events in each of these chambers is as follows: 1. With the piston close to the engine centerline, fuel is injected into the diesel cylinder and combustion takes place. The resulting high pressure stops !Ly-~-YBR 2. This outward movement of the piston compresses air contained in the compressor and bounce cylinders. 3. As the piston uncovers the exhaust ports, the gas in the diesel cylinder expands through the ports causing a reduction of pressure in the diesel cylinder. This process is normally referred to as the blowdown process. 4. As the piston uncovers the intake ports, the compressor pressure just exceeds the transfer duct pressure and the pressure-sensitive delivery valves open and deliver air to the diesel cylinder via the transfer duct. -This air scavenges the exhaust gases from the diesel cylinder, replacing them with fresh air. The mixture of exhaust gas and some scavenge air is stored in the exhaust receiver for subsequent delivery to the turbine at an almost constant rate. 5. Further movement of the piston is resisted by the increasing pressure in the bounce chamber along with piston ring friction forces and it finally comes to rest at its outer dead point (OOP) position. 7. On the return stroke, compressor pressure decreases to just less than atmospheric pressure at which point pressure-sensitive suction valves open admitting air from the surroundings to recharge the chamber. "jr---If'-------I I I/nletP~ 8. As the exhaust ports close, the air trapped in the diesel cylinder is compressed in readiness for the next combustion. PBREF about 9. The reducing pressure in the bounce cylinder is prevented from falling below a desired minimum value by supplying air from some reference source. Such makeup is required to replace leakage from the bounce eylinder. This cylinder is used as the primary means of controlling piston motion. This completes the cycle. Simplified free piston engine. One half of engine shown. Engine symmetrical about center line. In the absence of a crankshaft, starting of the engine is accomplished by locking the piston in a position close to the normal outer dead point (OOP) position and charging the bounce cylinder with air at a high pressure. Release of the piston produces a rapid-inward movement which compresses air in the diesel cylinder in preparation for injection of the fuel. FU'I/lYEX Inl,ct r- Exhaust Port t PATM "2 of POEL Exhaust Receiver enoine shown En~i;~te~y~:e~trical -~ 711/"n. Narrle/ Figure 2. the inward movement of the piston at its inner dead point (lOP) and forces the piston to move outward. 6. The high-pressure bounce air, coupled with the air trapped in the clearance volume of the compressor chamber, supplies the necessary energy to return the piston to its inner dead point (lOP). I. ."'I--------YCR----~ PO 367 LJ" 368 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 PO 20 O-------{ lOY -SGN(Y) ~5 ---() Figure 3a. Analog circuit. Time scale 400: 1. Dynamics: L = PNB. (ACBK) 2400 + 200m PD rAD) _ Pcr AC) _ PB rAB \ __1_ (FC\ SGNi(Y) 20 ,10m \200m 20 \lOm} 10m \20} All pressures in pounds per square inch; all areas in inches squared; mass in slugs; all dimensions in inches. 1 Meg. 1fl 2 PO/100 Blow Down -PO/100 PD/20 >---------l~------O lOY -lOY 2 c.---4 i---------l (±) FC - 20 DIESEL CYLINDER -FC/20 FC/20 -100 +100 F/100 ~ 2000 FUEL SETTING FRICTION -100 100DN -100 0.050 PR.ESET EXHAUST NOZZLE DIAMETER Figure 3b. PERIOD MEASUREMENT Analog circuits. 369 HYBRID SIMULATION OF A FREE PISTON ENGINE Y/20 PC -'1/20 -PC PC lOY YB 10 -100 COMPRESSOR CYLINDER -100 PB/20 Y/20 -PB/20 -'1/20 ~ "2 PB/20 lOY BRESET YCR-YCL 10 BOUNCE CYL INDER Figure 3c. Analog circuits. Time scale 400: 1. DIESEL CHAMBER EQUATIONS Solving for the diesel pressure, PD, during the polytropic expansions when the ports are closed, and no combustion is occurring, requires solution of the equation (PD) vn = const If the expansion and compression processes are assumed to be isentropic, then this equation becomes: (PD) y'Y = const where'Y = cp / C v for the gas, cp = specific heat at constant pressure, C v = specific heat at constant volume, and y = effective diesel cylinder length uncovered by the piston. Differentiating this equation, a first-order equation is obtained for diesel pressure d (PD) dt" = - 'Y(PD) dy y dt (1) Although it is known that 'Y is a function of temperature and hence varies in magnitude during the expansion and compression processes, a suitable mean value is used to simplify the simulation. Such approximations are common in engine calculations and are normally quite acceptable. Comparator circuits and patchable logic are used to detect when isentropic expansion or compression should be taking place, i.e., when Eq. (1) is valid, and the integrator of Figure 3b which generates (PD) from Eq. (1) is kept in the hold mode at all other times by this logic. Since the inward isentropic compression is of air, and the outward isentropic expansion is of hot gas, both at quite different mean temperature levels, a separate value of 'Y is used in each case. 370 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 ~ • Y/20 - lOY~CPC CPC -10Y3 Y3 > Y Cl 0-----0[{OCO] PD/20 2000~[ 3 20t ] 1 OYC 10Yo-Q[1~] 100DN PC -VSET ~SET C2 • ~VDT Y/20 C3 • lOY~XH 10YEX C4 VSET < 0 SET Y> 0 VDT Y '_:-_l2000] o.----G [2cigci] <>-----G [rg] o.----G [DN] Y > VEX EXH ANALOG/DIGITAL CHANNELS PD/20 ~ ':EX -PDEL/20 ~ PC~ ':NL -1.15PDEL~ PEX = INL PB/20 ~ ....BREF -PBREF/20 ~ BREF -PC ~ ....ATM 0.95PATM ~ ATM PD > PDEL PC > 1.15PDEL PB > PBREF [SET J N~~T ~ [PDEL] 2000 ~ [Y3] 10 ~ PC > 0.95PATM [ COMPARITORS PD~ 2000 ] Q---o -VSET -PDEL 20' -10Y3 -PD~ 20 DIGIT ALLANALOG CHANNELS Figure 4. Comparitors and converters. The assumed indicator diagram for the diesel cylinder is shown in Fig. 7a.As seen in the program flow chart of Fig. 6, the simulation is halted at the lOP and OOP piston positions. At the lOP position, combustion occurs which causes an instantaneous pressure rise followed by a constant pressure expansion before isentrqpic expansion occurs. When the exhaust ports open, the diesel pressure falls to the exhaust receiver pressure, and this drop is assumed to occur exponentially. Again, suitable logic is used to detect when Eq. (2) is valid and the circuit of Fig. 3c results. The compressor chamber indicator diagram is shown in Fig. 7b. On the inward stroke, isentropic expansion of the clearance volume air occurs until the compressor pressure is just less than atmospheric pressure, causing the suction valves to open and admit air. For the remainder of this inward stroke, PC is constant and is given by COMPRESSOR CHAMBER EQUATIONS where the factor accounts for suction valve: pressure drop. On the outward stroke, isentropic compression occurs until the compressor delivery valv,e leading to the transfer duct is open, at which time we have By similar arguments, the 'isentropic portions of the compressor cycle are described by solving d(PC) ---;Jt = - 'Y(PC) d(yc) yc dt (2) where PC = compressor pressure and Yc effective compressor chamber length uncovered by the piston. PC = 0.95 P atm PC = 1.13 P del where P del = exhaust receiver pressure, and the factor accounts for pressure drops through the 371 HYBRID SIMULATION OF A FREE PISTON ENGINE where bounce chamber pressure, effective bounce chamber length uncovered by the piston, and a leakage factor. When, due to leakage, the bounce pressure drops to below a desired bounce reference pressure, P BREF , the bounce chamber is connected t~, a reference pressure source by a pressure sensitive valve to hold the minimum bounce chamber pressure constant. The analog circuit generating PB is shown in Fig.3c. compressor delivery valves and the intake and exhaust ports of the diesel. Provided the exhaust receiver is large compared with the swept volume of the diesel cylinder (of the order of 3 times), it can be assumed that P del is constant over that portion of the cycle when the exhaust port is open, without sacrificing accuracy. (In the actual engine, P del changes in the order of 5% over a complete engine cycle.) BOUNCE CHAMBER EQUATIONS PB Yb PISTON DYNAMIC EQUATIONS The bounce chamber indicator diagram is shown in Figure 7c. This chamber acts essentially as a pneumatic spring in which leakage from the chamber results in a pressure loss during the cycle. This leakage, which occurs past the piston sealing rings, is proportional to the instantaneous bounce pressure in the chamber. Thus the equation to be solved The forces acting on the piston are due to the pressures in the various chambers along with piston ring friction. For dimensions in inches, piston mass (m) in slugs, and pressure in pounds per square inch, the equation describing piston motion is: IS: d(PB) ~ = ~:~:o----D -A{PB) d(Yb) _ a(PB) Yb dt htll (3) (4) =D-~BHOLD ~ 0 ==p>---+--+---1 :::o----D "iJ------O MR O--------Q BRESET DHOLD BOUNCE CYLINDER BHOLD ,= MH + BREF. VDT BRESET = MR DRESET MR SET~PRESET DIESEL CYLINDER DHOLD = EXH + MH + CPC·VOT DRESET = MR + SET·VDT MH~PHOLD VOT PERIOD GENERATOR PHOLD ,= MH PRESET = SET·VTIT + MR INL~ VDT . MHo-_-+----+-_ _ _ _~ CHOLD VDT ATM VDT MR 0 0 CRESET MASTER HOLD = MH COMPRESSOR CYLINDER CHOLD = INL'VDT + ATM·VOT + MH CRESET = MR ANALOG OR DIGITAL HOLD MASTER MODE CONTROL ~:~_J'\B PEX ~T.PEX EXHAUST TIME CONSTANT Figure 5. Control logic. 0.-0--0 ANALOG OR DIGITAL RESET MASTER RESET = MR 372 where PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 PNB negative bounce chamber pressure (constant), cross-sectional area of· negative ACBK bounce pist~n surface, Ad cross-sectional area of diesel piston surface, Ae cross-sectional area of compressor piston surface, Ab cross-sectional area of bounce piston surface, and Fe frictional force (assumed constant). The scaled equations and analog circuit are shown in Fig. 3a. MOOE SWITCHING LOGIC The logic signals necessary to control the simulation are obtained by use of the comparators of Fig. 4. The mode switching for the compressor and bounce chambers are relatively straightforward, and the logic is shown in Fig. 5. The diesel pressure circuit is perhaps less so, and will be used as an example of how the mode switching conditions are obtained. From Fig. 7a, and starting at the OOP position, the diesel pressure is equal to that existing in the exhaust receiver (i.e., P del ) alild remains at this pressure until the exhaust port is closed. Thus the diesel integrator is in the hold mode whenever the following is true: (5) VOT·EXH voltage Y3 is output to the CPC comparator, and CPC is true during this constant pressure portion of the expansion. Thus the integrator is also in hold whenever the following is true:' When CPC is no longer true, Eq. (1) is integrated to give the isentropic expansion until the exhaust port is again opened, at which time the pressure decreases exponentially to the exhaust receiver pressure. This exponential pressure decrease is achieved by placing the diesel integrator in hold and, at the same time, switching a resistor around the integrating capacitor until the delivery pressure P dill is reached. This is achieved by a relay driv,en by the logic signal B where B When EXH is no longer true (port is closed), the pressure increases adiabatically until lOP is reached; i.e., until the velocity changes sign. This sign change is used to put the whole simulation in hold while the combustion calculations are made. Thus condition (5) must be OR'ed with master hold (MH). The new diesel pressure at lOP resulting from the constant volume portion of the combustion (as described in the Appendix) is established as an initial condition input to the diesel pressure integrator through converters, and this integrator is placed in reset by use of a SET signal from the digital computer. Since this SET signal is also used at OOP to reset the period measuring integrator, and to allow for engine starting, the reset condition on the diesel integrator is given by: ORESET = SET· VOT (6) CPC· VOT = EXH . VOT . PEX Parameter Inl~' ~ Type In Ambient Conditions Efficiencies , And Same Geamlttry Data + MR where M R is the master reset condition. If some constant pressure combustion, as described in the Appendix, is to take place, then the Figure 6. Simplified program flow chart. HYBRID . SIMULATION OF A FREE PISTON ENGINE 373 PC POI PDOM __ 2 3 YC I = IDP+YP YC2=ODP+YP PI --I 1.13 _____________ PDEL I -r-----, I I I I I I I POE L - I i- T I I I 1 - - - -f.-- Y5-~ Potm - - - - - - -:-.+1---1-------,1 I 1 0.95 1 lOP "13 VEX IYCR 1 1 I ODP I "I 7(0) DIESEL CYLINDER 7(b) COMPRESSOR PB PBREF_ YBR lOP ODP 7(c) BOUNCE Figure 7. CYLINDER Indicator diagrams. I I y I. CYLINDER 374 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 )( -ENGINE o -SIMULATION 700 TNEW 60 GHP ? ~Q 40 30 PDEL 50 600~3~0--------------~~--,-~Q~-PI~0 500 20 2000 RPM )( =----~)I...lI'..Q~~--_:J'. 175o"=-=-·-----+.' 30 40 ~ PDEL 50 ~Q ~. 1500 5.5 ODP 0.45 SFC 1DP.0.35 in. 0.40 30 ---x_~ PDEL ~O --x-~ 4.5 0.35 Figure 8. Engine and simulation comparison. The complete diesel integrator hold condition is given by: DHOLD = EXH 5.0 30 + VDT . epe + MH leases the analog to operate until it is again put to hold at the ODP position for the mass flow calculations. Monitoring information type-outs are controlled by a breakpoint switch (No.2). DIGITAL PROGRAM RESULTS A simplified flow chart for the digital program is shown in Fig. 6. The program is entered, and initial conditions are established on the analog console for proper starting under specified environmental conditions. Problem running is controlled by a breakpoint switch (No.1) which, at any time, can return the simulation to the starting conditions. The engine is. started with the piston at the ODP position. After the inward strqke, the program causes the analog console to go to hold at the IDP position after which the combustion calculations of the Appendix are performed. The program then re- The performance data available from actual measurements on a specific engine are shown in Fig. 8. The geometry data and ambient envilronmentaf conditions were established on the simulation, and the combustion efficiencies, friction coefficient, leakage and heat transfer coefficients were calculated based on measurable quantities and estimates of the engine properties at the: time: the results were obtained. These quantities wt!re further adjusted by a few percent to obtain the comparisons shown in Fig. 8. 375 HYBRID SIMULATION OF A FREE PISTON ENGINE Since it is the purpose of the simulation to facilitate the design of control hardware to control the engine under transient conditions, some means of evaluating the simulation under transient conditions would have been most useful. As can be appreciated, however, transient behavior of the engine would involve measurements which are extremely difficult if not impossible to obtain, and it was possible to make only qualitative comparisons between the engine and simulation under these conditions. Figures 9 and 10 are examples of the simulation data which allowed these qualitative comparisons to be made. In particular, the transient during start-up, when an operator familiar with the engine also attempted simulated runs, allowed us to conclude that the simulation was adequate for the purposes of the intended control studies. Appendix DIGITAL CALCULATIONS The Combustion Model The diesel cycle assumed is a modified form of the limited pressure cycle. This cycle assumes that heat release occurs in two distinct phases: 1. At constant volume, the pressure rising to a defined maximum pressure; 2. At constant pressure, the volume increasing until all the remaining fuel energy~expended. To describe the combustion process the following assumptions are made. PC 50 40 30 20 10 Exhaust Volume 1.0 YSO Actual Size 3.0 20 Figure 9. 4.0 Compressor start-up transient. 5.0 6.0 y 376 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 y 144,000 800 ~\\ \ .. ~y \ 96,000 ~ 400 \ \ 48,000 \ 200 I-----~--~------__~~----~--------~----~~~------_='L---60 y 1.0 Figure 10. Velocity and acceleration. • The gas is ideal obeying PV = mRT. • The specific heats for constant volume C v , and constant pressure Cp , are constant and related by Cp - Cv = R/J where J = Joule's constant. • All losses due to combustion inefficiency, leakage, and heat transfers can be contained in a single constant efficiency factor 11c' Under these conditions, and referring to Fig. 7a, an energy balance between states (1) and (3) for an amount of fuel F of calorific value k is giv1en by: F k 1Jc = mC v (T2 - T I ) + mCp (T3 .- T 2) Using the ideal gas law, the above can be reducc;!d to Y3 = (lOP) + ~ [ks F - (IOP)(P2 P2 - PI)] (A. 1) l' where ks = k 1Jc R . This equation forms the basis CpAd for the assumed combustion process, and is usc;!d as follows: 1. If PI > POOM, where POOM is some: defined pressure, then all combustion is 377 HYBRID SIMULATION OF A FREE PISTON ENGINE assumed to occur at constant pressure and (A.I) reduces to Oelivery of the exhaust pulse to. the receiver results in the equations . Mnew M + M del + M del Tdel (A.4) MT 2. If PI < POOM, then P 2 is calculated assuming all the fuel is burnt at constant volume. If the resulting calculated pressure is less than POOM, then no constant pressure combustion is achieved, i.e. Y3 = O. If this calculated pressure is greater than POOM, then P 2 is set equal to POOM, and the resulting Y3 is calculated using (A. 1). Exhaust Mass Flow Model The engine performance is measured in terms of the exhaust gas mass flow and its mean temperature and pressure. These properties are determined by applying I) the continuity equation, 2) the energy equation, and 3) the turbine nozzle characteristic equation to a simple model of the gas exchange process. The gas delivered to the receiver is given by Mnew from which P new where kl Ys M = mass in receiver immediately before I) subcritical flow: T del = Tamb k2F IYs + -k [P;m] > (:.y ~ Ir~ [P;m] ~ 2) critical flow: RL Ps Ao stroke length during which the compressor suction valves are open, Ps atmospheric air density, and RL leakage factor. The delivery temperature of the exhaust gas is determined from an energy balance of the complete engine. This results in the equation (A.5) delivery of the pulse, T = temperature of the gas in the receiver, immediately before delivery of the pulse, R = gas constant, and V = receiver volume. The mass flow rate leaving the receiver is governed by the characteristic equation of the nozzle. This mass flow rate, M, can occur governed by (A.2) where _ MnewRTnew V - (:.y ~ Ir I (A.6) I (A.7) where sub critical flow is given by 2 2g (~\.~.(Patm)-:Y R :r-I/T (A.3) P (A.8) where k2 c average specific heat, F = cyclic fuel input, and Tamb = ambient temperature. Solution of the actual gas transfer dynamics during gas exchange was prohibited by the lack of sufficient hardware to cope with the complex, nonlinear equations describing these processes. Instead, a simple model was assumed in which delivery of gas to the receiver occurs instantaneously at OOP. This assumption, though evidently unrealistic, is not considered to materially affect the results, particularly on a cycle basis. c and critical flow by = where DN = nozzle diameter, g = gravitational acceleration, and Patm = atmospheric pressure, to which nozzle is discharging. If the receiver volume V is large, it can be assumed that the mean receiver pressure during one 378 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 cycle is given by ACKNOWLEDGMENTS Pnew + P del P mean 2 (A.I0) where P del = pressure in receiver immediately before next pulse. Calculating IV! from (A.7), (A.8) and (A.9), where P = P mean, T = Tnew , the remaining mass is M = Mnew - IV!Perd (A. II ) and P del where MRTnew = V (A.I2) P erd = cyclic period of the piston. These equations are solved iteratively for each cycle to obtain the corresponding nozzle mass flow M, mean pressure P mean and temperature Tnew. Gas Horsepower and Specific Fuel Consumption The gas horsepower is defined as the horsepower available from exhaust gas when expanded through an ideal turbine. Thus: (A.13) where k4 = cp J /550. fuel consumption is The corresponding specific 3600F SFC = Perd(GHP) lb/GHP hr The authors are indebted to the Engine: Laboratory and Analysis Section of the Mechanical Engineering Division of the National Research Council for providing a helpful and critical atmosphere during all phases of this work. In particular we would like to thank R. F. Henry, K. C. Cowan and M. Grovum who did the early analysis work, a preliminary analog study and a parallel digital simulation, and E. P. Cockshutt who fielded many awkward questions regarding engine characteristics. REFERENCES 1. R. G. Fuller, "Free-Piston Gas Turbines and Their Application to Steam Power Plants.," Canadian Power Show, Dec. 7-9,1961, Toronto. 2. D. R. Olson, "Simulation of a Free-Piston Engine with a Digital Computer," SAE Trans., vol. 66 (1958). 3. A. R. Bobrowsky, "Analytical Methods for Performance Estimates of Free-Piston Gasifiers," ASME Gas Turbine Power Conf., Detroit, Mich., Mar. 18-21, 1957. 4. D. A. Trayser, discussion on Ref. 2 above, SAE Trans., vol. 66, pp. 681-682 (1958). 5. "ALGa Programming Manual for the Bendix G 15 Computer," 'available from Control Data Corp. (Mar. 1961). 6. F. J. Wallace, E. J. Wright and J. S. Campbell, "Future Development of Free Piston Gasifier Turbine Combinations for Vehicle Traction," Proc., Automotive Engineering Congress, Detroit, Mich., Jan. 10-14, 1966,paper660132. HYBRID ANALOG/DIGITAL TECHNIQUES FOR SIGNAL PROCESSING APPLICATIONS Thomas G. Hagan and Robert Treiber Adage, Inc., Boston, Massachusetts INTRODUCTION unit cost, not upon whether the signals to be processed happen to occur in analog form. Indeed, in many of those cases where hybrid techniques are appropriate, both input and output data are in digital form. As we shall see in several instances below, the performance advantage afforded by the hybrid technique (as compared with an all-digital approach using a conventional sequential stored program system) results from the high degree of parallelism achievable at relatively low cost. For a technique involving use of multiple parallel arithmetic operators i,n conjunction with a sequential core memory, a very rough "figure of merit" is simply the number of arithmetic operations accomplished per fetch of an operand from memory. In the operation of a conventional highly sequential digital computer, a maximum of one arithmetic operation per fetch of an operand from memory is usually the limit. In the hybrid techniques we discuss below, many arithmetic operations can usually be accomplished per memory fetch-5, '10, or even 100 or more. This paper describes a number of hybrid techniques, most of them developed as applications for the AMBILOG 200 Stored Program Signal Processor. They are described in fairly general terms, since our purpose is to elucidate the techniques, rather than to describe specific applications or detailed methods of implementation. The signal processing operations here considered involve the use of analog and hybrid operators which operate simultaneously upon a number of analog and digital operands. A stored program controller controls the array of parallel operators and provides for the transfer of operands back and forth between the operator array and core memory. The AMBILOG 200 system is specifically organized to perform these control and transfer operations efficiently. Since its organization for these purposes has been described in a previous paper, 1 we shall not discuss it further here. In many signal processing applications, time is of the essence. The term "signal" itself, as we use it here, implies that the dimension of time is significant. The signals operated upon by the various processing techniques described below are often in analog form at some point. Although ease of accommodating both analog and digital signals as inputs and outputs is indeed an important virtue of the hybrid approach, its validity depends upon the amount of processing it affords per unit time per WAVEFORM MEASUREMENT We use the term waveform measurement to signify the measurement of various waveform parameters based upon axis crossings, peak values, slope maxima and minima, discontinuities, and other such singularities. The effectiveness of hybrid techniques for such measurements is illustrated by a 379 380 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 ..... time 1....I.---~r-----1-+--jr----\----+--\---+--+----f.---+--- SIGNAL VOLTAGE,e s Figure I. Time intervals I between threshold crossings of a signal. method that has been used for the determination of histograms of threshold crossing intervals of a speech waveform. The problem (see Fig. 1) is to monitor an analog waveform derived from a microphone, to measure the time intervals between successive positive-going crossings through an arbitrary programmable threshold value, and, by counting the number of intervals ~hat occur for each of a number of different interval lengths, to develop a histogram (in memory) which can be plotted to show number of intervals versus interval length. The measurement of interval length could be accomplished by connecting an A-D converter to a digital computer and executing a program that included steps necessary to increment a counter, per- form an A-D conversion, transfer the result from the A-D converter into the computer, subtract the threshold value from the A-D converter result, and then test for sign of the remainder. Resolution of the interval length -measurement would be limited by the length of time required to execute these st1eps. A hybrid technique that has been used to accomplish this operation with fewer program steps is shown in Fig. 2. The threshold value is transferred to a DAC, whose output is thenceforth subtracted by analog means from the analog input signal. The difference signal feeds an axis crossing detector, whose output is monitored by a sense lin~:! testable by the program. The "inner loop" which limits resolution of the interval measurement need only DIGITAL DAC ~-- THRESHOLD VALUE SUMMING AMPLIFIER ANALOG AXIS CROSSING DETECTOR I....-_ _ _ _~ Figure 2. DIGITAL OUTPUT LEVEL TO SENSE LINE OF STORED PROGRAM CONTROLLEH Hybrid technique for measurement of time intervals between threshold crossings. HYBRID ANALOG/DIGITAL TECHNIQUES FOR SIGNAL PROCESSING APPLICATIONS contaih program steps for testing the sense line, incrementing a counter, and closing the loop. A program written to implement this technique, which also provided for testing the counter and exiting from the inner loop when the count reached a prescribed limit, resulted in interval measurement resolution of less than 16 microseconds. Waveform measurement techniques of this general type have been successfully applied to the realtime analysis of multichannel physiological signals including electrocardiograms (ekg), vascular pressures, and breathing waveforms. 2 where x I through Xn 381 comprise a set of input signals, YI through Yn are output signals, and aoo through amn are coefficients in the transformation matrix. Each output signal Y is achieved by summing the appropriately weighted input signals x. A hybrid technique for accomplishing this transformation is illustrated in Fig. 4. Digital coefficients can be loaded under stored program control into storage registers contained in the hybrid multiplying elements (HME's). The HM E's thenceforth provide the weighting or multiplication function by multiplying the analog etc. R eout R DIGITAL VALUE REGISTER { Contents =N } SIGN BIT Figure 3. J \'----~ VALUE {lis Complement for Negative Numbers} A hybrid mUltiplying element (HME) for multiplying an analog signal by a digital coefficient. LINEAR TRANSFORMATION Numerous measurement and simulation problems require a signal processing technique to implement the linear transformation implied by the equations: input by the stored coefficient. The weighted outputs are analog signals which can be summed with summing amplifiers. The diagram of an HME is shown in Fig. 3. The hybrid technique achieves a high "figure of merit" for the linear transformation operation in that once the coefficients of the transformation matrix have been fetched from memory and loaded into the array of DAC's and HME's, the parallel array can perform the equivalent of a very large number of multiply and add operations as the input analog signals vary. 382 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 x, Xn HME DAC aOO CLon -. :i, '-+---------1----------1----------1 DAC HME HME HME d mo ami d m2 d mn ---------t -- ---... ' - - - - - - - - ------------ - - - - - - - - - - ---- -------t Figure 4. A hybrid array for performing linear transformations. SPATIAL COORDINATE TRANSFORMA TION The array shown in Fig. 5 can be used to accomplish transformation of spatial coordinates. The three analog input signals x,y,z represent the coordinates of a point irt one coordinate system; the three outputs x',y',z' represent the coordinates of the same point in a different coordinate system, displaced and rotated with: respect to the first one. Motion of the coordinate systems with respect to each other entails updating of the transformation matrix to reflect changes in displacements and angles between the two systems. For a given set of values in the transformation matrix, the analog inputs are transformed into, appropriate analog outputs, and as the inputs vary, the outputs vary. VISUAL DISPLAY The coordinate transformation method described above can be used for performing translation and rotation of objects being displayed on a CRT. A given three-dimensional object can be represented by the coordinates of a set of points in memory. An isometric view of the object can be generated by calling the points from memory one by one, subjecting them to a coordinate transformation, and gen- erating a picture by connecting straight lines between points. The viewpoint from which the object is seen can be altered by changing the coefficiemts of the coordinate transformation to which each point is subjected as it is called from memory. Coefficients of the transformation matrix remain constant throughout the process of generating one complete view (frame) of the object. For viewing a visual display on a CRT, a frame repetition rate of about 30 frames per second is desirable. Using a vector generator that develops a line segment connecting two points in 30 microseconds, it is possible to depict objects representable by drawings consisting of about 1000 straight line segments at a 30frames-per-second rate. Arbitrary rotation and translation of the object viewed requires that the necessary arithmetic operations to accomplish the coordinate transformation be performed for each point in turn. A hybrid array suitable for performing the operations required for developing an isometric projection of a solild object onto a plane is shown in Fig. 6. The output variables x' and y' are developed from the input coordinates x, y, z by operating upon the inputs with a transformation matrix consisting of coefficients loaded into the operator array. Coefficients of the transformation matrix are computed once per frame and loaded into the array. Thenceforth the HYBRID ANALOG/DIGITAL TECHNIQUES FOR SIGNAL PROCESSING APPLICATIONS x DAC 383 z HME HME HME Xl DAC HME HME HME DAC HME HME HME Zl Figure 5. An array for coordinate transformation. HORIZONTAL ANALOG VECTOR GENERATOR Figure 6. VERTICAL Hybrid technique for generation of visual displays with isometric translation and rotation. necessary multiplications and additions are accomplished as the coordinates for each successive point are fetched from memory and loaded into the input DAC's. Geometrical relations for true perspective repre- sentation of a three-dimensional object are shown in Fig. 7. Coordinates of the object are stored in memory in terms of the coordinate system xyz. It is desired to display the object on a CRT by plotting the projections of points on the viewing plane x' y', 384 PRQCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 Figure 7. Geometrical relations for true perspective display. a "window" through which an observer- located on the z' axis at I views the object. The coordinate system of the object is arbitrarily translated and rotated with respect to the coordinate system of the viewing plane. A hybrid technique suitable for determining x" and y" is illustrated in Fig. 8. Coordinates of the point xyz in the object are transformed into the quantities lx', Iy' and I + z'.Analog division is then used to produce x" and y", coordinates of the intersection of the line of sight (between observer and object) and the plane of the window. Again, an analog vector generator connects successive points to generate a line drawing. x y For "continuous" (to the eye) motion of the displayed object, coefficients in the matrix must be recomputed for every frame. With inputs in the form of translations, (m, nand p) and angles (or direction cosines) between the two coordinate systems, the coefficients can be computed in less than 500 microseconds. With a 30-microsecond vector generator, therefore, objects represented by more than 1000 line segments can be displayed at 30 frames per second. For each fetch of the three operand values x, y and z representing a point, the hybrid array performs nine multiplications, 12 additions, and two divisions-slightly more than seven arithmetic operations per operand fetch. FUNCTION GENERATION Hybrid techniques have proven themselves especially useful for the generation of arbitrary functions of one or more variables. Various methods have been worked out, including techniqw:::s in which quadratic or cubic interpolation is achieved at high speed by using hybrid arithmeti~:; elements in parallel to accomplish evaluation of the polynomial algebraic expression required for the interpolation. For most applications, straight-line approximations to arbitrary functions are satisfactory, however. When a function is: approxi- z ANALOG VECTOR GENERATOR Figure 8. A hybrid technique for generation of visual displays in true perspective with arbitrary translation and rotation. HYBRID ANALOG/DIGITAL TECHNIQUES FOR SIGNAL PROCESSING APPLICATIONS mated by a series of straight lines, the input/output relation is simply Y = mx + b with different values of m and b for each line segment. In one method for generation of an arbitrary function of one variable, different values of m and b corresponding to different line segments are stored in a table in memory. The input signal x is monitored periodically to determine which region it is within. When x is found to have moved into a region corresponding to a new line segment, the appropriate new values of m and b are transferred from memory into an HME and DAC, whose outputs are summed to produce y. This basic technique for establishing an arbitrary nonlinear relationship between an analog input and an analog output can be extended in various ways to accommodate functions of two or more variables. A number of different methods have been explored by Chapelle,3 which are based upon hybrid techniques for linear interpolation between breakpoints, resulting in a series of discrete outputs beOne of several methods tween breakpoints. developed for use with the AMBILOG 200 is similar to Chapelle's techniques; however, it provides a continuous output between breakpoints, eliminating errors due to the discrete steps and the delays encountered in signal conversions from analog to digital and back again. To accomplish this, the independent variable is used directly in the analog domain in order to obtain the appropriate interpolating factors. Consider a function of two variables F(x,y) whose values at equally spaced breakpoints in x and yare known. Using double linear interpolation, the expression for F(x,y) is: F(x,y) = F n.n5 x 5y + Yn < Y < yn+1 x - Xn Ox Xn+1 - Xn Oy = 5x = 5y = Fn,n+ I ~Oy Fn+l,nOx5y where Xn < x < Xn+1 and + y - Yn Yn+1 - Yn Ox - Oy + Fn+l,n+IOxOy 385 The values of F are the values of the dependent function at the corresponding breakpoints. The 0 terms may be considered as interpolating factors. Figure 9 shows the case where: and F(X,Y) F(X,Y) Foo x 'I Figure 9. A function of two variables F(x.y) with equally spaced breakpoints. For this case, the bounding values of the independent variables, i.e., xo, x I, Yo, and Y I are determined programmatically by monitoring x and y. By means of DAC's, the values of Xo and Yo are transmitted to the analog computing elements where the 0 products are developed as shown in Fig. 10. These 0 products are then returned as inputs to the array of HME's. The HME's are loaded with the digital values of the dependent variable at the breakpoints in order that each may compute one term of the equation for F(x,y). These four HME outputs are summed to obtain the desired result, F(x,y). As shown in Fig. 10, the eight 0 products may be applied to other sets of HME's to obtain other arbitrary functions of the input variables x and y. Note that as long as XI < X < Xo and continuous interpolation takes place. This significantly relieves the stored program processor of the major computing chore normally associated with hybrid function generation. The primary tasks of the AMBILOG 200 System Control Unit in performing function generation using this 386 PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 X----..;.~ 5X&Y y--t---t ANALOG COMPUTING ELEMENTS SXSY &X&Y bX&Y HYBRID COMPUTING ELEMENTS Foo FOI FO<,Y) ~. TO OTHER HME's,FOR OTHER FUNCTIONS OF X AND Y Figure 10. Generation of a function of two variables. technique are: 1. Bracketing or locating the independent variables with breakpoints; 2. Fetching the appropriate values of the dependent variables at the breakpoints and loading them into the HME's; and finally, 3. Monitoring the independent variables to detect the crossing of breakpoint boundaries. This technique, illustrated for a function of two variables, applies equally well in the general case of a function of n variables. In this case, there are n independent variables and 2 n terms in the equivalent algorithm corresponding to the 2 n values of the dependent variable which must be interpolated to obtain F(x I, X2, X3 ••• xn). It is worthwhile noting that the technique utilizes the value of the dependent variables at breakpoints directly. This is desirable because 1) the breakpoint data may be used without modification, and 2) the dependent variable tables occupy a minimum of core storage. Furthermore, the continuous interpolation between breakpoints minimizes errors and reduces the computing load on the AMBILOG 200. Typically, utilizing the above technique with the AMBILOG 200 in performing an aerodynamic simulation involving force and moment c~quations, 10 functions of two variables may be computed in less than one millisecond. This capability re:presents a significant improvement over conventional techniques and in practice allows for faster-thanreal-time simulation of many problems. This fasterthan-real-time capability in turn enhanc(:s the use of statistical parameter search techniques in simulation studies. CONVOLUTION Convolution and correlation operations provide another fruitful area for application of hybrid techniques. A hybrid method for performing convolution integration is shown in Fig. 11. An eight-term weighting function is loaded into a set of HME registers. The HME analog inputs an: derived from DAC's whose flip-flops are interconnected as shift registers. Successive samples of a digitized signal are fed into the first DAC. With each new sample, all DAC values shift right one position, so that successive samples are stepped sequentially through the shift register array. Eight cross products are multiplied and summed simultaneously each time a new sample of the input signal is taken. HYBRID ANALOG/DIGITAL TECHNIQUES FOR SIGNAL PROCESSING APPLICATIONS 387 SHIFT REGISTER INTERCONNECTION OF DAC FLIP FLOPS ~ / ...--........... \ / ...---""" /--.... / "\ ""--", / \ / \-- ....... " TO OTHER HME's, CONTAINING OTHER WEIGHTING FUNCTIONS Figure II. A parallel array for convolution operations. A new sample can be entered about every 10 microseconds, so the array shown has a multiply j add rate of about 800 kc. That rate can be increased by expanding the array, either by adding more DACjHME pairs, or by adding more rows of HME's. Overall multiply jadd rates of 10 megacycles or more are practical. INTERCONNECTIONS In each of the cases above where multiple operators are useful in parallel, a specific interconnection of analog signal paths between elements is shown. The techniques illustrated can indeed be implemented by permanently interconnecting a set of operators, which then become committed to performing only those operations implied by the interconnections. However, the approaches illustrated here do not necessarily entail permanent commitment of the operators to specific tasks. In fact, the opposite is usually the case, and in actual implementation considerable flexibility of interconnection is achieved, sometimes by means of patch panels and more generally under fully programmatic control. For arrays numbering 16 or 24 operators, the highly desirable flexibility of fully programmatic control of analog interconnections among operators in the array is economically feasible. Interconnections are established by signal steering elements which consists of digitally controlled, solid state, precision analog switches. To allow for all possible interconnections of n operators, 1) switches would be required. For arrays of about 24 operators of two or three different types, very little loss of generality results if the number of switches used is reduced by Y2 or even %. Thus, use of about 200 digitally operated analog signal steering switches permits very general stored program control of an array of 24 operators. Actual applications of some of the techniques described above have involved use of parallel arrays of more than 100 operators. In those cases, some of the operators in the array are interconnected by high-speed programmable signal steering switches, supplemented by conventional analog computer-type patch panels which provide means of interconnection combining economic feasibility with a fair degree of flexibility. n(n - CONCLUSIONS A number of signal processing techniques have been developed, based upon the use of multiple analog and hybrid elements operating in parallel, all under close stored program control. They have proven both feasible and useful for a variety of applications. In particular, the same basic array of PAC's, hybrid multipliers, and summing amplifiers, all organized to evaluate sums of cross products, has been shown to be useful for generalized linear transformation, spatial coordinate transformation, generation of visual displays of three-dimensional objects in true perspective, generation of functions of two or more variables, and convolution and cor- 388 PRO,CEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 relation operations: Depending upon the nature of the problem and the extent of the array, multiply / add operations at overall rates up to about 10 million per second are possible with present-day components. Comprehensive, high-speed, programmatic control of analog interconnections among operators in an array is feasible for arrays of up to about 24 operators. Beyond that number, analog computer patch panels are generally used. Systems with over 100 operators of the DAC and hybrid multiplier types are being built, and in ,fact are not uncommon. Various applications of the AMBILOG '. 200 Stored Program Signal Processor have provided considerable experience with hybrid techniques of the general type discussed in this paper. . That applications experience n~w includes ~eal-time acquisition and analysis of seismic waveforms, realtime analysis of physiologicill signals from postoperative heart surgery patients, speech analysis, sonar analysis, wind tunnel data reduction, flight test telemetry data reduction, aerospace vehicular sim- ulation, and simulation in real time of a secure speech communication system. ACKNOWLEDGMENTS We wish to acknowledge the contributions of Mr. Sol Max and Mr. Len Sacon of Adage to the perspective display technique, and of Mr. Art Rubin of the Martin Company, who is largely f-3» which could 'l)~ 'scaled up from [LyD] leaving ~he 20th tray to [lOLyD] forcing the 19th tr.~y by ..~ 10 [LYPo] -+ [10 ANALOG PLATE SIMULATION Figure 4 shows the loops controlling the molar mass balance for component A on a single plate and identical circuits are used to determine molar hold22 LyD]FORCING 19 19 Similarly, [10 VyD] leaving the top of the 19th tray must be scaled down so that l~ [10 LyD]19 -+ 18 [LyD]F02~CING Figure 3. OUT ~ ____________~A~________________________~ \ / IN A(LXA ) Figure 4. Main loops controlling mass balance. Rescaling of volatile componc!nt. HYBRID SIMULATION OF A REACTING DISTILLATION COLUMN ups for the other three components. Inputs from the digital memory through 0/ A converters are required for the original molar holdup prior to the current integration period, M nX~(O), and also the molar fluxes carried by the vapor from below, v,,-I Y~-I' and by the liquid from above, Ln+ 1 X~+ I' At the end of the integration period the molar fluxes out of the tray and the current molar holdup can be sampled by the A/D converter and stored in the digital memory. The equations solved by this section are the mass balance ~ [MnX~] = v,,-I Y~-I - LnX~ - v" Y~ + + Ln+IX~+1 R~ and Raoult's Law for the equilibrium vapor concentration where P~ is the equilibrium vapor pressure of component A, considered to be a function of temperature. The enthalpy balance is obtained (Fig. 5) in a similar way to the mass balance circuit. In addition however, the molar vapor flow v" provides a tight loop because of the large enthalpy carried by the latent heat of vaporization. This vapor flow rate is obtained by forCing the molar concentrations in the vapor phase to add up to unity. Note that where components interact, a changing scale factor implies a changing gain, so the amplifier inputs identified by an asterisk (*) become either relay contacts or digital to analog switches, providing gain variation in decade steps. The reaction rate constants can also be obtained as functions of temperature in this section. The reaction rates them-selves are obtained by standard logarithmic multiplication of the respective concentrations and reaction rate constants and are not shown in detail. DIGITAL LOGIC AND CONTROL PROGRAM The digital computer is responsible for establishing voltages corresponding to inputs to the tray simulation and subsequently after an integration period reading the results of the computation back into memory. The basic timing sequence (Fig. 6) consists of a repetitive IC/OPERA TE/HOLD cycle which we will assume is a 4-msec IC, 8-msec OPERATE and 395 4-msec HOLD. The actual times used depend on hardware speeds and time scaling, but we believe these would be typical. During the IC period, voltages corresponding to inputs from above and below the tray are established on track/store amplifiers; state variable magnitudes are established on the tray integrators. During the OPERATE period, the simulation integrates for 8 msec, and this would be time-scaled to correspond to about 0.2 M / L. During the HOLD period, the new voltages determining tray outputs-vapor and liquid fluxes-and state variable magnitudes are read into appropriate slots in the tables established in digital memory. These voltages are determined by stepping round a multiplexer connected to a single analog-digital converter. In order to follow the logical control for sequencing the tray representation up and down the column, consider Fig. 7. Within the digital memory, data tables are defined which are TOP+2 entries long, where TOP is the number of plates in the column. The two extra entries are required to hold the boundary conditions. A total of 16 tables are required; 5 for the LX's and LT, 5 for the MX's and MT, 5 for the VY's arid cVT and I for the plate pressure, which is not an excessive memory requirement. Before operation, these tables must be initialized . to correspond to some physically meaningful state of the column. If the operating conditions aren't known, then a cold steady state can be inserted and the computer used to calculate the operating conditions by simulating a plant start-up. Only two control locations are needed by the digital program, which are: T--thecurrent tray number (::; TOP), and U P--this is one when the simulation is proceeding up the column and zero going down. The computation loop is entered from the bottom of the column, going up, so these cells are suitably initialized (Fig. 7). Three tests follow which determine whether boundary condition information is needed; i.e. the continuous reboiler simulation will be computing VY A, VY B, VY c, V and cVT which must be read via a multiplexer and A/D converter into the T = 0 slots in the appropriate tables. Similarly, LXA, LXB,LXc , Land cLT must be read from the continuous condenser-reflux control simulation for entry into the T = TOP+ I slots in the tables. At the feed trays, feed controller output is determined 396 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 ~ ________ OUT ~A~ ____________ ~ I +1 IN REACTION RATE >K_R__O } CONSTANTS ENTHALPY FLUX DUE TO VAPORISATION N.a *' DENOTES GAIN DEPENDENT ON SCALE FACTOR Figure 5. -! Main loops controlling enthalpy balance. ~8msec OPERATE Ie HOLD J1~_. . . . L Figure 6. Basic timing sequence. and the net component and enthalpy fluxes into the tray computed. Communication of the column with the outside world is via the vapor leaving the column top and liquid leaving the column bottom. In order that the column simulation can force the external continuous simulation for reboiler and condenser, component fluxes in these streams leaving the column must be sampled when the top and bottom trays are simulated. In order to accomplish this, the digital computer controls banks of track/store amplifiers which themselves act as forcing functions for the simulation of the peripheral equipment. Fig. 8 shows the control logic where the output line TOP is set by the digital compute:r during operation on the top tray and BOTTO M is set during operation on the bottom tray. Since these signals are ANDed with the HOLD signal, the final values are stored. The digital section, after establishing these boundary conditions, then establishes forcing functions and state variables acting on tray T., via digital-analog converters and track-store amplifiers. HYBRID SIMULATION OF A REACTING DISTILLATION COLUMN INITIALISE TABLES LXo(T=I,n) ---+ LX (T= I,n) VY 0 (T=I tn) --+ VY(T = I tn) MXo (T=I,n) ---+ VY (T = I,n) I --+ UP I ---+ T SET BOTTOM CONTROL .LINE READ VY\ FROM REBOILER READ FEED L a LT SET TOP CONTROL LINE READ LX s IN RFLX OUTPUT TO ANALOG VY(T-I) MX(T) LX (T+I) WAIT FOR END READ FROM OF OPERATE ANALOG PERIOD VY (T) SENSE LINE TEST MX(T) LX (T) Figure 7. Digital control program. 397 398 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 OUTPUT TRACK CONTROL TOP CONTROL _ _ _ _LINE _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ._ _ _ --bOJi!£ --------. I v~ ~--~~------~--~ .m;I!Q~_._ r-----,~~A Vv.~,!OP >-__________ __~" R I I I CONDENSER I V~~--~I------~--~ a REFWX CONTROL SIMULATION o We I ..J ::> 2 etc. (i) etc. L I ..J ~ I en --- let'c. J LX" >-----II---------I--....-.t ~ I >------~-.. LX ',OT REBOILER SIMULATION ~ ::) Q. ~ 0:: l&J X ~ 5::> ~ LX:OT r-------lvyR' LXA>-----~----------~~__~ ~------------~--~ r~ Q. ::) F~ I ----C l&J X l&J ILXR ~ z !;i I g 4 I IV VR8 r' I ~-- ~. I etc. I etc. I I lelle. -----..J I ________ J - - ------------ ---_ _-.. LOGIC SECTI()N Figure 8. Sampling fluxes from top and bottom tray simulations. Vapor flow into the tray comes from tables VYA(T- 1), VYB(T- 1), VYdT- 1), VeT - 1), c VT(T - 1) State variables (hold-ups) come from tables MXA(n, MXB(n, MXdn, MXD(n, MT(n, peT) Liquid flow onto the tray comes from tables LXA(T + 1), + 1),. LXdT + l), 1), cLr(T + 1) LX8 (T L(T - When these levels have become established (- 2 msec), the analog computer integrates for the 8-msec OPERATE period which is then folow(~d by HYBRID SIMULATION OF A REACTING DISTILLATION COLUMN the HOLD mode. During this time, the new state variables and fluxes from the tray that will be used to force adjacent trays can be read and stored-in the T slot in the tables. Scaling considerations suggest that it is better to read a change rather than a magnitude and so the analog computer is programmed to calculate the change in flux through the plate, i.e., Vy,{+I. VYI, etc., so that the addition to obtain the actual magnitude can be carried out at the full precision of the digital section. The logic to control the sequencing up and down the column is straightforward. Normal operatiori increments or decrements T according to whether UP is one or zero respectively. At the ends when T = 0 or T = TOP, UP is changed over appropriately. Tests for scale factor changes are not shown, but at fixed trays, the scale factors in the tables could be changed by factors of 10. An interesting possibility is dynamic rescaling where the digital computer would itself determine whether overflow were likely and automatically change scale. Now the interfaces between scale factor change would depend on the column operating condition which would help considerably in evaluating transient conditions. With the scale factor changes, D / A switches have to be controlled, and this is accomplished by extra output control lines (OCP's). CONCLUSIONS We have shown how an extremely complex representation of a reacting distillation column and 399 ancillary equipment can be represented by multiplexing a high-speed analog single tray representation up and down the column under digital control. In actual fact, the demands on the digital section are minimal since very little logic or arithmetic is required, the principal requirement being for storage. Even for this, a memory size of less than 4K would be adequate. Another point worth mentioning is that all control and data transfer operations are performed during the reset or hold periods of the analog section, so no high-speed interaction with an operating system is required. Thus, providing the conversion channels were sufficient in number (~ 30 x 30), one of the newer small input/output digital computers would serve for the control and storage section of the simulation. The technique for adjusting scale factors dynamically or at fixed points in the column certainly bears consideration since in this way dynamic ranges over 100,000 to 1 can be achieved-and these actually occur in typical industrial distillation columns. REFERENCES 1. G. Marr, "Distillation Column Dynamics, Suggested Mathematical Model," AICHE Baltimore, 1962. 2. A. Frank and L. LapidUS, "Hybrid Computation Applied to Countercurrent Process," Chemical Engrg. Progress, vol. 60, no. 4, pp. 61-66 (Apr. 1964). TRANSIENT NEUTRON DISTRIBUTION SOLUTIONS BY COMPRESSED AND REAL-TIME COMPUTER COMPLEXES 1. E. Godts Westinghouse A tomic Power Division Pittsburgh, Pennsylvania INTRODUCTION are not acceptable to the transient analyst. The latter are too inadequate for detailed safeguard or control analysis, thus forcing the designer to increase his conservative margin. However, as seen in Fig. 1, a workable compromise has been achieved by the author based on the ,modal synthesis. Although it is not claimed that this constitutes the best possible approach, it is considered to be an extremely useful tool for solving present problems. Figure 2 demonstrates the compromise which the proposed method offers in the modal-nodal plan. Figure 3 illustrates, by graphical Core transient neutron flux distribution currently constitutes one of the most intensively investigated phenomena in nuclear technology. Independently, nuclear physicists and system analysts attempt to develop solutions to the problem. The arsenal of mathematical tools presently available to them covers most of the spectrum ranging from precise multigroup djgital computations to adiabatic core analog analysis. The former involve a series of steady state or quasi-steady state situations, hence TRANSIENT ANALYSIS (6 Cj ) POINT REACTOR COMPLETE FEEDBACK CRUDE CORE - ANALOG SYSTEM ANALYST STEADY STATE (NO Cj ) DISTRIBUTION NO fEEDBACK PRECISE MULTIGROUP-DIGITAL NUCLEAR PHYSICIST o STEADY STATE (NO Cj ) DISTRIBUTION CORE FEEDBACK PRECISE FEW GROUP-DIGITAL NUCLEAR ENGINEER o Figure 1. MODAL SYNTHESIS TYPICAL TRANSIENTS (I ?6 Cj ) DISTRIBUTION - H. C. F. CORE & PARTIAL PLANT FEEDBACK 1-1/2 GROUP-DIGITAL ,ANALOG HYBRID NUCLEAR ENG. X SYSTEM ANALYST TYPICAL TRANSIENTS (6 Cj ) REACTOR CHANNEL CORE & PART FEEDBACK AXIAL CORE-DIGITAL,ANALOG ,HYBRID SYSTEM-THERMO ANALYST o C j = delayed neutron group; (jJ = neutron flux; HCF 401 o = hot channel factor. 402 PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 equivalence, the various flux descriptions. The mathematical model is the same in all approaches; only the proposed solutions differ largely in their form and in their goal. The choice between difference (or nodal), modal (or series of eigenvalues) and synthesis (or series of functions) is influenced by the major discipline of the analyst and his goal. Quasi-steady state solutions are best sought by difference digital methods, while control design problems are generally best approached by methods based upon use of an analog computer. From the above general discussion emerges a mathematical solution based on a modal-synthesis method. I •2 For one spatial dimension, no such modal-synthesis is needed, since the analog equipment can directly perform the iterations for the MODAL - GEOMETRIC OVERALL CORE ANALYTIC MODES LARGE OF TERMS * SYNTHESIS - PHYS. INITIAL & FINAL (S-S) "WELL CHOSEN "TERMS FEW TERMS. 1. Iteration processes on a boundary condition of the diffusion equation in a discontinuous medium. 2. Double iteration processes on the above (two conditions). 3. Iteration of a time-dependent diffusion equation in one dimension. The circuitry and results are briefly described and some of the computer solutions obtained are shown. This type of computation need not be limited to repetitive real-time analog computer systems, but can be well adapted to hybrid computation. In the near future, such simulations will be performed with the memory extension achieved digitally and with the iterations made on the analog computer. The main (and indirectly the only) reason for reserving the analog computer for the iterative process NODAL - LOCAL LOCAL PROPERTIES CHOICE BY EXPERIENCE LARGEN OF REGIONS I MODAL - SYNTHESIS INTRINSIC BUCKLING REGION PROPERTIES FEW TERMS Figure 2. MODAL boundary conditions for the solution described! by the neutron diffusion equation, as shown in this paper. For two spatial dimensions, decomposition in basic modes is necessary. This paper proposes to show that the different basic processes necessary to solve a two-spatialdimension transient diffusion equation can be performed satisfactorily with present equipment. These basic operations are: SYNTHESIS MODAL - SYNTHESIS Figure 3. NODAL 403 TRANSIENT NEUTRON DISTRIBUTION SOLUTIONS and plant simulation is that the control designer must, at least at present, be aware of the plant reactions. He must then modify the design according to the response trend as directly observed on the display of the computer solution. The busy control designer cannot afford to wait for the answers of large digital codes, where only a few cases can be seen at a time. Furthermore, the design processes are not sufficiently perfected to where machines can perform the complete tasks. The nuclear plant designer must continually alter the mathematical model details in order to decrease the over design margins imposed by conservatism due to insufficient knowledge. Although such new models are easily introduced in analog simulations, they necessitate costly modifications to existing codes. For these reasons, analog-hybrid simulations have a possible life expectancy of 10 to 20 years, thus some hardware expenditures may be justified. MODEL DEFINITION The system analyst confronted with the transient study of a nuclear power plant faces two problems: 1. Safety problems: Checking to make sure that no safety limitations are exceeded. 2. Control problems: Designing the controller so as to insure that no design limitations are exceeded. Both problems are studied on the same or on different models. The trend to limit design over con- r - - - - - - - - - - - - - 1 - - - FROM COUNTER! BLOCK 4 I BLOCK 5 (ONLY FOR I I LOWEST MODE) I I I 1 SAMPLE! z= L I I-----+-+--.... I ~ d0 isLOC~(j2~ ------RtsE~d0 I dz II I I I I IL I I I 11 -i- RESIT-ITERATlON---, I dz T ' A _).2 PI m Figure 4. I I I (SIGNS NOTCONSIDERED) I I I I I ). 2 I 1- ~ _~ PI I I I _____ ~Oc~J I 0 I "\ 2 I = Y I m+ I --=I ______________· _4_ _ _ _ L_~OCK ~_J 1\ I I I I z=Q A PI L : I I ~5ET (A-).~) 0 I I dZ s I I SET AREA 404 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 servatism present in certain core designs makes necessary the transient spatial description of the neutron flow. The development of highly sophisticated hybrid computer complexes provides the system engineer with more vers~tile tools. In order to solve the three basic problems stated in the Introduction, the study was divided into four parts. The first part deals with solving the one-dimensional model, which consists! of the neutron kinetics equation eigenvalue problem. No delayed neutron equation is considered in this case. The second part introduces the delayed neutron equation and studies> the eigenvalue problem of the system of the equation proposed. The third part employs the equation without delayed neutron and operates a second series of iteration on the normalization of the result. The last part solves a one-dimensional timedependent diffusion equation." For the first three parts, only the compressed time repetitive computer (GPS) is used. Only in the fourth part is the simulation performed on the computer complex consisting of real time (EA) and compressed time (GPS) elements. U sing the circuitry illustrated in Fig. 4 (Blocks 1 and 2), the displays obtained are given by Figs. 5, 6 and 7. To illustrate the work performe:d by the machine during a very slow iteration process, the convergence towards the solution from two different initial conditions is shown by Figs. 8 and 9. The mentioned "control rod depth" corresponds to the location of the step in the value of A. To check the stability and reality ofa given solution, the inversion of the properties along the independent variable z was performed (Figs. 101 and 11). The obtained results were perfectly symmetrical. (The iteration is always performed at the riight boundary.) The large discontinuities of material, corresponding to the control rod boundaries in nudear f(~ac­ tors, result in large discontinuities in the second Simple Problem Models, Circuitry and Displays The eigenvalue problem corresponding to the one-dimensional model, with or without delayed neutron and with or without normalization, is expressed in a general matricial form as: 3 L - A~ where L = = 0 a square matrix operator, Figure 5. The first two modes. Vertical white line (fiourth square from left) indicates control rod depth. Figure 6. Third mode (iteration not completed). Arrow points to location of x = 2L. = a column matrix of flux and delayed neutron flux, and the mth eigenvalue solution. The problem can also be expressed as: A~ = d 2 dz 2 + A(z) + 'Y A~ (1) -'Y A~'Y (2) The eigenvalue A~ must be found by iteration, and the circuitry used is developed in steps. If no delayed neutrons are present, and no normalization is operated, Eq~ (1) is expressed in a much simpler form: d 2 - 2 + A(z) = A~ (3) dz The fact that A is a function of z was illustrated in our example by a step in value at a given value of the independent variable. TRANSIENT NEUTRON DIStRIBUTION SOLUTIONS Figure 7. The fourth mode. x = 2L. Figure 8. Boundary value search for fixed initial tangent search on ,,~, starting point with a large ,,~. Figure 9. Arrow points to location of Boundary value search for fixed initial tangent search on ,,~, starting point with a small ,,~. 405 Figure 10. The first mode, its first and second derivative. Arrow (top) points to first derivative; double arrow (lower left) to second derivative; arrow (right) to location of x = 2 L. Figure 11. Reversed iteratidn of Fig. 10. Arrow (top left) points to first derivative; double arrow (top center) points to second derivative. White vertical line (lower left) indicates rod insertion depth. Arrow (lower right) points to location of x = 2L. derivatives (e.g., Fig. 10). If the choice of the spatial variable direction is free, the preferred solution has the highest possible. gradient at the boundary of iteration (Fig. 10). Since the solution will converge more rapidly, it will be more precise and more stable. The higher mode solutions were somewhat more difficult to obtain than the fundamental, and methods should be devised to scan automatically the successive values of A~ (Figs. 5, 6 and 7). To show the adaptability of the circuit, a small slug of reactive material was introduced into a scattering material. Successive modes were easily obtained (Figs. 12, 13 and 14). 406 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 Introducing Delayed Neutron into the Equation Figure 12. First mode slug case. White vertical lines (bottom) indicate position of the slug. This introduction is performed by adding block 3 (Fig. 4) to the circuit. If one delayed neutron group (precursor) is introduced, each nodal solution comprises two orders. The physical meaning of the two orders is found in the initial conditions imposed in the problem. In the case of one delayed neutron group problem, the suitable initial conditions consist of a flux distribution and a delayed neutron distribution. It is assumed that such distributions follow the first mode curve. The relative amplitude of flux and delayed neutron distribution must be d~;!termiined and the initial condition must fit them. This is only possible if two orders exist, since two conditions must be satisfied. It can be further demonstrated that the relative sign of the delayed neutron and the flux distribution is the same in one of the o~ders, and that the delayed neutron distribution has the ~ I" "" ... , -1:. - - I: • - .... 1: 1IIii1 , I" I" , I" /' I I :' P.:I .... .... - ... - - I: - - I: AI -" -..... IE .... ..... ... ... IU I, I Figure 13. Sixth mode slug case, first and second derivatives. White vertical lines (bottom) indicate position of the slug. Arrow (right) points to location of x = 2 L. • I -I II I Fourth mode slug case, first and second derivatives. White vertical lines (bottom) indicate position of the slug. Arrow (right) points to location of x = 2L. 1 Figure 15. Figure 14. ' Figure 16. First order offirst mode. Second order of first modle. 407 TRANSIENT NEUTRON DISTRIBUTION SOLUTIONS opposite sign of the flux distribution in the other order. It is proved mathematically that the orders give different relative sign of the flux and the delayed neutron. 2 In the search for the second order, the sign of the divider must thus be inverted. The iteration process will then proceed normally towards the solution. To avoid making a complete revision of the scaling, no changes were made in the simulation; only the display amplification was changed. This explains the large amount of noise present in one of the solutions (Fig. 15 and 16). When the procedure performs adequately, a modification of the area should not change the extrapolated boundary conditions. A test was conducted to check this statement by inverting the sign of the required area. Only four machine cycles per iteration were retained. The result appears in Fig. 18. The Solution with Two Iterations To perform this operation, the delayed neutron circuit was rendered inactive (block 3 and block 4 were introduced). Only the fundamental mode is of interest for this transient study. An absorbing rod was suddenly removed from the core, and the subsequent condi. tions imposed are that: 1. The flux vanishes at the outer boundary. 2. The area enclosed by the flux distribution curve is constant. Figure 17 shows the resulting display. The two iterations are performed alternatively, each for 15 machine cycles, by the introduction of block 5 (Fig. 4). In practice, this large number of iterations cannot be maintained; it was successfully reduced to three or four machine cycles per iteration. Figure 18. Area inversion at fixed rod position. G-initial flux distribution; H-initial second derivative curve; I-rod insertion depth; J-final second derivative curve; K-final flux distribution with area inverted. One-Dimensional Time-Dependent Diffusion Equation The problem was introduced in the following mathematical form: -cr<1>2 + A(z,t)<1> az = a<1> aat The solution is approached by using a time difference equation of the following type: 2 d <1>(t +. dt) dz 2 Figure 17. Constant area problem during rod removal process. A-initial flux distribution; B-final flux distribution; C-initial rod insertion depth; D-initial second derivate curve; E-influence of the iteration process on the second derivate distribution; F-initial flux jump. + (A _ ~) <1>(t + ~t) = ~ <1>(t) ~t ~t The function <1>(t) is stored in a memory after each iteration is performed, and thus can be used for the next time step. The block diagram used in shown in Fig. 19. Each new circuitry has already been explained. The A(z, t) function was formed by the intervention of the fast repetitive computer for the z dependency, and the real-time computer for the time dependency. The task of the real-time computer was to· simulate the whole plant response. This was done on a . 1: 1 time basis. The memory used was formed with elements of the GPS computeri and does not pre- 408 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 ITERATION CIRCUITRY LOGIC CONTROL DIFFUSION EQUATION MEMORY ¢ LOGIC INTERVENTION Figure 19. sent any originality. This is certainly the part of the circuitry that most needs to be perfected. For future simulations, it is intended to use digital memories of various types. In its present form, the memory circuitry is inadequate since the number of retention points is too small and necessitates a far too large an amount of equipment. , Nevertheless, it was tried on a rod insertion and withdrawal problem. The processes provide the displays shown in Figs. 20 and 21. I II +++ . ++++ 11+ I I --!!::iii "- The search for the modes and orders of the neutron diffusion equations can be performed satisfactorily on analog computers. The one-dimensional transient flux distribution can be successfully simulated as part of a complete Figure 20. The rod insertion process. extent of rod depth. .-• -•sa • II!:! !!:iiI ~ I'J CONCLUSIONS Dotted lines represent I :::iiiii ::iiiiiiiii 111 IIiiii::!!III ... ~ ---- Figure 21. The rod removal process. extent of rod depth. t'n'J ' .:: I ~ I ill:, ii:I.: :.:: :::.=:: ~ .-: ~;.: Dotted lines ! represc~nt nuclear plant simulation. It is, nevertheless, necc:!ssary to improve the memory capacities of the prc:!sent machines by further hybridization of the complexes. The two-dimensional transient flux distribution can be performed, but present equipment requires too large amounts of circuitry for a safety and control analysis of nuclear reactors. Nevertheless, average methods, as described in Refs. 1 and 2, should prove adequate for present needs. They are based on the studies described in this paper. The introduction of simplified circuitry or functionals in the simulation will permit future simulation of the two-dimensional flux distribution within a complete nuclear plant study. Simplified circuitry and memory equipment might even enable the introduction of more than one group of delayed neutrons. No difficulty was encountered in the interconn(~c- TRANSIENT NEUTRON DISTRIBUTION SOLUTIONS tion of the slow real-time computer (EA 231 R) and the fast repetitive computer (GPS). An auxiliary problem of a rod ejection accident in a thermal reac,tor was successfully tried on the circuit. The answers were rapidly obtained and with sufficient accuracy for qualitative evaluation. The limiting factors for such large problems (a complete problem uses two GPS, two EA 16-31R and one EA 231 R plus logic and memory) are the necessary zeroing time and the equipment failure rate. It is foreseeable that units could be designed with self-zeroing and self-checking features. These operations could be performed automatically during the off times of the machines. With the use of the above-mentioned functionals reducing greatly the amount of equipment, large multivariable problems will then be within the reach of the analog hybrid simulators and will certainly be welcomed by the nuclear system engineer. REFERENCES l. J. E. Godts, "Analog Analysis of Transient Neutron Flux by Discontinuous Synthesis," Ph.D. thesis, Carnegie Institute of Technology, 1965; also 409 WCAP-2828, Westinghouse Atomic Power Division (July 1965). 2. J. E. Godts and E. F. Restelli, Jr., "Transient Flux Distributions by Discontinuous Modal Synthesis," WCAP-2755, Westinghouse Atomic Power Division (July 1965). 3. J. E. Godts and A. S. Weinstein, "Transient Flux Distributions by Discontinuous Modal Synthesis," Conference on Safety, Fuels and Core Design in Large Fast Reactors, Argonne National Laboratory, Oct. 11-14, 1965. 4. J. E. Godts and E. F. Restelli, Jr., "Transient Temperature Distribution in Fuel Elements," ibid. BIBLIOGRAPHY Kaplan, S., "Extensions and Applications of the Method of Finite Transforms," Ph.D. thesis, University of Pittsburgh, 1960. ___ , "Some New Methods of Flux Synthesis," Nuclear Science and Engineering, vol. 13, pp. 22-31 (1962). Radkowsky, A., Naval Reactor Physics Handbook, Vol. I, U.S. Atomic Energy Commission, U.S. Government Printing Office, 1964. PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES* Robert S. Ledley, Louis S. Rotolo, Marilyn Belson, John Jacobsen, James B. Wilson, and Thomas Golab National Biomedical Research Foundation Silver Spring, Maryland structure of virus particles, motion pictures of marine crustaceans in the detection of their sensitivity to polarized light, tissue-culture time-lapse films in the investigation of cancer-cell motility, and many others. In this paper we shall describe selected illustrations of work already accomplished QY the authors in the pattern-recognition analysis of biomedical pictures. The technique involves two main steps: first, a scanning instrument, called FIDAC (Film Input to Digital Automatic Computer), scans the picture on-line into the high-speed memory of a digital computer; second, two computer programming systems (called FIDACSYS and BUGSYS) are used to recognize the objects to be measured and to process the quantitative data, according to the requirements of the particular biological or .-nedical problem under consideration. This FIDAC sy~tem was designed specifically for the processing of biomedical pictures. The biomedical sciences characteristically deal with huge masses of data, which must be organized, reduced, analyzed, and generally processed in many different ways.) Much of this data is in the form of pictures: photomicrographs, electron micrographs, X-ray films, Schlieren photographs, X-ray diffraction patterns, autoradiographs, time-lapse films, cineradiographs, or the like. Individual pictures hold a great wealth of precise numerical information, such as the morphological and structural characteristics of lengths, areas, volumes, anq densities. From sequences of pictures, quantitative results can be derived, such as the kinematic and dynamic characteristics of trajectories. Such pictures relate to almost every field of biomedical research: chromosome karyograms in cytogenetics, angiogram cineradiographs in cardiology, Schlieren photographs in ultracentrifugal molecular-weight determinations, auto radiographs of polymorphonuclear leukocytes in the study of leukemia, Golgi-stained neuron photomicrographs in the study of the ontogeny and phylogeny of the brain, X rays of bones in studies of calcium density distribution in orthopedic diseases, X rays of epiphysial plates of the hand in investigations of accurate physiological age, X-ray crystallographic plates in protein structure determination, electron micrographs in the investigation of the fine THE FIDAC INSTRUMENT The FIDAC instrument is responsible in the first place for putting the picture into the computer's memory; it is an on-line computer-input device which can scan in real-time at very high speed and with high resolution, under computer-program feedback control (see Fig. 1). These capabilities make feasible the successful application to biomedical problems. FIDAC has a high-speed scan of less *This work was supported by National Institutes of Health grants GM-10797, GM-10789, NB-04472, GM-11201, and AM-08959. 411 412 PRO<;:EEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 than 0.3 seconds per frame, which makes possible the rapid processing of pictures for statistical analysis and screening purposes. During the scan, 350,000 points per picture (700 x 500 point raster) are sampled in the seven-level gray mode, which uses three memory bits per picture point, or 800,000 points per picture (1000 x 800 point raster) are sampled in the black-and-white mode, which uses Figure lao FIDACSYS PROGRAMMING SYStEM The FIDAC Instrument. one memory bit per picture point. As a comparison, during the scan the FIDAC can load the computer's core memory 10 to 50 times faster than can conventional magnetic tape input units. (The 1BM 7094 computer, equipped with a direct data channel, is used.) FIDAC has a high resolution (greater than that of the optical microscope), which enables the re:tention of all information when photomicrographs are scanned. This is because when the specimen is seen at a magnification of 1000 X , the field has a diameter of about 50J.L; thus the 750 points sampled by FIDAC across this field gives about 700/50 == 14 points per micron on the specimen, or about 3 points in the 0.2J.L, that is, the optical resolution of a microscope at 1000 power. The capability of real-time operation enables program control of the FIDAC by the computer-that is, when the processing of a film frame has· been completed, the program signals the FIDAC to move automatically to the next frame. The fact that FIDAC is on-line with the computer, with no intermediate magnetic-tape recording, results in extreme flexibility, convenience, and economy of storage of the original data. For instance, a single: 100-foot roll of 16mm film, which fits in a 3 Y2-inch diameter can, contains 4000 frames and will record over 4 bil- IBM 7094 COMPUTER The FIDAC Instrument COMPUTER MATCHING CIRCUITS DIGITAL LOG ICAL CONTROL CIRCUITS ....• _____ ~---------,------------ANALOG TO DIGITAL CONVERTER VIDEO AMPLI FI ER FI LM TRANSPORT AND CONTROL CIRCUITS Figure I b. Block Diagram of FIDAC System. ~"- R_A~STTE-R----~] GENERATOR ____ DRIVER PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES 413 ---..,-. . . ..,---.................... ::::~~~~~:~~~!~ - ..- ........... _................ --l\i"'-~~~~~~~-~~~-~~-~~~~~-~-~ --~~~~~~~-~~~~~~-~~~~~~~~~ -~-~~-~~~~~~-~~~~~-~-~~--- ~-~~~~~-~~-~~~~--~-~~~~~~ Figure Ie. Cineangiogram of a dog's heart as recorded in the computer's memory. The original photograph is scanned by FIDAC and a 700 x 500 raster of spots is sampled. The density of the film at the location of each of these spots is determined as one of seven gray-levels. The picture in the computer's memory, therefore, consists of codes for these density levels. To show what is in the computer's memory, the computer translates the code for each spot into a numerical gray-level value, and prints the value in its correct relative position for each of the 350,000 spots that comprise the picture. This is what is shown in the figure. In the lower-left inset we illustrate an enlarged portion of the figure showing the density levels. The other inset shows a portion of the original cineangiographic picture. 414 PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 lion bits of information; this would require more than 55 conventional digital-magnetic tape reels, making a stack more than 4 feet high. THE PROGRAMMING SYSTEM FIDACSYS Once the picture is recorded in the computer's core memory, as a grid of points, each with one of seven gray-level values, the computer analysis proceeds by means of the two programming systems. The FIDACSYS system 2 is the basic picturehandling and object-recognition system; the BUGSYS language is used mainly to facilitate picture analysis and measurement. The first problem for theFIDACSYS system is to read the picture into the computer's memory. The program does this by :signaling the FIDAC through the direct data channel. The program monitors the read-in, line by line, keeping track of the lines and the size of the picture. Of course, the program must select the proper FIDAC mode. The program also moves or positjons the film. Usually the film is advanced to the next frame by the program immediately after the picture has been read in. This is done during the time the analysis program is being executed, and if the analysis time is greater than the film movement time, namely 1/.., of a second, then no provision need be made for film movement time. A roll of film is processed frame by frame in this manner. The program keeps track of the number of frames to be processed, and when all of the frames have been processed, the program proceeds to compute the statistical results applicable to the film roll. In processing each frame, the FIDACSYS system first determines whether or not the frame is blank; if it is not blank, then any required overall picture processing, such as differentiation, is carried out. Next the program locates and processes one object at a time; this is accomplished by an internal, programmed scan of the picture, starting at the top lefthand corner and continuing row by row. We say that this internal scan is accomplished by a "bug," which is looking for a picture spot that has a gray level greater than the "cutoff" gray level. The cutoff gray level is defined such that the interior points of any object will have gray-level values greater than that cutoff level. When an object is found, it is then processed. In this way each object is sequentially processed, until finally, when the scanning bug reaches the lower right-hand corner of this picture, all of the objects have been processed and the program proceeds to the statistical analysis applicable to that frame. When an object has been found, its processing is carried out by the FIDACSYS program in terms of a boundary analysis. The bug is moved around the boundary of the object in such a direction that the interior of the object is kept to the right. The next boundary point is determined by looking dockwise around the present boundary point, starting from the previous boundary point (see Fig. 2a). When a certain number N of boundary points (that is, a certain boundary length) has been traversed, a segment is defined. The segment is then characterized by the coordinates of its center point, the: components of a leading vector, and the components of a trailing vector (see Fig. 2b). The length of the segment chosen must be short enough that the angle between the leading and trailing vectors is approximately a measure of the curvature of the segment. Then the vector sum of the leading and trailling vectors is approximately the tangent to the segment at its center point and gives a measure of the direction of the segment. There are three user parameters associated with a segment, varied to suit the particular problem under consideration. These are the segment length N, the arrow length A, and the distance D between centers of successive segments. A boundary-characterization list is constructed as each boundary segment is analyzed successively, until the original boundary entry point is reached again. As each boundary point is traversed, its graylevel value is changed by the bug to the value 7, so that the object is completely enclosed in a string of 7's. Only seven gray levels per spot were used in the scan so that the eighth level, namely 7, could be reserved for this purpose. Thus no object is reprocessed, because only objects not enclosed in such a string of 7's are found by the search. If the analysis involves the investigation of holes wlithin the object, then the holes are discovered by carrying out an erasing process. When a hole in the object is discovered during the erasure procedure, its boundary is characterized by segments. Islands within holes are found by filling in the holes, and holes within islands within holes are found by erasing, ad infinitum. (However, only simple holies, with no islands, are found in most applications.) The recognition of the object by the FIDACSYS programming system is accomplished by means of the boundary-characterization list. A syntax- PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES Figure 2a. The black box is the present boundary point, the vertically hatched box the previous boundary point, and the horizontally hatched box the next boundary point. H Hy 415 memory, the FIDACSYS programming system has to be broken into links, each link being executed separarely in the memory. The initial link enables the user input parameters to be inserted into the program. The second link is concerned with reading-in the picture and "compacting" it into the proper part of the memory, in appropriate form. The next link will manipulate the picture, will move the film to the next frame if desired, and will print the picture as it appears in the memory if desired. Optional manipulations of the picture include masking, that is, widening the margins of the picture; reducing, that is, decreasing the density of spots of the picture as read into the computer; differentiating, that is, processing the picture to emphasize changes in gray level; and other related processes, as well as printing the picture. The fourth link scans a picture and proc,esses the objects, as described previously, and is carried out in the three phases. Phase 1 concerns the locating, boundary tracing, boundary-list characterizing, and optional erasing of an object. Phase 2 is concerned with the syntax analysis leading to the identification of the parts of the object. And Phase 3 is concerned with actually making the measurements on the object. The fourth link also accomplishes the overall statistical processing for each frame. Tx THE BUGSYS LANGUAGE (a) Figure 2b. A segment (above) illustrating the center of the segment C(x, y), the trailing arrow components Tx and Ty, and the leading arrow component Hx and Hy. The tangent vector T + H (below) and the angle () = Lj K, giving K = Lj(), where K is the curvature and L is the segment length (and () is in radians). directed pattern-recognition technique is utilized. (An introduction to this technique is described elsewhere.3,4) Since in the IBM 7094 memory the picture takes up more than 25,000 words of the 32,OOO-word BUGSYS is a picture processing and measuring programming language for the analysis of the picture in the computer's memory.5 The main concept of the system is the use of a collection of programmable pointers, which are visualized as a family of "bugs." A bug can be "initiated," or "placed," and once initiated a bug can be "moved." In addition, a bug can "change" the gray-level value of the spot on which it is located, and it can lay down a socalled "stick" across a thick line in the picture as an aid to locating the middle of the line. In addition, two bugs together can "probe" along the direction of the line between them or along a direction perpendicular to the line between them. These probes can sense an extension of an object or the width of an object, and so forth. "Globs" of objects can be assessed by laying down squares and determining the percentage of the area of the square intersected with the object. The system is composed of many such stat(~ments as will be illustrated below. For each bug initiated by means of the macro PLACE, there is associated a list which gives the 416 PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 x and y coordinates of the current position of that bug, the actual core location, the spot position (0-11) within this location (there are three bits per spot, or 12 spots per 36-bit IBM 7094 computer word), and the gray-level value of the current position of the bug. For example, if the bug named "ZIPPY" is in the position x = 6, y = 8, then the list for ZIPPY might contain the following: Address Contents ZIPPY(l) ZIPPY(2) ZIPPY(3) 6 x 8 6009 Y ZIPPY(4) 6 ZIPPY(5) 4 Comment 5553 (first location of picture) + 456 (57 words per line times y) + 0 (x divided by 12 spots per word and truncated to an integer) remainder of x divided by 12 gray-level value or contents of spot As a bug is moved about the picture by a program, the list for the bug is kept current. In fact, in essence, the list is the bug. We will now proceed to describe some of the statements of the BUGSYS language. The PLACE statement initiates, or sets up, a bug by assigning a name and initial coordinate to it. Thus we have < PLACE statement> : : = PLACE , < x coordinate>, < y coordinate> where the bug name is a FORTRAN label and the x and y coordinates are either unsigned integers or integer variables. The BUGS statement allocates five storage locations to each bug named; its form is < BUGS statement> :: = BUGS list> ) « bug-name where the bug-name list is a string of bug names separated by commas. A bug can be moved a specified distance (i.e., number of spots in the picture) in either the x or y direction by the following statement: < MOVE statement> :: = MOVE < bug name>, < direction>, < distance> where the direction is given by the literals LEFT, RIGHT, UP, or DOWN, and the distance is an unsigned integer or integer variable. The statement "MOVE ZIPPY,RIGHT,15" moves the bug named ZIPPY to a new location having the same y coordinate but a new x coordinate 15 spots to the right of the present x coordinate. Each time a bug is moved, of course, the list corresponding to the bug name is adjusted for the new values. Many of the statements involve multiple-,way branches, for provision must be made to be sure that the bug will not be moved out of the picture. For instance, in the MOVE statement if the bug would be moved out of the picture, then it is not moved at all, and the next sequential instruction is taken as a next executed instruction. Otherwise (i.e., if the bug will still be in the pictun: after the move) the bug is moved and the next sequential instruction is skipped. The BUGSYS language also includes a GO.TO statement and a series of TEST stateme:nts. For example, the statement < TEST statement> :: = TEST < bug name>, < relation>, < gray cutoff > would test the value of the gray level on the spot of the picture at which the bug is located, with respect to the gray cutoff (which is specified by a literal digit from 0 through 7). The relation can be EQUAL or GREATR or LESSN. If the relation is not satisfied, then the next instruction following the TEST is executed. Otherwise (if the gray-level value of the bug location is in true relation to the cutoff gray level) the next sequential instruction is skipped and the' second following instruction is executed. The statement < CHANGE statement> CHANGE < bug name>, < gray value> can change the value of the bug location spot to the literal specified as the gray value. When using the BUGSYS program, it is usually convenient to change the value of the bug location to a 7. In this way the bugs will leave "footprints" as they move around the picture during the analysis, and these footprints can be utilized as an aid in che:cking out results. The BUGSYS language also includes provisions for bounding an object. This is the same subprogram as the bounding routine which appears in the FIDACSYS system, except that in BUGSYS it can be utilized in a macro called BOUND. BUGSYS also includes a specialized macro called CRANK, defined as follows: < CRANK statement> :: = CRANK , < direction>, < gray cutoff>, < neighbor number> PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES where the "direction" is either the literal CLOCK or the literal CCLOCK, the "gray cutoff" is a literal digit from 0 through 7, and the "neighbor number" is an octal-integer variable. The purpose of CRANK is' to help initiate a bounding procedure. As we mentioned above, finding the next boundary point involves knowing the previous boundary point; but in initiating a bounding process no previous boundary point is available. CRANK will produce a previous boundary point for the macro BOUND and will assign this as the value of the "neighbor number." The bounding, and hence the cranking, can be clockwise or counterclockwise around the object, accounting for the term "direction." The "stick" and "probe" statements enable a bug to investigate its surroundings in various ways. For example, consider the normal-probe statement NPROBE, defined as :: = NPROBE , < bug name>, < bug name>, , Here the probe will be made perpe,ndicular to the direction between the first two bugs named. The third bug named will hold the result of the probe. This probe consists in effect of moving a bug along a line perpendicular to the line between the first two bugs mentioned until this moving bug comes to the edge of the object. The "distance" is included so that if the bug does not come to the edge of the object before going the distance specified, then an alternative branch may be chosen. It is supposed that the probing bug will start out inside the object. Additional macros are also available in the system. ILLUSTRATIONS OF RESULTS ACCOMPLISHED We shall now describe four applications of the FIDAC system: 1) Analysis of Neuron Dendrites (Fig. 3); 2) Analysis of Schlieren Photographs (Fig. 4); 3) Analysis of Rabbit Brain Cells (Fig. 5); and 4) Analysis of Chromosome Karyograms (Figs. 6-11 ). Analysis of Neuron Dendrites In the young kitten's brain, certain cells in the cortex will appear almost entirely within a single microtome section. The following is a discussion of our computer program used for the analysis of such cells, in order that comparisons can be made 417 among these cells in kittens of different development stages. The BUGSYS language was used. In general, bugs will search the picture to find an object, i.e., a neuron cell, and then will move around the boundary of the object, recognizing the dendrites, as distinguished from the cell body itself, and making measurements on dendrite segment lengths from branch to branch. In particular, four components of such a neuron cell must be recognized before the measurements can be made. These are the cell body, the dendrite-to-cell-body junction, the dendritic branching points, and the ends of the dendrite branches. Figure 3a shows a neuron cell as it appears in the computer's memory; Fig. 3b points out a detail of this picture; and Fig. 3c gives a flow chart of the program for the neuron analysis with the BUGSYS language. Six subprograms are utilized, as shown in Fig. 3c. The first of these subprograms directs the FIDAC instrument to scan the photomicrographic transparency in the gray mode. Next a bug, called SRCHXY, is directed to search the picture systematically to find the first object. There are two possible outcomes to this process: either a next object is found; or the bug comes to the lower right-hand corner of the frame, which means there are no more objects in the frame. These are the main functions of the subprogram SUNBOG. If a next object is found, then the program enters the subprogram CBLOCK. In this subprogram the components of bug SRCHXY are used to initiate a new bug, called BUGM, which together with an auxiliary bug, called BUGS, finds the cell body. There art! two possible outcomes to this process: first the object may not be a complete neuron or may be some other fragment, in which case there will be no cell body; here transfer of control will be returned to subprogram SUNBOG, which will continue on to look for another object. The second outcome of CBLOOK is that BUGM and BUGS will actually find a cell body, in which case the subprogram DDLOOK is activated. In the subprogram DDLOOK, the cell-body boundary is traced until a dendritic junction is found. Again there are two possible outcomes to this subprogram: First, a dendrite may not be found, in which case transfer of control is returned to SUNBOG, which looks for another object. The second outcome is that a dendrite is actually found. In this case BUGM will be residing on one side of the dendrite, cell-body junction. BUGM will then 418 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 be used to set up another bug, called BUGT, on the other side of this same junction, and subprogram MAPDD will be activated. In the subprogram MAPDD, BUGM and BUGT move up the dendrite looking for branch points and end points, and by this means these bugs are able to make the desired measurements on the branching dendrite. When they have completely analyzed all the branches, they will return to the dendrite, cellbody junction where BUGM is again utilized. If more dendrites might possible exist, BUGM will Figure 3a. continue to look for these other dendrites, in the subroutine DDOOK. On the other hand, if during the mapping of the present dendrite it has been observed that the entire cell has been analyzed, then BUGM will transfer control to SUNBOG and the search for the next object will be reinitiated. After all of the objects in a frame have been analyzed, the final-result display subprogram, SC4020, will be activated. Let us now describe some of the mechanisms by means of which the different subprograms are car- The large black dots illustrate the computer's determination of the ends of the dendrite arms, of the branch points, and of the cell's body-dendrite junctions. The thin line is drawn at the computer's determination of the actual dendrite, cell-body junction. 419 PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES ried out. The first step in subprogram CBLOOK is that bug SRCHXY is used to set up BUGM. Now BUGM will move clockwise along the boundary of the object. BUGM will also be used to initiate the subsidiary bug BUGS, which BUGM will drag at a prescribed distance behind it. Together, BUGM and BUGS look for a cell body. The method for finding a cell body is for BUGM to form a normal probe perpendicular to their connecting line, directed into the object. The probe is made long enough that it will pass through and beyond the relatively narrow dendritic arm. However, the cell ::: ::::::::::::::::::::::::::::: :::::::::::::~:::::::::::: ::::: :Ht~1212U}~H::: ::::: :::: ::::: ::::::: ::iiii :i: hltH::::::::: :::::::::::: ~i ~ ;~; ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Hi 2i2 lfi {i ~ ~ ~ ~ ~ ~: ~ ~f~: i ii' HMUUUH~~ ~ ~ ~ ~~ ~ ~ .. 1•..... 111 ....... "...............................•.......••.•••.. i. Itlh2 ~1~2lH""illl~~HF2.\22l. ~~~2Zll111 ..........•.•.•..•....• ii~i:: :i::::::::::::::::::::: ::: ::::: :::: :::: :::::::::::::: ::::: :::::::. HI U~22U\i~ h i2izHtHhz21lh tli: ::::::: ::::: ::::: :::::: ll.illll................................................................. 2 2222 2 ........................ . i.Ill llid ii: ~i::: ::::::::::: :::::::: :::: :::::: ::::::::::: :::::: :::::::::!! ~ ........ 22~hIHnlliH!!!:::::: ::: :::::: ::::::: B l HBI HIit h::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :tUU! • .••• 2~H. 1. i: 11 1111 d 1: if: i::::::::::::::::::::::1 11221111111111111 ........ 1................................................ H .66"" 22p ...•.. ........................ !HHHtt 111 HHi: i i: : i: : : i: : ::: ::: : : ::: : :: : ~::: : : : :: : :: :: : : ::: : ::::: : :: :::: f ·:06661:' .6. f~ il i 1iii i HHt ~ i : : : :: : : : : : :: : : ::: . i2' •Hs HHHld III H2llHii lli :: i~'111::1............................................ i:;::::::::::::::::: ::::::::::::: :::::::: ::: = ~ ·~ttttttt~· 2122~1"lHIHHtHHH Iii:::::::::: i:•.... :::! 55s~~~55 lll1lPHJllP~pplt 111 .. 2ill2211111111111ol11;2222 ffl 11t l th Hiihl!h!:::::::::::::::l::::::::::::::::::::::::' ~ittil22 ·66666' BFttltttlh .~~~ •• 22· 22HlllllqUl~ •• ;6666:e:::::ll~~ .. : 22d2111l1:lz111hlHH1HIHllP 1l.1 ... 11 ................................ ~~ 2Hl1 H~BzHHHl12 "666H,'" ........... . BUHHH IfBHlhu111111.11.1il::: ::i: :::: !:::::::: :::: ::::::::::: •. :::l h :~~~: Hlh~22~~~2H~H!H122 '6~~~~"'i' I.::: :::::::: H1HHlH itBHHHlUHHiPHh::: ::: ::::::c:::::::::: ::::::::::. ;: :!! .lH :~H: ~H!fU~H2UUB22 •• bb~···~2~1!.:· ::::: :'::::::: HnHHHHnlll11111P1l111!llH!i!~:::!::::::::::::::::::::::::: .::i::::' ~t~: '~"66~~~" 2 ~h!!:::: :::::::::::::: 21112222111222211 1 1 11111lll11p.l.ll.......................... ......... '6'(,· 2222hi!i~H 22212 ~22 2'~~66666" .................. . IHIHHHiHHHIHHHIlHlldhHdi~:::::::::::::::::::::::::· :::::: ... lle! '6tt;:~: HH~2~2 '6~~~~~~' 2H!!:::::: ::::::::::::::: 121122122211111111111111111111111111 .. 11111 ............................. 111 '6666666' '66666' 2222222 '666666' 221 ....................... 211121221111111111111111111111111111\111 .............................. 2 .'66666.' . .......•........ 2211HFHPHIHH1\il· 111 1 1........................ ..... .."1112 l2 '661166b66 "666666' 211211......... .......................... Hlltllh 11 tll111111iliHtHtHHHHlll!i !!i::::: :::::::::::::: .::: 7 ...:11122·66661166!>555 !lh '6U~t~~~t~ '66.·' '6~~~~·"Z11~!~:::::::::::· ::::::::::: ::::: 21111Z111l1111111111lHll1Pl111111111 tl111 ....................... 221 ............................... . HHHhH IHHHHl. ... !:.: !l1ttl11. flU::::::::::::::::::::: .:::'. :iiF .6~~t~Ut~t~. ~ •• , ·f! !::::::::::::::::: :::::: ::::::::::: 111l11l1111211111111 .......... lll1l1 ............................... 112 '666666666666 . ·,6' 2, '111 l\1 ........................... . 1112111111111111111\ '6666666bb666 666. ·2221. 221. \1111111111 i 1.11 ......................... . 1111111211111111 11 ............................................ .......................................... 1...12112 12 '666~66b6666b66 "666666666666( ,665' .............. 11111111111111111111t1 ....................................... tl11 666' 22222 ~12~~!llll'!.1 ................... . 1l 1 HHHHH HHHH i :::::::::::::::::::::::::::::::'::l'::1' l~'r · •• b~U~Ut~t~~~~~~ b~~' 2~HH~ H~~HttthL:: ::::::ii::i:i:i:::: 11 •• 111111 j 111111111 1 .............................. i .. 1. . 2 b6bb666666666!.6'" '666666666666666bb ,.. .. 222222. 22221211111 ............. \1 .••.•.• 111111 .. 1111111111l11 ...............•...•• 1.1~1 ... lll.11q.2 2i 22222222 ~222111111111 11 .. 11.11111111.1111 11 .. 1........ 1.......... 1 t11 . . . 11 1. z ,6b6b6b666666'" 22222. 2Fl1l21. 2112121 . . ...... ....•. 1.1. 1.11 ...11 1•••••. .... . pqiHHiIlHHIP~lHt::t!:::::::::::::i::iih!I!!HtHH·.6 ~tt~~t~t~~~·· 22~; HHHHi fthtHH HHHHH1: :::::::!H~l:i:::::: .H11l!HllHHHdldtdL:F:::::::::::::i!:IHHHH~~22 6U ~~~~~~~~ •• 2HHr jHHHH tllUHtll·HtHfh:: :::::::::!::::::::::: iI:HHHllHHHltitHHt!!l:!!::::::::i::~h!illHUF : ,~t~ ~~tt~~· tHUll! HHHIH: .:11111 1 ... 1.. !::· ::::::::::::::::::::: 111l11.Ull11111111111111111 .... 1........ 1.. 11.111HF "6 ,66/ 6666b' 2lp11r 1211111.11 .1.11111p l ••••• l . . . . . . . . . . . . . . . . . . . . . . . . tH1H~lUlltPl~lHHHHHHli!:!::i:::::::i~i!dl12 '6~U :~~: ~t~~· 22nh '1 1 ,liftll11tll:l: ':lhUIllt 111111111111 111111111111.11111 .... 11112 '66666,66166' 221111 t11 111l111.1.1 ! 1 111.1 .•.... 11 211111111111111111.11111111111111.......... .. 11.11 ...11'1.1l1F·6666!>6 ·661 b· 222211HH 111. HIPP111~HHHIHllilH\HHtHiitii:I:~:ilHH '6~~tt~t ~~~. 2HHH1111'f 11lHil!l!!!: .... 1...• 1211hlHllll1111111Pllll111111111.t .. 11.11.1p2 '6666666, 65 22222211111 '. 111 .11 ... I : i i:: : :::: :: ::::: 22~22~2221111111 ~ ···5' r 0 •••••••••••• 10 • • • • HHIHliIIHHHtH1!HlHHHHH~iil!!llilb2 :~~~~~UU~ ~. HH~HHHhH :H~~~:::!:: nHIHIHIHHHPHIH!lHhH!!Hh!!:EHF :~g~~~~~~ttf, HHHHH:HH HHIH:ih: 11111111111111111.1111.11"ll1111111.1.011112 '666666666;' 222 22 11\21111il11tll ..... 1111111111111111111ppl 111Pl 11 •••• 1122 '6666666666b' 21 1 11 1 1 I \1111111 ~lPPl''''. 1 1 1 l 1HHHIHH· Pt 1 Itl l11 llid~HUlP~F .a~~~~~~U~~· Ui HUliH hl iti hhhhi~i:: 1111111111111L\ Illh·h hlHp··111 l tz "66666666666' ~!H ?12111HHHH 2lUpHl· .. · ....... . ihlHH!i d1hHll1Hlll12211dtiHld '6666666666666' .a~~~~g~~~~~~· 22 ~22 iHHh11i1112! nHdll.l::: ~:::::i! 111111111.11111Pllt1112212?11l111111F 2~ :2~ ~2U21212 2222: 112211111 .... IhHH!IPHHdthPHIHHHHHH '66666666666665. .~g~g~~t~~~~~~~· 2h.h~22H~~HHFHlHHH!1:: 1111111.11I11.1111111h2122111211112 222~; 22 222 22222222~ !222211111111. HHI!i!HIHlp l l·PPHHHHH 12'.6666666666666.. .at~~~~~ggtt~~~· 22~H21 H l 5EGHEN T 111.111111I1111Hddtl1111121222 222212. 12 ; v OE9CRIPTIOII tHHH!HIHIHH1HHHIHllgz :~~~~~~~~6bh"~:: aU"LL~ ~:. ' n 9 1811 CELl JUNCTIO. 385 Lllll11122}22211111121211111 22 '66·' _voob6" 222122~112Zr~;. ~ 117 BIUNC~_PC1~1 ""7 111l1l1 21,22222~ 1112221112 .1-- _eb66666·.· 2221212 Btl lH-"HO HHHHHBBHHHH~~~HF Ob6~~~~~~~~~· 2~HHfHHnll ,: It52 10ft e~c feiNT ft52 Ll211l222p22F~2~H2Z22p7 6666666t6666' 222111111112Pil111111 ItSO gHHF~2;2~/2f122HH""l :~t~~~~~~~~~·· 22fH~lP12HHll 111!1'i!1 126 BRH;ct- P(I~l "52 Z222212~22J2d21112112' l.6666666666" 221111 dH1111 1 11.1) It83 110 EII[ feiNT 483 l222221!21'~2~21222121 1 '6666666666. 221111111ll1111lL11l11ol.. ...... ... .222222 1 f 2 2221271 • '6666666666' 21111111111111ttttltt11·1~~- .. -- .... -- ... ".. . t· l1 ••.1 ••• l· .. 1...................1....... 2222 1 • 1 12211. .66666666" 2221111\1111 1 1 \11 ..... 1 .•... 1 •••• 1...... 1111 ...... . 22221Jl1111l11< -66666666' 22121 1 1111111 . ..1 •...• 1 ............... [. 1 }t. ... ..•.. . ................... 1 ....... ;6.. 11 2 221 t. '66666666' '6666666" 221111111111111111111. 111 ....•.• 1............... ...............1.111 11.1 . .111 . 1.•. ........ 1.1 ....... 1111 .\ •••••••••••••. ,....66.. 2.211111222 212112222211112lil111ittl ... 1 •••. 1 1 11.· ••••••••• 1.11111 11 1.......... .. •• 5. 2;222112222 2222121122111112 1 1 1.1.1 .....•••••....•.•• ... 1... 1.Ll.lll1· .1..... 01 •• 111111111222111 ... 1••..•. '6,'6"6' 2222 2 '66666666' 666666666S' 2221112212221112 11111 .1 ....... 1....... 1.... i..1l..... U11.1.1. ••••••• 1.. 11 1111111 .. .l ...... . i ;"6'6'6" 2 66666666' 222222222112122221111111ttl·11··1··············· •· .. 1 •••••. , ..................1 11 11 11. 1......... . l l ·.6-6-6··6. • •• 6·. 666666511 -I ················itJ···tlt11~ tt •••••• ••••••.••• . 1 •••••••••••••• ••• 6·6 •• 6.t •• • ••• 66.6· 6666665' Z22222222Z122l12211.tllttl 22 222222222222222 1 1 .1.1 .•••••..••••... 1 .... .t1 It •••• l ........... 1 ••• 1 .. 11 ......•...• ··6·6··6·6 •• ··6··66·6·6 666666. 22222 2222222221222111 111111.1 ............... . ..• tll 11 ..................... 1 .............. . •• ·6 •• 6.6· .• ·.6 ... 66·6·6 666665· 222 22222222222221111l1l11 •.•. 11 •.•....•.•.• 1. . ,.,111 1.111.1 ......................... 1 .••.•.••.• ••• .. 6·6· ... 6·6··66·6·6 66666' 2222222222222222211tl li·· .. ·• .... ···· .~ ... 11t 1 tl1111ltl1 ................................ . ...... 6.... 66.6 •• 66·6·6 ·666' 22222222222222222~2 H1 l 1 •• 1. . ••••.••••• 1••• t.ll1 .. 11 .1.. ....... 1. 1 .................................. •6••••••• 6166.6.·66·6·6 666' 22222Z22222222~ 2 1 1 ... 1 tlll1 1............................... ... ;'6"'6"6'66'6·'66-6'6 66· 2 22222222~2217'? ,. - rI."t .... 1..........••11.t 1. l .... 111.l11 .... 1............................ . ~~:6~:t::~:t~6~:a~g:~~~6 ~- ~ ~u2"::,~a2·~IitttlHlfl iIi ::::i:·t::!ll:!.il . i!ttHl!!:!: .. ::::::::::::::::::::::::::::::::::: ·.6··6··6·t·66··6666·66.6/: • . ':2222222222~1 221111£t • •.••••.••• 1 .... iiI'" ..... t. ...........................•.....•....•.. ·6··6··6·6f·66"6666·66·66 2222222212211111111111ill'1·ll.··t·l[ .....• 111 Iii 111 ..•••..................•..•...•..••...••.. ~··6··6·66t.66 . . 6666.66.6 ~~ 2 222222222P2112 1 1.1 .. 1. "I' ...... 1......... . 111.1~11......................................... :;:~:;:~:~~~~ :g~::gggg:~~:.. 2 222~HHHHtH HtH Ull llll·1 !hli!l!!:: il:i:: :t!!l'iilhliitli::::::: I:::::::::::::::::::::::::::::::: 1 1•••. 11 ......... 1.... I •• 1 11 11 ...................................... . '6"66'666t'66"66666665' 22222?22221tl1t~ ~2\ltH}llllt1 ;6"bfl'66tt66b6b66666666' 22~22~HHP 1 t u t\11 ••• 1 •••.•••••••• 1·.1 1••• l·t 1 l I.. ·• .. •··· ............................. . ~~~t~~~~~~a~~~~~~~gg~~· F2h~hHH2~ ~ 1 d 1 11 • • !:: ::.:::::: :::. ::: .:tlth !. t:.:::: ::i:~!:::! i·:::::::::::::::::::::::: !>666666666f6666666666' 22222 22122H2~lHIHt\ ~ 11t .. •· I ... 1••••••. 11 1·· 1111 .. 1 •••••• , •••••••••• i ...................... .. ~~t;;;;;;U;;;;;ttt;~· ~~~~~H~~hat uJ. ~t .. L ~h i !~i:: !:li:! !:~!l:: iJt!H •. iiil:::::::::::::!::: !!:::::::::::::::::::::::: t. Il ... 221~ I Figure 3b. Details of computer analysis of upper left-hand neuron dendrite showing computered locations of cell junction, branch points, and end points. 420 PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 NEURON INPUT a EDIT PICTUR.E frame 5C4020 BUGM BUGS BUGT BUGM MAPDD BUGM BUGS Figure 3c. Flow chart of program for neuron analysis. body has the distinguishing feature of being thicker than a denqrite. Hence when the end of the probe still remains within the object, it would be reasonable to suppose that a cell body may have been found. A further test is used to confirm the finding of a cell body, since it is possible that a branching point will be wide enough to contain the entire probe. In contrast to such a branching point, the cell body is relatively massive, and hence another criterion is utilized, namely that a reasonably large interior area is found in the region ahead of the probe. Only if such an area is found is the location of a cell body confirmed. In the subprogram DDLpOK, the boundary of the cell body is searched by BUGM and BUGS. At every point a probe is drawn normal to the line between BUGM and BUGS. When the two bugs begin to climb up a dendrite, the probe goes through the narrow dendrite and comes out the other side. When the width of this narrow portion is less than a predetermined length, then a dendrite is presumed to have been found. When a dendrite is found, BUGT is set up on the other side of the dendrite, cell-body junction, opposite BUGM, and the subprogram MAPDD is initiated. As they bound the cell body looking for dendrites, BUGM and BUGT also observe whether or not either has n!turned to SRCHXY. If it has, this indicates that the entire object has been bounded, and at the termination of MAPDD the subprogram SUNBOG is ·entered once more. The subprogram MAPDD is more intricate than the other programs. Its overall tactic is to have BUGM and BUGT climb out on the dendrite. At the dendrite, cell-body junction, BUGM and BUGT are opposite each other. During the climb they are programmed to remain approximately opposite each other on the dendrite. When a branch point in the dendrite is found, BUGT will be going out on one side of one of the branches while the BUGM will be going out on the other side of the other branch. Thus BUGM and BUGT begin to move apart.· The distance between them is obst!rved, and if it exceeds a certain value a branch point is indicated. Confirmation of this branch point is assured by drawing a line, or tangential probe, between BUGM and BUGT. Only when this line leaves and reenters the cell area is the attainment of the branch confirmed. In addition, since this line completely crosses each of the two branches, new bugs can be set up at its intersections with the inner sides of the branch. Of course there may be many branches to a dendrite. The procedure is to analyze in each case the most counterclockwise branch first. The other branch is stored in a so-called push-down list for later analysis. The end of a branch is fOlUnd when BUGM and BUGT meet at the same point. Then the most recent branch in the push-down list is popped up and analyzed. A little reflection will show that all of the branches can be systematkally analyzed by this means. Analysis of Schlieren Photographs At present, data from ultracentrifugal experiments is usually presented in the form of Schlieren, or interference, images on film or on glass-baeked spectroscopic plates. These images are normally measured manually on a microscope having a micrometer stage; then the measurements are processed by certain algorithms to obtain sedimentation coefficients, weight-average molecular weights, or whatever molecular parameters the investigator may be studying. Usually as much time is spent measuring the plates, and as much time again in PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES 421 ~ 2c:'22~2cc21 444444444"5 2,":l'":lc ~3;J;;:} "2 I I I ~. J I 1 I I I l J I J l ' 1. J I I t I j I J I I I 1I f J J j 1 I I II If I I I 1 t t l l ' I ' I I I I I 1 I I' I • I I J I l I I I II' J ) I t 1 I I r IJ I I I • I 11 ). I t I J I I' I I. I • I I I I • ,I I f Ut It I I 11 t I , 1 1 I I I I !, I I t t l I 11 I JI 1111 II II. I I I t j I II J I J I I j I I I I J 'I J I' I I I I t I I I t I I • I J I 1I . 22"22 ~~ • 4L1~44 44.:::ac:; I I I I II I I II It'· I, ,,, 1 I· 1,'1, lltll~lrll 21 -".1 ' 4~~~ o:t r;:::<=c44~ . 44!~!!~~!e~~ 4~4444444444 . ¥f'ffft~fr1¥17 . I I I 11'11 I I f It·, J I I I 1 r 11 11 I·f 1 1.1 H) t l tlJ.t·, Figure 4a. Picture of a Schlieren photograph as recorded in the computer's memory. In the insert we illustrate an enlarged portion of the figure showing the density levels (where the unit is the zero level). We have also shown an insert of a portion of the original Schlieren photograph. 422 PROCEEDINGS-SPRING JOINT COMPUTER· CONFERENCE, 1966 computation, as was required to perform the experiments. The automatic analysis of such ultracentrifugal Schlieren photographs consists in first reading each picture into the computer by means of the FIDAC instrument (see Fig. 4a), and then utilizing the BUGSYS language to make measurements 1"6666666665321 2666666665321 26~6666f6"22 24se6686632t 136ft6666Sl21 ! 46666665321 266e666522 2!e66665221 l36666665221 14666666532 1 J6et-b6~521 ~:::~~:~;~'1 2-1666666421 12'56~6666~221 ~ 12.J66666665221 12 223 '36~66666'5 221 2222222 2222223" ••• ~.3 4666666 6666!!:4 32 22111 ~~:~~~~~~~:~~~:~~:~~~ ~ ~ :~~~~:: ~~~~ii ~ ~22 ~221 2 ~i~ ~5!~~~:::~~~i:~~1~~~ ~~ll~~ll~11~6666 1366664221 IJ666t:321 2!l666:J21 246.421 246.421 t:!~6.~21 I:! • .466.6321 14t16.521 14f6.521 2466. ~21 2466.5221 2~6 .6421 2466.-::21 24f:6.521 246.6421 2'56.6421 246.6321 246.6421 2'H:.bla21 1 3f6 .64 21 256.'521 11 llli 1?3442222al lJJ5E.6J221 13466.6421 2J!6.66421 1 J46E.6321 ZO\ff.6521 2366.6 .. 21 2:!f.e.642 23fE:.6321 11222222222222233333455555555555 1.3~t.6.2t 12'!6. E:421 12~E:.e~ZI I '3eE:.6421 246.632 24E:.6421 1 '!e. 6421 Z4f6.521 116.64.21 1 J66. ~21 1~6.521 H:6.64~1 2E:li.532 1466.6321 1466.612' IH:6.E:12' 2':6.6421 256.6521 2!6.6421 146.642, Jeto,.b:!21 256.6:!21 1e6.5:!2 366.532 26b.6:!2l 2'5b.6J21 l'!66.5,!21, ~;~.522 ~.6':.~~I: 1:~~:~:~~1 14e6.S'!21 ~:~~:g~~: 2'56.f5221 24e.64il :-4e.64i:2 i4E:"'>. '52~ t> "< .i5E:.6~22 ;:·H:.6JZl 25t.64~1 266."'4C'1 I :!66.6521 11\66.6321 256.64;:;1 ;~~:~:~i 14..,6.64221 1::!66.6lt21 ..?6e.64221 '!.l6.64221 ~:~~:~;~:I 246e.63221 2466 .. (,4211 i!"l6.t.6............ 2"6~.64221 IJb6.flll42211 . 1 t l t 11 It I It IJ6~.f642211 1]66.6642211 24ol').~.b4221 1111 1111 14':6.6£:3221 2.6~ .. ~632211 2"'~6.1')6422111 21166.661t2211 c466 .. ~:'2211 24:f:5 .0l:J~ I 2466 .~f:2211 1466.642. ::~~:~il: ~:::::~J~: ~466.E:S!2' 1"66.66421 1366.66.21 1'l666.d'!221 :~~:~::~~~I 2566.e~3U ;1:666.4!515321 l566.4!56321 2"66.66 . . . . . . . . . . . . . . . . . . . . . . . . .. 25"H"h6643l 1246f>6 .. :6'3321 126"6.6115321 24f-'-I6.f5321 236tJ6,,66321 Z4666~~6321 24666,,665221 13666.665221 2"6~".65221 1"66.tt2~11 24666.6")221 I 3664!5 .66J21 2466~ .. 66"211 2~c6.~l:I3211 136MI.665221 13".:!6~.664211 ~:~~:~~~~~:1 ~!~~6!~~;~n ;:"65.M,,~2211 246d~.66~221 3:~~:~~~~~ ~ II 1111111 ~::~~:~~;~~: 1"f~~.666]211 ;:561').6':2211 12566.6522211 2t\6t!1f.:.66f.42Z1 lJ6"l6.65c.lll 1 '!66 ."e,,2211 24666.6522ll1 12566.6664211 2 ....H.6.664221 24d66.6652211 t;::666.tl~22111 1246'.6.f:~'22111 ~~1U::::::JII::::~:~~~:~;~~~~~:::::111 Analysis of Neuron Cell Bodies 1466.6"', 1)66.652. 366.6522 14E:6.5522 366.65j21 356.t.o6 21 256.66 21 266.66"21 256.1'15121 256f..e 21 ~46f.6 2Z1 2_!l~.l:32211 1 1\ 1\ 1221 124221 .2. 13~d~.ti6f:321 II 2:!2H22?111111111C246 56.u~32?;!221111111111 2:4tS~6.6b52211 i~~~~:~g;.~~~:: 12666.66642221 ~~~if: i g ~:: ~:: t : ~~~~2: ~~~~~~~~~~~~~: ~:::: 1 I ~ ~~~~~~~~~~~~~: 22111122211 ~ 111111 b"Z2211 2222222 .22':!,l.! 11) 1 ?:2~66~. o!!"'64 32~:::2222Z2 !221 ?111.l4e/.lt-6. 66'j22Z2111 2Z~2222 2.!'!2 '! t !2 2:'t 2 266 6. 6"~3 22 2.!? 22 22 22111221112t: 666.66532222111 2222222.!2"?2 '!122?;>2:2~66 .tlu6~ '!?2Z2222~ 22121221112"56"'6.666322221111 2322C'?.12~?. 22 222 22 C 266..,6 .~6':i 122;: 2.2 2' 2~ 222212221 1 .a~6M•• 66632.2 2.2111 1 2322l2i.2222'?222l .H'::'5b'). l'i6b" 3?22222Z'2~2112221124666e. 61')522221 t 2122l ~2 ~2 2 2 ~~.! ~ L 2' 216e. 66.06'542;t.22 22 2 2 22 2 2 22 2:' H ~46(o.6f:. 666.J2~2 211 11111 232?222.!2:22~.!:~';!222 ~66~6 .66'34 ~ 3222c2£"2l222l,222123{)l-66. 66632222211111111 2:t22::!2ll22;P.!~22::'246f)66 .f;e15~412C!2c222JL!i.l222222J6"6f. 661;52l222111 t 1111I 1 ~32.!22Z 2:1 ~ 2.!2l?7.':2 56G ~t.. b()S'544 .13:!:! 3~ '! J 32222:t:2 2 2'2566t. 6665122232' 2222222111111111' II' 3')] 1 ·jJ3]" ~ 3 '!! 3 3 .."i ." "'66~6. tf!5!5""" 44'" J:!!!! 32 222222'! 5666. 666t 4 ~z 2 '!222222 222 21 21 111111111 ., J333331""3 131' ') 14 t6f1. ~6 .6"554 3 3:!:! 33 ~ 2 3 3222~32 22.2_066(. 6oSl-522 2 '222222 222 ?222.2, 121 • III 33 l""4 3 '1 'l' 31,n":1 ~.:!r:.66 66.666'5"" 3J ~:! '1 ~ l'nJ J222 22 :i!24661':6. 66652.2? 32 22222222222221211111' 2133Jc2212222 322.~ .1'566 66. ,..,655544 3! "!:!J J4l33 32 3 32 2!..:! 36666. 666t.42 2 322222~ 222.121211111111 .B3332.l 2:' 2 2::? 212 32'! ('06 t:. 66654 4444 ~3 '1=:t 33.!] 3223 222:2 'l6a6e6. 666'32 2 32 ~2222 222112\211111111 ]J JJ~ 'Ij ]~22 2:tJ]2 223~66 66.66'5'3544 ,.,3 J~ J 33 3 3323 3 32:2366666.6665323222222222 t 221 211111111 444 "'333 3 3 '] 3' 3 12 J? 3e6f)oS6. f;~5S~" 33 3333 3 3222222 32 2'2 250t66. 66653222 22222 222e! 121 11111111 4'5"4444" ')44 4 3 J 1 J 34 e66 66. (,65554 33:! 333 J 3 32 22221! %2246666 .66664 ?22 22 222 221 21 21111111111 5'34444",,] 3J 3., ... " 3 16 -;66661",. 66655'!! "4444 4544 "'4"" 44 3~2466666. 6665 J3222tZ2 222 2222 21211 'j65S"i554441t :'I 3'55'546~f"'666. 66665544444 454 .. 4443 34 :J.22 'lSe.t'lfl6. 6666 3 32 22222 222 222a 2222222' 1 III ;;~;~~~ ~i~~::; ~ ~:: :~~ ::~~~;~~~;:;::: ;~;::::: ;:~~~~: ::::~: ~~~ ;~~ ~ ~ §~~ ~~~ ~,~ ~ ~ ~~~ ~ ~ ~~ ~ ~ 5to5S:;,.,. 444",. .. 54 ,.It~ te6 tl6e6. ~5 '\5 ~5 ~ 4"" 4 '5" 4 444. 44 4::12 3 366666. I'J 66 '542 2 2 2 22 2222222222222221 ~::~~:~~~~;~~~§~~~~::~:~~~~~:: ~~~~~~~:~;~;:::::: :~!~~~~~: g~g~::~~~~~ ~~~~:~~ ~~~~~~~~ ~ b~6f\666b6661)f:>6'S4je.e66661'166666. 6"66l:l56~~'5S'S5'55!;!!44" 5t'1666. 6666':. •••••••••: . . . . . . . . . . 2222 66666I'JtlJfl666.t- 6'!tf ~ 't6 6f666 66tj66~666 6 6 6~1S6ft6655~5! 5.55. 34l-666 e 66666~ 'l 2 2.333 'l2 2 212 222222222: 6661'!J66666 66666'5 566666 e 61!16666 65 555'55S56'5!! '55554", 4 4 32 25666 ~666666 4 21.21 322 2 2 2.2 222: 2 2 2 2 2 2 66t.6655 ")56':16 5~'S ".156 eb6 f:6 66666 6""1, 55 'S'!!! '!! 56!! SS5'5I}S!-! 542 ~4 66~6666 666 5 32 22 222" 2 32? 2 2l2: 2 2 2 2 66666t-6116h6{,66116o;6 66G 6 6 66666 6t-66 6l: 66 6655 5$Sb65'!1<5~5 3 2 366666 66 6666. 2 222 2? 2 2]222: 2 2 2: 2 22 2 666666666666 36 ~ 56" 666 66 t:66666 6 66 61'166 6651111j! 5 3151554·" 5S 3 3 3666666666665 32222222322: 22 2 222 2 2 66b666u66666 56 5 31'J666f1o 66 fl6666 66666666 d666 6 555'5~5',5 6654. 4 66f,666 \!16ft 6S .... 31 2J3 3 J.:3] 122222 e:2 2 66666666666 ~666666 ~H. 6 6 b6666 6666 66 66 6666 6666 6 55·'3 66~ S4" 666f>66 666'" ~5. 3 J 33 3 33 J 3 3 3 22 2 2. a 2 666666t>1l1\666C)6 5 06 6 Ge6 e.o!I6666t..6666 6~6E: 6666 6666 66 E 6 666 ;34.6666 66666 660;. J 222 33 3J.4 3 32 2. 2 2 2 66«066t>66~6S54 ~"~I'Je. e;61"i 6 ~ ~6 61'.16 6666 "6ee 666t e.6~e666 6 6,.665"566666666 66')"3 222334.4." J 3 2. 2 2 2, 66f.66t16 66'544 'J.66 ~66666 6 6 6tJ6666666 "!5~ 56 6f f666660S 6 61'J6 54 2 366666 666666 33 32 Z 2. 34""" 4 32 222 2 66666'!'\.~ " ... 4.'.) 5o!161!o66 f6b 66 ~ 6666666666 6! !56666 6~tl6666 !l6S!4 336666666666654 ) 312 2 2 33 34 333132 2 66555!55 5"j~66I')oSb 666 6(;'" 6666666 6666 66 61: 666666666 ~ ~'5455 ~44 "66666 66666666 5 33 2 2322223:1 3" 4 4 Figure 4b. on the picture. As illustrated by the dots, or "footprints," in Fig. 4b, a bug is first plac.ed to the right, beyond the two lines. It is then moved to the left, searching for the rightmost line, or function curve. When this line is found, another bug continues the motion to the left, looking for the second line, or base axis. Now we have one bug placed on each line. The bugs are then moved up along their respective lines until the right-hand bug finds the beginning of the function curve. The measurement to be made in this case is the horizontal distance between the two bugs, i.e., Lly. The bugs now move down, one point at a time, making approximately 115 measurements of Lly on the curve. The measurements are made from the "middle" of each line, since the line is really "thick." Th~! STICK statement is used to keep the bug in the middle of the line. After all the measurements are made, the computer programs to determine molecular parameters are executed, to produce the finally desired results. On an IBM 7094, this entire process takes less than one second per Schlieren photograph, with the FIDAC device. Computer analysis of Schlieren photographs showing "footprints" of the paths of the bugs. The purpose of this study was to investigate possible morphological changes due to aging in cell populations of neurons from the caudate nucleus of the rabbit. The morphological characteristics measured were 1) the area, 2) the maximum diameter, 3) the maximum perpendicular radii, and 4) eccentricity of the perpendicular radii (see Fig. 5a). These measurements were made for both the nucleus and cytoplasm of each of about 6000 cdls, utilizing the FIDAC scanning instrument on an IBM 7094 computer. About 2.1 seconds p(~r celt, or 3Y2 hours altogether, were required to process the 6000 cells, including the scanning and computermeasurement times. A problem arose from the fact that in looking through a microscope at a three-dimensional ,cell only a two-dimensional section is seen at the plane of focus. Therefore the largest projected area of the cell can only be obtained from the examination of a composite of sections seen at many levels of focus. To obtain such a composite, the image from the microscope was projected into a ground-glass plate, and as the plane of focus of the microscope was moved up and down the largest projected area was traced on paper. In this way, drawings were made of each cell in the study, with the cytoplasm in black and the nucleus clear. These drawings were PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES 423 • 1~ .17 .1 S • 1~ • 1/~ .1 j Figure 5c. Figure 5a. Diagrammatic picture of a cell indicating the measurements to be made. For the cytoplasm the measurements to be made are the maximum diameter DcD'c and the semiminor axes SCPI and S'cP 2, as well as the eccentricity PI P2 and the area. For the nucleus the measurements to be made are the maximum diameter DND'N, the semiminor radii S N P3 and S'N P4 and the eccentricity P3 P 4 and the area. Figure 5b. Actual 35mm frames showing cells. then photographed on 35mm film for input through the FIDAC (see Fig. 5b). For this problem the FIDACSYS programming system was utilized. In the first step, the FIDACSYS system directed the FIDAC to scan a frame and read the picture into the computer's memory. After a frame had been read into the computer, the internal bug scan was initiated in order to locate the first object or cell. When a cell was located, its boundary segments were determined (see Fig. 5c). While tracing out the boundary, the bug also replaces the boundary points with the value "7." In addition, during this process the maximum and minimum x and y extensions of the cell under consideration are also determined. For the computation of the maximum diameter, the distances between all pairs of boundary points are determined; the points corresponding to the largest distance are the end points of the maximum diameter. For the computation of the maximum perpendicular radii, the areas of all possible triangles constructed on the maximum diameter with an intermediate boundary point as vertex are com- On the right, a partial-print of an object. On the left, illustration of the selected boundary points on the object and examples of the triangles by means of which the minor semidiameter is determined. This object is shown for illustrative purposes only. In general the brain cells analyzed were much larger, and about 200 boundary points were obtained on the cytoplasm. pared. The largest area on either side will give the two largest perpendicular radii. A simple calculation gives the point of intersection of each maximum perpendicular radius with the maximum diameter, and the eccentricity is thereby determined. Next an erasing process is initiated; the object is erased from the top down until the nucleus of the cell, which is a clear area, is found. The boundary of the nucleus is then traced by the bug, and a list of boundary points is· made. From this list of points, the maximum diameter, perpendicular radii, and eccentricity are again computed.' Analysis of Chromosome Karyograms As a final example we shall consider the automatic analysis of chromosomes by the FIDACSYS programming system. Recently there has been much active interest in the analysis of chromosomes in the metaphase stage of mitosis, when they appear as structures split longitudinally into rodshaped chromatids, lying side by side and held to one another by a constricted area called the centromere. Certain abnormalities in the number and structure of chromosomes are particularly evident at this stage and can be related to clinical conditions in animals and in men. For example, in man, mongolism and the Klinefelter and Turner syndromes have been correlated with chromosomal aberrations. The study of chromosomes by manual methods, however, requires a great deal of time-enlarged prints must be made from photomicrographs, and 424 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 each chromosome must then be cut out from the print so that it can be aligned with the others for classification into the so-called chromosome karyotype. With the FIDAC system, the time required for analyzing and classifying! each chromosome can be radically reduced, to about half a second per chromosome or about 20 seconds for the full complement of human chromosomes. Here' we use the computer for investigating large numbers of cells with respect to total chromosome complement counts, to quantitative measurements of individlual chromosome arm-length ratios, densities, areas, and other morphological characteristics, and so forth. By processing large numbers of chromosome sets and statistically analyzing the data, it is possible to give very accurate descriptions of the standard ( a) F(,iUR-AI~I'J,f:.[) CHROMCSOME FOU\lD wITH CENTeR OF GRAVITY AT A ~~ C. A :: 2 8'~ • ;). = PER I M E. TEn RATIO =J o v i::: ~ ALL LEN GT t-:: Y :: lIS,. 89.2. LENGTHS OF FIRST ARM PAIR IDENTIFIED ARC LENGTHS OF 3ECO\lD ARM PAIR IDENTIFIED ARE A~~-LENGTH X ;; 403. 7.8 AND 8. 1 ~ 17.5 AND IS.G. .4R9 24 • 2 COORDINATES. A~M-C:ND 1ST ARM. 2ND ARM. 3t-lO A~M , 4TH A~M. THi CENTROMERES ARE LOCATED X X X X = 412. = 399. = = AT X ...... ·....... . . . . . ...... . .............. ....... .. ............... .... ·............... ............... ...... .. . .... ·............. '. . ...... .... .. ............... ..................... ... .•••••• . . . . .... .. ............. . .... ..........................:. . ........ .... .. ...... .. ·........... .......... ....... •••••••• ·• .• • ·....... .• .• .• .• .• ..• .• ........ . • ••••••• . ......... .......... ....... •••••• ··... ·.......... • •••• ••••• •• • • • • • • • • • • • ..... . • ·................. .... •••• ·•• .... •••• •• ••••• • ••• 396. 4 ~ 8. Y y Y Y = 4~7. = 126 = 12<; = = 1(6 1(,5 Y = 120. AND AT X = 403. PLOT OF BOUNDARf Y = 122 POINTS .17 .18 .15 .16 .19 .14 •1 .13 , .2 .12 : .3 ; : • 11 .4 ; ••• • ......... • •••• • •••••••••••••••• ( b) Figure 6. .11 .7 .5 .6 .8 .9 C. C ) (a) Results of analysis on a chromosome. (b) Subprintout of chromosome being analyzed. (c) Centers of boundary segments. PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES chromosome complement and of individual chromosome variability for particular species. This statistical technique may be the only way to uncover small variations, which may prove important in relating chromosome karyotypes to diseases. Figures 6 through 11 illustrate the capabilities of the FIDACSYS chromosome-analysis computer program. After the picture has been placed in the computer's memory, an internal programmed scan is made in the memory for each of the chromosomes in the picture. When a chromosome is found, it is analyzed; the results obtained are as shown, for example, in Fig. 6a. The coordinates of the center of gravity of the chromosome are determined, its area and perimeter are measured, its centromere and arms are identified and the lengths of the arms of each arm pair are/ measured, the armlength ratio is computed, and the overall length of the chromosome is determined. Of course, the actual coordinates of the ends of the arms and of the centro meres had to be determined in order that the arm lengths could be properly measured. These coordinates are also given for the chromosome, as illustrated in Fig. 6a. 425 In Fig. 6b we show a subprintout of the particular chromosome being analyzed. When a chromosome is located during the internal scan in the computer's memory, the boundary of that chromosome is traced. This boundary is then characterized by a sequence of boundary segments. Figure 6c illustrates the actual locations of the centers of the boundary segments that were chosen to characterize the chromosome of the illustration; for this chromosome, there were 19 such segment centers in all. The next step in the analysis of a chromosome is to characterize the curvatures of the boundary segments. These curvatures, called the basic parts of the chromosome, are illustrated in Fig. 7a, in which we show the curvature code corresponding to each boundary segment. The code letters at the end of the alphabet, namely U, V, W, X, Y, and Z, represent concave curvatures in increasing order, whereas the code letters A, B, C, D, E, and F, represent convex curvatures in increasing order. The code letter 0 represents an essentially straight segment. Next, from these basic parts, the syntax-directed pattern-recognition technique is carried out to build up the so-called derived parts of the chromosomes. PLOT OF eASIC PARTS FOA OBJECT .OE .ou .0 A .OC .08 PLOT OF DERtV(O PARTS .00 .ou .0A .93 .90 .90 .95 .0,.. .OC .72 ,9. 90 C 2tH3,11.3 68.5 7 C 338,134 ~j.~ .3 4 5 6 U E 220'1~b I) lO 0 2 t HJ.146 11~.3 b4.~ 441,151 bO.7 11 A 427'18;) 199.7 12 G 208,164 49.5 1 n 304,1()U 117.6 lt~ b 99.2 3~6'20d l~ D 3~6'21~ 63.6 16 D 2t>5'26~ 51.7 17 !j 214,27:' 90.9 18 C 442,274 76.5 19 A 2::>0,.307 161.0 20 C 2b5,.30~ 71.6 21 C 366,318 90.9 22 A 303,350 203.2 2.3 H 356,394 120.5 .~ .. J Figure 8. C 73.3 3B.5,37.~ 20.(3 19.2'19.~ 16.9 B.4,10.9 29.0 24.9,24.7 24.4 19.5,19.0 1b.1 H.6, 8.6 40.~ 24.7,2..3.8 2C1.1 12.0,10.0 2u.2 ~1.O'19.4 78.7 42.3,40.9 10.6 8.7, 7.5 41.0 2~.2'21.5 32.1 la.5,1i3.7 19.8 11.9,11.0 16.5 8.7, 9.2 30.5 19.1,18.7 24.7 21.0'18.~ 59.7 32.4,32.0 23.9 23.2'21.6 30.2 22.0,22.4 83.0 45.4,46.0 39.3 23.5.19.9 34.9,35.2 8.6,10.3 8.1,10 • .3 3.8. L~. ~ 5.3, 5.0 7.3, 7.d 16.4,16.1 8.9, 8.~ 8.2, 7.6 37.5,36.7 7.fH 7.4 20.0,15.3 12.7,14.2 9.1, 7.5 7.9, 7.1 12.0,11.2 5.3, 4.6 28.(),26.9 1.5, 1.5 8.9, 7.1 36.5,38.2 20.5,14.7 .522 1013. .673 434. • 511 219. • 856 378. • 78B 295. .~33 171. .598 572. • 56fl, 240. • 716 397. .529 1114. • 520 153. • 570 531 • .580 451. .580 219. .544 154. .619 3R2. .799 351. 895. .~40 • 937 301. .735 3A2. • 550 1139. .552 596. 512. 303. lIn • 357 • 235 • 93. 324. lL~3 • 293 • 591. 79 • 295 • 246. 128. 81. 253. 277. 450. 297 • 310. 592 • 318. Printout of final results of completely automatic analysis of full complement of chromosomes of the tissue-culture cell of Fig. 9. 489. 125. 110. 35. 56. 76. 242. 100. 97. 499. 72. 237. 205. 87. 69. 125. 64. 426. 7. 69. 550. 262. .51c .703 .501 .910 .eOR .549 .572 .589 .750 .542 .521 .555 .545 .596 .540 .669 .813 .514 .977 .SlA .518 .548 Chinese··hamst~:r This procedure results in the recognition of the ends of the arms and the centromere position. Figure 7b illustrates the codes developed for the derived parts. Figure 7c illustrates the final results of the recognition method for our illustrative chromosome. Here the letter E has been placed at the points which represent the ends of the arms of the chromosome, and the letter C has been placed at the points that represent the location of its centromere. The measurements of the arm lengths are made from the centromere to the end of the corresponding arm. The area and perimeter of the chromosome have previously been determined by the computer program. Figure 8 shows a printout from the computer of the completely automatic analysis of the full complement of chromosomes from a Chinese-hamster tissue-culture cell. Note that the computer has automatically 1) counted the chromosomes, and for each chromosome has automatically 2) found the center, 3) evaluated the perimeter, 4) measured the overall length, 5) measured the lengths of the two long arms, 6) measured the lengths of the two short arms, 7) calculated the (arm) length ratio, * 8) evalu- ated the overall area, 9) measured the arlea of the long arms, 10) measured the area of the short arms, and 11) calculated the ratio of the arm areas.t Figure 9a shows the photomicrograph of the cell of Fig. 8. Figure 9b was plotted by the computer only from the results of its analysis. This plot shows where the computer 1) located and 2) counted each chromosome (see small numbers), and for each chromosome shows how the computer 3) traced the perimeter (see chromosome outlines), 4) identified the arm end points (see x's), and 5) determined the centromere (see line across chromosome). In Fig. 10 the computer has plotted the results of the automatic classification of the chromosomes of the cell of Figs. 8 and 9, giving the complete karyogram. The x marks the centromere, and the lines diagramatically illustrate the actual arm lengths; the number below each schematic chromosome relates it to the corresponding chromosome in the Table of Fig. 8 and in the plot of Fig. 9b. In Fig . 11 the computer has plotted a scattergram of the short arm lengths vs the long arm lengths, where the small numbers again relate to the chromosome n4mbers of Figs. 8 and 9. *The arm-length ratio is computed as the average of the long arm lengths divided by the sum of the averages of the short and long arm lengths. tThe ratio of the arm areas is computed as the area of the long arms divided by the total area of the chromosome. PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES Figure 9a. Photomicrograph of cell of Fig. 8. 427 428 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 , 8 .0 Figure 9b. Plot of computer analysis of cell of Fig. 9a. 429 PATTERN RECOGNITION STUDIES IN THE BIOMEDICAL SCIENCES TYPE CHROMOSOMES A TYPE )( )( )( CHROMOSOMES C )( )( )( )( )( )( )( )( )( 19 18 21 10 II RPE CHROMOSOMES B I~ IS 17 :IS Figure 10. Karyogram plotted by computer. SUMMARY In this paper we have presented an introduction to the instrumentation and programming techniques utilized by the authors in biomedical pattern recognition and processing. We have illustrated the techniques by briefly describing four applications already accomplished. Such techniques promise to open up entirely newfields in biomedical research. ACKNOWLEDGMENTS We acknowledge the cooperation in this work of Prof. Charles Noback, Dr. Richard Moore, Dr. Alden Dudley, and Prof. Frank Ruddle. REFERENCES 1. R. S. Ledley, Use of Computers in Biology and Medicine, McGraw-Hill Book Co., New York, 1965. 2. Ledley et aI, "FIDAC: Film Input to Digital Automatic Computer and Associated Syntax-Directed Pattern-Recognition Programming System," in J. T. Tippet et al (Eds.), Optical and ElectroOptical Infor. Proc., MIT Press, Cambridge, Mass., 1965, Chap. 33, preprint. 3. R. S. Ledley, Programming and Utilizing Digital Computers, McGraw-Hill Book Co., New York, 1962, Chap. 8. 430 PROCEEDINGS--SPRING JOINT COMPUTER CONFERENCE, 1966 II rt: III "" • II to '·.000 I I 1t.7tH 18.42'; L~'1G Figure II. Ie I" --------r-~.667 I 28.986 R'1M LENGT"iC;; I S5.1l9 Sl.es1 Scattergram plotted by computer of short arm lengths vs long arm lengths_ 4. Ledley and J. B. Wilson, "Automatic-Programming-Language Translation Through Syntactical Analysis," Commun. Assoc. Computing Machinery, vol. 5, no. 3, pp. 145-155 (Mar. 1962). 5. Ledley, J. D.· Jacobsen and M. Belson, "BUGSYS-A Programming Language Not for Debugging," ibid, vol. 9, no. 2 (Feb. 1966). See also K. C. Knowlton, "A Computer Technique for Producing Animated Movies," A FIPS Con! P'roc., vol. 25, pp. 67-87 (Spring 1964). A CHESS MATING COMBINATIONS PROGRAM* George W. Baylor and Herbert A. Simon Carnegie Institute of Technology Pittsburgh, Pennsylvania 1. INTRODUCTION allow flexible movements in an analysis tree of possibilities. Then in Section 4 the "top level" comes under consideration; MATER's heuristics of analysis-the search rules and priorities, the search evaluators-that enable it to find a mate in the maze of possibilities. In Section 5 data on the performance of the program is presented. Finally, the programming language representation of the chessboard and chess pieces and the basic chess capabilities this affords are reported in the Appendix (they are reported in yet finer detail in Baylor 2 ). The program reported here is not a complete chess player; it does not play games. Rather, it is a chess analyst limited to searching for checkmating combinations in positions containing tactical possibilities. A combination in chess is a series of forcing moves with sacrifice that ends with an objective advantage for the active side. 1 A checkmating combination, then, is a combination in which that objective advantage is checkmate.t Thus the program described here-dubbed MATER-given a position, proceeds by generating that class of forcing moves that put the enemy King in check or threaten mate in one move, and then by analyzing first those moves that appear most promising. The organization of this paper centers around MATER's ability to analyze chess positions. After a brief look at the program's history in Section 2, the overall organization of the program is presented in Section 3, an organization which is designed to 2. HISTORY OF THE PROGRAM MATER has led a checkered life. The original mating combinations program,as conceived by Simon and Simon 3 was a hand simulation setting forth a strategy of search. According to hand simulations the program discovered mating combinations in 52 of the 129 positions collected in Fine's4 chapter on the mating attack. But a hand simulation is not a rigorous model and, as such, is itself sometimes prone to the imprecisions and ambiguities of many verbal theories. Indeed, Myron and May~ pointed out two such ambiguities in the specifications laid down by Simon and Simon 3 • Newell and Prasad 6 coded an IPL·V program which set up a chessboard, recorded positions, made moves, tested their . legality , and performed a few other functions (see Appendix). This they overlaid with the beginnings of a mating program. *This investigation was supported in part by Research Grant from the National Institutes of Health, and by the System Development Corporation while the author was a sum~ mer associate there. tSometimes the defender is able to avert the checkmate by incurring a heavy loss in material (pieces and/or Pawns). If the attacker's gain in material is indeed an "objective advantage"the defender being left with no compensatory attacking changes -then such combinations would generally be called mating combinations, even though not ending in mate. The current version of the program confines itself to mating combinations in the narrow sense-those from which there is no escape. Inclusion of the broader class is an obvious extension. MD~07722~OI 431 432 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 8 11 1 W-:-:-k~ IJ 1 Figure 1. The Analysis Tree (The W's are White moves, the B's, replies.) The first version of a mating program described here-MATER I-is the work of G. Baylord,2 H. Simon and P. Simon,3 using the Newell-Prasad 6 chessboard. The program was revised during 1964 by Baylor into a second version, MATER II. 3. ORGANIZATION OF THE ANALYSIS TREE The Problem As stated in Section 1 the mating program analyzes chess positions. An analysis of a position -as the term is used here*-consists of the set of moves and evaluations made in the course of resolving the choice-of-move problem. Taken together, moves and positions make up a tree of possibilities in which moves operate on positions to produce new positions (see Fig. 1) and on which evaluations of positions and· of moves in achieving desired positions can be hung as desired. The dots or nodes in Fig. 1 denote positions (static states) and the lines between dots denote moves (operators) that transform one position into another.t *Chess players would probably prefer to define "analysis" as the finished product rather than the process of search, laying stress on the "right" moves and continuations rather than emphasizing how these were arrived at. tSimon and NeweiF have often drawn this difference equation analogy to the problem-solving process: given an initial state description and a desired state, the problem is to find a process description that operates on the initial state to produce the desired one. In discussion of the Logic Theorist,8 for example, the logic expressions correspond to the static states, and the rules of inference, to the operators. How should the analysis of a posItIOn be c:onducted? Figure 2 presents one simple scheme. Would this scheme be workable if it wc;~re made operational? For example, let: 1. "X" be defined as checkmate and the program be given the capability of generating moves in its service; 2. the criteria for deciding among moves be specified by certain rules of selection; 3. the program be given the capability of making moves and updating board positions; 4. a test be provided so that the program "knew" if it had achieved ';'X"; and 5-8. the corresponding provisions be made for "Y", defined as escaping check, and for choosing among replies. The answer is no, not quite. The schem,e lacks a means for recovering from false starts, for retracing its steps when it runs into blind alleys. Ind4;!ed, what is lacking can be seen by considering the difference between actually playing a game of chess and analyzing a chess position: the course of analysis is fickle and reversible, whereas in an acltual game a move once made cannot be unmade. In other words, the scheme outlined above needs provisions for unmaking moves and for abandoning seemingly unpromising positions as much as it needs the capability of making moves and pursuing promising positions. Ideally, one should like to be ablt~ to 433 A CHESS MATING COMBINATIONS PROGRAM ( 1) Enter .. Generate a set of moves in the service of X ~ Select one move ~ (3) (4) Make that move in the analysis Test if X has been achieved ~ + I t I Test if Y has been achieved Select Yes ----+- another reply. No Yes No more replies = +mate. I--- Make that reply in the analysis ..,- (8) (7) Figure 2. ~ Select one reply Generate ~ replies in the service of Y (6) (5) A simple recursive mating scheme:- enter and reenter the move tree at any node (position) at any time and from there to proceed down any branch, old or new. Providing such capabilities for reinstating the right position at the right time is probably the central problem of organization at this level of the program, while making operational and making sense out of steps 1-8 above is probably the central problem at the next higher conceptual level. This section ,reports on the former problem: implementation of a flexible move tree. Section 4 is devoted to the latter: defining the problem and the heuristics of search. Building the Tree The notion of analysis as a tree search is misleading to the extent that it implies that each step consists solely of selecting a move from the many available alternatives. Actually, the process is more one of generating moves as one goes along, of building one's own tree. This is the very distinction Maier 9 (p. 218) has drawn between decision making under conditions of uncertainty* and problem solving: "Decision making implies a given number of alternatives, whereas in problem solving the alternatives must be created. Thus, problem solving involves both choice b~havior and the finding or creating of alternatives." In every chess position, of course, the rules of the game place an upper limit on the number of possibilities that can be created; de Groot ll found that, averaged across the course of a game, the mean number of legal move possibilities lies somewhere between 30 and 35. This is a full-grown tree; the one the searcher actually builds is much smaller: on *According to Luce and Raiffa 10 decision making under uncertainty is the condition in which the outcomes of the various known alternatives are unknown. the average, four or five branches at the top node and smaller thereafter. The first question addressed in this section is the technical one: How does one build a tree? How are limbs and nodes-moves and positions, respectively -structured into a tree of possibilities? (See the Appendix for the details of construction of moves and positions.) Second, and pursuing the metaphor, think of the chess player climbing the tree as he builds it. Crawling along a branch in one direction corresponds to making a move in the current position (node) while traversing it in the opposite direction corresponds to unmaking a move and restoring the previous position (node). This ability to back up the tree is what enables a player to abandon unpromising lines of investigation and start afresh. In starting afresh, moreover, the player may either reinvestigate branches he has previously built or build new ones. Third, as the player builds and climbs he also accrues and retains information. The information garnered en route and the use to which it is put are in large part what Denkpsychologists have called the development of the problem. That is, the searcher's conception of the problem at anyone time consists of the information he has about the problem, how he has evaluated this information, and even how it has shaped his definition of what the problem is (cf Duncker 12 and de Groot ll ). Provisions for gathering information are considered in both this section and the next; the use to which information is put and the matter of problem development are more properly treated in the subsequent sections. Most of the organizational problems are solved via the description lists of moves. For convenience of reference the entire list of possible attributes a move can take on is set forth in Table 1. 434 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 With respect to the first question-provisions for holding the tree together-a signal cell and attributes A46 and A47 do the job. The signal cell contains the name of the most recent move made on the board-the contemporary-while attributes A46 and A47 are its ancestor and; its list of descendants, Table 1. Move Attributes A40-From square A4I-To square A42- Special move (yes or no) A43-Man removed from castle list A44- Man captured A4S-Square of captured en passant Pawn A46-Ancestor A47-List of descendants A48-Irreversibility of move (reversible; or irreversible) A49- Value of move (mate, no mate, no value) ASO~ Number of descendants ASI- Man moved AS2- Double check (yes or no) AS3-Discovered check (yes or no) AS4-Checking move (yes or no) ASS- Descendant's list of m'ate threats AS6-Threatened mating square AS8--Mating piece on V(AS6) square A63-Reply NOMV (no mo;ve) A6S-Number of checking moves generated to date A66-Number of replies generated to date A 70-List of King replies A 71- List of capturing replies A 72-List 0 f interposing replies respectively. The log of the analysis is preserved by defining a dummy move, L31, which has on its description list the list of descendants attribute A47. Thus the course of analysis is linked together as a chain of moves with contemporaries linked by anA46 L31 G" cestor and descendant relations, as in the exam pIle of an analysis tree in Fig. 3. Second, because of the strong family ties just described, one can eventually crawl one's way down any branch of any node and then back up. That is to say, one can make or unmake any move. Two routines, E6S and E66, make and unmake moves, respectively. The procedure for unmaking a move is exactly the reverse. With the help of routine Ell the position list is restored, that is, the dt~scription lists of the pieces and squares affected are restQired and the signal cells reset. At any node a new limb may also be constructed (by routines ESI and ES2; see Appendix) simply by specifying the "from square" and the "tQi square" (and special move status, if any) whereupon the move is added to the list of descendants, V(A47), and assigned an ancestor, V(A46). Third, information gathered in the st~arch for mate is stored on the description list of the move that gathers it. (See Table 1.) When a move is constructed, its ancestor is always assigned as a valule of A46 and the man moved in always assigned as a value of AS1. Conditionally, a move is assigned a value of A43 if a Rook or King is removed from the castle list, a value of A44 if a man is captured, a value of A4S if a Pawn is captured en passant, a value of AS2 if it is a double check, a value of AS3 if it is a discovered check, and a value of AS4 if it is a checking move at all. Evaluative information is also gathcTed: attribute A49 records the win-loss value of a move: mate, no mate, or no value. If a checking movie has. no descendants, that move mates; consequently, attributes A 70, A 71, and A 72 record the kinds of replies to check. Attribute A47 lists the descendants in toto and the value of ASO is a count of them. The point here is to illustrate how information is hung on the move tree as it is gathered. How the information is retrieved and utilized is a topic for the next section. None (I.P-K4) A46 L3l A46 ~JiI. .. p-K4)1 ~ ~1...N.-KB3U A46 ~ l.P·K4 None (1.P·K4) (2.P-K5) A46 (1 ... N·KB3) Gi{(2 . . N,Q4)} (2 ... N.K5) etc. Figure 3. Course of analysis linked as contemporaries, ancestors, and descendants. A CHESS MATING COMBINATIONS PROGRAM 4. THE EXECUTIVE AND HEURISTICS OF SEARCH Introduction In a given position, what moves should be considered and in what order? Human chess players are known to be highly selective in the moves they look at, a selectivity based on their heuristics of search. Computers must also incorporate such selectivity. What follows then is a discussion of the search heuristics incorporated into the early version of the mating program, some measures on its search behavior, a brief description of the routines that effect the move generation, and, finally, later developments added to a second version of the program, MATER II. MATER I Restricting the mobility of the opponent's pieces is a recognized principle of chess strategy. It is particularly important in checkmating combinations since checkmate is defined as an unopposed attack on an enemy King whose mobility has been reduced to zero. Strategically this means the attacker strives to gain control over 1) the square the enemy King occupies, as well as 2) all the squares contiguous to it that do not contain an enemy piece. If just condition (1) obtains, the enemy King is simply in check; if just condition (2) holds, the enemy King is stalemated; while if both (1) and (2) hold, he is checkmated. Viewed in this light, checkmate is a process of acquiring 'controls, or more and more restricting the enemy King's mobility. This principle is the cornerstone of the mating program. The restriction of mobility principle applies to the generation and selection of moves as well as to decisions about when to abandon search in certain directions. Thus in the mating program: Only checking moves (in MATER I) and moves that threaten mate in one move (in MATER II) are generated for the attacker; the move selected for investigation is the one that most restricts the opponent's mobility; and search is continued down a chosen path only so long as the opponent's mobility is on the decline. This-the rate of growth of the search tree-is an alternative formulation to an evaluation function for terminating search in a particular direction. Before illustrating the flow of control and the program's executive structure, it is necessary to introduce the notion of a try-list, a notion similar to the "pool of subgoals" in the Logic Theory Machine. 13 435 Since only one move can be tried out at a time in any particular position, other "eligible" checking moves must wait their turn on a list, L35-the trylist. This list has two noteworthy properties: first of all, it is an ordered list, and second it is independent of a move's level. * Such independence proves powerful in directing search. The list is ordered by a fewest-replies heuristic: highest priority goes to moves with the fewest number of legal replies, while checking moves with more than four legal replies are discarded entirely. Ties are broken by giving priority to double checks, then to checks that have no capturing responses, then to the order in which the checks were generated. The second property-that checks from all levels are mixed--effects the evaluative principle that search is continued down a particular path only so long as the opponent's mobility is on the decline: when the number of replies at some node in the current line of investigation is equal to or greater than the number of replies at some prior node, the current line is abandoned, the prior node restored, and the alternative that had once been passed over is tried. This nips in the bud unpromising proliferations in the move tree. In addition to the notions just described-rate of growth serving to terminate search in a particular direction, the set of considerable moves serving to restrict the set of applicable operators in the given position, the try-list ordered by the fewest-replies heuristic serving to stipulate the application of offensive operators-some heuristics of chess strategy serving to stipulate the order of application of defensive operators can also be seen more clearly from the following illustrative position taken from Fine 4 and MATER I's performance on it. t The following layout is adapted to the simple recursive scheme of Fig. 2. *The level of a move refers to its depth in the move tree, i.e., how many moves out it is from the starting position. t They can also be seen more clearly within the picture of heuristic search in general in Newell and Ernst. 14 436 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 (b) Transfer checks to try-list; order them by their "u" values: (I) Generate checking moves: LN-K6ch; B-K7ch; B-B7ch; Q-B6ch. (2) Select one move for further analysis: l.Q-B6ch (a) l.N-K6ch l.B-K7ch l.B-B7ch 1... NxQ 1...K-K 1 1...NxB 1...NxB 1... N-K2 1... QPxN 1. 11... BPxN 1. L35 .y. 2 2.Q-B6ch 2 I.N-K6ch 3 2.N-K6ch 3 2.N-K6ch'4. 1.Q~B6ch 1. (b) Transfer checks to try-list; order them by their "u" values (number of replies): L35 l.B-K7ch 1.B-B7ch l.Q-B6ch 1.N-K6ch (3) (4) (5) (6) (7) (8) .y. 1 I 2 3. (c) Select and delete top move from try-list L35: l.B-K7ch. Make that move (l.B-K7ch) in the analysis. Test if checkmate has been achieved: No. Generate replies to relieve check: 1... NxB. Select "best" reply*: 1... NxB. Make that reply (l...NxB) in the analysis. Test if check has been relieved: Yes. (c) Select and delete top move from try-list: l.Q-B6ch. (3) Make that move (l.Q-B6ch) in the analysis, restoring the board to the initial position. (4) Test if checkmate has been achieved: No. (5) Generate replies to relieve check: 1... NxQ; N-K2. (6) Select best reply: 1... NxQ. (7) Make that reply (l...NxQ) in the analysis. (8) Test if check 'has been relieved: Yes. (I) Generate checking moves: 2.N-K6ch; B-K7ch; B-B7ch . (2) Select one move for further analysis. (a) For each check generate and count replies: (I) Generate checking moves: 2.N-K6ch. (2) Select one move for further analysis. (a) For each check generate and count replies: 1. (I) Generate checking moves: 2.N~K6ch; Q-B6ch. (2) Select one move for further analysis. (a) For each check generate and count replies: 2.N-K6ch 2 ... K-KI 2 ... QPxN 2 ... BPxN 2 ... NxN 2.Q-B6ch 2 ... NxQ 2 ... N-K2 2.. ~. *"Best" is defined in the text immediately following this example. 1. 1. (b) Transfer check to try-list: order them by their "u" values: (c) Select and delete top move from try-list L35: 1.B-B7ch. (3) Make that move (l.B-B7ch) in the analysis, restoring the board to the initial position. (4) Test if checkmate has been achieved: No. (5) Generate replies that relieve check: 1... NxB. (6) Select best reply: 1... NxB. (7) Make that reply (l...NxB) in the analysis. (8) Test if check has been relieved: Yes. 2.B-E:7ch 2... N:I(B Q. (b) Transfer checks to try-list; order them by their "u" values: 2.N-K6ch 2 ... K-KI 2 ... QPxN 2 ... BPxN .y. L35 I.B-B7ch I l.Q-B6ch 2 I.N-K6ch 3 2.N-K6ch 3. 2.B-K7ch 2.N-K6ch 2 ... K-KI 2 ... QPxN 2 ... BPxN ill .Y. 2.B-K7ch 2.B-B7ch 2.Q-B6ch 2.N-K6ch I.N-K6ch 2.N-K6ch 2.N-K6ch' 0 I 2 3 3 3 4. (c) Select and delete top move from try-list L35: 2.B-K7ch. Make that move (2.B-K 7ch) in the analysis. Test if checkmate has been achieved: Yes. Select next best reply: 1...N-K2. Make that reply (1...N-K2) in the analysis, mstoring the board to the appropritte position. (8') Test if check has been relieved: Yes. (3) (4) (6') (7') (1) Generate checking moves: 2.N-K6ch; BxNch; B-B7ch; QxNch. (2) Select one move for further analysis. (a) For each check generate and count replies: 2.N-K6ch 2 ... K-KI 2 ... QPxN 2 ... BPxN 2.BxNch .Q. 2.B-B7ch 2 ... NxB 2.QxNch .Q. 1. 1. (b) Transfer checks to try-list; order them by their "u" values: L35 2.BxNch 2.QxNch 2.B-B7ch' 2.B-B7ch 2.Q-B6ch !! 0 0 I I 2 437 A CHESS MA TING COMBINATIONS PROGRAM Diagram 36 1/6/ 10/15 ~ 0·B6 ~ 2. N.K6 MATE . u=3 Figure 4. u=4 u=2 ~ @ B.B~7 N.~XN 18 ; ; 2 ... "=2 MATE 21 K·Kl OpxN BpxN K·Kl OpxN BPxN u=3 u=3 4 MATER I's analysis tree of Diagram 36, Fine . ... . . (The u's are a tally of the number of replies by which the pnonty of .move~ on. the try-Itst IS es~ablts~ed. The sq.u~re boxes represent positions and the numbers in them trace the course of the mvestIgatIon-the order 10 which the posItions were taken up. The crosshatched branches trace the mating path.) 2.N-K6ch"3 2.N-K6ch'" 3 I.N-K6ch 3 2.N~K6ch 3 2.N-K6ch' 4. (c) Select and delete move from try-list L35: 2.BxNch. (3) Make that move (2.BxNch) in the analysis. (4) Test if checkmate has been achieved: Yes. (6') Select next best reply: None. (7') Make that reply (None) in the analysis. (8') Test if check has been relieved: No. Mark MATE and print move-tree (Fig. 4). This example also illustrates the criteria by which the order of application of defensive moves is accomplished: by "best" reply is meant that reply that seems most likely to give. the attacker trouble. Thus the priority of defensive moves Black tries is, first, the capture of the most valuable White pieces by the least valuable Black pieces followed by King moves, interpositions, then order of generation. Again this is an attempt to clip unnecessary proliferations in the move tree: if there is a "killing" reply to a checking move, further analysis of that checking move would seem futile. * *This is the minimax assumption; namely, that the opponent will make his strongest reply at every opportunity. McCarthy's killer heuristic (see Kotok (5) assumes that a killing reply to one checking move may be a killing reply to other checking moves and thus should be looked at first. Measures of Search Behavior. Many measures of search behavior can be picked off an analysis tree like MATER I's of Diagram 36 (Fig. 4). For example, the tree can be characterized by counting the number of positions or the number of moves. Simon and Simon) call the total number of positions examined the "exploration tree"; in Diagram 36, above, the position count yields an exploration tree of size 16. In general, however, more moves are seen than positions are investigated, which is to say that some moves remain unexplored, such as the replies to l.N-K6ch in the example above. The count of moves seen-the un investigated as well as the investigated ones-will be called the discovery tree; in Diagram 36, above, this move tally yields a discovery tree of size 36 (14 checks and 22 responses). One further refinement can be carved out of the exploration and discovery trees; namely, the "verification tree," which Simon and Sjmon) define as the total number of positions required to prove the combination-the positions resulting from the single best move at each node for the attacker and from every legal move at each node for the defender; respectively, the positive and negative parts of the proof schema. 11 The verification tree "is precisely analogous to the correct path in a maze. It is a tree instead of a single path because all alternatives allowed to the defender must be tested" (Simon and Simon,) p. 427). In Diagram 36, above, the 438 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 branches of the verification tree are crosshatched, yielding a position count of size 6, or alternatively, a move count of size 5. These measures do not reveal the time order in which the tree was generated. Human chess players are fickle tree climbers, "progressive deepeners," to use de Groot's 11 term for the phenonenon: "The investigation not only broadens itself progressively by growing new branches, countermoves, or considerable own-moves, but also literally deepens itself: the same variant is taken up anew and is calculated further than before" (de Groot,1l p. 266). In other words, the search strategy is an important structural characteristic of the thought process. In Fig. 4 the order in which positions are taken up is captured by numbering the nodes (positions) in the analysis. These measures will be used for comparative purposes in Section 5. Routines. How are checking moves arid replies actually generated in any given position? There would seem to be two tacks, corresponding to a one-many approach and a many-one approach. In trying to find all the checks in a given position, for example, one could either radiate out from the enemy King and from each square, search for a piece that can get there and give check (the one-many approach), or converge from the squares along the move directions of each attacking piece onto the enemy King's square (the many-one approach). If there are many pieces on the board, the former is the more efficient; if few, the latter. G 1 is a master routine that procures all checks in a given position. It employs the many-one approach, calling subroutine GIl for Queen, Bishop, and Rook checking moves: G 12 for Knight and regular Pawn checks; and G 13 for double Pawn moves that administer check. Similarly, R21 procures all replies to a given checking move: Rl1 generates all the King moves that get out of check, R 12, all the captures of the checking piece, and R13, all the interpositions. In this way the mating program is able to enumerate all checks and all replies in a particular position. searching, but we can often view this as occurring within the confines of a fixed search strategy. (Newell and Simon,116 pp. 24-25) MATER II adds a modification to MATER I's search strategy by bypassing the fixedne:ss in the order of application of operators inherent in the trylist. The new search rule states: in the given position pursue immediately and in depth all checking moves that keep the enemy King stalemated (or nearly so), i.e., moves that can only be answered by captures and/ or interpositions or, in the absence of both, by one and only one King move (the "ne:arly so" condition). In addition to altering the program's search strategy by telling it "where to go next," this procedure also gathers Information about the position. In this respect it resembles what de Groot 11 has called a "sample variation," a kind of trial balloon sent up for the express purpose of gathering information to direct subsequent investigation; in this sense it is orientative. Before turning to what information is gathered and how it is used, it should be mentioned that sometimes a sample variation pays off directly-the "samph! moves" may be a path to a quick mate. Specifically, a routine G 10 conducts the preliminary search and, if no "easy mate" is found, records the sequence of moves investigated on a list B4. A routine G 17 makes use of this information latt~r in drawing up a plan of attack. Just how these routines operate can best be seen by considering in three parts MATER II's analysis for a particular position, Diagram 97 from Fine. 4 The first part has to do with the preliminary search; the second with the use to which th{~ recorded information is put in drawing up a plan; and the third with the exploration and verification of that plan. MATER Il In designing search programs it is useful to distinguish the strategy of search from the information that is gathered during the search. The search strategy tells where to go next, and what information must be kept so that the search can be carried out. It does not tell what other information to obtain while at the various positions, nor what to do with the information after it is obtained. There may be strong interaction between the search itself and the information found, as in the decision to stop The first 10 moves of the discovery tree: are those in Fig. 5a. (Note that both the I.Q-N7ch and I.QxRPch sample variations are record(!d on list B4.) 439 A CHESS MATING COMBINATIONS PROGRAM ~) 1. 1. .. • 2. Q-N7ch CD KxQ QxQ QJ ctJ pxRch Sequence 2: l.QxRPc,h, KxQ; 2.N-NSch. N-NSch qJ 2 ... K-N1 -(K no longer sto lemoted) K-R1 Figure SA. J1L K-R3 MATER II's preliminary search in Position 97. Clearly, the "wishful thinking" goal of the sample variations went unfulfilled; the preliminary excursions did not yield mate. They do yield two sequences of forcing moves, however, that may be useful in constructing a plan of attack. Indeed, the routine G 17 searches list B4 for the first move candidates and finds, in this example, I.PxR and l.N-N5. The former is rejected as illegal in the current position while the latter is deemed considerable. Note that the set of operators that may be applied in the initial position is expanded in MATER II to include moves other than just checking moves, yet the means by which these are generated continues to ensure a high degree of selectivity. Routine G 17 asks if a proposed move, in this case I.N-N5, threatens mate in one move. It determines the answer by assuming that Black does nothing on his turn, that is, by playing a "No Move" and then seeing if White can enforce an immediate checkmate. And, indeed, 2.QxRP is ,mate. In other words, White leaves the actual problem space to seek a mate in a simplified planning space (see Newell, Shaw and SimonS) and, in fact, the second part of the move tree is given over to solving the problem in the planning space (Fig. 5b).* Finally, the third stage is devoted to testing the soundness of the plan; that is, suppose Black tries to avert 1.N-N5 and 2.QxRPmate. Can he? It hap- * A hybrid Sequence 1: l.Q-N7ch, RxQ; 2.pxRch. QxRPch --liL RxQ Record ed on list 84 version of MATER I and II would first have reinvestigated 1.Q-N7ch and 1.QxRPch, invoking the fewestreplies heuristic, transferring these two checks to the' try-list, and elaborating them, before even considering moves which threaten mate in one. Unfortunately the statistics gathered on various versions of the program are too incomplete to say which search strategy is superior across positions, if in fact a correct strategy can be determined independent of position. pens that in this position he cannot so that the exploration tree and the verification tree are identical in this stage of the analysis. (The rather lengthy third stage is omitted here.) MA TER II contains one other highly selective mechanism for finding moves that threaten mate in one. Controls exerted over the enemy King's square and the squares in this immediate vicinity are built into a list structure called the King's Sector. For a given square five kinds of control have been defined: 1. No control-the enemy King can move to the given square. 2. Attacking control-the attacker can move to or capture on the given square. 3. Occupation control-one of the attacker's pieces occupies the given square. 4. Block control-one of the defender's pieces occupies the given square. 5. X-ray control-the attacker can unmask an attacker control by removing I ~ (Diagram 97) N·NS cb No Move NXBPch ~ QxN @] NOM Figure SB. ® ~ lm ffiJ Q·N7 ch RxQ QxQ NO,M NOM QXRPch ~ MATE MATER II's plan formation in Position 97. 440 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 one of his own pieces .(corresponding to a "discovery" in chess jargon) or he could unmask an attacking control but for an enemy interposer (corresponding to a "pin"). The King's Sector, L40, is constructed by the four routines E91-E94. ' The complete structure of L40 and the information contained therein can best be seen in Fig. 6, the King's Sector for Diagram 70 from Fine. 4 Attribute Y3 has data term XO as its value, a tally of the number of uncontrolled squares in the Sector (see Fig. 6). How is all this information retrieved and used by the program? First, a routine G 14 tries to generate mate-threatening moves by converting an X-ray control into a second attacking control. For example, in Diagram 70, routine G 14, seizing on the White Bishop's X-ray control of KNS, proposes I.BxBP but then rejects the move because 2.B-NS does not administer check, let along mate. Second, a routine G 19, given one attacking control, tries to add a second. Routine G 19, seeing an attacking control over KN7 in position 70, proposes to add another with the moves LQ-KB6, l.Q-N6, and l.Q-R6. Since all three produce mate if Black does nothing, all three are accepted as considerable moves in the plan. In summary , MATER II contains several mechanisms for generating a s'elective set of considerable moves. Incorporating MATER I's ability to generate all checking moves and all replies in a given position, MATER II goes on to generate matethreatening moves based either on their earlier appearance in forced sequences of checking moves or on the function they serve in controHing key squares around the enemy King. Moreover, MATER II has a set of routines, R15, ,R16, R22, for generating defensive replies to a threatened mate. MA TER II also contains three principal me:chanisms in its search strategy specifying the order in which moves are to be considered. Defensively., in I reply to checking moves, captures are preferred to King moves, which, in turn, are preferred to interpositions; while in reply to one-move mate threats, captures are preferred to moves that defend the mating square as well as to interpositions and King runs. Offensively, search is directed by pursuing particular moves in depth so long as the ene:my King remains very highly constricted, and t.hen later by pursuing the move that leaves the opponent with the fewest replies. Each of these search evaluators rests on a single criterion: sometimes a line of search is terminated because the defender is left with King moves in reply (nodes 4 and 7 in the move tree;: of position 97); sometimes a move is rejected because it does not produce immediate mate (node:s II and 12 in position 97); sometimes a move just never gets off the waiting list (node 2 in position 36); and L40 9-0 9-0 0 S64 (KR8) 9-1 863 (KN8) 9-2 855 (KN7) 9-3 856 (KR7) 9-4 Y3 (No control over how many squares?) XO = 1 Knight directions not used in tallying XO Figure 6. {8 54 (KB7) 9-5 847 (KN6) 9-6 0 (ICR8) 9-1 0 MO (Man on KR8?) M29 (Black King) 0 (KN8) 9-2 0 Y7 (X-ray control) 9-10 y6 (Attacking control) 9-11 0 (KN7) 9-3 0 y6 (Attacking control) 9-12 Y4 (Block control) M23 (Black Pawn blocks KN7) 0 (KR7) 9-4 0 y4 (Block control) M24 (Black Pawn blocks KR7) 0 (KB7) 9-5 0 y6 (Attacking control) 9-13 y4 (Block control) M22 (Black Pawn blocks KB7) 0 (KN6) 9-6 0 y6 (Attacking ~ontrol) 9-14 0 9-10 0 M6 (White Bishop X-rays KNB) M22 (Black Pawn is X-I'ayed) I) 9-11 0 M2 (White Knight attacks KNB) 0 9-12 0 M7 (v-'hite Knight attacks KN7) 0 9-13 0 M6 (White Bishop attacks KB7) 0 9-14 0 M4 (vlhite Queen and White M2 Knight attack KN6) 0 IPL·,V List Structure o~ King's Sector Controls (arranged in attribute-value pairs) of R. Fine's14 Diagram 70, from a game Alekhine-Supico, 1942. 441 A CHESS MATING COMBINATIONS PROGRAM checking moves with more than four legal replies are always rejected out of hand. Indeed, it is the thesis here that these kinds of criteria, criteria based on features of the task area, are what regulate chess players' choice-of-move decisions and form a good alternative representation to complicated weighting functions of the sort employed by Samuel 17 in checkers and Bernstein and Roberts 18 in chess. Even though mating combinations are the only facet of the game in which the final evaluators, MATE and NOMATE, are well defined*-a degree of certainty attained nowhere else in the game-the searchdirecting decisions intermediate to the final choice of move must all be made on far less than certain criteria, just like the rest of the game. Except for the sample variations recorded on the list B4, the information-gathering mechanisms rely on the description list of the move that gathered it, including the final evaluation, MATE or NOMATE, which are propagated back up the tree by the minimax inference procedure in an attempt to demonstrate the proof of a combination. 5. INTERPRETATION AND RESULTS Introduction With respect to the verification of simulation models in general, and problem-solving models in particular, two criteria for assessment seem to have emerged clearly: an achievement criterion and a process criterion. Th- Vl ------ 150 -- - - 300 --- 200 100 - 50 100 5 10 20 15 25 30 33 Pass Number Figure 9. Machine design #1. Optical studies were performed on TIROS frames. The resolution of 60 frames was altered to several levels using a screening process (see Fig. 13). The prints obtained were then examined by 15 to 20 people, in order of increasing ~esolution. The resolution level at which their decisions became consistent with their final judgment was noted. For a remarkable number of frames, the panel disagreed in their final judgment. When the resolution was too low, the frame was almost always judged nonvortex. Consequently, when the final judgment was nonvortex, all preceding judgments were also. About half of the vortex decisions were reached at the highest resolution level (240 lines per frame). The othe~r half were made at the coarsest resolution levells (about 70 lines per frame). Very few final judgments were made at intermediate levels. SUMMARY AND CONCLUSIONS An extensive study of a particular design technique for pattern recognition, and particularly its application to TIROS photographs, has beem conducted. Many aspects of the technique which were PATTERN 469 RECOGNITION 400 Machine #1 Machine #2 Machine #3 \ _ _ _ Minimum Errors on Design Patterns _ _ Minimum Errors on Generalization Patterns - - - _ - Generalization Errors Against Present Threshold 120 300 til o'"' ~ 100 '"' '"' W 0 '"' '"' W I=: I=: ti ~<\I .~ '"' <\I p.. 80 200 til '<1l"' <1l o ....o'"' I=: <1l () ....0'"' I=: .~ ';;j <1l 60 ';;j <1l U ';;j U) U U) 100 40 20 °0~------~10~0~----~2~0~0~~~=-======--4~0~0~------~5~O~0-------6~0-0---------~7~0~0----~800 Number of Property Filters Figure 10. Network performance-machine #1 plus #2 plus #3. not specific to this application were investigated in a series of experiments on alphabetic characters. Other experiments were performed on data from actual TIROS frames in an attempt to separate frames containing vortices from those which do not. Automatic design techniques for pattern recognition networks may be given varying degrees of coupling to a sample of patterns. At one extreme, the technique may be tightly coupled in that the only design criterion is the correct classification of the design sample of patterns. The drawback to this extreme is that even if the sample of patterns is very representative of the actual distributions, the finiteness of the sample can lead to networks giving poor generalization results. A nonrepresentative sample almost insures poor generalization. The advantages are I) that there is no need to make distributional assumptions; and 2) that since the goal is a high level of performance on all patterns, and since. it is unlikely that the generalization performance will exceed the performance on the design sample, perfect or near perfect performance on the design sample is a good starting point. At the other extreme are the techniques with minimal coupling to the design sample. A design is accomplished by making strong assumptions concerning the actual distributions of patterns, using the sample to estimate a limited number of parameters of these distributions. The disadvantages are that if the distributional assumptions are incorrect, then poor performance is obtained. Even if the assumptions are nearly correct, the technique usually results in networks which 470 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 -100 Machine #4 - - - Minimum Errors on Design Patterns _ _ Minimum Errors on Generalization Patterns - - - - - Generalization Errors Against Present Threshold 300 ;; ~ 0., 200 Sn "Uj Q) o .2'"' 60 Q) ~ u CJ) 100 40 20 0~0------~1~0~0------~~~--~3~0~0------~4~0~0-------5~0~0------~6~0~0------~7~0~0------~800 Number of Property Filters Figure II. Network performance-machine #4. classify a majority of the patterns correctly, but leave a substantial minority incorrect. Increasing the sample size does not help usually, for although the less common patterns are better represented, only a few a·.rerage values are extracted from the sample. The advantage is that "the number of sample patterns required by the technique is minimized, since the technique is ~ot nearly as sensitive to noise and false clues in the sample patterns. The present technique was selected to provide a compromise between these ex:tremes. Initially, the design of the property filters is very loosely coupled in that populations of them are designed statistically under very strong distributional assumptions. The selection of property filters and the design of a linear discriminant for the decision element are tightly coupled to the design sample. This is done in terms of a loss function which reflects how well each sample pattern is classified. The losses are used as weightings in the statistical averages used to design property filters so that as the design process proceeds, the design of these filters becom(~s more tightly coupled to the sample patterns. The intent was to derive properties in a loosely coupled fashion to avoid the sensitivity to sample representativeness of the tightly coupled systems. The purpos.e of increasing the extent of this coupling was to avoid the common failing of loosely coupled systems--that of solving the same portion of the problem over and over, while ignoring the harder parts of the problem. The effects of this increase in coupling are evident in the experimental programs, in which the generali- PATTERN 471 RECOGNITION 400 Machine #6 - - - Minimum Errors on Design Patterns - _ Minimum. Errors on ·Generalization Patterns - - - - - Generalization Errors Against Present Threshold 120 300 til o'"' 'M"' W ~ M ~ro 0.. 200 .~ til (l) o .8'"' 60 (l) ' ;is u U) 100 20 O~ o ______~~____~~~~-L~~____~~______~~____~~______________~ 100 300 400 500 600 700 800 Number of Property Filters Figure 12. Network performance--machine #6. zation performance nearly always does not improve, and often deteriorates as the last few errors in the design phase' are eliminated. Overall, the design technique appears to be tightly coupled, having never indicated an inability to provide perfect performance on the sample patterns with a relatively small network. Techniques were devised to provide property filters which were invariant to linear changes in the gray scale. Experiments on the alphabetic characters indicated that the increase in network complexity required for perfect performance on the sample patterns was nominal, although for the type of property filter selected, the gray invariance was costly in the hardware implementation. Consideration of the TIROS frame analysis indi- cates that the property filters must be designed by a covariance analysis-that is, it is combinations of intensity values rather than individual intensities which are important. The alphabetic characters seem more susceptible to analysis of the distribution means, due to centering of the patterns. In the experiments on alphabetic characters both mean analysis and covariance analysis were used. On the TIROS frames only covariance analysis was used. Normal populations which differ in their covariance matrices give rise to quadratic input property filters. These are very expensive in analog hardware, and require very large amounts of memory in digital implementations. A parallel hyperplane approximation was developed. Experiments on the alphabetic characters indicate that with this approx- 472 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 .-. :. . .:.::: ::: .:.: :.~ .... ;-; ::::::: !. :.:.:::: ':.:;::.: :.:. ....... . .::: .;. ::: :.: "':.:::';' ,-" :.:.::.: :.;:;;.;:;:;:;:; -. -'.' -' '.' .... .... ,.;.: .;. ,'. :;:;:. ~;::::. :. ~.:'.: :.: :/: r .:- ::::: ~; .'. :...... ::::::' ;" :.: ::: ;"::::::: :::: :.: :::: ::: :. ;::: . . ;.; '.' :-: ;.: ~'. ::;. :.: .:.:: :::: .:.: :.:. .- = -. : :. -.~ :. ,'. :::; ::: :;::! ,'.'~ :;::: ::: ::: ;::. ':..:. '. ~ )tI~ :.:.: :;:1~ :~: ::: =::: .;. . ::::::: :. .':' 30 TAPE Figure 13. :.: .}:::: ':= ' '~ :.:.:.: ....·.·::~;~~;~::::::~;:m ~ /'. •. Pattern 30 at resolutions of 95, 111, 150 and 220. .;.: .:.:.;::::::=? PATTERN RECOGNITION imation the increase in the number of property filters to separate the sample patterns is not great, considerably reducing the overall system complexity. Implementation of the gray invariant version of this approximation in digital equipment is simple, but the analog form suffers from the same problems as the quadratic unit, but on a more limited scale. The gray invariant approximation was used in the TIROS frame experiments. In the experiments on the alphabetic characters, eight methods for generating property filters were used. Four of these were designed to exploit differences in the means of the distributions, and four to exploit differences in the covariance matrices. Half of the techniques in each case produce property filters invariant to changes in the gray scale. There was sufficient information in the sample patterns to permit each of these techniques to provide complete networks. The number of property filters required to separate the sample patterns generally ranged between 8 and 15, depending on the particular technique. The generalization performance of these networks was reasonable. For the techniques based on differences in the distribution means, there is little difference in performance, each technique averaging about an 8% error rate. The best individual network had about a 6% error rate. The quadratic units gave a 10% error rate. The parallel hyperplane technique gave a 13% error rate and its gray invariant version yielded 15% errors. The best generalization performance generally occurred when the design was about 70% completed. Although the performance degrades only about 1% after the best level is reached, better levels might have been achieved if the coupling did not become as great as it does toward the end of the network design. The utility of the gray invariance was demonstrated by modifying the gray scale of the sample patterns. A linear change has no effect on the performance of the gray invariant networks while having profound effects on the noninvariant ones. Even for some nonlinear changes in the scale, the effect on the noninvariant networks is much greater than for the invariant ones. These performances were achieved on one binary decision. The design and generalization sets of sample patterns consisted of 20 examples, each containing 12 letters. These were sloppy handprinted characters. To put the results in perspective, several other design techniques were tried. The best of these, in which all of the sample patterns are stored 473 in memory, and the unknown patterns correlated against all of these to find the highest correlation, gave a 5% error rate. In other tests perceptrons with both 50 randomly selected property filters, and 50 property filters designed by analysis of the distribution means, and forced learning and Bayes weights for decision function assignment gave 25 and 20% generalization errors respectively. Using 14 property filters taken from a network designed by the current technique (one which analyzes distribution means), the forced learning approach gave 9% generalization errors, just 1% more than the network from which the units were taken. The value of the selectivity and the coupling in the present technique is apparent. Despite the shortcomings shown in the generalization data, and the hardware difficulties in implementation, the gray invariant version of the parallel hyperplane technique was used in the TIROS frame investigation. Unless a considerable amount of normalization can be achieved, methods based on differences in the distribution means will not be effective in photo interpretation. This leaves the quadratic units and the parallel hyperplane units. The parallel hyperplane units were selected, as they require only 22% as much memory for unit specification. The value of the gray invariance when the gray scale does change was deemed to be sufficient compensation for the slightly higher error rate on the black and white generalization patterns. One thousand patterns were used as design patterns in the TIROS investigation. Five hundred of these contained vortices; 500 did not. An additional 200 patterns used as a generalization sample were also equally divided. This classification was accomplished by meteorologists with experience on TIROS photographs. Classification by Douglas personnel was less consistent. Optical studies were performed on some TIROS pictures to determine· the minimum resolution requirements compatible with good recognition performance by people. Sixty different frames were utilized. Prints of these frames were made at various resolutions, using a screen process to control the resolutions. These were examined by 15 to 20 people, in order of increasing resolution, to determine the coarsest resolution level at which their classification became consistent. A remarkable number of frames resulted in split decisions, nearly half of the people calling them vortex and half nonvortex, even at the highest resolution level. For the vortex patterns the decision point seems to split 474 PROCEEDINGS-SPRING JOINT COMPUTER CONFERENCE, 1966 evenly between the highest and lowest resolution levels (240 lines and 70 lines). Seven networks were designed to separate the sample patterns. The first three of these were designed with 180-by-180 resolutions, with each property filter receiving 10 connections selected randomly from the entire input field. A different starting random number provides distinct networks. The first two networks required 250 property filters, the third required 220 to separate the sample patterns. Thus the networks aver.ged 2400 input connections, or 8% of the available picture points. Since the resolution study did not indicate that the smaller vortices could be identified at 70 lines (giving 8% as many elements as 240 lines), one network alone will not be particularly general. If the design sample is sufficiently representative, improved generalization should result if the networks are combined. Such combinations do not result in significant improvements in the generalization performance. Each of the three networks can produce generalization error rates less than 40% at some stage in its design. Machine No. 1 is best in this respect, giving a minimum of 36.5% errors at one point, and maintaining 40% or less through most of the design. For machines 1 and 2 the error rate has a minimum at a point about half way through the design. Quite consistently, the error rate on the design patterns is 3-6% at this point. In all cases the error rate deteriorates toward the end of the design. Combining the networks overcomes this tendency for the error rate to rise. The conclusion from these data is that the increase in coupling in the design of the property filters is undesirable. The poor generalization performance is due to the nonrepresentativeness of the sample patterns. That 500 patterns, unnormalized for size, position, horizon location, or· fiducial mark location, do not adequately represent the vortex or nonvortex classes on a 32,400-point input field is not surprising. The network which achieved perfect separation on nonrepresentative samples may have accomplished some combinations of two things. The network may be a good design for a smaller class of vortex and nonvortex patterns of which the design sample is representative, or it may be a design which capitalizes on the nonrepresentativeness of the extraneous features in the samples, such as the location of the horizon or fiducial marks. The extent of the combination achieved cannot be determined without a very detailed study of the design and generalization patterns. Some indication is given in the resolution results to be discussed next. That at least some honest properties were found is ,evidenced by the fact that generalization performance is consistently better than chance. Networks 4 and 5 were designed on lower resolution patterns. These maintained the 180-by-180 format, but the gray level changed only every second or third point, respectively. Generalization for these networks was tested against full resolution patterns. The networks required 240 and 250 property filters, respectively. Each network has a best generalization error rate of 41 %, near the beginning of the design for Network 4 and near the: end for Network 5. This significant deterioration is again indicative that some honest properties have b4~en derived. Networks 6 and 7 were designed with limitations on the input fields of the property filters. For Network 6 the connections for the filters were drawn from 90-by-90 subfields positioned randomly in the main field. For Network 7 45-by-45 subfields were used. These networks required 280 and 290 property filters for complete design. The rate of design is not noticeably slower than for the other networks until the error rate on the design patterns is less than 2%. The minimum generalization error rates are 41Yz% and 43Yz%, respectively, each minimum being achieved twice. Therefore, there does not appear to be any advantage, and indeed there is some disadvantage, in seeking more localized properties. The following conclusions are drawn: I. The design technique is capable of producing networks to separate the design sample of patterns. When this sample is representative, as with the alphabetic characters, good generalization results are achieved. In this case, the primary value of the process is in the set of property filters derived, rather than the discriminant function. When the sample is nonrepresentative, as with the TIROS frames, only limited generalization success is achieved. 2. The coupling between the design technique and the sample patterns is too tight. The increase in coupling in the property filter design should Ibe removed or reduced, the parameter which controls the rate of design should be adjusted to give a lower rate, and perhaps the criteria for acceptance of property filters should be weakened. 3. The size of the design sample required depends upon the minimum number of picture points needed PATTERN RECOGNITION for recognition and on the amount of normalization and "cleaning-up" of the patterns. For essentially unnormalized vortex patterns on a 32,400-point input field, 1000 sample patterns are inadequate to give a properly stratified (representative) sample. 4. If the designs achieved are to be practical, considerably more attention must be given to normalization of the patterns. A size normalization would permit the use of a resolution level suitable to all patterns rather than just the smallest ones. The resultant decrease in the number of picture points required would make the sample more representative by editing or averaging out noise, and by limiting the number of effective translations of the patterns. Local and general normalizations of the contrast in the frame could eliminate the need for gray invariant property filters, reSUlting in a much simpler hardware implementation of the parallel hyperplane technique, and somewhat better performance. Position normalization (i.e., centering) could make one of the techniques based on distribution means practical, or at least would simplify the recognition task. ACKNOWLEDGMENTS This program was sponsored by the NASA Goddard Space Flight Center. Mr. J. Silverman was 475 Technical Officer for NASA. His assistance and suggestions during the course of the project were appreciated. The assistance of Mr. M. Maxwell of NASA/GSFC and Dr. Arking, Institute for Space Studies, Columbia University, in obtaining the digitized TIROS data is appreciated, as are their early suggestions regarding tape formatting and editing. Numerous individuals at the Douglas Aircraft Company Computing Center in Huntington Beach and the Astropower Laboratory in Newport Beach assisted on the program. The principal contributors to the study were Messrs A. G. Mucci, A. G. Ostensoe, R. G. Runge, and M. Uemura. REFERENCES 1. J. Daly, R. D. Joseph, and D. M. Ramsey, "An Iterative Design Technique for Pattern Classification Logic," Astropower Laboratory Paper EL6320, presented at WESCON 1963 (July 9, 1963). 2. W. H. Highleyman, "Linear Decision Functions, with Applications to Pattern Recognition," Proc. IRE, vol. 50, no. 6 (June 1962). 3. "Design Study of a Cloud Pattern Recognition System," Astropower Electronics Department, MSSD, Douglas Aircraft Co. Final Report, Contract NAS 5-3866 (1965). AMERICAN FEDERATION OF INFORMATION PROCESSING SOCIETIES (AFIPS) 211 E. 43rd Street, New York 17, New York Officers and Board of Directors of AFIPS Secretary Chairman DR. EDWIN L. HARDER* 1204 Milton Avenue Pittsburgh 18, Pennsylvania MR. MAUGHAN S. MASON Thiokol Chemical Corporation Wasatch Division-MIS 850 Brigham City, Utah 84302 Chairman-Elect Treasurer DR. BRUCE GILCHRIST* IBM CorpoFation Data Processing Division 112 East Post Road White Plains, New York MR. FRANK E. HEART* Lincoln Laboratory-MIT P. O. Box 73 Lexington 73, Massachusetts A CM Directors MR. J. D. MADDEN ACM Headquarters 211 East 43rd Street New York, New York 10017 DR. GEORGE FORSYTHE Computation Center Stanford University Stanford, California MR. HOWARD BROMBERG* CEIR, Inc. 1200 Jefferson Davis Highway Arlington, Virginia 22202 DR. BRUCE GILCHRIST IBM Corporation Data Processing Division 112 East Post Road White Plains, New York IEEE Directors MR. WALTER L. ANDERSON* General Kinetics, Inc. 2611 Shirlington Road Arlington 6, Virginia DR. T. J. WILLIAMS Control & Information Systems Lab. Purdue University Lafayette, Indiana 47907 MR. L. C. HOBBS 4701 Surrey Drive Corona Del Mar, California DR. R. I. TANAKA 3427 Janice Way Palo Alto, California Simulation Councils Director A merican Documentation Institute Director MR. JOHN E. SHERMAN Lockheed Missiles &, Space Corp. D-59-15, B~ 102 P. O. Box 504 Sunnyvale, California MR. HAROLD BORKO System Development Corp. 2500 Colorado Avenue Santa Monica, California AssociationJor Machine Translation and Computational Linguistics-Observer DR. PAUL GARVIN 8433 Fallbrook Avenue Canoga Park, California 91304 * Executive Committee Executive Secretary MR. H. G. ASMUS AFIPS Headquarters 211 East 43rd Street New York, New York 10017 Committee Chairmen Abstracting Planning DR. DAVID G. HAYS The RAND Corporation 1700 Main Street Santa Monica, California DR. JACK MOSHMAN CEIR, Inc. One Farragut Square, South Washington, D.C. Admissions Public Relations MR. WALTER L. ANDERSON General Kinetics, Inc. 2611 Shirlington Road Arlington, Virginia MR. ISAAC SELIGSOHN IBM Corporation Old Orchard Road Armonk, New York Award Publications MR. SAMUEL LEVINE Bunker-Ramo Corporation 445 Fairfield A venue Stamford, Connecticut MR. STANLEY ROGERS P. O. Box 625 Del Mar, California Conference Social Implications of Information Processing Technology DR. MORTON M. ASTRAHAN IBM Corporation~ASDD P. O. Box 66 Los Gatos, California MR. PAUL ARMER The RAND Corporation 1700 Main Street Santa Monica, California Constitution & By-Laws Technical Program MR. MAUGHAN S. MASON Thiokol Chemical Corporation Wasatch Division-MjS 850 Brigham City, Utah 84302 MR. PAUL M. DAVIES 2703 Pine Avenue Manhattan Beach, California Education Newsletter DR. DONALD L. THOMSEN, JR. BM Corporation Old Orchard Road Armonk, New York MR. DONALD B. HOUGHTON, 15-W Westinghouse Electric Corporation 3 Gateway Center, Box 2278 Pittsburgh 30, Pennsylvania Finance 1966 SJCC MR. WILLIAM D. ROWE Sylvania Electronics Systems 189 B. Street Needham Heights, Massachusetts MR. HARLAN E. ANDERSON Digital Equipment Corporation 146 Main Street Maynard, Massachusetts Harry Goode Memorial A ward 1966 FJCC DR. ALSTON HOUSEHOLDER Director, Math Division Oak Ridge National Laboratory Oak Ridge, Tennessee MR. R. GEORGE GLASER McKinsey & Company 100 California Street San Francisco, California 94111 International Relations COSA TI Liaison PROFESSOR JOHN R. PASTA Digital Computer Laboratory University of Illinois Urbana, Illinois MR. GERHARD L. HOLLANDER P. O. Box 2276 Fullerton, California Conferences I to 19 were sponsored by the National Joint Computer Conference. predecessor of AFIPS. Conferences 20 and up are sponsored by AFIPS. Copies of volumes 1-26, Part II may be purchased from SPARTAN BOOKS, scientific and technical division of Books, Inc., 432 Park Avenue South, New York, N.Y. Volume 1-3 4-6 7-9 10,11 12,13 14,15 16,17 18 19 20 21 22 23 24 25 26 26 27 Part List Price M ember Price I II I 11.00 9.00 9.00 7.00 7.00 8.00 6.00 3.00 3.00 12.00 6.00 8.00 10.00 16.50 16.00 18.75 4.75 28.00 11.00 9.00 9.00 7.00 7.00 8.QO 6.00 3.00 3.00 12.00 6,00 4,00 5.00 8.25 8.00 9.50 2.50 14.00 Cumulative Ind~x; to Vols. 1-16, Part II $3.00 Vol. 28. 1966 Spring Joint Computer Conference, Boston~ Massachusetts, April, 1966


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 08:31:55-08:00
Create Date                     : 2008:11:17 08:31:55-08:00
Metadata Date                   : 2008:11:17 08:31:55-08:00
Format                          : application/pdf
Document ID                     : uuid:f0e3c772-e69a-4e5c-9170-cbe9d38da2ef
Instance ID                     : uuid:177b261a-b997-48e6-9f9e-dedb05df6b9e
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 484
EXIF Metadata provided by EXIF.tools

Navigation menu