1961 12_#20 12 #20
1961-12_#20 1961-12_%2320
User Manual: 1961-12_#20
Open the PDF directly: View PDF .
Page Count: 396
Download | |
Open PDF In Browser | View PDF |
An American Federation of Information Processing Societies Publication Volume 20 COMPUTERS - KEY TO TOTAL SYSTEMS CONTROL Proceedings of the Eastern Joint Computer Conference Washington, D.C., December 12-14,1961 The Macmillan Company New York @ Copyright 1961 by American Federation of Information Processing Societies PRIOR CONFERENCE PROCEEDINGS Number Conference Location Date 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Eastern Eastern Western Eastern Western Eastern Western Eastern Western Eastern Western Eastern Western Eastern Western Eastern Western Eastern Western Philade 1phia New York City Los Angeles Washington Los Angeles Philadelphia Los Angeles Boston San Francisco New York City Los Angeles Washington Los Angeles Philade 1phia San Francisco Boston San Francisco New York Los Angeles Dec. 10-12, 1951 Dec. 10-12, 1952 Dec. 4-6, 1953 Dec. 8-10, 1953 Feb. 11-.12, 1954 Dec. 8-10, 1954 Mar. 1-3,1955 Nov. 7 - 9, 1 9 55 Feb. 7-9, 1956 Dec. 10-12, 1956 Feb. 26-28, 1957 Dec. 9-13, 1957 May 6-8, 1958 Dec. 3-5, 1958 Mar. 3-5, 1959 Dec. 1-3, 1959 May 3-5, 1960 Dec. 13-15, 1960 Ma y 9 -11, 1961 Manufactured in the United States of America by McGregor & Werner, Inc., Washington 12, D. C. PREFACE On behalf of the Board of Governors of the American Federation of Information Processing Societies, it is my pleasure to welcome you to this conference, the first to be sponsored by the Federation rather than the National Joint Computer Committee. In May of this year, the AFIPS was created by the American Institute of Electrical Engineers, the Association for Computing Machinery, and the Institute of Radio Engineers, to be the unified national voice for the information processing and computer profession in the United States. Since then, there has been an orderly transfer of business from the NJCC to the AFIPS. As a society of societies, the AFIPS differs from the NJCC in that it can accept into membership other professional societies which are interested in information processing, and it is expected that it will grow significantly. As stated in our constitution, the goals of AFIPS "shall be the advancement and diffusion of knowledge of the information processing sciences ... for literary and scientific purposes ... To this end, it is part of the purposes of the Federation ...to serve the public by making available to journals, newspapers, and other channels of public information reliable communications as to information processing and its progress; to cooperate with local, national, and international oz:ganizations or agencies on matters pertaining to information processing; to serve as representative of the United States of America in international organizations with like interests; to promote unity and effectiveness of effort among all those who are devoting themselves to informationprocessing by research, by application of its principles, by teaching or by study; and to foster the relations of the sciences of information processing to other sciences and to the arts and industries." Some of these items we are well started on -others we will inaugurate soon. We represent the United States to the International Federation of Information Processing Societies and contribute financially to IFIPS in behalf of this country. We have assumed sponsorship and financial responsibility of the Joint Computer Conferences. We have accepted applications for membership from other societies. We have made our existence known to other professional societies. We are an active and growing organization acting to promote the interchange of information among information processing specialists through sponsorship of greater cooperative efforts between their professional societies. The American Federation of Information Processing Societies promises to be an instrument of tremendous utility to American technology in the exciting and dynamic years ahead. Willis H. Ware Chairman, Board of Governors American Federation of Information Processing Societies iii FOREWORD Ear ly in the infancy of what is still a very young discipline, it was recognized that segmentation was taking place among those working in the computer sciences. Many new computing societies or specialized extensions of existing organizations sprang up, accentuating the divergence by specialization to the detriment of the industry. It was with this thought in mind that the leaders of the Association for Computing Machinery, the Professional Group on Electronic Computers of the Institute of Radio Engineers, and the Committee on Computing Devices of the American Institute of Electrical Engineers established the Joint Computer Committee. The sole function of this Committee was to sponsor the Joint Computer Conferences, designed to provide a forum by which members of the three sponsoring societies, as well as all those interested in the computing field, could assemble and explore through the medium of technical papers, personal conversations, and technical exhibits the latest developments of interest to all. The phenomenal growth of the field resulted in the contribution of an increasing number of excellent contributed papers. When confronted with the need to complete the conferences in a reasonable period of time, such as the traditional three days, organizers tended to resort, more and more as the years went by, to parallel technical sessions. The result has frequently been sessions whose subject matter and audience to a large extent paralleled the interests and membership of the various sponsoring societies. From this point of view the Joint Computer Conferences have not served their desired purposes, but have become a general extension of the individual meetings of the various societies. Although tempted to expand the size of the conference by the many excellent papers contributed, either through greater duration or the establishment of parallel sessions, the Committee for the 1961 Eastern Joint Computer Conference has attempted to return to first principles, elimim.ate parallel sessions, and maintain the generally accepted three day length of the conference. The Committee has assembled a program which is 'b.elieved to be of interest to most people in the computer field, regardless of whether their orientation is in programming, engineering, management, or other areas. Thetheme of this conference, "ComputersKey to Total Systems Control," lends itself particularly to this aim by its generality and its importance. Eliminating parallel sessions and adhering to a unified technical program is particularly appropriate, too, by virtue of the fact that this 1961 Eastern Joint Computer Conference is the first conference under the sponsorship of the American Federation of Information Processing Societies. Whereas the Joint Computer Committee by its veryorganization was limited to the original three sponsoring societies, the charter of AFIPS provides specifically for the enlargement of its member organizations to include such other organizations interested in affiliation, whether they have a major interest in the computing field or simply peripheral interests in these activities. iv Although this may be looked upon as somewhat of a noble experiment, the Committee believes that as more and more organizations become affiliated with AFIPS, the growth of multiple sessions that would result would lessen cross-fertilization-and, incidentally, tax the supply of public rooms in most hotels. Another innovation pioneered at this meeting is the publication of these Proceedings in a permanent, hardbound form. It is the belief of the Committee that this form enhances the lasting value of the Proceedings to the registrants. It was an added attraction to the solicitation of worthwhile contributions to the technical sessions. Through arrangements with the publisher, the hardbound trade edition will provide wider distribution of these Proceedings far beyond the capabilities of the individual sponsoring societies. Acknowledgment is made to Mr. Robert Teitler of The MacmillanCompany for his suggestions, encouragement, and solicitude in the preparation and publication of these Proceedings. His activities have been of considerable assistance and material benefit to the Committee. Members of the Committee who have primary responsibility in dif-~ ferent areas are listed elsewhere in these Proceedings. Space does not permit naming the many individuals who have assisted the various committee chairmen in their functions. Their creativity, diligence and attention to detail are responsible for the many arrangements necessary in preparing for a conference of this magnitude. Jack Moshman General Chairman v AMERICAN FEDERATION OF INFORMATION PROCESSING SOCIETIES (AFIPS) AFIPS P. O. Box 1196 Santa Monica, Calif. General Chairman· Secretary Dr. Willis H. Ware The RAND Corporation 1700 Main Street Santa Monica, Calif. Miss Margaret R. Fox National Bureau of Standards Data Processing Systems Division Washington 25, D. C. Executive Committee Mr. R. A. Imm (AlEE) Dr. H. D. Huskey (ACM) Dr. A. A. Cohen (mE) Dr. W. H. Ware, Chairman AlEE Directors IRE Directors Dr. Werner Buchholz IBM Corporation South Road Laboratory Poughkeepsie, New York Mr. R. A. Imm IBM Corporation Dept. 550, Bldg. 604 Rochester, Minnesota Dr. Arnold A. Cohen Remington Rand Univac Univac Park st. Paul 16, Minnesota Mr. F. S. Gardner American Inst. of Elec. Engrs. 33 West' 39th Street New York 18, N. Y. Mr. Frank E. Heart Lincoln Laboratory, Rm. B-283 P. O. Box 73 Lexington 73, Mass. Mr. Claude A. R. Kagan Western Electric Co. Engineering Research Center P. O. Box 900. Princeton, New Jersey Mr. Harry T. Larson Aeronutronic Div. of Ford Motor Co. P. O. Box 486 Newport Beach, Calif. Dr. Morris Rubinoff 517 Anthwyn Road Mel'ion Station, Pennsylvania vi ACM Directors Mr. Walter Carlson Engineering Dept. E. I. duPont de Nemours & Co. Louviers Bldg. Wilmington 98, Delaware Dr. Harry D. Huskey Dept. of Mathematics 441 Corey Hall University of California Berkeley 4, California Dr. Bruce Gilchrist IBM Corporation 590 Madison Ave. New York 22, N. Y. Mr. J. D. Madden System Development Corp. 2500 Colorado Ave. Santa Monica, Calif. vii 1961 EASTERN JOINT COMPUTER CONFERENCE COMMITTEE General Chairman Dr. Jack Moshman, C-E-I-R, INC. Vice Chairman William L. Witzel, Computer Concepts, Inc. Secretary Herbert R. Koller, U. S. Patent Office Finance Solomon Rosenthal, Chairman Headquarters, U. S. Air Force Public Relations Isaac Seligsohn, Chairman IBM Federal Systems Division Proceedings Paul W. Howerton, Chairman Central Intelligence Agency Terence G. Jackson, Jr., Stanford Research Institute Program Bruce G. Oldfield, Chairman IBM Federal Systems Division George G. Heller, Assistant to the Chairman IBM Federal Systems Division Samuel N. Alexander, .. National Bureau of Standards Herbert S. Bright, Philco Corporation, Computer Division Saul 1. Gass, IBM Federal Systems Division Herbert R. Koller, U. S. Patent Office Charles A. Phillips, Department of Defense Solomon Rosenthal, Headquarters, U. S. Air Force Howard E. Tompkins, National Institutes of Health viii Hotel Arrangements Henry S. Forrest, Chairman Control Data Corporation John W. Lacey, Control Data Corporation Clifford J. Leahy, Thompson Ramo-Wooldridge Women's Activities Ethel C. Marden, Chairman National Bureau of Standards Eleanor Alexander Jeanne Beiman Iby Heller Sarah Newman Printing and Mailing Mike Healy, Chairman System Development Corporation Registration John T. Harris, Chairman Remington Rand Univac W. B. Larson, Aeronutronic Div. of Ford Motor Co. Jack A. Neal, C-E-I-R, INC. E. R. Quady, Remington Rand Univac Exhibits Charles A. Phillips, Chairman Department of Defense W. Howard Gammon, Department of Defense L. David Whitelock, Department of the Navy Exhibits Manager John L. Whitlock Associates Public Relations Consultants Stavisky & Associates ix LIST OF REVIEWERS The Program Committe~e would like to express its deep appreciation to those listed below for their conscientious, thoughtful reviewing of the abstracts and summaries of the 242 papers submitted. Their unfailing efforts contributed significantly toward the selection of this year's EJCC program. Mr. R. J. Arms, National Bureau of Standards Mrs. Dorothy P. Armstrong, Bureau of the Census Mr. James V. Batley, IBM Corp. Mr. Wayne D. Bartlett, General Electric Co. Mr. Noel D. Belnap, Jr., System Development Corp. Mr. Martin A. Belsky, IBM Corp. Mr. William Blodgett, Electronic AssOCiates, Inc. Mr. Robert Bosak, System Development Corp. Mr. L. E. Brown, Aeronutronic Dr. Edward A. Brown, IBM Corp. Mr. James H. Burrows, Mitre Corp. Mr. Robert Courtney, IBM Corp. Mr. Robert P. Crago, IBM Corp. Mr. Charles F. Crichton, C-E-I-R, INC. Mr. J. A. Cunningham, National Bureau of Standards Dr. Ruth M. Davis,David Taylor Model Basin Mr. Arthur A. Ernst, National Bureau of Standards Mr. James M. Farrar, Jr., IBM Corp. Mr. Romeo R. Favreau, Electronic Associates, Inc. Mr. Howard R. Fletcher, Bureau of Census Miss Margaret R. Fox, National Bureau of Standards Mr. R. F. Garrard, General Electric Company Mr. LeweyO. Gilstrap, Jr., Adaptronics, Inc. Mr. Seymour Ginsburg, System Development Corp. Mr. Ezra Glazer, National Bureau of Standards Mr. Geoffrey Gordon, IBM Corp. Dr. Saul Gorn, University of Pennsylvania Mr. Sidney Greenwald, Rabinow Engineering Company Dr. Jerome J. Hahn, NIH Mr. George M. Heller, Bureau of the Census Mr. Thomas N. Hibbard, System Development Corp. Mr. James Hill, Rabinow Engineering Company Mr. E. W. Hogue, National Bureau of Standards Mrs. Francis E. Holberton, David Taylor Model Basin Dr. Grace M. Hopper, Sperry Rand Corp. Mr. Richard A. Hornseth, Bureau of Census Mr. Paul W. Howerton, CIA Dr. Morton A. Hyman, IBM Corp. Mr. Graham Jones, IBM Corp. Mr. Horace Joseph, National Bureau of Standards Mr. R. A. Kirsch, National Bureau of Standards Mr. F. H. Kranz, IBM Corp. Mr. M. R. Lackner, System Development Corp. Mr. Chuck H. Lee, Bureau of the Census Mr. Richard Lee, National Science Foundation Dr. Herbert W. Leibowitz, IBM Corp. Mr. Harry Lober man , National Bureau of Standards Mr. J. D. Madden, System Development Corp. Mrs. Ethel Marden, National Bureau of Standards Dr. H. L. Mason, National Bureau of Standards Mr. Phil W. Metzger, IBM Corp. Mr. Robert J. Miles, IBM Corp. Dr. A. H. Mitchell, IBM Corp. Mrs. Betty S. Mitchell, Bureau of the Census Miss Elsa Moser, IBM Corp. Mr. Ralph Mullendore, Bureau of the Census Mr. Simon Newman, Consultant Mr. James P. Nigro, National Bureau of Standards Mr. G. W. Petrie, IBM Corp. Mr. J. L. Pike, National Bureau of Standards Dr. W. T. Putney, IBM Corp. Mr. Jack Rabinow, Rabinow Engineering Company Mr. George M. Reitwiesner, National Bureau of Standards Mr. Stanley B. Rosen, General Electric Company Mr. David Rosenblatt, National Bureau of Standards Mr. Arthur I. Rubin, Electronic Associates, Inc. Mr. Bruce Rupp, IBM Corp. Dr. Lindy Saline, General Electric Company Mr. Isaac Seligsohn, IBM Corp. Dr. Norman Shapiro, NIH Mr. Jack E. Sherman, Lockheed Mr. William Shooman, System Development Corp. Mr. Robert A. Sibley, Jr., IBM Corp. Miss Mary Elizabeth Stevens, National Bureau of Standards Mr. Robert F. stevens, IBM Corp. Mr. Frank Stockmal, System Development Corp. Mr. JackA. Strong, C-E-I-R, INC. Dr. J. H. Turnock, IBM Corp. Mr. Walter D. Urban, National Bureau of Standards Mr. Richard Van Horn, Rand Corp. Mr. Kenneth Webb, I.BM Corp. Mr. Joseph H. Wegstein, National Bureau of Standards Mr. Tom J. Welch, IBM Corp. Mr. W. W. Youden;-National Bureau of Standards xi LIST OF EXHIBITORS Charles W. Adams Associates, Incorporated, Bedford, Massachusetts Aeronutronic - Division of Ford Motor Company, Newport Beach, California American Data Mac h in e s, Incorporated, Hicksville, Long Island, New York American Systems, Incorporated, Hawthorne, California American Telephone & Telegraph Company Long Lines Department, New York, N. Y. AMP, Incorporated - Magnetics Division, Harrisburg, Pennsylvania Ampex Computer Products Company, Culver City, California ANelex Corporation, Boston, Massachusetts Applied Dynamics, Incorporated, Ann Arbor, Michigan Audio Devices, Incorporated, New York, N. Y. Auerbach Corporation, Philadelphia, Pennsylvania Autonetics Industrial Products - Division of North American Aviation, Incorporated, Los Angeles, California Bendix Computer Division - The Bendix Corporation, Los Angeles, California Boonshaft and Fuchs, Incorporated, Hatboro, Pennsylvania Bryant Computer Products - Division of ExCell-O Corporation, Walled Lake, Michigan The Bureau of National Affairs, Incorporated, Washington, D. C. Burroughs Corporation, Detroit, Michigan Business Automation, Elmhurst, Illinois California Computer Products, Incorporated, Downey, California C-E-I-R, INC., Arlington, Virginia C. P. Clare & Company, Chicago, Illinois Clary Corporation, San Gabriel, California Comcor, Incorporated, Denver, Colorado Computer Control Company, Incorporated, Framingham, Massachusetts Computer Systems, Incorporated, Monmouth Junction, New Jersey Computron, Incorporated, Waltham, Massachusetts Consolidated Electrodynamics Corporation, Pasadena, California Control Data Corporation, Minneapolis, Minnesota Dashew Business Machines, Incorporated, Los Angeles, California Data Display, Incorporated, St. Paul, Minnesota Datamation Division - F. D. Thompson Publications, Incorporated, New York, N. Y. Datapulse, Incorporated, Inglewood, California DI/AN Controls, Inc 0 r po rat e d, Boston, Massachusetts Digital Equipment Corporation, Maynard, Massachusetts Digitronics Corporation, New York, N. Y. Elco Corporation, Philadelphia, Pennsylvania Electronic Associates, Incorporated, Long Branch, New Jersey Electronic Me m 0 r i e s, Incorporated, Los Angeles, California Engineered Electronics Company, Santa Ana, California Fabri-Tek, Incorporated, Amery, Wisconsin Fairchild Semiconductor Corporation, Mountain View, California Ferranti Electric, Incorporated, Plainview, Long Island, New York GPS Instrument Com p an y, Incorporated, Newton, Massachusetts General Dynamics/Electronics - Information Technology Division, San Diego, California General Electric Company - Defense Systems Department, Washington, D. C. General Kinetics, Incorporated, Arlington, Virginia The Gerber Scientific Instrument Company Hartford, Connecticut Harvey-Wells E Ie c t ron i c s, Incorporated, Natick, Massachusetts Idaho Maryland In d us t r i e s, Incorporated, Studio City, California Indiana General Corporation, ValparaiSO, Indiana . Industry Reports, Incorporated, Washington, D. c. IBM Corporation, New York, New York Invac Corporation, Natick, Massachusetts Laboratory For ElectroniCS, Incorporated, Computer Pro d u c t s Division, Boston, Massachusetts Litton Systems, Incorporated, Beverly Hills, California Micro Switch - Division of MinneapolisHoneywell Regulator Company, Freeport, Illinois Midwestern Ins t rum e n t s, Incorporated, Tulsa, Oklahoma Minneapolis-Honeywell Regulator Company, EDP Division, Wellesley HillS, Massachusetts xii Rotron Manufacturing Company, Incorporated, Woodstock, New York Royal McBee Corporation, New York, New York Soroban Engineering, Incorporated, Melbourne, Florida Sprague Electric Company, North Adams, Massacnusetts Sylvania Electronic Systems, Waltham, Massachusetts Tally Register Corporation, Seattle, Washington Tech Serv, Inc 0 r p 0 rat e d, College Park, Maryland Telltype Corporation, Skokie, Illinois Telex, Incorporated - Data Systems Division, Saint Paul, Minnesota Texas Instruments, Incorporated, Dallas, Texas Underwood Corporation, New York, New York Uptime Corporation, Broomfield, Colorado Wang Laboratories, Incorporated, Natick, Massachusetts Washington Aluminum Company, Incorporated, Baltimore, Maryland John Wiley & Sons, Incorporated, New York, New York Mnemotron Corporation, Pearl River, New York Monroe Calculating Machine Company, Incorporated, Orange, New Jersey The National Cash Register Company, Dayton, Ohio Om nit ron i c s, Incorporated, Philadelphia, Pennsylvania Packard Bell Computer Corporation, Los Angeles, California Philco Corporation - G & I Group, Philadelphia, Pennsylvania Photocircuits Corporation, Glen Cove, New York Potter Instrument Company, Incorporated, Plainview, Long Island, New York Radio Corporation of America - EDP Division, Camden, New Jersey Radio Corporation of America - Semiconductor & Materials Division, Somerville, New Jersey Reeves Soundcraft Corporation, Danbury, Connecticut Remington Rand Univac Division - Sperry Rand Corporation, New York, New York Rese Engineering, Incorporated, Philadelphia, Pennsylvania The above list was cOITlpiled as of the tiITle this book went to press. xiii TABLE OF CONTENTS Multilevel Programming For a Real-Time System . . . . . . . . . . . . . . . . . . . . . . . . . A. B. ,Shafritz, A. E. Miller and K. Rose DODDAC - An Integrated System for Data Processing, Interrogation, and Display. . . . . W. F. Bauer and W. L. Frank Project Mercury Real-Time Computational and Data-Flow System. . . . . . . . . . . . . . . S. 1. Gass, W. K. Green, J. E. Hamlin, R. Hoffman, R. D. Peavey, A. Peckar and M. B. Scott A Simulation Model for Data System Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Leon Gainen A General Purpose Systems Simulation Program ., . . . . . . . . . . . . . . . . . . . . . . . . . Geoffrey Gordon Use of a Combined Analog - Digital System for Re-entry Vehicle Flight Simulation. . .. Dr. Allan Wilson Combined Analog - Digital Simulation . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . .. Arthur J. Burns and Richard E. Kopp CONTRANS - (Conceptual Thought, Random-Net Simulation) . . . . . . . . . . . . . . . . . . . David Malin Digital to Voice Conversion. . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . .. Evan Ragland Card Random Access Memory (CRAM): Functions and Use. . . . . . . . . . . . . . . . . . . . Leon Bloom, Isador Pardo, William Keating and Earl Mayne The Logic Design of the FC-4100 Data Processing System. . . . . . . . . . . . . . . . . . . . . W. A. Helbig, C .. S. Warren, W. E. Woods, A. Schwartz and H. S. Zieper A Versatile Man-Machine Communication Console . . . . . . . . . . • . . . . . . . . . . . . . . R. Green, P. Lazovick, J. Trost and A. W. Reickord Dataview, A General Purpose Data Display System. . . . . . . . . . . . . . . . . . . . . . . . .. R. L. Kuehn A Computer for Direct Execution of Algorithmic Languages. . . . . . . . . . . . . . . . . . .. James P. Anderson Eddycard Memory-A Semi-Permanent Storage. . . . . . . . . . . . . . . . . . . . . . . . . . .. T. Ishidate, S. Yoshizawa, K. Nagamori Digital Data Transmission: The User's View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Justin A. Perlman Tele-processing Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . J. D. Shaver Communications for Computer Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. A. A. Alexander The Saturn Automatic Checkout System . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. J. Heskin xv 1 17 33 79 87 105 114 124 135 147 158 166 174 184 194 209 213 219 232 Page Information Handling in the Defense Communications Control Complex. . . . . . . . . . .. T. J. Heckelman and R. H. Lazinski An Automatic Digital Data Assembly System for Space Surveillance . . . . • . . . . . . . . Marvin S. Maxwell Four Advanced Computers - Key to Air Force Digital Data Communications System. .. R. J. Segal and H. P. Guerber The Atlas Supervisor . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . . . . .. T. Kilburn, R. B. Payne, and D. J. Howarth A Syntax Directed Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. S. Warshall An Automated Technique for Conducting A Total System Study. . . . . . . . . . . . . . . . .. A. O. Ridgway Display System Design Considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. R. T. Loewe and P. Horowitz Abstract Shaper Recognition by Machine .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. M. E. Stevens Chrysler Optical ProceSSing Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. D. N. Buell Techniques for the Use of the Digital Computer as an Aid in the Diagnosis of Heart Disease. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. C. A. Steinberg, W. E. Tolles, A. H. Freiman, C. A. Caceres, and S. Abraham xvi 241 257 264 279 295 306 323 332 352 371 MULTI-LEVEL PROGRAMMING FOR A REAL- TIME SYSTEM A. B. Shajritz Auerbach Corporation Philadelphia, Pa. A. E. Miller Auerbach Corporation Philadelphia, Pa. Introduction K. Rose Auerbach Corporation Philadelphia, Pa. not requiring its full fraction, and for use of this additional time by one of the other programs. When any program is finished, another is begun, so that the computer is kept busy as long as work is available. Under certain circumstances, this lack of idle time may be an adequate criterion of efficiency. Real-time problems introduce a feature that is easy to recognize, but may be quite difficult to mechanize. If one or more programs have deadlines to meet, they might be given a greater share of the computer's time without reducing the overall efficiency (Figure 1-3, Deadlines). A collection of deadlines for many programs might easily prove incompatible, and call for compromises that take into account the severity of the penalty for transgressing each. Another complication in multi-programming is that of interdependence of programs (Figure 1-4), Interdependence). In many important applications, the units to be scheduled are not independent programs, but parts of one major program. Anyone of them may require the completion of others before it can begin. This program, in turn, may be a prerequisite for still others, in which case the efficient approach might be to carry it out promptly rather than have it share the computer's attention with other tasks. When a multi-programming task involves both deadlines and interdependence, it becomes a challenge to the programmer. The modern computer features permitting the Recent computer literature has given considerable attention to the problem of matching high-speed data processing equipment with low-speed input-output equipment. The solution most often presented is the use of multiple input-output processing equipment, aUowing for an increased computation load that keeps the central processing unit active. While input-output equipment is operating on one part of the program, the processor is not waiting, but working on some other part. If the benefits of such a configuration are to be realized most fully, an efficient multiprogram system must be designed. The efficiency that can be attained by multi-programming is suggested in Figure 1. The individual programs occupy only a fraction of a computer's capability, as indicated by the heights of the rectangles in the diagram. The assumption is that the central processing unit remains idle much of the time waiting for input data or access to output equipment in use. If the programs are carried out one after another, the total time (represented by lengths) is excessive (Figure 1-1, Sequential Programming). One way to shorten this time is to give the computer some number of tasks to work on at once, and let the computer divide its time equally among them (Figure 1-2, MultiProgramming). Such a mixing technique might provide for the possibility of one task's 1 2 / Computers - Key to Total Systems Control 1-1 SEQUENTIAL PROGRAMMING ::~M:~:~'nlll~'lImw'II"':' unW: · _iii·'" 1-2 MULTI-PROGRAMMING 1-4 INTERDEPENDENCE Figure 1. A Problem in Programming. use of efficient multi-programming techniques do not, by themselves, solve all the problems. It is our concern in this paper to consider a programming technique which makes use of different levels of processing to take full advantage of the multi-programming capabilities of these computers. This technique has been used to varying extents on several projects by our programming staff. It is best described by tracing the development of a multi-level programming task through a particular problem. However, we will try as we go along to abstract the general features of the' problem that make such an approach deSirable. Elements of a Store-And-Forward Communication System The task at hand is to program a highspeed data processor to operate a Store-AndForward Communication System. As Figure 2 shows, the Communication System is made up of a message switching center connected by two-way channels to a number of subscriber terminals. Messages from these subscribers are sent to the center, at will, to be transmitted to addresses at the earliest opportunity. One message may require transmission to several destinations. The memory at the center stores_ a message as it is received. The entire message is then retained in memory until the last transmission has been completed. Each transmission of a given message can be at a different time, and at any of a number of specified speeds. In the course of transmitting copies of a message, the computer may be called upon to translate the message from one code and format to another. The system calls for first-in first-out service, with com-: plications that necessitate extensive processing. Multi-Level Programming for a Real-Time System / 3 LOW-SPEEDO SENDERQ, '0 " 0, '0 ee e " .e " O 0000 ,_------- O -a a a a • • e e •• e -e __ e __ • MEMORY \'---------Y " HIGH-SPEED , ' • SENDER \ HIGH-SPEED RECEIVER --e ___•0 LOW-SPEED •••~ RECEIVER o ~ V V HIGH-SPEED RECEIVER MEDIUM-SPEED RECEIVER Figure 2. Store-and-Forward Communication System. Equipment Configuration Figure 3 shows a possible arrangement of the main equipment in the message switching center. Input buffer storage, in the form of a coincident-current memory (or a highspeed drum), is provided to receive the successive characters of each incoming message and collect them into message sections. Logically, a separate buffer is associated with each input line, the size of the buffer depending on the speed of the line. In this system it is assumed that each buffer is capable of holding at least a few seconds of traffic. The communications processor is responsible for servicing each buffer often enough so that the bl~ffer never becomes full. If this responsibility is met, the total transmission rate is limited only by the line capacities, and the processor service is effectively continuous. If the processor under certain peak traffic conditions cannot get around to a buffer fast enough,' the penalty paid is a momentary forced traffic slowdown that holds up the subscriber. The output is similarly buffered, with the computer unloading message sections to be transmitted at the receiver's speed. The computer's responsibility is to keep output buffers from "running dry" as long as there are messages for the associated lines. The buffer status indicators, controlled by the two sets of buffers, indicate to the processor the contents of each portion of the buffers. The processor has its own high-speed, random-access memory, and for the purposes of this paper the entire operational program and associated bookkeeping tables are assumed to be stored therein. The processor also operates several other devices that provide bulk storage with a more limited access. A· set of drums constitutes the main message store. (This function might be accomplished with discs or other media, but it will be convenient to use "drum" as a short name for bulk storage in the remainder of this paper.) Magnetic tapes back up the drum with auxiliary storage space to handle heavy message backlogs which might occur at peak periods, or when one or more receiving 4 / Computers - Key to Total Systems Control INPUT LINES::::: FROM --. SU BSCRI BERS ::: COMMUNICATIONS DATA PROCESSOR • OUTPUT LINES::: TO 4 - SU BSCRI BERS :::: FAST ACCESS STORAGE • Figure 3. Message Switching Center. stations are closed down. One tape unit is used for "off-line storage" that is not retrieved in the normal on-line operation. This is the record tape, on which a copy of every message section received is written, with enough other data to give a complete record of the traffic through the system. The drums, tapes, buffers, and buffer status indicators are all treated as asynchronous peripheral devices by the processor. The processor gives them instructions to transfer information into or out of its high-speed memory, and then goes about its own business while the peripheral devices are operating. Several peripheral devices may operate simultaneously, alongwith the processor's central processing unit. It is the coordination of these asynchronous operations, together with the interweaving of the processing, that constitutes the problem under consideration. It is assumed that the processor has the ability to interrupt the main program upon the termination of an inputoutput operation. Such a capability is available, to varying degrees of sophistication, in most of the latest large-scale computers. different programming levels. In the example presented, the main program performs data processing or logical operations in preparation for the operation of the first peripheral device, and then transfers control to the program level labeled "peripheral device control" to initiate the operation of the device. After the initiation, the main program continues with other tasks. During the operation of the peripheral device, brief periods of main frame time may be lost when words are transferred between the computer memory and the peripheral device. At the termination of the peripheral device operation, an interrupt transfers the program back to the peripheral device control level to perform any procedure associated with the termination of the operation (such as error checks or the storing of the contents of certain registers). Following the termination process, it is determined that a second peripheral device should be operated, and a similar sequence of actions is carried out for the second peripheral device operation. The concept of processing levels is developed more fully in the latter part of this paper. Interrupt Feature Figure 4 illustrates the use of the interrupt feature and also suggests the concept of Computation Cycle In this, as in most real-time systems, there are a number of basic functions that Multi-Level Programming for a Real-Time System / 5 ---- --- --- ~UJ[- "'U x- 0.> -'II !Xc W 0. --- ---- ---- --- -r-------------~ SECOND PERIPHERAL DEVICE FIRST PERIPHERAL DEVICE -~~--~~~~~ I/O WORD TRANSFER ffi ~ ~ !X ..... PERIPHERAL DEVICE CONTROL PROGRAM 5-----11- ~ ou Figure 4. Interrupt System. must be executed periodically. Ideally, each function should be carried out at its own best frequency. But to assign the lengths of periods independently would greatly complicate program control as well as entail the risk of irregular computer loading. At one time many functions might be demanding computer time simultaneously, while at another time the computer might be forced to remain idle for some period when all operations were out of phase. This could occur even under heavy traffic loads, and reduce the effective throughput of the system. The compromise that is usually made is to establish a computation cycle, with a frequency that is close to that of as many of the basic functions as possible. Those that require more frequent execution may be done more than once in a cycle, and those whose periods should be longer may be programmed to occur in one cycle and then skip one or several cycles. If there are enough of these unusual periods, a complex of interrelated cycles may be employed. Our cycle is concerned with two types of processing; one associated with input and the other with output. Briefly, the input processing consists of transferring message sections from the input buffer storage (and perhaps from tape) to the computer high-speed memory, storing the message sections on the drums and record tape, and performing associated bookkeeping operations. Conversely, the output processing consists of retrieving message sections from the drums, proceSSing these, and writing them into output buffer storage and perhaps onto tapes. Batch Size It is important to estimate the size of the character batch, both in and out, to be handled in a cycle. The capacity of the inputoutput buffers does not in itself fix the cycle. It is true that every buffer should be serviced within the number of seconds for which it can hold traffic, but to serve all at once would call for an excessively large capacity in high-speed memory. At the other extreme, a small internal memory would tax the peripheral devices and the computer proper. For the drums, increaSing the batch size helps the latency problem; for tapes, larger records may be written, cutting down on the ' start-stop wastage; and for the computer, fewer tests, setups, and general bookkeeping operations have to be performed. In seeking the optimum batch Size, the programmer must examine the system requirements, and in so doing he becomes 6 / Computers - Key to Total Systems Control confronted with the complication of "worstcase" design. The concept of an "average" traffic flow for the system would be meaningless. The message switching center must operate efficiently at "peak" loading, and must therefore be over-designed for average traffic conditions. The design should be such that correct operation can be maintained under the worst conditions that are within the realm of possibility. The processor must not break down even if all inputs lines attempt to send messages at their maximum rates simultaneously. It is not economical, however, to base the whole design on such remote po s sib i lit i e s. Statistics should be gleaned on the overall picture of traffic flow, to provide a description of a "reasonable worst-case." This should be chosen as a level that will be exceeded so seldom or so briefly that some inconvenience can be tolerated when this occurs. From the "reasonable worst-case" conditions, it should be estimated how much proceSSing time is required for each character going through the system. This is divided into two cat ego r i e s, peripheraldevice time and computer time, and both are functions of batch size. Figure 5 shows these functions very much oversimplified. They are not necessarily monotonic nor even continuous; they depend on the equipment complex, techniques used, and many other factors. A batch size somewhere near where the two curves cross will produce an efficient and economical cycle. It is assumed that the equipment complex is well-suited to do the job at hand, and the batch size ·so chosen will afford an adequate excess capacity. ••• . •• •• ' ELAPSED TIME PER UNIT OF TRAFFIC •• COMPUTER e• •• •••• PERIPHe • • • • .!AL DEVICE,r ~ SYSTEM SYSTEM PERIPHERAL COMPUTER· DEVICE· LIMITED LIMITED .... •••• •••••• BUFFER SIZE (CYCLE LENGTH) Figure 5. Cycle Length Determination. Multi-Level Programming for a Real-Time System / 7 Tasks to be Performed With a size chosen for the batch, the actual work of programming begins. A list is made of all the tasks that are normally performed in an input-output cycle. It is helpful to have estimates of the time they will require, and this involves three parts: the computer time to prepare the data, the time for the peripheral device to operate, and the computer time to terminate the task. These time estimates need not be well defined; the programmer will want to know general orders of magnitude, or in some cases just comparisons, such as that a tape operation will not take as long as a drum operation. The tasks for this program, as shown in Figure 6, are 11 per cycle (not necessarily in order) as follows: 1. Read Buffer Status Indicators (B.S.I.) to determine the contents of each input and output buffer. 2. Read Input Buffers. The computer portion of this task includes examination of the results of Read B.S.I. to select the input buffers to be serviced. 3. Input Processing. This operates on the message sections transferred by (2) and involves the updating of tables in the system that indicate when messages arrived, what their destinations are, and the like. It is set apart from the proceSSing required to prepare to write drum. 4. Write Drum. This task is kept to a minimum of what must b~ done between the time the data arrives inhigh-speed memory and the time the drum write order begins. While the writing occurs, the information remains in high-speed memory and can still be accessed, although it must not be changed while the asynchronous writing is under way. Any proceSSing that can meet the requirements is made a part of input proceSSing rather than a part of the write drum operation. 5. Read Drum. This task calls for decisions of what to read, based on buffer status information associated with the output buffers. And again, any of this proceSSing that can be, is relegated to output proceSSing. 6. Output ProceSSing. This involves selection of n~w messages for output lines, minor message format changes, 7. 8. 9. 10. 11. and bookkeeping procedures. It includes any operation on output data that is not directly associated with the operation of a peripheral device. Write Output Buffers. This does not itself involve much computer processing; the other tasks preceding it complete most of the decisions on what to write. Write Tapes. Read Tapes. These two tasks are normal and may occur in any cycle, but will probably not go on so regularly as (1) through (7). Part of the terminal proceSSing required after reading tapes is the decision what to do with the data read. As tape is used in this system, messages from tape may go (via the computer memory) to the drum or onto another tape. Write Record Tape. This is the longest peripheral operation in our system: the recording of every piece of an incoming message with additional data to identify sources. (From cycle to cycle, the pieces of a message maybecome separatedon record tape.) While writing on r.ecord tape is being done, other tasks USing· the same data can be performed; thus this task may go on throughout the cycle. Miscellaneous Tasks. This list of II tasks is greatly overSimplified, omitting even many regular tasks actually required in a message system. Tasks (1) through (10) can be thought of as including all those operations that must be totally carried out each cycle. "Miscellaneous tasks" can be thought of as those functions taken out of the main stream and made to extend over a number of cycles to regulate the cycle length. An example of such a function is message translation on a characterby-character basis. This can be a time-consuming process, but it will be required for relatively few messages. When it is necessary, it may delay the individual message involved, but others in the batch s h 0 u 1d be processed promptly. For this reason, message translation is not made a part of output proceSSing. Miscellaneous tasks would also include non-periodic operations performed by the computer on request, or tasks such as recording of statistics, 8 / Computers - Key to Total Systems Control write order are the tasks that provide data to be written. A read order must wait until the completion of the write orders that clear out what was previously read. It should be noted that this program assigns a fixed buffer space to each input device; data are rearranged (if required) within an input buffer area and transferred from there to the output divices by means of the write instructions. The establishment of prerequisites leads to a re-ordering of the list of tasks into a cycle. The sequencing may involve some "cut-and-try" work, but can be guided by a few well-defined principles: 1. Two operations with the same prerequisites (e.g., read drums, read tapes) should be in juxtaposition in the program. The one that serves as a prerequisite for the greater number of subsequent operations should be first. 2. When the prerequisites for one operation are a subset of those for another, the former should precede the latter (as write output buffers, write tapes). which might be hourly or daily rather than once per cycle. Miscellaneous tasks may involve operating peripheral devices, possible even some that are not included in normal operations. Interrelationship Between Tasks In a fixed inflexible program, these tasks might be arranged in arbitrary order to constitute the program. In multi-level programming, the order of their execution can vary from one cycle to the next. But general limits must be established. For this purpose, it is required to determine which tasks are prerequisite to each other. Each task must wait until the completion of others, either in the same cycle or in the previous one, as shown in Figure 7. The eight input-output functions are the present concern; the three processing functions are treated later. The reading of buffer status indicators (B. S.I.) must take place after the write output buffer operation in order that the indications be up to date. In general, prerequisites of a COMPUTER PERIPHERAL DEVICE COMPUTER OPERATIONS TO BE EXECUTED EACH CYCLE: READ BUFFER STATUS INDICATORS READ INPUT BUFFERS ~a:: ....",,---_ _~~ UII~~~L.-. ______ INPUT PROCESSING WRITE DRUMS READ DRUMS a1i_~~~~ """'~'" ______" ';"______________ ~~~~~_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _.......~~ OUTPUT PROCESSING WRITE OUTPUT BUFFERS WRITE TAPES READ TAPES WRITE RECORD TAPE I~~___---..I) MISCELLANEOUS TASKS Figure 6. List of Tasks. I...-}_ _ _ ~~ ..,I;~a.aaI Multi-Level Programming for a Real-Time System / 9 TASK PREREQUISITES READ BUFFER STATUS INDICATORS (B.S.I.) WRITE OUTPUT BUFFERS READ DRUMS WRITE TAPES, WRITE DRUMS, READ B.S.I. READ TAPES WRITE TAPES, WRITE DRUMS, READ B.S.I. READ INPUT BUFFERS WRITE TAPES, WRITE DRUMS, READ B.S.I. AND WRITE RECORD TAPE WRITE RECORD TAPE READ INPUT BUFFERS WRITE OUTPUT BUFFERS READ DRUMS WRITE TAPES READ DRUMS, READ TAPES WRITE DRUMS READ DRUMS, READ TAPES, READ INPUT BUFFERS Figure 7. Ordering by Prerequisites. 3. The circularity of the cycle should be kept in mind, and its "beginning" left flexible. In this list, Read B.S.I. is an obvious beginning, being prerequisite (by transitivity) to all other operations. But Read B.S.I. does not necessarily have to wait for the end of the previous cycle. In other words, one cycle can begin before another has ended. In the problem under consideration, the cycle determined according to these principles divides itself into a read portion and a write portion. The central processor "inhales" information from all input sources, and after proper processing, it "exhales" into all output destinations. This gives the opportunity for information to be transferred from any peripheral device to any other during one cycle. The "read" and "write" portions of the cycle are not to be confused with system input and output. From the viewpoint of the central processor, all other parts of the system are external. Reading an input message from its buffer is the same as reading a message from the drum when that message is on its way out of the system. The input and output sub-cycles are fairly simple when considered separately. Output Sub-Cycle As Figure 8 shows, the output operation has three parts that are mutually prerequisite and thus determine a cycle. Each of the three parts is done by a peripheral device. When each operation is finished, a program interrupt occurs, and the computer prepares for the next step. For SimpliCity in this and following diagrams, some steps of the program have been removed. The computer operations required for termination of any peripheral device operation are assumed to take place as soon as an interrupt occurs. Then the preparation for the next step begins. This is shown in one block on the inner ring, which represents operation of the computer proper. The cycle is expedited by keeping these intra-peripheral operations to a minimum. 10 / Computers - Key to Total Systems Control Figure 8. Output Sub-Cycle. It should be noted that the cycle (clockwise direction) is not fixed as to time. It proceeds as fast aBthe peripheral devices will allow, and may vary greatly in length. This is based on the simplified assumption that there is ample time to carry out all the required processing tasks during the peripheral device operations. The black areas on Figure 8 represents time that the computer can spend on all its other functions. Some of these operations are scheduled into a larger cycle, as shown on subsequent figures. Others occur at variable times in the cycle, according to the time the processor has to work on them. Input Sub -Cycle Figure 9 shows the somewhat more complex input sub-cycle. Again, each interrupt is followed by termination operations and then the preparations indicated on the diagram. The prerequisities for reading the input buffer include the completion of three operations; write record tape, write drums, and read B.S.I. Generally these operations will not finish at the same time. The last of the three termination interrupts to occur initiates reading of the input buffers. When the previous operations are completed (whichever two they may be) the computer may perform the required terminal operations individually, but it will not go on to prepare Figure 9. Input Sub-Cycle read input buffer until all three are performed. Input-Output Cycle In Figure 10 the input and output functions are shown merged into one cycle. The computer steps required for one sub-cycle occupy some of the empty intervals in the other. There are still spaces left for input processing, output processing, and any other operations that use the computer but not peripheral dev~ces. These are not scheduled at fixed times in the cycle, but executed as time permits, as will be explained later. The time required by each peripheral device is so variable that these empty spaces may change size or even be eliminated. If a peripheral device operation is short or nonexistent, the interrupt will be early and the computer will not have to wait for it. There may even be a line-up of interrupts waiting for attention. The machine and program are designed to handle such situations. Figure 10 has features added beyond the combination of the previous figures. The tape operations and preparations are Shown, and an end of cycle checkpoint is included just prior to the read drums operation. The latter is a necessary safety feature in our variable cycle. It affords an interlock to insure that all the input processing, output processing, and s c h e d u led miscellaneous Multi-Level Programming for a Real-Time System / 11 Figure 10. Input- Output Cycle. processing have been carried out during the cycle. If the end of cycle routine finds that further processing remains to be carried out, the cycle is accordingly extended. The end of cycle routine serves another purpose. If it finds that the cycle has been completed in an extra short time, it extends the cycle, permitting the program to do further miscellaneous tasks in the cycle rather then have the computer "spin its wheels" sampling buffers to'o frequently. Program Implementation It is only fair to point out that Figure 10 is not one of the steps in setting up the multilevel program, but rather an advance view of the re sult. The same steps are shown in Figure 11 as a flow chart that describes the cycle less graphically but more simply. A program interrupt at the completion of a peripheral device operation generally leads directly to the initiation of some other 12 / Computers - Key to Total Systems Control GATE X PROCEED AS SHOWN (B) = (C) = (D) = 0 READ DRUMS READ TAPE READ INPUT BUFFER WRITE OUTPUT BUFFER WRITE RECORD TAPE WRITE TAPE READ B.S.1. WRITE DRUMS Figure 11. Input-Output Cycle Flow Chart. Multi-Level Programming for a Real-Time System / 13 peripheral device operation. The one completed is generally the last prerequisite for the other. Other prerequisites are implied by the sequencing of the parts. One of the problems in this type of programming is to find ways to represent on diagrams the peripheral and computer operations. They are interconnected by initiations and interrupts, but operate asynchronously and do not lend themselves to representation with time as a fixed coordinate. Figure 11 uses some conventions to meet this problem. When the operation of a peripheral device begins, the computer goes on with some other task (shaded blocks). At such branch pOints, therefore, both branches must be taken. The computer and the device operate at the same time. When the peripheral device has finished its job, it initiates a new part of the program by the interrupt mechanism. This interrupt may sometimes not occur immediately, but it is most convenient to indicate it as the next step after the peripheral operation. Figure 11 has five places where two branches meet, called gates. Each of these is a program step associated with a program control flip-flop. When either of the entrances indicated brings the computer to that spot, the flip-flop is examined to see if the other step has already occurred. If not, the state of the flip-flop is changed, and the Control Program determines the next function to be carried out. When the second of the two entrances occurs, the program proceeds as shown. Initially, the gates are set up in the same pattern that they reach at the end of each cycle when all jobs have been done. When a cycle begins, the three read operations are promptly begun, and the computer goes to the Control Program, as indicated by the circled C. While the read operations are going on, the computer works on its other tasks, as will be described more fully later. As soon as the read input buffer operation is finished, the computer initiates the write record tape sequence, whether other reads are completed or not. Similarly, when the read drums operation is finished, the write output buffer operation is begun. When both drums and tapes have been read, the write tape sequence begins, and when all three read operations are over, the write drums operation is started. Of the write operations, the write output buffer operation should be finished first. As soon as it is over, the indicators are read in preparation for the next cycle, which begins when all write operations are finished. The write record tape sequence may extend into the next cycle. However, it will not delay any of the read operations except the one for which it is prerequisite. The length of this cycle, and even the sequence of events in it, depends on how long the peripheral operation takes. If the write tape sequence is long, other operations that do not depend on it are dispatched as soon as possible. Any of seven sets of operations may determine how long the cycle actually lasts. These can be seen by tracing through the diagram. The cycle length is the longest of the following seven combination (along with associated computer processing): 1. Read Drums, Write Output Buffer, Read B.S.!' 2. Read Drums, Write Tape 3. Read Drums, Write Drums 4. Read Tape, Write Tape 5. Read Tape, Write Drums 6. Read Input Buffer, Write Drums 7. Write Record Tape (portion remaining from previous cycle), Re ad Input Buffer, Write Drums. Checking against the list of prerequisites will show that the cycle could not possibly be shorter than any of these sequences. Thus, the program does succeed in optimizing cycle length. Non-Peripheral Operations Both the cycle diagram and the flow chart (Figures 10 and 11) are concerned primarily with peripheral device operations, as the scheduling of these operations is the most critical part of the program under consideration. It is also important to incorporate efficiently the other operations, such as input and output processing, that must be performed during every cycle. On the cycle diagram, blank spaces in the computer ring indicate when these operations are carried out. On the flow chart, entrances to these portions of the program are indicated by a circled C. This represents transfer to a specific part of the control program, which takes place at three times in the program, and also any time one of the gates is found "closed." Upon transfer to this location, the processor examines a list of tasks, arranged according to their prerequisites like the peripheral device operations already considered. 14 / Computers - Key to Total Systems Control The first item on the list is advance preparation of peripheral device orders. This preparation is done in advance whenever possible, in order to expedite later parts of the program. When all that is possible has been done (or immediately if no such operations were ready to be done), the program continues to the next time. It goes on through input and output processing, and any other tasks that need to be performed once per cycle, doing as much of each one as is possible at the time. All of these operations are subject to interruption when a peripheral device completes one of its tasks. After an interruption, the steps to terminate the peripheral operation will be dispatched. Then the task that was interrupted will be finished, and finally the processor will go back to the beginning of the list again. If any advance preparations, or other operations previously passed by, have become possible as a result of the operation just completed, they will be done next. The list is arranged in preferential order, with the tasks that are prerequisites for other operations considered first. If the program reaches the end of cycle indication with some tasks on this list not yet done, the next cycle will be held up until they have been completed. This situation will not generally occur unless requirements for processor time exceed those for peripheral devices. Normally, the program will catch up on these operations frequently during the cycle, and have time to go into other operations of lower priority. Base Level We have seen the relationship between peripheral device control operation and processor operation. The former constitutes one of the levels of the multi-level program. Processor operations are divided into two levels, one of which has already been considered. The operations that must be done in each cycle, including the preparations for peripheral operations, constitute the base level of the program. It is related to the perIpheral device control level as shown in Figure 12. Base routines are carried out successively under base control. They usually lead to peripheral device operations, and after initiating a peripheral device operation the computer returns to base control to determine what routine should be worked on next. Interim Level A third level, the interim level consists of miscellaneous tasks that need not be synchronous with the input-output cycle. The program reverts to the interim level whenever base control finds no routines ready to be performed. Interim control examines a list like that of base control, with tasks arranged in preferential order. The program goes through the list, performing any tasks for which the required data are available. Performance of possible tasks continues through the list until a peripheral device interrupt leads the program back to base level. If the peripheral device operation opens up new possibilities at the base level, the proceSSing will not necessarily return to interim level for some time. When it does so, the task that was interrupted is finished, and the list is examined again from the beginning. While a cycle may be held up if all base routines have not been performed, interim routines are allowed to extend over several cycles. When the computer is heavily loaded, this could result in long waiting for tasks at the end of the list examined by interim control. Even though they are not critical, these tasks must not be delayed indefinitely. To insure against this, the interim program differs from the base in one respect: each task is assigned a quota (either predetermined or program controlled) representing the amount that should be done in one cycle. The control program moves on to each task when the quotas are completed for the previous ones, rather than when the entire tasks have been completed. If the end of the cycle finds tasks that have not received their quota of processor time, the cycle will be held up as for base operations. If, on the other hand, the quotas are all completed before the cycle is over, the interim control program may start through the list again, giving "second helpings," possibly smaller than the original quotas. The last item on the list of interim tasks is error-checking routines. These can go on indefinitely, so that the processor will never be at a loss for something to do, even if it remains in the interim level for long periods of time. This of course, will not occur unless all the higher level tasks have been taken care of. The base and interim levels are interruptible by peripheral devices. The control Multi-Level Programming for a Real-Time System / 15 r -, PERIPHERAL DEVICE INTERRUPT •••••••••••••••••••••••••••••••••••••••••• • PERIPHERAL DEVICE CONTROL BASE CONTROL PERIPHERAL DEVICE OPERATION I I I EXECUTE BASE ROUTINE BASE LEVEL EXECUTE INTERIM ROUTINE INTERIM CONTROL L • •• •• : ~ ••• • •• •• •• •• ••• •• •••• INTERIM LEVEL CONTROL LEVEL ---- --' Figure 12. Program Sequencing. program, which includes not only peripheral device initiation and termination but control routines for the other two levels, is not interruptible. Multi-Level Sequencing Figure 13 reviews the realtionship among the levels by showing a typical segment of the program in time sequence. A base routine prepares two instructions for a peripheral device, and then transfers to the control level. This level includes not only the initiation of the first peripheral operation, but the base control decision as to what routine will be worked on next. The transfer to the actual execution of this routine is shown as a shift to the base level. The second base routine starts to prepare an operation for another device (these could be read drum and read tape in this program). When the first device finishes its first order, it needs the computer's attention very briefly to start its second order, and accordingly interrupts the base routine. When the brief control routine to start the second order is over, the base control makes the decision to return to the interrupted routine, and it is taken up from the point of interruption. After the second peripheral device has been given its job, the control program examines the base list, and, finding nothing to 16 / Computers - Key to Total Systems Control II w U > w FIRST PERIPHERAL DEVICE Q . ~ a: ··: ·· · w X a. ;: w a. ---I/O WORD TRANSFER a: w a. o a: a. CONTROL LEVEL ---- . · . . . ·· SECOND PERIPHERAL DEVICE ·· I ·· I ··: ··· · P.~ : ; ; ~~.~----~.----~----~----~.~ J -- -_. ___-~I I 1 ~ 11 __ 1 ~ : ~ i ~ i l i l 1 1 i r ! ~ : J ! ~ ! ~ i l 1 ~ I: I ~.:: : ~ . : ~ ; ' : . ~ : . · : 1 ~ . ' I : i .~.: 11 I _LEVE_L_I~ III ~ 1 II BASE INTERIM LEVEL THIRD :. .:.:.:;.::..:.:;.:..:. . ....:. . .. !!!!!m.::.:::::i.:: .. P:~£i~E:~r~~~~::N I I II 1 _____ Figure 13. The Multi-Level Program. be done, goes to interim control. From there, the program reverts to interim processing, to continue a task previously interrupted, or take up a new one from the list. The completion of the second order by the first peripheral device interrupts the interim program, but the processor does not return to it immediately after the control routine. This operation was the last prerequisite for a third peripheral device (possible the write output buffer). A new base routine that could not be done before is possible now. After it and the follow-up peripheral device order are done, the program goes back to the interim level. Here too there may be a new task possible that could not be done before. This system of control, interim, and base programming, insures that there will not be delays unless traffic necessitates them. If the computer is ever idle (continuously performing error detection routines), it is because it has finished all its other tasks. Furthermore, peripheral devices are operating to bring it more work to do as soon as possible. Similar ly, if peripheral devices are ever delayed, it is because the computer has been constantly busy and yet has not completed the tasks required of it. I Conclusions Multi-level programming adjusts itself in each cycle to the traffic conditions. When the system is computer-limited, the computer works full time to meet the situation, holding up peripheral devices as necessary. When peripheral devices require more time than the central processor, their operations are optimally sequenced. Meanwhile, the processor keeps its own operations caught up, and whenever it is forced to wait for peripheral devices, it busies itself with low priority tasks or error checking. This type of programming succeeds in keeping the processor and associated devices busy whenever pOSSible, which is one criterion for judging the efficiency of multiprogramming. This system goes further, and makes a highly flexible choice of what tasks various devices will perform first. It anticipates deadlines by giving first precedence to operations on which others depend, and thereby avoids alternating periods when equipment is very busy and idle under the same conditions. Thus, while it represents a considerable programming effort initially, it pays off in truly efficient real-time operation. DODDAC - AN INTEGRATED SYSTEM FOR DATA PROCESSING, INTERROGATION, AND DISPLAY Walter F. Bauer and Werner L. Frank Thqmpson Ramo Wooldridge Inc. Canoga Park, California ABSTRACT With the DASA Department of Defense Damage Assessment Center a significant advance has been achieved in the establishment of a large -scale military data handling system which operates under real-time constraints. Although characteristics and requirements of this system are similar to those of Command/ Control systems now in development, the integration of man to this configuration is of paramount concern. The DODDAC demands swift man and system interaction to elicit the information upon which decisions are based. The system consists of a Control Data Corporation 1604 Satellite Systern and communication and display devices manufactured by Thompson Ramo Wooldridge Inc. The latter includes a Computer Communication Console and an on-line group display. performance, DODDAC represents a significant advance in large scale data handling systems. The characteristics and requirements of this system have many features common to the general class of military C ommand/ Control systems now in development. They require, for example: larg,e capacity random data storage devices, parallel processing of data, continual operation with near absolute reliability, real-time response, and servicing of queues formed by continual data entry and consumer requests for output. Of paramount concern was the integration of man to the configuration, i.e., providing him with adequate tools by which he interacts with the data and the processing. In this respect especially, the design represents one of the more advanced real-time systems incorporating on-line interrogation and display. The DODDAC system design and proj ect management was provided by the DASA The Introduction The need for a damage assessment center that could rapidly handle and proce~s extremely complex military data led to the expansion of the Defense Atomic Support Agency to include the Department of Defense Damage Assessment Center (DODDAC). Under the Deputy Chief of Staff, Damage Assessment Systems of DASA, DODDAC now provides damage assessment support to elements of the Department of Defense and the Joint Chiefs of Staff. It provides comprehensive information affecting peacetime and wartime decisions with rapidity after particular queries are received. Because of the great amount of data handled, the complexity of the proceSSing, the comprehensiveness and the facility of output, and the fast system responses required for both man and machine, the design and implementation of the data system are especially challenging. In delivering this g 17 18 / Computers - Key to Total Systems Control design was implemented by a Control Data Corporation Satellite S y s t em, a RamoWooldridge Interrogation and Display System, and by programming and modelling accomplished by the System Development C orporation. This paper presents the technical aspects of the data processing and display systems, following a discussion of the misSion, functions, and r e qui rem en t s of DODDAC. Mission DASA is a j oint services organization with broad military responsibilities in the atomic energy field. DASA, formerly the Armed Forces Special Weapons Project, succeeded the Manhattan Project of World War IT. As part of its responsibilities, DASA has for some years been performing computational studies of weapons effects, hazards, and vulnerabilities related to atomic warfare, exercised earlier by the DASA Deputy Chief of Staff for Weapons Effects and Test~ and now, insofar as applications to real target systems, by the Deputy Chief of Staff for Damage Assessment Systems. Under the latter, DODDAC was established by a DepartmentofDefense directive. On March 4, 1960, the Chief, Defense Atomic Support Agency, was designated as Executive Director of the DODDAC. Should war occur, DASA (DODDAC) will support the Joint Chiefs of Staff and other deSignated military and government groups in assessing nuclear damage sustained by the armed forces and resources of the United States, its allies, and the enemy, supplementing its peacetime responsibility for appraisals of attack hazards and vulnerabilities. Figure 1 depicts schematically the mission of DASA DODDAC by presenting the overall data flow through the system. Data comes into the DODDAC from the indicated agencies in three categories: target data, system parameters, and attack information. Target data is a comprehensive description of forces and resources, system parameters include certain data on weapon effects, and attack information is that volatile data related to a specific and unpredictable pattern of events during post attack phases. The sources and users of data shown in Figure 1 is not an exhaustive list but a representative one. The principal user, as indicated, ,is the Joint Chiefs of Staff. Functions and Requirements A general statement of the functions of the DODDAC is as follows: perform hazard and vulnerability studies on a continuing basis, keep an up-to-date file of military forces and resources information, and in the event of hostilities, accept information quickly, process it rapidly, and provide display products suitable for top level command use. The DASA-DODDAC has also been given the responsibility to support the war gaming activity of the Joint Chiefs of Staff. In this capacity the DODDAC works with the Joint War Games Control Group from which guidance is given leading to the development of gaming models, computer programs implementing the models, output designs and presentation methods. More specifically, the imposing list of requirements is as follows: 1. Provide a data base of information necessary for damage assessment proceSSing which can in the near future grow to 100 million character s. 2. Provide a means to up-date the data base on a day-to-day basis. 3. Design and implement a data handling system for handling these large amounts of data accurately and expeditiously. 4. Allow for the data transmission to DODDAC over hardened, secure, and reliable communication facilities, and devise and arrange for sources of information appropriate to the damage assessment process. 5. Accept attack data as real-time inputs and allow for their direct input to the computer system. 6. Develop damage assessment models which represent the delicate balance between comprehensiveness or realism, and speed. 7. Provide a technique for man/machine communications, allowing quick access to nearly all data in the files. 8. Provide a system for the automatic generation and presentation of high quality output products of fast response which are suitable for group viewing by top command personnel. There is a special challenge in the last two requirements for there are few, if any, data processing systems in existence today which provide all flexible and all-purpose interrogation and display system' required. DODDAC - An Integrated System for Data Processing, Il!terrogation, and Display / 19 DASA DODDAC JOINT CHIEFS OF STAFF Figure 1. DASA--DODDAC Mis sion - Overall Data Flow Figure 2 shows the functions to be performed by the data system. The input data, as shown, can come in through many sources: voice communications, teletype data links, specialized communication s y s t ems, and standard digital data links. The system must allow for automatic entry of data as well as manual type entry. The computations must allow for various kinds of damage assessment processes. For the various models, there must be a number of modes of operation which allowvarious trade-offs between comprehensiveness of the model and the speed with which results must be obtained. Standard output in terms of hard copy must be available. In addition, individual or console type displays are necessary for the individual analysis of file data. A last requirement for output is a display for group Viewing. Man/machine facilities for the input of data and for calling for requests, complete the required capabilities of the system. Of special concern is the system for group display. In order to have the quality and comprehensibility of the group display required for command use, it was deemed necessary to have a full color display system. It was desired that this display system allow for the placing of symbols on maps and charts in full color, with no dilution of the color of the superimposed symbols. Finally, because of large amounts of information to be placed on the slides for group viewing and the fast response times necessary for their preparation, it was necessary to have completely automatic operation. This automatic operation must allow for the input of information directly from the computer, the automatic preparation of the slides, and the transportation of the slides to a projector for viewing as required. Implementation Philosophy In the fall of 1960 the first steps were taken toward the eventual operational DODDAC. In order to accelerate the establishment of the 20/ Computers - Key to Total Systems Control INPUT DATA BASE UPDATING WEATHER INFORMATION NUCLEAR DETONATIONS DAMAGE REPORTS OUTPUT COMPUTATION a .. BLAST DAMAGE FALLOUT COMPUTATIONS FATALITIES & CASUALTIES FILE MAINTENANCE EXECUTIVE CONTROL a HARD COpy CONSOLE DISPLAY GROUP DISPLAY MAN-MACHINE INPUT DATA OUTPUT REQUESTS - .- Figure 2. Data System Functions necessary capability, a n implementation philosophy was adopted which saw the following three activities in parallel development: 1. A semi -automatic manual system providing an immediate and basic capability. 2. A Developmental Center containing a simplex of equipments with which to study and test the operational DODDAC environment and requirements. This functional unit also represents a level of sophistication that fulfills many of the requirements set forth by the Department of Defense. 3. Develop a design of future systems, based on a better understanding of the problems and experience gained in operating the first two systems. This plan allowed an early basic capability while recognizing that Significant technology must evolve gradually in areas of computers, programming, and displays, with the passage of many months. It was recognized that starting immediately toward a full blown operational system would have been costly and inefficient; the plan allowed the maximum contribution to damage assessment required by national defense ,consistent with reasonable expenditures. In this paper we consider aspects of the Developmental Center which is now equipped with data processing and display faci1iti~.s. This system was integrated and established through the combined participation of military and industrial groups. As shown in Figure 3, the Project Management and system design was supplied by DASA which contracted the computer subsystem to Control Data Corporation, the programming data processing tasks to System Development Corporation, and the man/machine communication and display subsystem to Thompson Ramo Wooldridge Inc. In the fall, 1961, the Developmental Center was equipped with the data handling equipments. The Developmental Center satisfies most of the requirements listed above. It is implemented wit h a large-scale multicomputer system and a modern man/machine communication and display system which will provide the basis for future developments of operational systems. Data System Concept The DASA-DODDAC's function is to provide command elements with appropriate DODDAC - An Integrated System for Data Processing, Interrogation, and Display / 21 DASA DODDAC PROJECT MANAGEMENT SYSTEM DESIGN CONTROL DATA CORPORATION COMPUTER SUBSYSTEM Figure 3. RAMO-WOOLDRIDGE SYSTEM DEVELOPMENT CORPORATION DISPLAY SUBSYSTEM DISPLAY INTEGRATION PROGRAMMING MODELLING ASSISTANCE DASA--DODDAC - Contractor Team information in a military environment with little delay. These requirements were translated into a data system having the following capabilities and attributes: 1. Parallel processing 2. Ease of communication interface 3. Flexibility of organization 4. Growth potential 5. High speed 6. Large, ranpom access storage The operational tasks were analyzed and are shown in Figure 4. Each of these areas is a functionally independent block requiring periodic intercommunication. Computer Subsystem The Control Data Corporation 1604 Satellite System was selected by DASA as the computer subsystem for the Developmental Center. This multi-computer system possesses attributes which meet the data processing requirements stated above. The requirement for a large, random access storage device was answered by the addition of a Bryant-320 Disc File to the CDC equipment. This unit is able to store over 30 million characters, and has a character transfer rate which ranges from 20 KC to 62.5 KC. The complete system includes: 1 1604 Computer 2 160 Computers 3 1607 Tape/160 Computer controls 12 Magnetic tapes (Ampex FR- 307, character transfer rate 30 KC) 1 Bryant 320 Disc File 1 1610 card reader, punch adapter 1 Card Reader (IBM 088) 1 Card Punch (IBM 523) 1 1606 Printer Adapter 1 High Speed Printer (Analex, 1000 lines per minute) Each of the three computers has an associated Ferranti paper tape reader and teletype tape and punch. Also, a Soraban - modified IBM electric typewriter is included with the 1604 and one of the 160 computers. The organization and interrelationships of the system are depicted in Figure 5. In this configuration one of the CDC 160 computers is designated to the input/output area, providing the necessary buffer and proceSSing capabilities for data entry and hard copy output. This computer also has the function 22 / Computers - Key to Total Systems Control COMPUTATIONS AND PROCESSING ANALYTICAL CALCULATIONS DATA RETRIEVAL OUTPUT SYNTHESIS CONTROL PROCESSING MAN/MACHINE COMMUNICATION INPUT /OUTPUT DATA BASE UPDATING OPERATIONAL INPUT DATA STANDARD REPORTS OUTPUT REQUESTS Figure 4. GROUP DISPLAYS INTERROGATION PANEL CONTROl ACTIONS OUTPUT REQUEST DASA--DODDAC Data System Functions usually associated with off-line tape to card, card to tape and tape to printer operations. The second CDC 160 is devoted to a timeshared operation between the three units electrically tied to itself. This include's the 1604, a communication console, and the large screen display. The latter items will be further discussed in the next section. Finally, the 1604 computer performs the analytical and retrieval tasks. This includes the computation of the damage assessment process and the output processing. The scheduling and direction of data flow is under the executive control of a master program operating in the 1604. It is significant that this system is completely integrated as an on-line functional unit. In this sense it is unique in adapting the satellite computers for both "off-line" type operations and as computer partners in support of the real-time processing operation. An interesting design problem was faced in the assignment of data transfer channels to the various devices connected to the 1604. Since the computer is equipped with 3 input and 3 output buffer channels and a high speed transfer channel, a large degree of flexibility is afforded. In the DODDAC, the 1604 has direct connection to the following: a. Console typewriter b. Console punch tape punch c. Console Punch tape reader d. Three 1607 tape systems e. Printer control unit f. Card reader/punch control unit ~. Disc file Figure 6 indicates the channel assignments as established for the 1604. The rationale behind this selection was guided by the following principles: 1. Peak performance satisfaction during real-time operation 2. Accommodate individual data transfer rates 3. Avoid time sharing of high duty cycle devices 4. Provide alternate paths for reliability and back up. Of the nine devices connected to the 1604, the priorityequipments are the disc file, the 1607 associated with the display subsystem and the 1607 servicing the input/output. Accordingly, each of these units is assigned to separate buffer channel pairs. Secondary assignments are now made for the remaining devices. The typewriter, tape reader and card punch are all associated with the input/output channel. This has two advantages: 1. Provides high priority I/O capability for short bursts which circumvent normal queuing procedures. 2. Gives alternate paths in the event of a 1607 or a 160 failure. The remaining element requiring assignment is the third 1607. This is tied to the channel used by the disc since these two elements were usually not to be called upon at the same time. The associated tape units also provide DODDAC - An Integrated System for Data Processing, Interrogation, and Display / 23 1607 TAPE SYSTEM 1. COMPLETE DATA BASE 2. SYSTEM TAPE 3. REPORT TAPE 1607 TAPE SYSTEM 1. PRINT·OUT BUFFER 160 COMPUTER 1. 1604 COMMUNICATION 2. HARD COPY OUTPUT 3. INPUT CARD PROCESSING 1604 COMPUTER 1. ANALYTICAL COMPUTATIONS 2. DATA RETRIEVAL 3. OUTPUT SYNTHESIS 4. EXECUTIVE CONTROL DISC FILE 1. DATA BASE SUBSET 2. PROGRAMS AND TABLES 3. TEMPORARY STORAGE INPUT /OUTPUT DEVICES Figure 5. 1607 TAPE SYSTEM 1. SYSTEM TAPE 2. TABlES 3. TEMPORARY STORAGE 160 COMPUTER 1. 1604 COMMUNICATION 2. DISPLAY OUTPUT 3. INTERROGATION INTER· PRETATION AND CONTROL DISPLAY SUBSYSTEM DSAS--DODDAC Computer Subsystem Organization a potential backing to the disc since both devices contain the data base. tive program controls the additional channel activations whenever the disc is accessed. The assignments reflected above provide a clear channel for the interrogations and outputs serviced by the 160 computer attached to the display subsystem. Man/Machine Communication and Display Subsystem A design decision was made in attaching the disc file to the buffer channel instead of the high speed transfer channel. The disc information transfer rate falls between the transfer rates of the two types of input/output channels. Connection to the high speed channel would serve to slow down the effective computing capacity of the central processing; connection to the buffer channel would limit the servicing capability to the competing auxiliary devices whenever computer and data transfer is at a saturation point. The latter alternative was chosen and the execu- The real-time aspect of the DODDAC requires man to dynamically interact with the system to obtain timely information concerning the status of internal information flow and data file content as they reflect the "outside world." This quest for facts is motivated by the need to make decisions which are time dependent. In order to facilitate decision making on the part of DODDAC consumers it is necessary to provide adequate tools for summarizing and presenting data and methods by which interrogation can be readily processed. These requirements are met by the Computer Communication Console (CCC) and an 24 / Computers - Key to Total Systems Control -- I I 1607 TAPE SYSTEM DISC FILE I I 1604 COMPUTER 1610 CARD READER/PUNCH CONTROL - .~ (3) - 1607 TAPE SYSTEM INPUT/OUTPUT (6) (4) (2)1 ELECTRIC TYPEWRITER , 1607 TAPE SYSTEM (DISPLAY) I - (5) .~ (1) 1606 PRINTER CONTROL PAPER TAPE PUNCH PAPER TAPE READER ~ Figure 6. Buffer Channel Assignment in the DODDAC on-line group display supplied by RamoWooldridge. These items form the basis of the DODDAC Presentation Room. The CCC is a single IDperator device (see Figure 7) providing the ability to initiate interrogation and system control via a keyboard, or to display system status by use of a CRT read out. The group display generates film chips which are automatically delivered to a projector for large screen, full color viewing. The CCC is a general purpose console facilitating communication between a human analyst/operator and a computer system in the performance of: Data entry Data analysis Information retrieval Display System control. These features are summarized as follows: 1. Control buttons on a console keyboard 2. Status lights for indicating system action 3. Alpha/numeric keys for data entry 4. CRT displays for alpha/numeric displays 5. Removable keyboard overlay for changing the probl,em orientation of the console. 6. Complete program control of all console keys, lights and displays. Of particular significance are the CRT and the overlay. The electronic display permits the presentation of up to 720 symbols out of a font of 62 alpha/numeric and graphic symbols. Options are available for either outputting a full display of 720 characters or any number of symbols at selected grid points of the 20 row by 36 column display matrix. The refresh rate is under program control and is usually performed at 45 times per second in order to avoid flicker. The overlay (see Figure 8) is the feature which gives the console application flexibility and user oriented characteristics. It consists of a plastic form which fits over a bank of 30 buttons designated as the Process Step Keys. When in place, the overlay supplies an associated labor for each button Thus, by properly engraving the overlay, the Process Step Keys become functionally tied to a particular job or operation. There are 63 overlays possible, each one being identified to the computer, when in keyboard pOSition, by a code generated by one to six prongs present on the underside of the plastic. Each overlay typically will have associated computer programs which are activated when buttons are pressed. Removal of an overlay and insertion of another effec- DODDAC - An Integrated System for Data Processing, Interrogation, and Display / 25 tively changes the orientation of both the console and the computer. Each label and button of the Process Step Keys have associated illuminators whose state is under program control. These lights are utilized to indicate to the console operator current operating position by lighting the proper button, and next allowable steps by lighting selected labels. Sequential illumination of these lights, as a function of buttons pressed, serve to guide the operator through a particular process. Using these keys together with the data entry and CRT response capability, the console can outline and lead the operator in carrying out specific operations. The on-line group display system produces photographic transparencies for immediate full color projection. The slide is a single, composite 70 mm film chip containing three images formed by a color separation process. These images are projected through the lenses of a special projector and recombined to give the color presentation. The slide content represents a combination of previously prepared backgrounds (such as maps, charts and photographs) with timely, computergenerated annotations. The attributes of this display system are: 1. SPEED: The time lapse between the generating of annotation data and the Figure 7. Computer Communications Console 26 / Computers - Key to Total Systems Control OODDAC - An Integrated System for Data Processing, Interrogation, and Display / 27 projecting of the typical display chip is 30 to 60 seconds. 2. INFORMATION CLARITY AND DENSITY: The annotations appear as highly legible alphanumeric characters, lines, curves, or special symbols in any of eight fully saturated colors (including black and white); the background colors (full range) are equally well saturated. Background and annotations can thus be extensively color- coded. 3. INFORMATION PERMANENCE AND ACCESSIBILITY: Display chips constitute a permanent record easy to store and retrieve; individual chips are automatically selected from random access, 200-chip file magazines. 4. AUTOMATIC OPERATION: The film chip generation, processing and delivery is under complete program control. These advantages are made possible by the use of various special techniques. The high overall response time is due largely to the high speed of photographic developing (1-1/2 seconds) resulting from a combination of two relatively new phptographic techniques. One is that of color separation to create a color image from black and white film. The second contribution came from the use of Kalvatone film, which is a special type of black and white film that can be developed by heat instead of chemicals. The legibility and color saturation of the displays derives from a "masking" technique that enables the annotations to be inserted into rather than superimposed onto the background so as to eliminate color mixing and weakening. Convenient storage and retrieval derives from the unit record film chip. This slide can be projected on large screens or individual consoles. Slides can be duplicated and used for multiple projections or processed to standard color transparencies for dissemination or hard copy printing. The equipment used to create the full color displays consists of four main units: 1. The Control Programmer, which receives display data and instructions from the computer and stores them temporarily for subsequent use by the Display Generator. 2. The Display Generator, which produces the actual display chip by obtaining the necessary instructions from the Control Programmer. According to these instructions, a display chip is sequentially exposed with particular sets of annotations, in given colors, and inserted in the desired space of the background specified. (This background can be any of 200 stored in the Display Generator's random access file.) It then develops the chip and, if requested, makes duplicates before passing it on. 3. The Monitor/Analysis Console, which is an operational viewing station used to perform quality control check on the production chips and maintenance control on the entire system. 4. The Display Projector (or projectors) receives finished chips from the Display Generator -and projects them for individual or group viewing. In the DODDAC these communication and display devices are electrically tied to the CDC Satellite System via one of the 160 computers. The relevant parts of this subsystem are shown in Figure 9. The 160 computer provides a satisfactory interface and is time shared between the following competing tasks: 1. refreshing of CCC's CRT display 2. control of CCC illuminators 3. monitoring of CCC output register 4. monitoring of 1604 communication 5. data output to the control programmer 6. message interpretation and composition 7. display subsystem control. The display subsystem, however, entails more than the connection and operation of these equipments. The organization of data within the computer, the programming concerned with the retrieval of this information and the techniques employed in the requesting of data, are all integral parts of the man/ machine communication. Because of the versatility of this display subsystem, the user is not restricted to a few standard displays from which he must deduce all the information required in the numerous situations he will encounter. Rather, he may request information for presentation in such a fashion that each display is tailored to the specific problem which exists at the time. Extraneous information is deleted from any display, leaving only that data which is pertinent to the situation at hand. Accordingly, a great deal of flexibility is desired in making output requests. The CCC N 00 .......... (j o S 't:I a ([) ~ 00 COMPUTER COMMUNICATION CONSOLE PROJECTOR ~ ([) ~ ~ o t-3 g. ..... SI' (Jl ~ 00 ~ ([) S DATA PROCESSOR 00 (j o C.D.C.-160 a ~ o ..... TAPE READER CONTROL PROGRAMMER DISPLAY GENERATOR ~_~ONITOR -&-- ANALYSIS CONSOLE VIEW - - - - - - SLIDE PATH ELECTRICAL CONNECTION Figure 9. Full Color System Diagram ='J DODDAC - An Integrated System for Data Processing, Interrogation, and Display / 29 and the group display serve as the input and output elements for this process. In fact, the system user completes an information flow loop when he wishes to obtain data from the system as a result of viewing an output. This information flow is shown in Figure 10. The output request overlay is instrumental in performing the interrogation. A suggestive implementation of such an overlay is given in Figure 11. After pressing the start button and registering the overlay to the ;computer, label lights are sequenced as a function of pressing each button. This sequencing is demonstrated in Figure 12. Pressing anyone of the keys will in addition to setting up this sequencing, also cause a CRT display to appear. These displays will generally be of two types. One allows the operator to make multiple choices of category items or alternatives. A second type will require data parameter inputs as specified in a form presented to the operator. In all cases, the parameters entered serve to set limits for the data retrieval and output processing programs. DASA DODDAC Status and Developments The integration of equipment, computer programs and man was initiated in the fall of 1961. In addition to having operational stature, the installation will be used to test the adequacy of damage assessment models, output displays, personnel requirements and general system design. Of particular concern is the establishment of communication interfaces and data input techniques. Whereas the Developmental Center is located at the Pentagon, plans have been formulated for eventual DODDAC operation in other appropriate military environments. One of these is already installed and operating: the semi -automatic system at the Alternate J oint Communication Center the hub of which is an augmented IBM 1401 system. As stated previously, we believe the Developmental Center System to be among the most modern large-scale data systems for real-time. The experience in using the system in the Center will add greatly to the design of future DODDAC systems which are responsive to the considerable requirements of the military mission. e,..) o INFORMATION PROCESSING "o DATA FORMATTING 10 INFORMATION RETRIEVAL (') 8 a CD QUEUE CONTROL ~ til ~ CD CDC-l604 ~ ~ o t-3 o ~ DISFLAY COMMANDS SYSTEM CONTROL MESSAGE DECODING MESSAGE COMPOSITION t t Il CDC-160 $Il ...... DISPLAY DATA CONTROL RESPONSE 00 ~ til ~ CD ~ DISPLAY FORMAT COMPOSITION DISPLAY OUTPUT BUFFERING 8til (') o a ~ STATUS INDICATION KEYBOARD ENTRY 4 I I tI CRT REGENERATION ILLUMINATOR CONTROL AUTOMATIC COLOR CHIP GENERATION ~ It o ...... STATUS INDICATION R-W COMPUTER COMMUNICATION CONSOLE R-W FULL COLOR GROUP DISPLAY DATA ENTRY SUMMARY SITUATION DATA ANALYSIS TABULAR INFORMATION RETRIEVAL GRAPHICAL DISPLAY SPECIFICATION GEOGRAPHICAL DISPLAY Figure 10. DODDAC Display Data Flow START SElECT CATEGORY SELECT STRIKE DATA SELECT POLITICAL LEVELS SELECT GEOGRAPHIC LEVELS SELECT OWNER [J D [J SELECT OUTPUT CONTENT SELECT OUTPUT MEDIA SELECT OUTPUT FORMAT [J D D I [J [J [J [J [J D INSTAL LATIONS FIXED FACILITIES EQUIP· MENT SUPPLIES PERSONNEL [] D D [J D [J OUTPUT REQUEST PRINTER CRT COLOR CHIP TABULAR GEOGRAPHIC GRAPHIC [J [J [J [] TOTALS DEGRADED RESIDUAL DOSAGE c:J [] I END G G G [:J [J G - t; o t; t; ~ ~ ~ t"+- (t) aq "'i ~ (t) 0Ul '< 00 t"+- (t) :3 I-+) o "'i t; ~ ~ "'d "'i o ~ (t) 00 00 1-'0 ::s aq ~ t"+- (t) "'i "'i o aq ~ 1-'0 o ::s § 0- t; 1-'0 Figure 11. Process Step Key Overlay for Output Requests 00 "C ...... ~ '< ............ ~ ~ C..:> ~ ............. (') o SELECT STRIKE DATA ~ f"'t- (t) ~ Ul ~ (t) ~ f"'t- o ~ SELECT POLITICAL LEVELS SELECT GEOGRAPHIC LEVELS SELECT OWNER o f"'t~ ...... rn ~ Ul f"'t- (t) 8Ul (') o ::s f"'t~ o ...... COLOR CHIP Figure 12. Sequence in Making Request for Date: PROJECT MERCURY REAL-TIME COMPUTATIONAL AND DATA-FLOW SYSTEM A. The Role of Digital Computers in Proiect Mercuryl Saul 1. Gass International Business Machines Corporation Federal Systems Division Washington, D. C. Introduction enables the NASA flight controllers to make a GO or NO-GO decision during launch and indicates when the retro-rockets must be fired to safely bring the spacecraft down. In addition, an array of other orbital, location and time elements are displayed. An IBM 709 simplex computing system, which is located at the Bermuda Control Center, is used in a similar fashion to aid the Bermuda flight controllers to back-up the Cape Canaveral flight controllers. The computers at both locations are used to generate simulation techniques for both non-real-time and real-time s i m u I at ion. These simulation procedures enable us to efficiently checkout the computer programming system and are also used in the training of the personnel responsible for making certain critical decisions. As the Proj ect Mercury range is truly a world-wide tracking system, it becomes imperative to have quick and accurate means of determining during a countdown what elements of the system are able to support a mission. A computer oriented procedure-CADFISS(Qomputer and ~ata .flow Integrated §.ub.§ystem) has been developed which transmits requests for specified information to the sites, receives and analyzes replies from the sites and reports on the status of each element of the data flow subsystem. CADFISS is now a part of the Project Mercury countdown procedure. Project Mercury (the man-in-space program of the National Aeronautics and Space Administration) has as its objectives: (1) the placing of a manned spacecraft in orbital flight around the earth; (2) the investigation of man's performance capabilities and ability to survive in a true space environment; and (3) the recovery of the spacecraft and man safely. Ad vance communications, guidance, computer, display and other subsystems have been integrated into the completed Project Mercury system. This paper will discuss and review the use of digital computers as an integral part of the real-time decision-making complex. Computers are used throughout the Project Mercury mission to process observations made in the launch, orbit and re-entry phases and to supply a continuous, up -to -date record of the non-environmental status of the spacecraft. A series of processing programs which are united by a program monitor enable duplexed IBM 7090 computers at the Goddard Space Flight Center, Greenbelt, Maryland, to receive inputs from radars and computers at Cape Canaveral (during launch) and radars from the world-wide tracking system (during orbit and re-entry). The outputs of the system are transmitted to the Mercury Control Center at Cape Canaveral. This information IThis paper is a summary of the work accomplished by the IBM Project Mercury staff. It represents the efforts of a highly skilled team of programmers, m.athematicians, engineers and technical writers. 33 34 / Computers - Key to Total Systems Control In order to emphasize the reliance of the Project Mercury mission on digital computers we shall first revfew the main aspects of a Mercury orbital mission (Figure 1). A typical launchphase is characterized by a set of discrete telemetry signals which are associated with corresponding physical functions of the booster and the spacecraft. For the purposes of this discussion, a successful launch phase is initiated by a liftoff signal, progresses through the booster engine cutoff and its detachment (staging), the separation of the escape tower and its rockets, the shutting down of the sustainer engine (SECO), the separation of the spacecraft, and the firing of three posi-grade rockets. This phase lasts approximately five minutes. Once in the orbital phase, the spacecraft will be allowed to circle the earth. three times, after which three retro-rockets will be fired. This will cause the spacecraft to enter the re-entry phase and impact in a deSignated recovery area. Since emergency conditions may arise after the liftoff of the rocket, a number of escape procedures have been incorporated. The abort before staging is accomplished by the firing of the escape rockets (which lifts the spacecraft off the rocket so that within one second it is 250 feet away); while the abort after staging is done by the separation of the capsule and the normal sequence of firing the retro-rockets. Once in orbit, the spacecraft will pass over the world-wide tracking and ground instrumentation system. The locations of the major radar sites and the path of a nominal three orbit mission is shown in Figure 2. It is a function of the computers at the Goddard Space Flight Center and Bermuda to recognize all of these phases and associated telemetry signals and to compute in real-time a variety of traj ectory, present position, a c qui sit ion messages, impact and other decision-making elements throughout the length of a mission. .. . A NORMAL MISSION INTO ORBIT RECOVERY LAUNCH MISSION PHASES Figure 1 The Role of Digital Computers in Project Mercury / 35 ~. ",.. TRACKING AND GROUND INSTRUMENTATION SYSTEM Figure 2 The Data Flow Subsystem 2 The flow of data from the extremities of the world-wide tracking and ground instrumentation system to the computers and the Mercury Control Center is shown schematically in Figure 3. The link between the computers and this external data flow is ~ccom plished by means of a Data Communications Channel (DCC), which is described in the paper by R. Hoffman and M. Scott, "The Mercury Programming System." During the launch phase of a mission the data sources feeding the Goddard 7090's are as follows: Atlas-Guidance Computer This special purpose computer, operating in conjunction with the radar and telemetry data received from the launch vehicle, tracks a beacon in the vehicle, checks its flight trajectory and generates the commands necessary to achieve optimum launch and insertion 2The equipment features are discussed in detail in the paper by Hamlin and Peavey, I'M~rcury Launch Monitor Subsystem." performance. As part of the launch phase guidance system, it plays an extremely critical role in Mercury mission launch sequence monitoring and control. The system is equipped to track the launch vehicle, not the capsule, therefore, it determines mission flight and speed profiles onlyuntil a few seconds after spacecraft separation occurs. During launch the computer converts raw tracking values into computed position and velocity vectors (geocentric inertial coordinate system redefined in time at each processing cycle) describing the launch vehicle's trajectory. These quantities, and time-oftransmission notices, are sent continually in real-time (one observation each 1/2 second) over two high-speed 1000 bits per second data circuits to the Goddard Space Flight Center computers, where they are processed to obtain pertinent information for display and mission control purposes. Certain values derived from capsule and vehicle telemetry signals, and from other sources, are added to the tracking message to Goddard by timemultiplexing them onto the high-speed lines. These quantities, called discretes, are contained in a message word which indicates the status of 'mission subphases (liftoff, booster 36 / Computers - Key to Total Systems Control WORLD WIDE RADAR T / M TRACKING RANGE AMR RADARS I I I I I I I I I I I I I I I TRACKING DATA ~----------~----- I IBM 7090 ...-_ _ _2_H~1 IMPACT PREDICTOR !, U-P-L-E-X....lE~D------, • ...-----D...... SPEED LINES 2 HI, ; SPEED LINES ----4-H---(1: SPEED LINES I; IBM 7090 'I' ATLAS SYSTEM RAD~ AND TIM ATLAS GUIDANCE COMPUTER ACQUISITION DATA .. I ACQ. SMOOTH DATA RADAR DATA - .... COMPUTERS RAW RADAR DATA CODDARD .. ....... .. ~----------------'or"' "I'" MERCURY CONTROL CENTER DISPLAYS 1 IBM 709 COMPUTER BERMUDA 1 1 1 BERMUDA RADARS AND TIM CAPE CANAVERAL LAUNCH SUB-SYSTEM LOGIC Figure 3 engine cutoff, sustainer engine cutoff) and which includes data flags as indicators of the quality and status of the calculations. A checksum indication is transmitted to validate message accuracy and data bit totals. Impact Predictor 7090 This IBM 7090 computer, located in the IP 7090 building at Cape Canaveral, utilizes Azusa beacon and Cape Canaveral, Grand Bahama Island or San Salvador Island raw radar inputs of range, azimuth, elevation, and time of observation. The IP 7090 furnishes processed data from either the Azusa or AN/FPS-16 tracking systems, depending upon which data is chosen during the launchphase. From this real-time processing of raw radar quantities the IP computer produces position and velocity vectors describing the trajectory of the launch vehicle. Based on geocentric inertial coordinates, the position and velocity rates are redefined at each computing interval, time tagged with range time and identified by site and radar. IP 7090 messages received every 0.4 seconds by the Goddard computers contain calculated position and velocity vectors, telemetry information from both the launch vehicle and the spacecraft, and checksum parity notations to validate transmission accuracy. These frames are also transmitted at a rate of 1000 bits per second to Goddard over duplex communication lines. Radars Radar facilities of the pre-existing Cape Canaveral downrange complex serve as prime sources of data during the early stages of a Mercury mission. During launch, each site takes range, azimuth and elevation measurements on the launch vehicle/spacecraft, referenced to that particular radar installation. These values are sent by a high-speed The Role of Digital Computers in Project Mercury / 37 real-time data transmission system to the IP 7090 (Impact Predictor 7090) building at Cape Canaveral where they are accepted as inputs for processing by the IP 7090 computer. As noted above, the computer- smoothed position/ time/velocity coordinates are interleaved with telemetry information, a time tag and a site identification note onto the IP 7090 highspeed message to the Goddard Center. In addition to being routed to the IP 7090 for processing and subsequent retransmission to Goddard, raw radar data from the supporting downrange stations can also be manually selected and transmitted at a ten-messagesper-second rate directly to the Goddard 7090's. In this case, raw radar quantities rather than smoothed coordinates are identified by site and combined with telemetry data. The procedure is exactly the same as for impact predictor-processed data; the IP 7090 is merely bypassed in the'latter case. If AN/FPS-16 raw radar is selected instead of IP 7090 information, it is accepted, edited and smoothed by the Goddard 7090'sto maintain the overall computing cycle. Telemetry Telemetry (TM) signals from the launch pad, the launch vehicle and the spacecraft indicate the status of mission subphases and certain critical events which happen or fail to happen, during a Mercury flight. These Signals, picked up by telemetry receivers and converted to forms useful for display interpretation and as inputs to the Goddard IBM 7090 computers are extremely important indicatros of events and conditions regarding the spacecraft and the vehicle. Real-time telemetry quantities continuously transmitted directly to the Goddard IBM 7090 computers include spacecraft clock elapsed time and retrofire mechanism-setting readings, liftoff, staging, escape tower released from sustainer, sustainer engine cutoff and one, two or three posigrade rockets fired. These quantities combine to a total of 72 bits of telemetry data and they are packed in each frame of data (Atlas-Guidance, IP 7090, or raw radar). The 72 bits include a parity bit and the transmission in triplicate of critical signals (e.g., liftoff signal). During launch each observation (Le., a frame of data from any source) made at Cape Canaveral is transmitted to Goddard, processed by the Goddard computers, and the results displayed back at the Cape Canaveral control center in approximately one second. Once the spacecraft is inserted into its orbit the data to the Goddard computers is developed by the radars of the world-wide tracking network. During each pass of the capsule over a radar site, range, azimuth, elevation and time of observation readings are taken for as long as the spacecraft remains within range. The information from the radar is processed through conversion equipment at the site and transformed into a teletype format for transmission to Goddard at a rate of six (6) characters per second into the computer. A similar data flow is maintained during the re-entry phase of the flight. A means of manually inserted critical data signals is also provided. By paper tape such information as exact time of liftoff (which is determined at Cape Canaveral) and the exact time of retro-rocket firing (which is determined by telemetry signals originating in the spacecraft) can be fed into the Goddard programs. The Goddard duplex 7090 computing system is shown in Figure 4. The data flow into the Bermuda 709 computer is shown in Figure 5. The major task of the Bermuda programs is the calculating of position and velocity values during the flight's launch, insertion and initial orbital phases. This is accomplished by the analysis of data generated by both AN/FPS-16 and Ver lort radars which are fed directly into core memory by a DCC. Each radar maintains a flow of ten observations per second and the observations are combined with telemetry Signals which originate in the spacecraft. Manual insertion of important data into the Bermuda computer is accomplished by means of a paper tape reader. The Bermuda program also smooths the radar observations of the spacecraft during launch and transmits these readings directly to the Goddard computers via teletype. Hence, the Bermuda computer also acts like a "refined" radar site as well as being a tool for supplying a GO or NO-GO answer to the question of orbital achievement of the spacecraft. The Goddard Computer Programs In all phases of the Mercury mission it is extremely vital that the large amounts and many forms of necessary calculations be performed with exact precision, and the data made available almost instantaneously. The 38 / Computers - Key to Total Systems Control GODDARD COMPLEX ~.-.-.-.-.-.-.-.-.~ i i j IBM 7090 r---------. COMPUTER A f-----------, '-"'-"'-'" ~ ~------~------~- i i i ! i i REMOTE } TRACKING STATIONS ! ,r j '-'-'--i CAPE CANAVERAL TRACKING COMPUTERS t i I I I I I I I I OUTPUT i j _J SWITCH "'1 I1 -- -j-- +t ! I I I !I i, I I REMOTE r+TRACKING : STATIONS I I I , i it ____________ I 1..... -.-t.-.-._._.-.-..... ~ IBM 7090 COMPUTER B I I I I ___________ JI _ •.. _ ••• _ .•• ....,j i ! MERCURY CONTROL i....,.CENTER DISPLAYS CAPE CANAVERAL ITELETYPEl IHIGH SPEED DATAl --- --- - I I POSITIONS and CONDITIONS -"'-"'-"'- DISPLAY -.-.-.-.-.- POSITIONS and CONDITIONS ------- ACQUISITION FiguI'e 4 specific computational approach taken is of critical importance to the safety of the astronaut and the success of the project. The realtime computer requirements, the stringent accuracy and :r:eliability necessary make the proj ect one of the most demanding computer problems ever undertaken. The placing of a manned spacecraft into orbit and the successful re-entry and safe recovery of the vehicle and its human occupant poses-under normal or emergency conditions-many severe computational problems. For example, in an extremely short period after the capsule is separated from the missile the computers must furnish data for evaluating whether or not the mission is to be allowed to continue. Since the time required for the spacecraft to perform a postinsertion 180 -degree attitude rotation is necessarily limited, and because of the obvious desirability of a water landing following high level abort, the initial orbital parameters must be calculated extremely rapidly, and as much data as possible used to increase the reliability of computation. As described above, Project Mercury is equipped with an array of interconnecting computational complexes, d a t a collecting equipment, special supporting equipment and display devices to accomplish mission computing functions in the most complete, efficient manner possible. The core of the computing system is the duplexed Goddard IBM 7090 computer -faCility, com pie men ted by the Bermuda station's IBM 709 computer. The Goddard computers and special input/ output equipment are duplexed to promote maximum reliability, validity of information and mission safety. Both computers accept the same input data and perform the same computations. Output status displays at Goddard enable the performance of each 7090 to be monitored. On the basis of this comparative information the output of one of the The Role of Digital Computers in Project Mercury / 39 BERMUDA COMPLEX RADAR , -- -- RECEIVER RECORDER/ PLAYBACK . TELEMETRY l _____ _ : I I I '---------., I I 1...._ . . . . I ---------- ... ~ ~ ~ ~ IBM 709 PRINTER .......----11 -~ PAPER TAPE ~ t4====-==;.....--~ LOCAL DISPLAL PLOT BOARD FLIGHT DYN. OFF. CON. OUTPUT STATUS CON. TELETYPE HIGH SPEED --------------- POSITION _.-.-.-.-.- POSITION -------- CONDITION -=========== CONDITION ---DISPLAY -==-====- ACQUISITION Figure 5 ~ I 40 / Computers - Key to Total Systems Control two computers is selected for transmission to the Mercury Control Center and radar sites. In brief, Goddard computers' basic Mercury mission responsibilities are to: perform launch calculations during capsule insertion and advise the Mercury Control Center of capsule dynamics; compute acquisition data, orbit parameters and capsule present position, future position and life-time; compute and transmit to the control center retrofire clock information and compute and transmit to the control center and recovery teams the probable impact point and impact time; monitor , quantitatively, radar and computer performance and advise the control center of deviations from acceptable performance. There are three generally distinct computational phases: launch (powered flight), orbit, and re-entry (descent). The programming system for all phases has been integrated into one automatically sequenced package. Upon receipt of liftoff signal over the high-speed communications the programs are activated (prior to this they are in the passive, but vigilant mode) and the launch computation begins. If the computer recommends GO and if the Cape Canaveral flight controller has no external reasons (e.g. , aeromedical data) to abort the mission, the launch switch is thrown and a ,discrete signal is sent to the computers. The 'orbit program is then brought into the computer and this program is given the insertion conditions calculated by the launch program. In a similar fashion, upon receipt of manual (hence, positive) insertion of actual retrofire time, the program automatically shifts to the re-entry mode. As indicated below, different outputs are required for each phase. The abort during launch or a NO-GO decision by the flight controller after power-cutoff is also signaled by appropriate telemetry discretes. The phase of the computing program is then automatically altered. The data processing functions undertaken at Goddard during each of the phases 'are as follows: Launch The primary function of the Goddard computers during this first flight phase is to determine the GO NO-GO recommendation to continue the mission. The IBM 7090 f S decide whether or not a successful orbit has been attained at the time of insertion into orbit by computing the projected orbit lifetime; pertinent trajectory parameters are presented so launch status may be monitored for indications of a possible impending abort. In the event of a launch abort, the computers determine the times retrofire must occur for the capsule to land in one of the several designated recovery areas. If the retrorockets are fired, the computers calculate spacecraft traj ectory and the resulting impact point. Refined impact point data for several abort procedures is computed. During the launch phase most data inputs to the Goddard IBM 7090' s originate at the Cape Canaveral launch site. Launch data is, essentially, position and velocity information in forms not useful for evaluation at the control center. The Goddard computers operate on launch data in real-time, convert it into forms more suitable for decision-making and transmit this information back to the control center. Orbit Calculating the exact time to fire the retrorockets to land the spacecraft at the desired impact point is the major contribution which the IBM 7090 computers make in the orbit phase. The times at which the retrofire sequence must be initiated for a landing in a prescribed normal-mission recovery area, for re-entry at the end of any given orbit, and for landing at the speCified emergency recovery points along the spacecraft's path are recomputed by the 7090' s after each new set of orbit parameters is established. In the orbital phase, data is collected and dispatched from the world-wide network of radar sites as the spacecraft passes over each station. Position/time quantities gathered from these radars are sent almost instantaneously to the computing and communications center at Goddard. In addition,' to the primary purpose of determining retrofiring time, this position data is used at Goddard to refine orbit parameters from the previous set of orbit parameters (and, at initial entry into orbit, from those parameters estimated during launch), thus enabling spacecraft position to be accurately predicted for further radar acquisition. Acquisition messages are sent to each site from Goddard prior to the spacecraft's next pass over that site. The Role of Digital Computers in Project Mercury / 41 The mathematics of orbital computer processinginvolves solving by numerical methods the formulas derived from the basic Newtonian equations of motion. The numerical methods employed include Cowell's numerical integration for extrapolation and correction of orbital parameters, and the differential correction, conversion and partial coefficient calculation programs. To minimize the effects of radar values from stations whose input data is considered (on the basis of past results) less reliable, each site is weighted accordingly. Re-entry The main purpose of the Goddard IBM 7090 's during re-entry is the all-important computation of impact point. The computers pinpoint the point of spacecraft impact from position/time data received from range stations whose radars follow the spacecraft during this period. Refined impact point information is provided to guide the Mercury recovery effort whenever new radar observations are transmitted to the computers. Re-entry trajectory acquisition data is provided to remote sites from the Goddard center during this phase in the same manner as acquisition information is provided during orbit. The real-time outputs of the Goddard computers are sent directly to a variety of digital and graphical displays at the Cape Canaveral Mercury Control Center. Thefollowing summary of the Goddard computer outputs will give the reader a feeling for the volume of data presented to the flight controllers and the type of information required to maintain a ground-based control center: Plotboard 1 During launch, spacecraft flight path angle versus the ratio of inertial velocity to required velocity is shown. Three different scales marked with appropriate limits are employed as board overlays during launch. The difference between spacecraft radius from the earth versus spacecraft inertial velocity is presented during abort, orbit and re-entry. Plotboard 2 Two plots are presented during the launch period. Spacecraft altitude versus downrange distance is charted on the bottom of the board (this quantity is also displayed in the event of a launch abort); crossrange deviation versus downrange distance is displayed simultaneously on a separate scale on the upper portion of the overlay. Two plots appear during orbital flight. Spacecraft altitude above an oblate earth, as a function of elapsed time, is depicted on the lower part of the board; on the upper portion of the board is displayed the difference between the semi-major axis of the orbit and the average radius of the earth, as a function of elapsed time. Displayed on board 2 during a normal re-entry is spacecraft altitude, as a function of time. Plotboard 3 A variety of parameters is displayed during launch and abort. However, quantities furnished to the plotboard during this phase come directly from the Atlas -Guidance computer. Board 3 displays two plots during orbit. On the lower portion of the board appears longitude of perigee as a function of elapsed time and on the upper portion, eccentricity as a function of elapsed time. This plotboard is not used during re-entry. Plotboard 4 Displays impact point computations made at Goddard during a normal launch and in the event of an aborted launch. The board's overlay is a map of the Atlantic Ocean area showing land and water masses and recovery areas. Plotted during launch are the latitudes and longitudes of impact point assuming that (1) the retrorockets will fire in 30 seconds (minimumdelay) and (2) at 450,000 feet (maximum delay). Board 4 displays two items during orbit: the latitude and longitude of present spacecraft pOSition over the Western hemisphere and the computed impact point for retrofire in 30 seconds. During abort and re-entry, spacecraft present position and the predicted impact point are shown. Wall Map Located on the observers' area of the Mercury Control Center is a large (50 feet long) wall map of the world. It illustrates the locations of all Mercury range stations and the ground track of the capsule. As the Mercury mission progresses, a miniature lighted 42 / Computers - Key to Total Systems Control capsule moves along the track, indicating the actual present position of the spacecraft. A small, moving light ahead of the spacecraft indicates, during abort and re-entry, the latitude and longitude of the refined impact point, or during orbit, impact point if the retrorockets are fired in 30 seconds. Strip Chart A high-speed multichannel (six recording pens) strip chart (also called the Data Quality Monitor) is used at the control center only during the launch phase. The device enables an operator to determine which sets of information are most valid for presentation to Mercury display equipment. The six pens are driven by data from three sources (Goddard processed Atlas-Guidance or IP 7090 data, or Atlas-Guidance direct), each charting two items of information. The displayed quantities are: the difference between flight path angle and nominal flight path angle; the difference between velocity ratio and nominal velocity ratio. Digital Displays Computed information from the Goddard IBM 7090' s is routed at high speed to control center digital displays located variously on the Flight Dynamics Officer's Console, the Retrofire Controller's Console, the Recovery Status Monitor Console and a wall digital display. Digital values are sent to the display register twice per second during the launch phase. To avoid flicker, however, the quantities are updated by the computer only once each second. All digital display messages are transmitted from Goddard at a frequency of 10 per minute during orbit. During reentry, data quantities are routed from Goddard to the Cape at a 20-per-minute rate. Flight Dynamics Officer's Console Six digital displays are located on this important control console. Display 1 indicates during launch and abort the GO NO-GO recommendation 0 f the Goddard computers to continue or abort the mission; Display 2 indicates spacecraft altitude in nautical miles and tenths of nautical miles during the entire mission, from launch to impact; Display 3 indicates flight path angle in degrees, tenths and hundredths of degrees during launch and re-entry, and denotes apogee height in hundredths and tenths of nautical miles during orbit; Display 4 indicates spacecraft inclination angle in degrees and tenths of degrees during launch and orbit; Display 5 indicates orbit lifetime remaining from the time of the last pass over Cape Canaveral; Display 6 indicates the ratio of spacecraft inertial velocity to required velocity during launch. After insertion into orbit, for the remainder of the flight, display 6 indicates actual spacecraft velocity. Retrofire Controller's Console Located on this console are nine digital displays. All time displays are represented in hours, minutes and seconds. Display 1 indicates during abort and orbit the Greenwich Mean·Time (GMT) to retrofire to land in an emergency abort area; Display 2 presents during launch from 20 seconds after staging, the computed GMT to retrofire in the next recovery area, and during abort and orbit, the elapsed capsule time for retrofire to land in the next recovery area; Display 3 indicates during orbit the GMT of retrofire computed for the end of the present orbit; Display 4 indicates during orbit the elapsed spacecraft time for retrofire to land at the end of the present orbit; Display 5 displays during orbit the GMT to retrofire to land in the normal three-orbitmission impact area; Display 6 indicates during orbit the elapsed spacecraft time to retrofire computed for the normal impact area follOwing a three-orbit flight; Display 7 presents during orbit the GMT of retrofire based on the present spacecraft setting, and displays during re-entry the elapsed ground time since retrofire; Display 8 indicates during abort and orbit the incremental spacecraft time for retrofire computed for the next emergency recovery area; Display 9 indicates for the entire mission the number of the orbit, and the presently deSignated recovery area. The Role of Digital Computers in Project Mercury / 43 Recovery Status Monitor Console The digital displays located on this console indicate: the computed GMT of impact in hours and minutes during abort, orbit and reentry; the computed longitude and latitude in degrees and minutes for the abort landing point (during abort), the normal end-ofmission impact point (during orbit) and the refined impact point (during re-entry). Wall Digital Display Displayed in GMT hours, minutes and seconds during the launch and abort phases in the ground time remaining until retrofire. During re-entry this display indicates the ground time remaining until impact. Also presented on the wall display during orbit is the current orbit number. In addition to the displays at the Mercury Control Center, the Goddard computers also drive certain plotboards at Goddard. Each computer is connected to a single plotboard and reproduces one of the plots sent to the Mercury Control Center. Much of this data is, however, printed on-line. A typical printout (edited for space purposes) is shown in Figure 6. The Bermuda Computer Program A secondary computing station to supplement the Goddard/Cape Canaveral complexes is the IBM 709-equipped Bermuda site. The role of Bermuda in the overall computing picture is essentially twofold: Bermuda serves as an extension and backup for the control center, and as an ordinary range station. As a backup to Cape Canaveral, the Bermuda 709 computer is used to determine whether or not the spacecraft has entered an acceptable orbit at insertion; command an early re-entry, if necessary, and verify NORMAL OPERATION HAS BEGUN THE TIME OF LIFT OFF IS (GMT) 07 HRS 06 MINS 44 SECS TOWER SEPARATION SIGNAL HAS BEEN RECEIVED BERMUDS FPS/16 ACQUISITION DATA SENT SECO SIGNAL HAS BEEN RECEIVED CAPSULE SEPARATION SIGNAL HAS BEEN RECEIVED 3 POSIGRADE ROCKETS WERE FIRED 10 POINTS WERE USED TO CALCULATE FINAL GO-NO GO GO IS RECOMMENDED THE TIME OF RETRO-FIRE IS (GMT) 07 HRS 24 MINS 51 SECS VELOCITY USED IN FINAL GO-NO GO IS (FLEET PER SEC) 25660 GAMMA USED +3.6362723E-03 FINAL GO-NO GO (IN DEGREES) BERMUDA VERLORT HAS BEGUN TRANSMISSION GRAND BAHAMA FPS/16 HAS BEGUN TRANSMISSION BERMUDA FPS/16 HAS BEGUN TRANSMISSION ORB IT PHASE HAS BEEN ENTERED Figure 6 44 / Computers - Key to Total Systems Control receipt; and notify the control center and recovery teams of such action .. When instructed to do so by the control center, or if communications with the control center fail or become poor, Bermuda can command an abort, an early re-entry or assume full control of the insertion period. As an ordinary range station Bermuda accepts high-speed radar data into its computer and converts this information into orbital and trajectory parameters. At each orbital passage over Bermuda the IBM 709 computer processes the high-speed radar information and sends smoothed data to the Goddard center. Trajectory parameters acquired by the local radars are used by the Bermuda computer to fulfill the following responsibilities immediately after insertion. Determine if the spacecraft's orbit is acceptable. This is accomplished by determining from the radar data received after insertion whether or not orbit lifetime will exceed one, two or three revolutions; in the event of an abort, determine the times at which the retrorockets must be fired to land the spacecraft in one of the designated recovery areas; determine refined impact pOints for several abortproc~dures; determine orbit characteristics; provide quantities required to drive plotboards and displays at Bermuda; send post-insertion conditions to Goddard. The Bermuda outputs are not as great in volume and types as Goddard. However, they are sufficient enough to enable the flight dynamics officer to recommend a GO or NO-GO. The displays are summarized below. Flight Dynamics Officer's Console A GO- NO-GO recommendation utilized during launch and abort to indicate the present computed status of spacecraft insertion; the Greenwich Mean Time (GMT) to retrofire, in hours, minutes and seconds if an abort is called for; the actual time of retrofire is presented during re-entry; the elapsed capsule time to retrofire, in hours, minutes and seconds during abort and the elapsed spacecraft time since retrofire during re-entry; spacecraft altitude in nautical miles and tenths of nautical miles; flight path angle in degrees, tenths and hundredths of degrees; velocity ratio (inertial velocity/required velocity) to four decimal places; after retrofire, inertial velocity is presented; during abort the incremental change in time of retrofire; the orbit number and next recovery area during abort and re-entry. Plotboard An overlay on the board depicts the Atlantic Ocean and peripheral land areas from Florida to Africa. Real-time information plotted on the overlay includes: Prior to retrofire: latitude and longitude of impact point for immediate retrofire; flight path angle versus velocity ratio. After retrofire: latitude and longitude of spacecraft present position; latitude and longitude of impact point. Monitor Program During a Mercury miSSion, many -functions compete with one another for computer time. At any moment a given computation must be satisfied without sacrificing any others which may be critical at that time. In other words, the computer is required to deliver several competing quantities continuously on rigorous schedules. An output which fails to meet its schedule becomes worthless for real-time applications. Producing a virtually real-time output according to strict schedules is a difficult taskeven if incoming data arrives smoothly, adhering to plan. The nature of Mercury computation in real-time at both Goddard and Bermuda makes it mandatory that computer processing be automatically controlled, with perhaps a limited amount of manual intervention possible, if desired. To solve Mercury data proceSSing problems most reasonable, and to effect the realtime calculations which are vital to a miSSion, the control and coordination of all other programs in Mercury computing is assigned to a Single control program-Monitor. Mercury system operational programs must accomplish three tasks which are all fairly synchronous in time: they must accept input data which arrives on an asynchronous schedule; they must perform certain computations on the input information; and they must provide output quantities at speCified time intervals. To meet these three requirements and ensure a smooth, overall Mercury data processing effort, the Monitor control program "supervises" the processors, coordinating computation according to the arrival The Role of Digital Computers in Project Mercury / 45 of input data, calculations to be performed and output quantities needed. Monitor establishes the constantly -changing processing priorities on the basis of input, computational and output conditions. A description of Monitor operation is given in the paper by Hoffman and Scott. that the most efficient and automatic way of accomplishing this task was to make the Goddard computers the driving force behind any such checkout procedure. The basic features of CADFISS are as follows: Simulation Techniques In this test each site, e.g., the radar at Canary I s 1and s communicating with the 7090' s, i s independently and thoroughly checked. The Goddard computers are programmed to send a request message (cue) to the site, directing site personnel to transmit specified data to Goddard. The computer analyzes the data transmitted by the site and produces a report for supervisory personnel indicating the quality of the data. The computer then sends the next cue to the site. Each cue specifies a test of a particular part of the system. All sites in the Mercury network can be tested Simultaneously since cues are addressed to the specified site. A typical type of test is the Boresight Acquisition test. These tests demonstrate the ability of each radar to acquire a target within its raster search pattern, to originate correct data for that target, and, having so attained the target, to act as a source of angle tracking data for other antenna pedestals. Each radar will acquire its boresight tower and then be selected as the source of tracking data for all other antenna pedestals. After receipt of a cue from the computer, the radar's output will be transmitted to Goddard. The computer -generated cue for transmission of selected pedestal (indicator) readings will be delayed until after later tests to allow time for preparation of teletype tapes. Following receipt of this cue, each message will be transmitted twice to permit recognition of transmission errors. The radar data and pedestal readings transmitted to the Goddard computers will be automatically compared against the surveyed values for azimuth and elevation, and a summary report generated. The Project Mercury simulation efforts cover the broad requirements of non-realtime and real-time simulation procedures. These procedures have enabled us to checkout the operational programming system with a set of controlled experiments which reflect a wide variety of possible real-life situations and data degradations. They also have provided a means of training the flight controllers to recognize and cope with a number of emergency conditions as well as the nominal. Real-time simulations are accomplished by the playing of a launch trajectory tape containing pre-determined data from the AtlasGuidance and IP 7090 computers at Cape Canaveral, (this tape is prepared at Goddard), and the transmission of associated telemetry discretes to the Goddard computers. The Goddard complex and programs react as if a rocket was launched and provide a full set of displays. Once the orbit phase is entered, the world-wide tracking sites transmit radar observations to the Goddard computers at designated times. The observations are on paper tape and were prepared at Goddard to match the launch conditions. A number of three orbit simulations have been run. Realtime simulations have become an integral part of the range countdown and checkout procedures. A full description of the Project Mercury simulation procedures is given in the paper by Green and Peckar, "Real-Time Simulation in Project Mercury." CADFISS - (Computer and Data Flow Integrated Subsystem) As Proj ect Mercury was the first to utilize a world-wide tracking and communications network, it became quite imperative to have a means of determining which elements of the network (which includes the flow between the Goddard computers and Cape Canaveral and the Goddard and Bermuda computers) are "green" and are able to support an actual mission or a simulation. It became apparent One-at-a-time Test Roll-Call Test This is an abbreviated one-at-a-time test designed to check each Goddard-computerrelated portion of the Mercury system in rapid sequence to determine the readiness status of these elements. The basic program of this system sends cues simultaneously to the Mercury sites and 46 / Computers - Key to Total Systems Control evaluates the responses received. (The' site is expected to reply to a cue within a fixed time limit after the receipt of the cue or it fails the test.) The teletypewriter data evaluated consists of message patterns, radar bore sight and range target data, and radar datafrompointings in several critical directions. The data received by the computer is compared against the predetermined message or survey positions. In addition, the program sends high-speed patterns to Cape Canaveral and receives and evaluates similar data originating at the Atlas-Guidance and IP 7090 computers. Finally, it evaluates high-speed boresight data from the Cape radars. The evaluations consist of comparing expected data to that received and the periodic on-line printouts of up-to-date summaries of the tests. In addition, error data is written on magnetic tape for future analysis. The Roll-Call test enables us to determine which elements required to support a simulationexerciseor mission are ready. We have in CADFISS a means of evaluating a real-time ground support system in real-time. B. The Mercury Programming System Marilyn B. Scott and Robert Hoffman International Business Machines Corporation Federal Systems Division Washington, D. C. send output to the sense console which indicates the status of each and provides the means for switching outputs from one computer or the other. All of the input/output devices used in the Mercury Programming System produce traps to signal entry or exit of data to and from core memory. A trap is the automatic transfer of control to a preset location in core when one or more conditions are met. In reading a magnetic tape, for example, if a certain instruction is used to request a record, an indicator will be set in the computer when that record has been brought into core memory. This condition, Le., the "on" status of the indicator, will cause a transfer of control to lower memory. This transfer of control, or trap, will occur only if the machine is "enabled." The computer is said to be "enabled" when traps are permitted to occur and "disabled" when they are not. The machine may be enabled for one or more conditions and disabled simultaneously for others. The machine enters the enabled or disabled mode through execution of a programmed instruc tion. There is one other mode of operation upon which the programming system relies. This is the "inhibited" mode. This mode is entered automatically when a trap occurs. While the machine is inhibited, no further traps may occur until the machine is re-enabled, thereby guaranteeing that necessary, work may be accomplished without interruption. These, then, are the three modes of operations: (1) enabled-a trap may occur; (2) disabled-a trap may not occur; and (3) The Mercury Programming System was designed to meet the specific objective of tracking the Mercury spacecraft during all possible phases of light-launch, abort, orbit and re-entry, and to predict continually the spacecraft impact point so that a safe and speedy recovery of the Mercury astronaut could be effected. To perform this task, two IBM 7090 IS, operating in parallel at NASA's Goddard Space Flight Center at Greenbelt, Maryland, receive data by teletype from digital data transmitters associated with radars around the world and by high-speed data links from the Cape Canaveral Complex. In turn, the 7090's feed high-speed data to displays at Goddard and the Cape and send acquisition messages by teletype to remote sites. Each 7090 has attached to it 12 magnetic tape drives, an on-line printer, punch and card-reader, and an IBM 7281 Data Communications ChanneJ (DDC), which allows data to be transmitted directly to and from the 32thousand-word core memory of the 7090. Each Data Communications Channel can handle data on each of 32 subchannels. In the Mercury, system we currently receive data through the DCC from 17 TTY inputs, two high-speed inputs, a WWV minute signal, and a half - second signal. We send data through the DeC to two high-spee,d outputs, three TTY outputs, and a sense output console. The two 7090' s operate in parallel to provide backup. Although both receive all inputs, only one is transmitting its computed output to remote sites at any given instant. Both machines, however, feed local displays and 47 48 / Computers - Key to Total Systems Control inhibited-a trap has occurred and no more traps will occur until the machine is reenabled. The Mercury Programming System is composed of three types of routines: those which are hardware-oriented; those which are task-oriented; and those which are independent of both task and equipment and serve to control the interaction and lines of flow among all the other routines in the system. The first category of routines-those that are hardware-oriented-is concerned with receipt and transmission of input and output. These routines are entered through trapping and are called "trap processors." Since traps may occur asynchronously, even simultaneously, trap processors must respond fast enough to receive all the information from any given source without loss of information from any other source. This is accomplished by (1) allowing all trap processors to operate completely in the inhibited mode in which they are entered by trapping, and (2) requiring that every individual trap processor be written to act fast enough so that the worst combination 0 f simultaneous input/output stimuli will not result in an undesirable loss of information from any source. A typical trap processor might complete its operation and restore trapping in less than one millisecond. At present there are 23 trap processors in the Mercury system to handle at least as many reasons for trapping. The teletype input trap processor handles a six-character byte of teletype data from anyone of 17 teletype transmitters, and moves it to an area for use by the teletype input program. The teletype output trap processor receives control each time six characters of teletype information have left the machine, and refills the output area until a complete message is sent. The high-speed input and output trap processors accomplish the same functions for data traveling at the rate of 1000 bits per second. The printer trap processor tells the system that the on-line printer is available for further output. Two trap processors handle the timing for the system. One takes control every halfsecond on receipt of a half -second pulse and calculates the need for computing output and feeding displays. It also updates the current Greenwich mean time within the machine upon which all time tags are based. The other timing trap proces'sor recognizes receipt of a WWV minute Signal and checks that the timing of the system is correct. Other trap processors signal the transmission of data to the sense console and between core memory and magnetic tapes. Tapes are used for bringing in programs when they are needed, for bringing in such data as location and atmospheric conditions of remote sites, for writing out a log of all data which enters or leaves the system, and for generating or reading restart parameters for use in the event of machine failure. Each of these operations, however, goes on in real-time and other work can be done while the tapes are moving because a trap processor will inform the system as soon as the operation is completed. The second category of routines are those which are task-oriented. The objective of tracking and predicting the landing point of the Mercury capsule is accomplished by diverse procedures during each of the four possible phases of flight. During launch and low aborts, while the capsule is still within range of Cape Canaveral and its radars, the programs are receiving telemetry and computedpositional data from the IP 7090 and the GE-Burroughs Guidance Computer. They also accept high-speed raw r~dar data. The inputs are arriving at the 1000 bits per second rate and displays are being fed every half-second in launch and every second in abort. The only station which receives acquisition messages during these two phases is Bermuda. In high aborts, those occurring near insertion, both high-speed computed data and low-speed raw radar may be received. Many of the programs of both launch and orbit are required. For instance, the high abort phase requires the use of both the launch program to interpret telemetry data from high-speed sources and the orbital integration program to compute impact point. In orbit the output display rate changes to once every six seconds and no high-speed data is received. Acquisition is sent to more than 20 telemetry and radar sites around the world. The acquisition messages are sent at the sjx-character per second TTY rate and are sent three times per orbit for each station with lead times of approximately 45, 25, and 5 minutes before the spacecraft crosses the local horizon. The orbital programs generate a prediction table which cover three orbits, receive raw radar data, edit it, and use it to differentially correct the prediction table. From this table, The Mercury Programming System / 49 data concerning present and predicted position are calculated. From it the time to fire the retro-rockets to bring the spacecraft back to earth is computed and displayed. During the re-entry phase the display rate changes to once every three seconds, twice the rate of the orbit displays. Different quantities are calculated and acquisition data is sent with less lead time. The routines which combine to accomplish the tasks of the various phases are called "ordinary processors." They operate in the enabled mode, Le., they may be interrupted at any point. These ordinary processors are programs in themselves, require no subroutine linkage and can be unit-tested before they are incorporated into the operating system. At present there are more than 40 ordinary processors in the Mercury Programming System. They include edit program, teletype code conversion routines, coordinate conversion routines, output generators, a retro-fire calculation routine, a numerical integration program, a differential correction program, and a host of others. Because these processors accomplish specific tasks and are completely independent programs, they may be considered the building blocks of the Mercury system. By using them in different combinations and at different frequencies, we can use the same routines to perform different tasks. The use of such building blocks minimizes the amount of programming required to meet the obj ectives of the system, and provides good flexibility in meeting additional specifications. Furthermore, t his modular concept spares programmers of ordinary processors the job of understanding the complexities of real-time control and equipment idiosyncracies, whereas the remaining programmers need not concern themselves with the mathematics of the ordinary processors. But how do such independent processors fit into an over-all system? How is their interaction controlled? The processors are fit into the system by means of short sequences of instructions called "prefixes" and "suffixes." There is at least one prefix and one suffix for each ordinary processor. A prefix precedes program and performs such functions as placing inputs required by the program in a prescribed location. The first instruction of the prefix is the entry point to the ordinary processor. The prefix may be said to set the scene for entering the processor. The suffix does just the opposite. It ties up loose ends after the processor is completed, such as making the computed results of the program available for use in the system. In addition the prefixes and suffixes provide the liaison between the ordinary processors and the third category of routines, those that control the interaction and lines of flow between the various elements of the systern. The programs in the third group are called the controllers or monitor routines. The controllers maintain the proper sequence of operations between the various processors, and, in accordance with the modular concept, are completely independent of these processors' Le., they would accomplish ~he same functions no matter what processors they monitor. Implicit in the nature of the ordinary processors and trap processors is a relative priority among them. Since the ordinary processors operate in the enabled mode, control may pass to one of the trap processors at any moment. Therefore, as a group, the trap processors enjoy a higher priority in the system than the ordinary processors. Priority among the trap processors is a function of data rate and built-in priority in the hardware. Among the ordinary processors, however, priority is dictated by urgency of introducing their output into the system and the length of time it takes to execute the routine. The routine to calculate a display every three seconds, for example, must enjoy a priority higher than the routine which must be accomplished every minute. A routine which requires more than three seconds for execution must be given a priority lower than the three second display program, or the system will fail to output on time. It may well enjoy a priority higher than the minutes processor, however. The relative priorities of the ordinary processors are established in a table called the priority table. The heart of the monitor system is a controller routine called PRIO. Every ordinary processor and trap processor returns control to PRIO upon completion of their tasks. Both ordinary and trap processors can determine the need for entering other routines in the system. They convey this requirement to PRIO by setting indicators in the priority table. PRIO must examine these indicators 50 / Computers - Key to Total Systems Control and give control to the proper routine in accordance with their relative priorities. Since ordinary processors can be trapped at any time or any place, this priority scheme affords multiple levels o~ interruption. For example, the orbit prediction updating program may be interrupted by the half-second clock trap processor, whereupon this trap processor determines that it is time for the higher priority, acquisition data .generator to send predicted orbit parameters to sites ahead of the spacecraft. When the half -second trap processor returns control to PRIO, control must now be passed to the beginning of the acquisition data generator. But the fact that the orbit prediction update was. originally interrupted must not be forgotten. Once PRIO has given control to the acquisition data generator, it too can be interrupted, say, by the teletype input trap processor transmitting radar data from a tracking site. And now this trap processor indicates to PRIO the need for the teletype conversion processor, and this has a higher priority than the acquisition data generator, etc., 'until there may be as many interrupts as there are levels of priority. To control such situations, a system of remembering a stack of interrupts is provided by two controllers, SAVE and RTRN. The very first duty of any trap processor is to enter SAVE to preserve the condition of the machine's program-accessible registers and the return address. Each time SAVE is entered, these items are preserved in a save block assigned to the interrupted routine. Whenever PRIO sees that all higher priority routines have been serviced, control is passed to RTRN which restores the machine'S conditions according to the save block and returns control to the interrupted routine at the interrupt point. This save-and-restore procedure holds for all traps except those which occur within PRIO and RTRN. By permitting SAVE to ignore traps from within PRIO and R TRN, control functions are made more responsive to the expediencies of the real-time environment than to the lower priority requirements of the ordinary processors. Thus trapping takes priority over anything PRIO or RTRN are doing. How is the priority system applied to the ordinary processors? Associated with each ordinary processor are t~ree kinds of indicators which convey control sequence requirements of the system to the controller PRIO: 1. The "A" indicator is turned on by a processor if it is in process. 2. The "B" indi~ator is turned on for a given processor if a need for its operation has been determined. 3. C, D, E .... indicators for a given processor are turned on if a need has been determined to suppress its operation. The entry point to each ordinary proc essor appears in the priority table together with the indicators associated with that routine. (The indicators are merely bits in a word.) The routine whose indicators are examined first by PRIO has the highest priority. Suppress indicators for a given ordinary processor take precedence over its A and B indicators in that PRIO examines them first. PRIO will not transfer control to any routine whose suppress indicators are 0 n. Each ordinary processor has a specific suppress indicator for each individual condition which requires its suppression. If no suppress bit is on, PRIO will examine the A and B indicators for that routine. If PRIO sees both the A and B indicators onfor routine X, it knows (1) that X had been trapped while in process, and (2) that at least one additional request for X's operation has been made. When both A and B are on, therefore, PRIO will return control through RTRN to the interrupt point in X, leaving the B indicator on for future control. If only the B indicator is on for ordinary proc essor X, PRIO transfers control to the beginning of X. The first act of every ordinary processor thus entered at the starting location is to turn its own A indicator on, and its last act before transferring control back to PRIO is to turn off its A indicator. Thus, in the event it is interrupted before completion, each ordinary processor provides an indication to PRIO that it is in process. Indicator B can indicate that more than one request has been made for the operation of its associated ordinary processor. This is accomplished by queueing, a proc edure in which one or more requests for a given routine are indicated by placing information in a table, called a queue table. An entry in the queue table can simply indicate a request for operation, or it can also include information telling where input is to be found or where output is to be placed, etc. For instance, an ordinary The Mercury Programming System / 51 processor which determines the need for sending acquisition data to radar sites places entries, by queueing, in the queue tables for the teletype output processors, telling them which sites are to receive data. Entries are placed in the queue table in the order in which they occur. After turning on its A indicator, the output processor turns off its B indicator if it has no queue or if it is not desired to have PRIO cycle control to it repeated for some reason. If the routine has a queue, the routine itself must enter the disabled mode and test, while disabled, whether it is not processing the last request in its queue. If the last request is being processed, B is turned off. If not, B stays on, so that the other requests may be answered in turn until the queue is emptied. In either case, the test must be followed by an enabling instruction since a 11 ordinary processors must run enabled. The B indicator for a given routine may be turned on by any ordinary processor, trap processor or controller which determines the need for that routine to be executed. The optimum assignment of priorities for ordinary processors can only be done through careful study of the system in a real or simulated environment. However, the assignment of priorities is not as rigid as it might appear, for both suppression and trapping in reality constitute dynamic modification of the priority system in response to real-time events. A reasonable first approximation of the optimum priority assignment might be constructed from consideration of the levels of input/output timing requirements. This, then, is the basic Mercury Monitor real-time control system w h i c h combine groups of processors to handle the demands of any particular phase of the Mercury flight: controllers, which maintain sequence control between ordinary processors in an environment of asynchronous interrupts, handled and interpreted by trap processors. The use of this modular concept has proved to be of enormous advantage in coping with the seemingly ever-changing system specifications. One of the benefits derived from this approach is perhaps Significant for all large, complex real-time control systems undergoing a continuous growth process: efficient use of large scale computer systems by trading off time to increase effective core storage capacity by buffering low priority routines from magnetic tape in real-time. One logical extension of the modular concept, which has been adhered to throughout the Mercury programming system, is the adoption of the Simple programming standard that all program communication among ordinary processors themselves and between ordinary processors and the Monitor must take place through system prefixes, suffixes, communication cells, system tables and constants external to the ordinary processors. This is the final isolating step in the complete modularization of the ordinary processors. PRIO can therefore control all real-time buffering with no possibility of a breakdown in communications within the system. Since no communication and no transfer can take place between ordinary processors except through Monitor, PRIO, knowing (by indicator examination) whether or not a requested buffered routine is in memory, can control the system accordingly. If a requested buffered processor is not in memory, PRIO merely queues a monitor processor to load if from tape, remembers that the routine has been requested but not yet given control, and proceeds to handle other system control tasks while the routine is loaded. Under the simultaneous input/output, computing abilities of the 7090, extremely little time is lost to the system by this technique. Any of the other system functions can be given control while processors are loaded from tape. PRIO simply ignores the routine being loaded until the trap which Signals completion of reading is processed and PRIO is informed by unsuppression of indicators that the routine is now in memory. One buffering area in memory can be reserved for the use of low priority routines which can operate sequentially with no loss of system performance. For example, the orbit prediction generator waits for its input from the differential correction program, which, in turn, waits for its input from the editing processor. Other processors with higher priorities can also be buffered with each other. In fact the only processors which cannot be buffered from tape are those whose timing or control requirements would be violated by the comparatively slow tape operations. Here it should be noted that the delay, due to buffering in execution of the largest buffered routine in the Mercury system (about 3,000 instructions), is about two sec 0 n d s. The Monitor real-time loader utilized the trapping feature in such a manner that use of buffering 52 / Computers - Key to Total Systems Control .------------------.TR~P I I SAVE MACRO DCC DSU M{lJRTCC TRAP PROCESSOR INHIBrTED I I I ENABLED I ~--------------- I : ~-- C. 0, ETC. OR M~DIAG I I ~----------I I I I ~-----_------------- I I I ~--------------- I I _ _ _ _ ...1 ORDINARY PROCESSOR I I I ~--------------- - - - PROGRAMMED LINE of FLOW ------ UNPROGRAMMED Figure 1 The Mercury Programming System / 53 in the system cannot create a nme delay of more than 30 milliseconds in' the execution of higher priority, non-buffered ordinary processors. By appropriate use of the 7090's capability for simultaneous tape operations, real-time multiple buffering can be used to increase effective core storage capacity by several times without making the system tape bound. Reliability of -tape operations is increased several orders of magnitude by a technique 0 f programmed Hamming-coded error correction, bringing tape reliability into balance with that of other parts of an IBM 7090 Data Processing System. Thus it is seen that through adherence to the building block or modular principle, the Mercury system performs all its tasks even though some large part of the system is always absent from memory. This is achieved only through Monitor's controlled scheduling of tasks to obtain maximum performance. Real-time buffering of ordinary processors is but one example of a major modification to the Mercury Programming System's original design. The flexibility afforded by the system's basic structure has allowed us to incorporate such drastic innovations with surprising ease, and has convinced us we are far from exhausting the system's enormous growth potential. References 1. "Programmed Error Correction in Project Mercury," B. Dimsdale and G. M. Weinberg, Communications of ACM, December, 1960. 2. "Real-Time Multiprogramming in Proj ect Mercury, II M. J. Buist and G. M . Weinberg, Ballistic Missile and Space Technology, Volume 1, 1960, Academic Press Incorporated, New York, N. Y. c. Real-Time Simulation in Proiect Mercury W. K. Green and Arnold Peckar International Business Machines Corporation Federal Systems Division Washington, D. C. presented to the system in such a manner that an actual flight appears to be in progress, and in fact the system cannot differentiate between this data and that of a real flight. The simulation data takes two basic forms. The launch data, which is transmitted from Cape Canaveral using a special tape drive known as the "B Simulator," and the orbital and re-entry data, which is transmitted from the remote radar sites using teletype paper tape. In a system of this nature the heart of the simulation lies in the generation of the test data. To generate this data a series of programs known as Observer, Selector·, Shred, Sort, and Merge have been written. These programs have the capacity to generate basic flight profiles giving launch, orbit, abort, and re-entry data in the form which would normally be received from the sites. This data may also be perturbed by application of many types of errors to simulate the malfunctioning of the data system. In this way the limitations of the Mercury programs with regards to varying degrees of data degradation may be determined. Introduction The testing of the Project Mercury computing system offers a unique problem. The Mercury program runs in real-time, with inputs arriving 'at specific time intervals and outputs being transmitted at varying time intervals. The computational programs and their associated controls are complexly interrelated and are all time interdependent. Therefore, in order to test these programs the data must be presented in such a manner as to allow the time function to show its effect. To introduce the time function two simulation methods have been developed. The first method allows the operational programs to run in aquasi-real-time environment under the control of a simulation program. This control program, called SIC (Simulated Input/ Output Control) keeps track, by me"ans of a real-time clock, of the amount of time which has been allocated to the· Mercury Program. SIC also simulates the real-time input/output device called the DCC (Data Communications Channel) and at proper time intervals supplies simulated input data, and processes Mercury output data. Using SIC, "time" maybe stopped whenever desired, intermediate results examined, and "time" restarted without the loss of the timing sequence. This then becomes a very powerful debugging tool since now a detailed analysis of the interaction of input, output, and time may be made. The second simulation method uses specially prepared simulation data which is transmitted to the Mercury computers from the remote sites in real-time. This data is Test Data Generation The test data for the different simulation methods is generated by a series of programs known as Observer, Selector, Shred, Sort, and Merge. Each of these programs acts as a step in the generation of a given set of data (see Figure 1). They are separate, however, so that between each step options may be taken with regard to modification of the given 54 Real-Time Simulation in Project Mercury / 55 TRAJECTORY DATA / STATION / / (J/ IDENTIFICATIO~N.'~~=-:7I CARDS / fi ~( / / RANGE, AZIMUTH, ELEVATION DATA FOR ALL SITES /,----('----",D -- SELECTED RADAR DATA TAPE TIME INTERVAL CARDS SHREDDED DATA IN RADAR FORMAT WITH TIME TAGS ~----' AND ERRORS / / / / / / SHRED TAPE SORTED BY TIME TAGS DATA GENERATION PROCEDURE FOR MERCURY SIMULATION SYSTEM Figure 1 56 / Computers - Key to Total Systems Control flight profile and the entering of varying error conditions. The Observer program is used to generate basic flight profile. If the profile is to contain launch data a series of position and velocity vectors for the powered flight portion of the trajectory are obtained from the missile guidance equations. From this data is obtained the insertion conditions at burnout. If launch data is not to be used then the insertion conditions must be given as input data. Using the insertion conditions Observer now computes the orbit by numerical integration giving position and velocity vectors for as many orbits as specified by the input data. The data also specifies re-entry conditions. This is either in the form of retro-rocket firing time or desired impact area. If the retrofiring time is given the change in velocity is computed and the re-entry trajectory computed. If the impact area is given, Observer iterates on the retrofire time until a time is found which gives the requested impact. The Observer now has the position and velocity vectors for the complete flight. It now reads in the positions of all the tracking stations and computers all the Range, Azimuth and Elevation readings which are in range of each station. These R, A, and E readings are all now written on Observers final output tape. The Selector program uses as its input the R, A, and E tape produced by Observer. Its purpose is to take only that data required for a given test and place it along with certain error codes on a tape to be used by Shred. It is at this point that the many varied perturbations of the data are called for. Stations may be left out or made to start transmission late or early. Different types of errors for application to the data, such as different noise levels, bias errors, transmission errors and pathological errors are now called for. It is here that all the major troubles that can occur during a real flight may be specified so that the full capabilities and the limitations of the Mercury program may be tested. The Shred program processes the Selector outputs to produce simulated inputs. Since the function of this routine is primarily one of format changing, unit conversion, and coordinate transformation it is not of general interest in itself. There are, however, a few points that may be of interest. Shred has two sources of inputs. The primary source is the Selector input. The second source of inputs is provided by Space Technology Laboratories. These consist of launch inputs representing GE-Burroughs Atlas Guidance Computer outputs and pOSition, velocity vectors which are used to calculate IP 709 outputs. From these two sets of inputs Shred produces images that reflect what would be in the Goddard or Bermuda computers at the time of an input interrupt. The different images are: GE-Burroughs, IP 709, and High-Speed raw radar for Goddard each with its 72 bit telemetry message; low-speed TTY Verlort or FPS-16 radar inputs for Goddard; high-speed Verlort and FPS-16 radar for Bermuda; and Bermuda'S 64 bit telemetry message. Shred has three methods for introducing variations into the true input values. Each routine is independent of the other and while none individually are in any sense sophisticated in combination they have proven to be quite satisfactory. One routine is used to introduce random errors which simulate the general radar noise. The second routine forces certain bits in the message to always be one's. We call these errors pathological errors and ostensible rep res e n t frozen encoders. The third type of error routine is for transmission error simulation. Random errors are added to measurements according to an input standard deviation and a normal dis t rib uti 0 n. Sixteen different standard deviations are allowed for each run. A code associated with the input vector determines which sigma is to be used in the particular case. So called pathological errors are bit patterns which are used to turn on the matching one bits in the true value. Again, 16 patterns are provided with the desired pattern specified by a code associated with the input vector. Pathological errors put a varying positive bias into the readings. Transmission errors are simulated by either altering, dropping, or adding a computer word in the input message. A probability of error is associated with each word of output and if a calculated random number (from a rectangular distribution) is less than the probability of error, an error is applied. The form of the error is determined by a similar technique using three conditional probabilities. Each routine can have a different transmission error table and within Real-Time Simulation in Project Mercury / 57 one table three different probabilities of error are provided. The probability to be used is determined by a code associated with the input vector. A constant error, that is, a bias error, is simulated by adding the desired amount of bias during the calibrating. When writing Shred a primary assumption was made that, no matter how vehemently and dogmatically stated, all message formats and parameter units would change. Thus, the program was written to be modified and great use was made of tables, input parameters and switches. This turned out very well for sure enough there is not one output produced by Shred that has not changed at least once and some several times. Units have changed, sampling rates have changed, ranges of values have changed, telemetry bits have changed, message lengths have changed, subchannels to be used have changed. However, since this was expected, measures were taken to live with the situation. A typical example of programmed flexibility is the unit conversion routine for radars. There are only two types of radars presently used and Shred's input vectors represent the radar readings although in different units, thus all that is required to convert a reading "r" to "R" is: if A, then R = r x X A if B, then R =r x XB • However, since it is always possible a different radar type might be suddenly installed or biased conversions required, the following scheme was used. A table containing the X and a constant for each radar parameter was set up for each type of radar. A second table of addresses referencing one of the conversion factors table was set up using station number (a unique radar site identification) as an argument to define which of the conversion factors table to be used. Thus add a new radar type-make a new conversion table and add its location in the control table; change units of input-change the conversion table; if "biased" readings are requiredmake the constants non-zero. The tables have been modified several times in the past year and will be modified again but the basic calculating routine will not be touched. Shred will of course produce quite varied runs. It is of interest to note that most errors are applied at random thus a specific error for one observation is not a normal type of operation (it can be done with bias or with pathological errors). This was done primarily to discourage people from concentrating too much looking for certain oddball cases where the effect is essentially known anyway, and to encourage testing with general error levels. The feeling here is that the unexpected and potentially disastrous type or combination of errors could best be discovered by using a monte carlo technique as opposed to a preconceived set of errors. On the whole this approach appears to have been successful. Many errors have been found and we apparently now have a solid working system. Of course, no program is ever fully debugged, however, our confidence in the system is very high. Even though we had good success USing perturbed inputs, some of the most interesting bugs, however, showed up using error free data. One worthy note occurred in editing. Extensive use is made of s tat i s tic a 1 editing throughout the system, however, the original coding failed to protect against zero or very small standard deviations thus perfect inputs turned out to be unacceptable. The coding has now been changed so that no matter how good the inputs the system will run but the lesson that both upper and lower limits of tests need to be covered was once again delivered. In all, there are roughly 25 functioning tables, forty some subroutines, one main and three sub main chains in Shred. Detail flow diagrams are maintained for the whole program. The net effect is a very flexible program, readily modified, but also one that requires a good deal of esorteric skill to operate. The output from Shred can take several forms. For the powered flight portion of the trajectory an unsorted high speed data tape is produced. This represents the data which is received from Cape Canaveral. For the orbit and re-entry pOSitions of the trajectory an unsorted low speed data tape is produced. This represents the teletype data normally received from the remote sites. For the majority of simulated runs the high speed and low speed data must be sorted and merged. For this purpose the Sort and Merge programs were written. The final output from these programs is the input to SIC which will be described next. 58 / Computers - Key to Total Systems Control SIC FLOW CHART SIMULATION OF ENABLE,PSLE (ACTIVATE DCC SUBCHANNELS) AND RCT (RESTORE CHANNELS FOR TRAPS) CT I I. DISABLE ALL TRAPS 2. 1------------.... ENTRY IS VIA AN XEC fP,T WHERE fP,T CONTAINS A STR A, B. C SAVE SUBROUTINE 3. LOCATION OF XEC. THE XEC, AND THE STR TO STORAGE 4. "c· = TYPE CODE TO AC YES WHERE A.B = MASK B INDEX C CODE I-RCT 2_ENB 3 - PSLF = = = C CT 5 RCT = 1,2,3 CT 6 RELEASE DCC INHIBITION I------~ TEST: IS DCC INHIBITED? NO THIS PATH IS ESSENTIAL A NO- OPe THE RCT WAS GIVEN WHEN NO PCL TRAP CONDITION EXISTED Figure 2 Simulated Input/Output Control Program (SIC) This section 'of the paper describes the simulation techniques used to debug and to analyze the real-time Pro j e c t Mercury Goddard IBM 7090 computer and the Bermuda IBM 709 computer programs. This simulation package is used only with local computing equipment and is not used to test the communication lines or the training of flight control personnel. It has the obvious advantage of being self -contained thus requiring no time consuming coordination with other sites. In addition, it has the features of being able to maintain proper timing constraints while also permitting the suspension of time to allow debug macros such as "core" to be performed. SIC shares the computer with the operational programs. (Figure 3) Its function is to feed inputs at the proper times to the operational program and to simulate all of the controls associated with real-time inputs and outputs. To do this SIC must have a means of keeping time-at present a one millisec0nd pulse is produced by the Data Communications Channel (DCC) causing a trap to SIC. Each time SIC gets control via its clock it adds afinite increment to its present estimate of time. Then based upon the new time SIC does the following: searches its input for messages that should now go to the operational program input region, tests for traps that require Simulation, logs output or actually sends out output if desired, and adjusts itself to allow the operational program another cycle. These SIC functions plus the following are described in detail below: Real-Time Simulation in Project Mercury / 59 ENB PSLF NEW ENABLING MASK TO STORAGE AND TO AC ~---.t NEW PSLF MASK TO STORAGE SET -N" TO I IS I. SET ENABLE SWITCH TO DISABLE 2. INSURE SIC'S CLOCK WILL NOT BE DISABLED N AN OUTPUT SUBCHANNEL YES NOTE: IF TRAP SHOULD HAVE OCCURRED CAN'T BE FORGOTTEN RESTORE SYNCHRONIZE TO PERMIT RANDOM RETURN TO OPERATIONAL PROGRAM (ON THE AVERAGE THIS DOES NOT COST ANY I'TIME") I. RESTORE 2. SUBTRACT ~ At FROM PRESENT ~ \----11... TIME NO 3. SET FOR NEAR IMMEDIATE TRAP TO SIC (WANT TO TRAP TO SIC AS SOON AS THE RETURN BUT DON'T WANT TO STEAL TIME THUS THE At THE TRAP TO SIC IS REQUIRED AS ANOTHER INPUT OUTPUT COULD BE WAITING Y2 SET TIME FOR OUTPUT TRAP TO T + AT TRAP FOR SUBCHANNEL N Figure 2a a) SIC Input b) SIC's Clock c) Trap Simulation d) DCC Control Simulation e) Debug Macros The input to SIC is on a magnetic tape and is sequenced by time of arrival. Each logical record of input represents information that would be found in an input region after an input trap. Two times are associated with each input; first is the time the record should start to enter the input area (called T A, for "Time of Arrival"), and the second is the time the interrupt should be given (TT for "Time of Trap"). In addition, each record also has a control word which gives the number of words and the DCC sub channel of the ostensible transmission. All times are referenced to launch, thus a zero T A is for the launch vehicle still on the pad. SIC's clock maintains a descrete estimate of continuous real-:time by updating itself by a constant t after each trap. To initiate the traps the DCC's we use have a simulation switch which when "on" transmits a pulse every millisecond which under program control can be used to cause a trap. Prior to getting a DCC a special device was attached to aDSU of the 709 which could cause traps at variable intervals the smallest being 5 milliseconds. In using the clock there are two variables; the actual number of machine cycles between traps and the value of t assigned to represent the interval. ASSigning t a value greater than the actual time between pulses in effect simulates a computer that has less computing speed than the one being used as the total number of machine cycles in a simulated time period would be less than the number in a real period and visa versa. This is a very useful feature. It permits simulation of Bermuda's 709 and Goddard's 7090 andGoddard's 7090 on the Space Center's 709. It also has been used to test the capacity of the system by increasing t until failures occurred. 60 / Computers - Key to Total Systems Control SIC FLOW CHART TIME ESTIMATE-INPUT- I/O TRAPS SC 3 TEST: IS TA OF M ~ T YES ENTRY CONDITIONS: PRESENT TIME IS T (INITIAL VALUE FOR T IS STORED DURING INITIALIZATION) NEXT INPUT MESSAGE IS M THERE ARE N SUBCHANNELS IN DCC. TA TIME OF ARRIVAL TT TIME FOR TRAP STEP LOCATION FOR NEXT M BY ONE. THIS CAN REQUIRE A TAPE REA = = NO NO SC II I. 2. TRANSFER M TO CORE (NOTE: THIS CAN CAUSE A TAPE READ AS M MAY SPAN SEVERAL TAPE RECORDS) LOCATE NEXT MSG (THIS MAY BE BLOCK SC 5 IN YOUR ROUTINE) SC 9 TEST: DID IT STOP ON SUBCHANNEL USED BY M? SC JO SET TRAP FOR MESSAGE M BY PUTTING TTM IN TRAP TABLE LOCATION DETERMINED BY L . . . . - - - - - - - - - - t M •S SUBCHANNEL NUMBER Figure 2b It should be noted by anyone planning to use a SIC type program that the smaller the interval between traps the more accurate the simulation of real-time, howe v e r, since smaller increments require more passes through SIC the longer the simulation run will take. In our version of SIC it was desirable to start runs not necessarily at the beginning of the input tape and also to vary the value assigned to t. To do this, the time to start the run and the value assigned to t are put in the storage entry keys at the start of a run. The option to change the t during a run has been added to some versions of SIC. There are two returns from SIC when it is entered by a clock trap. If no input/output traps require Simulation, the return is to the point in the operational program from whence the clock;trap occurred, however, if a trap is required,' it is simulated as having occurred at the same point in the operational program as the clock trap to SIC. SIC has an interrupt table which determines whether a trap is required. This table has an entry for each subchannel of DCC (only DCC traps are simulated in this version of SIC) and the value of the entry is the time for the next trap. If no traps are set up the value is set to the maximum. Input traps are set up in the table from the time of trap associated with each input record. Output traps are set up when the instruction to produce output is simulated (this is discussed later). The interrupt table is interrogated with every trap to SIC and if a time is found that is less than or equal to the present estimate of time (and the DCC is enabled and not inhibited and the subchannel activated) a trap is simulated and the time to trap for that subchannel set to the maximum. Only one trap can be simulated at a time (same as in the real case) thus Real-Time Simulation in Project Mercury / 61 SC 14 SC 13 TEST: HAS SEQUENCER 1 - - - -. . STOPPED? (THIS VARIES FROM DCC TO DCC) NO YES SET FOR NO TRAP RETURN NO L.....-----i SC 19 STOP SEQ'N AT SUBCHANNEL N YES NO SC 23 J. SET FOR TRAP I. RESTORE 2. SIMULATION SYNCHRONIZE~-'---ITRAP""'RETURN 2. RESET TTN TO MAXIMUM SIC'S CLOCK Figure 2c if one trap is found, the rest of the table is not interrogated. If more traps are waiting they will occur only after the operational program has processed the first one and enabled the computer. If SIC does not do this in time, the next message will be in the input region. With present versions of SIC this fact is not noted (as indeed, it would not be noted in the realtime case), however, in the generalized version shown in the flow diagrams a path is provided for special operations if this happens. There are three instructions that control the trap features of the DeC device. The instructions and their functions are: 1. ENB A, T = Enable per contents of A, T. This allows traps to occur over the I/O channels of the 709(0) specified by the mask in A, T. The DeC is considered one of the I/O channels of the 709(0) computer. 2. PSLF B, T = Allows inputs or outputs (depending upon the DeC sub channel) to occur and permits the DeC to trap if it is enabled. The mask in B, T contains a bit for each of the 32 subchannels. If the bit in position i is 1, subchannel i is activated, if zero, deactivated. No traps can occur unless the DeC itself is enabled and the subchannel activated. 3. ReT = Restore c h ann e 1 trapthis res tor e s the trap conditions to what they were prior to the last trap. The instruction, by itself, does not refer to a new enabling mask. 62 / Computers - Key to Total Systems Control INTERNAL DATA SIC CLOCK DATA BUFFER BUFFER REAL TIME INTERRUPT MERCURY PROGRAM SYSTEM REAL TIME CHANNEL CORE STORAGE AREA MONITOR OUTPUT PROGRAMS PROGRAM STORAGE SIC AND THE MERCURY PROGRAM SYSTEM Figure 3 When simulating, these instructions are not obeyed directly. To avoid confusion in going from the simulated to the unsimulated case, the operational program has in place of the actual trap control instruction an execute XEC A, T-where A, T refers to a table. If simulating, the table contains a store location and trap, 8TR B, T, C while in the real case the table contains the ENB, PSLF, or RCT. The STR gives control to the section of SIC used for simulating the trap controlling instructions, the B, T locates the ENB, or PSLF mask and the "C" is a code used to define which of the three instructions is wanted. Since entry to this section of the program is arbitrary with respect to SIC's clock the return is the same way. Thus, for timing purposes the maximum gain or loss of computing capacity is less than one time interval with the sum of the gain and lo~s "expected" to be zero. If reenabling (ENB or RCT) after a trap it is possible a second trap could occur immediately. Thus, if the DCC was inhibited at the time the instruction is given, a search of the interrupt table is needed. In the flow charts for the generalized version this is accomplished by letting the next SIC trap occur almost if not immediately after the return from this section of SIC. In older versions, a trnasfer directly to the clock updating, trap searching part of SIC was made. In the older versions the net effect is to steal a part of a cycle from the operational program, however, in the general case, one-half cycle is added so that again the expected gain or loss is zero. Since SIC is maintaining the estimate of time it is possible to "suspend" normal calculations by stopping SIC's clock and during this period perform whatever debugging operations such as "cores" or "dumps" as desired then restart the program at the point of Real-Time Simulation in Project Mercury / 63 suspension. This is accomplished by two SIC routines which stop and restart the clock. Two macros were made for the calling sequences and these are used to sandwich all debug sequences in the operational program. This feature is one of the most powerful and well used tools for debugging. Routines are presently being written which will make SIC input from log tapes of actual runs so that it will be possible to replay actual shots and make use of this feature. Real-Time Simulation The simulation up to this point has been in a quasi - real-time environment which has only involved the Project Mercury computers. The next logical step is to now use a simulation system which does in fact operate in realtime and includes varying amounts of equipment in the data link. The output displays being part of this data link may then be driven by the computers to test the real-time output capabilities and to serve as a training exercise for the flight controller personnel at Cape Canaveral. For the launch portion of the real-time simulation a special tape drive known as the B ...Simulator has been developed (Figure 4). This drive which is located at Cape Canaveral uses magnetic tapes generated at Goddard as the data source. The data from the B-Simulator is played over the transmission lines to the data receivers at Goddard and then into the DCC's attached to the computers. The B-Simulator tapes are specially prepared by a program which uses as inputs a sorted, high-speed data tape produced by Shred and Sort, the Atlas-Guidance Computer cards and a set of flight flag cards. This data is read into the IBM 7090 computer and written on tape at a density of 200 bits per inch. Each data source is written on a separate track, serially down the tape. A data bit is represented on the tape by two bits. These bits are six bit positions apart, so that when the tape is read on the B-Simulator at 60 inches per second these bits will cause a pulse duration of one-half millisecond. This pulse is the data form which is transmitted to Goddard as the simulation data. An interesting problem presented by the generation of B-Simulator tapes was that since they run in real-time they may not have any data gaps. To prevent data gaps the full length is written as one continuous record. This is done by starting the tape and then having the computer prepare the data faster then it can be written. Four data blocks are used and while one is being written another is being filled. Tl)e block being prepared is always two ahead of the block being written, and these blocks are rotated as each successive block is completed. The data used in aB-Simulator run can be identical with that used in a SIC run. If it is the same data then the results should be the same. This is not always the case, however, since now we have added to the system the errors caused by the transmission lines and the data receivers. The number and magnitude of these errors are of great interest since we can get a true feel for what to expect on a live launch. With this information, modification can be made to the operational programs so that errors of this nature will not prevent the proper functioning of the computing system. A system similar to and using the B-Simulator was also developed for real-time testing of the Bermuda computer system (Figure 5). In this system a Bermuda SIC input tape is read into the IBM 7090 and a tape similar to the Goddard B-Simulator tape is produced. This tape, however, only has data representing the two Bermuda radars. This tape is then transported to Cape Canaveral and played on the B-Simulator. However, instead of the data being transmitted to Goddard it is rerecorded on another tape drive known as the A-Simulator (Figure 5). The A-Simulator tape is recorded in the same format as data received by the Bermuda radar data receivers. The A-Simulator tape is then sent to Bermuda where it is played at the data receivers so that real data appears to be on the lines. This data may then be presented to the Bermuda Computer for real-time simulation runs. The objective of a Mercury flight is to orbit the spacecraft and return it to earth. The real-time simulation must therefore consist of orbital and re-entry data as well as launch data. The orbit and re-entry data normally arrives at the computer via teletype lines from the remote sites around the world. To simulate the teletype data a special program was written for the CDC 160 computer which reads an unsorted, low-speed Shred output tape and punches teletype paper tapes. Each paper tape represents the data that is received from a given site for a given pass over the site. The paper tapes are then 64 / Computers - Key to Total Systems Control r----:~ BUFFER ~ \ : IP 709 8-GE ~ \: ---.: BUFFER B- SIMULATOR TLM / FLAGS IP 709 ® 8-GE p p STL TAPE GODDARD COMPLEX TELEMETRY -BUFFER -'------ 8- GE DISPLAY _,....--r--I' ~--,+--. DISPLAY ~ . . . . - - - - - - - - f BUFFER ~ ASIMULATOR ® r------J...----L-...., DISPLAY AND -.. LAUNCH ..-------tRECEIVERI4-----..-..----.------' SUBSYSTEM COMPLEX - LAUNCH SU8SYSTEM WITH A AND 8-SIMULATORS Figure 4 transported to the remote sites and on proper time cue are transmitted in sequence over the teletype lines to the computers. The data then appears in the computer as actual teletype transmissions with the effect of equipment failures applied. Since this orbital and re-entry data was generated from a Shred output tape, it also may be identical to that used in a SIC run. And the different results between the two runs may be analyzed to determine the effect of the equipment upon the final computer outputs. A very important feature of this real-time simulation system is its use as a training tool. There are many people who, during an actual mission, will have to make quick decisions based upon the computed output data. These decisions affect the safety of the astronaut and must, therefore, be based upon long experience with the system. To supply this experience many simulated runs are made with many different sets of data. These runs present to the flight controllers all the situations which they might see during a mission. Real-Time Simulation in Project Mercury / 65 GODDARD IBM 7090 / /1· IrHIS TAPE IS TRANSPORTED TO CAPE L..fANAVERAL AND MOUNTED ON THE B-SIMULATOR CAPE CANAVERALI(MERCURY CONTROL CENTER) /- B- 1 I SIMULATOR ® / ASIMULATOR RADAR SIGNAL q9 / / L--[i I / BERMUDA THIS TAPE IS TAKEN TO BERMUDA TO BE READ ON THE A-SIMULATOR THERE / / A- / SIMULATOR ® IBM 709 BERMUDA CLOSED LOOP SIMULATION DAlA FLOW Figure 5 In this way they know what to expect and learn what actions should be taken. These runs can be made over and over again without the use of missiles so that expensive errors can be avoided and erroneous decisions corrected. Simulation runs consisting of a complete three-orbit mission have been made. The high-speed launch data was supplied by; the B-Simulator, and the low-speed orbit and( reentry data was supplied by paper tapes from sites around the wor ld. The complete mission takes almost 5 hours. During that time, all the remote sites were using their equipment and all the displays at Cape Canaveral, which are driven by the computer, were in operation. The flight controllers performed their tasks as did all the communications personnel involved. The only difference between this test and an actual Mercury flight was that a launch vehicle/spacecraft never left the launch pad. D. Proiect Mercury Launch Monitor Subsystem (LMSS) R. D. Peavey and J. E. Hamlin International Business Machines Corporation Federal Systems Division Washington, D. C. I. Introduction to LMSS exemplifies the functional aspects at each location included therein from an equipment standpoint. The purpose of this paper is to briefly present the functional and data flow aspects with as little operational programming detail as possible to enable a coherent understanding of the LMSS. The LMSS is an integral part of the WorldWide Tracking and Ground Instrumentation Network. Logically, the world-wide network consists of: 1. An array of radar and telemetry stations, strategically located geographically, to track and report successively on the Mercury spacecraft position during Orbit and Re-entry. 2. A smaller, more localized, complex of radar and telemetry stations to monitor and report the launch trajectory achieved by the spacecraft missile assembly. 3. Several computational subsystems to process the reports obtained via 1 and 2 above. 4. A world-wide communications network to tie 1, 2, and 3 together, both on a teletypewriter data flow and narrative voice basis. An idea of the magnitude of this effort may be obtained by reference to Figure 1. From this figure, and from the rest to follow, it becomes obvious that the NASA-Goddard Space Flight Center is the hub of this communications networks. However, it must be pointed out that the decision-making functions of the Mercury flights are located at the Mercury Control Center. The portion of this overall complex that represents the Launch Monitor Sybsystem is shown in Figures 2 and 3. Figure 2 emphasizes the Systems aspect of the LMSS while Figure 3 broadly II. Launch to Insertion During this portion of the flight, several hi-speed dataflow paths are established from various sources in the Atlantic Missile Range (AMR) to and from the Goddard Space Flight Center (GSFC), including those for the purpose of local displays at GSFC. The return path of hi-speed data flow from GSFC to the Mercury Control Center (MCC) contains computed quantities to drive the displays and plotboards at MCC as required for decision-making pUrposes. A. Broadly, these simultaneous data flow paths are: ( Figure 2 and 3) 1. a. The output of the Atlas Guidance Computing System, interleaved with telemetry and discrete event information to the GSFC for processing and subsequent output back to the MCC plotboards, digital displays, wall map, and Data Quality Monitoring equipment. b. Selected outputs from the Atlas Guidance Computing System to be sent directly to certain of the displays and plotboards at the MCC. 66 Project Mercury Launch Monitor Subsystem (LMSS) I 67 WORLD WIDE TRACKING AND COMMUNICATIONS NETWORK (0---lOS o MUC WOM - - - - - LAND LINE ANDIOR SUBMARINE CABLE, TTY ----------- RADIO LINK. TTY = = = = = HIGH SPEED DATA LINK Figure 1 2. a. The output of the Impact Predictor (IP) Computing System interleaved with telemetry and discrete event information to the GSFC for proceSSing and subsequent output back to the MCC plotboards, digital displays, wall map, and Data Quality Monitoring equipment. b. The raw radar tracking information from the AMR sites may be processed in lieu of the IP output over the same hi - speed circuits to GSFC and thence as before, computed for display quantities for transmission back to the Mercury Control Center. To accomplish the above, during the Launch phase, unique and special configurations of equipment are required-operating at relatively high speed and in real-time. Special consideration was given to the reliability of the LMSS which resulted in a duplexed system configuration and redundant equipment as well as back up data sources. B. Detailed Data Flow and Functional Aspects of Equipment (Figure 4) As indicated in A.1.a and A.2.a, source information from each of two separate computing systems is combined with common telemetry (TIE) and discrete event information and sent to GSFC for proceSSing. The TIE buffer processes Binary Coded Decimal clock in for mat ion (Spacecraft Elapsed Time and Retrofire mechanism setting) plus discrete event information (Liftoff through Retro rockets fired) cyclically each 74 milliseconds in a serial mode to the Atlas Guidance and IP Buffers respectively. In addition, the parallel 24 bit output of the Atlas 68 / Computers - Key to Total Systems Control • DUPLEX COMPUTING SYSTEM • HIGH SPEED DATA SYSTEMS • COMMUNICATIONS AND SWITCHING CENTER .PLOTTING AND DISPLAY FACILITIES PROJECT MERCURY LAUNCH MONITOR SUB SYSTEM INTER SITE COMMUNICATIONS - - - - TELETYPE COMMUNICATIONS GODDARD- •••••••••• 1 HIGH SPEED COMMUNICATIONS COMPUTERS --••• CORPUS CHRISTI WHITE SANDS EGLIN ATLANTIC SHIP GRAND CANARY ISLAND KANO, NIGERIA ZANZIBAR INDIAN OCEAN SHIP MUCHEA WOOMERA CANTON ISLAND HAWAII POINT ARGUELLO GUAYMAS •-- •- ~ CAPE CANAVERAL RADARS·TELEMETRY CONTROL • • • ~ • •... o • • BERMUDA RADARS·TELEMETRY COMPUTER· CONTROL • • • • • • COMPUTING SYSTEMS HIGH SPEED DATA SYSTEMS TELEMETRY, RADARS TRANSMITTERS· RECEIVERS CONTROL CENTER PLOTTING AND DISPLAY FACILITIES MERCURY CONTROL CENTER PLOTTING, DISPLAY FACILITIES HIGH SPEED DATA EQUIPMENTS SWITCHING IP COMPUTING SUB SYSTEM ATLAS GUIDANCE COMPUTING SUB SYSTEMS • RADARS AND TELEMETRY Figure 2 Project Mercury Launch Monitor Subsystem (LMSS) / 69 * IBM 7090 SYSTEM . - - - - - - - 1 • WORLD-WIDE TELETYPE NETWORK TO AND FROM B£RMUDA4 REMOTE SIT[S SAN SALVADOR ~ * BUFFER AND r· I DUAL CAPE-IS i DATA I TRANSMITTER I I " - 1 ' _......... : DUAL DATA I ... l. , * I I ,........__ • 1 1 I 1 1 I RECEIVERS r-----·: 1 1 1 I ; . "•• ~ : : : * IBM 7090 SYSTEM i : PATRICK ! l~ i~ i I 2·J iii i TTf T FllCflT CENTER RADAR DATA CONTROL UNIT • ! I t~tCApiCANAViiAl:FlArT'i-~ IBM 7090 IMPACT PREDICTION fOMPUTER ". 00 1: 11 :: I H AZUZA . ! TIM *FOUR DATA TRANS. GODDARD SPACE I * • TTY PAGE PRINTER 1 : r.... --- GBI r----- ._.J * 1 MERCURY CONTROL CENTER I ;:, * DATA i~ 1001. l~~ *SWITCH- . RECEIVER ING ~ i: I *COMP. ~ - RECEIVING Il 1 1 I 1 :! l ! *FOUR •DUAL DATA RECEIVERS DATA RECEIVERS REGISTER '', • I • TIM BUFFER ....... :~~i DATA ·1 TRANS. I MAP DISPLAYS J I BOARDS L __________ ~ COMP. GEMOOm - - - *IBM 709 l.~ TELEMETRY PROJECT MERCURY LAUNCH MONITOR SUB SYSTEM _._._._._ .• ----------............ ............_ ... _ ... _ ... - * • TELEMETRY INFORMATION TELETYPE INFORMATION DISPLAY INFORMATION ATLAS GUIDANCE INFORMATION RAW RADAR INFORMATION (high speed) IMPACT PREDICTION INFORMATION IBM SUPPLIED NOT IBM SUPPLIED Figure 3 BERMUDA STATION -:J ~~~~~~~~~m~~m~m~~~m~~~~~~~~~mmmW~g~~~~~~~:~~~;: ~~~~~~~~;f;~ o '-.. (") o :3 ~ (t) "1 00 ,.,-rrrrrrrrrr-r rrrrrrrrrrrrr rrrrrrrrrrrrrrrrrr ~ rrrrrrrrrrr,...,...,...rrrr rrrrrrrrrrrr,..,-.-r ...... rrrrrrrrrrrrrrrrrr ,...,.-rr,...,... .. rrr,...,...,...rrr-rr ([) rrrrrr-rrrrr-rrrr,. c..::: rrrrrrrr-rrrr-rrrr-rr rrrrr..-,.rrrrrrrrr S ~ PLOT BOARD o ~ ~ D/A CONV. Ul c..::: ~ (I) :3 00 ~mmm * IBM 7281 DCC * (") IBM 7281 DCC o a "1 o * IBM 7090 SYSTEM IMPACT PREDICTION • PLOT • PLOT --~ • PLOT • PLOT BOARD BOARD BOARD BOARD I ]I ill TIl 0 • MAP WALL DIGITAL DISPLAY FLIGHT DYNAMICS OFFICER CONSOLE _.-._.-.-.-.-.-.-.-.-.-.- TELEMETRY DATA = = = = = = = ATLAS GUIDANCE DATA .......................................... IMPACT PREDICTOR DATA ------------------- GODDARD DISPLAY DATA - - - - - - - - SIMULATION OR RECORDED DATA ---+--+- - - - - - - - -............ RAW RADAR DATA MERCURY CONTROL CENTER Figure 4 RECOVERY STATUS MONITOR CONSOLE RETRO FIRE CONTROLLER CONSOLE MISSILE TELEMETRY MONITOR CONSOLE r - 1 MERCURY CONL-J TROL CENTER ~ DATA SELEC.......,NOT IBM L.:........JSUPPLIED ~TION ROOM ~ IMPACT PREDIC- W~:::,% ATLAS GUID~~~><·.x ANCE BUILDING ~ TOR BUILDING ~ IBM SUPPLIED Project Mercury Launch Monitor Subsystem (LMSS) / 71 Guidance Computer and the parallel 36 bit output of the IP Computer are transferred in microseconds to their respective buffers. At each of these two buffers, serial message units are arranged as outputs. These consist of successive Position and Velocity Vectors describing the trajectory, plus discrete TIE information indicating the phase of the mission and whether certain other events such as BECO, SECO, etc. have occurred. The T IE portion also contains the CET and Retrofire mechanism settings. These buffers are independent of each other and operate in a shuttle mode. That is, while the TIE portion of a message is being transmitted towards GSFC, the high speed transfer ~f data from the respective Computing Complex is being effected. Subsequently, while the Trajectory portion of the data is being transmitted, the T IE data is being stored for retransmission. Duplexed output transmission is accomplished at the rate of 1000 bits per second from each buffer by transmitters over 3KC (nominal) voice circuits to GSFC. For the Atlas Guidance Buffer a complete message consists of 384 bits composed of two 192 bit subframes. Because the subframes contain different information and consequently must be processed differently at GSFC, each subframe is identified. The nominal rate for repeating the complete message frame is once each 500 milliseconds. In addition, the Atlas Guidance Buffer processes information serially at a 1000 bits per second rate to a receiver and associated 128 bit receiving register located in the MCC. This process is repeated each 500 milliseconds. The inputs to this unit are converted into parallel DC levels and presented by functional grouping to the Switch Unit for further distribution to the Digital-to-Analog Converters (DIA's) associated with Plotboards I, II, III, and the Flight Dynamic Officer's Console (FDO). As will be discussed in more detail later, the Switch Unit routes sources of data being fed to the various display facilities at the MCC under remote switch control of the Data Quality Monitor Console. Several factors have been utilized to insure reliability of data transmission. These are: the use of check sums associated with the Atlas Guidance and IP Computer data, the use of parity bits in the TIE data format, plus redundancy of bit positions for certain critical discrete events. In addition, the duplexing and separate geographical routing of hi-speed transmitting lines between Cape Canaveral and GSFC in Maryland was accomplished. Also, comparable messages are time offset, one from the other, on each of the duplexed lines to insure that ,loss of data due to transmission difficulties is minimized. The transmission link from Cape Canaveral to GSFC is about 1000 miles, which results in an apprOXimate 10 millisecond delay in transmission. The IP Buffer processes information to GSFC in exactly the same manner as the Atlas Guidance Buffe r, operating on a different time cycle of about 400 milliseconds, using the same safeguards as above with respect to reliability. In addition, however, there is the possibility that due to malfunction or loss of output from the IP Complex, it may be desirable to utilize raw radar returns directly. In this case, during the transient switching time from IP Computer output to "raw radar messages" composed of range, azimuth, and elevation, the Buffer output would become 0' s interspersed with 1 's at specific locations in the serial data chain to indicate to the GSFC computers that faulty data was being received. The raw radar format and transmission method is similar to the preceding, with the added distinction of identifying the radar source in addition to the data subframe. All high speed information arriving at GSFC (refer to Figure 5) enters a two distinct and complete duplexed mM 7090 computing systems. The specific entry is accomplished via individual hi-speed receivers operating from each of the 4 hi-speed lines into the duplexed real-time input-output units called Data Communications Channels (IBM 7281DCC's). The function of the hi-speed receiver is to convert the serial data transmission into parallel digital impulses, at the same time resynchronizing the data to eliminate the time shift and converting the data into appropriate parallel 16 bit words for presentation to the two hi - speed input subchannels within the DCC. These 16 bit words are composed of two 8 bit groups representing a duplexed output from each of the two buffers located at Cape Canaveral. In the event that one 8 bit group does not arrive, within certain tolerances, concurrent with the other 8 bit group, logic circuitry enables the leading receiver to transfer its 8 bit group into the computer and inhibit the other. The DCC enables its respective IBM 7090 Computing System to accept asynchronous 72 / Computers - Key to Total Systems Control _ni :::: ~~-------------l : 9 gilr-tI I- ::l - - Cl. z W Cl. W : IBM 7281 DATA DATA -r-------~-h I COMMUNICATIONS .L I ~.&---CHANNEL RCVR: 1, i ~ ____ _ I o RCVR :J: _.__ g DATA RCVR ''fl.' i . I :! ! ! ,! : i I ! PLOT BOARD ::l a... I::l 0 W W Cl. en DATA TRANSMITTER :J: ~ J UNIT IBM 7281 DATA COMMUNICATIONS CHANNEL "BII _J IBM 7090 liB II u~~~DUu--TELETYPE FROM 16 NETWORK LINES I I ---- THE LAUNCH MONITOR SUB-SYSTEM at DATA TRANSMITTER LINES OUTPUT STATUS CONSOLE L_____ I 0 SWITCH ~......... ~NETWORK r-. I I I- ~ : ','-!'-1-'-'-!1 tt·+I·"""! ~ I ~TELETYPE I ~ TO I ~ EIGHT ill! I DATA TRANSMllTER '---~ PLOT BOARD DATA RECORDER DATA TRANSMITTER ~ - . TO EIGHT NETWORK LINES I~ '1'1'-+'-'-'" I "A" I ! ~ TELETYPE 1-+ ' 1 r+- ~ I I DATA IBM 7090 r·~~~1=~=-.~·. I : en _._ TELETYPE FROM nrnrn1T1rn~6 NETWORK LINES GODDARD SPACE FLIGHT CENTER -------IP DATE FROM CANAVERAL - - - - - - - TEST and RECORDER DATA -.-.-._.-. ATLAS GUIDANCE DATA FROM CANAVERAL , • ' I ' DISPLAY DATA - COMPUTER DERIVED - - - - - - - TELETYPE DATA Figure 5 Project Mercury Launch Monitor Subsystem (LMSS) / 73 data in real-time via independent subchannels from a diverse number of sources. These subchannels are designed to accommodate arbitrary message formats and store realtime received data in a~signed sections of the Computer's memory with minimal interference to the operating program. Associated with each of the GSFC DCC' s are the following inputs: 2 hi-speed 16 bit parallel input subchannels; 16 subchannels, of a 5 bit parallel low speed input subchannel for operation with the remote sites via teletype (TTY) link; and one 5 bit parallel low speed subchannel for local TTY paper tape entry. The clock subchannels make available: a one minute interrupt, a half seco.nd program interrupt, a binary counter continuously incremented at 8.33 milliseconds intervals, and an interval timer binary counter operating at the same increments. In addition, the DCC has certain output capabilities as follows: three 5 bit parallel output subchannels having the ability to address individually each of 8 terminal TTY output devices for processing slow speed acquisition messages via the world-wide communications network to the remote radar and telemetry tracking stations; 2 serial output hi-speed sub channels to present, at 1000 bits per second, display data to the MCC; one sense output subchannel under program control, locally and to operate indicator lights which denote certain status information. The Mercury operational program, as discussed in detail elsewhere in this volume, processes the hi-speed launch data utilizing either the Atlas Guidance, IP Computer Complex or Raw Radar as its prime source. In any case, local as well as MCC data is computed and made available. The outputs of the duplexed computer complexes are continuously monitored by means of the Output Status Console, local Plotboards, and on-line Printouts. Inasmuch as it is not the purpose of this paper to discuss the programming aspects of the Mercury system, we shall confine ourselves to generalities as to what is displayed and where. Output Status Console This console provides a set of indicators permitting the Console operator to judge the progress of each computer's output. The console also contains the necessary controls to permit selection of the computer output desired via the output Switch Unit. In addition, the Output Status Console contains relay switching to effect functional interchange of the local Plotboards and their associated D/A's. Plotboards There are two X-Y plotters at GSFC, each driven by a D/ A converter. Information plotted during launch consists of the Flight Path Angle versus Velocity Ratio and during orbit, longitude versus latitude of present position. A monitoring person stationed at each observes the plotted values to form a judgment of computer output quality. Each monitor reports his observations to the Output Status Console Operator. Each duplexed 7090 operates upon all input data so that in the event of malfunction of one portion of a computer complex, the other can be switched under control of the Output Status Console Monitor to provide all output data. Function plots of Flight Path Angle versus Velocity Ratio leave either computer via one of the hi-speed output subchannels of the DCC (in serial fashion) and are converted to analog Signals by the respective D/A converter for presentation to its associated Plotboard. The other hi-speed output subchannel is processing digital informalion serially at high speed to the common input of the 4 Data Transmitters. A complete message consisting of Odd and Even frames of data (408 bits per frame) is transmitted at the rate of 1000 bits per second, each second during Launch and each two seconds during Abort, five times a minute during Orbit and ten times a minute during Re-entry. This information is transmitted over four s p e cia I e qua liz ed, separately routed, telephone circuits to Cape Canaveral. The data on each of the 4 lines is identical although deliberately offset in time. It should be noted also that the format for all messages sent from GSFC is constant for all phases of the miSSion, the only difference being the repetition rate and the contents, whose variation can be explained by the fact that certain information is useful in one flight Phase, but not another. All data from GSFC is received in the data selection room, MCC at Cape Canaveral (refer to Figure 4). Each of the four Data Receivers at the MCC is connected to one of these lines. (['he receivers remove the time differentials and convert the transmitted data 74 I ComputeIjS - Key to Total Systems Control into d-c le~ls suitable for the operation of the digital equipment and displays. The output of three of the receivers is connected to duplexed comparator and receiving register units. The comparator unit dynamically compares the bits of the three receivers (bit by bit) and accepts as valid any two that agree. The validated bits are then converted from serial to parallel form, suitable for distribution by the switching system to the proper displays. A secondary function of the comparator is to make a comparison of the validated bit with each receiver output (bit by bit) pulsing a meter associated with each receiver when a discrepancy is noted and, in addition, actuating an alarm whenever the error rates exceed a specified level. (It should be noted that any 3 of the 4 data receivers are readily selected for operational use.) The Receiving Register contains 408 bits for conversion purposes and has a storage register capacity of 579 bits to store the output for alternate frames of data. The Switch Unit is the device, under control of the Data Quality Monitor (DQM) and Console that routes information to the proper displays and p lot boa r d s during different phases of the flight. It should be noted, however, that certain displays and plotboards are unaffected by switch action. Specifically this unit: a. Accepts the duplexed outputs of the Comparator-Receiving Registers and under switch control from the DQM console, selects one set of outputs to feed all digital displays, the DIA converters for the wall map display, Plotboard IV, and the DQM, as well as the relays which select the Atlas Guidance Computer source via GSFC or the IP Computer source via GSFC for Plotboards I, II and III. b. Selects under switch control from the DQM, Atlas Guidance or GSFC Computer source data to feed the GO-NO GO recommendation indicator on the FDO console and the DIA converters for Plotboards I and II. c. Selects under switch control from the DQM console, Atlas Guidance or GSFC Computer data to feed the DI A converter for Plotboard III. Inasmuch as the DQM and Console plays an important part in the selection of data sources during different phases of the flight, it behooves us to take a quick look at its functions and capabilities. As we have seen, certain of the data displayed at MCC during the launch phase may be produced by several alternate means: The Atlas Guidance Computer; the GSFC Computer with Atlas Guidance data, IP Computer data, or raw radar data as source. The Data Selection Supervisor determines which of these means will be used to present the data displayed. The DQM assists him by enabling rapid visual comparison of two variable quantities as produced from each of the sources. These variable quantities are the deviation from the velocity ratio and the deviation of the flight path angle from nominal values. These quantities are displayed on the strip chart associated with the DQM and updated each 1/2 second. The DQM console is an adjunct to the DQM and is use9. for monitoring certain display quality indications as well as providing the specific switch action for source data selection by the Data Selection Supervisor. Briefly, 4 data quality signals are displayed indicating reliability of data generated by the Atlas Guidance Computer. In addition, four status signals indicate sources of data currently being transmitted to other displays throughout the MCC. Also, of course, the necessary control signals must be developed to accomplish the switching function previously outlined. Specifically, the Atlas Guidance Computer output is functioning as follows when indicators are lighted: 1st indicator - Computer integrating rates of change to obtain range, azimuth and elevation. 2nd indicator - Computer differentiating range, azimuth and elevation to obtain rates of change. 3rd indicator - Computer differentiating track data to obtain lateral rates only. 4th indicator - Computer is not receiving sufficient data to generate guidance commands. The switch control on the DQM console, in addition to determining data sources as previously discussed, also initiates signals to the GSFC computers as follows: A signal is sent back via the TIE transmitting buffer indicating whether the GSFC computers are to use Atlas Guidance or IP Computer data as the prime source for deriving display quantities. Project Mercury Launch Monitor Subsystem (LMSS) / 75 A signal is used to indicate to the GSFC computer s via the T /E transmitting buffer what flight phase the mission has achieved. Assuming that the proper switching has taken place, the following ground rules as outlined in Figure 7 are observed with respect to data sources and the various digital displays and plotboards. All Digital Displays at the MCC as follows, although not considered specifically a part of the LMSS, are driven by the GSFC Computing Complex: Flight Dynamics Officers Console (FDO), Retrofire Controllers Con sol e, Recovery Status Monitor Console, Wall Digital Display, Wall Map, and Capsule Communications Console. The Launch Vehicle Telemetry Monitor displays BECO (Booster Engine Cutoff) and SECO (Sustainer Engine Cutoff) as received directly from Booster Telemetry. III. Insertion to Orbit and Re-Entry During the period following insertion, radar data will be received at GSFC via TTY transmissions from Bermuda, Grand Canary, Muchea, Woomera, Hawaii, Point Arguello, White Sands, Eglin, Guaymas, and Corpus Christi, and telemetry data will be received from all these sites and from Kano, Zanzibar, Canton Island, Atlantic Ship and Indian Ocean Ship. Although all the above stations and information to GSFC Computing Complex, only the 709 Computer Complex at Bermuda and associated data flow are considered part of the LMSS. In the following paragraphs this complex and its communication with GSFC will be briefly discussed: A. Bermuda Computing and Data Flow Complex (Refer to Figure 6) The Bermuda Mercury station is a combination Radar, Telemetry, Control Center and Computing Site. The Bermuda station is strategically located relative to the orbital insertion point during a mission and should have excellent radar and command control. Consequently, this site is able and has responsibility to make a final GO-NO GO decision as an operational backup for the function of the MCC at Cape Canaveral. At Bermuda, Radar data is acquired via two precision radars, an FPS-16 (C Band) and a Verlort (S band). An anolog to digital converter, associated with each radar, produces Range, Azimuth, and Elevation information in parallel binary form from the Verlort, and serial binary form from the FPS-16. Digital to TTY converters and transmitting equipment place the data in the appropriate format for transmission to GSFC. A choice of prime sources is made (FPS-16 or Verlort) by the Ground Communication Coordinator at Bermuda. Normally, the Verlort would acquire the spacecraft first and be so selected. However, due to its greater accuracy, as soon as the FPS-16 receives valid data, it becomes the prime source and will remain so until it no longer receives valid data, at which point reversion will be made back to the Verlort. In any case, the radar source not selected has its data stored on paper tape for later transmission after each pass. Data selection (radar source) is handled logically in the same manner with. respect to hi-speed computer input at Bermuda. The binary digital data from each of these radars is presented to a transmitter whose output is a 1000 bits/second and thence are received in the computer complex by hi-speed receivers which reconvert the serial information back to parallel binary digital data and present it, 8 bits ~t a time (from each radar), into a 16 bit hi-speed input subchannel of the DCC at Bermuda. Synchronization of the bit-by-bit transfer from the individual hi-speed transmitters is accomplished by pulsing from an on-site time standard synchronized to WWV. The rate of transfer from the radars to the DCC is 10 frames per second. The DCC at Bermuda is similar to those at GSFC. The major difference consists of a T /E Buffer input subchannel which accepts data in 8 bit parallel words at the rate of one word per sequence scan under program control. As at GSFC, there is one paper tape input and three subchannels for real-time reference. Three subchannels ha v e been allocated to handle output data, including a Sense Output Subchannel furnishing data to an Output Status Console, a TTY output subchannel which sends data to a TTY distributor, and a hi-speed output subchannel for sending data to a receiving register, which in turn, operates into a D/A converter and thence to a plotboard. Additionally this receiving register provides for a parallel readout to the Control Center Digital Displays. The operational programs for the Bermuda 709 Computer are under control of a Monitor 76 / Computers - Key to Total Systems Control •VERLORT ACQUISITION FROM GODDARD ,.. •DITTY • DATA CONT. UNIT TELETYPE TO GODDARD •DITTY *IBM • DATA TRANS 709 l. ( ·TTY OR SYSTEM ~-.,.., i PAPER TAPE iI L._. * IBM r- . . . -----1..... I •FPS-16 ! I I·~ODR: I ACQUISITION FROM GODDARD I ! I~~.~AT~ r· REC. I i L~ • DATA TRANS i II I . .,j l 7281 DATA --~*TR~NS I ,. REG. I I COMM. ·PLOT CHANNEL BOARD . TELEMETRY ... : EVENTS .BUFFER I FLT. DYN. OFFICERS CONSOLE I I I I I . •CAPSULE I COMM. .............~.... CONSOLE r-J -lfGfND- - - SIMULATION DATA I I I I I I I I I TELEMETRY DATA • • •• 01 SCRETE EVENTS DATA '\rt++..........~..... TELEMETRY ........................... - - - TELETYPE DATA TELEMETRY --------- DISPLAY DATA _.-.-.-.-.- RAW RADAR DATA * IBM SUPPLIED • NOT IBM SUPPLIED • PROJECT MERCURY LAUNCH TELEMETRY MONITO~ at SUBSYSTEM BERMUDA Figure 6 Proj ect Mercury Launch Monitor Subsystem (LMSS) I 77 SOURCE DATA PLOTBOARD #1 Launch-Velocity ratio versus Flight Path Angle Abort-Velocity versus height above -spherical earth Orbit & Re-entry-same as abort PLOTBOARD Launch Abort, Orbit & Re-entry Atlas Guidance Complex or GSFC Complex a. Atlas Guidance Source b. Impact Predictor Source c. Raw Radar GSFC Complex Atlas Guidance Complex or GSFC Complex a. Atlas Guidance Source b. Impact Predictor Source c. Raw Radar GSFC Complex Atlas Guidance Complex GSFC Complex Atlas Guidance Complex or GSFC Complex a. Atlas Guidance Source b. Impact Predictor Source c. Raw Radar GSFC Complex :fI:2 Launch-Horiz. distance versus height above oblate earth Abort-Horiz. distance versus Flight ---path Angle deviation Re-entry-Elapsed time versus height Orbit-Elapsed time versus height \spherical earth) PLOTBOARD #3 Launch-Elapsed time versus velocity, Time to go versus velocity deviation Elapsed time versus acceleration (TIM) Time to go versus height of insertion Orbit-Elapsed time versus perigee longitude Elapsed time versus orbit eccentricity --or PLOTBOARD #4 Launch-Longitude versus Latitude (impact point) Longitude versus Latitude for IP of retrofire in 30 seconds Longitude versus Latitude for IP of retrofire using maximum delay Abort-Longitude versus Latitude (impact pOint) Longitude versus Latitude (present position) Orbit-Longitude versus Latitude for ---yP of retrofire in 30 sec. Longitude versus Latitude (present position) Re-entry-Longitude versus Latitude (impact point) Longitude versus Latitude (present position) IP = impact point 78 / Computers - Key to Total Systems Control Program which was written specifically for Bermuda's role in the Mercury mission. By sampling the information provided via the Telemetry input subchannel, the Monitor Program follows the status of the mission, controls Input and Output data processing and by flight progress status temporarily transfers control to the proper subroutine for necessary computations. Prior to SECO + 10 seconds, the computer uses a modified least squares method for curve fitting for output to local displays. After this time, a short arc determination is utilized until the spacecraft is out of range. By means of the hi-speed output subchannel, the following display quantities are provided locally: Bermuda Plotboard (Control Center) Launch Velocity ratio versus Flight Path Angle Longitude versus Latitude (impact point-immediate retrofire) Abort Longitude versus Latitude (im(after pact point) retrofire) Longitude versus Latitude (present position) Digital Displays on the Bermuda Flight DynamiCS Officers Console are: altitude above oblate earth, flight path angle, time to retrofire, Velocity ratio, ICTRC -incremental changeto achieve proper retrofire (Computer recommended), GMTRC -GMT for retrofire computed, ECTRC-Elapsed capsule time for retrofire-computed, Recovery area, and the Computed GO-NO GO recommendation. In addition to the local dis pia y s, the Bermuda Computer sends via its TTY subchannel, smoothed composite values of Range, Azimuth and Elevation to the GSFC Computer Complex. All double radar sites operate in the manner descri.bed before in ultimately sending data to GSFC. Single radar sites begin transmission of data as soon as valid "on track" contact is made with the capsule and continue until such contact is lost. Generally speaking with regard to TTY communication facilities to GSFC, there are at least two separate geographic routings for transmission reliability. In addition to the raw radar information, telemetry summary information is also transmitted to GSFC where an extract of particular data relative to the time parameters of CET and Retrofire Mechanism setting is entered to the Computers via the Paper Tape input subchannel of the DCC. During orbit, radar acquisition messages are processed and repeatedly updated prior to spacecraft arrival into the radar zone of each succeeding site. These messages, containing radar antenna pointing information are received at the site by a TTY receiver and presented to the Radar Acquisition Aid Operator. A S!IMULATION MODEL FOR DATA SYSTEM ANALYSIS Leon Gainen The Rand Corporation Dayton, Ohio SUMMARY The author asserts that designing a data system to support management objectives is, at present, no more than a highly specialized art. This paper then develops the thesis that data system designers can bring their profession closer to a predictive science. Only by adapting for data system analysis purpose analytical tools which make possible prediction and quantification of data system behavior within the management system structure can this be done. This paper discusses one such tool, a generalized data system model, and describes a technique of simulating dynamic system operation with such a model in order to provide the data system designer insights on the behavior to expect from the data system as it would operate. Some of the benefits possible through such simulation are explored. The paper concludes that the major use for the present of this analytical technique is to test the feasibility of a data system design before acquisition of actual hardware. worthy of serious study because of the great potential inherent in present and promised data processing hardware to shape the management system objectives and, therefore, to enhance the concepts of management. It is also a nontrivial fact of life that data processing elements, e.g., data generators, communications devices, computers, are the most costly segments of the modern, complex management systems. Thus, it behooves a data system designer to consider the tradeoffs between contribution and cost for each data processing element in any proposed management information system. The technique of system simulation has proven invaluable for research and system analyses in many technical fields but has largely been ignored by data system designers. Yet, every data system design proposed to management is in the nature of an hypothesis, since we cannot claim to have studied data system design theory sufficiently to have I. Introduction The main object of this paper is to promote the use of simulation techniques for the analysis of data systems that have been designed for management information processing. I will describe our research goals at The RAND Corporation for the development of an allmachine data system analysis model designed for this purpose. Before doing so, I shall present some views on the necessity for employing more objective analytical tools to improve the quality of data system design, and indeed, to bring our profession closer to a science. A data system designer tries to optimize the use of data processing techniques and equipment as tools of a management system. Accordingly, one must recognize that optimizing the methods and means of information flow is not the objective of the management system. Nevertheless, this subject area is 79 80 / Computers - Key to Total Systems Control established incontravertable laws in this field. Even when data system design is expertly done, present techniques cannot in any quantitative way assure the "best" system has been achieved, or even that a system will operate as reasonably as· can be expected under the time and dollar constraints imposed by management. How can data system designer s prove the merit of their assertions if they are often based on visionary concepts, hypothetical equipment, or revolutionary departures from standard procedures? Indeed, in the light of present disenchantment by some managements with their data processing systems' one may ask if data system designers can prove even the feasibility of their handiwork. I contend that data systems can be modeled to sufficient detail to allow investigation of Significant data system design parameters, and that dynamic system operation can be simulated. Data system performance studied through simulation can provide insight on system behavior long before actual hardware acquisition. In this way, modification in system design can be made before it becomes too late to make a change. If data systems are to be adequately analyzed before being cast in hardware, then it would appear that simulation of system operation is required in order to weigh properly how well the uncertainties and the variabilities that usually under lie system design parameters have been accounted for. Furthermore, as long as proven analytical tools are available, data system designers cannot continue to rely on the ipse dixit approach for solving their theoretical problems. Hopefully, our research will determine how well simulation can improve data system design. II. The Data System Let me first describe the data system we are considering for representation in our model. The data system is the set of hardware and human resources plus the procedures defined that either generate, record, communicate, process, store or report data and information to prescribed management system entities in a prescribed form and format. Figure 1 is a schematic of a generalized data system, with each of the above functions symbolized by a particular geometric shape. It is not necessary for each of these functions explicitly to occur in the operation of a data system as, for example, when data are generated, recorded, and communicated simultaneously to the proceSSing and storage function. For convenience, the first process is the one represented in the schematic of Figure 1. III. The Problem of Data System Design In general the problem of data system design is to create a system which optimally uses the resources selected to do the assigned job. This is not a problem, as stated, except that constraints exist to limit the freedom of choice and utilization of candidate resources. Generally speaking, the major constraints are limitation in the number of dollars and the level of skills which can be applied to effecting the desired solution. Data system restrictions also may be imposed by management system objectives. Finally, even if given the freedom to create the best data system possible, there are theunderlyinguncertainties in the design parameters with which we usually deal. (See Figure 2.) A balanced set of data system elements would provide an ideal solution to the data system designer's problem. This means that each system function is provided just the correct types and proper mixes of resources to satisfy each function's requirement for data manipulation. But isn't it true that the stochastic nature of data generation, random equipment failures, and differing data system responsiveness required by various management system sub-functions all mit i gat e against achieving the desired balance in the data system? Thus, to arrive at a data system design which approaches a balanced system requires study of the system giving due consideration to the effect of these factors on the operation of the system. IV. Structure and Operation of the Data System Model The structure of the simulation model proposed in this paper for data system analysis is simply illustrated in Figure 3. From this figure it is seen that all the functions of a data proceSSing system are considered. Each of these must be impliCitly or explicitly considered in the data system design, and, therefore, is represented in order that one can evaluate its effect on total system performance and its contribution to system costs. These functions are: A Simulation Model for Data System Analysis / 81 SCHEMATIC OF A DATA SYSTEM FUNCTIONS c=J o I o I 6 DATA GENERATOR DATA RECORDING COMMUNICATION I IPROCESSING AND STORAGE REPORTING CD:> REPORT PRESENTATION Figure 1. Schematic of a Data System THE DATA SYSTEM DESIGN PROBLEM OPTIMIZE RESOURCE USE o EQUIPMENT> o PERSONNEL CONSTRAINTS o RESOURCE LIMITATION c:J c::::J TOTAL BUDGET SKILL LEVELS AVAILABLE o MANAGEMENT SYSTEM OBJECTIVES o UNCERTAIN DESIGN PARAMETERS Figure 2. The Data System Design Problem 82 / Computers - Key to Total Systems Control FUNCTIONS OF A DATA SYSTEM DATA GENERATION ... DATA RECORDING t COMMUNICATION -'0. r .. + ~ TO PROCESSING ,...----------, ..-L~ ~ TO MANAGEMENT REPORT PRESENTATION " I I IL _ _ _ _ _ _ _ .....JI ~ --~ COMMUNICATION ~-- PROCESSING AND STORAGE " REPORTING Figure 3. Functions of a Data System (1) Data generation (2) Data recording (3) Communication (4) Processing and Storage (5) Reporting (6) Report Presentation. Our model is intended to be general enough for one easily to compare various data system proposals for a given management system. Before analysis, however, comes design. Use of our model requires that a management system be studied in sufficient depth for an information set to be described and a resource allocation made in terms of people and/or equipment required for each data system function. USing the same known (or anticipated) rates of data generation, computation, information growth that led to the design of the data system, and the specifications of the human or hardware resources, each data processing function is simulated. When the complete data system cycle is run through the simulation, or when the number of cycles required for analysis is completed, one can assess the effectiveness of each data system segment as part of the whole data proceSSing system, provided that a severe data system has not been exposed during the simulated operation. Costs of a system can be weighed against management system effectiveness for each alternative configuration of data system design. This is done by re'peating the analysis using alternative data system design statements. If these alternatives are only in hardware specifications, these new values are the only change required in model input. If an alternative system structure is specified as a change in data flow, the reanalysis is a little more complex. bottleneck~~ ~:~When such bottlenecks appear to the analyst to be m.erely in the number or the quantity of hardware, then (cost constraints allowing) a solution to the design problem is obvious, i.e., get more or better hardware. This solutionassumes that the policies of system operation either are not responsible for the bottlenecking, or they cannot be relaxed. Reanalysis of the system operation would be required with any new hardware as signment in order to insure that the bunching in the data flow had not been passed on to the data system segments which follow. A Simulation Model for Data System Analysis / 83 equipment data transfer rates. For example, Simulation Control if a tape-to-card device is not backlogged and The basic control of all events occurring in the simulation of system activity is geared to a master clock which counts the passing intervals of time during the simulation. A management system may include more than a single function. Since the Significance of time may vary from one management system function to another, e.g., 15 minutes for inventory control, one-half day for finance, the least Significant interval (LSI) of all the functions included in the simulation determines the intervals which the master clock uses in stepping through time. The model examines all data system events and all equipment Simulated, at least implicitly, every least significant time interval of each simulated day t s operation. These events include the types and amounts of data input to each data system function, either originating from the function or as a necessary step to another data system function. Demands for equipment are converted from the data input statement, given in terms of message form, frequency and size, to the basic unit of measurement, the LSI, using the given DATA 0 a data workload of less than one LSI of tapeto-card time is demanded at the beginning of an interval, a scheduled job will be considered completed and no backlog for this equipment is carried forward to the next time interval. Simulated Functions Data Generation. The locations at which system data are generated often represent an important consideration in the design of an information flow system. Thus, the management functions for which data are gathered and the system locations at which they originate are variables in the data system model. Since in many management systems data generate at one location for many functions, such situations shall be anticipated within the data system model. The characteristics of generated data that must be described to the model by the system designed for each function-location pairing are those which the data system designer must know in order to prescribe a data system structure. These are listed in Figure 4. CHARACTERISTICS MESSAGE SIZE CJ c:J CHARACTERS UNITS 0 MESSAGE FREQUENCY 0 MESSAGE FORM 0 REPORTS REQUIRING MESSAGE DATA 0 DATA SYSTEM ROUTES Figure 4. Data Characteristics 84 / Computers - Key to Total Systems Control RESOURCE CHARACTERISTICS o DATA TRANSFER RATES o CAPACITY LIMITATION o ERROR FUNCTION o UNUSUAL FEATURES Figure 5. Resource Characteristics A table of resources, characterized as in Figure 5, for each data generation station, e.g., personnel, equipment, prescribed by the deSigner includes their data transfer rates and makes possible within the simulation a conversion of data characteristics to simulated workload units, expressed as a number of least significant intervals. In addition, we allow an error function associated with each station in order to simulate resource malfunction, e.g., equipment downtime. Data processing starts with data generation. For any management system function for which the present interval is a Significant time interval we determine the amount and type of activity data generated at each location. This activity can be either predetermined for each internal or generated stochastically, depending on how the "message frequency" statement is presented to the model. This yields completely described message groups for each significant functionlocation pair at every significant time interval of every function. The conversion to LSI units is the next model action. Then, a delay is computed, dependent on the resources assigned and available at each location, describing both the time to generate the message groups and the time to transfer these data from each location to the next data system operation, as prescribed by the "data system routes" statement. Data Recording. Normally, only those generated data are recorded which are to become part of the requirement for information in the management system being simulated. Recording is defined as arranging data in a form and format required for communication to the proceSSing and storage function of the data system by whatever means prescribed by the data system designer. The number of recording devices, their locations with respect to the next proceSSing step, and the types of recording devices are :variables of data system design. Data handling rates for each deVice, and the error function assumed for each method of recording are inputs to this model segment~:~. Certain ground rules, i.e., policies, will be required to permit allocation of resources to workload when queues form. Previously generated data routed to the recording function are assumed to have arrived in a single batch to recording stations. Each LSI, the requirement for recording is matched against the availability of the recording device-type that is specified for each message group within ~:~n a very sophisticated model it would be necessary to assign a failure function for each type of recording device. This error generating function can indicate errors that are either discovered or not during recording process. A Simulation Model for Data System Analysis / 85 the "data system routes for messages" statement. By computing an appropriate delay, we simulate the number of intervals required to record messages. Using specified policies, allocation to each available device is made. Devices are committed at the beginning of each least significant interval, so that backlogs are either present or not at each device at the next interval. Again, as in the Data Generation function, the number of intervals required to present recorded data to the next data system step is computed for each message group. This delay is simulated before these message groups are allowed to arrive at the data system function which is planned to be their next destination. Communication. The similarity between the Communication and the Data Recording portions of the model is obvious. Messages arriving and equipment available are treated identically. All functions are included as part of the model in order to allow for analyses of alternative data systems designs which postulate various mixes of resources within these functions. Processing and Storage. Activity at a processing center is usually well defined in any management information system which controls some important commercial or military function. Data systems designers concentrate almost entirely on this aspect of the data system. Equipment for each processing run is usually scheduled; as a minimum, a sequence of runs is stipulated, and an equipment assignment for each run can be determined fairly accurately. The data system model would require as input a list of all devices used in the processing center, both on-line and peripherally, plus the schedule for each device either predetermined or implied by a required sequence of operations. Certain important processing hardware parameters are required model input, such as numbers, data transfer rates, and data densities of input andoutput devices, and the amount, type and operating rates of directly addressable storage. Finally, we require a description of the input-output and computing over lap capability of the processor, or any unusual feature that affects processing and storage. Programming parameters, hopefully, can be considered also. These can be stated as estimates of data and instruction storage requirements for programs, and are related to the decision level of the processing required. The problem as presented to this section of the model is as follows: data are arriving from the generation, recording, and/or communication functions of the data system for storage and processing. These data must be: 1. Stored for later use, e.g., three runs hence, the next day, or weekly cycle. 2. Stored for recall during the next run, i.e., with no setup time required. 3. Immediately processed. 4. Combinations of 1, 2, and 3. This much about the data and the processing cycle are usually known after preliminary system design: the equipment needed to process the data, the desired product, the required steps of processing, the capacity limitations to storage, and the sets of data needed to effect the end result of processing the data. Simulation of the processing and storage activity of the data system will include the assignment of message groups to pre-processing periphery equipment, to the main processing steps, and to the reporting function in accordance with the scheduling rules that are system design facts input to the model. The amount of time each machine run requires each piece of equipment in theprocessing list is computed. This is determined from the size, number, and types of message groups arriving for processing, the equipments' rates of processing, and the error function associated with each piece of hardware in the system. Equipment bottlenecks in the processing and storage function will be recorded for post-modeling system analysis. Length of slack periods and useful operation will be measured for each equipment. The cost for each equipment can be computed for use in analyzing the effectiveness of the data processing and storage function of the management information system. Reporting; Report Presentation. For those reports required by system managers which are not direct products of the processing step, the report form and format produced and the operation of equipment proposed can be simulated in much the same manner as in the data recording function. In this way the contribution of specialized data reporting equipment as part of the overall data system equipment mix can be measured and costed. 86 / Computers - Key to Total Systems Control v. Use of the Model For' what purpose might a data system analysis model be used? Feasibility testing of a proposed management information system design under anticipated operational and environmental conditions is, for the present, the most likely candidate. The fact that total management system optimization may not be possible ought not limit the model's application. Used early enough in the design stage of a management information system, a feasibility test made possible by use of a simulation model can indicate the way to avoid serious data processing system imbalances before the final commitment for hardware has been made. On the other hand, if the die is cast and a management system is already implemented, simulating data system growth factors can anticipate future data system requirements. Sounder decisions on the type of additional resources to be required, and when these must be on hand can be made on confident predictions of how and where the system will be deficient. We know too little now about complex information system behavior to reject the present objective of a data system analysis model, feasibility testing, limited as it may seem, as an insufficient payoff for our research. On the contrary, we feel that we will achieve the means of better understanding data system in t era c t ion s through this research. VI. Measures of Effectiveness Repeated feasibility testing, with various data processing system configurations assumed as model inputs, provides a means of selecting a particular data processing system design as the best of a set of possible alternatives, provided a measure of effectiveness for data processing systems can be agreed upon. Any means of comparison, even though not guaranteeing optimization, provides a basis for system designers, early in system design, to quantify appraisals of a management system's effectiveness, which at present can be no more than pure judgment. Confidence to restructure a data system design can be provided by such quantification of analytical processes through the simulation procedure outlined in this paper. We could hope for optimal systems designs were we able to agree on what we mean by data system effectiveness. It ought not be difficult for data system analysts to agree on the measures of effectiveness that are most important in systems design. It ought not, but it is. We can readily agree that the ability of a system to meet the specified program is extremely important; but whether excess capacity versus system cost, or system cost for work accomplished, or additional system cost to perform the next required increment of system mission is the significant measure of effectiveness of aparticular data system configuration is certainly not an accepted standard. One might avoid this problem by saying that management makes the ultimate decision and this is a policy matter beyond the realm of data processing expertness. Be that as it may, with the use of the data system analysis model we can assess the feasibility of a system to perform the mission for which it is designed, and concurrently (1) list the unused capacity within each data system function, (2) cost out the operation under standard contractual procedures (e.g., purchases are in integral units of equipment, rental is on complete or partial shift basis), and (3) with the above data assess, preferably with further simulation, the information system's capability to take on additional functions. Since the measures indicated in (1) and (2) above will be outputs of the simulation for all the data processing resources in the system, requirement for additional resources necessary to perform any increased workload can be pinpointed to those functions of the information system which appear most likely to need bolstering. W. Conclusion In conclusion, I submit that the research goals outlined in this paper appear ambitious. Yet, one can hope that the process of study itself will enrich our comprehension of the data system design process. I have no doubt that in time analytical tools will provide data system designers capability to measure, to quantify, and to predict the behavior of important characteristics of the data system. I have no doubt that one day simulation will routinelybe a part of the data system design process. We believe that our research may contribute to the early recognition of the value of data system simulation as one tool to enhance the profession of data system design. A GENERAL PURPOSE SYSTEMS SIMULATION PROGRAM Geoffrey Gordon International Business Machines Advanced Systems Development Division White Plains, N. Y. 1. INTRODUCTION difficult to foresee all eventualities, and, even if it were possible, it would present a formidable task to incorporate all the possible changes within one program. The process of initiating a simulation study involves two major tasks. First, a model of the system to be studied must be constructed and then a program that embodies the logic and action of the model must be produced. If some formal method of describing models through a well-defined language can be established, then it is possible that the process of producing a simulation can be made more automatic. A single program could then be written to accept any logical statement made within the language and the problem of initiating a simulation is reduced to finding a description of the system to be simulated within the language. Such a program would be general purpose in the sense that it would simulate any system that can be described within the language. The use of block diagrams as a method of describing systems is well established, and it forms a natural choice on which to base the input language for such a general purpose program. An earlier paper [1], of which the present writer was a part author, described a program, based on the use of sequence diagrams, that was initially designed for studying problems in the design of telephone switching systems. The work carried out then indicated that programs based on block diagram language could be applied more widely. The main purposes of this paper are to describe such a program that has been Recent years have seen a very rapid growth in the use of digital computers for simulation work, particularly in the field of system studies. The need for such simulation has been generated by the ever-increasing complexity of systems that are being designed, while the speed and capacity of modern digital computers have provided the means by which to expand simulation efforts. The amount of simulation and the complexity of the studies that are being conducted have presented several difficulties in organizing the use of simulation. An immediate difficulty that arises at the beginning of a simulation project is to provide an adequate description of the system to be studied. The description can be no more detailed than the current information available to the engineers or analysts studying the system, but, at the same time, it must be sufficiently complete to form the basis of a computer program. Further difficulties are created by the fact that there are often many design variations to be studied, and the information on which the simulation is based usually changes rapidly. It becomes very important to be able to reduce the amount of effort required to produce a working simulation program and to minimize the amount of time spent introducing changes in the simulation to follow systems alterations. Simulation programs for particular studies are, of course, written with as much flexibility as possible, but it is extremely 87 88 / Computers - Key to Total Systems Control developed from this early work and applied successfully to the study of a large number of different systems and also to summarize some of the experience gained with the program. The program that is to be described is written for the IBM 704, 709 and 7090 Data Processing Systems in versions suitable for either 8,000 or 32,000 word memory computers. To make use of the program the system to be simulated must be described in terms of a block diagram drawn in the manner that is detailed in this paper. No knowledge of the computer operation is assumed. The user need only know the rules by which models are to ,be constructed. The simulation allows the user to study the logical structure of the system, to follow the flow of traffic through the system and to observe the effects of blocking caused either by the need to time-share parts of the system or by limiting the capacity of parts of the system. Outputs of the program give information on: • The amount of traffic that flows through the complete system or parts of the system. • The average time and the distribution of time for traffic to pass through the complete system or between selected points of the system. • The extent to which elements of the system are loaded. • The maximum and the average queue lengths occurring at various parts of the system. Statistical variations can be introduced in the simulation, and arrangements are made to sample the state of the system at various points of time. The effect of assigning levels of priority to units of traffic can be studied. It is also possible to simulate the effects of peak loads by varying the load on the system with time or by varying speeds of operation with load. The following Section 2 describes the principles upon which the program is based. Section 3 describes the basic block types used by the program. Section 4 describes the operation of the program and its outputs. Some worked examples are given in Section 5 and a final Section 6 discusses some of the experience gained with the program. 2. PRINCIPLES OF THE PROGRAM 2.1 System Block Diagrams Block diagrams are a widely used method of describing the structure of systems. They consist of a series of Blocks each describing some step in the action of the system. Lines joining the blocks indicate the flow of traffic through the system or describe the sequence of events to be carried out. Alternative courses of action that arise in the system are represented by having more than one line leaving a block and one block may have several lines entering it to represent the fact that this block is a common step in two or more sequences of events. The choice of paths where an alternative is offered, may be a statistical event or it may be a logical choice depending upon the state of the system at the time of choice. The units of traffic that the system operates upon depend upon the system. They might be messages in a communication system, electrical pulses in a digital circuit, work items in a production line or any number of other factors. For convenience, the units upon which the system operates in this program will be described as Transactions. Although a block diagram is a commonly used means of describing systems, the manner in which a system is described in normal block diagrams depends upon the system and the person describing the system. For the purpose of this program, certain conventions have been established for constructing block diagrams and a number of block types have been defined, each having properties that correspond to some basic action that can be expected to occur in a system. The program requires that the system to be simulated be described in terms of these block types in a manner that is consistent with the conventions. A total of 25 block types is allowed by the program. Each is distinguished by a name which is descriptive of its action and most of them have been given a distinctive symbol for representation in a system block diagrams. Every block introduced into the simulation must be given a number called a Block Number to identify it in the program. There is an upper limit on the total number of blocks that may be used in the simulation. In the standard deck assembled for 32,000 word memory the limit is 2047 and in the case of the 8,000 word version the limit is 511. A General Purpose Systems Simulation Program / 89 Information about each block of the diagram describing a system is punched in a single card. The deck of all block cards together with certain control and data cards form a problem deck which constitutes the input to the simulation program. 2.2 Block Times The program operates by creating transactions and effectively moving them from block to block of the simulation model in a manner similar to the way in which the units of traffic they represent progress in the real system. Each such movement is an event that is due to occur at some point in time. The program maintains a record of Clock Time and the Block Departure Times at which these events are due to occur and the simulation proceeds by carrying out the events in their correct time sequence. Where transactions are blocked and cannot move at the time they should, the program moves them as soon as the blocking conditions change. The program does not simulate the system at each successive interval of time, instead, it updates the clock time to the next time at which an event is to occur. The controlling factor in the amount of computing time used by the program is, therefore, the number of events to be simulated and not the length of real system time over which the simulation is being made. All times in the simulation are given as integral numbers. The unit of time represented by a unit change of clock time is to be determined by the program user. When a transaction enters a block, the program assigns to it a Block Time that determines the period for which the transaction will stay at that block before attempting to leave. The block time represents the time that is required in the system for the action the block simulates. This action time is not always well-defined. The block time is therefore arranged so that it can vary in a random fashion. For each block there are specified a Mean and a Spread. When a transaction enters a block, a block time is computed by choosing at random, an integral number between the limits of the mean plus and minus the spread. The spread may be 0, making the block time a constant; the mean may also be 0, making the block time always O. 2.3 Block Successors With the exception of blocks that remove transactions from the system, all blocks must have at least one successor, referred to as Next Block 1. For most block types there can be an alternative successor, Next Block 2. The number of times that anyone block may appear as the successor to other blocks, either as next block 1 or 2 is unrestricted. Except in the case of the Branch block, which is described in Section 3, no block has more than two exits provided as alternatives. It is always poSSible, however, to place blocks with zero block times in cascade, forming networks that provide any number of alternatives. Whenever a choice between alternative paths is to be made at a block, a number, called the Selection Factor, is given at that block to indicate the manner in which the choice is to be made. The selection factor is denoted by the letter S. Where only one exit is specified at a block the value of S is taken to be O. When S has a value greater than 0 but less than 1, the probability of a transaction going to next block 1 is 1 - S; the probability of going to next block 2 is S. When S has the value 1, the transaction will always attempt to go to next block 1. If, however, this path is blocked, the transaction will attempt to go to next block 2. In this way, the program is able to divert the transactions to an alternative course of events when it finds that one section of the system is busy. 2.4 Equipment The system to be simulated will usually include certain components that operate upon the transactions or are engaged by the transactions during the course of their progress. Allowance is made in the program for such components by introducing the concept of Items of Equipment. Certain block types are concerned with describing the interactions between the transactions and the items of equipment. Many items of equipment can only handle one transaction at a time and a distinction is made between this type of equipment and the type of equipment that can have multiple occupancy. Equipment of the first 90 / Computers - Key to Total Systems Control type which can be used by only one transaction at a time is usually referred to as timeshared equipment. Equipment of the second kind is referred to as space-shared equipment. Allowance is made in the program for both these types of equipment. Time-shared items of equipment are called Facilities and space-shared items of equipment are called Stores. The relationships between the items of equipment of the simulation and the components of the system vary from one study to another and, indeed, may vary within one study. For example, in simulating a system that includes a computer as one of its components, one study might regard the computer as a single item of equipment. Another study may require more detail and the major components of the computer-such as the memory, the various registers, the inputoutput devices, etc.-might need to be defined as separate items of equipment each with a characteristic capacity. In another example there might be a communication link with several channels connecting two points. One study might treat the link as a single store with capac ity equal to the number of lines. Another study, in which the performance of the individual channels is of importance, might treat each channel as a separate facility. The ability of one transaction to block another by controlling a facility can be used to introduce control into a model. Frequently ~ facilities that have no particular correspondence to a component of the system are introduced into the simulation model to act as logical control elements. If, for example, there are two or more parts of a system which are such that only one part may be in use at a time, entrance to anyone part can be made contingent upon seizing a facility that will then block off the other parts. Similarly, there are many occasions on which a store in the simulation does not correspond to an actual component of the system being simulated. Instead, the store is introduced as a control element to limit the number of transactions that can enter a section of the block diagram. In particular a store can, if desired, be arranged to have a unit capacity, in which case it restricts access to some part of the diagram to a single transaction. There is an important distinction between control exercised in this way by a unit capacity store and a faCility. The program does not keep record of which particular transaction enters a store. It is possible therefore, to fill the store with one transaction and to empty it with another transaction. This provides a form of control different from that exercised by a facility where the same transaction that seized a facility must release it. 2.5 Parameters and Functions It is possible to assign to any transaction a number referred to as a Parameter, which can be used for several purposes. A major use of parameters is in connection with the functions that are described later. These functions can be used to allow a parameter to control the time that the transaction to which it is assigned spends at a block. At other points of th~ simulation, the parameter can be used as a weighing factor in controlling equipment and in gathering statistic s. The program allows for the inclusion of a number of Functions each of which is expressed as a table of numbers. These functions can be used for two purposes; to modify block times and to act as a source for parameters. The manner in which functions are expressed is illustrated in Figure 1. If a function is to be used to modify a block time, the fact is indicated by referring to the number of the function on the card describing the block. The same function may be referred to by any number of blocks. A function does not give block times directly. Instead, the program computes a block time from the mean and spread at the block and scales the result with the function value. Block times can be modified in four different ways, or modes, by using a different quantity as independent variable to the function. Figure 1. Ar rangement of Functions. A General Purpose Systems Simulation Program / 91 (a) By using parameters as input variables a transaction can control its own block time. This mode allows the program to make processing depend upon such factors as message length, number of items in an order, etc., by attaching these meanings to the parameters assigned to transactions. (b) The function can provide a random distribution of block times that is more specific than the rectangular distribution derived from a mean and spread. The distribution may be the summary of some known data relating to the system or it may be an approximation to some theoretical relationship. (c) By using clock time as an independent variable, block times can be made a function of clock time. One use of this mode is to be able to vary the load on the system with respect to time. This is done by applying the function to those blocks creating transactions; the block times of these blocks control the rate at which transactions are introduced into the system. (d) By using the number of transactions currently in a particular store as independent variable, block times can be made to depend upon the number of transactions in a system or some part of the system, and so reflect the effect of system loading on operation times. The use of a function for assigning parameters to a transaction is called for at the Assign block type that is described in the next section. The value produced from the function becomes the parameter directly. The function being used for assigning parameters can, if desired, be used in any of the four modes that have been described. This includes the parameter mode so that, if desired, the existing parameter on a transaction can be used to reassign the parameter on the same transaction. 2.6 Priorities Frequently two or more transactions maybe directed to take over an item of equipmentat the same instant. They may have arrived at that point simultaneously or they may have been waiting for the use of some item of equipment that has just become available. Under these conditions it is possible to assign priorities to blocks that will determine the order in which the transactions will advance. A total of four levels of priority can be assigned, including the normal level in which no specific mention is made of priority. Every transaction assumes the priority level of the block which it is currently occupying. When two or more transactions are competing for an item of equipment, the program will give precedence to the transactions coming from the block of highest priority. 3. BLOCK TYPES 3.1 Entering and RemOVing Transactions Six of the block types are concerned with entering and removing transactions from the simulation. These are illustrated in Figure 2. Originate and Generate blocks are both used to create new transactions and enter them into the simulation. At the beginning of the program run an initial transaction is createdat every Originate and Generate block. New transactions are created and entered independently as the simulation proceeds. As each transaction is created, a block departure time for the transaction is computed. The means at these blocks therefore control the rate at which these blocks create transactions. In the case of Originate blocks a new transaction is c r~ated when clock time reaches the block departure time of the preceding transaction irrespective of whether ODO o 00 Originate Generate Split Call Terminate Write Figure 2. Entering and Removing Transactions. 92 / Computers - Key to Total Systems Control the preceding transaction leaves the block. A Generate block is identical with an Originate block except that when a transaction attempting to leave a Generate block is blocked, further creation of transactions is held up. An Originate block is used, therefore, where the Uow of transactions is not under direct control of the system as might happen, for example, with automobile traffic in a road system. A Generate block is used where the system can stop and start the flow of transactions; for example, a computer system calling for records from a tape. Split blocks are concerned with creating copies of transactions that are already in the system. When a transaction enters a Split block, an exact duplicate of the transaction is created and sent to next block number 2 while the original leaves via next block 1. All details of the original transaction are copied in the duplicate. If desired, both can go to the same block by making next blocks 1 and 2 the same. There is no restriction on the number of times a transaction can be split so that, by cascading Split blocks, any number of copies can be created. Call blocks are used to enter transactions from a prepared tape. If desired, this tape may have been produced in a previous simulation run by using the Write block, described below. Terminate blocks are used to remove transactions from the simulation. In addition Write blocks may remove transactions. The primary purpose of the Write block, however, is to make a record on tape of each transaction entering the block. These records may be used for data analysis or they may be entered into a later simulation at a Call block. Having written a record, there is a choice of whether the transaction is destroyed or passed on to another block. 3.2 Advancing and Marking Transactions Six of the block types are concerned solely with advancing transactions or marking transactions in a specific manner. These block types are illustrated in Figure 3. Advance blocks represent the simplest type of block action in the program. Their principal use is to represent some step in the system that requires a period of time but does not involve an item of equipment. Since Advance blocks accept all transactions that want to enter, they cannot cause blocking. They are frequently employed, therefore, as buffers at the output of other block types that use equipment. A Branch type block is the same as an Advance type block except that the successor may be selected from n blocks, where n is any number between 2 and 127 inclusive. The blocks between which the selection is to be made must be numbered consecutively. The lowest numbered block is referred to as though it were next block 1 and the highest number block is referred to as though it were next block 2. The selection factor at a Branch block can only be 0 or 1. When the selection factor is 0 the choice of exit from the block is made on a statistical basis. The probability of choosing any exit is assumed to be the same as choosing any other. When the selection factor is 1, the program will attempt to send a transaction that is due to leave by way of the lowest numbered exit. If this is blocked, the program will try the next highest and so on. There are many situations where it is desirable to have· a section of the block diagram made a common segment shared by transactions from different parts of the system. To achieve this, it must be possible for transactions to enter into the common segment from a number of points and, at the end of the common segment, to return to different points according to the original point of entry. A Tag block has associated with it a number referred to as the tag. Whena transaction enters a Tag block, a record of the tag is entered into the transaction. The block is otherwise the same as an Advance block. The DebO Advance Tag Mark Q o 0-----0 Branch Transfer Assign Figure 3. Advancing and "Marking Transactions. A General Purpose Systems Simulation Program / 93 tag is used to note the pOint to which a transaction should be returned before sending the transaction into a common segment of the system. The tag is entered into the transaction by adding into a field set aside for the tag that is initially set to zero. Consequently, if a transaction is sent through more than one Tag block before reaching a Transfer block, the sum of all the tags will appear in the field. In this way it is possible to carry out the function of multiple tagging. Transfer blocks are used to send a transaction to a block whose number has been recorded in the transaction itself by Tag blocks. Since the destination of the transaction is predetermined, Transfer blocks do not make reference to a next block 1 or 2; nor do they have a selection factor. A Mark type block records in the transaction the clock time at which it entered the Mark block. This is used for the purposes of gathering statistics. An Assign block is used to attach a parameter to a transaction. The program se~ects the parameter from a function referred to by the block. The function can be employed in any of the four modes described in Section 2.5. 3.3 Engaging Facilities Six block types, illustrated in Figure 4, are concerned with allowing transactions to control the use of facilities. Since facilities are defined as time-shared items of equipment, only one transaction can have control of a fac ility at a time. There can be many blocks at which control of the facilities is taken over indicating different points at which the facility is required. The particular facility associated with a block is indicated Hold Seize Release Interrupt Preempt Return Figure 4. Engaging Facilities. on the card des9ribing the block and is shown on the block diagram by entering its number in the flag attached to the symbol for the block. A Hold block allows a transaction to take over control of a facility as the transaction enters the block. The transaction gives up control of the facility when it leaves the Hold block. A Sieze block allows a transaction to take over control of a facility as the transaction enters the block. The transaction does not give up control when it leaves the Seize block. A Release block causes a transaction that has gained control of a facility at a Seize block to give up control as it enters the block. Between the points of seizing and releasing the facility, blocks can be inserted to represent the sequence of events the transaction will go through while it has control. A transaction that has gained control of a facility will deny use of the facility to all other transactions attempting to enter a Hold or S~ize block until it relinquishes control. Two other block types are specifically designed to allow a transaction to interrupt a transaction that· has gained control of a facility at a Hold or Seize block. An Interrupt block allows a-transaction to take over control of a facility as the transaction enters the block, even if the facility was controlled by a transaction at a Hold blockor hadbeen taken over at a Seize block. The interrupting transaction gives up control of the facility when it leaves the Interrupt block. A Preempt block is the same as an Interrupt block except that control of the .facility is not given up at the time the transaction leaves the block. A Return block causes a transaction that has gained control of a fac ility at a Preempt block to give up control as it enters the block. The Interrupt and the Preempt blocks allow a transaction to take over control of a facility whether or not it means interrupting another transaction. When an interruption is necessary, control is always passed back to the transaction that was interrupted. A transaction that has been interrupted remains frozen at whatever block it was situated at the time of interruption and, when it gets back control of the facility, it continues to remain in the block for a time equal to the 94 / Computers - Key to Total Systems Control res idue of the time it was due to stay at the time of interruption. It is not possible to interrupt a transaction that has gained control of a fac ility by entering an Interrupt or Preempt block even though that transaction may have gained control without actually effecting an interruption. A transaction attempting such an interruption must wait until the first interruption is completed and it will then take over before control is passed back to any transaction that may have been interrupted. 3.4 Occupying stores Three block types, illustrated in Figure 5, are concerned with transactions occupying stores. Each such block is associated with a store, which is indicated in the flag attached to tl).e block diagram signal. The capacity of the store is defined on a separate card at th,e'time of starting the simulation. The same "store may be referred to by more than one block allowing the store to be employed at different parts of the system. A Store block allows a transaction to take up storage space when the transaction enters the block. The space is given up when the transaction leaves the block. An Enter block allows a transaction to take up storage space when the transaction enters the block but the space is not returned when the transaction leaves the block. Whenever there is insufficient storage capac ity, transactions will be stopped from entering the Store or Enter blocks until capacity does become available. Each block type associated with a store can operate in one of three modes, which control the amount of storage space that is taken up or returned. In the normal ~KJ Store P · I 3.5 Gathering Statistics Two block types, illustrated in Figure 6, are specifically designed for the purpose of gathering certain statistics from the simulation. Transactions will on occasion become blocked because equipment is busy or the transactions may require that the equipment be in a particular state before they advance. In such cases, queues can build up at blocks not involving the use of equipment. There is no limit on the size of the queues other than an overall limit that applies to the totalnumber of transactions in the entire system. A Queue block causes the program to compute the average number and the maximum number of transactions that are kept waiting in the Queue block. No statistics are kept on queues occurring at any other block type. There is one queue associated with each Queue block. It is indicated on the card describing the block and it is numbered in the flag attached to the Queue block symbol. The same queue may be associated with more than one Queue block. Tabulate blocks are used to derive two types of statistics on transactions moving Enter DC) Leave Figure 5. mode the amount of storage space involved is a single unit. In a parameter mode the amount of storage space is equal to the size of the parameter (including the possibility of a zero). In a total mode all available storage is taken up or returned. The mode of operation can be chosen separately at each block concerned with a particular store. The principal purpose of the total mode is to enable stores to be used as counters controlling loops. The blocks can set or empty a counter and the number of loops can be counted by repeatedly entering or leaving the store. Gate blocks, which will be described later can be used to check when a store is completely filled or emptied. Occupying Stores. b Tabulate Figure 6. Queue Gathering Statistics. A General Purpose Systems Simulation Program / 95 through the system and compile tables of the statistics. In a Transit Time mode the program compares the time at which a transaction enters the Tabulate block with the mark time entered in the transaction. The difference is entered in the table so that the table maintains a distribution of the time taken' by transactions to progress from the Mark to the Tabulate point. In an Interarrival Time mode the time at which a transaction enters the Tabulate block is compared with the time at which the previous transaction entered the Tabulate block. The difference in these times is entered in the table. Associated with each Tabulate block there is a table which is identified by number and is indicated in the flag attached to the block diagram symbol for a Tabulate block. More than one Tabulate block can refer to the same table, in which case a common total is maintained. Tables can also be used to derive statistics without being associated with a Tabulate block., At regular intervals of time, which can be selected, tables can be arranged to collect statistics on the rate of arrival of transactions at any block by tabulating how many transactions arrived in each interval or they can give the distribution of occupancy , in a store or queue by tabulating the number in the store or queue at the end of each interval. 3.6 Control of Transaction Flow The ability of a transaction to advance can be made to depend upon whether it is able to engage an item of equipment and, as has been pointed out previously, items of equipment are often introduced for the sole purpose of providing control of the movement of transactions. Some decisions in the control of the system may depend upon whether an item of equipment is available without requiring that the transaction engage the equipment. Other decisions may require that an item of equipment is not available before a transaction can advance or may require some correlation between the movement of transactions. Decisions of these types can be introduced by the block types illustrated in Figure 7. A Gate block has associated with it an item of equipment that may be either a facility or a store. When a transaction tries to enter a Gate block, the program will decide (_Bor(~'k; Gate (with facil.) Gate (with store) D Match Figure 7. Controlling Trans action Flow. whether to allow the transaction to advance into the Gate block according to the status of the equipment. Several conditions may be set for the program to test. In the case of a facility, the test is to see whether the facility is busy or free. In the case of a store the test is to see whether the store is full, not full, empty, or not empty. Whichever condition is tested, the Gate block can be arranged to either allow or not allow an advance into the Gate block when the condition being tested is met. Ways of testing multiple conditions are illustrated in Figure 8. By associating a Branch block with a group of Gate blocks a transaction is allowed to advance if anyone of several conditions is satisfied. An arrangement of stringing Gate blocks in series allows a transaction to advance if, and only if, all conditions are met simultaneously. Another type of decision that frequently arises occurs when two or more concurrent sequences of events are required to be completed before proceeding to another phase of the system operation. A typical example of such a situation would be a manufacturing process where several parts are made concurrently but all parts must be completed before assembly can proceed. The Split block that has been described allows for the creation of extra transactions at some point of a system, simulating the initiation of such concurrent sequences of events. A Match block arranges that two transactions resulting from the same original transaction through splitting are synchronized at a later pOint. One Match block is paired with a second Match block, referred to as the conjugate block, by entering the number 96 / Computers - Key to Total Systems Control Any One Condition True Figure 8. All Condi tions True Use of Gate Blocks to Test Multiple Conditions. of the second block as its next block 2. If desired, a Match block may be its own conjugate. When a transaction enters a Match block, a search is made to see if another transaction with the same transaction number is waiting at the conjugate Match block. If not, the transaction is indefinitely delayed at the Match block. When a match is found at the conjugate, both transactions continue to advance in a normal manner. There is no restriction on the number of times any given transaction may be matched if the appropriate number of ,copies have been created by splitting. 4. OPERATION OF THE PROGRAM 4.1 Program Input To use the program a deck of punched cards must be prepared to describe the problem and give instructions on controlling the simulation run. This problem deck is the input data to the simulation program. The principal part of the deck is made up of one Block card for each block in the simulation. In addition there is one card for each store, one card for each table associated with the simulation and two cards for every function that is used. A 'Storage card identifies a store and specifies its capacity. A Table card identifies a table and gives the tabulation intervals associated with the tabulation. There are 16 equally spaced intervals and the table card gives the lower limit and the increment between intervals. The two Function cards identify the function by number and give the mode in which the function is to operate. One card gives eight values of the independent value and the other gives the value of the function at these eight values of the independent variable. Arrangements can be made to print certain outputs during a run. These outputs, referred to as Snaps, are described later. Snaps are made when the number of terminations reach certain values indicated by a Snap card. When the program is started, the program will create an initial transaction at every Originate and Generate block. If deSired, the simulation can be initialized with transaction at other blocks by using an Initialize card at these blocks. The card A General Purpose Systems Simulation Program / 97 identifies a block and indicates the number of initial transactions that are to be entered at that point. The program begins by loading input cards until it reaches a Start card at which pOint it commences the simulation. There must be one start card, therefore, for each program run and it must be the last card of a problem deck; the order of loading the deck is otherwise irrelevant. The start card must also carry information about the length of the simulation run. It does this either by specifying the number of terminations to be accumulated or by specifying the amount of time before the program ends. The start card indicates one of three modes in which to begin simulation. The first mode is for initiating a new simulation run, at the end of which an output is produced. By following the first start card with another start card, set to a restart mode, the simulation can be continued from where it was stopped. The restart can simply continue the simulation run, or it can be arranged that the clock is set back to zero and a fresh start is made in gathering statistics. Before restarting it is possible, if desired, to modify blocks or add blocks by inserting block cards between the start cards. In addition to restarting a problem, it is possible to run two or more separate problems with only one loading of the program. This is achieved by placing one problem deck behind the other so that at the end of one problem, the program reads the next problem into the computer. When this is done a Job card, which carries a title for the problem, must be placed at the beginning of the second problem deck to clear out the preceding problem. All cards may be listed as part of the program output and Remark cards may be inserted at any point to annotate the deck. 4.2 Program Outputs During the running of the program two types of snaps may be written on tape for printing. One gives information about individual transactions as they terminate, the other gives information about all transactions in the system at a particular point. These snaps may also be printed on -line to show the progress of the simulation run. At the end of the simulation run a series of outputs ar~ written on an output tape. If they are not required, most of these outputs can be suppressed. The clock time at the end of the run is given together with a count of how many times each block has been entered by transactions. For every facility there is information about the fraction of time it was in use and for every store there is information about the average utilization of the store. Figures showing the maximum and the average queue lengths at the Queue blocks are then shown. A series of tables giving the statistics that were requested either by entering Tabulate blocks or Table cards will then be printed. Depending upon the selection made on the cards, the tables give the distribution of transit times for transactions to cover sections of the system, the distribution of interarrival times at specified points, the rate of arrivat at specifiedpoints or the distribution of the occupancy of any stores or queues. 5. PROGRAMMING EXAMPLES 5.1 A Disc File Problem As an example of how the program is used, consider the following problem. A computer is generating messages which, for their processing, require that a record be read from a disc file. Access to the disc file is by way of a half-duplex communication channel (Le., a channel that is used for input and output). At the file, there are four actuators each servicing one disc. An actuator can only search for one record at a time. The computer forms separate queues of messages requiring access to each of the actuators. It is assumed that the distribution of requests over the four actuators is random with an even distribution. When a message reaches the head of its queue, the record address is examined and the actuator is positioned over the correct track. This takes an average time of 120 milliseconds with a spread of 80 milliseconds. The discs rotate once every 50 milliseconds so that after positioning the actuator, there will be a delay of from 0 to 50 milliseconds before the record appears under the reading heads. If the communication channel is available at that instant, the record will be read into the computer. If the channel is not available then the actuator must wait for one full revolution of the discs and 98 / Computers - Key to Total Systems Control try again. It keeps trying until the record is read. The channel is used for 5 milliseconds to transmit the record into the computer and, upon arrival, some processing which varies in time between 5 and 15 milliseconds, is carried out. Processing for 10 percent of the messages is completed at this point and they are removed from the computer. The bulk of the messages, however, require that a new record be written back in the disc file before the message is completed. During all this time in which a rec0rd is being located, read into the computer, processed and possibly written back, the actuator is being held. Only when the message finally leaves the system can another message make use of the same actuator. Each actuator, however, is operating independently of the others except for the fact that they must all share the same communication channel. A block diagram for this problem is shown in Figures 9 and 10. Transactions are created at an Originate block to represent the messages. They enter store 1 which represents the computer memory. Two factors that are to be derived from the study are the lengths of queue involved in waiting for actuators and the distribution of time from the origination of messages to the time an actuator is set up for the message record. Transactions are, therefore, marked and, after being split into four streams at a Branch block, they are entered into queues waiting for access to an arm. Upon leaving a Queue block a transaction seizes an actuator and the transaction will not release the actuator until its processing is completed. In this example, a unit of clock time will represent 1 millisecond. The mean used at the Seize blocks is 120 and the Spread is 80. The block time will therefore represent the lengths of time taken to position the actuator. The sequence of events from this point on is the same for all transactions, except that, upon completion of their processing, they will be releasing different numbered actuators. Each of the four streams is, therefore, tagged and then entered into a common stream. First a tabulation is made to give statistics on the distribution of time between creation of a transaction and the time at which the system has positioned an actuator for the corresponding record. The mean at the Tabulate block is 25 and the spread is also 25. The time spent at this block is therefore between 0 and 50 and this represents the waiting period for the record to come under the reading heads after the actuator has been positioned. If the communication channel, which is represented here by facility number 5, is available at the time the transaction leaves the Tabulate block, the transaction will occupy the channel. If not, the transaction must wait 50 milliseconds, and try again. To simulate this, it is arranged that upon leaving the Tabulate block the transactions enter an Advance block that has a selection factor of 1.0. Next block 10f this block is a Holdblock with facility 5. Next block 2 is another Advance block with a Mean of 50 and a Spread of O. When the transaction leaves the Tabulate block it will move forward into the Hold block if the channel is available at that instant. Otherwise, it will enter the alternative Advance block, wait for 50 milliseconds and try again. It will keep retrying in this manner until it succeeds in gaining access to the channel. A transaction occupies the channel for 5 milliseconds and thenpasses to another Hold block using facility 6, which represents the computer. An Advance block is inserted between these two Hold blocks so that the channel is freed at the end of transmission even if the computer is busy processing at that time. The Hold block, that gives a computing time of 10 ± 5 milliseconds and which has a selection factor of 0.1, splits the processed transactions into two streams. One stream represents the 10 percent of transactions that complete their processing at this point. The bulkof the transactions, however, leave by way of exit 1 to move into a string of blocks which write a record, back into the file. The procedure used for getting access to the channel is the same as that used for reading out the record. Since the communication channel in this example is to be used for input and output, the same facility appears at the read and write points. A transaction, whichever stream is followed, arrives at a Transfer block which directs it to a block for releasing an actuator. Transactions then leave the computer memory and are removed from the system. Figures 11 and 12 show the input and outputs obtained on one run of the program. In this run messages were generated at the rate of one every 100 milliseconds with a A General Purpose Systems Simulation Program / 99 Oriqi nate Mark Enter Computer 4 Branch Queue Seize Arm Taq See Figure 10 28 29 30 Release Arm leave Computer Terminate Figure 9. Disc File Problem Part 1 31 100 / Computers - Key to Total Systems Control From Fig. 9 Tabulate 26 Wait for Channel 50:0 Read 20 Buffer Compute Buffer 25:25 27 Wait for Channel 50:0 Write 25 Transfer ~------~------~------~ To Fig. 9 Figure 10. Disc File Problem Part 2. A General Purpose Systems Simulation Program / 101 JOB DISC - FILE - P~OBLEM 100 ORPGINATEl 2 t-1ARK ~ £"JTER BQA'\JCH 4 QUEUE 5 120 9 SEll!: 13 TA0 QUEUE 6 10 120 SEIZE 14 TAG 7 QUEUE 11 120 SEllE T'\G 15 ~UEUE B S£ PZE 12 16 1( 120 100 3 4 5 9 80 28 80 29 30 31 21 10 5 /5 25 ACVA~CE 2_~ HOLr: 24 25 26 27 28 29 30 rRA~Sr[R RE~EASE 1 2 ?O 21 1.0 •1 22 1 .3 4 4 1'4 1 1 3 1 1 1 1 1 1 26 5 ·25 6 1 1 1 1 2~ 1.0 1 1 2 17 1S 19 20 0 1 15 17 19 S\JAP ST~RT 25 1£3 RElCASE 31 .~2 LEAVE TERM I!\/\ TE 3_~ S TO~f,G[ 1 1 lABLE 1 13 17 10 14 17 12 16 80 22 ACV/\\JCE AC'w'ANCE KELF.ASE RCLEASE 1 1 8 11 80 TAG TABULA 1T ACVI\'lCE HOLO ACVA!\!CE HOLO l\O'jAi\!CE 25 1 1 2 1 27 5 1 23 12 1 1 1 1 ~2 2 32 .3 4 5 ?5 50 18 50 1 32 33 1 1 1 1 :S 5C 50 50 500 SO 100 Figure 11. Disc File Problem Input spread of 100 and the program ran until 500 transactions were processed. This example is only given for purposes of illustration. The system arrangement and the figures used are not necessarily representative of any particular system or items of equipment. Th~ example, however, does indicate how systems can be simulated and it should be apparent how the problem can be modified to simulate the effect of deSign changes. For example, the effect of having separate communication channels for input and output to the file can be arranged by using different facilities at blocks 19 and 24. The effect of having more thanone channel available can be arranged by using a store instead of a facility to represent the communication channels. Increasing the number of actuators that service the file can be allowed for by inserting extra streams at the branch block. By adding extra Seize and Release blocks it would be easy to simulate a system in which the actuator is not tied up while one record is processed but is released after reading and is seized again for writing, and so on. 5.2 A Manufacturing Problem A second example is shown in Figure 13 to illustrate some of the methods by which control over the flow of transactions is exercised. The example represents a Simple manufacturing process in which one job at a time is processed. The job requires that three parts be made and these are made concurrently. When all parts are ready, they are assembled and the next job is started. Referring to Figure 13, the Generate block creates a transaction which immediately .102 / Computers - Key to Total Systems Control CLOCK TIME NU~B(Q. ~T £~o or SI~ULATICN 5;~ 76':> or TIMr:S BLOCKS AR( fNTEREO BLOCt". C.OU"JT 1 50~ 6 129 115 11 16 1?? 21 5Cl 19 26 1;'9 31 BLOCK COUNT 2 502 7 115 12 129 17 Sal 22 27 445 12 500 32 F M. I LIT Y tlR 1 2 3 4 STCRE tJR CUF.U( TABLE NUMf\ER UPPER LIMIT 50 100 150 200 250 300 350 4CO 4'>0 500 550 600 6')0 700 7')0 NR OLOCK COUNT 4 502 '128 9 14 129 19 501 444 24 '19 128 FRACTION OF TIME IN USE .4472 .4430 .4076 .4485 ') .041~ 6 .0920 MAX CUEUE LENGTH 1 2 3 3 2 2 4 4 AVERAGE UTILIZATION .0438 AVERAGE QUEUE LENGTH • 1151 • 09A 3 • 1107 • 1210 MOOE 0 TOTAL NUMB(R IN TABLE OF TABLE. PLOCK COUNT ~ 502 1 ~o 8 1.~ 128 1£1 ';20 4')6 23 28 128 33 500 STORAGE CAPACITY 50 1 M(A~ WAS 16??~0 NUMeER 22 10 1 121 H'i 35 46 16 11 6 4 2 TOTAL TIME IN TABLE 501 VARIANCE Of PER CENT 4 •.~9 20.16 ?4.15 26.95 6.99 9.18 3. 19 2.20 1.20 .80 .40 .00 .?O .20 .00 .00 TABL~ CU,.,ULATIVE 4.39 24.55 48.70 7'1.65 82.63 91.82 95.01 97.21 98.40 99.20 99.60 99.60 99.80 100.00 10.0. 00 100.00 84784 8502.38A7 MULTIPLE OF MEAN .2955 .5909 .8064 1.1818 1.4773 1.1727 '1.0682 2.3631 2.6591 2.9546 3.2500 3.5455 ~.8409 4.1364 4.4319 4.721.i Figure 12. Disc File Problem Output BLOCK COU"JT 5 12t3 10 12 ~ 15 115 ')01 20 25 500 11') 30 A General Purpose Systems Simulation Program / 103 Generate Seize Control 3 Split Split Set Counter: Process Parts S.. 2 50:20 8 9 40:15 30:20 Match Buffer: Leave by 1 2 Test Store to be Empty Assemble and Release Control Terminate Figure 13. Manufacturing Problem seizes facility 1. The facility is not released until the job is ready for assembly, thus preventing more than one transaction from entering at a time. A network of Split blocks creates four copies of the transaction, three of these represent the parts to be manufactured and they go to Advance blocks simulating the manufacturing processes. The fourth transaction sets a counter by entering a store of capacity three in a total mode. It then 104 / Computers - Key to Total Systems Control waits at a Match block for the processed parts to arrive. As each part arrives, a Match is effected. The transaction representing the part removes the count of 1 from the store and is then destroyed. The control transaction uses a Gate to check whether the store is empty. If not, it returns to wait for another Match until finally all parts arrive and the transaction representing the completed parts passes through the Gate to be assembled and release the system for the next job. If the system to be simulated allowed more than one job to be in the system at a time, facility number 1 would be removed and the checking of the parts would need to be carried out by a string of three Match blocks rather than by a loop around a single Match block. 6. APPLICATIONS AND EXPERIENCE The program has been extensively used for some time in a variety of applications. It has proved to be particularly useful in problems involved in the analysis and design of data processing, telecommunications and switching systems and the combinations of such systems that arise in the real-time use of computers. It has also been employed for construction models of various manufacturing and business systems while the logical ability of the program has been sufficient to handle problems in the design and operation of control circuits and to programming problems. The program has been very successful in meeting its main objective of providing a means by which systems analysts and engineers can get simulations going quickly and easily. With very little formal training they are able to understand the basic actions of the problem and can interpret the actions of the system they are studying in terms of the program language. Inevitably, through being general purpose, the program involves compromises and it seldom meets exactly the requirements of anyone user. The particular block types that have been selected represent the accumulated experience of many users. They do not cover all possible actions but an extremely wide range of system concepts have been simulated by combinations of blocks. Experience has shown that the rather limited language provided by the program has not been a significant restriction on the users; instead it has tended to clarify the description of system concepts and has improved the communication of ideas among the people engaged in a system study. A feature of the program that has been particularly appreciated is the ease with which changes in the simulation model can be made. This has ensured that help from simulation has been available at all stages of a system deSign. In particular it becomes a simple matter to expand the simulation detail as more information becomes available or, conversely, to reduce sections of the model that have already been examined in detail to a few simple blocks or functions. The ability to run a succession of jobs with one loading of the program makes it easy to maintain simulation service for a group of people. The running time of the program depends greatly upon the model and the amount of congestion in the system. The principal factor controlling computing time is the time required. to transfer a transaction from one block to another. On an IBM 7090 such transfers take an average of about 0.8 microseconds each. ACKNOWLEDGEMENTS I would like to acknowledge the contributions of many people to the work described in this paper; in particular, the contributions of Dr. J. P. Runyon of Bell Telephone Laboratories, Professor D. L. Dietmeyer of Wisconsin UniverSity and Messrs. R. Barbieri, R. Efron and R. Merikallio among my coworkers at IBM. REFERENCE An Interpretive Simulation Program Estimating Occupancy and Delay in TrafficHandling Systems Which are Incompletely Detailed: D. L. Dietmeyer, G. Gordon, J. P. Runyon, B. A. Tague, AlEE Pacific General Meeting, August 1960, Conference Paper CP60-1090. USE OF A COMBINED ANALOG-DIGITAL SYSTEM FOR RE-ENTRY VEHICLE FLIGHT SIMULATION Dr. Allan N. Wilson General Dynamics/Astronautics A Division oj General Dynamics Corporation San Diego, California SUMMARY Simulation of the re-entry phase of space flight for a vehicle on a satellite or lunar mission is being done at General Dynamics/Astronautics on its combined analog-digital system. Vehicle dynamics are simulated in real time on a large general-purpose analog computer, while an on-board digital guidance computer is simulated by digital program on a high- speed digital computer. An unusual feature of the closed loop operation is the facility for breaking the loop and inserting a pilot with manual over-ride capabilities. Problems of computer system control, check-out procedures, synchronization, sources of error, and results of the simulation are presented. Introduction entailed a hookup with another digital computer' namely a Remington Rand 1103. At that time a closed loop operation was used to simulate the flight of a radio-guided Atlas missile. The purpose was to determ~ne if the design could proceed with the relatively high frequency, low accuracy dynamiCS of the missile treated as de-coupled from the relatively low frequency, high accuracy guidance computations. The simulation verified this fact. Shortly thereafter the computing facilities were moved to a new location, and preparations were made to connect the Addaverter with an IBM 704. New terminal equipment had to be developed, and various delays resulted. Meanwhile successful flight tests on the Atlas missile reduced the urgency for such an elaborate simulation, and interest in the closed loop was no longer so intense. A number of interesting open loop applications were developed with the Addaverter conversion equipment, and were conducted first Real-time flight simulation of space vehicles presents special challenges to computing technology, in either man-piloted or automatically controlled space flights. At General Dynamics/Astronautics, the problem is being solved through the joint use of an Electronic Associates general purpose analog computer and an IBM 7090 digital computer. These are linked together by a device called an Addaverter, made by Epsco, Inc. This combination analog-to-digital and digital-toanalog converter is operated under digital computer program control. The complete closed loop operation, on the other hand, is under the control of the analog computer operator. The present project is part of a continuing program of combined simulation development at General Dynamics/Astronautics [1-4]. The first use of the Addaverter in 1956 105 .106 / Computers - Key to Total Systems Control with the 704, and then with its successor, the 7090. Recently the need for a good combined simulation has become apparent in connection with various space programs, and this paper is intended to report on the efforts that have been made in this direction. It covers the general outline of a re-entry simulation, and some of the problems associated with it. Description of the Problem One of the most critical phases of manned space flight is the re-entry into the earth's atmosphere. In the span of a few hazardous moments, the vehicle must be safely slowed to near sonic velocity. It must be held within a narrow return "corridor," avoiding burn-up in too steep an approach, and rebound in too shallow an approach. Although there are many other interesting phases of a manned space journey, our attention here will be confined to the re-entry. A primary purpose in our combined-simulation is to evaluate a proposed on-board digital guidance computer. This is simulated by a digital program on the 7090 digital computer. The dynamic equations of motion are solved in real-time on the analog computer. Values of problem variables are transmitted periodically to the 7090. The guidance program makes up-dated trajectory predictions, and then correction Signals are transmitted back to the analog-Simulated auto-pilot. The magnitude of the entire calculation is such as to preclude an all-digital solution in realtime. In addition to this limitation, introduction of a man into the loop leads very naturally to the use of analog computer simulation, since cockpit displays and controls generally entail analog signals. On the other hand, a digital guidance computer which is not available as hardware can best be simulated with a digital program. Therefore a combined analog-digital simulation is the only feasible method of attack. The Simplified model for the flight dynamics entails 4 degrees of freedom for the re-entry vehicle. There are two coordinates for the motion of the center of mass in the orbital plane, and two angular coordinates about the center of mass. One of these angles is simply the flight path angle, or angle by which the line of motion dips below the local horizon. The other angle is the roll angle, which in the Simplified case takes on quantized values of zero or 180 Since the simplified model assumes afixed angle of attack for the aerodynamic shape, the two possible roll values merely indicate whether the lift force on the vehicle is upward or downward. The simulation takes into account the effects of aerodynamiC forces for altitudes ranging from 60 or 80 miles down to about 10 miles. The Newtonian force s acting on the vehicle consist therefore of gravity, lift, and drag. Later phases of the study will extend to the full 6 degrees of freedom. Cross-range forces are conSidered, and a third coordinate assigned to center of mass motion. A sidewise yaw angle comes into play, and the roll angle is now treated as continuous. This leads to an interesting maneuver known as roll modulation, wherein the vehicle may be made to spiral about a desired ideal trajectory. All possible motions of the vehicle are taken into account in this general case. 0 • Description of the Combined Analog-Digital System A block diagram of the complete system is shown in Figure 1. Four consoles of Electronic Associates analog computing equipment are used. There are around 100 operational amplifiers, used either as integrators or summers. Then there are several dozen pieces of non-linear equipment, such as multipliers, resolvers, function generators, etc. The analog computer simulates the flight through an atmosphere of varying density, with provision for mid-course corrections by use of attitude control rockets. Automatic control equipment associated with these rockets is included in the simulation. Multi-channel recording equipment is used to present the problem variables as continuous functions of time. The Addaverter has the capability of transmitting 15 channels of analog-to-digital data, and 10 channels of digital-to-analog data. Each data word carries 18 bits, which is half of a 7090 word. There are 17 numerical bits and a sign bit. The most Significant bit corresponds to 50 volts of analog voltage, while the least Significant is around 800 microvolts. Actually the last 5 bits at least are continuously submerged in noise, and 12 bits· of information are the most to be expected under the best conditions. The assigned coding of voltage permits the operation of Use of a Combined Analog-Digital System for Re-Entry Vehicle Flight Simulation / 107 Analog Operator Controls ...,. Input Signal lines Sense Lines --- J ...... f ...,.. 15 A-to-D ...,. Channels IBM Electronic Associates Epsco 7090 Addaverter Digital Computer Analog 10 D-to-A Computer Channels I ~ ...... ...... --l ! f I r-- t On-line Plotters & Recorders t I Displays & Printer Manua lOver-ride Con tro Is for Astronaut Figure 1. Block Diagram for Combined Simulation System. the analog computer over the usual +100 to -100 volt range. There is a basic cycle of four operations in the Addaverter: sample, read, write, and present. (1) Sample causes the analog voltages to be converted to digital values, and stored to await reading into the digital computer. The conversion is effected in less than 140 microseconds, and for usual analog rates of change, may be considered instantaneous. (2) Read causes data to be transmitted through an input-output channel and stored in speCified location in the 7090. (3) Write causes data to be transmitted from the 7090 through an input-output channel, and stored in a buffer in the Addaverter, to await presenting to the analog computer. (4) Present causes digital values to be converted to analog voltages, and made immediately available to the analog computer. This cycle of four commands requires less than 400 microseconds. Usually digital computations are performed in the 7090 between steps (2) and (3). In the event of negligible computation time, it is evident that the system could operate at a 2.5 kilocycle rate. The four commands are sent to the Addaverter by appropriate binary -coded signals on some additional sense lines which are connected from the 7090 to the Addaverter. These 10 sense lines also permit other coded signals for control purposes to the analog computer and other external devices. There are 10 more sense lines running to the 7090, which may be used f~r control in that direction. Usually the Addaverter is under program control in the 7090, via the sense output lines from the 7090. However, the Addaverter may also be controlled by other external sources, as will be discussed later. In Figure 2 is given a typical set of instructions for control of the Addaverter in a subroutine in a 7090 program. This may be of interest to anyone who is conversant with 7090 coding and the role of the "Direct Data 108 / Computers - Key to Total Systems Control AT,0D PSLB =0000140000000 Sample Addaverter code. AXT 31,1. Delay while T1X *,1,1 PSLB =0000101000000 sampling. Read/Write Addaverter code. Read. HADB RCHB X TC0B * CLA DATAl TSX FXFL0,4 Coded voltage to floating point. DT,0A CALL C0MPU Compute subroutine. PSLB =0000101000000 Read/Write Addaverter code. Write. WADB TEST RCHB y TCOB * PSLB =,0000120000000 Digital console control ENK instead of external XCA X y TZE AT,0D 10CP DATAl, ,1 10CP DATA2,,1 r0CD DATA3,,1 rOCD ANGLE, ,1 Figure 2. Present Addaverter code. oscillator control. Typical 7090 Program for Addaverter Control. Device." No attempt will be made here to explain this in detail. The total role of the 7090 in the combined analog-digital system will be covered more extensively in the next section entitled "control logic." At this point it is desired only to make a few remarks about the guidance calculation progra~. The guidance prediction scheme requires as input about 10 quantities, such as velocity, altitude, time, flight path angle, etc. It takes these values as initial conditions, and projects ahead in time through the "survival" phase. If continuation on the current trajectory would lead to intolerable "g" stresses on the astronaut, then a correction in roll angle is assigned, and transmitted to the Addaverter for digital-to-analog conversion. For the Simplified planar orbit, Use of a Combined Analog-Digital System for Re-Entry Vehicle Flight Simulation / 109 this is the only signal which is developed. For the more general 3-dimensional solution, several corrective commands are sent, and correspondingly several digital-to-analog channels are utilized. The evaluation of the guidance scheme calls for examining (a) various numerical integration formulas (b) various time intervals in the use of these formulas, and (c) varying degrees of complexity in the dynamic model for the trajectory prediction. The principal criterion for success is that the time lag between receipt of the analog values and the return of the corrective signals be satisfactorily short. A later phase of the test may also include whetber the pilot can respond adequately to the corrective signals. Control Logic A flow chart showing control features for the entire operation is given in Figure 3. Once the digital program has been loaded, the operation is under the control of the analog operator. This is indicated schematically by the circles on the right side of the figure. The analog computer actually has three modes, (1) initial condition, (2) hold, and (3) operate. For purposes of our discussion we need consider only hold and operate. When the analog computer is switched from hold to operate, a pulse generator is triggered on. This generator has a repetition rate corresponding to the desired rate of executing the guidance computation. If computations can be performed faster than needed, there results some dead time after each computation, during which the digital computer is inoperative. Since it is desirable to know the actual time consumed in execution, a clock is read at the beginning and end of each computation. The controlling command from the pulse generator is a voltage change which energizes the 7090 start relay. Thereupon the clock is read, and a Signal sent to the analog console turning off the ready light. Then the compute bit is tested. This bit will have been turned on when the analog computer was switched from hold to operate. Since the test on the compute bit is positive, the digital computer enters the main subroutine. Analog voltages are sampled and read into the 7090, the guidance computations are performed, and the guidance correction values are written back into the Addaverter, and presented to the analog computer. This completes the main subroutine. Then a signal is sent to the analog console, turning on the ready light. Finally the clock is read, and the 7090 stops. As long as the analog computer is in operate, the pulse generator is still running, and the compute bit is on. Hence at the next pulse from the generator, the 7090 is started again and the process is repeated. When the analog is switched back to hold, then the computations, both analog and digital, are suspended. At this point several courses of action are available to the operator: (1) Obtain a print-out or dump from the 7090. (This may be desired whether the run has been a success or not.) (2) Set up a new case. (3) End the run and get off the 7090. (4) Make some special program revision at the digital console. Each of these alternatives is assigned a particular code. As shown in the figure, the first three are under control of switches on the analog console; the fourth may be set in at the digital console. A test on any of these alternatives may be initiated by a manually operated command signal at the analog console. This by-passes the pulse generator, and provides a single start signal to the 7090. From there, the sequence of tests and associated subroutines are as shown in the figure. Since the analog computer is at this point in the hold mode, or possibly the initial condition mode, the compute bit is not on. Therefore the test on the compute bit is negative, and the usual computing subroutine is not entered. The choice of placing the entire operation under the control of the analog operator rather than under complete digital program control is a very practical one. The analog operator, sometimes in the role of the pilot, watches n u mer 0 u s continuous recordings during the run. He is in the best pOSition to render a judgment on what the next step should be. The ready light informs him when the 7090 is no longer in execution, but is standing by for his next command. ThiS, and other features, have been designed to facilitate the operation in his hands, and to assure positive control of the computing system at all times. In addition, he is in telephone contact with the 7090 programmeroperator, in the event of malfunction or need for special digital console procedures. In a 110 / Computers - Key to Total Systems Control Manual Signal to Start 7090 Start 7090 Pulse Generator Ready Light Off Test Compute Bit I Sample/Read from Analog I 0Dump Bit I I • 0Newcase Compute Routine ~ '<-)End Bit Read Clock & Stop .----~---. Ready Light On Dump or Output Routine New Case Routine Read Clock & End Routine Manual Console Control Figure 3. Bit Control Logic for Complete Operation. Use of a Combined Analog-Digital System for Re-Entry Vehicle Flight Simulation / 111 well-rehearsed run, the decision-making time is only a small fraction of the entire running time. Check-Out Procedures Economic considerations dictate that highest priority be given to efficient use of the 7090 time. Therefore it is necessary to check out the system as completely as possible prior to connection to the 7090. For this purpose, a device called a 7090 "simulator," for Addaverter control, has been built. It has the capability of duplicating the sample, read, write, and present signals which are usually sent from the 7090 under program control. This cycle can be processed at the fastest possible rate, or it can be paced at a slower rate under control of an external oscillator. Sampled data can be read out of the A-to-D path and back in to the D-to-A path, as if in the customary write mode. But of course this is a straight data transfer, and no arithmetic is involved. The simulator is used in the normal daily check-out of the Addaverter. A symmetrical tri'angular wave form is sampled and read around through the system. The output is displayed on a recorder, and also the difference between input and output. These two displays permit examination for bit drop-out in the A-to-D conversion, and for extent of the noise level, respectively. When the combined analog-digital system is to be checked out, the analog computer is given a check with static voltages. The Addaverter, with simulator, is then placed on line, and the analog switched to operate. Analog data is sampled and returned back to the analog, thereby affording verification of continuity and of proper functioning of the Addaverter. At the earliest opportunity after this, assuming the 7090 is "up," the full combined simulation run is started. Synchronization Considerations In general it is impossible to accomplish exact synchronization in the starting of an analog computer and a digital computer. This is because of the variance in the dropout times in the hold relays of the analog computer, which may amount to several milliseconds. In some problems, particularly where the sampling cycle is very fast, synchronization may be critical. In such cases, it may be necessary to build an appropriate delay on one side or the other, in order to optimize the synchronization. Fortunately, in the re-entry simulation, it is not necessary at all to attempt this. This is because there is no clearcut pOint during the re-entry into the atmosphere at which the first guidance correction must be made. Therefore the analog computation may be commenced at a sufficiently high altitude so that the vehicle is in free fall without aerodynamiC forces. As the atmospheric forces come into play, the digital guidance may be switched on at some arbitrary point. It is apparent that synchronization is unimportant for the assumed model. Sources of Error in the System The combined simulation system is a form of sampled-data system. Such systems are subject to errors inherent in the basic sampling process, as well as to noise and bias in the conversion system. It is well known that the sample and hold process exerts a destabilizing influence on a computational procedure. In.the case of simple linear systems, analysis may be conducted by the use of z-transform theory and by difference equations. Work of this type has been done with an auxiliary sampled-data simulator and the Addaverter at Space Technology Laboratories by Shumate [5]. InvestigatiOIi's of a similar nature have been conducted at our own laboratory using analog computer integrators, the Addaverter, and either of two methods of clOSing the loop. The first utilized the 7090 control signal simulator mentioned previously, and the second used the 7090 itself. In the latter case, experimentation was done with predictive interpolation formulas to compensate for transport delay. A simple non-linear system has also been studied. The case considered is the pair of second order non-linear differential equations which describe the polar coordinate motion of a satellite in an eccentric orbit. The results of these studies will be published in a subsequent paper. The present re-entry simulation system is a very special form of a sampled-data system. Since the guidance prediction computing time occupies several seconds, it is far longer than the time consumed by the sample-read-write-present cycle. Since the analog voltages are scaled to provide a signal 112 / Computers - Key to Total Systems Control Thousands Altitude of feet Thousands of feet per Velocity second L'= G-units Degrees Degrees Flight Path Angle 25l/ lOOl Volts ~ 51 ~ 50iL Bi-polar· + Angle of Attack L ~ Integrated Roll Function I-----t----I-o 20 40 60 80 Seconds Figure 4. G-stress Typical Set of Flight Trace s. Ro II Command Use of a Combined Analog-Digital System for Re-Entry Vehicle Flight Simulation / 113 to noise ratio of 100 or 1000 to 1, the error contribution of the sampling and data conversion processes is clearly several orders of magnitude smaller than that inherent' in the delayed prediction scheme. Accordingly the simulation is useful primarily for checking out the stability of such a guidance method. Provided the process of "hunting" or oscillation about an ideal trajectory does not entail deviations greater than several percent, the feasibility of the technique during the high deceleration survival phase may be considered proven. Final landing maneuvers may of course be expected to be carried' out with greater accuracy. Results In Figure 4 is shown a typical set of traces for a flight, ranging in altitude from about 80 miles down to 40 miles. This particular run was terminated shortly after the g-stress passed its maximum, for by this point it had been shown that the guidance system was capable of controlling g-stress within allowed limits. A very substantial reduction in velocity is seen during the peak g period. This high deceleration is primarily in the tangential direction, as verified by the record of the flight path angle. Initially this angle dips about 50 below the local horizon, and flattens out to about zero near the end of this run. The bi - polar roll command is seen in the bottom trace. Since the details of the vehicle motion would be of more interest to the rocket technologist, . it is our purpose here to indicate only enough of the results to make them appear plausible. 'Ifhe simulation is regarded as very successflil. Later phases of it will incorporate integr+ated displays and control devices which will test certain aspects of a space pilot's capability to over-ride the automatic equipment, and guide the mission safely on his own. In conclUSion, it is felt that combined simulatipn represents not merely an excellent tool for studies of this type, but actually a very necessary tool. Acknowledgments Since my own role was prinCipally that of coordinator on this combined simulation project, I would like to give credit to those who did the actual detailed hard work. Members of this highly cooperative team, with whom it was a great pleasure to work, included (a) David Arris, of the analog computer laboratory, who was the Addaverter speCialist (b) Alan Nelson and Michael Hur ley, of the dynamics group, who "flew" the vehicle (c) Aaron Cohen, of the guidance analysis group, who worked out the guidance prediction scheme, and (d) HoytBonner and Eugene Etheridge, of the digital programming staff, who wrote the programs and assisted as operators at the 7090 console. Important contributions to the success of this mission were made by all of these General Dynamics/ Astronautics engineers. REFERENCES 1. R. M. Leger, "Specifications for AnalogDigital Converting Equipment for Simulation Use," AlEE Paper No. 56-860, June 1956. 2. R. M. Leger and J. L. Greenstein, "Simulate Digitally, or by Combined Analog and Digital Computing Facilities, " Control Engineering, September 1956. 3. R. D. Horwitz, "Testing Systems by Combined Analog and Digital Simulation, " Control Engineering, September 1959. 4. A. N. Wilson, "Recent Experiments in Missile Flight Dynamics Simulation with the Convair Addaverter System," Combined Analog Digital Computer SyStemS Symposium, December 1960. 5. M. S. Shumate, "Simulation of SampledData S y s t ems Using Analog-to-Digital Converters," Western J 0 in t Computer Conference Proceedings, March 1959. COMBINED ANALOG-DIGITAL SIMULATION Arthur J. Burns and Richard E. Kopp Grumman Aircraft Engineering Corporation Bethpage, New York Introduction Data-Link The inherent limitations of the analog computer and the digital computer when each is used exclusively give rise to the need for combined analog-digital t e c h n i que s. The analog computer, which is ideally suited for dynamic calculations, is at a distinct disadvantage where logical decisions are required, or where demands on accuracy and resolution are stringent. In contrast, digital calculations maintain the required accuracy but can be very time consuming. This is a particular burden when many runs are needed for a statistical analysis of a system. The calculation of missile trajectories, including missile dynamics, is an area which has been particularly troublesome. The need for high resolution when relatively small, accurate miss distances are sought, prohibits an all-analog simulation. On the other hand the cost of an all-digital simulation can be excessive because of the amount of computer time required to calculate the missile dynamics. The need for a new computing technique is therefore clearly indicated. A typical missile intercept problem has been simulated using all-analog, all-digital, and combined analog-digital techniques. The results of the hybrid method illustrate the advantages of this type of simulation. This paper will discuss the analog-digital computer system which was employed, the hybrid technique involved, and a comparison of this method with the all-digital and all-analog simulation. In Figure 1 is shown a block diagram of the Data- Link system used to interconnect an IBM 704 digital computer with a Reeves analog computer (REAC). The system consists of five analog-to-digital (A-to-D) converters, five digital-to-analog (D-to-A) converters, and the n e c e s s a r y control and terminal equipment. It is readily expandable to fifteen channels in either direction. Transistorized circuitry is used throughout with the exception of the cathode followers in the terminal equipment specified by the IBM input-output requirements. The A-to-D converters generate a 12 bit (11 bits plus sign) binary word representing an input voltage in the range of ± 100 volts at a maximum rate of 5 thousand conversions per second. Analog voltages are sampled simultaneously and then read into the IBM 704 sequentially by means of the A-to-D buffer register. In the digital-to-analog direction, the digital words are written sequentially into D-to-A registers, converted to analog voltages, and applied in parallel to the REAC. The control equipment consists of the logical circuits required to operate the system. Included in this equipment are the channel select counter and a clock pulse generator. The counter selects the channel through which the IBM 704 can supply or receive information. It automatically steps to consecutively numbered channels with each IBM 704 Copy instruction, or may be "jammed" to a specific channel upon appropriate command from the IBM 704. The latter may only be 114 Combined Analog-Digital Simulation / 115 ..l... - D - to - A Buffer Register - - D-to-A Register I-- D-to-A Converter - I - 2..1 2..1 4 I 5 I I I I I 1 I I I I 1 - - Digital - To - Analog Channels 36 Input- 12 Lines 5 Lines ~tP"B"~';\ IBM 704 Real ,,;;:::.~v Terminal EqUipment Control Equipment Analog Computer Sense Inputs And Outputs 12 Lines A - to - D Buffer Register 5 Lines 12 Lines ---i - .!.. A - to - D Storage I I I I I I 2 I A - to - D Converter 3 4 5 I I I I I ~ - Analog - To - Digital Channels Figure 1. Data- Link System. accomplished if the IBM 704 has Write Selected the Data- Link. The clock pulse generator, whose rate may be varied from 0.1 cps to 1 KC, is used to initiate a transfer of information between the analog and the digital computer. Analog to digital conversions are triggered by this clock or, in the case of asynchronous operation, by the IBM 704. In addition to the control equipment terminal equipment is required to make the 116 / Computers - Key to Total Systems Control outputs and inputs of the computer link compatible with the IBM 704.' In particular, it translates the IBM 704 logic levels into the computer link logic levels as well as the reverse procedure. Also included in the system is what is known as IBM terminology as a "Real Time Package." This is actually an accessory piece of IBM hardware which provides the necessary connections to the 36 input-output buses and sense inputs and outputs of the IBM 704. Two sense inputs are utilized in the computer link. One indicates whether the REAC is in the "Operate" or "Reset" mode. The second is an overload Signal generated when one of the A-to-D converters has an input exceeding ± 100 volts. One of the sense outputs is used to complement the state of the REAC; that is send it into "Operate" or "Reset." Another is used to cause analog-to-digital conversion and, if the REAC is in operate, simultaneously cause digital-to-analog conversion. A third causes digital-to-analog conversion exclusively. Ordinarily 17 of the 36 input-output buses of the IBM 704 are utilized by the link. As shown in Figure 2 these correspond to the 11 information bits (bit positions 25-35), sign (bit position 5), channel address (bit position 1-4), and what is called an "inhibit" bit (bit position 5). Since the channel counter may be "jammed" to a specific channel only when the IBM 704 executes a "writing" sequence with the appropriate channel addressed, the need for this "inhibit" bit arises. In order to select a specific channel for "reading" it is necessary, therefore, to first "write" into the next lower channel so that the counter will be in the correct position at the end of the Copy instruction. Transfer of erroneous information (which would be all zeros) to D-A storage is prevented in this "pseudowriting" sequence by the inhibit bit. This slightly inefficient method of channel selection for "reading" can be eliminated when an IBM 7090 is used. In this case the additional sense outputs can be used for channel selection prior to either "reading" or "writing." The same 5 digital-to-analog channels used to transfer information in the "Operate" mode may be used to put initial conditions on the analog integrators while the REAC is in "Reset." Figure 3 shows a Simplified block diagram of a digital-to-analog channel and a typical REAC integrator. The initial condition (I.C.) input is only effective while the computer is in "Reset." When it is in Information 28 27 26 25 24 23 10 1 - - - - InhIbIt 4 } C"~l "\0"" 1 - - - - SIgn Figure 2. Input-Output Bus Locations Utilized by Data- Link "Operate," the integrator integrates the voltage at the input terminal. DeSignating the input to the integrator at time t = 0 the "initial input," it is possible for the initial conditions to be present on the outputs of the digital-to-analog converters, and for the "initial inputs" to be simultaneously present as a digital number in the buffer register. When a Signal from the IBM 704 commands the REAC to go into "Operate" the X and Y relays start dropping out. Relay X is slower in falling out than relay Y. There is a finite length of time, therefore, where the input to the I. C. capacitor and input to the amplifier Combined Analog-Digital Simulation / 117 To Control Equipment Transfer SW.nal From ContrQl Equipment x D - to - A Buffer D - to - A Register (Initial Input) Re~l"ter y D - to - A Converter (I.e.) Inte~rator (a) Reset Condition . To Control EqUipment Tr,Ulsfer SI~n,tl From Control EqUipment D - to - A Buffer Re~lster (Initial Input) D - to - A D - to - A Repster (Initial Input) Converter Inte~rator (lJ) Figure 3. Operate ConditIOn Switching from Reset to Operate Mode. are both disconnected. It is during this period that the "initial inputs" are automatically transferred from the buffer registers to the digital to analog converters where they are converted to voltages. When relay contact Y 1 has closed the computer is in "Operate," and the "initial inputs" will start being integrated from the initial condition value. Obviously it is not necessary for the output of the D-to-A converters to go to the I. C. and input jacks of the same integrator but may be routed to the inputs of any other amplifier as well. Missile Intercept Simulation Figure 4 illustrates the geometry for the terminal phase of a missile intercept problem in two dimensions. The velocity of the missile and target are deSignated by VM and VT respectively, and the range is designated by R. All the angles are defined by the 118 / Computers - Key to Total Systems Control y - ! - - - - Reference Figure 4. Illustrative Mis sile Intercept Problem. geometry. By equating the velocity components normal to the line of sight we obtain, Rw = - VM sin (J + VT sin 0, (1) and obtain similarly for the velocities transverse to the line of sight, - R = VM cos (J + VT cos o. (2) (5) where the capital Greek letters are the Laplace transforms of variables designated by the respective lower case letters, and N is a parameter of the guidance system. For simplicity, the missile transfer function is assumed to be of second order and of the form, From the geometry considerations we also have the angular equations, (6) (3) where K is a gain constant, ~ the relative damping ratio of the missile, and w n the natural frequency of the missile. To include the effects of "g" limiting, the command signal to the missile is limited to wM • With this constraint Eq. (5) is rewritten in the time domain giving, O=W-Y+7T, (J = e - w. (4) The angle ee not shown in Figure 4 is defined as the control surface angle of the missile. For proportional guidance and a second order lag in the missile control system T2jj e + 2Te e + Be = N w*, (7) Combined Analog-Digital Simulation / 119 where w> Wy ~ when -w < OJ < ~ -Wy when w< -w,.. Wy { when (8) and Eq. (6) is rewritten. (9) The equation of target motion is the final equation needed to completely define the problem with the exception of initial conditions. It is assumed in this problem that y is constant. A basic difficulty with an all-analog solution to this intercept problem is the scaling. Range R is chosen to be initially 50,000 feet. Resolution on the order of ±2 feet is desired. To account for the entire variation of R requires solving for R/500 which corresponds to 100 volts for R equal to 50,000 feet. When R is equal to 2 feet, R/500 is 4 millivolts which is well below the probable noise level and practical operation of the analog computer. A second variable which presents a scaling problem is W, the rate of change of the line of sight angle. Initially, when R is large, is small. However, when R approaches zero, approaches a large value. This does not offer any particular problem in the guidance equation loop since this signal is limited due to the "g" limiting of the missile. On the other hand the true is required to compute the kinematics of the problem. Until the missile travels to within a few hundred feet of the target, an all-analog solution is possible. The solution could be obtained to that point in real time. However, the last part of the simulation would have to be run as a separate stage with new scaling to obtain sufficient resolution on Rand w. There is no basic computing difficulty to an all-digital simulation. The disadvantage of this method lies in the relatively longer amount of computing time required for each solution. The to~l elapsed time is a function of the integration interval used which in turn depends on the accuracy requirements. A 0.025 second time interval, which is sufficient for the dynamics of the problem can be used until the missile is within about 100 w w w feet of the target. A time interval of 0.001 second is necessary from then on due to the ±2 feet resolution requirement. The digital solution, when obtained in this manner consumes about 6-1/2 minutes of IBM 704 time. This is roughly 8 times real time. Ifa parametric study or statistical analysis of the system is required, the total digital computer time becomes excessive. The difficulties encountered in the allanalog solution are overcome in the combined analog-digital method by allowing the digital computer, with its eight Significant figures to handle the kinematic and guidance equations and, in particular, to solve for Rand w. The analog computer is then programmed to compute the higher frequency, lower accuracy portion of the problem represented by the missile dynamics. Thusthe equations solved on the REAC are, e -~ = NW* _ 20 c T2 c (10) T 2' T and ••. K Wn2(Jc (J = 2tS - Wn (J-- 2(J Wn , (11) while the equations solved in the IBM 704 are, 'Y = 'Yo + yt, (12) W = _ (Vy sin a) + (VT sin 0) R R -It = Vy cos a o = a =(J W - 'Y + + VT cos 0, (14) (15 ) 1T (16) - W wy when W w*= (13) > w when -wy < -wy when w < Wy W < wy (17) -w y • A block diagram of the combined analogdigital solution-is shown in Figure 5. The digital and analog computations are carried out as shown until the range decreases to 350 feet. At that time, the digital computer is used exclusively for the remainder of the run. 120 / Computers - Key to Total Systems Control R, oo. For Plotting () eO IBM 704 IJ 8c R w =- VM - R = VM sin 0'+ V COB 0'+ V T T sina Oc '--- cos8 8c Be - - -- 1------- { &M who. &> &M w· :; o 0 when - 00 00 - WM a=oo-¥ O'=(J < 0 Analog f/ 'i/c 0 00< 00 = ~_ 28c_~ T2 T M when w~M (J Computer Link T2 8 +71' "// = KOOn28c-2~OOn '(/ -oo n 2 0 -00 ¥=¥o + t t R,w w· w· -- Figure 5. Block Diagram for Combined Analog-Digital Solution. The flow chart for the digital program is shown in Figure 6. The entire solution is under the control of the IBM 704. After writ~ng the initial condition 80 and initial input 8 0 , it transfers the REAC to "Operate." A clock controlled sampling rate was previously chosen based on dynamic considerations. The IBM 704 is put in the Read Select mode and the variable 8, which upon arrival of the first clock pulse has previously been sampled from the REAC and digitized, is then read into storage. This will be a fixed point number but is converted to floating point to facilitate all floating point arithmetic in the IBM 704. If no overloads have occurred, Eqs. (12) through (17) are then calculated. This is followed by a test on it to determine whether it is positive. An affirmative answer indicates a miss and the run would then be terminated. If R is negative a test is made on R to determine if the missile is within 350 feet of the target. If it is not, R, w*, and w are converted to fixed point numbers and the mM 704 then goes into the Write Select mode. The command signal in the form of the limited w* is sent to the REAC along with R, and w for plotting purposes. The mM 704 then awaits the next clock pulse before going to the Read Select mode, and the cycle repeats until the missile comes within 350 feet of the target. When this occurs the IBM 704, in tJ, 8c and 8c • addition to reading 8, r;eads The REAC is sent into "Reset," and the IBM 704 solves the remainder of the run using the previously sampled five variables as initial conditions. e, Analysis of Combined Analog-Digital Results The combined analog-digital solution is obtained in approximately real time with a resolution of ±2 feet. Real time for tbe problem is 50 seconds while the combined simulation requires 60 seconds. The ten second difference arises due to the all-digital calculation of the last few hundred feet. A sampling interval of 30 milliseconds corresponded to about 200 samples per cycle for the highest frequency present in the simulation (the natural frequency of the missile). The resulting curves for this run as shown in Figure 7a indicate a negligible deviation from the all-digital and all-analog solutions. The digital print-out of the last portion of the combined simulation revealed that the missile came within 21 feet of the target as compared to 17 feet in the all-digital solution. At sampling rates of 20 per cycle, the deviation from the all-digital run becomes noticeable as shown in Figure 7b. In this ~ Combined Analog-Digital Simulation / 121 Send REAC Into Operate Read 8 Convert 8 To Floating Point Yes Wait For Clock Pulse 0. Write R, SendREAC Into Reset t----Stop Digital Calcula tions Yes W, W Convert Yes R,w,w· To Fixed Point Send REAC Into Reset Read 8, (j, °O, 8c. Bc All Digital Calculations Figure 6. Flow Chart for Combined Analog-Digital Solution. ......-_~ Stop 122 / Computers - Key to Total Systems Control +50 o -50 J., 1-!-1-Ll 1 777 f I ! i JV-t-Ll-r·1 ! I J-.b);.T~l- 7 /.:.1./. I .1..f.f...L..L.:.t...L1.J. J i / ..T! ·!Ti, f i I J I. f j. i l l . '., f . _. . _. - . -. 1=. U _- -:fT i -I T :. . .=F,. ~-(+-~ 1-; f 1-+' -f-. ::J..~. ... - . - J.. J..-.l•.l ./" f.. l t 1 1 J I 11-+~l.l1.. j f i - r__ I --- _.- - --j.-= . - . F"" - ~-':-~ -··f-T- .--~.£' -. f--'.:t= - L - {- . . . ;- .L· . .- - - _.:£ . - _.,.~=;- _. -..i:-. _-%~ __ _ --t _ I co. . - - -- .,-f:.. - r . r' -_ \__ - I:- y. - 1 ". 'r - -:X . -.. - .·k. :_!f t - _ -L. 1. l:"-'to \\ \ -\ \ \ t t -t_ \ 1: \: \. L.t-. \ :t:~ 1. \-=~. I·-i~T·:T-.~·2t_ Y:~-1"~:¥=¥-t-o...E¥1:::¥ 1: .i,·Ll Ll ~ ..\; \ \ \ .1-A. .~-t _ . : ' . : - . . t.. Ll.:._L+J \ \ \ R - _Range, 1000 ft. . fTT i \ \ t t. -rTT_~ '~'- \.. \ -\ l "-r. _'. ~ :~; .-"t._ t- a. Sampltng Interval 30 m. s. tb. Sampling Interval 300 m. s. - No Extrapolation -50 -H-1::-+-l.-+--+-, t- c. Sampling Interval 300 m. s. - First Order Extrapolation -00000 Combined Analog - Digital All - Digital Figure 7. Missile Intercept Solutions. Combined Analog-Digital Simulation / 123 case the time delay due to sampling, for which no attempt at compensation has been made, is taking effect. In particular, the guidance command signal w* is delayed .3 second. When a simple extrapolation technique is applied on w* the variation from the all-digital solution is reduced considerably as shown in Figure 7b. The switch-over to the all-digital portion of the combined analogdigital simulation occurs when the range reaches approximately 180 feet. The final range in this case is 19 feet. The dynamic equations being solved by the analog computer require no nonlinear elements and the equations being solved by the digital computer have parameters which do not vary rapidly. These facts coupled with the knowledge that a sampling range of 20 per cycle with extrapolation is sufficient, indicate the feasibility' of running the problem in one-tenth of real time. The combined analog-digital solution then results in a time improvement of about 65 to lover the alldigital solution. Conclusions The missile intercept simulation with its associated scaling and expensive computer time problems exemplifies only one area where a combined analog-digital technique is useful. Computer controlled systems that are presently envisioned for future aircraft, misSiles, and other space vehicles will require the handling of discrete and continuous information. Hybrid computation is the logical choice for the simulation of these inherently hybrid systems. Since an analog-digital computer link is by nature a sampled-data device it is a valuable tool for research in sampling theory. Stability studies and error analyses are planned using the hardware to simulate the sampled data-system under investigation. Acknowledgment The authors wish to acknowledge the valuable assistance of Mr. Hugh Winton who, in connection with these combined analog-digital investigations, was responsible for programming and operating the digital computer. CONTRANS (Conceptual Thought, Random-Net Simulation) David Malin Walter Johnson High School):c Rockville, Maryland ABSTRACT CONTRANS is a computer simulation of a physiologically-oriented reasoning and problem- solving model. The model employs several layers of semi-random nets to recognize and associate sensory patterns, a screen-like memory and representation medium, and several motor functions enabling the nets to control scanning of the memory. Meaningful as semblie s of data are created and manipulated by the model which then utilize s them to modify its own ability to handle future data. Data and heuristic principles accumulate as stored results of past experience. Two kinds of logical operations are employed; one to explore the data rapidly to evaluate tentative strategies and solutions, the other to proceed by demonstrable intermediate steps, creating progressive intermediate goals. adaptation of logical systems and heuristic methods to psychological findings. The objective which is particularly sought in CONTRANS is the integration of logical systems and heuristic methods with the function and organization of physiologically-oriented neural models. The work reported here is a computer simulation of a reasoning and problemsolving CONTRANS model modified by the substitution of computer matching procedures for the cognitive functions of semirandom nets. It is planned next to simulate the neural networks themselves. Later work will involve the simulation of highly inductive Introduction CONTRANS is designed to contribute to the implementation of a general plan for gaining insight into human intelligence. This plan is related to work by Hebb [1], Rosenblatt [21 Uttley [3], and others on the design of randomly connective network models for learned perception and on the non-physiological modeling of thought processes in the heuristic programming work of Minsky [4), McCarthy [5], andNewell, Simon, and Shaw [6]. The strategy involves the application of physiological findings to the construction of random-net and other brain models, and the *The author was a student in "Introduction to High-Speed Digital Computation," an ACM sponsored high- school course conducted by G. G. Heller of IBM to whom he is most grateful for encouragement and guidance. He is also greatly in debt to J. M. Farrar, Jr., also of IBM, for his kind and patient assistance and review. Appreciation must also be expressed for the constructive editorial criticism of H. E. Tompkins of NIH. 124 CONTRANS (Conceptual Thought, Random-Net Simulation) / 125 methods of hypothesis formation and testing as applied to the model, will attempt to remove constraints on the form of input data, and may deal with special applications. The model for CONTRANS includes, along with recognition networks based on the perceptual models of Hebb and Rosenblatt, a medium for representing intact assemblies and statements of data, which, when focused upon, are available as input to the sensory units of the entire net. This provision was suggested by the discoveries of "experiential memory" by the clinical neurophysiologists, Penfield and Roberts [7]. Also, the random nets of Hebb and Rosenblatt are modified substantially to permit the recognition of conceptualized expressions (instead of statistically describable stimuli) and to form "cell assemblies" for association of different expressions on a temporary basis and after one exposure to the stimuli. The operational aspects of the system, as simulated in the present work, may be described in input-output terms. Input data statements consist of two expressions, each within a set of parentheses, one of which expressions must include a relationship, such as "implies," "equals," "includes," "hits," "is hit by," etc. An expression within a set of parentheses may be a simple substantive or may itself consist of two expressions of a form similar to that of the entire data statement but capable of using such additional relationships as "divided by," "or," "near," etc. There is no limitation on the number of possible relationships within relationships. Statements defining the nature of the desired conclusion may be formed in the same manner as data statements, except that their imperative character must be noted. Such goal statements, along with heuristic statements and general principles, may be stated with one or more semantically undefined terms (which the program will define by position or relationship). Output consists of a series of statements which obey the same rules, are deducible from the input statements, and are relevant to the general problem-solving strategy. These culminate in a statement meeting the requirements for the conclusion. Two different methods are used in conjunction to obtain this result. One method operates primarily by making substitutions between various components of different input statements, thus creating intermediate statements which may be acted on in the same manner; new sub-goals are continually generated in this mode of operation. In order to give direction to this process, a companion method is employed which (due to chains of associations within the simulated net) can evaluate tentative strategies and tentative solutions without resorting to demonstrable intermediate steps. CONTRANS is capable of benefitting from any heuristic or logical system whose principles can be stated according to the rules for input statements. For example, the "transformational" method of linguistic synthesis is particularly applicable. However, the system by itself is incapable of solving problems unless provided with at least the same data and principles an uninformed human would need (e.g., for mathematical problems, and transposition laws of algebra). On the other hand, past data and conclusions of all sorts can remain in memory; thus each new problem might be seen in the light of past experience and its solution might provide help in organizing future experience. Related Work CONTRANS is related to a number of other programs for the mechanization of nervous function and thought processes. Some of these models represent the learning process ~nvolved in neural discrimination and perception. Among the dynamiC models whose learned perception possibilities have been tested in this manner -with varying resultsare D. O. Hebb's cell assembly theory [1] as simulated by N. Rochester, et al [8 ], F. Rosenblatt's perceptrons [2], and A. M. Uttley's conditional probability machines [3]. All three of these models of the learning of discrimination and perception rely on the variation of the response patterns of neurons (partial models of nerve cells) in accordance with statistical probabilities rather than upon a specified predetermined structure of fixed connections such as would be involved in a system entirely grounded in symbolic logic. Indeed, in models of this kind, connections between individual components (e.g., neurons) are usually assumed to be randomly distributed, hence the generic designation of this type of model as "random nets." Learning is visualized in these models as involving the attainment of differentiated powers of transmission (or "amplification," "weight," 126 / Computers - Key to Total Systems Control etc.} by pathways, as a function of past experience. Thus, in Uttley's system, the amplification factor of a pathway between two nodes is directly proportional to the probability that when one of the nodes is excited the other will become excited too; and this probability is induced from the past history of simultaneous and separate firings of the two nodes. The ran d 0 m -n e t, biologically -oriented models have several advantages over conventional digital methods of pattern recognition. Due to the simultaneous use of many parallel pathways, recognition is accomplished instantaneously and with a low logical depth as contrasted with the many sequential steps which must be taken in pattern analysis by digital techniques. Also, successful performance of a given perception is not greatly dependent upon anyone component. In addition, some random-net models, such as the class C' perceptron of Rosenblatt, are capable of spontaneous selforganization without any interference from the experimenter. These a d van tag e s of random-net models generally have been used to discriminate among and to classify statistically describable objects, notably geometrical figures. It should be noted, however, that some of these advantages are possessed by the modelsbut not by their computer simulations. Because of the parallel nature of the models, simulation on a sequentially oriented computer is rather awkward and time-consuming. Another, quite different, approach to the mechanization of nervous processes, has been developed in the field of "artificial intelligence" or "heuristic programming. 'f Here the aim is simulation of human thought processes rather than the simulation of a model for neural action. Particular emphasis is given to the formation and evaluation of problem-solving strategies. Examples of research along this line are found in the work of Minsky [4]; of McCarthy [5]; of Newell, Simon and Shaw [6]; and of Hovland and Hunt [9]. Thus, we have in one approach a number of biologically-oriented neural models which usually have been applied only to learned perception problems, and in another approach a number of heuristic models which attempt more general mathematical and linguistic problem -solving and reasoning tasks without being based on specific neural models. The author's objective has been to find some medium to integrate these two types of approaches so that the simulation of thought processes (particularly, reasoning, problem solving, and linguistic synthesis) could proceed directly from the simulation of biologically-oriented models of neural networks. Interestingly, several workers in these fields have made statements which might be considered to indicate the potential value of an integrated approach. M. Minsky [10] has remarked that lack of parallel processing is a hindrance in heuristic work. Likewise, Y. Bar-Hillel [11] has written that the work of the Yngve-Chomsky group in mechanical translation probably will have to delve into learning automata before its theoretical basis can advance much further. On the other side, it was F. Rosenblatt, who, in a discussion with the author on the possible extension of perceptron techniques to new problem areas, first directed him to the work of the "heuristic programmers." The key to one possible method of integration was provided by neurological experiment. The neurologists W. Penfield and L. Roberts electrically stimulated certain cortical areas of conscious patients undergoing brain surgery [7]. In some cases, the electrode stimulation brought forth a sequence of memories. In fact, the patients claimed that their visions were so vivid and complete that they were reliving rather than merely remembering the sequence of experiences, and that they again perceived everything of which they had taken notice in the Qriginal experiences. Whether or not the last point is completely valid, certain empirical conclusions seem to be indicated by these results. There must be some form of memory (of currently unknown embodiment) which is capable of being controlled by the electrical activity of the networks, and whose entries are in such a form as to become available, on being called up, to the entire "consciousness," i.e., available as input to the receiving elements of an entire network. For example, a revolving tape containing a series of images and moving in front of a matrix of sensory units would be a memory system capable of re-presenting experiences in such an intact manner. The learned weighting of neural pathways, while making possible the re-cognition of a stimulus, would usually not make possible its re-creation, as seemingly required by the CONTRANS (Conceptual Thought, Random-Net Simulation) / 127 experimental evidence. Penfield and Roberts call the phenomenon they discovered "experiential memory." As mentioned before, nothing definite is known about its biological embodiment. It might be neural or even embodied in extra-neural electric fields. Because a screen, upon which images are projected, revolving before a set of sensory elements represents an analogy to this memory, we shall hereafter refer to this class of phenomena as a "screen-memory." The suitable combination of a "screenmemory" and appropriate network recognition models allows us not only to recognize structures of data, as with the firing of a single neuron, but also to make records of such data in its original integral form, and through this to create and manipulate new meaningful assemblies of data. Concepts Embodied in CONTRANS It is necessary to distinguish between the conceptual model which serves as a basis for the simulations and the simulations themselves. The model is a conception of certain components indirectly abstracted from neurological evidence, together with some hypothesized relationships among these components. The simulations are com put e r representations of the behavior of this model. The conceptual model which is simulated in CONTRANS is composed of random-net associational networks, a "screen-memory" as defined in the preceding section, and certain motor functions which allow events in the net to manipulate the memory and entries upon it. The "screen-memory," in all early Simulations, will serve both input and storage functions, Le., a computer storage address assigned as part of this memory may store either newly introduced data or some entry associated with a previous problem. In the present work-which is Phase I of a series of simulation projects-the cognitive and associative capabilities of the networks are replaced by computer matching and listmaking procedures. The networks themselves will be simulated in Phase II, work proj ected for the future. It is not known how the "experiential memory" is interrelated with the action of human nerve networks. The prescribed "motor functions" in CONTRANS represent some of the possible forms this relationship might take. One motor function stops scanning of the memory when certain neurons are stimulated. Another causes substitutions of entries from one location to another when, under certain conditions, the same neurons are excited by the stimuli at both locations. The above elements work together to perform the basic, recur sively used logical algorithm of the system. This process is primarily a mechanization of syllogistic reasoning. The process may be illustrated by a highly simplified example. If one of the statements in memory is to the effect that A implies B, and we want to deduce further implications about A from this, we focus on B and find a statement, such as B implies C. The networks learn to associate A with B and B with C so that when C is focused on, the neuron representing B is excited, in turn exciting the neuron representing A. This causes C to be transferred to a position opposite A, replacing B, forming the expression (A)(C). Similar processes are used on a somewhat more sophisticated level to substitute small components into long expressions and to modify en~ire statements without changing their meaning. If this substitution process were the only problem-solving technique a va i I a b I e, the CONTRANS rea~oning process would simply be an exhaustive search for possible substitutions as represented by the dotted lines on Figure 1. - In order to form a short-cut through such an inelegant and uneconomical procedure, several built-in heuristics are included to organize the reasoning search. The whole process is motivated by a statement, written in much the same manner as other CONTRANS statements, as to what sort of a conclusion is desired. In the problem-solving process we start with a data statement, one of whose components is identical to one of the components of the goal statement. The associated part of the data sentence then becomes a subgoal. The system then concerns itself only with other statements that contain this same sub-goal. As substitutions are performed, new intermediate goals are formed in succession to replace the original sub-goal and, hopefully, to lead closer to the required relationship with the other sub-goals. As each syllogism is performed, the new intermediate statement formed is printed as output. The 128 / Computers - Key to Total Systems Control / ({ 1T' 1\ // / / / /~" I I " " # # I '" I A "'- ~ "0 I~\ , /1\ 11\ /1\ /1\ II' / I \'h I I b I I \0 ~ ~ ir ~ it h' ~ ~ I~ II' II' II' II' 11\ 11\ II' 11\ 11\ # II, I ~ 11\ \ ~ ~ ~~ II' II~ I I , II, II~ I I , 11'/1,11\../1' I' II' /I' III, ; II' 11 1 / // ~ /' 11\ 11\ I I,' 11\ OOoOOuOOOOOOoooooooooOOOOOOOOOOOUOOOOOOOOC II\.. 11\../1\ ~ JI /1 I ~ I I 11\ 11\ ~ I I 4 f '~ ~ I I I # /9" I '" / I , / "/ " 6 0/ /,\ 1\ /" , /1' /1\ "'- 9- /,, /1\ /1\ I I, I I \ / I Q I I \ ~ g ~ ~ ~ 5? ~ g I,' ~ Q ~ II' I" I,' II' '1\ II' II' I:' I" II' ,:, II' / '. 1I1/1\ 11\ /1\ II\.. 11\../1' 11\ 11\ 11\ 11\ 1 OOOOOuOOOOOOOOOOOuOOOOOOOOOOOOOOOOOO SYLLOGISTIC CHAIN PROCESSES Each node is a statement. Each line is a syllogism by which the lower node is derived from the upper node. ® is the final desired conclusion. A dashed line represents a syllogism permitted by exhaustive search and substitution procedures. A solid line represents a step permitted by CONTRANS procedures. Figure 1 sequence of intermediate statements is analogous to the sequence of intermediate deductions in a geometric proof. While this method provides some direction to the process by eliminating consideration of obviously unrelated statements, alone it would allow the search to select, and continue in, directions which take it away from rather than toward the answer. For example, let B be a sub-goal. Let us assume that B can be replaced by any of C1 , C2 , C3 , ••• , Cn. Each C expression can in turn be replaced by another set of expressions. Perhaps, only C4 leads along the chain to the final goal. However, without some additional heuristic, the process would have to start at C, and explore all the possibilities branching from C 1 , and all the possibilities branching from these possibilities, and so on until dead ends are reached. Then the process would have to start over again at C2 • We could have avoided this gigantic search if the system had known at an early stage that the choice of C4 would take it towards the answer. In more general terms, it would seem that in order to go with any directness tpward a solution, the system would have to know enough beforehand about the solution to avoid taking wrong turns that would lose it amid irrelevant alternatives. See Figure 2. CONTRANS meets this problem with a second built-in heuristic-a method for directly or "intuitively" (i.e., without demonstrable intermediate steps) assessing whether a given substitution will take the process down the right path or down a blind alley. This process operates by scanning over the field of data and forming associations entirely within the neural network, rather than making substitutions on the screen memory. Some of the Simpler logic involved in this method is demonstrated by the example below. Let us assume statements to the effect that (1) A is B, (2) B is C, (3) B is D, (4) C is E, and (5) D is G. Let us assume that the statement A is G satisfies the goal statement (the CONTRANS (Conceptual Thought, Random-Net Simulation) / 129 B A SAMPLE SYLLOGISTIC CHAIN PROBLEM A line such as /// indicates further. branching not depicted. Otherwise, notation is as indicated in Fig. I and in the text. Figure 2 general form of the answer}. Obviously the relation, A is G, is implied by the statements as they now stand. Random nets scanning over this series could learn to associate A with B, B with D, etc., until neurons representing A is G are stimulated, signalling the sufficiency of the data. If, however, we combine statements (I) and (2) and substitute C for B in (I) (a step which takes us in a wrong direction) we get (I) A is C, (2) B is C, (3) B is D, (4) C is E, and (5) D is G. In this case A is G is not implied, the correct neurons will not fire, and the substitution must be undone. If we now go on to substitute D for B in (1) the network scan will give the go-ahead and we will proceed down the correct path. The method allows us to make mistaken moves such as substituting C for B. However, it corrects all such moves before they can lead to further mistakes, e.g., it does not allow us to go on and substitute E for C. Thus the "intuitive" aspect of CONTRANS allows us to make tentative false starts but not to wander down blind alleys. The contrast between the extent of the black and dotted lines on Figure 1 demonstrates the extent to which the built-in heuristics of CONTRANS limit a typical search. This aspect of CONTRANS might be considered akin to feedback concepts and Ashby f s homeostat [12], [13] in particular. The latter operates bylthe weakly constrained generation of information and then by the more highly specific selection of that information. In CONTRANS, information generation is initially constrained by the requirement of performing correct syllogisms only and by the system of intermediate goals. Information thus generated is then selectively evaluated by the "intuitive" check to keep the system as close as possible to the direct path toward the deisred state. Another feature of CONTRANS is that the intermediate and final conclusions formed in one reasoning experience can accumulate on the "screen-memory" to aid in organizing future experience. In this way, the effectiveness of the system would tend to grow. Input used with a CONTRANS system takes the form of slightly modified English sentences as described later on. Goal statements and output are written in the same form. The model is capable of benefitting 130 / Computers - Key to Total Systems Control from any heuristic or grammatical principle that can be written according to these minimal rules. Particularly applicable are transformational statements, rules defining a transformation of an expression of a certain class, such as would leave unchanged the informational content of that expression. Of course, it is possible that no solution may be implied by any of the data or past experience available. The "intuitive check" process is used at the outset to determine whether or not this is the case. The experimenter, when dealing with an inexperienced CONTRANS simulation, must provide as much data for problem solving as a logically competent but unknowledgeable human being would need. When dealing with a somewhat experienced simulation, i.e., one that has accumulated useful data and conclusions from previous attempts to solve related problems, the experimenter must gauge the extent of that experience before deciding how much data will be necessary, if he wants to be absolutely sure of getting an answer. This is analogous to the process of a teacher deciding how much information he must provide along with a test question in order to make it a fair one for his pupils. While the CONTRANS model itself requires hardly any particular rules of syntax, in order that consistent results be obtained, consistent syntax must be used. For example, it makes no difference to CONTRANS whether statements with transitive relationships are written with their meaning proceeding from left to right or vice versa. However, incorrect implications will be drawn unless all transitive statements are written one way or another. Transformational statements may be included with other input to aid the handling of syntax. For example, a statement might be included to the effect that a substantive S followed by a transitive verb is equivalent to S alone. This would aid in the formation of transitive substitution chains. Because of the flexibility of CONTRANS, the behavioral complexity of the system is primarily a function of the complexity of its experience rather than the complexity of its initial design. For this reason, after a certain amount of experience a CONTRANS simulation would take on the seeming unpredictability of human behavior, unless close watch were kept historically on all the input statements and their possible interactions within the system. To summarize, the model is a combination of "screen-memory" for storage of intact assemblies of data, "neurodynamic" nets to recognize and associate entries, and motor functions which, stimulated by excitation of certain neurons in the nets, control scanning of the "screen-memory" and cause substitutions to be made between various entries of that memory. In the model, these components work together to perform syllogisms-the nets forming associations between various parts of selected statements found on the screen memory, and the motor functions, triggered by the nets, causing substitutions to be made between appropriate parts of these statements. This basic process is controlled by a succession of intermediate goals which are in turn selected through a "rapid-scan" use of the model. Except for a few rules, input requirements are flexible and externally introduced heuristics may be used. The model, motivated by a goal statement, analyzes the data statements and outputs a series of intermediate conclUSions, followed by a final conclUSion, the answer. Some Troublesome DeSignations When dealing with the mechanization of intelligent processes, it is all too easy, unfortunately, to give false impreSSions of accomplishment. The most obvious and classic example was the widespread public use of the term "electronic brain" in connection with high-speed computers. Similar-but more SUbtle-misconceptions can occur readily in regard to the use of computers to simulate various neuro-behavioral models. In particular, there is always the question of how much the success of a particular mechanization really implies about the true functional organization of the nervous system. At present, the question arises: Is CONTRANS, with its component cell assembly nets, really a "brain-model"? The author believes that CONTRANS is not a close model of the nervous system Since, because of the complexity involved, it has not been possible to fit the characteristics of the components to many of the experimentally discovered parameters of neurophysiology; Since, because of lack of evidence, several straightforward but unverified assumptions had to be made about the relationship of the networks to the "screen-memory"; and Since, because CONTRANS (Conceptual Thought, Random-Net Simulation) / 131 of almost total lack of evidence, no biological embodiment has been hypothesized for the "screen-memory. " CONTRANS would seem, however, to be more than another variety of artificial intelligence; if not an actual brain model, it is, nevertheless, physiologically oriented since its component neuro-dynamic nets represent a type of function which, in view of current evidence, seems typical of the nervous system and since the "screen-memory" feature is inferred directly from experimental findings. The first simulations explore a method of organization for brain models. In this sense, CONTRANS is a model for brain models. The logic of the general system is such that, as more accurate perceptual models are derived, they could be fitted into the larger system, and CONTRANS could approach brain-model status. The Phase I Simulation The present work, Phase I, simulates the CONTRANS model with computer matching and list-making procedures replacing the cognitive and associative functions of the neural nets. The general procedure of the simulation is outlined below and represented in flow diagram form in Figure 3. Input to the system is in the form of English sentences modified according to several simple rules. Parentheses are included to indicate the extent of relationships. For sheer convenience, a limit is imposed on the depth of parentheses within parentheses, but a method is indicated for adding additional depth, by the use of satellite statements resembling subordinate clauses. Also for programming convenience, single letters are agreed to stand for words, and for phrases and clauses when it appears to be unessential for those phrases and clauses to be broken down any further. A goal statement is presented along with data and heuristic statements; it is written in the same fashion as other CONTRANS sentences. As explained previously, the use of CONTRANS does not imply any particular grammatical syntax, but the syntax used should be consistent. Output statements have the same characteristics as input statements. Output consists of a series of intermediate statements culminating in a final answer. In keeping with the cumulative nature of the "screen-memory," output statements are punched onto cards to be entered with future input (as well as printed out). Once data is entered into core memory, the CONTRANS program analyzes each statement into individual parentheses. The program then finds a place to start its reasoning process by searching for a data statement that contains an element of the goal statement. The associated part of the data statement then becomes a sub-goal. For instance, if side 2 of statement 5 is found to be equivalent, by matching, to a side of the goal statement, then side 1 of statement 5 becomes a sub-goal. (A side is one of the two prime divisions of a statement, somewhat analogous to a subject or predicate in conventional grammer; in a CONTRANS statement it is the contents of one of the two principal sets of parentheses.) The program then searches for elements of the sub-goal in other statements. If one of these elements is found, a tentative substitution is made and control is transferred to a program which simulates the "intuitive check" method. In simplified terms, the method operates by going over the data to form lists of associated expressions. If, at the end of this process, both sides of the goal statement are found in the same list, then the tentative substitution is made permanent, the modified statement is punched and printed out as an intermediate conclusion, and the process begins again with a new sub-goal. If, at the end of the process, the condition is not met, the substitution is undone and the search for elements of the sub-goal begins again. This type of operation is done recurSively until the final answer is derived. In this manner the program, motivated by goal statements, accepts data and heuristic statements in modified but comprehensible English, and draws from them a series of implications relevant to, and culminating in, a final answer. As of this writing the program for Phase I is undergoing debugging. The program is written in FORTRAN for the IBM 709. Future Phases In Phase II, scheduled for the Fall and Winter of 1961, a class of cell-assembly neural net models will be simulated and their learned recognition and association properties will be substituted for the computer 132 / Computers - Key to Total Systems Control GREATLY SIMPLIFIED FLOW DIAGRAM Compare sub - goal with element of input statement Make appropriate substitutions (Including new sub-goal) Print Try new new statement Eliminate new statement, new sub-goar element Try new Replace with old statement, sentence old sub-goal @ Figure 3 ® CONTRANS (Conceptual Thought, Random-Net Simulation) / 133 matching and list-making processes used in Phase I. It should be noted that the neurodynamic nets, with their many parallel processes, are capable of recognizing stimuli without the many consecutive logical steps taken in sequential digital recognition or matching techniques. Thus, a physical embodiment of the full CONTRANS model would be a step toward combining the perceptive speed of a perceptron-type network with the flexibility and logical power of heuristic programming. However, since Simulating a parallel operating network on a serially operating computer is a rather awkward process, the advantages of connective nets will not be reflected in actual running time. The design of neurodynamic networks for CONTRANS presents several special problems. These problems arise from the fact that, while most neural net simulations are concerned with the discrimination of statistically describable stimuli such as geometrical figures, CONTRANS is concerned with the recognition and manipulation of symbol chains, expressions which are already conceptualized. It will be assumed that geometrically perceiving networks, such as the perceptrons of Rosenblatt, are capable of recognizing letters and of representing different characters by the firing of different neurons. It will be assumed that the output of these neurons will be the input to the CONTRANS nets for the recognition and association of words, phrases, and clauses. It is primarily the latter networks that Phase II will be concerned with. These networks, un 1 ike most similar models, will be required to associate expressions after only one learning trial, and to recognize expressions on the basis of the order of their constituent symbols in time. The first requirement may be met by the selection of an appropriate expression for the growth of the amplification value of a particular interneural pathway as a function of excitation and reinforcement. For example: Let V be an amplification scale. Let 0 < Vo < 1 Let N i stand for one neuron and N j for another. Let an output Pi from Ni imply an input V 1..J (P.)toN. 1 J Let T be a time at which N fires. Then p. V.· lJ t +l = V.. lJ t J + -p. t ~t (1- Vo ) - Vii t - l (1- Yo) This is a simple but satisfactory equation for the weight of the pathway leading from N i to N j. As simulated by FORTRAN programs for the mM 1620 (with Vo equalling 0.2 and 0.4), Vi j rises sharply toward 1 with the first simulatneous firing of N i and N. and then tends asymptotically towards 1 with additional simultaneous excitations. With a firing of Ni without N j ' Vi j decreases sharply toward zero and tends asymptotically toward zero with further such firings. Thus this growth function allows sharp-almost "yesno"-learning in one trial. Such a sharply reacting growth function would play havoc with the statistical sophistication of a geometrical perceptron. However, this equation would be quite suitable for the one trial association of two abstractions or identified symbols. The second requirement, for recognition of order in time, will be met through the provision of reverberatory networks and neurons representing intermediate parts of words, such as syllables, and intermediate parts of sentences, such as phrases. In the future, it should be possible to make more of a serious attempt at deSigning CONTRANS random nets that better fit the characteristics of the nervous system without changing the logic of the system as a whole. In Phase III, CONTRANS will be used in the formation and testing of inductive hypotheses, and will thus attempt to make generalizations from separate occurrences. -It is hoped that, in Phase IV, constraints on the form of input sentences, particularly in regard to the use of parentheses, will be removed. An attempt will be made to divide "screen-memory" into temporary or permanent cumulative segments to reduce unnecessary scanning time. In addition, there are possibilities for special applications and special embodiments. In final form, and in special-purpose embodiment, the system would accept ordinary sentences as instructions and data, would process them (perhaps in a not easily predictable manner) with the benefit of accumulated data and conclusions and, due to its parallel form, would in general, operate with much greater speed then its computer simulations. 134 / Computers - Key to Total Systems Control References l. Hebb, D., The Organization of Behavior, John Wiley and Sons, New York, 1949. 2. Rosenblatt, F., The Perceptron - A Theory of Statistical Separability in Cognitive Systems, Cornell Aeronautical Laboratory, 1958. 3. Uttley, A., "Conditional Probability Machines and Conditional Reflexes," in Automata Studies, ed. by C. E. Shannon and J. McCarthy; Princeton University Press, 1956. 4. Minsky, M., "Some Methods of Artificial Intelligence and Heuristic Programming," in Mechanisation of Thought Processes, Her Majesty's Stationery Office, London, 1959. 5. McCarthy, J., "Programs With Common Sense," in Mechanisation of Thought Processes, Her Majesty's Stationery Office, London, 1959. 6. Simon, H., "Modeling Hum a n Thought Process," Proceedings 0 f the Western Joint Computer Conference, National Joint Computer Committee, 1961. 7. Penfield, W. and Roberts, L., Speech and Brain-Mechanisms, Princeton University Press, Princeton, 1956. 8. Rochester, Duda, Haibt, and Holland, "Tests on a Cell Assembly Theory of the Action of the Brain, USing a Large Computer," in Transactions of Information Theory, IRE, 1956. 9. Hunt, E. and Hovland, C., "Programming a Model of Human Concept Formation," in Proceedings of the Western Joint Computer Conference, National Joint Computer Committee, 1961. 10. Minsky, M., "Descriptive Languages and Problem Solving," in Proceedings of the Western J 0 in t Computer Conference, National J 0 in t Computer Committee, 1961. 1l. Bar-Hillel, Y., "The Present State of Mechanical Translation," in Advances in Computers (edited by F. AU), Academic Press, New York, 1960. 12. Ashby, W. R., "Design For an Intelligence Amplifier" in Automata Studies (ed. by C. Shannon and J. McCarthy), Princeton University Press, Princeton, 1956. 13. Ashby, W. R., Design for a Brain, John Wiley and Sons, New York, 1960. DIGITAL-TO-VOICE CONVERSION Evan L. Ragland Motorola, Inc. Military Electronics Division Chicago, Illinois to man. As the use of data proceSSing and data communication systems expand there are numerous instances where voice communications to the man operator or monitor from systems of automatic assistance or control are imperative. INTRODUCTION For the past two years Motorola has maintained a program to study and develop digital-to-voice conversion techniques. This program has examined the needs for digitalto-voice conversion and has, through feasibility experiments, studied some of the promiSing techniques. This paper reports on this work. This report considers the entire subject of digital-to-voice from the basic need to the ultimate application. Particular emphasis is placed on possible technological solutions and on experimentation to determine the feasibility of these approaches. The problem statement presents the basic needs and technological problems associated with digital-to-voice conversion. Several possible solutions are examined in the consideration of this problem. From these solutions a system operation is described and schematically outlined. A series of feasibility experiments, performed in the laboratory directed toward establishing the nec essary background for development effort, are reported. The results of these experiments are covered in detail. Finally, some future applications of ultimate development equipment are discussed. Economic Generally, these needs are accompanied by a requirement for an inexpensive method for conversion of digital data to voice since and in most instances, the need arises in a system of control or centralized information storage where outputs to many human communicators are required. Therefore, it is important that the approach for conversion of the digital information to voice be inherently inexpensive. Application PROBLEM STATMENT The nature of information to be transmitted in such systems varies widely. Therefore, it is important that the system for conversion not constrain the machine to some limited group of messages. Unless several constraints are placed upon the variation of communciation a general purpose capability must be considered. Flexibility must be such that the machine can basically communicate any given instruction or.information sequence. General Human The increasing digital environment in which man must coexist creates a basic need for improved communications from machine I The human communicators must not be inconvenienced or disturbed by the form of the messages. It must be as closedto human 135 136 / Computers - Key to Total Systems Control speech and human conversational delivery as is possible. Therefore, it is important to have imperceptible delays between the vocalization of words and the words vocalized in a non-synthetic manner. Physical The conversion equipment, in many cases, must meet the requirements of light weight and compact size. Therefore, it is important that the techniques employed for conversion require little space, weight or power. Technical The black box digital-to-voice converter must operate with any digital data communication or processing system. It must not constrain, because of its own limitations, either the coding or format of these systems. It must not require that the system store messages forms or structures. Essentially, the converter should be able to accept any code input and translate this to vocal information form. It should be capable of buffering lengthy messages and translating these at the vocalization rate for the human communicator. This can be accomplished in several different ways. POSSIBLE SOLUTIONS There are two prinCipal avenues of approach to the construction of audible, intelligent English word forms from digital information. These are: 1-synthetic reproduction from tones and 2 - vocabulary look up. The latter of these methods has been the principal study and subject of experimentation in the work reported. Vocabulary look up was selected since it seemed to offer the general purpose capability for message transmission within the bounds of the operational, physical, human, economic and technical requirements of application. It can be shown statistically that within the bounds of the English language the general purpose message capability can be accommodated by a limited vocabulary. For example, consider the chart of Figure 1. The entire English language consists of some 600,000 words. The frequency of usage of these words varies dramatically. The average human vocabulary is about 15,000 words. Of these, 50 comprise approximately 50% of normal conversation and correspondence. This usage remains remarkably stable, even when highly specialized technical papers are the subject of account. One thousand words will accommodate over 80% of normal usage. With a 1000-word vocabulary it is possible to express most ideas or informational sequences. It therefore seems reasonable to assume a vocabulary of several thousand words could provide machines a conversational capability. It has been concluded that a 1 to 5000 word vocabulary provides a communications capability from which substantial advantages in machine to man communications can be AVERAGE CHARACTER- FORM WORD....... 256,OOO,OOO,OOO,OOO WORDS ENGLISH LANGUAGE .....................................................................600,000 WORDS AVERAGE WORD- FORM ................................................................ 64,000 WORDS AVERAGE VOCABULARY ................................................................ 15,000 WORDS 80% USAGE ............................................................................................ 1,000 WORDS 50% USAGE ......................................................................... :........................ 50 WORDS Figure 1. Vocabulary Statistics Digital-To-Voice Conversion / 137 derived. The objective of this study has been to examine methods of storing and retrieving vocabularies of from 1 to 5000 audible English language words. The storage retrieval system should be a self -contained unit and should meet the general operational requirements stated previously. One encounters a number of physical and technical problems in considering the storage of audio information. For example,the average time required for a spoken word is less than three quarters of a second, but many frequently used words require up to one sec0nd for reproduction. Therefore, it is necessary to accommodate variable reproduction time for vocabulary words to meet this random requirement. Also, it is necessary to find a means for high-density packing of information. Consider, for example, that the average word requires 0.6 second for vocalization and that it may contain up to 3000 pieces of information per second. If 5000 words are to be stored, the capacity for storing must be 5000 x .6 x 3000 bits of information-or 9,000,000 bits-a substantial memory requirement. There is available, however, another important characteristic in vocabulary storage. It can be fixed storage. It need not be changeable or erasable. Therefore, photographic storage is open to consideration. In storing large vocabularies it is necessary to develop appropriate access ti~e which permits both the imperceptible access of words and the scanning of words at audible rates. This problem of scanning is illustrated by Figure 2. The essential requirement present is for some method for translation of informati on time base from the high-speed scan requirements of the digital system to the low-speed vocalization rate. The time for scan is determined by the permissible time for look up and size of vocabulary. Time for read out is determined by the vocalization time required for a word and varies from a fraction of a second to as long as one second. Considering the basic problem in Figure 2 and the operational requirements for the converter, it is possible to suggest three attracti ve solutions. First, it would be possible to mask a cathode-ray tube with the audio information and scan a digital field, directly as so ciated with this audio information, to look up words in the memory store. Such a system is illustrated in Figure 3A. By changing the rate of scan of the electron beam between the digital and voice fields, the time base for the informationread out can be effectively translated. Another method of look up would beto have a moving photographic storage conSisting of two fields. Look up of the digital field would be accompiished photographically and information would be strobed from the moving RECORD DIGITAL ACCESS SCAN AUDIO SCAN Figure 2. Scan Schematic 138 / Computers - Key to Total Systems Control AUDIO FIELD DIGITAL FIELD Figure 3A. Cathode Ray Tube Converter audio record field by a short duration light strobe. There are two possible applications for this method as far as read out is concerned. Read out could be accomplished by a moving electron beam across the electrostatic image on a vidicon screen. Read out could also be accomplished by detecting the discharge pattern created by the strobed records on the surface of a memory photoconductor. These two methods are illustrated in Figures 3B and 3C. Of the three approaches illustrated, the approach using a moving photographic storage and a moving electrostatic image has been selected for the principal study to date. This method was selected because it could be readily implemented with simple laboratory apparatus and because it would not have the inherent requirement for high power supply and component stability required by the all electronic cathode-ray scanning approach. System Explanation The application of the selected solution is illustrated in Figure 4. This schematic organizes a buffer memory for s tor i n g digitally-encoded messages, an optical system for scanning a digital field, a coincident system for selecting from an audio record field one of the audio records and an electrostatic system for reproducing the selected audio record from an electrostatic image. To describe the operation of the deVice, consider that a digital message is received and stored on the magnetic band of the rotating drum. The first word of this digital message, which consists in the example of 11 bits, is shifted into the shift register by standard digital circuit techniques. When this word is in place in the register, the system compares the permutations of its stored value and the continuously changing permutation of the digital field. This is accomplished by a standard comparator circuit and a parallel I1-bitphotoconductive detector. With parity, the comparator provides an output which triggers a short-duration strobe light. This short-duration light pulse exists only long enough to project the image of one word in the audio record field onto the moving photoconductive surface. The digital and audio fields are spatially related so the look up of the digital word in effect selects the audio word. The moving photoconductive surface has been charged to a uniform potential by a charge station. The incidence of light on the surface causes discharge in the pattern of the image. This discharge pattern is detected by an electrostatic pick-up, amplified and vocalized. Digital-To-Voice Conversion / 139 LENS AUDIO FIELD AUDIO OUTPUT VIDICON TUBE DIGITAL FIELD STROBE LIGHT Figure 3B. Vidicon Converter LIGHT FIELD AUDIO FIELD ROTATING PHOTOGRAPHIC STORAGE ROTATING PHOTOCONDUCTIVE SURFACE ;; CHARGE STATION Figure 3C. Photoconductor Converter ELECTROSTATIC PICK-UP 140 / Computers - Key to Total Systems Control DIGITAL READING HEAD DENSITY TYPE CANNED MESSAGE '--_ _ _ _ _ _ _.... DIGITAL INPUT STROBE MASK PLATE AUDIO OPERATED SWITCH AUDIO OUTPUT Figure 4. Digital-to- Voice Converter Functional Diagram At the conclusion of the read out, it is possible to shift the subsequent digital word from buffer storage and to project it in electrostatic image form for immediate reproduction. Since it is possible to strobe information from photographic storage in times as short as two microseconds, the look-up time for even a large vocabulary of 1000 to 5000 words is imperceptible to the listener. Of course, it would be possible for the look-up time to be extended by taking advantage of the time for vocalization of the previous word. In some applications this is practical while in others it would require the communicating digital system to remain on line during vocalization. Therefore, it is important to have available the capability for high-speed look-up that is imperceptible to a listener between words. Feasibility Experiments The approach described incorporates a number of techniques which are well known and standard. These are techniques such as buffer memory, digital switching, etc. There are techniques required in the converter approach that are not as well known and deserved laboratory experimentation and consideration particular ly in light of their conjunctive application. These were: 1. high-speed strobing 2. photoconductive imaging 3. electrostatic detection 4. system optics 5. methods for recording It was decided that a test apparatus would be developed which would typically represent these techniques. This apparatus would provide a source for data and feasibility experimentation. The schematic for this apparatus is illustrated in Figure 5. To shorten the length required for the optical system, a system was constructed in which the path was reflected through three mirrors. A strobe light was mounted in this optical system so that its high intensity flash, through a mask placed in the light path, could be focussed just before the lens. This system projected the image on a Digital-To- Voice Conversion / 141 PHOTOGRAPHIC FIELD \'-111__.1. . .-J+-FIRS~RSRU~:ACE I MIRROR It n=m=4 I I I I I I J:::=::::b I If f uI '----> __ tt -'---I I OBJECTIVE LENS I COLL IMATING LENS __ I I I I - FIRST SURFACE MIRROR TO AUDIO CIRCUITS COLLIMATING ~~r-----+~<- - - LENS \ / \ / -=:,....;.-- ELECTROSTATIC PICK UP IONIC CHARGE-_---.!~~ STATION HYDROGEN STROBE PHOTOCONDUCT IVE SURFACE STROBE POWER SUPPLY H IGH VOLTAGE POWER SUPPLY Figure 5. Feasibility Apparatus Schematic moving turntable. The turntable, rather than a drum, was used because such a table was readily available and possessed good stable dimensional and dynamic characteristics. An ionic charge station was constructed and a mount was developed that permitted a manipulation of various types of experimental pick-up devices. Figures 6A and 6B show the laboratory apparatus d eve lop e d for this purpose. The problem of strobing is one of developing sufficient light intensity to create the necessary photoconductivity in the material in a short time span. The immediate objective of the early experiments was to determine whether or not millisecond light flashes would be reasonable. Later experiments moved into the microsecond region for the duration of light flashes. A General Electric type FT-230 hydrogen strobe light has been used in these latter experiments. This lamp requires 2000 volts and generates light pulses as short as 2 microseconds duration. Photoconductive imaging on the surface of the moving turntable has been a subject of some study. From the work by Dutton, at the 'Pniversity of Rochester, and others, it was known that the grain of deposited amorphous selenium coatings, such as used in standard xerographic processes, had been measured to micron dimensions so this was not aprincipal point for investigation. The image problems studied were the response of the material to the short duration light flashes and the degradation of the image due to field dispersion and surface conduction. These experiments have been conducted by two methods. These are: electrostatic probing of the charge patterns and charged particle dusting of the selenium plates. Electrostatic detection presents some serious problems. This is an area in which there has been only a limited amount of work and although H. W. Katz and others report in their text the fundamental types of probes which have been technically developed, the 142 / Computers - Key to Total Systems Control Figure 6A. Feasibility Apparatus, Optical Section Figure 6B. Feasibility Apparatus, Pick- Up Section development of a high resolution electrostatic probe still has not been accomplished. Very little has been done to improve upon the probes discussed. The probe used in the laboratory device is illustrated in Figure 7. The resolving capability has been observed to be as expected, from 3 to 6 times the spacing of the probe to the plate. System optics might not be considered critical; however, the ultimate requirement for the converter to be compact demands that the optical storage be small. This will require high magnification ratios between storage and detection. Of course, this is related to the resolution of the detector, and with better detectors this problem becomes less critical. It was anticipated, however, in beginning the experiments that audible tracks as narrow as 10 mills would be required in the system and that the frequency recording capabilities of these records and the transmission of the optical system should be at least 1 kc/inch of length. Various track diameters and widths have been tested by the program. Optical records of the dimensions des c rib e d have been successfully made. Severe problems of registration have been encountered with multiple record vocabulary composition. Currenteffort is being directed toward new techniques to solve these registry problems. Two methods are available for photographic recording of audio. These are: (1) density and (2) variable area. In density recording, the density of the photographic image is used to indicate the level of audio. In variable area r e cor din g, the integrated area of the sound track for a given resolving segment is used to indicate the audio. For proper evaluation of the photosensitive process, it was necessary to test both methods. For this purpose, and because the sound tracks due to the nature of the test apparatus were circular, it was necessary to build a photographic recording apparatus. This is illustrated in Figures 8 and 9. Both density and variable area records were made and tested. Results The experiments have definitely demonstrated the feasibility of the approach selected for digital-to-voice conversion. Good, intelligent audio words have been reproduced by the apparatus. The normal characteristics, which are measured in audio, indicate that the performance of this system from the audible standpoint is acceptable. For example, the frequency response is 20 to 1500 cps at 15 inches per second. The signal-to-voice ratio is 15 to 20 db. Experiments show that adequate light can be obtained from the high-speed strobe to create useful images when the pulse duration of the strobe is as short as 2 microseconds. The particular strobe light used was not the highest intensity light source a va i I a b I e. Higher intensity strobes having different electrode materials can be constructed. The photoconductive imaging was found to be more than adequate for the purposes of Digital-To-Voice Conversion / 143 SHIELD ,-, ,-, I I ( I I I I I I I I I I I J.-~ l J ~-==J - '1 I I I I I SHIELD CONDUCTING STRIP Figure 7. Electrostatic Probe audio reproduction. The image patterns varied in intensity from field strengths at the surface of the material near 600 volts to strengths of less than 100 volts. The methods of measuring introduced some error in these figures, but no difficulty was encountered due to poor image definition caused by the photoconductive material. Considerable difficulty was encountered from loss of image due to surface conductivity on occasions of high atmospheric humidity. The electrostatic detection has presented a considerable problem. The basic limitation of the electrostatic detection probes plus the problems created by the micro-dimensions necessary for separating and shielding have yielded less than satisfactory results. It is anticipated that improvements in method of detection and specifically the incorporation of a push-pull or positive-negative system of reproduction will overcome some of these problems. It is important that the signal-tonoise ratio of the system be increased. It is also highly desirable to increase the resolving capability of the detector to permit the use of smaller photoconductive plates. This performance has led to the serious consideration of the use of a vidicon tube rather than a moving plate for storage. The optics of the system, while relatively crude, have proven entirely adequate for the purposes of the experiment. It is not anticipated that any difficulties would be encountered in developing an optical system for a prototype converter. Audio Records Both the density and variable area records have been reproduced successfully. Because of the exposure characteristic of the photoconductive material, variable area recording has been selected. This characteristic is represented in Figure 10. With variable density, it would be necessary to operate on the linear region of this curve. With variable 144 / Computers - Key to Total Systems Control TAPE RECORDER GALVANOMETER IMIRROR ASSEMBLY AMPL SLIT MASK I OBJECTIVE { LENS SYSTEM I I :: ~ I I \I FILM TURNTABLE Figure 8. Recording Apparatus Schematic area, it is possible to operate in saturation. This broader operating region has led to the better performance and stability of variable area records and is the reason for their selection. Figure 11 illustrates the variable area recording of the word, "Motorola." A single variable area track (outer) andpush-pull dual variable area track (inner) are shown. At this writing, no conclusive data has been gathered to show advantages of dual vs single tracks. This effort continues with further laboratory tests and e x per i men t s. Currently, signal-to-noise ratio is a problem of concern with the original apparatus. In an effort to improve this, a positive-negative sound track is being used as a source for differential audio signals. It is expected that the ability of the differential system to rej ect common mode noise and the increase in 6 db of signal strength should improve the signal-to-noise ratio by a factor of 20 db. APPLICATIONS UNDER CONSIDERATION The work to date has produced results sufficiently satisfactory to permit the consideration of various applications of digitalto-voice conversion. Several such applications have been considered in detail. These are principally associated with systems where Digital-To- Voice Conversion / 145 Figure 9. Recording Apparatus Figure 11. Sound Tracks LINEAR RANGE PLATE POTENTIAL TIME OF EXPOSURE Figure 10. Photoconductive .Material Characteristics large data processors are used in the control or in the information organization for manual systems of operation. For example, in the air traffic control system there are three clear instances where voice conversion from digital information is desirable. These are: (1) flight plan production, (2) clearance information messages and (3) weather data transmissions from flight service stations. In the now developing weather system for the Air Force and FAA there is another good opportunity for application of digital-to-voice conversion. In this system, it is anticipated that approximately 90% of information dissemination will be over the telephone to callers who have dialed in to request up-to-date weather information. The machine will have this information available in its stores and can, using the voice converter, communicate directly to the caller over the telephone circuit. The reduction in requirements for operator handling of calls as a result of the application of the digital-to-voice converter is dramatic in this instance. These applications, as it happens, are all concerned with go v ern men t or military 146 / Computers - Key to Total Systems Control systems. This does not mean, however, that there are not in the future numerous commercial applications for voice converters. For example, banks, traffic control, automatic inventory control and other systems of data processing are currently expanding in commercial application. All offer the basic characteristics necessary to create need for digital-to-voice. This continuing program is under way in the Motorola laboratories. It is anticipated that the solutions for the major problems will be developed within the next few years. For this reason attention is now being directed toward the application of digital-to-voice converters. Perhaps within the next few years the application of these converters will be commonplace. CONCLUSION BIBLIOGRAPHY The digital-to-voice converter is a new and powerful tool to add to our work shop of input and output devices. It not only provides for some particularly unique operations where other methods of machine output are not well suited, but can be expected to provide an important back up to existing output methods. For example, printed information could be sent along for purposes of record while the vocal information was transmitted at the same time for its transient and immediately useful importance. Conversion by the techniques discussed in this paper are definitely feasible. There is no reason to assume that voice messages cannot be rapidly composed from photographically stored data. All of the tests indicate at least a satisfactory level of performance. The techniques tested promise to ultimately result in compact and inexpensive equipment. This is a characteristic requirement of any widely used digital output device. Further development is needed before a compact, inexpensive converter is available. This development should investigate and explore some of the alternate methods of conversion mentioned, but not yet studied. In addition, this development should be devoted to the creationof a vocabulary for communication and to the further improvement of the techniques that have been already established as feasible. R. G. Breckenridge, B. R. Russell, E. E. Halm; Photoconductivity Conference; John Wiley and Sons, New York, 1954. H. W. Katz, Solid-State Magnetic and Dielectric Devices; John Wiley and Sons, New York, 1959. R. M. Schalfert and C. D. Oughton, Xerography-A New Principle of Photography and Graphic Reproduction; Journal of the Optical Society of America, Vol. 38, No. 12, Dec. 1948, p. 991-998. Gregg, Leslie, Zoubek; Gregg Shorthand Manual; Gregg Publishing Manual, 1949; Ref: Sounds, Syllables, Symbology. George A. Miller; Language and Communication; Ref: phonetics, statistical approaches, words, sets, and thoughts. Julia E. Johnson; Basic English; Ref: Examples, Pro and Con, of the basic English vocabulary. Anthony G. Oettinger; Automatic Language Translation; Ref: Processes of initial selection' vocabulary, outline of the fundamental, lexical, and technical problems of translation. Godfrey Dewey; Relative Frequency of English Speech Sounds; Ref: Statistics on relative frequency of words, syllables, and sound. Leonard Bloomfield; Language; Ref: Phonetic structures, morphology. Charles C. Fries, American English Grammar; Ref: Grammar phenomena, inflection and substantives. CARD RANDOM ACCESS MEMORY (CRAM): FUNCTIONS & USE Leon Bloom and Isador Pardo National Cash Register Company Electronic s Division Hawthorne, California William Keating and Earl Mayne National Cash Register Company Data Processing Systems & Sales Dayton, Ohio a CRAM unit the cards hang from 8 rods which may be turned in such a way as to cause one, and only one, of the cards to be released. Two gating rods at the side of the cards insure proper selection and release. When the card is released it is allowed to fall freely until it reaches a rotating drum to which it is pulled by means of a vacuum, and the card is rapidly accelerated to the surface speed of the drum, 400 inches per second. Shortly after attaining this speed, the leading edge of the card reaches the read-write heads. While passing the heads, a portion of the card is pulled away from the drum by a combination of removing the vacuum from the drum and creating a vacuum at the head, insuring good head contact. Once each portion of the card has passed the heads it is brought back into contact with the drum. The write head is encountered first, with the read head 1/2" behind. The read head, besides its normal function of reading, is also used to perform an immediate check after writing. After reading or writing the card may remain on the drum, to be recirculated past the heads on the next revolution, or it may be released and returned to the magazine. The release mechanism consists of a simple gate which in one position does not affect the card but allows it to remain on the drum; in the other position it peels the card from the drum' and directs it back to the magazine. The National Cash Register Company's Card Random Access Memory (CRAM) is a unique device which provides for the first time a single practical unit for both random and sequential processing. This flexibility, when applied to the actual requirements of data processing installations, permits the use of powerful techniques resulting in highly efficient operations. In order to understand how this is achieved it will be necessary to have a knowledge of the basic CRAM mechanism and of the relationship of the CRAM to theNCR C-315 Data Processing System (Section A). Use of the CRAM in general application areas will then be discussed (Section B), and finally a brief description will be given of the programming packages developed for CRAM (Section C). A. CRAM AND THE 315 1. The Cram Mechanism The CRAM is illustrated in Figure 1 and an interior schematic view is shown in Figure 2. The basic data storage medium of the CRAM is a 0.005-inch, oxide-coated, Mylar Card, 14" long by 3-1/4" wide (Figure 3). Each card has a set of binary coded notches at one end, which permits the automatic selection, at random, of anyone of 256 cards from the CRAM magazine. When loaded into 147 148 / Computers - Key to Total Systems Control Figure 1 The return to the magazine is accomplished by allowing centrifugal force to provide the momentum which sends the card through the raceway and into the magazine. Then the loader plate pushes the card back onto the rods where it is once again available for selection. The sequence of the cards on the rods is, of course, inconsequential, since the selection of a card is independent of its position in the magazine. 2. Data, Format, and Timing There are 56 channels across each card divided into 7 data tracks of 8 bit channels each. A single track, which may be read or written each time a card passes the heads, consists of 6 information bits, a clock bit and an odd parity bit. Information is recorded at a density of 250 bits per linear inch which, Figure 2 when coupled with the card rate of 400" per second, gives a transfer rate of 100,000 six-bit characters per second. Blocks, in lengths of up to 3100 characters, may be written in each of the seven tracks, with the block length in one channel having no bearing on the block lengths of other channels. Each block has a longitudinal parity character recorded following the last data characters. Reading or recording of blocks must start at the beginning of the track. Electronic switching allows random selection of any of the seven tracks. From the time a card is selected until it reaches the heads is approximately 200 ms. The rotation time of the drum is 46 ms. Since Card Random Access Memory (Cram): Functions & Use / 149 CARD 117 64 +32 +16 +1 =117 Rods set for Cord 118 Card 117 cannot drop becouse It IS held here II ill i~ ==== == II iii III ==_=_=i ~_= I ,"_=_=1 Iii iii ~; 1111111 7 Tracks Per Card 3,100 Alpha Characters or 4,650 Decimal Digits Per Track 32,550 Digits Per Card 256 Cards Per Cartridge 8,332,800 Decimal Digits Per Cartridge 3. Control 1111111 0123456 INFORMATION TRACKS 1- ----- While a CRAM is in use, the cards are kept separated from each other, and spread evenly along the rods, by air jets. When the hinged faceplate and loader plate are swung aside, the jets are automatically turned off and the deck of cards hanging on the rods may be compressed by hand. A cartridge, consisting of three sides and / a bottom, is then hung on a horizontal guide bar, fastened to ,the front of the CRAM cabinet. The cartridge is swung onto the magazine, so that the cards hang inside it. One side of the cartridge is movable and springloaded; when released, it further compresses the deck, with sufficient force so that the cards are held securely at any attitude. The cartridge is then slid to the right, along the guide bar, until the cards are off the rods, and the cartridge is remov from the guide bar. For loading the card& into the CRAM magazine, the procedure is the exact inverse. A dust-proof cover is provided, for shelf storage of the cartridges. With this extremely fast and Simple process, it is practical to maintain very large files with a minimum of C RAM units. 3'4" Figure 3 each card contains 7 times 3100 or 21,700 characters, it follows that once a card is on the drum, this much information is available to the processor with an average access time of 23 ms. As there are 21,700 characters per card and 256 cards in a magazine the total capacity of each CRAM unit is 5,555,200 alphanumeric characters or 8,332,500 numeric digits or any proportional combination. Extending this number by the 16 CRAM units which may be tied to a C-315 at one time, each system can have available to it more than 88 million alphanumeric characters of information with a maximum access time to any of it of 200 ms. In addition to this capacity for on-line information there is a fundamental difference between CRAM and contempory random access devices. That is, the ability to change magazines in no more time than it takes to change a reel of tape. Three photocells provide the prime source of control of the CRAM mechanism. The first photocell, PE 1, is located at the entrance to the loader mechanism to detect the leading and trailing edge of the card. Upon detection of the leading edge, the loader plate opens to receive the card. Upon detection of the trailing edge, the loader plate, with suitable delay, is actuated to return the card to the magazine. PE2 precedes the write head by 0.8 inches, and PE 3 is halfway between the write and read heads. The leading edge of the card, detected at PE 2, indicates completion of the "dropping" phase of card selection, and also transmits the demand-interrupt signal to the processor. When the card reaches PE 3, this terminates the "Ready" state of the CRAM, as it is now too late to initiate a read or a write at the beginning of a track. Sequence interlocks at PE 2 and 3 also control operation of the release gate, to prevent any ambiguity as to which card is being released. 4. Relation to the C-315 The photocells in the CRAM unit are combined with the interrupt and branching 150 / Computers - Key to Total Systems Control features of the C-315 to provide maximum utilization of both processor and CRAM time. First, the instruction which causes one of up to 16 CRAM units to be selected and one of the 256 cards on that unit to be released, is separated from the instructions which initiate reading and writing on one of the seven channels of the selected card. This separation allows the processor to cause a card to be dropped and then, during the 200 ms. that it takes for the card to reach the area of the read-write heads, continue with other program steps among which maybe instructions to select cards on other CRAM units. When the leading edge of a selected card gets within about 2 ms. of the write head it passes photocell #2 and may cause the processor program to be interrupted by Demand Signal from the CRAM. Whether or not the interruption actually takes place is controlled by the unit Demand flag provided in each CRAM unit and by the Demand permit flag located in the processor. Both these flags, which are program controlled, must have been set in order for the program to be interrupted. When the program branches due to the interruption, the address of the next command in the program which would have been executed had the interruption not occurred, is stored in a link register. Here it is easily accessible for use in returning to the main routine after the interruption routine has been executed. It is of course possible that the processor program, as organized by the programmer, will not respond to the demand in time to read or write at the beginning of a card track. In such cases, PE 3 will cause an indicator to be set so that, if a read or write instruction should be issued, the data transfer will not take place until the card is again in position to read or write. By using these interrupt features several CRAMs may be used simultaneously without programmer confUSion, and with maximum time sharing. Additional control in the CRAM unit allows the next card to be'selected while the present card is still on the drum. This instruction causes a card to start dropping, but allows one more read or write on the present card, before it is automatically returned to the magazine. Safeguards are provided to insure that the read or write command will actually be performed on the present card. An alternative mode of the selection command' on the other hand, locks out all reading and writing until the next card has reached the drum. Selection of another card is inhibited while a previous card is still dropping to the drum. In such case the CRAM unit is considered to be "busy" and the processor will take a "busy" branch. One interesting feature results from the fact that the card occupies only about 2/3 of the drum circumference. This allows 15 ms. for computation, between reading a track and recording the updated version of that track. In 15 ms., the processor can execute 250-300 instructions. Thus each read, update, and write often requires only two drum-revolutions, including computation time, and still leaves 15 ms. for other proceSSing before acceSSing this card again. This description of the relationship between the CRAM and the C-315 would not be complete if it did not include several of the other instrUctions, safeguards, and checks available to the system. For example, a card which is on the drum may be released by instructions, or if this CRAM unit is not accessed for 750 ms. the card will automatically be returned to the magazine. A read head follows the write head so that odd parity on each character and longitudinal parity on each track may be checked while reading, or immediately after writing. An error discovered during either of these operations will cause the processor to branch so that proper action may be taken by the CRAM executive program. All control areas which require hardware control have been adequately covered in the 315-CRAM system. These will work with the PAckaged CRAM Executive (see Section C) to insure correct and efficient utilization of CRAM. B. THE APPLICATION OF CRAM Specifications alone cannot adequately portray the facts about any computer configuration. This is especially true if such a configuration involves new concepts. This section will explain how the 315-CRAM System copes with widely dissimilar applications. Instead of Singling out any particular application (although specific instances will be cited) the capabilities of CRAM will be discussed in two generalized areas: 1) file updating and 2) sorting. For clarity, analogies will be Card Random Access Memory (Cram): Functions & Use / 151 drawn with tape systems and current random access systems so as to underscore certain efficiencies, economies, and flexibilities of the 315-CRAMSystem. All performance figures will be compared with a 315-tape system. The prime factor in determining final performance of data processing systems is the organization and basic efficiency of the sec0ndary storage devices. Usually the type of device chosen for secondary storage (tapes, disc, drum, or cards) determines the applications areas for which it is best suited. Information storage requirements may change completely from one application (or one part of an application) to another. The information storage flexibility of the CRAM and its attendant efficiency are its greatest assets. A single CRAM unit combines the abilities of contemporary random access devices and magnetic tape handlers. The flexibility of CRAM makes it possibleto have a single type of secondary storage peripheral which economically satisfies all data processing requirements. To exemplify CRAM's flexibility, its use for file updating will be outlined. 1. File Updating The general file updating process considered here will be that which is standard for typical business data processing. A Mast~r Historical File must be posted and updated for each transaction which has been input into the system. Three basic techniques of updating may be used efficiently in 315 installations, vis., Random, Serial Selective and Serial Copy. Most data processing problems, however, do not require clear cut versions of any of these. The CRAM permits the use of techniques which skillfully blend these methods into an optimally efficient system. a. Random Access (Figure 4) The CRAM provides the 315 with anexceptional random access memory. Maximum access time of 200 milliseconds, a reaccess time of 15 ms, the ability to store 5,555,200 characters on each CRAM unit,and the 315's potential of controlling 16 such units each with independent access, all attest to this statement. The ability to change CRAM memory cartridges in apprOximately 30 sec0nds make CRAM unique for a device of its capabilities. This makes it possible to segment storage allocations in such a manner Figure 4 that information pertinent to separate random access jobs can be loaded as required. In order for other known random access systems to accomplish the same function, information must be unloaded to another storage medium, e.g., tapes or cards. Since this technique unnecessarily burdens the system the alternative approach is usually taken of providing enough storage capacity for all jobs which will use the memory. The prevailing concept of "immobile information" therefore turns out to be an expensive restriction which is obviated by the CRAM file replaceability concept. It should be noted that this concept not only provides for efficient utilization of secondary storage capacity, but also provides for back-up should one of the units become inoperative. The cartridge on that unit can easily be removed and mounted on a spare unit, thus making the data once again available to the system with a minimum of down time. For random file proceSSing, commonly used addressing methods are employed to select a CRAM unit, drop a card and then read a track. These methods include the use of d ire c tor i e s, direct add res sin g, or 152 / Computers - Key to Total Systems Control calculated addresses. When the appropriate track is read it is scanned by the program for the proper logical record. Storage overflow methods are incorporated if the record being sought or written could not be stored on the selected track. Methods of address selection and storage overflow control are conventional and will not be described here. The appropriate track of the selected card is available for reading 200 ms. after the card has been called. This track is read in 31 ms. As was explained earlier, the card remains rotating on the drum and 15 ms. elapse before the card can again be read or written upon. During this 15 ms. the record in the track can be found by program and in most cases updated (the 315 is a fast computer with an average command execution time of 50 u sec). The card can then be written on in 31 ms. during its next revolution. If for any reason the updating takes over 15 ms., the recording of the updated record can be performed on subsequent revolutions since the card remains on the drum effectively until released or until another card is dropped. This procedure applies as well to the case where a second track of the same card must be read as in the case of storage overflow. During the writing of the updated track, a second card may be accessed and dropped on the same unit. When cards are being dropped simultaneously on separate units, the program is advised by interrupt when a card is ready to be read or written. The net time to randomly update a file stored on one CRAM is approximately 4 transactions per second. When the file is stored on multiple CRAMs and cards dropped simultaneously, this speed approaches 13 transactions every second. b. Serial Selective Updating (Figure 5) The serial selective file updating technique is actually a modification of the random updating technique. As in random processing, track directories, as well as storage overflow methods, are employed to facilitate record addressing. In this method, the entire Master File is sequenced and stored over one or several CRAM cartridges. Transactions are sorted into Master File sequence and posting to active cards and active tracks takes place selectively, i.e., those cards and tracks which are not affected by transactions are left undisturbed; those cards and tracks which Figure 5 are affected are read, updated in memory, and recorded over the old information. This method, while requiring batch proceSSing, has two definite advantages over random processes. The number of cards which must be dropped and the number of tracks which must be read and written is never more then the number of cards and tracks which must be updated. Secondly, the entire Master File need not be available to the computer at one time. As the file is being processed serially, a single CRAM unit (or two if alternation is desired) is sufficient regardless of the magnitude of the file. The first cartridge of the file is mounted, updated, and replaced by a second and so on through the file. For low activity files, this method of updating provides the most efficient utilization of CRAM. For instance, if the average number of active records is one per card, the 315 to match this performance would require tapes which operate effectively at 236,000 characters per second with no start and stop time. Even for a moderately high activity averaging one transaction per track (typically a track contains 5 to 15 logical records), the effective 315 tape rate would have to be 77,000 Card Random Access Memory (Cram): Functions & Use / 153 characters per second. With current stop start times and assuming blocking similar to CRAM, 315 tapes (which are generally similar to other tape systems) would need to operate at over 100 kc to achieve such an effective rate. The net updating time per transaction (one to a track) using this serial selective CRAM method of updating and employing a single CRAM is 12 transactions per second. In practice it is often found that the very low activity files are by their nature quite extensive. This leads to the problem of on one hand requiring a random access devised to achieve fast processing and on the other hand requiring mass storage devices such as tapes to inexpensively store the files. However, random access devices are uneconomical in storing data and tapes are inefficient in processing low activity files. The serial selecting updating method in conjunction with the CRAM's fast access and interchangeable file concept provides an efficient solution to the problem. c. Serial Copy Updating The CRAM unit can also be used exactly like an ordinary magnetic tape handler. Each cartridge can be considered a tape reel storing 1792 blocks (tracks of cards) each of which stores up to 3100 alphanumeric characters or 4650 numeric digits. All CRAM tracks are then considered sequentially in this method. Master Files can be organized for conventional Father-Son (Copy) updating. In this method the file is sequenced, as are all transactions which must be posted against the file. The old (Yesterday's) Master File is read, all active records updated and a completely current New Master File written. In such a method of file updating, all tracks of all cards on the Old Master File must be read while all tracks (as updated) of all cards are written on the New Master File. Usually this method employs two CRAMs (an old and new) or four if cartridge change time is to be shared. With such a method, those files which lend themselves best to Magnetic Tape File Processing can be handled at least as efficiently with CRAMs. All the features of retaining yesterday's files for emergencies, the handling of high activity files where records are being added, deleted, and changed in size are retained with CRAM, identically as with tapes. The efficiency of such a system is outstanding. Using but one read in and one writeout memory area, the time to copy a single CRAM card is approximately 1 second. An effective t ran sf e r rate of approximately 42,000 characters per second is achieved. This would require a 50 kc tape unit to duplicate. Using a two buffer input and a two buffer output area, most drop access and drum access times can be eliminated. While processing information in buffer 2, the interrupt is set to advise the read and write macros when the appropriate card is in position to read or write buffer 1. No time is lost in accessing the card and an effective rate of up to 100,000 characters per second can be achieved. One particular use of this method is in the Demand Deposit Accounting application for banks. The characteristics of a checking account file are high activity, and constantly changing record sizes. These requirements are satisfied by such a Father-Son updating technique with CRAM. Added Considerations of CRAM file Processing i. Control Although the random or Serial Selective method may be used for a given application, the need for periodic sequential processing is ever present. Such activities as insertion of new records, deletion of old, creation of rescue \ files or file dumps all require sequential file access. These activities on conventional random access devices are expensive, time consuming, and often require that additional non - homogeneous equipment such as tape units be included in the system. The CRAM, on the other hand, cannot only execute these periodic operations efficiently, but can actually create sequential expanding files, such as transaction files, while doing random proceSSing. This ability plus the discreet nature of the CRAM file permitting direct access to the affected portion of the file greatly facilitates reconstruction and the maintenance of audit trails. Such blending of several techniques but always using the same peripheral CRAM provides high efficiency with safety without increasing the peripheral requirements of an installation. 154 / Computers - Key to Total Systems Control ii. Absence of Rewind Whenever the CRAM is being used in a magnetic tape fashion there is one major feature of CRAM which cannot be overlooked. Rewind is completely eliminated. Time between jobs is appreciably reduced. On completion of a run, CRAM can be changed immediately whereas tapes are required to be rewound. Many applications require multitape reel or multi-cartridge files. In tape systems the lack of an alternate handler involves the loss of both reel rewind as well as reel changing ~imes. Since only cartridge change time is involved in CRAM systems, the requirement for alternate C RAM. units is less severe. iii. Multi File Cartridge Not only do multiple CRAM cartridges make up a single file but each cartridge can also be used to store multiple small files. For instance, cards 2-70 can store the Program File, cards 71-130 a Transaction File, 131-200 an Output File, and 201255 a temporary working file (Figure 6). Searching and in most cases recording restrictions on magnetic tape make such multi file tape reels very difficult and cumbersome to work with at best. The importance of being able to organize file data in this manner is readily apparent. Applications using such small files usually require more time between runs to accomplish tape set ups than they do for processing. Much of this set up time can be eliminated by properly pooling multi files on one or two CRAM cartridges. In many applications several tape processing runs may be combined into a single CRAM run because of the availability of all necessary files at one time. With CRAM such consolidation can become natural with proper information organization. Fewer CRAM units are required to do a particular job. A typical example isNCR's own COBOL translator which requires a minimum of six tape handlers. Using the exact same system organization but allowing each CRAM to be segmented into multi files, COBOL will require but two CRAM's for translation (with a speed increase over our 315 tape system). With some loss of efficiency, COBOL will later be coded to run on one CRAM. d. Summary For file updating the 315 CRAM System offers a versatility of file organization. Any one of three normally acceptable file methods can be employed with high efficiency and all on the same unit. Numerous advantages are possible with CRAM over older peripherals, all of which were designed with but a single method of file maintenance in mind. 2. Sorting Figure 6 Besides file updating another major data processing operation is sorting. Sorting capabilities are, and should be a major test of equipment. Even on a randomly posted file, the sorting of output and of various oth,er auxiliary files is of prime importance. The sorting capabilities of the CRAM are exceptional. Methods outlined here are straightforward. The basic concept is to divide the CRAM or CRAMs into four logical files. Sorting is then accomplished exactly as if a four tape sort were being performed. Much of the logic of the 315-tape sort generator is carried over directly to a 315-CRAM sort generator which will produce programs USing 1, Card Random Access Memory (Cram): Functions & Use / 155 2, or 4 CRAMs. The following table indicates the effectiveness of CRAMs versus tapes. Time required to sort 30,000 records on a 20,000 character 315 with various peripherals: 40 Character 80 Character Records Records 4 Tape Units (40 kc) 17.0 min. 29.1 min. 1 CRAM 22.7 min. 40.3 min. 2 CRAM 12.2 min. 19.5 min. 4 CRAM 10.1 min. 14.2 min. Note that while a single CRAM is somewhat slower than a tape sort, 2 CRAMs are more effective and a 4 CRAM sort is even more effective. In the method employed, internal sort times are identical for tape or CRAM. Tape times, however, are decreased by 43% and 66% respectively for 2 or 4 CRAM sorts. Such savings are achieved by the CRAM's capabilities of sharing card drop and transferring information at very high rates. In addition, the CRAM is not encumbered with start-stop and rewind times as are tapes. As well as e m p loy i n g straightforward techniques in the CRAM sort generator, more advanced methods can be devised to make full use of the CRAM's capabilities. One of these techniques takes advantage of the CRAM's ability to handle each track as a separate logical tape. Byusing a combination of block sorting techniques and then conventional merging techniques, the number of passes through the data to be sorted is reduced. This, of course, reduces the total sorting time from those figures mentioned above. For the basic needs of data processing applications, the unique features of the CRAM proved exceptional in all studies. Not only is basic efficiency, with flexibility of approach, inherent in CRAM but the wide range of small CRAM-315 to large CRAM-315 systems allows National to enter a wide scope of application areas with one computer. Systems employing as few as one CRAM and as many as sixteen are valid and efficient (depending on the job). Increased capabilities are readily achieved as CRAM units and memory modules are added to a smaller CRAM-315 System. The hardware capabilities of the CRAM ha ve been outlined as have many of its general uses. However, the CRAM picture would not be complete without also describing the software programs provided with the system. C. PROGRAMMING WITH CRAM All NCR tape systems (304 tape, 315 tape) have from early conception been designed to work with supervisory routines. These routines, termed STEP (Standard Tape Executive Program) have handled all tape contingencies, end of tape procedures, labeling, and job to job executive functions. These programs have been used very successfully in the field. A similar CRAM control program termed PACE (PAckaged Cram Executive) has been coded and will be used by all programs which intend to manipulate CRAM. This\s a supervisory routine which will be stored in a fixed memory location at all times. All CRAM reads, writes, drops or other more advanced input-output functions will be accomplished by macros, which are coded to work with and facilitate PACE control. PACE is designed to simplify all CRAM programming, to provide all necessary system checks and control, and to retain intact the entire flexibility of CRAM. This executive supervisory program has three functions: 1) CRAM proceSSing control, 2) File label checking and semiautomatic file storage allocation, and 3) Program to program executive functions. 1. CRAM ProceSSing Control CRAM uses a magnetic reading and recording technique very similar to magnetic tape and therefore, like tape, requires certain error controls. These include making multiple attempts to read or write when temporary dropouts occur or bypassing the flaw should the dropouts prove permanent. Unlike tapes, the CRAM is subject to other operator and pro g ram mer contingencies which require close supervision and control. Among these are the possibility that an operator may erroneously change a CRAM cartridge or that a program might attempt to read or write on a card when no card or the wrong card was on the CRAM drum. Throughout PACE the philosophy has been to handle as much error control as is reasonably possible with a high degree of automaticity. The programmer merely codes his appropriate Drop, Read, Write or other macro instructions. During assembly time automatic linking to and from PACE is set up to enable PACE to completely supervise and control these instructions during object program runningtime. This insures that almost 156 / Computers - Key to Total Systems Control all possible CRAM difficulties that could be caused by a careless operator or programmer are handled properly. To implement PACE every new CRAM cartridge introduced is first set up completely by a standard service routine. Set up occurs but once in the life of a cartridge. The first two cards first eight characters of every track of every card are reserved for PAC E control. The first two cards are used to store file labels, PACE overlays, and to logically replace flawed tracks. The first eight characters of each track store card number and a cartridge serial number. Control is exeucted in the following manner. Any read or write errors cause reexecution. A repeated write failure (probably a flawed area) causes this track to be saved on one of the first two CRAM cards reserved for the PAC E system. Reading of such a track is controlled by PACE so that the programmer never need be aware of such occurrence. All card drops are checked for proper card number. This insures proper selection both by CRAM and by the programmer. Any attempt to read or write on the wrong card or a non-dropped card causes the PACE system to reselect the proper card without disrupting the program. Any excessive difficulties are reported to the operator on the 315 console. All card drops are also checked for proper cartridge serial number, thus insuring against file mounting errors. 2. File Label Checking and Semi-Automatic File Storage Allocation As with tape reels, each cartridge has a recorded file label for every file stored on the cartridge. These labels contain file name, cartridge sequence number, data recorded, obsolete date, and information as to what cards are used to store the file. Before writing a new output file, the programmer can designate two modes of storage allocation: fixed or automatic. In the fixed mode, the actual cards upon which the file is to be written are named. All file labels on the cartridge are checked to verify that only obsolete cards will be recorded upon. A new file label is created for this file and processing started. In automatic mode, all file labels are scanned to determine a contiguous group of obsoleted cards. These cards are then allocated for that particular file. A label is created and processing commenced. On filling any particular area, PACE will scan for more available space on the same cartridge before executing an End of Cartridge procedure. Before reading an input file, all file labels are checked for appropriate Name and Date. When found, the card numbers bounding this file (first and last) are stored for macro and programmer access. Processing continues thru the file to completion or till this cartridge is exhausted for this file. In the latter case, an End of Cartridge procedure is initiated. The End of Cartridge procedure either alternates CRAM units or demands a change of cartridge, depending on the number of units allocated to this file. Cartridge sequence number is augmented, a memory dump executed if desired, and the file initiated, as outlined above, for the new cartridge. 3. Program to Program Executive Functions Programs are set up and maintained on CRAM by the CRAM Librarian. Programs may be stored on a separate CRAM Program Cartridge or as a program-file on a CRAM Cartridge which is also being used for vari0us data file functions. When a program is completed, PACE locates the next program to be executed (provided that it is stored on a cartridge currently mounted on a CRAM), loads the program, accomplishes all necessary dating functions, and initiates execution of this program. Overlay Macros will locate and call in any desired program overlays during the running of this program. Because of the random capabilities of CRAM, its use for overlay storage is efficient and economic. 4. Basic Features of the Packaged CRAM Executive This executive program is a fixed program which is automatically included with all CRAM programs by the 315 Assembler or by COBOL. The basic control portions of the program are in memory in the same location at all times. Familiarity with PAC E is achieved by programmers, operators, and servicemen. The basic program utilizes only 1800 characters. File Opening, label checking, end of cartridge logic and Run to Run Supervisor are all stored as an overlay on CRAM. No 315 memory is required for permanent Card Random Access Memory (Cram): Functions & Use / 157 storage of these programs. A portion of memory is saved on a reserved CRAM track, the overlay is read into this memory area, the required PACE functions are performed, and memory is restored. Throughout all PACE operations, required operator messages are typed out. These are kept brief but clear. Likewise, the ability to override certain functions is available though excessive use of these overrides is naturally discouraged. ~ extensions have been made for the 315 NEAT COBAL to handle such methods of processing. Besides COBOL, Neat Compiler, PACE, CRAM Sort Generators, and CRAM librarian, a set of CRAM utility programs for CRAM prints, copying, and manipulating of stored information will also be available. The availability of a software package will simplify CRAM programming and enable one to realize all the flexibility and efficiency inherent in this new and unique piece of hardware. 5. CRAM Macros D. CONCLUSION Presently there are approximately ten CRAM macros. These include the basic read, write, and drop card macros. Macros are always used for these functions rather than machine instructions to insure proper PACE control. More sophisticated mac ros. are also available. The NEXT IN and NEXT OUT macros perform logical record read and write. These make extensive use of the many 315 index registers for record advancing. They are designed to handle straight tapelike files (fixed or variable records) with single or multiple input and output areas. The multiple buffer, as mentioned earlier, results in much more efficient input and output. Another set of macros SEEK, ADVANCE, and RELEASE will be used for random and for serial selective methods of updating and are being expanded to handle several standard random access addressing schemes automatically as part of the macro. COBOL The CRAM is a powerful and unique data processing tool. It makes an ideal bulk mem0ry device for small, medium, or large data processing problems. Its versatility of information storage allows it to be used in a manner best suitedfor a wide scope of different applications. It has definite advantages for both minimal or maximum jobs. It can be used as both a random and a serial access memory. Its power is coupled with the ability to change cartridges in no more time than is required to change a tape reel; no rewind of a CRAM cartridge is necessary and the price of a CRAM unit is comparable to that of a high performance tape unit. CRAM is here to stay and represents a definite advance in the critical area of peripherals. CRAM offers a general purpose file device for a general purpose computer. THE LOGIC DESIGN OF THE FC-4100 DATA-PROCESSING SYSTEM W. A. Helbig, A. Schwartz, C. S. Warren, W. E. Woods, and H. S. Zieper Radio Corporation of America Data Systems Division Van Nuys, California SUMMARY The Fe - 4100 is a parallel binary cOITlputer with a thirty-bit word length. It operates at a 1.0 ITlC clock rate and perforITls approxiITlately 50,000 operations per second. The internal ITleITlory capacity is 4,096, 8,192, or 16,384 words of randoITl-access core storage with an access tiITle of 1.3 ITlicroseconds. The entire data proces sor, with core meITlory, contains less than 3,000 transistors. A special feature of the COITlputer is a prograITl interrupt systeITl: up to sixteen independent prograITls can be executed on a pre-as signed priority basis. Each prograITl is provided with its own set of six index registers and its own program counter. Other feastures include: a special repeat ITlode for controlling SITlall, iterative loops without the usual branch instructions; relative addres sing; half-word ITlultiply and divide instructions for faster operation at reduced precision; and a norITlalize instruction to facilitate floating-point operations. INTRODUCTION DESIGN OBJECTIVES Historically, efforts to reduce the cost of computing systems have resulted in a morethan-proportional reduction in performance. Furthermore, these efforts have led to the imposition of many programming constraints which reduce ability and increase operating costs. The purpose of this paper is to describe a militarized data-processing system, the FC-4100, in which high-speed components, coupled with an advance in machine organization efficiency, have yielded high performance at low cost without sacrificing flexibility, versatility, or simpliCity of programming. The primary design obj ecti ve of the FC4100was to build a "small" computer. The package size selected as target permitted no more than 3,000 transistors in the central computer. The secondary design obj ecti ve was to retain, within the size constraint, the versatility and flexibility of large-scale dataprocessing systems. Important considerations in meeting these objectives were: • Random access memory for ease of programming. • Minimization of programming constraints and "housekeeping" problems. • Unspecialized instruction repertoire. 158 The Logic Design of the FC-4100 Data-Processing 8ystem / 159 The entire machine centers around a 30bit data transfer bus. Associated with the bus are three full-word registers, a 30-bit parallel adder, and three half-word registers. The "R", "G" and "A" full-word registers supply inputs to, and receive outputs from, the adder ("8") network. The "A" register also retains instruction results and provides shifting and complementing capability. The "R" register doubles as the core-memory regeneration register. The "8" network not only generates algebraic sums, but also supplies an exclusive-or function for logical operations. • • Efficient input-output system. Simplicity of maintenance and operation. • Efficient utilization of logic elements thru time sharing. • 30 - bit word length. MACHINE ORGANIZATION Inspection of the block diagram of the Fe -4100 (Figure 1) will help to illustrate the degree to which the design objectives have been achieved. A combination of time-shared registers and bus organization was employed to minimize the number of registers and the number of transfer paths among them. DEMAND SIGNALS FROM EXTERNAL EQUIPMENT EXTERNAL EXTERNAL DATA INPUT DATA OUTPUT BUS BUS ,r PRIORITY FLAG CONTROL CORE MEMORY ... MAIN CONTROL ADDRESS DATA , P L REGISTER REGISTER " R G A I REGISTER REGISTER REGISTER REGISTER IPA~I!YI ~ I " ,r SHIFT LEFT SHIFT RIGHT ADDER (S) COMP MOST r, SIGNIFICANT. II HALF OF BUS r " ,. , 1 I, LEAST SIGNIFICANT HALF OF BUS Figure 1. FC-4100 Block Diagram ~ I. " " 160 / Computers - Key to Total Systems Control Storage for the operation control bits of the instruction word is provided by the halfword "I" register. Core-memory addressing is supplied from the half-word ilL" register. An additional half-word register, "P", was added to the design when detailed investigation showed that improved performance would be achieved with a net decrease in logic hardware. The "P" regisJer receives the adder output during program-counter advance, index-register decrement, and address modification operations. "P" and "L" also are used together as a full-word multiplier -quotient register. Thus, in the FC-4100 system, no unique area of logic is assigned for the artihmetic unit, index registers, program counter, etc. For example, investigation has shown that the most efficient utilization of hardware is achieved by having the index registers and program counter stored in the core memory. Thus, it was economically feasible to have a large number of index registers, enhancing programming versatility. PRIORITY PROGRAM INTERRUPT SYSTEM The program interrupt feature of the FC4100 data-processing system represents a novel approach to the problem of coupling peripheral equipment (such as tape stations, line printers, etc.) as well as other computers to a central data processing system. The earliest technique used to implement inputoutput functions in computers was a completely programmed approach. The programmer was responsible for scheduling data transfers between the system and external devices, and for checking to determine the status of the transfers. This approach is quite attractive when used with low-speed peripheral devices because it requires very little hardware. A major increase in system speed is obtained when a "multiplexed-exchange" system is added to the data processor. Such a system contains additional data registers, address registers, and control logic. Once a given channel is initialized, blocks of data are handled automatically without disturbing the system program. Higher operating speeds are obtained at a significant increase in hardware. Unfortunately, the system program is still required to make periodic checks in order to determine whether data has entered the system. The primary purpose of the priority program interrupt system is to eliminate the need for program -controlled scheduling and status-testing of input-output transfers. The priority interrupt feature can be used as an adjunct to programmed input-output and/or multiplexed exchange systems. However, it should be noted that the program simplification which the interrupt feature effects permits the use of the programmed input-output technique with peripheral equipment whose speed might otherwise require the more complex multiplexed-exchange hardware. The FC -4100 incorporates a priority program interrupt feature which permits response to 14 randomly arriving channel "demand" signals. The memory may be considered as divided into two functional sections: order space and executive space. Order space is available to the programmer in the normal manner for storage of instructions and/or data. Up to sixteen independent or interdependent programs may be stored in this area. Associated with each program in the order space are eight sequential locations in the executive space consisting of one location for program counter storage, six locations for index register storage and one work space. Each program is assigned a priority identification number and an associated indicator flag. Each flag may be set either under program control or on command of a peripheral device. However, each flag may be reset only by an instruction in its own program. During the execution of each instruction, the complete set of indicator flags is examined to determine which flag set has the highest priority. If this flag is that of the currently active program, the program proceeds without interruption. Otherwise, the system enters the program interrupt mode of operation. Since the program counter index registers and overflow indicator are stored in memory, only two actions must be taken to implement this mode. First, the program counter associated with the interrupting program is retrieved from its assigned executive space location. This is an automatic system procedure. Second, if the interrupting program contains an instruction which changes the content of the accumulator (A) register, it must first preserve, in its own work space, the accumulator content left there by the The Logic Design of the FC-4100 Data-Processing System / 161 interrupted program. Such a program must later retrieve the contents of this work space and place it in the accumulator register. As an illustration of the operation of the program interruption system, consider that a program having a priority identification number of B is currently active. Assume that one of the instructions in this program activates the higher priority Flag 3. For purposes of discussion, this instruction is designated lB. During the final timing steps of IB, the program counter is modified, as required, to the value NB and is replaced in the core storage. The interrupt control logic is interrogated; the interrupt is sensed. The program counter o~ Program 3 is retrieved from its executive space location. The next instruction to be executed by the system is located at an address specified by the new program counter. In accordance with established programming constraints, and assuming that this program modifies the accumulator, an early instruction in this program stores the content of the accumulator register, A8 , in the work space of Program 3. At the conclusion of each instruction in Program 3, the interrupt control logic is interrogated to determine whether an interrupt is to occur. If a higher active priority flag is detected, the system will enter the interrupt mode again. Assuming that no higher priority flag is set, Program 3 continues to operate, checking the interrupt control logic at the conclusion of each instruction. During the execution of Program 3, it is quite possible for a number of lower priority flags to be set, either by external devices or by instructions within this program. These lower priority flags do not interrupt Program 3. Before the conclusion of Program 3, the As word is retrieved from the work space of Program 3 and is placed in the accumulator register. The final instruction of this program resets the priority 3 flag. Interrogation of the interrupt control logic now indicates that a change in programs is required and the system enters the interrupt mode. Suppose that priority 6 is now the highest flag set and that this program will also modify the accumulator. As indicated before, after retrieval of the program counter content associated with Program 6, an ear ly instruction stores the content of the accumulator register (As) in the Program 6 work space. Program 6 now operates until the final instruction of Program 6 resets its priority flag. Near the end of Program 6, A8 is again placed in the accumulator. This process of transferring A8 from the accumulator to a given program work space and back to the accumulator continues until the system priority level returns to number B. At this point, A8 is in the accumulator, and the program counter for Program B is retrieved. The next instruction executed is NB, and Program B continues as if nothing had happened. The top priority program is permanently preassigned to the function of analyzing overflow alarm conditions; its flag is set only by arithmetic overflows not anticipated by the program in which they occur. Next in the priority sequence are executive control routines, followed by the necessary input-output routines and the main programs. The lowest priority program is ordinarily a self-check routine, and is automatically activated whenever the main program is awaiting the arrival of new data. Assignment of relative priority between the various data interchange programs should be based on the allowable waiting time between data transfers. A program for handling the transfer of data between the computer and peripheral equipment is generally short-often a single instruction. For direct transfer to or from memory, the input-output routines normally do not disturb the accumulator. Once data has been transferred to the memory, the lower priority programs are called on to process the new information. Because the various input-output and data-handling programs have different priority levels, the programmer need not perform periodic tests for the arrival of data. The program interrupt system aut 0 mat i call y activates the proper program to process new data which has been transferred into the memory by other programs. INSTRUCTION REPERTOIRE The complete repertoire of the FC -4100 is shown in the appendix. The instruction word (see Figure 2) is divided into an operation half-word and an address half-word. The operation, tag, and address bits are typical of a standard single address instruction format, and specify the major action to be taken by the system. Significant variations of the major action are controlled by the C, 162 / Computers - Key to Total Systems Control Operation I o I I I ..... C D T 'bn Digit Digit Digit 0 I I 5 6 I I 8 9 I I 11 12 I W Address I I I I I I 1 I 14 15 16 I I I I I 29 Definition Bits 0-5 The operation to be performed (such as ADD, MULTIPLY, etc.) 6-8 The conditional branch digit (C), indicating the branch condition test 9-11 The relative destination digit (D), associated with C, determining the extent of the automatic loop 12-14 The tag digit (T) specifying one of six index registers or the program counter to be used for modifying the base address in the instruction 15 The suicide bit (S) controlling the resetting of the "active" program's priority flag 16-29 The memory base address for most instructions Figure 2. Instruction Word Format D and S bits which form a secondary instruction used for automatic loop control and priority interrupt flag control. The S bit controls the reset of the priority flag for a given program. When this flag is reset, the program becomes dormant until its services are required by another program or by an external device. The C and D bits normally are used to control the branching of the program. Either the accumulator, overflow indicator, or an index register may be tested (see tabulation' following) . For example an "add" instruction not only accomplishes an arithmetic operation, but also may replace the normal branch instruction required in conventional machines to control small loops. If the test conditions speCified by the C bits are not met, the program advances to the next sequential instruction. When the test conditions are met, the program jumps back the number of instructions specified by the D bits. Using the TST, SKP, and JMP instructions, the memory or accumulator may be tested individually or compared with each other to control branching. TIMING Each instruction in the FC -4100 is executed by a suitable sequence of "microoperations," each of which is capable of resetting a register or transferring data to' or from the bus, etc. Each occurrence of each micro-operation is generated by the intersection of the operation control bits with the master time grid described below. The execution time of each instruction is di vided into a number (two to nineteen) of cycles. Each cycle is subdivided into 4, 6, or 8 one-microsecond "slots." The five types of cycles which may exist in the machine are: (1) A 6-slot cycle to retrieve the instruction word from memory. (2) A 6-slot cycle, if necessary, to retrieve an index register and compute the effective address of the instruction. (3) A 6 -slot cycle, if necessary, to retrieve the operand and, in most cases, execute the required operation. (4) Cycles as required to cOlnplete the operation. The Logic Design of the FC-4100 Data-Processing System / 163 Interpretation C Digit o DO NOT jump back D instructions; reset overflow flag if D = 1, 3, 5, or 7 1 Jump back D instructions if the specified index register not equal to zero and decrement said index register by 1 2 DO NOT jump back D instructions; decrement speCified index register by 1 3 Jump back D instructions if accumulator register greater than or equal to zero 4 Jump back D instructions if accumulator register greater than zero 5 Jump back D instructions if accumulator register non-zero 6 Jump back D instructions if accumulator register equal to zero 7 Jump back D instructions if accumulator register less than zero (5) A 6-s10t cycle to update the program counter and check the program priority control. (Should this interrogation result in an interrupt, one additional cycle is required to retrieve the new program counter.) In those cycles which use the memory, the address is placed in the L register duringthe first time slot and a read'command is issued. The second time slot is executed and the system waits for a "read complete" signal before proceedingto the third and fourth slots. During the fourth slot, data is stabilized in the R register and a "write" command is issued. The write process is completed during the fifth and sixth slots. Because of the limited number of registers ,available, implementation of each instruction requires sophisticated manipulations of partial results during each cycle. A typical illustration is the action required to modify the content of the program counter. (During this cycle, the A register must remain inviolate in order to preserve the result of the previous instruction. The L register is used to address the memory and cannot be disturbed during the read/write cycle. Therefore, only the P, R, and G registers and the adder logic are available to perform the required modification, which is made during the last execution status level of the instruction. Furthermore, the R register content may be changed only during the third and fourth slots) . Slot 1: The address of the memory location which contains the program counter contents is transferred to the L register and a memory read cycle is started. Simultaneously, the branch control is set if the conditions specified by the operation and C bits are met. Slot 2: The content of the program counter associated with the current instruction is retrieved from memory, and transferred to the R register. The G register is set with the proper increment or decrement as determined by the C and D digits of the operation bits. Slot 3: The internal overflow indicator is tested and may be reset. The modified value of the program counter is transferred from the adder to the P register. Slot 4: The new value of the program counter along with the state of the inferred overflow indicator is transferred to the R register. 164 / Computers - Key to Total Systems Control Slot 5: LOGIC IMPLEMENTATION The priority interrupt flags are examined to determine the highest set priority. The internal overflow indicator and the I register are reset. ·"The building block of the FC-4100 is a NOR gate-a diode-coupled, diode-biased, grounded-emitter amplifier, coupling the advantages of high fan-in, high fan-out, and restandardization of Signal levels. Use of this type of gate results in noise-free operation and Simplicity of maintenance. High fan-out is achieved, with moderate power drain, through the use of silicon diodes as a non-linear base resistor. The high storage of these "stabistor" diodes and the polarity of the logic diodes provide compensation for transistor charge storage effects. The gate output is clamped to speed the output signal-level transitions and to provide a uniform signal level throughout the system. The signa} delay through an AND/OR pair of these NOR gates is less than 100 nanoseconds. A typical register stage (see Figure 3) uses only 4 gates: two for the flip-flop, and two for transmitting to, and receiving from, the central bus. The 30-bit parallel adder, which generates both full sum and modulotwo sum in less than 0.4 microsecond, use less than 8 gates per bit. (Detailed discussion of the adder design is beyond the scope of this paper.) Slot 6: If no higher priority flag is set, the next cycle retrieves an instruction from the location specified by the modified program counter. The internal overflow indicator is set to contain the same data as the most significant bit of the R register. If a higher set priority flag is detected in Slots 4 and 5, this cycle is repeated with the following modifications: Slot 1: The memory location addressed is that of the program counter associated with the interrupting program. No branch action is taken. Slot 2: The content of program counter associated with the interrupting program is retrieved from memory. Slot 3: No change. Slot 4: CONCLUSION The equipment required to implement the FC -4100 system has been minimized through , . - - - - - - - - - - - - RECEIVE CONTROL The R register content is not disturbed. Slot 5: , - - - - - REGISTER REST No change. Slot 6: No change. If a higher priority is set, the modified set of actions is repeated as many times as required. Because of the general nature of the control timing grid and the way the various microcontrol Signals are mechanized, significant variations of the normally implemented instructions may be incorporated in the system at negligible cost. Tailoring of the system to a specific need is thus simple and feasible. , - - - - - TRANSMIT CONTROL L-------------~------BUS Figure 3. Typical Register Stage The Logic Design of the FC-4100 Data-Processing System / 165 the use of memory locations for index registers and program counters, time-sharing of registers for several functions, and the use of a common bus to interconnect the registers. A program interrupt system was also provided to minimize the amount of equipment required to implement the input/output function. Program bookkeeping has been minimized through the use of a repeat mode for automatic control of small iterative program loops. The FC -4100, therefore, represents an integrated solution of the system design goals. APPENDIX: INSTRUCTION REPERTOIRE OF THE FC-4100 Operation OP Code Description Execution Time (Microseconds) Indexable PMA PAM PMB* PBM* PMO PIM PSW PZM PZA 61 41 67 47 63 43 57 45 73 Put Memory in Accumulator Put Accumulator in Memory Put Memory in Index Put Index in Memory Put Memory to Output Put Input in Memory Swap Memory and Accumulator Put Zero in Memory Put Zero in Accumulator 19.2 19.2 25.6 25.6 25.2 19.2 21.2 19.2 12.8 Yes Yes No No Yes Yes Yes Yes No LAN LAR LIO LIR LEO LER LIM 34 35 32 33 36 37 53 Logic Logic Logic Logic Logic Logic Logic 19.2 19.2 19.2 19.2 19.2 19.2 19.2 Yes Yes Yes Yes Yes Yes Yes ADD ADR ADM AMR SBT SBR SBM SMR MPY MPH DVD DVH JMP TST SKP LSH LCI SFT FLS DBN HLT 10 11 12 13 14 15 16 17 22 23 24 25 72 77 76 01 03 05 71 65 00 Add Add, Replace Add Magnitude Add Magnitude, Replace Subtract Subtract, Replace Subtract Magnitude Subtract Magnitude, Replace Multiply Half Word Multiply Divide Half Word Divide Jump Test Skip Logic Shift Logic Circulate Shift (Algebraic) Flag Set Decrement Index Halt 19.2 19.2 19.2 19.2 19.2 19.2 19.2 19.2 137.2 77.2 133.2 77.2 12.8 19.2 19.2 ** ** ** 12.8 19.2 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes No No No "And" to Accumulator "And," Replace "Inclusive or" to Accumulator "Inclusive or," Replace "Exclusive or" to Accumulator "Exclusive or," Replace "Inclusive or" to Memory *Tag specifies Index Register affected **Execution time of shift instructions = 14.8 + 2n (n odd) 12.8 + 2n (n even; shift left) 16.8 + 2n (n even; shift right) -- A VERSATILE MAN-MACHINE COMMUNICATION, CONSOLE P. B. Lazovicl?, J. C. Trost, A. W. Reicl?ovd Radio Corporation oj America Astro-Electronics Division Princeton, Neu: Jersey R. S. Green Auerbach Corporatioll Philadelphia, Pa. SUMMARY This paper describes a unique ITlan-coITlputer cOITlITlunication and buffering device which ITleets the need for English-language forITlulations of business, industrial and scientific probleITls. The console allows individuals not trained in ITlachine language to use a cOITlputer directly. Translation and ITlachine-language editing are cOITlpletely controlled by the console. The tiITle differential between a ITlan's actions and a COITlputer's responses are autoITlatically buffered. The console can be used in a wide variety of inforITlation- retrieval and data-proce s sing applications. It was developed by RCA for the Office of As sistant Chief of Staff for Intelligence (OAC SI), headquarte r s, DepartITlent of the ArITlY, under Contract No. DA49-083 OSA-2338. and time buffering. RCA is now in the process of evaluating this prototype for the purpose of making more specialized consoles for the ACSI-MATIC system. In addition, many other programmed applications have been successfully tested on PAC, which demonstrate the generality of the original concept. Figure 1 shows the operating position of PAC, and Figure 2 the overall console. The console proper contains a CRT display circuit, a core memory, the operator panels, various control circuits, and power supplies. The soft-copy (CRT) display uses a 21" tonotron (storage/display) tube. Careful design has provided an extremely legible display although the number and bulk of the circuits is minimized. The actual controls and indicators on PAC are functional devices only in terms of the INTRODUCTION It became obvious during the development of the AC SI - MA TIC system that no adequate communication and buffering console existed which would meet the requirements of untrained, non-computer oriented personnel who would have to deal with a complex dataprocessing system. Accordingly RCA undertook to develop an experimental prototype of such a console for the purpose of testing and evaluating different communication and buffering schemes. The prototype was to have great versatility so that many types of console operation could easily be simulated. The resulting console, called PAC for Prototype Analyst Console, has itself proven to be a powerful and interesting solution to the problem of providing man-machine communication 166 A Versatile Man-Machine Communication Console / 167 DISPLAY Figure 1. Operating Position of Prototype Analyst Console (PAC) operator performance for any particular application. The actual function of each control depends upon the computer programming and the restrictions the user wishes to place on the operator. It therefore involves no change whatever in the PAC circuits to completely change the types of console modes and operator identification requirements. The INTERRoGATE switch, for example, could just as simply be labelled INTEGRATE, or the SECURITY CLASSIFICATION indication could be changed to BUSINESS AFFILIT ATION. The only change required would be in the labelling of the indicators and in the type of program read onto a magnetic tape associated with the console. This tape is called the format tape, and it contains the form of all allowable inputs to the computer. These forms are written on the format tape as soon as computer programs are established to process them. Each format contains both the machine designations required to indicate the program to the computer and a statement, in written English, which indicates the format to the console operator. When the operator selects a particular format, 168 / Computers - Key to Total Systems Control Figure 2. Overall View of Prototype Analyst Console (PAC) the PAC reads the entire format into its internal core memory and then displays the written statement on the CRT. It then indicates the type of parameter which the operator must insert to compose an allowable message. The operator inserts his parameters in the format by operating a standard typewriter keyboard. He types the parameter in English and it is displayed, beside the format statement, on the CRT. Each parameter is also read into a composing core memory, where it is grouped with the appropriate machine language items from the format. When the operator verifies the last required item in the message, the PAC reads the data out of the composing memory and sends it to the paper-tape punch. The punch control then edits the message, removing all data except the header indicating the program, an operator ID, the characters used to separate items, and the operator's parameters. When the message has been punched on tape, the PAC signals the computer that a message is available. The computer may then read the message at its leisure, placing an answer on the magnetic operator tape. The answer may be retrieved by the operator from this operator tape just as simply as he selected the format. Messages on the operator tape are preceded by a three-character header which indicates the operator and the question answered. When the PAC locates the desired item on the tape, it reads it into its core memory and then displays the first page on the CRT, roughly the same as a standard typewritten page. The operator then has his choice of printing that page and displaying the next, erasing that page and displaying the next, or printing the entire message. He has identical options for each page displayed. Security requirements for the PAC are met by providing each operator with an identification card upon which is encoded an ID number. When taking his position at the console the operator must set the control panel ID switches to his number and then insert his card. If the encoded number and the number selected do not agree, a security alarm sounds and the PAC is inoperative until attended by a security officer. The machine inputs to and outputs from the PAC are s tan dar d computer words A Versatile Man-Machine Communication Console / 169 comprising seven digits in parallel. Since the PAC is only a communications device, it may be used for any system uSing similar word construction. The only basic change involved would be toplace the new formats on the format tape. In addition, relatively straightforward circuit changes can be made in PAC to enable operation with any number of digit computer words. ..oIL 10 DISPLAY OPERATOR I SPECIAL ID DECODING I 9 r-----..! I I MANUAL CONTROLS ~ I I I I I SWITCH CONTRO~ STEP SWITCH 9 MASTER ......----+----~!SEQUENCING CONTROL ~ ~~ (SEE TEXT) 2 ~ ~ I INFORMATION REGISTER 2 ~~ I MEMORY STATION ADDRESSING ~ TAPE ... AND ~H---+-1CONTROL T CON T RO L 2 8 . COMPARATOR AND COMPARISON REGISTER 2 ~ ~ 8 PAPE RTAPE PUNCH a CONTROL I 8 I PAPERTAPE READER AND I I DISPLAY ... OPERATOR TAPE STATION ,- ---4- I ~ 3B4 PAN FL t L - -_ _ PRINT CONTROL CONTRO~ I I I 1 I CORE MEMORY ~ FORMAT TAPE r------~I .., I I 7 + . FIXED DATA READOUT VISUALL CRT DISPLAY 1~----'---------1 DISPLAY I NINE OPERATING ROUTI NES 7 I I Figure 3 shows a simplified block diagram . of the circuits and components of PAC. The Master Sequencing Control and Nine Operating Routines blocks contain the most important functions from the standpoint of understanding PAC's theory of operation. A brief description is given here of the remainder of ~ TYPEWRITER KEYBOARD KEYBOARD REGISTER ~~ ~_ _ _ _ _ 2+-_ _ _ _ _2...j I I THEORY OF OPERATION I I I I I 14-------~ I I I r COMPUTER ICo~:,~:E~~ LIGHT SIGNAL I-~-REGISTER DECODING LIGHT ~ SIGNAL REGISTER 8 9 L - -_ _ _ _........_ _ _ _ _ _--+-~.~ PAC FRO N T PA N ELI PAC INTERNAL BAYS (AS NUMBERED) Figure 3. Simplified Block Diagram of Prototype Analyst Console (PAC) P R IN T E R EXTERNAL 170 / Computers - Key to Total Systems Control the blocks shown in Figure 3, and the next section describes PAC's operating controls through the Master Sequencing Control block. The Operator Manual Controls, located on the front of PAC (Figure 1), include the card reader, seven ten-digit switches, and a series of indicator switches. The card reader provides an introduction between the operator and the computer, including an identification (ID) number, the operator's security clearance, his particular area of interest or specialization, etc. The seven ten-digit switches indicate the MONTH , DAY and YEAR, the operator ID, and any other routine information desired. The indicator switches are both indicators and switches which determine the various modes of operation of the console. A typewriter keyboard is provided on the console similar to a conventional typewriter, including a space bar and a carriage return. A verify character is added to this keyboard. When the operator is required to supply information, the indicator lamp above the keyboard is lighted; after typing the requested information which is displayed on the visual CRT display character by character, the operator verifies that he has not made a mistake in typing in his information by pressing the verify character. The numbers in the lower right hand corners of the remainder of the blocks in Figure 3 indicate the physical bay in which they are located within PAC. BAY 1 The Core Memory is used to facilitate message composition and enable printing one page of data while displaying another. It is therefore divided into two separate storage units, a composing and a format section each with 2,048 characters, the maximum number of characters per page. The Computer Drive accepts the data output of the Paper-Tape Reader and Control, and ensures that the data is exactly matched to the requirements of the particular computer with which PAC is being used. BAY 2 The Keyboard Register translates the Typewriter Keyboard data into digital character codes required for the Information Register and the Comparator and Comparator Register. The In for mat ion Register accepts and routes all data. A combination of gates at the input of the Information Register reads the incoming 7 -bit codes into a storage register of 7 flip-flops, which control gates that apply datapulses to the Core Memory, the Comparator and Comparator Register, the Paper-Tape Punch and Control, the CRT Display, the Print Control, or combinations of these circuits, depending upon the operation required. An arrangement of gates also checks for odd parity, which, if not present, stop operation and light the RESTART indicator. The Comparator and Com par i son Register stores the threecharacter codes used by PAC to search for parameters on the format, prior to comparison with the characters read from tape. If they do not compare, a signal is sent to the Memory Addressing and Control to clear the memory and prevent further read-in. The Memory Addressing and Control controls the read-in and read-out of Core Memory data, adding or extracting the data from the required positions in the core matrix. Fixed Data Readout upon command pulses the Stepping Switch to read the operator identification data through the Information Register. BAYS 3 AND 4 The CRT Display circuits, which consists of the CRT and the circuits which actually write the data on the screen, accepts the 7-bit character codes from the Information Register. The inner face of the CRT is divided into independent areas by a fine mesh, and PAC divides the usable portion of the mesh into 4000 separate scanning areas, each a 5 by 7 matrix of 35 "dots." The 7 -bit characters applied to the CRT Display circuits are decoded by an array of AND gates, each causing a specific series of OR gates to be activated, with each OR gate corresponding to a dot on the matrix, according to the particular character being written. As the CRT beam scans a particular area, the activated OR gates cause their associated portion of the screen to brighten, which allow a variety of characters to be presented on the face of the screen. The number of characters written per line is counted, and when the number reaches 80, the trace automatically moves back to the beginning of the next line. After an individual matrix has been scanned, the trace moves to the next matrix position. When the space signal is received, no gates A Versatile Man-Machine Communication Console / 171 are activated and nothing is written. When a carriage return is decoded, the appropriate gate drives the trace to begin the next line. BAY 7 Bay 7 contains the Master Sequencing Control which is the control logic for the overall operation of PAC, described below. The logic for the Nine Operating Routines is also contained in this bay. BAY 8 The Tape Control located in Bay 8 is the interface between the computer and the Format and Operator Tape Stations. Both of these tape stations can be located with the computer system. The Tape Control upon command switches the output of the appropriate tape to the Information Register, driving the tape forward in search of the information or of the end-tape symbol or until a stop command is given. At end-tape symbol the Tape Control automatically rewinds the tape and searches again. If the end -tape symbol is read a second time, the Tape Control stops the tape and lights the REQUEST NOT ON TAPE indicator. Status signals are provided to indicate whether or not the computer is using the tape. The Print Control controls the hard-copyprinting device used_ with PAC. Upon command from the Master Sequencing Control (when one of the print switches is operated), the Print Control activates the printer and provides the pulses which operate the keys. Upon command from the Master Sequencing Control, the Paper-Tape Punch and Control edits and translates the output of the Information Register into voltage levels capable of driving the Paper-Tape Punch. The Paper-Tape Reader contains the circuits which read the punched-paper tape to develop data signals for transmission to the computer. A counter associated with this reader counts the number of messages punched. When the computer senses a signal indicating that there is a message on the p~per tape, it applies an enabling signal to the Paper-Tape Reader which starts the transport mechanism and reads the entire message from the tape into the Computer Drive circuit. As each message is read, a count is subtracted from the message counter. The Light Signal Register accepts the status and alarm indications from the computer and translates them into signals for lighting the appropriate indicators. BAY 9 The Special ID Decoding circuit is a set of relays which are operated or released in accordance with the settings of the control panel digital switches and the information read by the card reader. This provides the fixed data through the Stepping Switch for transmission with the input messages. This circuit also checks the operator identification number against the number set on the ID switch, and if it agrees, it closes a path which enables the power to be applied to the control panel. The Stepping Switch is a rotary switch which samples the output of the relay circuits in the Special ID Decoding circuit. It is dri ven by the Fixed Data Readout through a series of 11 positions for the purpose of reading out the information. The Switch Control translates the operation of switches into electronic signals for dri ving the Master Sequencing Control. The Light Signal Register Decoding controls the lighting of the indicators on the Panel Display. OPERATING CONTROL When the operator depresses any of the input mode switches (in the case of PAC utilized with the ACSI-MATIC system these modes are INTerrogation, ORDER to change files, HYPothesis, and NEW MESSAGE input, marked with the capital letters on switches on the front of PAC), it closes a relay in the Switch Control which pulses the Master Sequencing Control. This places the machine in the particular mode deSignated. It should be understood that the modes are arbitrarily defined by the programming of the computer for any particular application of PAC. The different formats available for any particular mode are given 3-character ITEM Codes, and if the analyst knows the format he is going to use, he depresses the ITEM switch on the front panel and types in the ITEM code on the keyboard. This immediately displays the format on the CRT for his use. If he does not know the ITEM code, the operator presses the INDEX switch, and a list of all of the formats available to him for any particular mode of operation is displayed on the CRT for his reference. He can note the ITEM code of the desired format and then proceed to press the ITEM switch as before for selection of any particular format. 172 / Computers - Key to Total Systems Control Figure 4 indicates a typical format for an INTerrogation mode with the parameters which might be typed in by an operator for a personnel information retrieval application of PAC. The < symbol is the start message symbol, and the > symbol is the end message symbol. The symbol is the item separator. The first line indicates interrogation item number (A06) , and the identification of the operator (2386100635). Next is the actual format for the operator to use, with the unknown parameters in parentheses. The first parameter which the operator must insert is displayed on the next line, and he types and verifies the word MANAGERS, which represents that he desires information about MANAGERS. After he has typed in his first parameter and verified it, the secondparameter appears on the CRT, namely PLANT DESIGNATION. He then types and verifies WEST COAST CENTRAL. The final line provides him with a means of identifying his interrogation, requesting an INDEX after he has typed and verified the PLANT DESIGNATION. The operator enters 15 as his index for the particular interrogation. The index will be used as a search parameter when the operator wishes to inspect the computer response. This allows batching of inputs at his discretion. After the operator has composed his message(s), PAC forwards the data to the papertape station for punching and storage on tape until the computer can read the information. After the computer has read the information and processed it, it writes its responses onto the Operator Tape and lights the Operator Indicator on the display panel indicating that it has some information for the operator. The operator can select the INSPECTOUTPUT mode to observe the computer response. This gives the operator an option of viewing the information on the CRT, or of + < A06 printing the first page and viewing the rest, or of printing the entire response from the computer. The storage persistence of the CRT is such that each page will remain legible for a maximum of about 10 minutes. The actual logic of PAC which performs the above operations through the Master Sequencing Control is by means of the following nine operating routines: 1) Set-Up, 2) Tape Search,3) Load Memory From Tape, 4) Display Memory, 5) Read Fixed Control, 6) Ro-' tate Format Memory, 7) Load From Keyboard, 8) Correct Mistake, and 9) Print or Punch. The block diagram Figure 3 indicates where these routines are applied throughout the circuits of PAC by broad arrowheads. Generally, each of these operating routines can be briefly characterized as follows: 1) The Set-Up routine is the sequence by which the operator informs PAC of the item requested, loading the Comparator with the search parameters, either automatically when the INDEX is requested, or manually when the operator types the ITEM. 2) The Tape Search routine controls the comparator and tape circuits to find the message identified by the 3 -character header which is loaded in the Comparator. 3) The Load Memory From Tape routine controls the insertion of data into PAC Core Memory from either the format or Operator Tape. 4) The Display Memory routine enables displaying the computer responses or redisplaying the input information after a character or parameter has been erased if it is desired. This allows the operator to make a mistake in composition and to correct it. 5) The Read Fixed Control routine controls the reading of the operator identification and other fixed data from the Stepping Switch into the C ore Memory. +2386100635 + HOW MANY (PERSONNEL CATEGORY) AT (PLANT DESIGNATION) (PERSONNEL CATEGORY) MANAGERS + (PLANT DESIGNATION) WEST COAST CENTRAL (INDEX) 15 + +> Figure 4. Typical Format for Personnel Information Retrieval Application of PAC A Versatile Man-Machine ComlTIunication Console / 173 6) The Rotate Format Memory (Into Assembly Memory) routine controls the reading of the format message into the composing half of the Core Memory from the format half. 7) The Load From Keyboard routine controIs the operation of the key board and the storage and display of information inserted via the keyboard. 8) The Correct Mistake routine reads zeros into Core Memory to replace either the last character typed, or all characters following the last parameter category. It is controlled by the ERASE CHAR or ERASE PAR switches. 9) The Print or Punch routine controls the reading of information out of Core Memory for duplication on a hard -copy printer or on the paper-tape punch. being entered into the computer and taking important time from processing. It presents a calm atmosphere for operation remote from the actual computer installation if desired, and it can operate simultaneous with other similar devices at the same or other locations. PAC is an invaluable tool both from the standpoint of developing the final operational console to be used in the ACSI-MATIC system, and of demonstrating the potentialities of a computer to specialists whose interest is not in computer problems and jargon, but in realistic results. Acknowledgement is given here to Joseph E. Karroll for considerable technical contributions to PAC, and to Robert E. Mueller and Leon Rosenberg for their assistance in the preparation of this paper. REFERENCES CONCLUSIONS The console described in this paper has been in operation with an RCA 501 computing system and has proven to be a successful man-computer communication device which could readily be understood and used by individuals with no computer experience, in a very short time. PAC has sufficient check schemes built in to prevent mistakes from 1. Miller, L., Minker, J., Reed, W. G., and Shindle, W. E., "A Multi-Level File Structure for Information Processing," Proceedings of the Western Joint Computer Conference, May 1960. 2. Gurk, H. M. and Minker, J., "The Design and Simulation of and Information Processing System," Journal of the Association for Computing Machinery, April, 1961. DATAVIEW, A GENERAL PURPOSE DATA DISPLAY SYSTEM R. L. Kuehn Ford Motor Company Aeronutronic Division Newport Beach, California During the past decade significant progress has been made with automatic, high-volume processing of data. Management and command systems have undertaken to exploit this ability of machine computation, correlation, storage, and retrieval; as a result, the number of computer-centered complexes is increasing daily. Where it is feasible to design or program into the equipment all the decisions which attend a process, as for an onstream oil refinery, only the simplest form of status indicators need be provided. In contrast, the evaluation of a missile development program or the determination of the order of battle, which produce complex patterns of alternatives, must ultimately depend upon human decisions. The computer excels in the province of deductive logic, but man is still clearly the master in the province of inductive reasoning. Man, however, must understand before he reasons. A data processing system may ingest and digest information at inconceivably high rates, but when the machine delivers the results of its omnivorous appetite to man, a communications problem immediately develops. The solution of the problem lies in the field of data displays. Even the earliest and simplest of computing machines were required to generate an output suitable for human assimilation. Printing devices are common to nearly every system; thus, alphanumeric or syntactical outputs may be obtained. These, however, are not adequate for many conditions today. We are encountering more and more requirements for automatic processing and display of situation analogs. A typical information system is the military map. Positions, distances, and directions are closely analogous to their actual counterparts. Understandable symbolic and color coding methods further enhance the presentation. In a military as well as in many other environments, the situation may be time variant; it may be most satisfactorily perceived in analog form. The characteristics of a display configuration are often restrictive to accommodate a specific set of requirements. In general, however, a useful display system must: 1. operate with any data processor. 2. provide both large and individual sized viewing screens. 3. maintain its own storage off-line to the computer. 4. respond with reasonable rapidity. 5. provide color and symbolic coded outputs as well as alphanumeric characters. 6. possess a high order of visual resolution and g e 0 met ric (p 0 sit ion a I ) accuracy. 7. be of adequate brightness for comfortable viewing under ambient, light condjtions. 8. be ableto produce any symbol designation without redesign or rewiring of equipment. 9. be of reasonable physical size. 10. be independently operable in the event of breakdown of electronic elements. The DATA VIEW system arose from the specific, yet broad demands of a concept for electronic processing and display of tactical information. All but the first of the characteristics listed above are prominent in the Army Tactical Operations Central (ARTOC) displays. This s y s t e m, be a r in g the 174 Dataview, A General Purpose Data Display System / 175 nomenclature AN/MSQ-19, has been developed under the cognizance of the U. S. Army Signal Research and Development Laboratory in Fort Monmouth, New Jersey. The complete system consists of data processing, display, and communications equipment and procedures. Inputs to the system are messages pertaining to tactical friendly and enemy situations. Operationally, the system evaluates, analyzes, correlates, and displays information for the commander, assisting him toward the rapid, accurate formulation of plans and decisions. The basic concept is diagrammed in Figure 1. A symbol generator may be a part of the configuration, or the central processor could be programmed to perform symbolic construction. Graphical or syntactical information is received by the display generator which produces, off-line, one or more photographic slides. The latter are delivered pneumatically to the console and large screen displays within which the slides are stored for local retrieval and veiwing. < SIMPLIFIED DIAGRAM DATAVIEW DISPLAY SYSTEM Figure 1. Diagram, Dataview Display Syste:m BASIC CONCEPTS Before examining the individual equipment elements, it may be of value to describe some of the basic concepts of DATAVIEW. The system is based, first, upon the philosophy of photo-optical quality and permanence, and, second, upon the doctrine of central image generation with localized random access storage. A number of distinct advantages accrue from the concepts. Since an individual display device contains a complete record in graphical format of the most current information, as well as any special or historic data which may be of interest, loss of important electronic elements does not seriously disable the operator. Photo-optical techniques are superior in the realm of additive super-position, color rendition, brightness, resolution, geometric precision and largescreen capability. Furthermore, there is no requirement for electronic storage and high speed iteration in order to provide refreshed displays or to avoid flicker. To implement the preceding rationale, a slide of the type illustrated in Figure 2 is utilized. There are two parts in the assembly: the image-bearing film material and the steel blade to which the film is bonded. On one edge of the blade are 30 teeth which are selectively removed for coding ... Clearance holes are provided in the steel so that registration may be accomplished by means of a pair of film sprocket holes. The film used is Kalfax, a photolytic, daylight-handling emulsion manufactured by the Kal var Corporation. Kalfax positives, or bright-line images, are obtained by contact printing with a silver halide negative which produces any number of prints from a single data message. A few words are in order with regard to the silver halide-Kalfax relationship in the system. Conventional photographic emulsions are highly sensitive since, at the time of exposure, the large silver halide granules present substantial capture cross-sectional areas to the incident photons. A high probability exists, therefore, of capturing the one or few photons that may be required, even though not many are present. This condition implies low light levels, and hence high sensiti vity. Each developed silver granule now absorbs a large amount of light to produce a dense optical image. The Kalfax emulsion, on the other hand, consists of a photolytic compound which yields volatile products, and which is dispersed in a polymeric vehicle. Two photons, at least, are required for each photosensitive molecule which is considerably smaller than the corresponding silver granules. The latent image results from internal stresses caused by partial volatilization of the compound. Upon subsequent exposure to 176 / Computers - Key to Total Systems Control Figure 2. Dataview Slide Showing Teeth and Mounted Film elevated temperatures, the polymer relaxes and an ordered reorientation and recrystallization occurs corresponding to the pattern of the original stresses. These latter portions of the polymer scatter light to produce the desired visual image. Kalfax emulsions have a spectral sensitivity curve lying in the range of 350 to 440 millimicrons with a peak at 380 millimicrons. Minimum exposure of 1.6 watt sec/cm 2 followed by thermal development of 0.5 cal/cm 2 results in a density of 0.5 above background. Conventional, or silver halide, film emulsions possess the requisite orders of sensitivities and spectral range as well as high resolution, which allows a high quality record to be made from CRT screens. Since more than one copy of a given message may be desired for several display devices, it is convenient to produce prints from the initial negative. Kalfax may be rapidly exposed and developed without the use of chemicals. Thus, it ~erves as an ideal copy medium. The local slide storage inherent in the DATA VIEW system must provide a means to obtain information which is current and which may not be found in any given display device. Currency may be maintained by immediate or routine updating of those slide files affected. A number of input equipments (which are beyond the scope of this paper) can be used to direct any available data to a requesting console or large screen display. The description of the primary elements in the system will serve to illustrate further how the basic concepts have been implemented. DISPLAY GENERATOR The Display Generator produces and distributes finished slides. A block diagram of Dataview, A General Purpose Data Display System / 177 the essential functions is shown in Figure 3. Signal input is serial binary, with 8 bits per word to conform with Army FIELDAT A format. Four words define completely anyone unique deflection position of the cathode ray tube spot, its luminance level, size, and other requisite data. Since the electron beam in the CRT is positioned by quadrature fields, eleven bits locate a desired point in X and eleven bits in Y. A set of shift registers accumulate positional information to be converted to analog deflection currents. An absolute accuracy and stability of one half of one location coordinate is achieved by eliminating driving amplifiers for the CRT deflection coils. Digital to analog conversion is accomplished at power levels commensurate with deflection requirements. A minimum redundancy form of scanning is utilized. Location coo r din ate s are specified at intervals which vary in accordance with the number of points necessary to adequately define a given line or curve. These points are integrated in the deflection circuits to produce smooth, continuous lines. Every data point is traversed only once in any given message, being immediately recorded by the camera assembly as it occurs. Where discontinuities necessarily exist in the image lines, the electron beam is held cut-off, or blanked. The latter is the normal condition of the CRT; unblanking instructions serving to illuminate the screen when required. Since the data rate is constant and the inter-coordinate distances differ to suit the fine line structure, a varying spot velocity results. Super-imposed on the latter is the non-linear velocity attributable to the integration circuits which must achieve better than 99.9% of final value during the intercoordinate interval. Compensatory intensity ,Figure 3. Diagram, Display Generator 178 / Computers - Key to Total Systems Control modulation is provided to offset both of the latter effects. A focused spot, in the center of the CRT screen employed, measures approximately 0.001 inch. For this dimension, it does not seem advisable to obtain measurements by the shrinking raster method. As a first estimate, direct microscopic examination with a calibrated reticle has been very successful and correlates well with more refined techniques. By recording a number of line segments on film, it is possible to obtain microdensitometric curves rep res e n tin g the cross-sectional energy distribution in the excited phosphor. Line width is then defined by the half amplitude pOints. Critical focus is a non-linear function of deflection angle. In order to preserve optimum definition, therefore, dynamiC focus is provided. Variable line widths may be generated as required by the data formats for emphasis or other reasons. Ideally, the energy in the electron beam cross-section would be rectangularly distributed. The actual distribution is approximately Gaussion. Defocusing to achieve wider lines would result in a loss of edge definition due to more gradual sloping of the distribution skirts. Instead, a high frequency circular motion is superimposed on the electron beam to effect a Lissajous pattern of predetermined amplitude. The resultant helical structure is so fine that it is not resolvable. When all the ihformation intended for one slide has been t ran s mit ted, an end-ofmessage character actuates the slide process controls. The exposed negative film frame is advanced to a two-frame buffer loop, and a ready-to-receive signal is returned to the computer. Film is advanced through the developing chamber as long as exposed frames remain in the loop. Upon entering the chamber the exposed frame is cut away from the loop. Negative processing takes place by injecting, sequentially, relatively small amounts of developer, fixer, and wash. One fluid displaces another by capillary action. A total fluid volume of approximately 11 cc is required to achieve optimum image quality. The chemicals used for each frame are completely exhausted, and are drained off as waste. A jet of hot air removes the wash solution and dries the negative. The entire cycle requires between six and eight seconds, depending on the desired results. Full development and fixing is obtained in approximately two seconds. The developed negative consists of three major dark line image areas. First is the data which will appear on the display screens. Lying just below this (and parallel to the long, or horizontal, axis) is an alphanumeric code for visual identification which has been also written by the cathode ray tube. Below the visual code is a series of 40 identifying light and dark areas used for machine reading. The latter are sensed photoelectrically in the final negative station which immediately follows the capillary developing chamber. Two conditions are established in accordance with the dot code: first is the number of positi ve slides to be made and their destination; and second is the setting of a notching mechanism. A pre - mounted unexposed Kalfax slide is fed from a magazine into contact, with the negative, emulsion to emulsion. Exposure is accomplished by a pulsed xenon arc; then a heated platen is brought into contact with the Kalfax film base to develop the latent image. Two slides per second are thus produced until the programmed quantity is reached. As the positives are made, teeth are notched or removed from the metal carrier to conform with the information contained in the photoelectric reader dots. Thus, each slide also carries a mechanical code denoting its identity. Finally, the negative is purged and the entire process is repeated for subsequent messages. SLIDE DISTRIBUTION Housed within the display generator is a slide distribution module shown in Figure 4. In reality, it serves two generators which occupy a single cabinet, and up to twelvedisplay devices may be served by a pair of generators. One generator may be onor off-line as required. When a slide has been made, it is delivered to the distribution module and falls past a series of twelve deflecting gates. The latter are pre-set at the time the negative is examined photoelectrically. Each of the twelve gates is served by a pneumatic tube leading to an indi vidual console or large screen display. Each gate also has a local storage bin. A given slide is deflected into a tube or a bin depending on the preprogrammed condition of that channel. Upon being deflected, the slide is sensed and the gate is re- set so that the next slide may Dataview, A General Purpose Data Display System / 179 feasible. The pneumatic tubing is a plastic extrusion which may be formed into tWists, bends, and compound shapes, to accommodate every conceivable installation requirement. Convenient lengths of tubing are held together by clamps which serve both for mechanical support and for air seal. DISPLAY UNITS Figure 4. Slide Distribution Module With Dataview Slide in Chute proceed to the next intended channel. After the last scheduled slide is in place, air pressure is applied to the pneumatic tubes by means of a manifold. Delivery may also be scheduled for one specific channel or for any specific group of channels. When the Kalfax is bonded to the steel carrier blade, a "propelling" flap is allowed to extend beyond the image area. Air pressure lifts the flap, partially sealing the tube as shown in Figure 5. Thus, an effective piston is created which causes the slide to move with the air stream. Velocities of 50 feet per second have been achieved, and velocities of 100 feet per second are clearly Functionally, the console display and the large screen display are identical; both devices can therefore be described simultaneously except for certain obvious differences in implementation. A ,block diagram of the display units appears as Figure 6. A slide delivered to a console or a large screen display may contain tabulated information, syntactical information, or data referenced geographically to a map or other appropriate background. In any case, the recorded image consists of bright lines with a substantially black surround. Additive superposition of several overlays is thus feasible. Five optical apertures are provided. One of these projects the map or other background which may be in full color. A single source of illumination is intercepted along two mutually perpendicular axes. The console lamp is a 450 watt xenon arc. The illuminant possesses a number of distinct advantages over incandescent sources. These are listed below. 1. Spectral energy dis t r i bu t ion very closely approaches that of the sun, thus improving color rendition. 2. Lamp life is over 1000 hours compared to perhaps 25 to 50 hours. 3. Lamp failure appears as a gradual reduction in luminous output rather than an abrupt blackout. 4. Luminous efficiency is considerably higher. 5. Optical efficiency, due to the small arc Size, is substantially greater. Color. separation for additive superposition is obtained by dichroic mirrors rather than by absorption filters. Losses are thereby minimized. Four mirrors are arranged so that white a.l!~ nominal red, yellow, and blue light beams are--obtalned~- The band~passcharac teristics of the mirrors are selected so that the xenon arc spectral distribution is divided into segments of equal photopic brightness. Each projected light beam may be changed in intensity at the control panel to suit individual 180 / Computers - Key to Total Systems Control Figure 5. Slide in Pneumatic Tube Showing Erected Propelling Flap BL.OCK DIAGRAM DATAVI&W DISPLAY UNITS Figure 6. Diagram, Display Units preference or the nature of the data. It is interesting to note that choice of color for any given format may be forced by the slide code,or may be determinedby the operator's preference. Those channels not in use may be dimmed to black. Three discrete colors, plus white, are directly available. However, by proper programming of the data messages, seven colors may be obtained through add it i v e superposition. The slides, which are deliveredpneumatically tothe display unit, enter a magnetic receiver. A manual insertion device is also a part of the receiver. Prior to being loaded into the main magazine or stack, the slide is interrogated by mechanical reading of the notched tooth code. One of several actions ensues: 1. If the arriving slide is a first issue of a given category, it is entered into the main stack. 2. If the slide is an updated version of a slide already in storage, the latter is purged and the new version is loaded into the main stack. 3. If the slide is a "special request" or is a type not normally stored by a given display unit, it is loaded into a small special storage bin; its presence is indicated on the control panel. The slides are stacked between permanent magnets as shown in Figure 7. Self-alignment takes place in the magnetic field regardless of the number of slides present, up to the maximum capacity. No basic limitation in size exists, but to stay within over-all equipment limitations, the console display has been designed for approximately 1000 DATA VIEW slides and the large screen display for 2000 slides. Dataview, A General Purpose Data Display System / 181 To achieve the high orders of total resolution encountered in many maps and aerial photographs, 70 mm film is used instead of the DATAVIEW 35 mm size. Overlays andassociated maps are coded to prevent improper pairing. System distortions and _indJ~idual registration errors may contribute to an incorrect position being displayed in an overlay situation analog. The percent error may be defined as: E = 100 ad w a Figure 7. Partial View, Console Slide Storage and Transfer Mechanisms Access for retrieval is essentially a random process, and is based on the keysort principle. Activating the desired decimal code at the control panel causes a series of corresponding keybars to be extended along the entire stack length. That slide which has been appropriately notched is free to move by one tooth pitch; all others are locked in place. The requested slide can then be withdrawn from the stack regardless of its position and without searching. Once extracted, the slide is picked up by a transfer mechanism which carries it to the intended projector aperture. The entire retrieval action takes less than three seconds. When it is necessary to remove a slide from the files, either automatically or on manual command, it is transferred by the same action into the purge bin. The bin is emptied periodically, and its contents disposed of as required. A complete class of slides may be purged simultaneously if necessary. Maps or other reference backgrounds are stored and handled in a similar manner, but in separate stacks. The capacity of background slide stacks is approximately 100 slides in the case of the console, and 750 slides in the case of the large screen display. d is the straight line distance between any image point, as displayed, and the theoretical, reference, or intended pOSition for the point; W is the display width. There are a number of individual sources which contribute to the error E. These may be assumed to be random, independent, and normally distributed. Under these conditions, an over-all three sigma value for E is 0.6% applied to a large number of DATA VIEW systems. Due to the nature of the system, related adjacent image pOints which lie within a given character or symbol are mutually registered within 0.05% of the maximum symbol dimension. Figure 8 illustrates a typical map and multiple overlay situation displayed on a console screen. SERVO-CONTROLLED POINTER Provision has been made for a dial telephone module on all display units. When communicating with one another, operators of display devices may have occasion to discuss a situation analog of mutual lnt'erest. They will often find it necessa~y ~t.o point out the specific area in question ~on one or more remote displays. To accomplish this a servocontrolled reticle may be positioned anywhere on those display screens which are in telephonic contact. Two frequency modulated carriers in the 300 to 400 cycle region convey a joystick position signal over existing telephone lines. The carriers-are purposely made audible, but kept at levels which will not impair intelligibility of the telephone conversation. Raising the joystick from the retracted pOSition actuates the reticle movement. A lockout feature prevents any other joystick from enabling the deflection servos. Rate of response is high; there is no lag associated with reasonable human manipulation of the joystick. 182 / Computers - Key to Total Systems Control Figure S. Full Situation Analog Display on Console Screen The pointer system on a display device may also be used for local briefings when a connection with remote units is not required. This is particular ly valuable when a group of people in a single location are examining a complex presentation on a large screen, display. LARGE SCREEN DISPLAY In terms of the proj ection angle and design of the viewing screen, the large display is unique. Due to severe limitations imposed by the ARTOC environment, the proj ector must be very close to the screen, and the screen must be very large. The screen measures 7 x 9.3 feet. In addition, the physical conditions indicate the desirability of rear projection. Even a cursory inspection of the applicable laws of optics reveals that the screen illuminance is seriously reduced for offnormal rays. Ordinarily, non-uniform brightness in a projected image is caused by the directive properties of the screen. In the case of wide angle projection, the non-uniformity problem is compounded by the so-called "cos 4 -law" having greater effect on the incident illumination. The screen illuminance at a given angle from the proj ection axis is proportional to the fourth power of the cosine of that angle. Since the projection angle on the diagonal is 90 0 , it would appear that the corner illuminance would be 25% of that in the center of the screen. The cos4 -law applies, however, to an extended light source possessing a Lambert radiation characteristic, and imaged by an Abbe Sine Condition condenser. An isotropic Dataview, A General Purpose Data Display System / 183 point source, to which the xenon arc is closely equivalent can be imaged by a specially designed condenser in such a way that the light distribution in the slide aperture compensates forthe cos 4 -law. Thus, the projector-screen design has been integrated to achieve a high degree of uniformity in over-all brightness. Despite the 90° diagonal projection angle, focus and distortion are immeasurably different from the center to the corners of the screen. Of the available luminous flux emitted by the lamp, better than 30% reaches the screen compared to 5 or 6% ordinarilyexpected. CONCLUSION The DATAVIEW display system has been described in terms of generalized basic concepts and selected technological details. It has not been possible to explore methods of application to any extent; these methods are best revealed by a closer examination of the equipment itself. Nor has any mention been made of the computer programming which has been developed and implemented to take advantage of the system flexibilities. The necessarily brief overview presented here may, however, serve to acquaint those interested with the elements of at least one display solution to command and control problems. ACKNOWLEDGEMENT The significant contributions of many engineers, scientists, mathematicians, technicians' and supporting personnel to the development of DATA VIEW should be acknowledged here although their names cannot be listed. Also, the support and understanding of the U. S. Army Signal Research and Development Laboratory has played a large role in advancing progress of the entire ARTOC project of which the display system is a part. A COMPUTER FOR DIRECT EXECUTION OF ALGORITHMIC LANGUAGES James P. Anderson Burroughs .Corporation Paoli, Pennsylvania The machine outlined in this paper represents another of a recent series of efforts to make computers more easy to use [3]. The major problem which has been addressed is that of programming. It is hoped that the machine described will become a forerunner of a class of computers for which problems are so readily programmed, that programmers can begin to view problems again, rather than details of machine organization and operation. Although this paper stems from work in the general area indicated in the title, ALGOL '60 was chosen as the basis for the machine because of the well-defined syntax it offers as a guide in structuring similar machines for other algorithmic languages[ 4]. INTRODUCTION The so-called general-purpose computer is, in a sense, an incomplete design for any given problem. The program is the device which renders the hardware of such a machine a special-purpose computer for a particular problem. In a loose sense, then, programming can be considered a form of machine logical design for specific problems, but at a higher level of abstraction than that generally considered in logical design. This loose equivalence between program and computer has long been recognized by some [1] but exploitation of the relationship has apparently received little impetus, except in a trivial way. Practical benefits of this equivalence have, thus far, been limited to such things as index registers for automatic order modification, built-in floating-point operations, and the like. The justification for implementing such features as additional hardware usually stems, at present, from an inordinately long run time for a particular function, or from excessive difficulty in performing the operations programmatically. OUTLINE OF ALGOL '60 FEATURES ALGOL '60 contains, as separate entities, statements of several forms, each statement representing an abstraction of a computational form. These statements include declarations usually associated with the definition of data in a program, as well as those associated with the definition of subroutines (procedures). The imperative statements of the language can be considered to be of two classes. One class includes the assignment statements and procedure calls which are the computational instructions of ALGOL. All other imperative statements constitute a second class which can be characterized as One area yet to be exploited by machine designers is, in fact, that of programming itself. Justification for doing so abounds, with high-priced, high-speed machines frequently employed up to two-thirds of total operating time in the nonproductlv-e- tasks of compilation and debugging [2]. 184 A Computer for Direct Execution of Algorithmic Languages / 185 control statements (conditional statements, go-to statements, for: statements, compound statements, dummy statements) used to direct or mark the path of computation, to define loops, and to determine the scope of other control statements. ALGOL, like many other algorithmic languages, is based upon the sequential execution of a series of statements or statement groups. The flow of control is normally from one statement to another. This sequencing through the statements of an ALGOL program is interrupted when encountering: a) a conditional statement, where the evaluation of a Boolean expression causes a new sequence to be initiated, b) an unconditional transfer of control (go-to statement), and c) iterated statements, where the range of the iterated variable is defined in the structure of the program statements that follow. It is evident, then, that the ALGOL structure abstracts the control form of "general-purpose" computers. It differs in that the "instructions" of ALGOL (assignment statements) may be arbitrarily complex to the extent of being entire programs (procedures), and the name of a procedure or function for obtaining a data value may be used in any expression where that data is required. CONTROL STRUCTURE The reference language provides syntactic rules for joining different elements of the language to make meaningful statements. These same rules permit the recognition of syntactic elements of statements and the assignment of meaning (through execution of the appropriate operations) to the syntactic elements. In addition to abstracting more conventional coding structures, ALGOL '60 is recursive. That is, any of the control statements may appear nested within others or themselves to an arbitrary depth. As an example, If if (Boolean expression) then r else s then begin for i: = 1 step 1 until n do begin (assignment or procedure statement) end (assignment or procedure statement); end else (statement); illustrates the recursive use of a conditional statement and a compound statement. The control for sequencing ALGOL statements must reflect the recursive structure of the language. A pushdown list, or current control-state stack, can be used to keep track of the current control state, or statement type, effectively recording the structure of a program. A stack is a first-in, last-out device. When data is to be placed in a stack, all previous data is pushed down one position, and the new data entered into the top of the stack. Data is obtained destructively from a stack; data removed is erased, and all previous data is pushed up one position. The entries into this stack, which can be considered "states" of the program, determine the interpretatiol). (in terms of control) of subsequent program symbols. The sequence of delimiters in an ALGOL program establishes control states corresponding to the type of control or computational statement involved. In some cases (for example, for statements) subcontrol states are established. The handling of iteration and conditional statements can be accomplished by manipulating only the top of the current control-state stack and the next sequential control operator or separator from the program. In a similar manner, the control 186 / Computers - Key to Total Systems Control necessary for assignment and procedural statements can also be obtained. Syntactic recognition of elements can be illustrated in matrix form, indicating, for a given current control state, the action to be taken by the machine upon encountering each of the symbols of the program. Figures 1 through 4 are matrices indicating the control states in the machine. The rows of the matrices correspond to the current control state, while the columns correspond to the various delimiters and identifiers that can occur in a program. In each of the figures, only those delimiters that are important to the states in question are shown. The occur:rence of delimiters other than those shown in either undefined or an error condition. The control state names are roughly suggestive of their corresponding control functions. The following notation is used for the control sequences in the recognition and control matrix and subsequent sections: Enter (control state name) Push down the control-state stack, and record the control state named in the top of the stack; establish the control state named upon completion of the sequence. Replace with (control state name) Record the control state named in the top of the stack; establish the control state named. READ Obtain the next program symbol. REPEAT Push up the control-state stack, and establish the new control state of the control state uncovered; execute the control operation specified by the new state and the old program symbol. EXPRESSION CONTROL In general, actual computation is carried out in the EXPN state. In this state, two additional stacks are used, in order to execute expressions with due regard for the precedence of the operators. This precedence is necessary to resolve apparent ambiguities in expressions where parentheses are omitted. If the operators are ordered as follows: Next program symbol <. Next program symbol Next program symbol .> Top of operator stack Top of operator stack Top of operator stack Thenotations .>, <., and:!: are read "greater precedence," "lower pre c e den c e," and "equal precedence." REPEAT, terminating the sequence for <., is similar to' the then there are essentially three control sequences to be handled. The sequences are based upon the contents of the top of an operator stack, and the next operator obtained from the program [5], [6], [7]. All identifiers, regardless of the state of the operator stack, are entered in the operand stack. The control sequences based upon the relative precedence of the next program symbol (operator) and the operator in the top of the operator stack are as follows: Enter in operand stack; READ; execute the instruction in top of operator stack using operand(s) in top of operand stack; REPEAT Execute instruction in top of operator stack using operand(s) in top of operand stack; replace top of operator stack with new symbol; READ Enter in operator stack; READ REPEAT used in the control sequences. REPEAT here means "raise the operator stack, and determine the next control sequence upon the basis of the new operator in the operator \ A Computer for Direct Execution of Algorithmic Languages / 187 ~ , SYMBOL BEGIN END STEP WHILE 00 UNTIL ., .-.- I STATE (ALL OTHER DELIMITERS) replace FS5 enter FSI save symbol counter enter EXPN FORST READ save symbol counter replace FS2 enter FS4 FS1 READ FS2 save symbol counter replace FS6 enter FS4 save symbol counter replace FS4 READ READ reset symbol counter replace FS6 enter FS4 add step value enter FS3 enter EXPN READ READ reset symbol counter enter EXPN READ duphcate last ldentlfier stored save symbol counter enter EXPN READ (step value llm.t reached) replace FS7 READ READ (step value liImt not reached) replace ST llmitnot reached) replace FS4 READ READ ... _--------- --(step value FS3 FS4 (step value 11m.t reached) replace FS7 READ READ READ READ replace ST READ READ READ READ reset symb~l counter enter EXPN FS5 reset symbol counter enter EXPN READ READ reset symbol counter enter FSI enter EXPN READ (precedmg EXPN true) replace FS4 READ ------- FS6 (precedmg EXPN false) replace FS7 READ FS7 count sklp counter up by I READ count SkiP counter down by If zero, 1f slup counter zero" REPEAT else READ REPEAT else READ Figure 1. Iteration Control stack and the program symbol previously found. tt The EXPN state is left (via a REp EAT) whenever one of the delimiters in Figures 1 through 4 is encountered. MACHINE LANGUAGE The machine language is based upon the specification for ALGOL '60. Programs are strings of symbols drawn from a 2048character alphabet making up declarations and statements imbedded in the ALGOL control structure. In general, the attempt has been to implement the major computational aspects of the language without unduly complicating the control. The following is a partial list of the deviations from the ALGOL reference language: a) No own declarations b) No arithmetic expressions as actual parameters c) Omission of comment from programs d) Omission of. strings as data elements e) Limited use of designational expressions. COMPUTER ORGANIZATION AND ELEMENTS The major elements of the system shown in Figure 5 are a program memory, a value memory, an arithmetic unit (with associated arithmetic registers), three stack memories used for interpretation and control, and an address table. The arithmetic unit and value memory are much like those in conventional 188 / Computers - Key to Total Systems Control ~ SYMBOL IDENTIFIER ARRAY , ,• enter AS2 READ REPEAT STATE AS1 place m ldentIfier stack READ enter AS2 READ .- •• enter AS3 enter EXPN READ REPEAT AS2 compute range for bound palr enter AS4 enter EXPN READ AS3 obtam absolute value of prevlOus expresslOn enter EXPN READ ] asslgn array storage from next avallable locatlOns to ldentifier m top of ldentIfler stack, record type appropriate READ compute array storage REP-EAT compute another d,menslOn of array REPEAT AS4 place m ldentIfler stack READ RS replace ASl enter AS2 READ asslgn next avallable locatlOn to ldentIf,er m top of ldentIfier stack, record type appropnate READ place m ,dentif,er stack READ REPEAT REPEAT SW1 SW3 [ place m ,dentif,er stack READ record ldentlfier m ldentlfler stack as control word READ asslgn locatlOn of switch table to ldentIfier m top of ldentifier stack enter SW3 READ REPEAT Figure 2. Declaration Control processors. The three stacks are used for control and temporary storage of the operand names (identifiers) and operators, for proper execution of expressions. The program memory stores the individual symbols of a program, one to a word, or sy Hable. One bit is used to specify to the machine whether a syllable is an identifier or a delimiter. Associated with the program memory is a symbol counter (SC). The symbol counter, which corresponds to a program counter in a conventional machine, addresses successive symbols of the program in the program memory, and places these symbols in a staticizing register, or window register (W). There, the type of symbol is determined, and, depending upon the control state, is entered into the appropriate stack. The two auxiliary registers (IVR and RVR) are used in iteration. One of three stack memories (C), with its associated stack pointer (K), records the current control state. The control delimiters of the program cause generation of the appropriate control state. This state, entered into stack memory C, then determines a new control regime. The other two stack memories (0 and A), with their associated stack pOinters (S and H), record arithmetic operators and identifiers, respectively. The address table is a mechanism for relating the identifiers (names) of data with the locations in the value memory where the values are stored. The entries in the address A Computer for Direct Execution of Algorithmic Languages / 189 NEXT SYMBOL END THEN IF ELSE , • STATE (preceding EXPN true) replace ST3 enter ST READ CONS -- -- - -- - (preceding EXPN false) replace STl READ count skip counter up by 1 READ (if skip counter is zero) replace ST2 READ --------(if not) count skip counter down by 1 ST1 --------(if skip counter is now zero) replace ST2 READ ST3 REPEAT replace FS7 READ REPEAT Figure 3. Conditional Statement Control table are of two parts: a level part and an address part. The level part is used to differentiate between identical identifiers occurring in different blocks (levels) in an ALGOL program, and to assist in re-establishment of the correct level when an unconditional transfer of control to a higher level block occurs. The address part is the location in the value memory of the data corresponding to a particualr identifer. The identifiers correspond one-to-one with the positions of the address table. Associated with the address table is the address table register (ATR). The transfer of data from the value memory to the arithmetic registers occurs by placing the address part in the memory address register (M). The words of the value memory contain the values corresponding to identifiers in the program. Either a uniform representation of integer and real values similar to that found in the Burroughs B5000 system, or an integer floating-point tag on each data word is required, since the operators do not differentiate between integer and real values. Two counters (p and Q) are used with the value memory to record the extent of data and to file control words. Data storage starts at the low end of memory and runs toward the high end, as shown in Figure 5. In addition to arithmetic variables, the value memory is used to store control words that are, in the main, declared variables, the identifier of which has been used again in a lower level block of 190 / Computers - Key to Total Systems Control ~ SYMBOL BEGIN END enter CPS READ atop. end INIT CPS enter CPS READ FOR IF PROCEDURE enter FORST enter EXPN READ enter CONS count level counter IDENTIFIER ARRAY SWITCH STATE REAL INTEGER BOOLEAN of program place ldenhfler REPEAT enter EXPN READ enter EXPN count level counter up by 1 up by 1 replace BLK replace BLK enter PRO enter AS! enter AS2 count level counter up by 1 replace BLK count level counter enter ASGN enter EXPN up by 1 READ replace BLK m top of Identifier Btack as label READ set SWitch count level counter down by 1 REPEAT BLK READ READ place in Identifier REPEAT PRO stack READ enter SW 1 READ to Cll1 approprIate type mark enter RS READ record posinon of procedure as control word enter FS7 REPEAT place m ST replace FORST replace CONS enter EXPN enter EXPN READ READ replace CPS READ ASGN IdentJ.fler atack REPEAT enter EXPN enter ASGN enter EXPN READ READ store result of expression in location speCified by ldentlfler 10 top of place ldentlher U1 top of Idenhfler stack as label READ store result of expression ln location speclfled by ldentlfler 10 top of ldentlfler Idenbher stack stack REPEAT REPEAT Figure 4. As sigmnent and Block Structure Control the program. Contro~ words are recorded starting at the high end of memory, and are ;run toward the low end. The arithmetic unit proper is conventional, except, perhaps, that the speCification of arithmetic type is carried in the data word rather than in the instruction. The arithmetic registers (T and U) are the accumulator and extension register as well as the top two positions of an arithmetic stack. OPERATION OF THE SYSTEM Declarations Declarations encountered in the program are executed to reserve space in the value memory corresponding to the identifiers used. The sequence upon encountering real, integer, or Boolean declarations causes the location in the value memory assigned to that identifier to be recorded in the address table in the. position corresponding to the identifier named. An array declaration causes a block of storage corresponding to that identifier to be reserved by advanCing the data storage counter (P) by the amount indicated by the bound pair list. The old value of the address table is recorded as a control word in the value mem0ry if any identifiers have been used at a higher level before the new storage position is recorded. For example, an integer declaration of the form integer a ; ... has the following control effect: 1. Upon encountering integer in the program, cause a fill switch to be set and the RS state to be entered. 2. Upon encountering the identifier a in the window register (W), a. (H) + 1 --+ H increase the A stack list pOinter by one enter W into the A stack b. (W) --+ H* 3. Upon encountering the semicolon, a. (P) + 1 --+ P advance P counter b. (H*) --+ ATR A stack --+ address table register c. (H) - 1 --+ H reduce A stack pointer by one d. if (ATR*(L» if address table posi~ cp, tion has been used, do e and f; else go to g e. (Q) - 1 --+ Q advance Q counter f. (ATR*)--+ record previous address table entries Q* control word g. (P) (f) (L) record P and L in ad--+ ATR* dress table set type mark (integer, h. type mark --+ p* real) in data word A Computer for Direct Execution of Algorithmic_:Languages / 191 VALUE MEMORY Or--------------DATA ADDRESS TABLE PROGRAM MEMORY (VARIABLES a ARRAYS) ----------- CONTROL WORDS n~-------------- T ARITHMETIC STACK MEMORIES TIMING a STACK COUNTERS CONTROL Figure 5. Computer System Diagram In these expressions, the asterisk is read as "addressed by," such that H* means the location (in the A stack) addressed by the contents of H. The symbol ( ) means ''the contents of," such that (A) is read as "the contents of A," and (A*) is read as "the contents of the location addressed by A." The symbol (±) means that the adjacent words are concatenated, or merged into a single word. In a manner similar to the above, other declarations are executed to reserve storage and to retain the previous identifier in the address table. designational expressions, and the like, describe the computations to be performed. The computations represented by these syntactic forms are executed in the EXPN state. In this state, the identifiers enter the A stack, and the operators enter the 0 stack. The sequence of execution is determined by the precedence of the arithmetic and logical operators. For example, an assignment statement of the form Arithmetic and Boolean Expressions is executed via the following sequences (where W, again, is the identifier encountered in the window register): Arithmetic and Boo lea n expressions, occurring ina s s i g n men t statements, C: = a + b; 192 / Computers - Key to Total Systems Control W STATE Control Sequence Comment C .- EXPN EXPN ST a + b EXPN EXPN EXPN EXPN (H) + 1 -+ H, (W) -+ H*, READ (K) - 1 -+ K (K) + 1 -+ K,-+ K*, (K) + 1 -+ K, -+ K*, READ (H) + 1 -+ H, (W) -+ H*, READ (S) + 1 -+ S, (W) -+ S*, READ (H) + 1 -+ H, (W) -+ H*, READ (H*) -+ ATR, (H) - 1 -+ H, (ATR*) -+ m, (m*) -+ T, TFF = 1, (P) + 1 -+ P, (U) -+ P*, (T) -+ u, (H*) -+ ATR, (H) 1 -+ H, (ATR*) -+ m, (m*) -+ T, (EXECUTE T Op[S] U) -+ U, TFF = := do. Thescope of the running variable is determined by the structure of the subsequent statements. The two auxiliary registers (IVR and RVR) hold the appropriate place in the iteration list of the for statement. When the scope of the running variable is terminated, the symbol counter is set to the appropriate value (contained in IVR or RVR) to obtain the next element of the iteration list. The process continues until the end of the list is reached, at which time the statement to which the running variable applies is skipped over. Conditional Statements In a like manner, conditional statements are executed. The CONS state is recorded in the C stack, and the EXPN state is then entered to evaluate the Boolean expression. Upon termination of the evaluation, the truth or falsity of the expression is determined in the CONS state, and the appropriate state is entered to execute either the true statement(s) or the false statement(s). In either case, provision is made for skipping over the alternate statement. Procedures The procedural form of ALGOL '60 is an abstraction of subroutine structure, and differs substantially from ordinary machine change state assign (A + B) to C subroutines in that itpermits recursive calls on subroutines. This provision implies a mechanism for aSSigning storage at run time. Such a mechanism exists in this machine inasmuch as the execution of variable declarations reserves storage for each variable, when encountered. The PRO state merely records in the address table the position of the procedure in the program memory and skips over the body of the procedure. Execution of the procedure causes a change of level, a recording of the return point, and entry of the program memory location of the procedure in the symbol counter. The specifiers and variables for the procedure are executed, previously used labels being filed in the value memory as control words. Procedures declared within procedures are handled in a similar manner. RELATION OF MACHINE STRUCTURE TO ALGORITHMIC LANGUAGES Several features of this machine have generality beyond ALGOL '60. These features can be identified in relation to characteristics of the language. The control stack is a device for recording the static structure of a program as a series of states which determine the interpretation of subsequent symboIs of the program. This device takes advantage of the sequentiality of computation processes. Such a structural device is inadequate, of itself, for representing control of parallel computational processes, a subj ect that has become of increasing interest recently. Any language form that provides A Computer for Direct Execution of Algorithmic Languages / 193 indicators for parallel processes may be handled by multiple arithmetic and control units in a manner similar to that employed in the Burroughs B5000 computer system. The address table feature of fhe machine is a direct analogue of the tag tables maintained in an algebraic translator. In this version of the machine, the address table is a limited form of associative memory. To provide the feature of variable-l_~ngth identifiers, a link-list memory would suffice, but at some sacrifice in efficiency. The A and 0 stacks for identifiers and operands are another analogue borrowed from the construction of compilers. These stacks are necessary because of the precedence attached to various operators. Without the A and 0 stacks, some kind of pre-execution translation would be necessary for the machine. For similar languages, somewhat different recognition logic may result, but the structure of the machine would remain essentially the same. concepts and abstractions for a particular problem class, their efficient implementation can be a useful design goal when conSidering a new machine. ACKNOWLEDGMENTS The author is indebted to E. L. Glaser and K. Speierman of the System Research Department, Burroughs Laboratories, for providing the milieu and many valuable suggestions in connection with this work. A particular debt is owed R. Barton, a consultant for Burroughs Corporation, for the valuable insights in connection with this machine and others that placed many aspects of the programming abstractions represented by ALGOL in their proper perspective. REFERENCES 1. Gorn, S., "On the Logical Design of For- 2. CONCLUSION The task of working toward an isomorphism between machine organization and the manner in which a user expresses a problem has occupied a major segment of the computer industry for many years. The machine outlined represents another step in this process. More than anything, the machine illustrates the enormous strides made in constructing algorithmic languages that properly abstract programming techniques. I~ further illustrates the functional requirements necessary to directly implement current forms of algorithmic languages. The emphasis has been on control rather than arithmetic expressions, because of the large body of work that already exists on the latter. The organization outlined above is perhaps an overSimplification, but since good programming languages proper ly reflect the 3. 4. 5. 6. 7. mal Mixed Languages" (July, 1959). "Progress Report Number 8, " Computation Center, Massachusetts Institute of Technology, Cambridge 39, Mass. (January, 1961). "The Descriptor, a Definition of the B-5000 Information Processing System" (Bulletin 5000-20002-P), Sales Technical Services Equipment and Systems Marketing Division, Burroughs Corporation, Detroit, Michigan (February, 1961). Naur, P. (ed.), "Report on the Algorithmic Language ALGOL 60," Communications of the ACM, vol. 3, pp. 229-314 (1960). Dijkstra, W. E., "Recursive Programming," Numerische Mathematik, vol. 2, pp. 312-318 (1960). Huskey, H. D., "Compiling Techniques for Algebraic Expr.essions," Computer Journal, vol. 4, no. 1, pp. 10-19 (April, 1961). Samelson, K:; and Bauer, F. L., "Sequential Formula Translation," Communications of the ACM, vol. 3, pp. 76-83 (1960). EDDYCARD MEMORY -A SEMIPERMANENT STORAGE Takashi Ishidate, Seiichi Yoshizawa, Kyozo Nagamori Nippon Electric Co., Ltd. Kawasaki, Japan SUMMARY A high-speed semi-permanent memory us ing closed-loop conductors as coupling media is des cribed. Sens e wire detects eddy currents in the closed-loop, which are induced by the drive current. Closed-loops on the Eddycard are cut out by a punch to store the information ZERO. Complete loops represent the information ONE. After the discussion of basic fundamental results, 1024 word 45 bit experimental Eddycardmemory system is introduced. It works at a read cycle time of 100 millimicros econds in wide environmental conditions. INTRODUCTION This paper deals with a high-speed semipermanent memory "Eddy card "-a card on which conductors, carrying eddy currents, are placed according to the information to be stored. The Eddycard memory is similar to the Unifluxor in prinCiple that both make use of eddy currents as coupling media of the drive wire and the sense wire. However, in stead of a conductor slug in the Unifluxor, a closedloop is used in the Eddycard. This fact makes it possible to analyze the behavior of eddy currents easily and to store the information by only cutting out a small portion of the closed-loop. It is already well known that a memory, or storage, is one of the important parts in electronic digital computers. The memory can store both the numbers to be processed and the instructions which run the computer automatically. But the faster the computing speed becomes, the greater the necessity to minimize the access time of memories. Using thin magnetic films or tunnel diodes as memory elements, this problem has been partly solved, but they are mostly expensive and memory capacities in bits are generally so limited that full swing use of high speed memory is still not realized. Recently, several papers concerning the permanent memory, or read-only memory, were introduced [1-5]. Although it is impossible fo change the stored information so quickly, the permanent memory is a powerful solution to shorten an access time of the memory. The behavior of this closed-loop conductor is discussed both in principle and example. In this paper, the results of experiments on a large-sized conductor are described in detail, i.e., the effects of a conductor size in reference to the distance between paired wires, the output levels against the displacement of 194 Eddycard Memory-A Semi-Permanent Storage / 195 the conductor from the normal position and etc. are introduced. In the remainder, this paper describes an experimental Eddycard memory. with a capacity of 1,024 words each having 45 bits, from which the information can be read in each 100 mp.sec. The operator of the card punches a small hole in the close-loops on the Eddycard according to the program, and lays the card upon the Eddycard panel. A cover is prepared to fix the Eddycard firmly at the right position so that each closed-loop conductor is placed just upon the intersection of the drive wire and the sense wire. PRINCIPLE OF OPERATION SENSE T T (A) with The principle of the Eddycard memory was accidentally discovered. At first, one of the authors was examining a semi-permanent memory using thin magnetic films electroplated upon each conductor. During the measurement of output signal waveforms against the thickness of a thin magnetic film, the contribution of a conducting device to the sense wire was discovered. After several experiments, the configuration shown in Figure l(A) was considered to be reasonable and started analysis and deSigning an experimental Eddycard memory system of 1,024 words. Although the Eddycard is similar to the Unifluxor in principle that both make use of eddy currents as coupling devices between drive wires and sense wires, the conductor configuration in this paper makes the theoretical calculations easy and makes it possible to write the information electromechanically. The first experimental configuration is shown in Figure 2, and consists of a closed parallel drive wire crossed by an orthogonal sense wire and a conducting film. Without a conductor, as shown in Figure 3, there is no interlinkage of magnetic flux between two orthogonal wires. But if a conductor as shown in Figure 2(A) , is placed at the intersection of the wires, eddy currents will occur in the conductor film and begin Circulating as shown in Figure 2(A). These eddy currents will then induce an output voltage in the sense wire. Time relations of these waveforms are shown in Figure 4. Figure 5, shows a small scale model of the semi-permanent storage primarilyexperimented. a closed-looP conductor film SLOT (B) sample of slotted closed-loop Figure 1. Configuration of Eddycard Memory As the second step of the research, the distribution of eddy currents in a conductor film was surveyed. Since the mathematical analysis was so complicated and it seemed to be unnecessary for direct application of the phenomena to the eddycard memory, we prepared large-sized copper films for experiments, each having a square hole of different sizes in the center. Against the sizes of hole the output signal levels were observed, because it was thought that the output signal deviation caused by the hole would roughly indicate the contribution of the eddy currents flowing in the same area of the complete conductor. The relation of the sense wire outputs and the hole size is shown in Figure 6. Figure 6, shows the fact that 'most of the eddy currents are concentrated to the peripheral parts of the conductor and the remainder contributes little or nothing toward carrying the eddy currents. Thus the closed-Iooptype was accepted for the final configuration of the Eddycard conductor. 196 / Computers - Key to Total Systems Control SENSE INPUT CURRENT ~ \'--- DRIVE EDOY CURRENT IN CONOUCTOR 1 J '------- (A) with a complete square conductor film SLOT OUTPUT SIGNAL Figure 4. Tim.e Relation of Waveform.s in Figure 2. SENSE AMP SENSE AMP SENSE AMP SENSE AMP (B) sample of slotted square conductor Figure 2. Prim.arily Experim.ented Configuration SENSE 000 00000)1------. 00~0®®00( DRIVER ®®~00®00 JI---~ 00000000{ -~ T T Figure 3. Magnetic Flux Without a Conductor EDDYCARD Figure 5. Sim.plified Model of Prim.arily Experim.ented Mem.ory Eddycard Memory-A Semi-Permanent Storage / IB7 .IRE DISTANCE OUTSIDE SIZE 6 V) • ~ ...J o > ...J ...J 5 • 2 4 3 2 10 20 Figure 6. 30 40 50 90 70 60 80 HOLE SIZE IN MILLIMETERS Effect of Hole Sizes to Output Signal Write-in of the information was originally done by chemical method. Using an epoxy glass card on which square conductors were etched, an operator painted water-proof wax on the spots where the conductor film should be placed, and submerged the card in nitric acid solution for a moment and wasted out the unnecessary conductors. But this chemical processing took a long time and it was dangerous for an unexperienced person to process the card. To punch out a conductor together with the base was considered as an alternate method of chemical processing. However, it was felt that the mechanical strength of the punched card would be very poor as the packing density increased, i.e., the space ratio of the conductors to the remainder of the card increased. If the information ZERO was to be stored all over the card, the strength would be extremely poor, especially for a thin card which shows excellent punch characteristics. Then the method was considered to write the information ZERO using as small a punched area as possible. The closed-loop conductor, meets this problem. If the closed-loop is cut out by means of punch, there will be no Circulating eddy currents, and consequently the information ZERO can be stored by a small punched slot at the limited portion of the loop. Figure l(B) and Figure 2(B) show samples of slotted conductor. In the conductor in Figure 2(B), eddy currents are still flowing. But no major eddy currents flow in the closedloop conductor shown in Figure l(B), though there may be minor local eddy currents which will not induce Significant output in the sense wire. 198 / Computers - Key to Total Systems Control Simple Equivalent Circuit If a closed-loop conductor is used as cou- pling means, a simple equivalent circuit, shown in Figure 7, can be obtained. The circuit consists of a driver coil Lv and Eddycard closed-loop circuit in which an inductance L2 and a resistor R2 exist, and a sense coil L 3' Between L 1 and L 2 there exists a mutual inductance M 12' and _between L2 and L 3 a mutual inductance M 23 exists. INPU T CURR II - DRIVE R COIL L I ) CURRENT R2 L2 ) OUT PUT e) ~ "2) EooYCARo CLOSED LOOP L) SENSE COIL Figure 7. Simple Equivalent Circuit of Eddycard Memory If an input current i 1 is fed to the driver coil Lb the eddy-current i 2, expressed in Eq. (1), will flow in the Eddycard Loop. (1) di2 . di1 L2 dt + R212 = M12 dt . . . . . . And the sense coil output voltage e 3 , induced across L 3' will be e3 = ~3 ~~2 ••••••••• (2) On the other hand, if we assume that an alternating current with an angular frequency of wand an amplitude of i 1 is supplied to the drive coil, the output voltage e 3 is obtained as e3 WM M . 23 = R 2 +12JW . L 11 2 . . . . . . (3) Eq. (3) shows that for R2 « wL 2 e 3 increases in a c cor dan c e with wand for R 2 »w L 2 e 3 is proportional to the square of w. To examine this feature, the tendency of the output was calculated by Eq. (3) and compared with the observed results in Figure 8. A comparison between the output level determined experimentally and theoretically shows a good agreement in the lower frequency region. The peak in the experimental output is supposed to be caused by the increase of a loop resistance due to the skin effect. The experimental results in Figure 8 were obtained with the 1024 word Eddycard memory system, applying an oscillator output. Output decrease in the high frequency region is not due to the Fesponse of sense amplifier. Closed-Loop Conductor Including Circuit Elements If a capacitor is included in the closedloop, oscillatory currents will flow in the loop. This experiment was carried out with a large model in which a capacitor was connected in series. Though damping time varied by the time constant of loop circuits, 2 -10 microseconds were easily obtained. The results promise that signal-to-noise ratio will be improved if a capacitor included Eddycard is used, because the temporary storage of energy in the closed-loop will distinguish the coupling noise which ends soon after the termination of driver current. One of other fundamental experiments was on a diode included loop. The diode inhibited backward eddy currents which occurred when the driver current ended. Using this type of closed -loop, considerably short cycle time was experimentally obtained. EXPERIMENTAL RESULTS WITH LARGE SIZE MODELS Experiments were carried out with large size conductors. Large conductors were prepared to avoid errors which might arise from gain fluctuation and limited frequency response of the high gain amplifier and from the unaccuracy in position by using a smaller one. Two amperes of -50 m Jlsec pulse was supplied from Rese 1200 Program Pulse Generator to a large size driver wire which Eddycard Memory-A Semi-Permanent Storage / 199 XI02 OUTPUT SIGNAL 5 IN MILl/VOL TS 2 4 e) W M12 M2) R2 +jWL2 . ·L ONE I L2 -7 -=10 R2 ) INPUT CURR. 50 WA WORST 2 5 FREOUENCY IN 10 20 ZERO )0 M{GAC YCLES Figure 8 . Frequency Characteristic s was made up of two parallel wires laid 8 cm apart. The sense wire, composed of two WIres with a distance of 8 cm, was also laid across the driver wire. Output signals were measured by Tektronix 555 oscilloscope and a vacuum tube volt meter. Optimum Conductor Size Against Wire Distance In order to decide the optimum conductor size for a certain distance between the paired wires, output signal levels were observed by changing the size of a complete conductor square film. The results, plotted in Figure 9, show that the output signal reaches its maximum value when the conductor size becomes slightly larger than the intersection of the driver and sense wires. The output signal decreases quickly inside the wire and slowly outside the wire. Although the results of Figure 9 were obtained by pressuring a conducter upon the wires, the output signal maximum point would be far beyond the edge if the gap between conductor and wire plane surface increased. This will be discussed again in the following description. Permissible Displacement As described above, experiments revealed that a conductor which just covered the intersection of drive and sense wires generated the maximum output signal in the sense wire. The authors, however, expected that such a conductor would require a severe tolerance of the conductor position to the wires. Thence the relations of output signal and displacement from the optimum position on the wire surface were measured with different size conductors, and compared in Figure 10 and Figure 11. Conductors were displaced along the drive wire as well as the sense wire, but there were no significant differences between two cases. 200 / Computers - Key to Total Systems Control XI0 2 WIRE .... V) 6 DISTANCE -J 0 >-J -J 5 2 z 4 -J CI Z (,,::, V) .... .... => 3 :::::) Q. 0 2 6 8 10 12 14 18 16 20 22 CONDUCTOR SIZE IN MILLIMETERS Figure 9. Conductor Size vs. Output Signal In Figure 10, the solid line represents 8.5 x 8.5 cm complete square copper film, and the dashed line is for closed-loop type copper film, whose outside is 8.5 x 8.5 cm and inside is 7.5 x 7.5 cm. The figure shows that the closed-loop type induces more output at the right position, but the output decreases faster than that of complete conductor as the displacement increases. If the permissible displacement is defined as the distance at which the output signal decreases to 3 db below the maximum value, Table 1 will be obtained from the figures. Values in parentheses are ratios of permissible displacement to conductor size in percentage. Results of another experiment using larger conductors are shown in Figure 11. Measured samples were a 10.5 x 10.5 cm complete conductor and a 10.5 x 10.5 cm outside 9.5 x 9.5 cm inside closed-loop conductor. If a complete square conductor is used, Figure 11 shows that there exists a region within which the displacement causes little output signal decrease. For a closed-loop type, the figure shows the output signal increases as far as a certain displacement where one side of the loop comes just upon the wire. ~ Table 1. Permissible Displacements Type Complete Square Closed-Loop 85 x 85 mm 105 x 105 mm 10 mm (12%) 18 mm (17%) 6mm (7%) 18 mm (17%) Output signal level also depends upon the gap between the conductor and wire surface. In Figure 12, the relations were plotted using Eddycard Memory-A Semi-Permanent Storage / 201 OUTPUT SIGNAL IN MILlIVOL TS SOARE CONDUCTOR 8 CLOSED LOOP CONDUCTOR 2 CENTER IN MILLIMETERS 100 40 20 20 40 80 100 2 4 WIRE DISTANCE Figure 10. Displacement VS. WIRE DISTANCE Output Signal for 8.5 x 8.5 cm Conductors three kinds of conductors. A large conductor showed lesser gap effects, though its output signal at the wire surface was lower than that of smaller conductors. 1024 WORD EXPERIMENTAL EDDYCARD MEMORY SYSTEM General Based upon the preliminary experiments, an 1,024 word 45 bit memory system has been constructed. The system employs linear selection read out with a cycle time of 100 millimicroseconds. The block diagram of the system is shown in Figure 13. As shown In Figure 13, the system consists of four units. The selection core matrix supplies a drive current to selected one of 256 words of each unit simultaneously, and consequently outputs are obtained from four units at the same time. The strobe pulse is provided to improve signal-to-noise ratio as well as to select the wanted channel from four outputs'. Memory Panel A memory panel consists of 128 drive wires and 45 orthogonal sense wires. Sense wires are etched on a thin epoxy glass film, with a thickness of 0.1 mm, cemented upon the printed drive wire panel. The sense wires of two panels are connected in series to compose a 256 word unit. The length of sense wires per one amplifier is limited so that the propagation delay in a sense wire may be negligible compared with the access time. Using eight panels, or four units, a memory stack is constructed. Its dimensions are 27.5 by 63.5 by 33 centimeters excluding the selection core matrix. A sponge cover is prepared to pressure the Eddycard firmly upon the memory panel surfac e. Positioning is determined by two holes of the Eddycard. Figure 14 shows a memory panel with a cover removed and the Eddycards placed upon it. Eddycard An experimental Eddycard was made of 27 em long, 3.3 cm wide and 0.4 mm thick 202 / Computers - Key to Total Systems Control OUTPUT SIGNAL 8 IN MILLIVOL TS 10 10 IN MilLIMETERS 100 4 WIRE DISTANCE WIRE DISTANCE Figure 11. Displacement vs. Output Signal for 10.5 x 10.5 cm Conductors 85 105 ~ z '"" ... => "'=> C> 10 15 20 )0 25 GAP Figure 12. 35 IN MILLIMETERS Relative address numbers are also printed at the left side of the conductor group, and in the right side there are etched tabs on which the operator can describe the absolute address numbers and memos of the contents. On the other side of the card, etched tabs are provided for the card number and program identification. Figure 15 shows the photograph of Eddycards, one is placed the conductor side up and the other is placed the conductor side down. Close-up view of the punched Eddycard is shown in Figure 16. In Figure 16, closedloop conductors are cut by circular punched holes. This configuration was accepted by convenience. Gap vs. Output Signal Sense Amplifier epoxy glass sheet upon which silver coated copper conductors were etched. The card contains 45 by 8 closed-loop conductors, 3 mm square outside and 1.2 mm square inside, on one side. Conductors are spaced 4 mm apart from each other measured between the centers, but the marking spaces are provided to separate the 45 bits of each word into nine 5-bit characters to assist the operator. The sense amplifier for the Eddycard memory consists of four differential amplifiers and a gate circuit. Differential amplifiers are used to reduce the noise due to the capacitive coupling between drive and sense wires. They linearly amplify the sense wire outputs of their own from 1 millivolt level up to approximately 0.2 volts. Transistor Eddycard Memory-A Semi-Permanent Storage / 203 ADDRESS REGISTER READ INSTRUCTION DECODERS CONTROL PULSE GENERATOR PO.ER S.ITCHESII,..,............ SElECTiON CORE 8 EDOYC1RO PANNELS STROBE 4 UNIT S 4 X 45 SENSE AMPS Figure 13. I NFORMA nON REGISTER B10ckdiagram of 1024 Word Eddycard Memory System 2SA244' s comprise a negative feedback amplifier with a gain of 46 db at middle frequencies, and the gain versus frequency curve falls off by 3 db at 30 mc. The outputs of the linear amplifiers are then applied to the second stage, a gating circuit where 30 m J.,Lsec strobe pulse selects one out of four amplifier outputs. The strobing is also used to eliminate the noise from near-by Eddycard loops. The eddy currents in neighbouring Eddycard loops induce the output to the sense wire, but of opposite polarity. This effect reduces ONE output to some extent and increases ZERO output, or noise. Since ZERO output waveform, noise from near-by loops, is out of phase compared with ONE wave-form, the discrimination can be done by a time selection gate. In Figure 17, (A), (B) and (C) show the differential amplifier outputs of worst ONE, worst ZERO and without a card, respectively. The Waveforms in Figure 17 were viewed on a Hewlett-Packard 185A sampling oscilloscope with a 187A preamplifier. The time bases were 10 millimicroseconds per division, and the voltage axes were 100 millivolts per division. The gated signal will be then sent to the corresponding information register which can be switched its states in a few millimicroseconds. Driver A driver wire is driven by turning on a corresponding driver and switch combination. At the intersection of the selected driver line and switch line, the diode conducts and 204 / Computers - Key to Total Systems Control Figure 14. Photograph of Memory Panel with a Cover Removed supplies a current pulse to the selected drive wire via a coupling transformer. A coupling transformer with a frequency response extending from 1 me to nearly 50 mc, is used to reduce the capacitive coupling noise to the sense wire. The current driver delivers a 300 ma pulse with a rise time of 20 mil sec and 50 m Ilsec wide. As shown in Figure 18, the driver is comprised of four 2SC30 Si mesa transistors connected in parallel at the last stage. They are used base-grounded so that the driver may be considered as a constant current supply. Eight additional transistors are required in the circuit, four 2SC30's and two 2SA244's, Ge mesa type, for amplification anda 2SA244 for an input emitter follower. Experimental Results The worst signal-to-noise ratio of 3:1 was obtained, the noise being mostly caused by inevitable unbalance of differential amplifiers. Maximum propagation delay in the sense wire was measured as 12 mllsec, so strobe gates were actuated at the time 15 mllsec after the leading edge of the drive current. Measurement of permissible displacement with actual Eddycard revealed that the sense amplifier output decreased to one half of its normal value, when the card was displaced 0.8 mmonthepanelsurfaceorgapped 0.5 mm with the panel. In order to minimize punched area, slot has been recommended as the punch configuration. In this experiment, however, holes were used because the card was sufficiently strong. FOR FASTER PERFORMANCE For never-ending desire of faster cycle time, experiments with single cell have started to realize 50 mil sec read cycle time. Experiments revealed that driver and sense amplifier mainly limited the cycle time to about 100 mil sec. Coupling nOise, time delay and ringing in wires, delays in decoding circuits and registers were also hard troubles Eddycard Memory-A Semi-Permanent Storage / 205 Figure 15. Photograph of Eddycards in experimental circuits for faster performance. However, drive and sense circuit together with decoders and registers will be improved with a remarkable progress in semiconductor devices, and time delay and ringing in wires will be reduced by micromodule techniques now being advanced. Then it can be concluded that the Eddycard memory with 50 mflsec cycle time will be constructed in years. CONCLUSIONS The Eddycard memory-a semipermanent storage has been described. This memory offers a number of advantages. The closedloop type conductor permits the use of a simple equivalent circuit, thus giving considerable promise in various applications. Smallpunch area on the card makes it possible to write the information with a high-speed punch, which can be electrically connected with other information sources. An experimental Eddycard memory system with a capacity of 1,024 words 45 bits each has been constructed after the fundamental researches. Results indicate that a read cycle time of 100 millimicroseconds is feasible. Althoughproblems are left to increase the packing density, because of its Simplicity ip. basic principle, the Eddycard memory works at high :repetition rates under wide environmental conditions. ACKNOWLEDGMENTS The authors wish to express their thanks to Tsuneji Koyama and Toshikatsu Tanaka for their assistance in obtaining the experimental data and designing the peripheral circuits. REFERENCES 1. D. H. Looney, "A Twistor Matrix Memory for Semipermanent Information, " Proc. W.J.C.C., pp. 36-41, 1959. 206 / Computers - Key to Total Systems Control Figure 16. Clos e -up View of Punched Eddycard 2. J. J. DeBuske, J. Janik, Jr. and B. H. Simons, "A Card Changeable Nondestructive readout Twistor Store," Proc. W.J.C.C., pp. 41-46, 1959. 3. T. Kilburn and R. L. Grimsdale, "A Digital Store With Very Short Read Time," Proc. I.E.E., 107 Pt. B. 36 pp. 567-572, Nov. 1960. 4. A. M. Renard and W. J. Neumann, "Uni£luxor: A Permanent Memory Element," Proc. W.J.C.C., pp. 91-96, 1960. 5. H. R. Foglia, W. L. McDermid and H. E. Peterson, "Card Capacitor-A Semipermanent, Read Only Memory," IBM J. pp. 67-68, Jan. 1961. Eddycard Memory-A Semi-Permanent Storage / 207 (A) worst "One" :z ~ ~ ~ c a: a.. I.&J (B) V) ..... ....J worst "Zero" 0 ~ ....J ::::! :::Ii c C) N (C) nois e, without a card 10 MIILLIMICROSECONDS PER DI'YI:SION Figure 17. Waveform of Sense Amplifier Output 208 / Computers - Key to Total Systems Control OUTPUT + 6V I N PUT -12V 2SA244 Figure 18. Schematic Circuit of Drivers DIGITAL DATA TRANSMISSION: The User's View Justin A. Perlman~:' Hughes Aircraft Company Culver City, California Members of this group are faced with the wide range of problems inherent in providing scientific computing and business data proceSSing services to multi-plant research, development, and manufacturing organizations. It has been enlightening to note the similarity of data transmission needs present in the group. These needs can be described in four categories: a. Load-sharing among major computer centers (Le., centers with capacity equivalent to one or more 7090s). b. Data pick-up from remote test sites (or from airborne tests). In some cases realtime processing and re-transmission of results to the test site would be desirable. c. Providing access for Plant A to a computer center at Location B. Plant A might have a medium-scale, small-scale, or no computer of its own. d. Data pick-up from dispersed plants and offices for processing and incorporation in overall reports. The dispersed pOints might be in the same locality as the processing center, or possibly as much as several thousand miles away. These needs have been listed in descending order of volume and speed requirements. In the aerospace industry, load sharing among a company's computer centers (category "a", above) can generate very large daily transmission volumes, in some cases on the order of 50 reels of IBM low-density magnetic tape, or more. There is usually a distinct economic The state of the art in digital transmission theory, technology, hardware, and use has made rapid strides in the last two years. Today the user can choose from among hardware available in several speed regimes provided by a growing number of manufacturers. A user with an immediate requirement for data transmission can procure hardware which will pass data at his desired rate, if he is willing to pay (in most cases) a premium rental and accept minor difficulties in use. In essence, brute force solutions and some semi-sophisticated answers are here. Users will have only themselves to blame if the current propitious beginnings are not greatly extended to provide transmi~sion equipment more in consonance with their practical requirements for greater capability and flexibility, at sharply teduced cost. Toward the end of making user requifements known to suppliers, members of eight major firms in the aerospace industry met in July 1960 to establish an informal Data Transmission Study Group. Objectives of the group are exchange of knowledge, standardization of terminology, discussion of total systems requirements, development of reasonably uniform requirements for equipment and service, forecasting of long range needs, and acting as a coordinating group for these users with the common carriers and equipment manufacturers. Both data collection and data transmission are covered by the Study Group. ~:'Now General Manager, Modal Systems, Inc., La Jolla, California 209 210 / Computers - Key to Total Systems Control and/or intangible benefit obtainable from rapid transmission. The value of rapid transmission and processing of test data to allow decisions to be made while tests are in progress has already been proven in the development of jet engines and rocket motors. Depending on the types of tests being conducted, and the sophistication of the instrumentation, fairly large data loads can be generated for short periods of time. The need for real-time transmission and processing will probably increase in the future when it becomes feasible to continuously monitor flight tests with a remotely located multi-processing general purpose computer and have the computer control the test sequence according to test data received. Category "c", providing access for Plant A to a computer center at Location B, can generate a medium or light load depending on the size of Plant A, computer equipment installed at A, sophistication of its information system, and the research and engineering content of work accomplished at A. These last two factors require some amplification. Sophistication of the plant's (and the company' s) information system can be a maj or determinant of the amount of processing required both at the plant and at a separate computer center. Generally speaking, brute force information systems (which are frequently just computerized versions of manual or tab systems) generate greater transmission and processing loads than sophisticated systems which have been designed to take full advantage of a computer's capabilities. In part, this extra load is due to the need in a brute force system to manipulate the full detail of each transaction, rather than only the changed information. Several companies in the aerospace industry are now experimenting with pilot installations of large random access information systems. These sophisticated systems should eventually reduce both transmission and proceSSing loads. The research and engineering content of work accomplished at Plant A can influence transmission load even if the plant has its own medium-scale computer. Many technical areas now being ventured into will require computing and storage capability in excess of what could normally be justified at Plant A. Problems in magnetohydrodynamics are only one example of work which might be more suitably handled on a single large-scale computer within a multi-plant company. Although J transmission loads for these problems would not be large, the ability to obtain solutions quickly to facilitate rapid advancement of the scientific investigation would be highly desirable. Although the basic categories of transmission needs described above have been cast in terms familiar to the aerospace industry, similar needs exist or will soon exist in a variety of other industrial and commercial organizations. While these basic needs will be present, the specifics of each case will determine how much a high-speed, mediumspeed, or low-speed solution is worth, and whether equipment exists to do the job. This is the point at which user groups such as the Data 'rransmission Study Group in the aerospace industry can playa significant part in helping focus the development of data transmission techniques and e qui p men t toward more flexible and more economic solutions than those which are available today. To do this, however, users must look ahead with g rea t e r care to their future requirements, try to establish a reasonable degree of similarity in these requirements to those of other users (where possible), and then insist that suppliers either meet these requirements or provide the desired flexibility and economy by alternate means. This type action by users actually provides several benefits to the suppliers of data transmission equipment. Introduction of any new product requires extensive (and expensive) market research, product planning, etc. Typically, even after this is accomplished, the manufacturer is faced with conflicting statements of requirements by several of his initial customers. Whether the manufacturer decides to slant the product toward a single customer or attempts to compromise the differences, the usual result is an initial product of limited utility which cannot be priced attractively due to its uncertain marketability. Coordination and statement of reasonably uniform requirements by a group of potential users can help reduce the manufacturer's development expense and his uncertainty as to product design and marketability; this should yield a more suitably designed device, available to users sooner and at a more desirable price. Moreover, the user will normally receive another benefit: by reducing the uncertainties and some of the risks in entering the data transmission market, a number of capable small companies may find Digital Data Transmission: The User's View / 211 it feasible to develop transmission devices, thus providing users increased freedom of selection. Now, how does a user go about defining his requirements and what are some of the questions he must resolve? First, he must be thoroughly familiar with his total information system: as it exists today, and as he plans it will evolve one year, three years, and five years hence. While the modes of processing and the general types of processing equipment planned for use are important, of equal importance are the types of demands which will be placed on the system and the timeliness with which they must be met. Second, he should define his current costs of moving data from one location to another. It would be well to state here that one of the most effective and economic means of data movement is still physical transfer by messenger, mail, or air freight. Large volumes of data can be moved quickly, and there is no problem as to the accuracy of the received data. If higher speeds are required in a local area, movement by helicopter or light plane should be investigated along with transmission by electrical means. Third, actual or estimated volumes of data currently requiring movement should be recorded, together with projections of future loads. It is important at this point to list the medium, format, and coding of the data before and after movement, and the time urgency of each type. A difficult fourth step is to try to assess the tangible and intangible "opportunity" costs of not moving the data, and of moving it at saylOOO, 3000, 20,000, and 500,000 bits per second. It is fairly simple to record the cost of unutilized prime shift computer time at one location vs. second shift time used elsewhere; it is quite difficult, though, to attribute a cost to forcing a research scientist to wait an extra day to receive problem solutions from the computer. It is wise to attempt to ascribe values to these factors, however. Next, the actual equipment and operating costs of various devices for phYSically moving and electrically transmitting data should be compared. Here the potential user will find himself faced with a variety of alternatives, each with different cost implications. For example: a. PhYSical movement vs. wire transmission vs. grouped channel (Telpak) vs. private microwave transmission. Each of the electrical means has different costs associated with different speeds of data transfer. b. Present data medium (punched cards, paper tape, magnetic tape, computer storage). Depending on the medium, format, and coding of the data to be transmitted, is it desirable to convert to another medium, format, or coding for transmission? c. Serial vs. parallel transmission. This can have a bearing on future expansibility of the transmission system to handle different data coding and different transmission speeds. Signal-to-noise ratio and consequent error rates in transmission may also be affected by this choice. d. Buffered vs. unbuffered transmission. This choice can have a maj or effect on the actual rate of data transfer vs. the nominal rate of transmission. e. Accuracy required of received data. The instinctive requirement for 100% accuracy is usually costly, and frequently unnecessary. A realistic appraisal should be made of the reliability required in the output. If very high reliability is needed, is it sufficient to be able to recognize and mark received errors rather than correcting them during the initial transmission? How can these errors be corrected subsequently at low cost? f. If high accuracy is required at the time of transmission, what type of error detecting error correcting code - automatic retransmission scheme is necessary? Higher orders of error correcting means become increasingly expensive both in hardware, and in t r an s m iss i on and checking of the noninformation bits. g. Are synchronization or other noninformation bits required in one system to a greater extent than in competitive systems? h. Automatic monitoring and switching of inoperative equipment sub-systems may be expensive in terms of hardware but economic in terms of system utilization. i. Off-line vs. on-line operation of the transmission system, and ease of change. Programming d iff i c u 1 tie s and tie-up of expensive computer installations can result from a poor choice here. j. In the case of grouped channel or private microwave operation, availability of bandwidth for other services: telephone, teletype, computer inquiry, low and highspeed faCSimile, closed-circuit TV. 212 / Computers - Key to Total Systems Control This is merely a sampling of the factors to be weighed in selecting the most suitable data transmission system for a particular application. Some general statements can be made, however, as to user-desired features of an ideal data transmission system. The system should be capable of accepting data via the medium, format, and coding in which the data is currently recorded. Normally, the transmission equipment should not require the user to make modifications to his computer or peripheral hardware or to develop "marriage boxes" between this hardware and the transmission system. Minor modifications to the user's existing hardware may be acceptable if made by the hardware or the transmission system supplier. The transmission system should come equipped with a power supply or a plug-in means of obtaining power from existing hardware. Data transmission systems should be readily adaptable to work with peripheral hardware of several manufacturers rather than merely that produced by the transmission system supplier. Excessive duplication of equipment should not be necessary here. ConSidering the data terminal and transmission link portions of the system as separate entities, both should be modifiable over time to suit a user's needs precisely. For example: a company's first experience in data transmission may involve sending data from one location which has only paper tape or card capability to another location for proceSSing. Presumably, only low-speed operation over a single wire pair would be necessary. As the remote location grows, volume would increase, making higher speed tr a n s m iss ion necessary. A modularlydesigned flexible data terminal might allow additional modules to be added to provide transmission over several circuits. As the remote plant grew further, at some point magnetic tape capability might be added. This would require changing some of the logic and other cards (printed-circuit boards) in our ideal data terminal. As volume increased, a grouped-channel transmission link might be required, possibly with a different error correcting scheme, necessitating further changes in the modular data terminal. If volume subsequently grew still further, a common carrier or private microwave link might turn out to be most suitable and would require adjustments in the terminal. Changes in computer equipment, magnetic tape formats, etc. at the computer centers should be just as easily accommodated. Conversely, if due to improvements in the information system (or a decline in business levels) the transmission load decreased, this ideal transmission system would be susceptible to orderly decreases in capability and cost. Today, this fully flexible terminal and transmission link do not exist. In the foreseeable future, flexibility over the speed range of a thousand bits to several megabits per second will probably remain an unrealized ideal. Several suppliers are working on this type of flexibility in more limited speed ranges, however, and such equipment should become available within the next three years. The Data Transmission Study Group in the aerospace industry would like to encourage formation of other interested user groups to help focus this development work toward practical user needs. This can be an effective, inexpensive way to insure that your needs are met in an advantageous and timely manner. TELE-PROCESSING* SYSTEMS J. D. Shaver International Business Machines Corporation Data Systems Division White Plains, New York Data transmission's impact on information processing has started a new evolution, perhaps, a revolution, and the next few years will clearly show how it will enhance the scientific operation of abusiness. Data transmission is not new; in fact, it is quite old by today's measurements. In May of 1844, the first data was transmitted over public telegraph by Samuel Morse. In June of 1876, at the Philadelphia Centennial, the first words were transmitted by public telephone. Both mediums, telegraph and telephone, transmit and receive information - data - and are commonly accepted today as a way of life. Yet the full implications of communications in information processing are just beginning to be realized. Better ways of record keeping and ihformation handling are now foreseen. They will be brought about by applying communications to data and information handling tasks. ThiS, in turn, will provide new systems concepts for operational control of an enterprise. Systems is an important word in this concept of information handling. While hardware, equipment, computers and even special black boxes are important, the balanced system, using those components, must be designed and assembled to fulfill the needs of the user. Both government and industry are placing new demands on business machine suppliers. As advances are made in the management sciences, management is asking for, and will receive, improved techniques to effectively control their operations. No longer are managers satisfied with making decisions based upon historical records alone. They face a dynamic competitive market place that points to expanding output, reducing costs and improving deliveries, as well as service. Management demands that future information handling systems include: 1. The entry of data into the system when it first is generated, 2. The bridging of the time and distance gap, 3. The direction and control of several operations or the entire enterprise. These requirements point to the need for communication links that will make possible on-line, in-line, operational control systems. The common carriers have recognized this need and are working with business machine suppliers to this end. They offer a variety of facilities and devices that may be used for data transmission. Data Transmission Equipment Point-to-point data transmission equipment has been in use since World War II. The first such equipment was off-line and was used to convert punched card data into five channel paper tape for data transmission. At the receiving end, tape-to-card converting equipment provided machine language for input to the tabulating system. Next came the transmission of cards on-line from pointto-point over land lines. This eqUipment has been in use for the past seven years. It can be used on a dial-up basis, as well as over private telegraph or telephone networks. Three more recent developments are magnetic tape-to-magnetic tape transmission *Trademark 213 214 / Computers - Key to Total Systems Control over telephone lines, either private or dialup, and high-speed telegraph lines, memoryto-memory type com m u n i cat ion between computers, and remote tape control systems which provide for computer control of data transmission over eight telephone lines to and/or from punched card equipment (including printers) and magnetic tape units. The "TELE-PROCESSING" System The above are the forerunners of "TELEPROCESSING" Systems which can best be described as a combination of products, components, and communication links permitting the processing of data at a location remote from its point of origin. Generally, such systems are designed to function as an inline on-line operation, processing data as it originates and up-dating all records affected. They are not, however, limited to in-line operation since batch or scheduled type data may also be handled. They are conSidered to be operational control systems that provide direction to an enterprise or control over several major applications within an enterprise, by furnishing information where it is needed, when it is needed, upon computer control or operator intervention, over communication links. An airlines reservation system is a good example of an operational control system. In such a system the data to be processed may be: 1. Batched at a data originating terminal for transmission to a data proceSSing center at a pre-scheduled time. 2. Transmitted upon inquiry (on demand) from a receiving terminal or the data proceSSing center. 3. Transmitted immediately as the related event occurs. These aspects and the many other related factors, including the configuration of the system to be specified for a given application, are items that must be identified and defined in the case of each user's requirements. In other wordS, these systems must be customized to user applications. A "TELE-PROCESSING" System can be generalized into four functional areas as follows: 1. Processors 2. File Storage 3. Network Logic and Data Transmission Control Devices 4. Terminals The number and complexity of individual components varies for each "TELEPROCESSING" System. However, the functions of these components are required for all such systems. Processors - The "Processor" is the heart of a "TELE-PROCESSING" System. It is a general purpose computer able to perform complex logical and arithmetic tasks and monitor its own operations. These basic functions must be extended to include multiprocessing, multiprogramming, priority assignment and control, queueing protection and privacy of records, and multiple I/O channels. File Storage - Because of the centralization of all records, "TELE-PROCESSING" Systems characteristically demand a high proportion of storage to processing. For the same reasons, file operations occur more frequently, and must be handled without un n e c e s s a r y intervention by the processo~. This requires rapid addressing, rapid search, and priority control. Consequently, "TELE-PROCESSING" file storage must possess a degree of sophistication and capability for largely autonomous operation that has not normally been associated with files. It has become apparent that file storage will become of at least equal importance to the processor in future "TELE-PROCESSING" Systems. Network Logic a.J1.d Data Transmission Control Devices - These include both the equipment used to electrically interconnect remote t e r min a I s with the transmission facilities and the interface equipment between the communication links and the proceSSing center and file storage. These devices often contain lim it e d log i c a I capability. For example, they may engage indecision-making such as line or terminal addreSSing. They may provide for code conversion with error detection and control. They may have buffers for a character, word, or record and may include a multiplexor with a speed exchange allowing for several low speed incoming channels to time share a higher speed communication channel. Modulating-demodulating units generally furnished by the common carrier provide the interconnecting point between these devices and the communication links. Terminals - They are the means for entering data into and receiving data from the Tele-Processing Systems / 215 "TELE-PROCESSING" S Ys t em. Terminal design and functional capability is a critical consideration in any "TELE-PROCESSING" System, as the quantity required is reflected as a major cost item in the system. The characteristics of terminals depend upon operating requirements, t r a f f i c patterns, res p 0 n s e requirements and compatibility with transmission facilities. These devices may be "job oriented"; that is, uniquely designed to be in accord with their operating environment. They may be operated by people, or may be process-operated. They may provide for data entry, by the means of keys, or their own sensors. They may provide for display of data in record form, audible signals, and mac h i n e languages, according to system needs. Generally, these terminals are paced to the rate of data entry, or the rate of data acceptance. The Total System - Figure 1 shows a representative "TELE-PROCESSING" System, encompassing all of the above devices. This representation is a simple one; "TELEPROCESSING" Systems will vary as to size and complexity. The number of terminals maybe a few or several thousand. The communication links will in general be provided by the common carriers. Private microwave networks may be required to meet specific needs. A "TELE-PROCESSING" System is system oriented; not hardware oriented. It is a balanced system handling the defined problem areas of a business in the best' possible way. The Balanced "TELE-PROCESSING" System The basic fun c t ion s of the elements required in a "TELE-PROCESSING" System are known and the business machine suppliers have developed or are developing equipment to meet these requirements. The data proceSSing systems now being produced are designed for easy adaptation to communication links. Random access devices needed for "TELE-PROCESSING" Systems are a v a i I a b I e and are being continually improved. Terminal and transmission control products are developing rapidly. The availability of job-oriented terminals (i.e., banking and air reservation), general purpose terminals, and transmission control deVices, combined with the new offerings and new devices supplied by the common carriers provide a response to the needs of industry and government. The major problem now lies in the design of a balanced system that will satisfy the individual user. To provide a balanced "TELE-PROCESSING" System, terminals, communication links, and central processors must be considered as a whole. The actual hardware must be used to augment the total system requirements. Every element of the system must be considered and measured. Such things as type of data, traffic flow, computer programs, memory speed requirements, possible extensions, growth requirements, value of input/output speeds, human operator conSideration, and a host of other factors must be studied. Can the terminals time share the communication links? Can the central processor handle the queueing functions and housekeeping functions? Should any logic be placed at the terminal or the multiplexor? Should small computers be used as intermediate points communicating with a central processor? These are the types of questions that must be answered to attain a balanced system, and some of the procedures required before they can be answered will now be discussed. The DeSign Problem A "TELE-PROCESSING" System provides three baSic functions: 1. Communications 2. ProceSSing 3. Control These three functions are provided by the hardware of the system acting under logical control dictated by the system interconnections and programs. The prime problems of designing a "TELEPROCESSING" System lie in effecting a proper balance of hardware and logical control to meet the user's requirements. The system must deploy its capabilities so that its overall capacity is properly shared by all concerned. The goal of the design is to see that each element of the organization gets service consistent with its needs and that a minimum of the total system is in a "waitiog" role while a given element is being served. The user's needs can be summed up as function at a required availability level within a prOfitable cost picture. Since function and availability are inherently inconsistent with 216 / Computers - Key to Total Systems Control COMMUNICATIONS NETWORK LINE SELECTOR LINE SELECTOR A TELE-PROCESSING Figure 1. SYSTEM The "TELE-PROCESSING" System Tele-Processing Systems / 217 cost, a proper balance must be sought on these criteria. The first step in design is to determine the system requirements. This consists of the study of operations to determine application areas, the determination of the relative importance of the application areas, the gathering of the statistics of information flow in each application area, the study of the methods and procedures presently in use, and the development of new methods and procedures consistent with user acceptance and desired systems performance. The results of these efforts are then used to produce the functional requirements for the system. These functional requirements include the quantitative and qualitative measurements which guide systems design and establish performance criteria. It is important to note that these requirements and criteria undergo frequent re-evaluation and revision during systems design to assure that a proper balance between function, availability and cost is achieved. In view of this constant need for reassessment, it is very important that the original data gathering and reduction be in a form that permits re-evaluation of the source data. Systems solutions satisfying these functional requirements must be evaluated to determine the systems capability. At present, the design itself is still a human process. However, the magnitude and complexities of the systems dealt with dictate the development and utilization of a constantly expanding array of mathematical tools and techniques for system evaluation. The build-and-discard method of system design is simply inadniissible when dealing in systems of this size. A basically sound design must be assured before commitment to hardware. The mathematical tools discussed below make this assurance possible. Queueing Analysis - or waiting line analysis - is the mathematical method for solving problems of organization and planning in the face of a fluctuating demand for service. This fluctuation may be due either to the lack of control over demand, as in people arriving at a subway turnstile, or the inability to maintain a schedule as in the arrivals of aircraft at an airport. In either case the occurrence of long gaps of time between arrivals of elements of demand (e.g., people or planes) will result in periods of idleness of the service facilities (e.g., turnstiles or airports). This time is lost forever and subsequent periods of short intervals between arrivals result in the formation of queues. Thus, even though the service facility has excess service potential, intermittent congestion will occur. An example of the application of queueing theory is in the design of storage SUb-systems. It is possible to determine the required number of disk files (and associated channels) or drums (and associated channels) under varying traffic conditions. It is also possible to substitute the characteristics of various types of storage equipment into the formulae. In this way, the quantities of different types of equipment required to do the job over the life of the system as defined in the performance criteria established could be rapidly and economically established. ThiS, in turn, aids in the price-performance evaluation of alternative sub-systems. The power of such formulae is that they yield directly the amount of equipment capability required to do the job as a function of known parameters. The impact of proposed operational changes, changes in equipment speCifications and the availability of new types of equipments necessitate the constant utilization of these techniques on a continuing basis for each system under development. Simulation - provides a means for the evaluation of a system by the cut and try examination of a mathematical model on a large-scale computer. Before construction of the simulator, it is necessary that a functional model of the system be formulated in the form of a group of separate operating expressions. The functional model must then be expressed in machine language. Care must be shown in the application of the simulation program in order to keep machine running time at a minimum while still building the most powerful test model. The ease of model modification is also a prime factor in this choice. Once the model has been created, testing of system performance proceeds. Service times are measured. Waiting times are measured. Queue lengths are determined. These and other system design parameters are varied until the proper mix is established. This also provides the means for assuring that the proper utilization is made of the equipment capacity of the system. However, simulation techniques do not accomplish 218 / Computers - Key to Total Systems Control design. Their prime value lies in the ability to simulate the total performance of a complex system, and to measure the specific points of performance that the designer seeks to evaluate. Communications - In designing a "TELEPROCESSING" System, as much consideration must be given to the communication system as is given to the data processing elements of the system. They must work together. Therefore, they must be properly balanced in function, availability, and cost throughout the design. Communications fa c iii tie s used, or projected for use, in data communications must be characterized and their suitability for inclusion in "TELE-PROCESSING" Systems determined. These facilities include transmission channels and systems of all kinds, switching systems and equipment, modulation and de mod u I a t ion units, and numerous minor equipments presently existing in the common carriers' plant. Much work remains to be done, for example, in determining how best to use existing facilities for data communications. The problems involved include developing efficient methods of error control, techniques of synchronizing sending and receiving terminals, and modulation techniques which permit efficient utilization of channel bandwidth. The communications network design is dependent upon: The traffic to be carried by the network, specified as to origin and destination. The response time of the network, the time between the initiation of an action and its completion, which can be as short as a few seconds for airlines systems or can be as long as an hour. The required reliability and accuracy of the system, which can range from the absolute accuracy required by a banking system to the less rigid requirements of sending names and addresses for an air line reservation system. The cost of the over-all data transmission network. In planning a "TELE-PROCESSING" System, there can be no set technique. There are many different and frequently unique factors to be conSidered; hence various network layouts must be constructed and costed before a solution is found. Once again simu1ation procedures are used as a tool for obtaining a balanced (economics vs. efficiency) network layout. "TELE-PROCESSING" S y s t e m Pro g ram min g - Programming of a "TELEPROCESSING" System is an integral part of the over-all system design. Since it is possible to trade off performance of a given function between equipment and programming, it is necessary to do a thorough analysis of the relative cost and performance alternatives available. The system availability can be either increased or reduced, depending upon the nature of the programmed function and the way it is applied. These complex interrelationships r e qui r e close coordination between the programming system design and all the other elements of system design. One of the features of a "TELEPROCESSING" System is its ability to accept demands for the execution of any of hundreds of stored programs, schedule the execution of these programs such that the components of the system are used optimally, and return the results to the originator of the demand. Since the criteria for arranging an optimum schedule varies from one application to another, from one configuration of system components to another, and, in a real time system, from one instant to the next, these functions can generally be handled more flexibly by a program than by hardware. (This control program has the responsibility of keeping the "TELE-PROCESSING" System operating at top efficiency. To fulfill this responsibility, the program controls the operation of the communications system, allocates core storage, supervises the transfer of data to and from all auxiliary storage media, handles error checking, communicates with the operator, etc. Only The Beginning The above considerations indicate the complexity of design of a "TELE-PROCESSING" System, yet this is a mere introduction to the subject. Each area in the design process must be fully explored for each system and as these explorations expand into various industry application areas, new techniques using new technologies will evolve. Much has been accomplished in this new field of "TELE-PROCESSING" Systems, but the full impact of data transmission on information processing is yet to come. This is only the beginning. COMMUNICATIONS FOR COMPUTER APPLICATIONS A. A. Alexander American Telephone and TelegraPh Company New York, New York will be limited to those factors associated p rim a r i I Y with communications requirements. On the East Coast a computer service bureau is able to show a net savings of over $9,000 per month by using high volume data communications to link computer locations separated by 70 miles. A major airline has recently put into operation the first phases of what will be a computer controlled country-wide reservation system. This is inventory control at its best. In New Jersey a banking institution is using a central computer to record and control the daily financial transactions andoperations of its main and branch offices. If necessary the list could go on but the pOint has been made. We are seeing the beginnings of an era in which centralized computer capabilities are extended to wherever they are needed and at the time they are needed. This extension is made possible by electrical communications. Computer applications like this have been successful and are of value to the user, because Systems Integration in its broadest sense has been achieved. That is, the internal operations of the business, the computer functions and the communication system have been welded into an effective and economical operating unit. Systems integration like this does not come easily; it is at best an arduous task. But the rewards are well worth the effort. I would like to discuss some of the things that we in the communications business feel are the major, even critical, factors involved in integrating communications with computers or data processing systems. My remarks Time Value Certainly one of the first considerations is whether or not communications are needed. For purposes of this discussion let us consider only the field of electrical communications rather than the more general one of information interchange by whatever the means. Electrical communications in a data processing system are useful and economical whenever there is sufficient time value associated with the rapid transfer of the information. There is no question that more information per unit of cost can be sent by the U. S. mail than any other way, and if time is not of the essence, this is the way to go. For on the basis of cost per unit volume alone, electrical communications can not compete successfully with the mail service. However, where special messenger service is involved electrical communications are more economical over all but the shortest distances. The importance attached to information having considerable time value is demonstrated by the con tin u in g activity being directed toward reduc ing the cost of random access and stored program facilities in data processing systems. Progress in this direction is opening up entirely new markets for data processing machines and communication. These are the markets having high volume, 219 220 I Computers - Key to Total Systems Control short message requirements such as stock exchanges, credit bureaus, airline reservation systems, etc. with which many of you are familiar, I am sure. Each one of the applications mentioned at the beginning, for example, are proving in communications because the e sse n t i a 11 y instantaneous transfer of information has produced savings or additional revenues which were not realizable without them. Cost Factors If we are going to investigate time value, we must know something of the costs of communications for our data processing system. Those of you who have had experinece in this area know that comparing the costs of alternate ways of doing a job does not come easily and it takes a lot of detailed effort. However, perhaps we can offer some guide posts to follow. Initially, the most important factor to determine is the volume of information that must be transferred in terms of say characters or bits per day, or some other convenient interval. It is easy to be led down the wrong path on this. The fact that a computer will read, write or process information at say 15,000 characters per second does not mean, per se, that communications must operate at that same speed. Very little significant work has been done in determining the volumes necessary to provide economical and effective transfer of information in communicationcomputer complexes. Much more needs to be done in this area and we recommend it for your consideration. A knowledge of the traffic pattern, the length and time distributions of messages, and the points of interconnection involved is also necessary ifwe are to specify our communications properly. It is not just possible to put too much emphasis on the value associated with such traffic pattern information. The entire economic success of the computercommunications complex hinges on a knowledge of such factual information. Per haps the best way to underline its importance is to say that without it a satisfactory systems integration is quite unlikely to occur. What communications are available, or are likely to be available to meet the volume and traffic needs? The Table shown as Fig. 1 lists communications services and facilities that are readily available. Shown in tabular form are three general categories, DATAPHONE~:c Service (using the regular telephone network), DATA-PHONE Service with a WATSt (Wide Area Telephone Service) access line, and leased or Private Line facilities. Under each category are shown characteristics that our experience indicates will generally make this facility most effective and economical. The more characteristics that are met under the one listing, the greater is the likelihood that the requirement can be met by that communications facility. Figure 2 describes the approximate costs associated with using the telephone network via the DATA-PHONE Servicefor datatransmission. The circuit costs are based upon regular long distance telephone charges. The cost for the data set at the terminal depends upon the particular application and speed selected and varies between about $5 Imo. and $100/mo. Figure 3 describes the costs associated with using the WATS (Wide Area Telephone Servic e) line for data communications. This service is essentially long distance service on a flat rate basis. Costs are shown for unlimited calling as well as on a total time of usage basis. The tabulation shown is for a medially located WATS line. In some areas the costs will be higher and some lower. Leased or private line approximate costs are shown on Fig. 4. While at best an over simplified comparison, it does show that, on a cost per message basis, the higher the information transfer rate the lower the communications cost; if the higher transfer rate can be maintained. This brings us to the question of utilization of leased or private line facilities. A systems study of data communications must not neglect to consider the other requirements for communications that exist between points in a network. For an analysis of the traffic pattern will probably show that the increased load of data communications can be satisfied on fewer additional circuits than if considered separately. Also by providing arrangements ~: a remote recorder. In order to store the data for possible exceptional handling each Bit Assembler immediately sends out all of the received data to be recorded in real-time along with the time of day on one of two slow speed, 7 1/2 inches per second, Continuous Tape Recorders. A single recorder can store the data from 9 different stations plus the time code, and two recorders are operated in alternation to provide full time coverage of 24 hours per day. The data from any single station along with the proper time code can later enter the system via the Continuous Tape Recorder Playback and Bit Assembler #0 at a normal rate or at 8 times normal rates for search for special data or for recovery from malfunctions. The CTR Tape Time unit presents the recovered CTR time to the Message Assembler, the Time Search unit and to a visual display unit. The Time Search unit allows the operator to specify a start time and stop time to gating cJrcuitry which conditionally enables the transfer of data into the Message Assembler. The Message Assembler receives data from the Bit Assemblers via a multipole 16 position electronic switch which scans all of the Bit Assemblers sequentially (except for #0) until it locates one with a character to be stored in the assembly region of its memory. The memory consists of 2048 words of 18 bits each with random access time of 10 micro.,.. seconds. Each character with its parity bit (which is generated in the Message Assembler) occupies one-half of a word and the address is a combination of the bit assembler An Automatic Digital Data Assembly System for Space Surveillance / 261 number to which the electronic switch is set and a frame count and character count which are sent from the Bit Assembler. Each Bit Assembler has its own assembly region in memory which holds 6 frames of data. Bit Assembler =11=0 is scanned by the switch eight times as often as any of the others since it can present data from the Continuous Tape Recorder Playback at 8 times the normal rate. When the Message Assembler observes by inspection of the address specification of the character being sent from the Bit Assembler that it is the first character of a frame, the Message Assembler goes into a special cycle storing in a part of the memory region for that frame the Bit Assembler number (station number) sending the data and the current time of day from the Real Time Clock. The time is specified in Julian days mod 100, subdivided into hours, minutes, seconds, and hundredths of seconds. The Message Assembler has a second, independent, 16 position electronic switch which scans to see if any Bit Assembler has detected an alerted frame. When this condition is detected, the oldest complete frame from this Bit Assembler, which was received 5 frames before the present frame, is transferred from the assembly region of memory to the next available space in a buffer region of memory. The scanner then proceeds to the next bit assembler to see if it has an alerted frame. This procedure assures that the five frames preceding the first alerted frame are sent to the buffer region, and from there to the computer, but it also would cause the system to lose the last five alerted frames. To prevent this, the Bit Assembler contains a circuit which extends the alert condition to the Message Assembler for 7 frames following the last alerted frame. This extending of the alert causes the Message Assembler to then transfer to the buffer region the remaining 5 alerted frames plus the following 2 unalerted frames. There are two buffer regions in the memory of the Message Assembler, each holding 16 frames of data. When one of the regions is filled, a cycle is initiated to transfer this data directly into the computer and onto magnetic tape. While one buffer region is being emptied, data may be loaded into the other buffer region, and when this one is full, its data sent out. A double length record is generated whenever the second buffer is completely filled before the first buffer is completely empied. The data transferred out of the buffer region for entry into the computer is converted from binary to binary coded decimal by a modification of a shift and convert procedure (2) and assembled into a NORC and IBM high denSity compatible tape format. The binary data in each channel is converted into a two decimal digit number and a complete frame consists of 32 digit pairs of information or 64 information decimal digits plus 8 special characters required for NORC magnetic tape compatibility. The 32 information digit pairs are aSSigned in the following way. The identification of the BitAssembIer or Remote· Station number which is sending in the data uses one digit pair. The time code uses 5 digit pairs, one each for days, hours, minutes, seconds, and hundredths of seconds. There is one digit pair for the alert indication, 24 digif pairs·- foi·-the data (one for each of the possible data channels) and one digit pair for the summary data generated by the Bit Assembler. Each of the digit pairs could span the values from 00 to 99 but the digit pair for a 5 bit channel for example will have a maximum valid value of 31. If the station configuration is such that all of the possible 24 information channels are not used, the unused channels are filled with zeros. This data is sent out at twenty microseconds per character for recording on magnetic tape at one hundred inches per second on one of three units and to level conversion circuitry for direct entry into an IBM 7090 computer. ADDAS data enters the IBM 7090 via a tape channel used exclusively for this purpose. There is special level conversion circuitry with outputs that are equivalent to those generated by an IBM 729-IV magnetic tape transport. Thus, the computer acts as if it is connected to a standard tape unit, while it is actually connected to the ADDAS. When operating, the computer continuously attempts to read data from this "tape unit" and the channel "stalls" (but the computer keeps running) until, the ADDAS transfers data to the level conversion circuitry which sends it via the tape channel into the memory of the computer, generating a program interrupt or trap at the completion of the data transfer. Each frame of data occupies twelve computer words and in the tape image there is an additional three word 262 / Computers - Key to Total Systems Control beginning of record and a three word end of record identifier. Thus a standard sixteen frame record occupies 198 words in the computer. The rate of data transfer from the ADDAS to the computer varies from zero, when there are no satellite type signals being received at the Remote Stations, to very high rates as indicated in the following table. The Continuous Tape Recorder (CTR) data is played back at 8 times normal rate so that its flow rate is equal to that of 8 stations. Sixteen frame records of 198 computer words are generated at a rate of 1.2 records per station per second if the station is se~d ing alerted data. This leads to the followmg rates if all of the named stations are sending alerted data: 1 station 1.2 records/sec. 4 stations 4.8 records/sec. 10 stations 12.0 records/sec. 15 stations 18.0 records/sec. CTR 9.6 records/sec. CTR+4 stations 14.5 records/sec. CTR+I0 stations 21.6 records/sec. At CTR+I0 stations and greater, occasional records of 32 and 48 frames will be generated due to the lack of synchronism among the data sources, and the fact that there is insufficient time to generate the interblock gap with this high average data flow rate. The Real Time Clock presents to the Message Assembler the time of day in days, hours minutes, seconds, and hundredths of seconds which are established by counting down from a precision 100 kc source. The day counter presents Julian days taken modulo 100. There are the usual provision for setting, and advancing or retarding the clock as it is compared against WWV transmissions. The 100 kc signal from the clock is distributed through the system as a pulse one microsecond wide occurring every ten microseconds for use as a master timing signal for synchronization of data transfers through the system. The stepping of the stages of the clock that are used to develop the time of day in the Message Assembler are conditioned by timing signals from the Message Assembler so that all carries have been propagated from stage to stage before the clock is read. With the Analogue Display Control and its associated eight channel thermal pen recorder, the operator can easily select and view any eight channels of data from any , remote station. Old data can be reviewed by playing the Continuous Tape Recorder data into Bit Assembler #0 and selecting it as the input for the Analogue Display Control. The ADDAS provides the input data for an on-line real-time space surveillance operation which allows no scheduled maintenance time for this equipment. The organization and design of the system is such as to achieve a maximum of good time without duplication of the entire system. The operational system will eventually have two computer s with rapid switching of tape and disc files betwee~ them and the ADDAS data will be available to both computers. Other input and output of the computers will be switched between the devices and the direct communication channel on each computer. Within the ADDAS the Continuous Tape Recorders provide for data recovery from malfunctions in the Message Assembler or in most of the Bit Assembler. The IBM compatible output tapes provide for data recovery if both computers should be down at the same time. For both of these tape systems there are three identical units, so that there is a spare unit available for maintenance which can be put into service with no loss of data. There is a spare telephone line data modem located in a Line Terminal rack where these lines can be monitored and checked. This spare data modem can be switched onto any data line and its output switched into any desired Bit Assembler if its data modem fails. If a Bit Assembler fails, Bit Assembler #0 can be rapidly substituted for any of the other Bit Assemblers. The design of the Bit Assembler is such that it could easily send its data to two Message Assemblers, however it is not currently planned to duplicate the Message Assembler. There is a spare Real Time Clock which can rapidly be substituted for the standard unit. To speed up the process of locating troubles and repairing them there are a variety of built in checks and maintenance aids. In the Remote Station there is a "Station Exerciser" which generates test wave forms which can be passed through all of the data channels. Detection of an alert condition by other equipment at the station automatically returns the station back to normal condition. There is also a provision to transmit random patterns over the data modem to aid in equalization of the telephone line. An Automatic Digital Data Assembly System for Space Surveillance / 263 The "ADDAS Exerciser" is located in the operations center and is an important maintenance aid. This unit can generate various patterns which are inserted ~to the Bit Assemblers automatically at periodic intervals and replaces the data from the Remote Station for approximately 1/2 second. These patterns are chosen to check as many of the features of the system as possible. The Exerciser cycles through all of the Bit Assemblers, one after another, inserting appropriate patterns for each one. This data passes through the Bit Assembler, the Message Assembler and into the computer where a check is made that each pattern is precisely as it should be, and if an error is detected, the maintenance staff is alerted. The unit then serves as a maintenance aid by generating controlled patterns while the defective element is being repaired. The exerciser system has another independent section which is used to check and maintain both types of magnetic tape units in the system, There are also a variety of built-in checks in the system. There is a check in the Remote Station that its counters used in digitizing the phase data remain locked in step to a reference pulse. The Bit Assembler checks that the received data has the proper structure and parity, and failures are logged on an event monitor; if the failure rate becomes too high, an audible alarm is generated to alert the maintenance, staff and a signal is automatically sent back to the remote station to have it start running local recorders. The Bit Assembler also checks that each character and alert condition sent to the Message Assembler is received. Within the Message Assembler there is a parity check on the memory, and checks on the binary to binary coded decimal converter if it generates an output digit greater than 9 or receives an input value greater than 99. There are _~flO automatic read after write checks on the tape units in the system. The size of the system can be .estimated from the following information. Each of the following units occupies a space approximately equal to that of a 19 inch relay rack; the Real Time Clock, each Bit Assembler with its data modem, the Analogue Display Control, the Analogue Display Recorder, each Continuous Tape Recorder, each IBM compatible tape unit, the Level Conversion circuitry to the IBM 7090, the CTR Tape Time and Time Search unit, and the Exerciser. The Message Assembler with its memory occupies four racks. There are a variety of other units in the system, such as Master Control Consoles, Telephone Line Terminal rack and power distribution and monitoring controls. The present four station system easily fits into a space of 1,000 square feet, and a full 15 station system would fully occupy this space. This does not allow for the space required for the IBM 7090 computer which must be located nearby. The status of the system as of the time this paper is being prepared in August 1961 is as follows: Data is being received experimentally from two stations, one near Savannah, Georgia and one near San Diego, California. The assembled data is being recorded on NORC-7090 compatible tapes and is being processed through the NORC for evaluation. By December 1961 all four scheduled stations will be operating and the direct link to the IBM 7090 will be checked out. The computer programs to operate on this data are currently being formulated and the automatic space surveillance system is scheduled to become operational in the summer of 1962. REFERENCES 1. The Navy Space Surveillance System by R. L. Easton and J. J. Fleming, Proceedings of the IRE, Vol. 48, No.4, April 1960. 2. BIDEC - A Binary-to-Decimal or Decimalto-Binary Converter by John F. Couleur, IRE Transactions on Electronic Computers, Vol. EC-7, No.4, December 1958. 'FOUR ADVANCED COMPUTERS-KEY TO AIR FORCE DIGITAL DATA COMMUNICATION SYSTEM R. J. Segal and H. P. Guerber Radio Corporation of America Electronic Data Processing Division Camden, New Jersey SUMMARY Two types of computers of advanced design playa central role in" increasing the performance, data handling capability, speed and reliabilityof the Air Force Data Communications System (Phase I--ComLogNet). They perform decision-making, control, checking and auxiliary data processing functions not previously attainable in data communication systems. Store -and-forward me ssage switching and the circuit switching functions are accomplished in a number of Automatic Electronic Switching Centers. A typical Switching Center incorporates two Accumulation and Distribution Units and two Communication Data Processors. An additionaloff-line computer used to process magnetic tape from the system is also described. A brief description of the ComLogNet from a data handling point of view is presented. The input-output devices for the system are described. Functions performed by ComLogNet and the equipment used to mechanize these functions are discussed. The on-line computers (Accumulation and Distribution Units and Communication Data Processors) are described in some detail. The off-line computer (Tape Search Unit) is similarly described. 1. THE COMBAT LOGISTICS NETWORK network by acting as "clearing houses" for messages on a priority basis. Subscribers can communicate with each other despite differences in their native codes, formats, speeds, control and operational requirements. In addition, each Switching Center can be supplied with Tape StationConverters topermit high-speed data exchangewith local computers by means of magnetic tape. Initially, ComLogNet channels operate at 75, 150, 1200 or 2400 bands. Both user-touser circuit switching (CSU) and store-andforward message switching (MSU) capabilities are provided. An MSU can provide either a 50 or 100 full duplex channel capability. A The application of modern computer technology and automatic techniques to logistic data operations provides the Air Force with more effective control of its personnel and materiel. The Combat Logistics Network is a high-speed data transmission and switching network involving high capacity telegraph and microwave communications which link remote transmission stations (Tributary Stations) tb automatic switching facilities (Automatic Electronic Switching Centers). The Switching Centers automatically carry out military communications among members of the 264 Four Advanced Computers-Key to Air Force Digital Data Communication System / 265 CSU can service up to 200 subscribers. CSU subscribers can avail themselves of MSU facility and vice versa. The initial computer complex is equipped to handle approximately 7 million punched cards or equivalent daily. The Western Union Telegraph Company has been appointed Systems Manager of the Combat Logistics Network by the Air Force. The major digital data handling equipment, including the Circuit Switching Unit and the Automatic Electronic Switching Centers, are being designed, produced and installed for Western Union by the Radio Corporation of America. The ComLogNet system is shown ,in Figure 1. 2. INPUT/OUTPUT DEVICES Information is brought into or obtained from the ComLogNet message switching center via Subscriber Terminal Stations. Each station is characterized by the type of media and devices used as sQown in Figure 2 and discussed as follows. Three types of mediateletype, punched cards or magnetic tapecan be used interchangeably in accordance with the logistics of military communication requirements. a. The Magnetic Tape Terminal permits transmission at the rate of 1200, 2400, or 4800 bits per second. Magnetic Tape Terminals receive their information from and transmit to Magnetic Tape Stations included as an integral part of the terminals. The Magnetic Tape Terminals are being designed and produced for ComLogNet by the Radio Corporation of America. b. The Compound Terminal permits transmission rates of 75, 150, 300, or 600 bits _per second. The Compound Terminal receives its information from punched card or teletype equipment. _~ompound Terminals are being designed and produced for ComLogN et by another supplier. c. Teletype Statlons- transmit data at the rate of 60, 75, or 100 words per minute in a five-element, start-stop code. Teletype stations receive or transmit their information from Model 28 Teletype apparatus or the equivalent. In addition Electronic Data Processing equipment which is co-located with the Figure 1. Combat Logistics Network - ComLogNet 266 / Computers - Key to Total Systems Control TELETYPE INPUT/ OUTPUT TRUNKS TO OTHER MESSAGE SWITCHING CARD PUNCH TELETYPE TERMINAL TELETYPE INPUT/ OUTPUT TELETYPE INPUT/ OUTPUT Figure 2. CornLogNet Input/ Output Devices Switching Center may send or receive messages at high speed via magnetic tape by means of Tape Station Converters. Compound Terminals and Magnetic Tape Terminals may communicate directly with the Message Switching Centers or may communicate by way of the Circuit Switching Unit. 3. FUNCTIONS OF THE AUTOMATIC ELECTRONIC SWITCHING CENTER Functions performed by the message switching equipment are shown in simplified form in Figure 3. The basic functions may be described as the Input Function, the Output Function and the Message Processing Functions. a. The Input Function coordinates the transfer of inbound messages. It acts as a temporary storage device between the incoming channels and message processing function. It scans each channel cyclically. It provides temporary storage for characters and performs code conversion, if necessary. This function will also automatically detect errors and assist in their correction. b. The Output Function coordinates the transfer of outbound traffic. A limited amount of storage is provided for each outgoing channel to permit continuous transmission and electronic commutation, and to provide for automatic error detection and retransmission techniques. c. The Message Processing Function is shown in greater detail in Figure 4. This function interprets the heading of each message and directs it to the appropriate outgoing channel or channels. As the blocks of the message are received they are transferred to the Intermediate Store; only when the message is complete does it become a candidate for transmission. As each outgoing channel becomes available, the Message Processing function transfers the oldest message in the highest precedence category for that output channel. A Communication Data Processor is used for this function. Messages to and from local electronic data_ processing equipment and other high-speed input/output devices have access to the Switching Center by way of the Message Processing function. The Intermediate Store provides a reservoir for messages; thus permitting any subscriber to send a message without waiting for a through connection. Intermediate storage allows all output lines to be used in an Four Advanced Computers-Key to Air Force Digital Data Communication System / 267 INPUT COMMUNICATION FACILITIES MESSAGE PROCESSING INTERMEDIATE STORE OUTPUT Figure 3. Simplified Block Diagram, Automatic Electronic Switching Center BUFFERING z o~ « ~ :J ~ CODE CONVERSION CONSOLE CONTROL INPUT OFF-LINE SEARCH STORAGE MESSAGE PROCESSING ~ ....... BUFFERING a u CODE OUTPUT STORAGE CONVERSION '. '.... ........ _ \ AUTOMATJC - .. - ..... :: ~.~ LOCAL INPUT OUTPUT ,, OUTPUT EDPE CONfROl INTERCHANGE Figure 4. Functional Block Diagram, Automatic Electronic Switching Center 268 / Computers - Key to Total Systems Control optimum fashion for message traffic on a first-in, first-out basis by precedence. Further, it allows top priority traffic to automatically interrupt lower priority messages and subsequently to repeat the interrupted messages. The magnetic drums provide rapid access bulk storage for messages that are queued awaiting the availability of outgoing channels. The magnetic tapes of the Message Processing function provide larger storage for any overflow from the drums. In certain cases the Intercept Tapes will provide additional storage capacity. When one or more tributary or trunk channels are known to be out of service, the traffic may be routed to the intercept magnetic tape station for automatic storage until the channels are again open for service. Intercept tape may also be used to store messages for channels having a heavy backlog of messages. The following additional features of the Automatic Electronic Switching Center augment the data handling and decision-making capabilities of the ComLogNet system: (1) The Pre c e den c e and PriorityInterrupt feature establishes the relative order in which messages are handled. Messages are transmitted in the order of their precedence. In ComLogNet six priority levels have been assigned. Certain of these levels may interrupt the transmission of lower precedence messages. Messages of precedence levels 1 and 2 are released upon collection of a complete message, even if this requires interruption of messages of precedence 3 or lower. (2) The Alternate Routing feature permits the traffic from a particular Switching C enter to be distl"ibuted over one of a number of available paths to another Switching Center according to the established trunk routing plan. The first Switching Center establishes the path to be followed. The established trunk routing plan may be changed by manual insertion of the desired program change. (3) The Virtual Cut-Through feature provides a virtual user-to-user connection for message switch subscribers. Messages granted this service are transferred directly from the input function to the output function without using intermediate storage. (4) The Categorization feature permits each record of a message addressed to this service to be "broken out IT into. one of ten separate categories, and to be sent to the relevant station which is to receive this category of information. Upon completion of the break-out process, the Switching Center automatically creates new messages which are transmitted to the appropriate terminals. (5) The Reference feature provides a permanent copy of all messages handled by the Switching Center. Each message received is recorded on the Reference Magnetic Tape. (6) The Journal feature provides a general traffic record on magnetic tape of the system's activity. This information includes the times of arrival and dispatching of messages. (7) The Ledger Balance feature provides an up-to-date record of the current activity within the Switching Center, showing at any given time the status of all input and output channels and tapes. These records which are stored on drums for the sake of accessibility show which messages are coming into and going out of the system and are modified continually as the system operates. (8) The Statistical Data feature allows a Switching Center to collect and print out useful housekeeping data including the number of messages awaiting transmisSion, channel utilization and errors detected in transmission, and other statistical information regarding the performance of the system. 4. MECHANIZATION OF THE AUTOMATIC ELECTRONIC SWITCHING CENTER ComLogN et Message Switching hardware is based upon RCA AutoData equipment. A typical Automatic Electronic Switching Center consists of 120 racks of hardware which contain 155,000 tranSistors, 620,000 resistors, 155,000 capacitors and 780,000 diodes. The hardware configuration for a typical 50line Switching Center is shown in Figure 5. The equipments may be readily identified by function in the block diagram shown in Figure 6. Three types of Buffers (teletype, low speed and high speed) are packaged in modular form and may be inserted into the Buffer racks in accordance with the requirements of the particular Switching Center. A standard Buffer Rack accommodates ten Buffers. Data storage equipment includes Drum Storage Units and Magnetic Tape Stations as well as the High-Speed Memory associated with each Communication Data Processor. A Tape Station Con v e r t e r permits high speed Four Advanced Computers-Key to Air Force Digital Data Communication System / 269 TAPE SEARCH UNIT 9632. INTERMEDIATE STORAGE SYSTEM CONSOLE TAPE STATION CONVERTER 9401 OR 9407 9649 INTERCEPT INTERCEPT INPUT COMMUNICATION DATA PROCESSOR 9505 Figure 5. Equipment Block Diagram, Automatic Electronic Switching Center Figure 6. Typical Floor Plan, Automatic Electronic Switching Center 270 / Computers - Key to Total Systems Control communication by means of magnetic tape with a local electronic data processing center. A System Console permits the operator to monitor and control operations in the Switching Center. A typical system contains two Accumulation and Distribution Units and two Communication Data Processors. The addition of Buffers and Accumulation and Distribution Units will permit a 50-channel system to be expanded to 100 channels. The four computers which are the heart of a 50channel system are two Accumulation and Distribution Units and two Communication Data Processors. These computers are described in more detail in sections 5 and 6. The off-line Tape Search Unit assists in the Intercept, Journal, and Reference functions and is described in section 7. 5. THE ACCUMULATION AND DISTRIBUTION UNIT The Accumulation and Distribution Unit (ADU) is a special-purpose, digital computer utilizing both wired and partially stored program techniques to coordinate Channel operation in conjunction with the Communication Data Processor. The ADU will accommodate up to twentyfive full-duplex (simultaneous receiving and transmitting) channels, or fifty one-way channels, or any mix of these services within the maximum stated. a. It provides channel coordination with the tributary stations. b. It provides storage of data on each input and each output line. c. It provides code conver sion between the transmission code and the common language code of the Communication Data Processor, and vice versa. d. It provides for high-speed communication with the Communication Data Processor. Two ADU's will be supplied for a 50 fullduplex channel ComLogNet Message Switching Center, and four ADU's for a 100 fullduplex channel ComLogNet Message Switching Center. Each channel may be either a highspeed (601 to 4,800 bands) channel or a lowspeed (up to 601 bands) channel. Each ADU is initially equipped for transmitting and receiving on eight High-Speed Buffers and seventeen Low-Speed Buffers. The eight high-speed channels can be operated as lowspeed channels by providing Low-Speed Buffers in place of the High-Speed Buffers, and by effecting change-over routines within the ADU' and Technical Control. Teletype channels may be substituted in place of the high and low speed channels by means of a .simple patchboard arrangement and use of Teletype Buffers. The ADU can be expanded from an initial capability of servicing eight full-duplex, highspeed channels and 17 full-duplex, low-speed channels to a maximum of 25 full-duplex, high-speed channels by the addition of two plug-in magnetic core stacks and associated. drivers. Since the ADU Data Store Memory is of modular construction, it can be expanded from two to four stacks by the addition of stacks and drivers in the space provided in the rack. No additional power supply or wiring is required for this change. Figure 7 is a Block Diagram of the Accumulation and Distribution Unit. The ADU consists of five major sub-units as follows: Commutation determines which channels are to be serviced. As the receiving portion of a buffer is filled, the information is transferred to an appropriate zone in the ADU Data Store Memory. When the transmitting portion of a buffer is found to be empty, a character is brought into the buffer from the ADU. The Commutator function is capable of sequentially servicing the transmit and receive section of each Buffer every 1.5 milliseconds. The Procedure Memory (PM) is a 24,576 bit high-speed memory, which operates on a 5-microsecond reg e n era t i v e read/write cycle. The PM consists of a 16 x 16 x 96 ferrite-core memory stack with associated drivers, sense amplifiers, and control logic. The PM has a capacity of 256 words of 96 bits each, and is used to store a code look-up table (code and procedure field) and the bookkeeping information required for data transfer (input-output tally field). Data is written into, or read from, the Data Memory one word at a time. The code conversion feature of the Procedure Memory is illustrated in Figure 8. The Data Store Memory is an 8192-word, 24-bit per word, magnetic-core memory with a read-write cycle of 15 microseconds. The Data Store Memory accumulates and stores blocks of data receivedon the incoming channels until the CDP is ready to receive the data. Conversely, it stores blocks of data received from the CDP until the information can be transmitted on the outgoing channels. Messages are stored in the Data Store Memory in 80-character blocks as shown in Figure 9. Four Advanced Computers-Key to Air Force Digital Data Communication System / 271 ~ .... ...... - ~ ..... ... - ::J BUFFERS DATA STORE --+ MEMORY ~ ~ ~ TO AND FROM .... Z 0 PROCEDURE MEMORY +- A- I I I I ~-- U ~ i .... _-------- A- • ~-------------------- • ... I CONTROL 0 I I ... I L.. __ • ~ ... A~ ..: MASTER TIMING GENERATOR ~ ___ DATA AND CONTROLe; TO AND }FROM THE II1II- - - COMMUNICATION DATA PROCESSOR I I I - - - - - - - - .... Figure 7. Block Diagram, Accumulation and Distribution Unit MODE 1 MODE 2 ~MON ~ CHARACTER ADDRESS TElETYPE ~R~~~~~~-+~ CHARACTER A A N 2 TELETYPE r...-/"--CHARACTER N 2 Figure 8. Code Conversion in Procedure Memory, Accumulation and Distribution Unit The Control portion of the ADU is the decision-making unit which directs the flow of data and/or instructions to their predetermined destinations. It controls all of the tally updating and transfer of data by means of appropriate timing pulses from the Master Timing Generator. The Master Timing Generator determines the time at which information will be transferred to and from the ADU. In conjunction with the control logic, it sets the duration and sequence of the various internal functions of the ADU. A photograph of the Accumulation and Distribution Unit is shown in Figure 10. 272 / Computers - Key to Total Systems Control r-LINE BLOCKS-l LOW SPEED CHANNEL - - ·. . . . . . .,1. . . . - - - - - - 1 " HIGH SPEED CHANNELS LOW SPEED CHANNELS LOW SPEED CHANNELS ASSIGNED .3 LINE BLOCKS HIGH SPEED CHANNELS ASSIGNED 11 LINE BLOCKS Figure 9. Data Memory, Accumulation and Distribution Unit Figure 11 shows ADU. hardware details of the 6. THE COMMUNICATION DATA PROCESSOR The Communication Data Processor (CDP) is an all solid-state high-speed advanced design digital computer. There are two on-line Communication Data Processors in each Switching Center. One CDP handles traffic, while the other CDP is performing test and auxiliary house-keeping functions. In the event of trouble in the CDP handling traffiC, control of traffic is automatically transferred to the alternate CDP without loss of data. A block diagram of the Communication Data Processor is given in Figure 12. The CDP consists of the following: Basic ProceSSing Unit High-Speed Memory (HSM) Consoles Input/Output Transfer Channels Input/ Output Switches . Basic Processing Unit Figure 10. Photograph--Accumulation and Distribution Unit The Basic ProceSSing Unit is the center for data handling and control; it performs the following functions: Four Advanced Computers-Key to Air Force Digital Data Communication System / 273 Figure 11. Hardware Details - Accumulation and Distribution Unit Transfers data to and from the High Speed Memory. Executes stored instructions and elementaryoperations. Performs arithmetic operations. Controls Input/Output operations. Automatically transfers control to the alternate CDP as required. High -Speed Memory The High-Speed Memory (HSM) is a magnetic - core, random - access me m 0 r y which ispackaged in modules of 8,192 words, each word containing 56-bits. Up to four modules may be incorporated in each CDP, expanding the storage capacity to 32,768 fullwords or 65,536 half-words. The basic memory cycle can be executed in its entirety in 1.5 microseconds. Data in the form of 56 or 28 parallel bits may be read from or written in a storage location specified by a high-speed memory address. This address consists of twenty bits allocated as follows: 13 bits specify one out of the 8,192 unique word locations in a single storage unit; 2 bits specify one out of the four mem0ry modules; 1 bit is used to specify the half word; 3 bits indicate the character location; and 1 bit is used for accuracy control functions. The High-Speed Memory operates in three modes. These arethe Read-regenerate cycle, the Write cycle and the Split cycle. Consoles The CDP is provided with three consoles. The Operator's Console provides controls and visual displays to permit the operator to com m u n i cat e d ire c t 1 y with the Basic 274 / Computers - Key to Total Systems Control OPERATORS CONSOLE BASIC PROCESSING UNIT I. BASIC ARITHMETIC UNIT 2. INSTRUCTION CONTROL MONITOR PRINTER 3 ELEMENTARY OPERATION CONTROL 4 TRANSFER CHAN~EL CONTROL 5 OP~RATOR CONSOLE TRANSFER CHANNEL DRUM STORAGE TRANSFER CHANNEL READ/WRITE ACCUMULATION 6 DISTAIBUTION UNIT TRANSfU 0WUIlL READ/WRITE MAGNETIC TAPE TRANSF~R CHANNEL READ/WRITE MAGNE "IC TAPE TRA,IISFER CHAI\NEL lEAD/WRITE TAPE CONVERTER TRANSFER CHANNEL CONVERTER UNIT DRUM-' DRUM-2. DRU M -3 HIGH SPEED PAPER TAPE READER HIGH SPEED PRINTER TRANSFER SYSTEM CONSOLf CHANNEL TRANSFER CHANNEL TO HIGH SPEED PRINTER TO SYSTEM CONSOLE COMPUTER TRANSFER CHANNEL TO ALTERNATE COMMUNICATION DATA PROCESSOR _-f---+ _--4--+--4 Figure 12. Block Diagram - Communication Data Processor Processing Unit. The Operator's Console works with two peripheral devices: the Monitor Printer Console and the Paper Tape Reader Console. The Monitor Printer provides on-line printing of data from the CDP. The High Speed Paper Tape Reader provides on-line entry of data via punched paper tape into the system at 1000 characters per second. Input/Output Transfer Channels Eight types of Transfer Channels provide the means for sequencing communications between the Basic Processing Unit and peripheral devices. The data being sent to or recei ved from a peripheral device passes through a Transfer Channel buffer or simultaneous data register. Whenever a read instruction from memory to a Transfer Channel is to be executed, the first memory location in the High-Speed Memory is specified and data words are read out sequentially. Similar ly, if a write instruction is to be executed, the first memory location of the data to be stored is specified. Transfer C han n e I s are available for matching the speed and control requirements of the following typ es of input/output devic es: Drum Storage Units Accumulation and Distribution Units Magnetic Tape Units Tape Station Converters High Speed Printers System Console Alternate Computers The Transfer Channels may be interconnected with more than one input/output device by means of the Transfer Channel Switches which are transistorized switch matrices. For example, a total of 48 Magnetic Tape Stations can be accommodated by two Magnetic Tape Transfer Channels and eight Switches. A typical input/output complement for CDP includes three Drum Storage Units, two Accumulation and Distribution Units, 13 Magnetic Tape Units, and an on -line High - Speed Printer. In addition, Tape Station Converters are available which will permit communication between the ComLogNet Switching Center and local electronic data processing installations. The functions of the CDP are illustrated in Figure 13. The CDP serves as the master in the store-and-forward service performed by ComLogNet. Its high speed permits the serviCing of up to four ADU's. Categorization, accuracy checking, message protection, and maintaining records of all messages handled are additional functions of the CDP. Information brought into the CDP Memory is stored there only long enough to have pertinent data extracted from its heading; it is then forwarded to Intermediate Drum Store until it Four Advanced Computers-Key to Air Force Digital Data Communication System / 275 COMMUNICATION ....-----, CHANNELS COMMUNICATION CHANNELS LOCAL eOPE Q/ ~ , \ , \ ,, , \ , I ,, , \ ,, I ,, ,, ,, , , I ,, I I , I I , # I BOOKKEEPING TABLES (HSM) ~# Legend BASIC BOOKKEEPING TABLES DRUM STORE Figure 13. CONTROL - - -DATA--- Functional Block Diagram - Communication Data Proces sor is ready, to be transmitted to its destination, or destinations. The time in intermediate storage is determined by traffic conditions and message priority. Under normal traffic conditions, all data is recorded on Storage Drums. If traffic increases and the drum nears capacity, low priority messages are transferred to Intermediate Tape Storage. All messages entering the system must have a heading specifying priority and destination. This information with the time of arrival is queued into the Bookkeeping Tables of the HSM, and is also written on the Drum Store and on the Ledger tape. The latter two records are used for accuracy control to insure that no message is lost or remains in storage longer than its priority permits. A print out is made automatically when any message is kept in intermediate storage too long. A permanent record of all traffic handled is kept on the Journal Tape. The CDP provides for multiple programming and multi-level simultaneity. The facility to run several programs simultaneously takes maximum advantage of the high internal speeds of the computer. A large variety of input/output functions may proceed simultaneously with each other and with computer processing. The degree of Simultaneity is determined by the user through his choice of equipments and their configuration. Unlimited indirect addreSSing levels make it possible to transfer addresses of data rather than the data itself, thus effecting savings in processing time. A number of self-incrementing, automatic address modifiers can be applied to addresses, making interactive coding techniques rapid and efficient. The CDP handles fixed-word, fixed-field, and variable-data formats with equal ease. Data formats may thus be choosen to insure efficient utilization of memory and tapes. Figure 14 shows a portion of the Communication Data Processor under test. Two racks at the right are High Speed Memory, four racks at the left are CDP logic. Figure 15 shows the Operator's Console. 7. The Tape Search Unit The Tape Search Unit (TSU) is an all solid state off-line, high-speed computer. Its equipment complement could include three Magnetic Tape Stations, a Monitor Printer and a Tape Search Console. (See Figure 16) The TSU provides the C omLogN et Switching C enter with a facility for automatically searching a magnetic tape for messages or selected portions of messages. The criteria for search may be specified by the operator 276 / Computers - Key to Total Systems Control Figure 14. Photograph - Communication Data Processor, Covers Removed in accordance with the mode of operation selected. The TSU extracts the desired information from the tape being examined. The output data may be recorded on another Magnetic Tape or punched paper tape. A hard copy of the output may be obtained by way of the Monitor Printer. Figure 15. Photograph - CDP Console Information in serial pseudo-character and bit-parallel form is transmitted to, and received from, the Magnetic Tape Stations by the TSU. The TSU also receives and transmits information serially by character in bit-parallel form when communicating with the Monitor Printer. The Tape Search Unit processes data in pairs of common-language characters. It is programmed using an eighteen - bit, single -address ins t r u c t ion word. Four Advanced Computers-Key to Air Force Digital Data Communication System / 277 Equal to or Greater than Equal to or Less than Greater than Less than The TSU conducts a search using anyone, or a combination, of the comparison techniques listed below: Character by Character Field of Known Address Field of Unknown Address Parity Error Count The Tape Search Unit consists of six subunits as shown in Figure 17, the block diagram. These are the Input-Output logic, Memory Unit, Memory-Addressing logic, InstructionControllogic,Data Control, and the Data Transfer Bus. CONCLUSION Figure 16. Photograph - Tape Search Unit Messages are recorded onto magnetic tape in blocks, each block containing up to 1,600 seven-bit pseudo-characters. This corresponds to 1,200 common-language characters. The psuedo-characters themselves are used as an equipment convenience for data handling purposes. As data is read from magnetic tape, the pseudo -characters are automatically converted into common-language characters. Then they are stored within the TSU t s memory prior to performing the required search. Extraction of specific translated characters will take place when a senSing comparison reaches agreement with a given criterion. Comparison sensing includes the following logical operations: Equal to The theme of this Eastern Joint Computer Conference is "Computers-Key to TotalSysterns Control. tf The ComLogNet Switching Center uses four on-line computers and one off - line computer to control store - and forward message traffic. All are monitored from the System Console (shown in Figure 18) which displays the status of the computers and related equipment. These advanced computers incorporated in the Automatic Electronic Switching Centers are indeed the key to the ComLogNet system. ACKNOWLEDGMENT The able assistance of T. T. Patterson, J. A. Kalz, and others in the preparation and editing of this paper is gratefully acknowledged. 278 / Computers - Key to Total Systems Control , - - - - - - - - - - --l (TPR) I TAPE I STATION I I I I I I I r....-_ _.--_~ I .---_---1._ _...., I I MEMORY TAPE 2 STATION TAPE :3 STATION ADDRESSING (MAL) L ____ _ LOGIC INPUT /OUTPUT _ LOGIC _.J r-----------------------L---~~----------L~~~~==~~~~~~---------~~------------------~(I/O) DATA - TRANSFER BUS (BS) - I I I - - - - - - - - -l I I ~---~.;.....;;;.-....... -----1.----..;;.;, I I I (IDe) ....... I~----..,.-- Ir--_--L._--...., I II..---_ _r--I I CONTROL I I I LEADS INSTRUCTION CONTROL LOGIC (lCL) L ___ _ I I I I I (ACR) I I I (BFR) L _____ _ Figure 17. Tape Search Unit - Block Diagram Figure 18. ComLogNet 50- Channel System Console I DATA CONTROL (DC) I -------~ THE ATLAS SUPERVISOR T . Kilburn and R. B. Payne The University of Manchester, Manchester, England D. J. Howarth Ferranti Limited, London, England 1. INTRODUCTION The accumulator performs floating point arithmeticon 48-bit numbers, of which 8 bits are the exponent. There are 128 index registers, or B-lines, each 24 bits long; in the instruction code, which is of the one address type, each instruction refers to two B-lines which may modify the address and the average instruction time is between one and two microseconds. There are three control registers, referred to as "main control", "extracode control", and "interrupt control", which are also B-lines 127, 126 and 125. Main control is used by object programs. When main control is active, access to the subsidiary store and V - store is prevented by hardware, and this makes it possible to ensure that object programs cannot interfere with the supervisor. The fixed store contains about 250 subroutines which can be called in from an object program by single instructions called extracodes. When these routines are being obeyed, extra code control is used: extra code control is also used by the supervisor, which requires access to the "private" stores. Interrupt control is used in short routines within the supervisor which deal with peripheral equipment. These routines are entered at times dictated by the peripheral equipments; the program using main or extra code control is interrupted, and continues when the peripheral equipment routine is completed. This paper gives a brief description of work originating in the Computer Group at Manchester University. Atlas':~ is the name given to a large computing system which can include a variety of peripheral equipments, and an extensive store. All the activities of the system are controlled by a program called the supervisor. Several types of store are used, and the addressing system enables a virtually unlimited amount of each to be included. The primary store consists of magnetic cores with a cycle time of under two microseconds, which is effectively reduced by multiple selection mechanisms. The core store is divided into 512 word "pages"; this is also the size of the fixed blocks on drums and magnetic tapes. The core store and drum store are addressed identically, and drum transfers are performed automatically as described in Section 3. There is a fixed store which consists of a wire mesh into which ferrite slugs are inserted; it has a fast read-out time, and is used to hold common routines including routines of the supervisor. A subsidiary core store is used as working space for the supervisor. The V -store is a collective name given to various flip-flops throughout the computer, which can be read, set, and re-set by reading from or writing to particular store addresses. *A paper has been written on Atlas and it is hoped will be published by the Institute of Electrical Engineers. The first Atlas installation at Manchester University will include: 279 280 / Computers - Key to Total Systems Control 16,384 words of core store 8,192 words of fixed store 1,024 words of subsidiary store 98,304 words on drums 8 magnetic tape mechanisms 4 paper tape readers 4 paper tape punches 2 teleprinters 1 line printer 1 card reader 1 card punch Other Atlas installations will include different amounts of store and peripheral equipments, but the supervisor program herein described is of sufficient generality to handle any configuration through the minor adjustment of parameters. 2. THE CO-ORDINATION OF ROUTINES The Structure of the Supervisor The supervisor program controls all those functions of the system that are not obtained merely by allowing the central computer to proceed with obeying an object program, or by allowing peripheral equipments to carry out their built-in operations. The supervisor therefore becomes active on frequent occasions and for a variety of reasons--in fact, whenever any part of the syste m require s attention from it. It becomes activated in several different ways. Firstly, it can be entered as a direct result of obeying an object program. Thus, a problem being executed calls for the supervisor whenever it requests an action that is subject to control by the supervisor, such as a request for transfer to or from peripheral equipments or the initiation of transfers between core store and magnetic drums; the supervisor is also activated when an object program requires monitoring for any reason such as exponent or division overflow, or exceeding store or time allocation. Secondly, the supervisor may be activated by various items of hardware which have completed their assigned tasks and require further attention. Thus, for example, drums and magnetic tapes call the supervisor into action whenever the transfer of a 512 word block to or from core store is completed; other peripheral equipments require attention whenever the one character or row buffer has been filled or emptied by the equipment. Lastly, certain failures of the central computer store, and peripheral equipments call the supervisor into action. The central computer thus shares its time between these supervisor activities and the execution of object programs, and the design of Atlas and of the supervisor programs is such that there is mutual protection between object programs and all parts of the supervisor. The supervisor program consists of many branches which are normally dormant but which can be activated whenever required. The sequence in which the branches are activated is essentially random, being dictated by the course of an object program and the functioning of the peripheral equipments. Interrupt Routines The most frequent and rapidly activated parts of the supervisor are the interrupt routines. When a peripheral equipment requires attention, for example, an interrupt flip-flop is set which is available to the central computer as a digit in the V -store; a separate interrupt flip-flop is provided for each reason for interruption. If an interrupt flip-flop is set and interruptions are not inhibited, then before the next instruction is started, the address 2048 of the fixed store is written to the interrupt control register, B125, and control is switched to interrupt control. Further interruptions are inhibited until control reverts to main or extracode control. Under interrupt control, the fixed store program which is held at address 2048 onwards detects which interrupt flip-flop has been set and enters an appropriate interrupt routine in the fixed store. If more than one flip-flop is set, that of highest priority is dealt with first, the priority being built-in corresponding to the urgency of action required. By the use of special hardware attached to one of the B register, B123, the source of any interruption may be determined as a result of obeying between two and six instructions. The interrupt routines so entered deal with the immediate cause of the particular interrupt. For example, when the one-character buffer associated with a paper tape reader has been filled, the appropriate interrupt flip-flop is set and the "Paper tape reader interrupt routine" is entered. This transfers the character to the required location in store after checking parity where appropriate. The paper tape reader meanwhile proceeds to read the next character to the buffer. Separate interrupt routines in the fixed store control The Atlas Supervisor / 281 each type of peripheral equipment, magnetic tapes and drums. The interrupt technique is also employed to deal with certain exceptional situations which occur when the central computer cannot itself deal adequately with a problem under execution, for example, when there is an overflow or when a required block is not currently available in the core store. There are therefore interrupt flip-flops and interrupt routines to deal with such cases. Further routines are provided to deal with interruptions due to detected computer faults. During the course of an interrupt routine further interruptions are inhibited, and the interrupt flip-flops remain set in the V-store. On resumption of main or extracode control, interruptions are again permitted. If one or more interrupt flip-flops have been set in the meantime, the relevant interrupt routines are obeyed in the sequence determined by their relative priority. In order to avoid interference with obj ect programs or supervisory programs, interrupt routines use only restricted parts of the c e n t r a 1 computer, namely, the interrupt control register, Blines 123 and 111 to 118 inclusive, private registers in subsidiary store and the V-store and locked out pages in core store (see Section 3). With the exception of the B-lines, no obj ect program is permitted to use these registers. No lock out is imposed on the Blines, but interrupt routines make no assumptions concerning the original contents of the B-lines and hence, at worst, erroneous use of interrupt B-lines by an object program can only result in erroneous functioning of that particular program. Switching of control to and from an interrupt routine is rapid, since no preservation of resetting of working registers is required. The interrupt routines are designed to handle calls for action with the minimum delay and in the shortest time; the characterby-character transfers to and from peripheral equipments, for example, occur at high frequency and it is essential that the transfers be carried out with the minimum possible use of the central computer and within the time limit allowed by the peripheral equipment for filling or emptying the buffer. Since several interrupt flip-flops can become set simultaneously, but cannot be acted upon while another interrupt routine is still in progress, it is essential that a short time limit be observed by each interrupt routine. The majority of calls for interrupt routines involve only a few instructions, such as the transfer of a character, stepping of counts, etc., and on conclusion the interrupt routine returns to the former control, either mainor extracode. On some occasions, however, longer sequences are required; for example, on completion of the input of a paper tape or deck of cards, routines must be entered to deal with the characters collected in the store, writing them to magnetic tape where appropriate, decoding and listing titles and so on. In such cases, the interrupt routine initiates a routine to be obeyed under extracode control, known as a supervisor extracode routine. Supervisor Extracode Routines Supervisor extracode routines (S.E.R. 's) form the principal ''branches'' of the supervisor program. They are activated either by interrupt routines or by extracode instructions occurring in an object program. They are protected from interference by object programs by using subsidiary store as working space, together with areas of core and drum store which are locked out in the usual way whilst an obj ect program is being executed (see Section 3). They operate under extracode control, the extracode control register of any current obj ect program being preserved and subsequently restored. Like the interrupt routines, they use private Blines, in this case B-lines 100 to 110 inclusive; if any other working registers are required, the supervisory routines themselves preserve and subsequently restore the contents of such registers. The S.E.R. 's thus apply mutual protection between themselves and an obj ect program. These branches of the supervisor program may be activated at random intervals. They can moreover be interrupted by interrupt routines, which may in turn initiate other S. E.R. 'so It is thus possible for several S.E .R. 's to be activated at the same time, in the same way as it is possible for several interrupt flipflops to be set at the same time. Although several S.E.R. 's may be activated, obviously not more than one can be obeyed at anyone moment; the rest are either halted or held awaiting execution. This matter is organized by a part of the supervisor called the "coordinator routine" which is held in fixed store. Activationof an S.E.R. always occurs via the co-ordinator routine, which arranges 282 / Computers - Key to Total Systems Control that any S.E .R. in progress is not interrupted by other S.E.R. 'so As these are activated, they are recorded in subsidary store in lists and an entry is extracted from one of these lists whenever an S.E.R. ends or halts itself. Once started, an S.E.R. is always allowed to continue if it can; a high priority S.E.R. does not "interrupt" a low priority S.E.R. but is entered only on conclusion or halting of the current S.E.R. The co-ordinator has the role of the program equivalent of the "inhibit interrupt flip-flop", the lists of activated S.E.R. 's being the equivalent of the setting of several interrupt flip-flops. The two major differences are that no time limit is placed on an S.E.R., and that an S.E.R. may halt itself for various reasons; this is in contrast to interrupt routines, which observe a time limit and are never halted. In order that the activity of each branch of the computing system be maintained at the highest possible level, the S.E.R. 's awaiting execution are recorded in four distinct lists. Within each list, the routines are obeyed in the order in which they were activated, but the lists are assigned priorities, so that the top priority list is emptied before entries are extracted from the next list. The top priority list holds routines initiated by completion of drum transfers, and also routines entered as a result of computer failures such as core store parity. The second list holds routines arising from magnetic tape interruptions and the third holds routines arising from peripheral interruptions. The lowest priority list contains one entry for each obj ect program currently under execution, and entry to an S.E.R. through an extracode instruction in an object program is recorded in this list. On completion of an S.E.R., the co-ordinator routine selects for execution the first activated S.E.R. in the highest priority list. The central computer is not necessarily fully occupied during the course of an S.E.R. The routine may, for example, require the transfer of a block of information from the drum to the core store, in which case it is halted until the drum transfer is completed. Furthermore, the queue of requests for drum transfers (see section 3), is maintained in the subsidiary store, may be full, in which case the S.E.R. makingthe request must be halted. When an S.E.R. is halted for this or similar reasons, it is returned to the relevant list as halted, and the next activated S.E.R. is entered by the co-ordinator routine. Before an S.E.R. is halted, a restart point is specified. A halted routine is made free to proceed when the cause of the halt has been removed-for example, by the S.E.R. which controls drum transfers and the extraction of entries from the crum queue. The S.E.R. lists can therefore hold at anyone time routines awaiting execution and halted routines; interrupt routines are written in such a way that the number of such S.E.R. 's activatedat anyone time is limited to one per obj ect program, and one or two per interrupt flip-flop, depending upon the particular features of each interrupt routine. When an S.E.R. is finally concluded, as distinct from halted, it is removed from the S.E.R. lists and becomes dormant again. Although S.E.R. 's originate in many cases as routines to control peripheral equipment, magnetic tapes and drums, it should not be supposed that this is the sole function of these routines. Entrances to S.E.R. 's from il1terrupt routines or from extracode instructions in an obj ect program initiate routines which control the entire operation of the' computing system, including the transfer of information between store and peripherals, communication with the operators and engineers, the initiation, termination and, where necessary, monitoring of object programs, the monitoring of central computer and peripheral failures, the execution of test programs and the accumulation of logging information. Each branch of supervisory activity is composed of a series of S.E.R. 's, each one activated by an obj ect program or an interrupt routine and terminated usually by initiating a peripheral or magnetic tape transfer or by changing the status of an S.E.R. list or object program list. The most frequently used routines are held in the fixed store; routines required less frequently are held on the magnetic drum and are transferred to core store when required. Supervisor routines in core and drum store a l'e protected from interference by obj ect programs by use of hardware lock-out and the basic store organization routines in the fixed store. Obj ect Programs The function of all supervisor activity is, of course, to organize the progress of problems through the computer with the minimum possible delay. Obj ect programs are initiated by S.E.R. 's, which insert them into the object program list; they are subsequently entered The Atlas Supervisor / 283 by the co-ordinator, routine effectively as branches of lower priority than any S.E.R. Although object programs are logically subprograms of the supervisor, they may function for long periods using the computer facilities to the full without reference to the supervisor. For this reason, the supervisor program may be regarded as normally dormant, activated and using the central computer for only a small proportion of the a vailable time. In order to allow objectprograms tofunction with the minimum of program supervision, they are not permitted to use extracode control or interrupt control directly, enabling protection of main programs and supervisor programs to be enforced by hardware. Obj ect programs use the main control register, B127, and are therefore forbidden access to the Vstore and subsidiary store. Reference to either of these stores causes the setting of an interrupt flip-flop and hence entrance to the supervisor program. Access to private stores is only obtained indirectly by use of extracode functions, which switch the program to extracode control and enter one of a possible maximum of 512 routines in the fixed store. These extracode routines form simple extensions of the basic order code, and also provide specific entry to supervisor routines to control the transfer of information to and from the core store and to carry but necessary organization. Such specific entrances to the supervisor program maintain complete protection of the object programs. Protection of magnetic tapes and peripheral input and output data is obtained by the use, in extracode functions, of logical tape and data numbers which the supervisor identifies within each program with the titles of the tapes or information. Blocks of core and drum store are protected by hardware and by the supervisor routines in fixed store as described in Section 3. An object program is halted (by S.E.H. IS) whenever access is required to a block of information not immediately available in the core store. The block may be on the drums, in which case a drum transfer routine is entered, or it may be involved in a magnetic tape transfer. In both cases the program is halted until the block becomes available in core store. In the case of information involved in peripheral transfers, such as input data or output results, the supervisor buffers the information in core and drum store, and "direct" control of a peripheral equipment by an object program is not allowed. In this way, immobilization of large sections of store whilst a program awaits a peripheral transfer can be avoided. A program may however call directly for transfers involving drums or magnetic tapes by use of extracode functions, which cause entrance to the relevant supervisor routines. Queues of instructions are held in subsidiary store by these routines, in order to allow the obj ect program to continue and to achieve the fullest possible overlap between tape and drum transfers and the execution of an object program. While one program is halted, awaiting completion of a magnetic tape transfer for instance, the co-ordinator routine switches control to the next program in the object program list which is free to proceed. In order to maintain full protection, it is necessary to preserve and recover the contents of working registers common to all programs such as the B-lines, accumulator, and control registers, and to protect blocks in use in core store. The S. E.R. to perform this switching from one obj ect program to another occupies the central computer for around 750 + 12p Jl secs, where p is the number of pages, or 512 word blocks in core store. On the Manchester University Atlas, which has 32 pages of core store, the computing time for the round trip to switch from one program to another and to return subsequently is around 2.5 m.secs. This is in contrast to the time of around 60 Jl secs. to enter and return from an S.E.R. and even less to switch to and from an interrupt routine. It is therefore obvious that the most efficient method of obtaining the maximum overlap between input and output, magnetic tape transfers, and computing is to reduce to a minimum the number of changes between object programs and to utilize to the full the rapid switching to and from interrupt and supervisor routines. The method of achieving this in practice is described in Section 6. Compilation of programs is treated by the supervisor as a special case of the execution of an object program, the compiler compriSing an obj ect program which treats the source language program as input data. Special facilities are allowed to compilers in order that their allocation of storage space may be increased as need arises, and to allow exit to the supervisor before the execution of 284 / Computers - Key to Total Systems Control a problem or the recording of a compiled object program. Error Conditions In addition to programmed entrances to the supervisor, entrance may also be made in the event of certain detectable errors arising during the course of execution of a problem. A variety of program faults may occur and be detected by hardware, by programmed checks in extra codes , and in the supervisor. Hardware causes entry to the supervisor by the setting of interrupt flip-flops in the event of overflow of the accumulator, use of an unassigned instruction, and reference to the subsidiary store or V -store. Extracode routines detect errors in the range of the argument in square root, logarithm, and arcsin instructions. In the extracodes referring to peripheral equipment or magnetic tapes, a check is included that the logical number of the equipment has been previously defined. In extracodes for data translation, errors in the data may be detected. The supervisor detects errors in connection with the use of the store. All problems must supply information to the supervisor on the amount of store required, the amount of output, and the expected duration of execution. This information is supplied before the program is compiled, or may be deduced after compilation. The supervisor maintains a record of store blocks used, and can prevent the program exceeding the preset limit. In addition, an interrupt flip-flop is set by a clock at intervals of 0.1 secs, and another flip-flop is set whenever 1024 instructions have been obeyed using main or extra code control. These cause entrances to the supervisor which enable a program to be "monitored" to ensure that the preset time limit has not expired, and which are also instrumental in initiating routines to carry out regular timed operations such as logging of computer performance and initiation of routine test programs. The action taken by the supervisor when a program "error" is detected depends upon the conditions previously set up by the program. Certain errors may be individually trapped, causing return of control to a preset address; a private monitor sequence may be entered if required enabling a program or a compiler to obtain diagnostic printing; failing specification of these actions, some information is printed by the supervisor and the program is suspended, and usually dumped to magnetic tape to allow storage space for another program. The following sections describe in detail the action of certain supervisor routines, namely, those controlling drums, magnetic tapes, and peripheral equipment and those controlling the flow of information in the computer. 3. STORE ORGANIZATION Indirect addreSSing and the One-Level Store The core store of Atlas is provided with a form of indirect addressing which enables the supervisor to re-allocate areas of store and to alter their physical addresses, and which is also used to implement automatic drum transfers. With eachpage, or 512 word block, of core store there is associated a "page address register" which contains the most significant address bits of the block of information contained in the page. Every time access is required to a word of information in the core store, the page containing the word is located by hardware. This tests for equivalence between the requested "block address", or most significant address bits, and the contents of each of the page address registers in parallel. Failure to find equivalence results in a "non-equivalence" interruption. The page address registers are themselves addressable in the V - store and can thus be set appropriately by the supervisor whenever information is transferred to or from core store. One of the most important consequences of this arrangement is that it enables the supervisor to implement automatic drum transfers. The address in an instruction refers to the combined core and drum store of the computer, and the supervisor records in subsidiary store the location of each block of information; only one copy of each block is kept, and the location is either a page of core store or a sector of the drum store. At any moment, only some of the blocks comprising a particular program may be in the core store and if only these blocks are required, the program can run at full speed. When a block is called for which is not in the core store, a non-equivalence interruption occurs, which enters the supervisor to transfer the new block from a sector of the drum to a The Atlas Supervisor / 285 page of the core store. During this operation the program that was interrupted is halted by the supervisor. The block directory in subsidiary store contains one entry for each blockin the combined core and drum store. It is divided into areas for each object program which is in the store; a separate program directory defines the area of the block directory occupied by each program. The size of this area, or the number of blocks used by a program, is specified before the program is obeyed in the job description (see Section 6). The entry for block n contains the block number n together with the number of the page or sector occupied by the block, and, if possible, is made in the ntH position in the area; otherwise the area is filled working backwards from the end. In this way, blocks used by different object program are always kept distinct, regardless of the addresses that are used in each program. A program addresses the combined "onelevel store * and the supervisor transfers blocks of information between the core and drum store as required; the physical location of each block of information is not specified by the program, but is controlled by the supervisor. There are occasions when an object program must be prevented from obtaining access to a page of the core store, such as one involved in a drum or tape transfer. To ensure complete protection of such pages, an additional bit, known as a lock out bit, is provided with each page address register. This prevents access to that page by the central computer, except when on interrupt control, and any reference to the page causes a nonequivalence interruption. By setting and resetting the lock out bits, the supervisor has complete control over the use of core store; it can allow independent object programs to share the core store, it can reserve pages for peripheral transfers and can itself use parts of the core store occasionally for routines or working space, without any risk of interference. This is done by arranging that, whenever control is returned to an object program, pages that are not available to it are locked out. paper on the one -level store has been written, and will, it is hoped, be published by the Institute of Radio Engineers. >!cA A block of information forming part of an object program may also be locked out from use by that program because an operation on that information, controlled by the supervisor, is not complete. A drum, magnetic tape, or peripheral equipment transfer involving this block may have been requested. The reason for the lock out of such a block is recorded in the block directory, and if the block is in the core store, the lock out digit is also set. If reference is made to such a block by the object program, a non-equivalence interruption occ~rs and a supervisor extra code routine halts the program. This S.E .R. is restarted by the co-ordinator routine when the block becomes "unlocked", and the object program is re-entered when the block is available in core store. The Drum Transfer Routine The drum transfer routine is a group of S.E .R.s which are concerned with organizing drum transfers, and updating page address registers and the block directory. Once initiated, the transfer of a complete block to or from the drum proceeds under hardware control; the drum transfer routine initiates the transfer and identifies the required drum sector by setting appropriate bits in the Vstore. It also identifies the core store page involved by setting a particular "dummy" block address, recognized by the drum control hardware, in the page address register; at the same time, this page is locked out to prevent interference from object programs while the transfer is in progress. On completion of a transfer, an interruption occurs which enters the drum transfer routine. The routine can also be entered from the non-equivalence interrupt routine, which detects the number of the blockrequested but not found in the page address registers. Finally, the drum transfer routine can be activated by other parts of the supervisor which require drum transfers, and by extra code instructions which provide a means whereby object programs can if they wish exert some control over the movement of blocks to and from the drum store. A queue of requests for drum transfers, which can hold up to 64 requests, is stored in the subsidiary store; when the drum transfer routine is entered on completion of a transfer, the next transfer in the queue is initiated. 286 / Computers - Key to Total Systems Control Whenever the supervisor wishes to enter another request for a drum transfer, three possible situations arise. Firstly, the queue is empty and the drum transfer can be started immediately. Secondly, the queue is already partly filled and the request is entered in the next position in the queue. Thirdly, the queue is full. In this case the routine making the request is halted by the co-ordinator routine, and is resumed when the queue can receive another entry. In the first two cases the supervisor routine is concluded when the request reaches the queue. A non-equivalence interruption, w h i c h implies a drum transfer is required, is dealt with as follows. The core store is arranged to always hold an empty page with no useful information in it, and when required, a transfer of a block of information from the drum to this empty page is initiated. While this drum transfer is proceeding, preparation is made to write up the contents of another page of core store to the drum to maintain an empty page. The choice of this page is the task of the "learning program" which keeps details of the use made of blocks of information. This learning program will be described in detail elsewhere; it predicts the page which will not be required for the largest time, and is arranged with a feed-back so that if it writes up a block which is almost immediately required again, it only does this once. The number of the chosen page the drum queue entry is converted to a request to write this page to the drum. This supervisor routine is now concluded and returns control to the co-ordinator routine. When the drum transfer is completed, the drum transfer routine is again entered. This updates the block directory and page address register, makes the object program free to proceed and initiates the next drum request, which is to write the chosen page to the drum. This routine is now concluded and the co-ordinator is re-entered. The supervisor is finally entered when the write to drum transfer is complete. The block directory is updated, a note is made of the empty page, and the next drum request is initiated. The Use of Main Store by the Supervisor Some routines of the supervisor are obeyed in the main store, and these and others use working space in the main store. Since the supervisor is entered without a complete program change, special care must be taken to keep these blocks of store distinct and protected from interference. The active supervisor blocks of main store are recorded in the area for program 0 in the block directory. There are also some blocks of the supervisor program which are stored permanently on the drum; when one of these permanent blocks is required, it is duplicated to form an active block of the supervisor or, as in the case of a compiler, to become part of an object program. Of the possible 2048 block numbers, 256 are "reserved" block numbers which are used exclusively by the supervisor and are not available to object program; object program are restricted to using the remaining "nonreserved" block numbers. Blocks with reserved block numbers may be used in the core store ·at any time by the supervisor, and the co-ordinator routine locks out these pages of core store before returning control to an object program. The supervisor also uses some blocks having non-reserved block numbers to keep a record of sequence of blocks of information such as input and output streams. When anon-reserved supervisor block is called to the core store, the page address register is not set, since there may be a block of an object program which has the same block number already in the core store. Instead, the page address register is set to a fixed reserved block number while it is in use, and is cleared and locked out before control passes to another routine. Not all the reserved block numbers are available to the supervisor for general use, since certain block numbers are temporarily used when drum, tape, and peripheral transfers are proceeding. These block numbers do not appear in the block directory. For example, when a magnetic tape transfer is taking place, the page of core store is temporarily given a block number which is recognized by the hardware associated with that tape channel. When the transfer is complete, the appropriate block number is restored. During a peripheral transfer, and also on other occasions, it is necessary that a block should be retained in the core store and should not be transferred to the drum. The relevant page of core store is "locked down" by setting a digit in the subsidiary store; the learning program never selects for transfer to the drum a page for which this lockdown digit is set. The Atlas Supervisor / 287 4. MAGNETIC TAPE SUPERVISOR ROUTINES The Magnetic Tape Facilities The tape mechanism used on Atlas is the Ampex TM2 (improved FR 300) using one inch wide magnetic tape. There are sixteen tracks across the tape - twelve information tracks, two clock tracks, and two tracks used for reference purposes. The tapes are used in a fixed-block, pre-addressed mode. Information is stored on tape in blocks of 512 fortyeight bit words, together with a twenty-four bit checksum with end around carry. Each block is preceded by a block address and block market and terminated by a block marker; the leading block address is sequential along the tape, and what is effectively the trailing block address is always zero. Tapes are tested and pre-addressed by special routines before being put into use, and the fixed position of the addresses permits selective overwriting and simple omission of faulty patches on the tape. Blocks can be read when the tape is moving either in the forward or reverse direction, but writing is only possible when the' tape is moving forward. The double read and write head is used to check read when writing on the tape. When not operating the tape stops with the read head midway between blocks. Atlas may control a maximum of 32 magnetic tape mechanisms. Each mechanism is connected to the central computer via one of eight channels, all of which can operate simultaneously, each controlling one read, write or positioning operation. It is possible for each tape mechanism to be attached to either one of a pair of channels, the switching being under the control of supervisory program through digits in the V -store. Fast wind and rewind operations are autonomous and only need the channel to initiate and, if required, terminate them. Transferofa 512word block of information between core store and tape is effected via a one-word buffer, the central computer heSitating for about 1/2 J,lsec, on average, each time a word is transferred to or from the core store. During a transfer the page of core store is given a particular reserved block number and the contents of the page address register are restored at the end of the transfer. Supervisory programs are only entered when the block addresses are read before and after each block, and when the tape stops. As each block address is read, it is recorded in the V-store and an interrupt flip-flop is set, causing entrance to the block address interrupt routine. The Block Address Interrupt Routine This routine is responsible for initiating and checking the transfer of a single block between tape and core store, and searching along the tape for a specified block address. Digits are available in the V -store to control the speed and direction of motion of the tape and the starting and termination of read or write transfers. The block addresses are checked throughout and, in particular, a write transfer is not started until the leading block address of the tape block involved has been read and checked. Hardware checking is provided on all transfers, and is acted upon by supervisor routines. A 24-bit check sum is formed and checked as each block is transferred to or from a tape, and a digit is set in the V -store if any failure is detected. Similar ly a digit is set in the event of failure to transfer a full block of 512 words. These digits are tested by the block address interrupt routine on the conclusion of each transfer. Parity failure either on reading from core store or on formation of the parity during a transfer to core store causes the setting of interrupt flip-flops. If a tape fails to stop, this is detected by the block address interrupt routine as a particular case of block address failure. Failure to enter the block address routine (for example, through failure to read block markers) is detected by the timed interrupt routine at intervals of 100 milliseconds. Finally, failures of the tape mechanism, such as vacuum failure, seta separate interrupt flip-flop. The detection of any of these errors causes entry to tape monitor routines, whose action will be described later. Organization of Tape Operations Magnetic tape operations are initiated by entrance to the tape supervisor routines in the fixed store from extra code instructions in an objectprogramor, if the supervisor req1.l1.~es the tape operation for its own purposes, from supervisor extra code routines. From a table in subsidiary store, the logical tape number 288 / Computers - Key to Total Systems Control used in a program is converted to the actual mechanism number, and the tape "order" is entered to a queue of such orders, in subsidiary store, awaiting execution. A tape order may consist of the transfer of several blocks and any store blocks involved are "locked out" to prevent subsequent use before completion of the transfers; if any block is already involved in a transfer, the program initiating the request is halted. Similarly, the program is halted if the queue of tape instructions is already full. If the channels to which the deck can be connected are already occupied in a transfer or positioning, the tape supervisor returns control to the object program, which is then free to proceed. A program may thus request a number of tape transfers without be i n g halted, allowing virtually the maximum possible over lap between the central computer and the tape mechanisms during execution 0 f a program. Should a channel be available at the time a tape order is entered to the queue, the order is initiated at once by writing appropriate digits to __ ~~~_V -store, and by writing reserved tape transfer block numbers to the appropriate page address registers if the order involves a read or write transfer. The tape supervisor then returns control to the object program or supervisor routine. One composite queue of tape orders is used for orders relating to all tape mechanisms and orders are extracted from the queue by S.E.R. 's entered from the block address interrupt routine. On reading the penultimate block address involved in an operation (for example, the last leading block address in a forward transfer) the next operation for the channel is located, and if it involves the same mechanism as the current order, and tape motion in the same direction, the operation is "prepared" by calling any store block involved to core store. On reading the final block address and successfully concluding checks, the block address interrupt routine initiates the next operation immediately if one has been prepared, thus avoiding stopping the tape if possible. If no operation has been prepared, the interrupt routine stops the tape by setting a digit in the V - store, and a further "block address interruption" occurs when the tape is stopped and the channel can accept further orders. This interruption enters an S.E .R. which extracts the next order for the channel from the tape queue, and the cycle of events is repeated until no further order for this channel remains. As each transfer is concluded, any object program halted through reference to the store block is made free to proceed. An exception to the above process is when a long movement (over 200 blocks) or a rewind is required. In this case, the movement is carried out at fast speed, with block address interruptions inhibited, and the channel may meanwhile be used to control another tape mechanism. The long movement is terminated by checking the elapsed time and at the appropriate moment, entering the tape supervisor from the timed interrupt routine. The mechanism is then brought back "on channel" and the speed is returned to normal. When reading of block addresses is correctly resumed, the search is continued in the normal manner. The Title Block The first block on each magnetic tape is reserved for use by the supervisor, and access to information in this block by an object program is through special instructions only. This block contains the title of the tape, or an indication that the tape is free. When magnetic tapes are required by the supervisor or by an object program, the supervisor prints instructions to the operator to load the named tape and to engage the mechanism on which it is loaded. The engage button of each mechanism (see section 5) is attached to a digit in the V - store, and these digits are scanned by the supervisor everyone second. When a change to "engaged" status has been detected, the tape supervisor is entered to read the first block from the tape. The title is then checked against the expected title. In this way, the presence of the correct tape is verified, and furthermore the tape bearing the title becomes associated with a particular mechanism. Since the programmer assigns a logical tape number to the tape bearing a given title, this logical tape number used in extracode instructions can be converted by the supervisor to the actual mechanism number. Other supervisory information is included in the first block on each tape, including a system tape number and the number of blocks on the tape. Special supervisory routines allow Atlas to read tapes produced on the Ferranti Orion computer, which used the same tape mechanisms but can write blocks of varying lengths on the tape. These tapes are distinguished on Atlas by a marker written in the title block. The Atlas Supervisor / 289 Magnetic Tape Failures All failures detected by the interrupt routines cause the block address interrupt routine to stop the tape at the end of the current block when possible, and then to enter tape monitor supervisory routines; if the tape cannot be stopped, it is disengaged and the tape monitor routines entered. These routines are S.E.R. 's designed to minimize the immediate effect on the central computer of isolated errors in the tape system, to inform maintenance engineers of any faults, and to diagnose as far as possible the source of a failure. As an example of the actions taken by monitor routines, suppose a check sum failure has been detected while reading a block from tape to core store. The tape monitor routines make up to two further attempts to read the block; if either succeeds, the normal tape supervisor is re-entered after informing the engineers. Repeated failure may be caused by the tape or the tape mechanism; to distinguish these, the tape is rewound and an attempt is made to read the first block. If this is successful, a tape error is indicated, and an attempt is made to read the suspect block with reduced bias level. Failure causes the mechanism to be disengaged and the program using the tape to be suspended. If the "recover read" is successful, the tape is copied to a free tape and th~ operators instructed to readdress the faulty tape, omitting the particular block which failed. If on rewinding the tape, the first block cannot be read successfully, failure in the tape mechanism is suspected and the operator is instructed to remount the tape on another mechanism. Other faults are monitored in a similar manner, and throughout, the operator and engineers are informed of any detected faults. Provision is made for the program using the tape to "trap" persistent tape errors and thereby to take action suitable to the particular problem, which may be more straight-forward and e f f i c i e n t than the standard supervisory action. Addressing of new tapes and re-addressing of faulty tapes are carried out on the computer by supervisory routines called in by the operator. A tape mechanism is switched to "addressing mode", which prohibits transfers to and from the core store, permits writing from the computer to the reference tracks and to the block addresses on tape, and activates a timing mechanism to space the block addresses. When a new tape is addressed, addresses are written sequentially along the tape and the area between leading and trailing block addresses is checked by writing ones to all digit positions and detecting failures on reading back. Any block causing failure is erased and the tape spaced suitably. On completion, a special block address is written to indicate "end of tape" and the entire tape is then checked by reading backwards. Any failures cause entry to the re-addressing routine. Finally, the tape mechanism is returned to "normal" mode, a little block is written containing the number of blocks on tape, a tape number, and the title "Free", and the tape is made available for use. A tape containing faulty blocks is re-addressed, omitting such blocks, by entry to the re-addressing routine with a list of faulty block~; the faulty blocks are erased and the remaining blocks are re-labelled sequentially, the tape being checked as when addressing a new tape. 5. PERIPHERAL EQUIPMENT Peripheral Interruptions As mentioned in the Introduction, a large number and variety of peripheral equipments may be attached to Atlas. However, the amount of electronics associated with each equipment is kept to a minimum, and use is made of the high computing speed and interruption facilities of Atlas to provide control of these equipments and large scale buffering. Thus the paper tape readers, which operate at 300 characters per second, set an interrupt flip-flop whenever a new character appears. (Characters maybe either 5 or 7bitsdepending on which of two alternative widths of tape is being read.) Similarly the paper tape punches, and the teleprinters which print information for the computer operators, cause an interruption whenever they are ready to receive a new character; these equipments operate at 110 and 10 characters per second respectively. The card readers read 600 cards per minute, column by column, and interrupt the computer for every column. The card punches at 100 cards per minute, punch by rows and interrupt for each row. The printers, which have 120 print wheels bearing 50 different characters, cause an 290 / Computers - Key to Total Systems Control interruption as each character approaches the printing position so that the computer may prime the hammers for those wheels where this character is to be printed. There are therefore 50 interruptions per revolution, or one every 1-1/2 millisecs. All the information received from, or sent to, these peripheral equipments does so via particular digit positions in the V-store. For example, there are 7 such bits for each tape reader, and 120 for each printer, together with a few more bits for control signals. The majority of interruptions can be dealt with simply by the interrupt routine for the particular type of equipment. Thus the paper tape reader interrupt routine normally has merely to refer to a table of characters to apply code conversion andparity checks, and to detect terminating characters and if all is well to store the new character in the next position in the store. The interrupt routines for the printers and card punches are not expected to do the conversion from character coding to row binary; this is done by an S.E.R. before the card or line of print is commenced. The card routines are however complicated by the check reading stations; punching is checked one card cycle afterwards, and reading is checked 3 columns later. The interrupt routines apply these checks, and in the event of failure a monitor S.E .R. is entered. The printer interrupt routine counts its interruptions to identify the character currently being printed; a check is provided once each revolution when a datum mark on the printer shaft causes a signal bit to appear in the V-store. This counting is maintained during the paper feed between lines, which occupies several milliseconds. Attention by Operators Whenever equipment needs attention it is "disengaged" from the computer. In this state, which is indicated by a light on the equipment and a corresponding bit in the Vstore, it automatically stops and cannot be started by the computer. The operator may engage or disengage an equipment by means of two buttons so labelled. The equipment may also be disengaged by the computer by writing to the appropriate V -store bit, but the computer cannot engage it. The "engage" and "disengage" buttons do not themselves cause interruptions of the central computer. Instead, the "engaged" bits in the V - store are examined every second (this routine is activated by the clock interruption) and any change activates the appropriate S.E .R. Disengaging a device does not inhibit its interruptions, so that if the operator disengages a card machine in midcycle to replenish the magazine or to empty the stacker, the cycle is completed correctly. There are also other special controls for particular equipments, e.g., a run-out key on card machines, and a 5/7-hole tape width selector switch on punched tape readers. Most devices have detectors that indicate when cards or paper are exhausted or running low. These correspond to bits in the V - store that are read by the appropriate S.E .R. The paper tape readers however have no such detector, and the unlikely event of a punched tape passing completely through a reader (due to the absence of terminating characters) appears to the computer merely as' a failure to encounter a further character within the normal time interval. This condition is detected by the one-second routine. Store Organization of Input and Output Information In general, input information is converted to a standard 6- bit internal character code by the interrupt routine concerned, and placed in the store 8 characters to a word. (An exception to this occurs in the case of card readers when they are reading cards not punched in a standard code, in which case the 12 bits from one column are simply copied into the store and occupy two character positions. A similar case is 7 - hole punched tape, when this is used to convey 7 information bits without a parity check. Such information is distinguished by warning characters, both on the input medium and in the store.) A certain amount of supervisor working space in the core store is set aside to receive this information from the interrupt routines, and is subdivided between the various input peripherals. The amount of this space depends on the number and type of peripherals attached; the first two Atlases will normally use one block (512 words). This block will be locked down in a page of the core store whenever any input peripheral is operating (i.e., most of the time). The Atlas Supervisor / 291 As each input equipment fills its share of this block, the information is copied by an S.E .R. into another block devoted exclusively to that equipment. These copying operations are sufficiently rare that the latter block need not remain in core store in the meantime; in fact it is subject to the same treatment as object programs by the drum transfer routine, and may well be put onto a drum and brought back again for the next copying operation. Thus only one page of core store is used full time during input operations, but nevertheless each input stream finds its way into a separate set of blocks in the store. The page that is shared between input peripherals is subdivided in such a way as to minimize the number of occasions on which information must be copied to other blocks; it turns out that the space for each equipment needs to be roughly proportional to the square root of its information rate. Similar ly, information intended for output is placed in a common output page, subdivided for the various output devices, and is taken from there by the interrupt routines as required. The interrupt routines for teleprinters and tape punches do the necessary conversion from the internal character code used by the device. As soon as the information for a particular device is exhausted, an S. E.R. is activated to copy fresh information into the common output page. Again, the page is subdivided roughly in proportion to the square roots of the information rates. For card punches and printers, whose interrupt routines require their information arranged in rows of bits, a further stage of translation is necessary. In these cases, on completing a card or line, internal 6-bit characters are converted by an S.E.R. into a card or line image also in the output block. In fact, the desirable amount of working space for output buffering somewhat exceeds one block, and the spare capacity of the subsidiary store will be utilized to augment it. 6. THE OPERATING SYSTEM The following is a synopsis of work explained in detail in a paper the Computer Journal. The fast computing speed of Atlas and the use of multiple input and o~tput peripheral equipments enable the computer to handle a large quantity and variety of problems. These will range from small jobs for which there is no data outside the program itself, to large jobs requiring several batches of data, possibly arriving on different media. Other input items may consist of amendments to programs, or requests to execute programs already supplied. Several such items may be submitted together on one deck of cards or length of punched tape. All must be properly identified for the computer. To systematize this identification task, the concept of a "document" has been introduced. A document is a self-contained section of input information, presented to the computer consecutively through one input channel. Each document carries suitable identifying information (see below) and the supervisor keeps in the main store a list of the documents as they are accepted into the store by the input routines, and a list of jobs for which further documents are awaited. A jobmay require several documents, and only when all these have been supplied can execution begin. The supervisor therefore checks the appearance of documents for each job; when they are complete the job scheduling routine is notified (see below) Normally, the main core and drum store of the computer is unlikely to suffice to hold -all the documents that are waiting to be used. The blocks of input information are therefore copied, as they are received, onto a magnetic tape belonging to the supervisor, called the "system input tape." Hence, if it becomes necessary for the supervisor to erase thell) from the main store, they can be recovered from the system input tape when the job is ready for execution. The system input tape thus acts as a large scale buffer, and indeed it plays a similar part to that of the system input tape in more conventional systems. The differences here are that the tape is prepared by the computer itself instead of by off-line equipment, and that there is no tape-handling of manual supervision required after the input of the original documents - an important point in a system designed to handle many miscellaneous jobs. This complete bufferage system for input documents is called the "input well." Documents awaiting further documents before they can be used are said to be in "input well A"; complete sets of documents for jobs from "input well B." Usually documents being 292 / Computers - Key to Total Systems Control accepted into input well B must be readfrom the system input tape back into the main store so that they are ready for execution; often however they will already be in input well A in the main store, so that only an adjustment of the block directory is required. One result of this arrangement is that the same tape is being used both to write input blocks, in a consecutive sequence, and to read back previously written blocks to recover particular documents as they are required. The tape will therefore make frequent scans over a few feet of tape, although it will gradually progress forwards. The lengths of these scans are related to the main store space occupied byinput well A. For example, so long as the scans do not exceed about 80 feet (130 blocks) the waiting time for writing fresh blocks will remain less than the time for input of three blocks from a card reader, so that comparatively little main store space need be occupied by input well A. To ensure that scans are kept down to a reasonable limit, any documents left on the system input tape for so long that they are approaching the limit of the scannable area are copied to the system dump tape (see below). If the number of these becomes large, the computer operators are warned to reduce the supply of documents through the input peripherals. Output The central computer cari produce output at a much greater rate than the peripheral equipments can receive it, and an "output well" is used in a manner analogous to the input well. This well uses a "system output tape" to provide bulk buffering. Output for all output peripherals is put onto the same tape, arranged in sections that are subdivided so that the contents of a section will occupy all currently operating peripherals for the same length of time. Thus if, for example, a burst of output is generated for a particular peripheral, it is spaced out on the system output tape, leaving spare blocks to be filled in later with output for other peripherals (this is possible because Atlas uses pre-addressed tape). In this way, the recovery of information from the tape into "output well B" as required by the various peripherals merely involves reading complete sections from the tape. Again, there is a limit to the amount of information that can usefully be buffered on the output tape, due to the time required to scan back and forth between writing and reading regions, and this limit depends on the space available in the main store for output well B. An S.E.R. keeps a check on the amount of information remaining in output well B for each equipment, and relates this to the present scan distance to decide when to start to move the tape back for the next reading operation. If the amount of output being generated by object programs becomes too great some of it is put instead on the dump tape (see blow) or a program is suspended. The System Dump Tape The system input and output tapes operate essentially as extensions of the main store of the computer. Broadly speaking, documents are fed into the computer, programs are executed, and output is produced. The fact that the input and output usually spends some time on magnetic tape is, in a sense, incidental. This input and output buffering is, however, a continuous and specialized requirement, so that a particular way of using these tapes has been developed and special S.E.R. fS have been written to control them. When demands on storage exceed the capac ity of the main store and input and output tape s, a separate magnetic tape, the system dump tape, is used to hold information not required immediately. This tape may be called into use for a variety of reasons. Executionof a problem maybe suspended and the problem recorded temporarily on the dump tape if other problems are required to fill the output well, or alternatively if its own output cannot be accommodated in the output well. Also, as already described, the input and output wells can "overflow" to the system dump tape. This tape is not used in a systematic manner, but is used to deal with emergencies. However, the system is such that, if necessary, the system input and output tapes can be dispensed with, thereby reducing the input and output wells and increasing the load on the system dump tape. In an extreme case, the system dump tape itself can be dispensed with, implying a further reduction in the efficiency of the system. Headings and Titles Every input document is preceded by its identifying information, mentioned above. The Atlas Supervisor / 293 This consists of two lines of printing, forming the heading and the title respectively. The heading indicates which type of document follows. The most common headings are COMPILER followed by the name of a program language, which means that the document is a program in the stated language; DATA which means that the document is data required by an object program; and JOB which means that the document is a request for the computer to execute a job, and gives some relevant facts about it. The last type of document is called a "job description." It gives, for example, a list of all other documents required for the job, a list of output streams produced, any magnetic tapes required and upper limits to the storage space and computingtime required. Many of these details are optional; for example if storage space and computing time are not quoted a standard allowance will be made. For example, if a program operates on two data documents which it refers to as data 1 and data 2, the job description would contain: INPUT 1 followed by the title of data 1 2 followed by the title of data 2 The program would appear in this list as data O. Alternatively, a job description may be combined with a program, forming one composite document, and this will usually happen with small jobs. Each output stream may be aSSigned to a particular peripheral or type of peripheral, or may be allowed to appear on any output equipment. The amount of output in each stream may also be speCified. For example, a job description may include: OUTPUT 1 LINE PRINTER 20 BLOCKS 2 CARDS 3 ANY Each magnetic tape used by a program is identified by a number within the program, and the job description contains a list of these numbers with the title that appears in block 0 of each tape to identify it; for example: TAPE 1 POTENTIAL FIELD CYLIND/204TPU5. If a new tape is required, a free tape must be loaded, which the program may then adopt and give a new title. This is indicated thus: TAPE FREE 2 MONTE CAR LO RESULTS K49REAC-OR4. The loading _of tapes by operators is requested by the supervisor acting on the information in job descriptions. Finally, the end of a document is indicated by *** and if this is also the end of the punched tape or deck of cards it is followed by the letter z. On reading this the computer disengages the equipment. Logging and Charging for Machine Time As problems are completed, various items of information on the performance of the computing system are accumulated by the supervisor. Items such as the number of program changes and the number of drum transfer s are accumulated and also, for each job, the number of instructions obeyed, the time spent on input and output, and the use made of magnetic tapes. These items are printed in batches to provide the operators with a record of computer performance, and they are also needed for asseSSing machine charges. The method of calculating charges may well vary between different installations, but one desirable feature of any method is that the charge for running a program should not vary Significantly ~rom one run to another. One difficulty is that the number of drum transfer s required in a program may vary considerably with the amount of core store which is being used at the same time for magnetic tape and peripheral transfers. One method of calculating the charge so as not to reflect this variation is to make no charge for drum transfers, but to base the charge for computing time onthe number of instructions obeyed in a program. ThiS, however, gives no incentive to a programmer to arrange a program so as to reduce its drum transfers, and more elaborate schemes may eventually be devised. The charge for using 294 / Computers - Key to Total Systems Control peripherals for input and output can be calculated from the amount of input and output. For magnetic tapes, the charge can be based on the length of time for which the tape mechanism is engaged, allowance being made for the time when the program is free to proceed but is held up by a program of higher priority. All this information is made available to the S.E.R. responsible for the costing of jobs. for example, priority may be given to a particular job, or a peripheral equipment may be removed from general use and allocated a particular task. An "isolated" operating station may, for example, be established by reserving a particular output equipment for use by problems loaded on a particular input equipment. Methods of Using the Operating System The Atlas supervisor program is perhaps the most advanced example so far encountered of a program involving many parallel activities, all closely interconnected. Although a great deal of it has already been coded at the time of writing, there are still a few details to be thrashed out, and no doubt many changes will have to be made to suit conditions existing at various installations. The overall structure of the program is therefore of prime importance: only if this structure is adequate, sound and systematic will it be possible to complete the coding satisfactorily and to make the necessary changes as they a:rise. The structure described in this paper, involving interrupt routines and "supervisory extra code routines" controlled by a coordinating routine, has proved eminently satisfactory as a basis for every supervisory task that has so far been envisaged, and it is expected that all variations that might be called for will fit into this structure. There is no doubt that its success as a supervisory scheme for a very fast computer is due largely to certain features of the Atlas hardware, in particular the provisions for protecting programs from interference, and the page address registers. The way in which the latter permit information to be moved around at run time without the need to recompile programs gives the supervisor an entirely new degree of freedom. The possible uses of this facility have turned out to be so extensive that the task of utilizing such a large' computer effectively without it seems by comparison to be almost impOSSible. The normal method of operating the computer is for documents to be loaded on any peripheral equipment in any order, although usually related documents will be loaded around the same time. The titles and job descriptions enable the supervisor program to assemble and execute complete programs, and the output is distributed on all the available peripherals. Usually programs are compiled and executed in the same order as the input is completed, but the supervisor may vary this depending on the load on different parts of the system. For example, a problem requiring magnetic tape mechanisms which are already in use may be by-passed in favour of a problem using an idle output peripheral; a problem which computes for a long time may be temporarily suspended in order to increase the load on the output peripherals. By these and similar methods, the S.E.R. responsible for scheduling attempts to maintain the fullest possible activity of the output peripherals, the magnetic tape mechanisms and the central computer. Documents may also be supplied to the computer from magnetic tapes; these tapes may be either previous system input tapes or library tapes or tapes on which "standard", frequently used, programs are stored. Such documents are regarded as forming part of Input Well B and are read into main store when required. An alternative method of operating may be to use the computer to copy documents to a "private" magnetic tape, rather than to use the system input tape, and at a later time to supply the computer with a succession of jobs from this tape. Similarly, output may be accumulated on a private magnetic tape and later passed through the computer to one or more peripheral equipments. Routines forming part of the supervisor are available to carry out such standard tlcopying operations. Provision is also made for the chief operator to modify the system in various ways; 7. Conclusion Acknow ledgments The work described in this paper forms part of the Atlas project by a joint team of Manchester University and Ferranti Ltd., whose permission to publish is acknowledged. The authors wish to express their appreciation of the assistance given by the other members of the Atlas team. A SYNTAX DIRECTED GENERATOR* Stephen Warshall Computer Associates, Inc. Woburn, Massachusetts I. Introduction source language and target machine in question. These researches have met with great success with respect to the first phase of translation: the syntactic analysis of input strings. However, the second phase-the synthesis of target-language statementshas proved more difficult to generalize. This is, of course, not at all surprising. The algebraic languages so far considered are all nice, well-behaved, formal languages for which "destruction rules" can readily be deduced from their c us tom a r y description (which is usually given in production rules, "Backus normal form" [21, or some equally straight-forward for m a lis m). Thus, one may easily construct a simple languageindependent algorithm which uses syntaxdescriptive tables f~r a particular language to effect analysis of strings in that language. The sorts of information to be found in the tables (priority of operators, scopes, and the like, or rules for syntactic type formatioil) are readily derivable from the language description, and the proceSSing algorithm itself may be rather small. Extremely elegant programs of this kind have already been constructed [3]. On the other hand, digital computers seem to have been plannedwith positive malevolence from the viewpoint of translator design. The formal implications of the order vocabulary of a machine are highly particular and almost defy uniform treatment. Each machine has a plethora of specialpurpose registers and special-purpose orders The recent proliferation of algebraic translators or "compilers"-programs which translate from an algebraic language (like ALGOL, IT, or Lo) to the hardware language of a digital computer-has stimulated a good deal of work on techniques of reducing the construction cost of such programs.' There have been several essentially different approaches to this problem, notably: 1. The development of a common intermediate language (UNCaL for UniversalComputer-Oriented Language [1]); for each algebraic language there would be written a translator from that language to UNCOL and for each new machine there would be written a translator from UNCOL to the language of that machine. 2. The development of general-purpose translators which accept descriptions of the particular languages between which translation is to be effected. Such programs have been called "syntax-directed" compilers, because the general algorithm is driven by what are in essence tables of syntax. It is our feeling that the second approach is a superior one and the sequel describes work performed from that point of view. Many investigators in the field have devoted considerable effort to identifying and separating out the essential functions of algebraic translation from the idiosyncratic special functions suggested by the particular >! FILE N ME DLLljLjY\ BY:~ PREPARED \V\EjHj.\D\I\,,\p\A\TlcjH\ 0 IL\~GI ! I II 151 ') FILE REFERENCE I ~5 29 28 FIELDS! RECORD CH.\R" f RECOR:) II \7 38 CI-'r'RACTERS PER FILE \'\7 \ \1 4' 39 \ II \' 44 \.\5\'5' FILE GRO· \ \ i \1 151 r o 51 ~·'MPLE --H T FILE F LI I 110 01 NI EI 5359 G 57 DEFINITION OF RECORD ILl I IN lEI .1 lEI N\ TI pi \' CARD I 71 FILE SEct ENCE5 CARD 2 FORM NUMBER ~ F 4 4 I TYP INS. SFLI ST FILE CONTENTS FOR AND u~ E S OF V EH Ilc L E ~+O-+-NH-A+-+S+P-+-IE,_CI-I+-F+-I+C_+-+----i[)_AHY I ___~~r+~~~r+~~~++~~rb~_--~- ~~~~~tlJJ-LLL~~~~~~-LLL .1:[~-!HIIIIIIIIII!IInID.""""lmrn.111111 Figure 1. File Layout. CARD" 312 / Computers - Key to Total Systems Control Since a line entry is manually posted to the log each time a request is made, this appears to be a reasonable definition. With all related items being recorded in a logically consistent manner, it is then possible (in the systems design phase) to consider a record as a smaller or larger increment of the dispatch log. File growth is 150 records per day (Col. 51-58). The life of the file is one day (Col. 59-60), since a new dispatch log is started every 24 hours. Card 2 is used to record basic qualitative information relative to the file. Card 3 is used to describe the contents of the file. The type of instrument (Col. 14-15) refers to the instrument conveying the data to the file and was indicated by a two-digit code as follows: MF Manual Form PC Punched Card SF Standard Form TC Telephone Call TT Teletype Message RM Radio Message VE Verbal PG Process Generated CK Common Knowledge Process (Figure 2) Card 4 is used to record a brief description of each logical step of data processing as it occurs in the application. Columns 6-8 are used to record the flow chart step number (taken from the original informal flow chart). The ten steps associated with the handling of a request for transportation by the dispatcher are shown in this illustration. Branching (Col. 9-11 and Col. 12-14) indicates appropriate flow chart steps (within the application) to reflect procedural decisions affecting the basic application flow. Col. 79 (No.) is used to number consecutively these cards within a given flow chart step. In addition to recordingeachprocess step, these cards also are used to identify the application, organizational element involved, appropriate regulations, non-machine data processing hours expended, and the typical grade level of persons doing the data processing. Input/Output Transactions (Figure 3) Card 5 is used to record inputs to and outputs from the application. In addition, PROCESS DATE:~ APPLICATION NUMBER. 5 BRANCH TO YE N 0 0 A P PL IC AT ION 6 8 0 0 x x X T H o 0 0 o o 0 0 o 0 I MA N U AL o P E R AT I TY PI 0 0 OP E R A T I PN 7 7 XX XX CAL D P A F M I 2 AV G 0 I 0 DI 5P AT CH E R R E CE IV E 5 TE LE P H ONE 2 0 D E T E RM IN E 5 R E Q U I R E D TI ME E N TE R 5 0 5 0 o 6 oD 5 0 o 6 o 6 0 o7 o8 NE5 5 E L E CT5 o 0 7 0 o8 AND OM EN TA L L Y R E QU E 5 T F R OM LOG A5 5 I G N 5 I F V E HI DE T E RM IN E 5 IF ON V E HI C L E AN 5T A F F D A I L Y AND NO N- MA CH DR Iv D P HO U R 5 4 , 5 0 TR AN 5P OR TA TI ON FOR TY PE E HI C L E CAN U 5 E 2 3 AND OF VE HI C L E I V E HI C L E D I 5 P AT CH I LOG I R E QU I R EM EN T5 ME E T IV E R o T RA N 5 FER UN CO MM I T TED TO CAN 5T E P ME E T o I 9 0 I 5 P EC IF IC 5E L E C T5 AND A5 51 GN5 U N CO MM I T TED 0 5 E LE CT5 iA A 5 51 5 9 0 CO N F I R M5 I o E N TER 0 ' - ' - ' - ' - ...... rTTTTT1 I - N D VE H I CLE V E H I C L E G N 5 A5 51 V H C L E U B5 TI T U T'E VE H I C L G N ME NT R E Q U E 5 TOR A5 51 G N ME NT ON TO DA I L Y DR V R o T R A N5 FER AND E AND DR I TE L E P H ONE B Y D I 5 P AT CH VER ~ '- -'-'--'--"'-'- '-I--L-I-- ..... ITTTT 15 Figure 2. o 9 0 I I I -- ~..- n-r--r-r-,. 9 - (( 112 - 14 TO I LOG 1--_1--1--1--'-- '- I 2 0 8 I N I 8 5 G T R E Q U E5T C L E PO OL R E Q U I R EM EN T o 16 - OF D E TA I L 5 E T E R MI MO TOR 5Q UA DR ON 6 4 - 5 E R V ICE OF 0 BA 5 E OF MO NT HLY 0 GR AD E o o o o o ON TR AN 5 P OR TA TI ON AFR 3 0 N PROCE55 DE5CRIPTION o o 4 H.W.G. PAGE ~OF_4_ 16181010111 I FoC. 5TEP PREPARED BY: CARD 4 - niT 78 Process, Card 4. 79 An Automated Technique for Conducting a Total System Study / 313 Column 9 (input-output code) was used to show whether the data refers to an input or output and whether an original or a copy: (1) output - original, (2) output - copy, (3) input - original, and (4) input - copy. A separate line entry was used on the form for each. A name was given to each input and output. In some cases this name was the document name if the entire document was used. In other cases only certain fields of data were used and this was stated. If the document had an official number it was so identified (Col. 34-41). internal inputs and outputs in the sense of data entering or leaving a file are recorded. In this illustration (in step 010) a request for a vehicle is shown being received. Such a request cannot be associated with a specific organizational element (in the sense that 680 was associated with the base motor pool), since it may come from anyone. For such cases the code 999 with suffix XX (Col. 50-54) was used. Step 090 illustrates an output in the form of the dispatcher verbally (Col. 42-43) notifying the requestor of the vehicle assignment. Steps 030, 040, 050, 070, 080, and 100 illustrate operations upon files. In step 030 a request for vehicle causes file T 6800 (described earlier) to be updated (Col. 72-74). In step 040, information regarding the availability of the specific type of vehicle required is extracted from the same file. Volume s associated with each of these operations are recorded and the number of fields associated with each input and output are divided into identifier and dynamic groupings. Identifier fields are those which identify the input or output record while dynamiC fields make up the remainder of the record. The utility of this grouping will be shown later. The functions of inputs and outputs relative to files (Col. 72-74) were coded as follows: UPD - Update INT - Initiate EXT - Extract C LO - Close COM - Compare Input/Output Fields (Figure 4) Card 6 was used to list each field name, the number of characters within a field, and the flow chart steps in which that field was used as an input or output. In addition, fields were segregated into two classes: identifier and dynamic (Col. 37). Also recorded was whether the field was numeric or alphanumeric in nature (Col. 38). Column 39 was used to indicate those. cases in which the information was process generated. An example would be Total Hour s (which had been accumulated manually). The data recorded, was the data actually used in each process step, as opposed to all data following past that step. By the time formal documentation had been completed the study team was sufficiently INPUT- OUTPUT TRANSACTIONS DATE:~ PREPARED BY:~ CARD 5 APPLICATION NUMBER: [iliIiliE] PAGE....!.-OF2.... I - 5 t F.C. STEP C o o I 3 o o 04 0 FORM NUMBER OF MEDIUM INPUT OUTPUT IDENTITY 3 R E Q U EST FOR V E HI 3 R E QU EST FOR V E HI CLE I I' Y P E OF V E H I CLE CL E R E QUI 05 o I 5 E LE CT E'D V E HI CL E & o o I S E L E CT ED VE H I C L E &0 o8 o o 9 o I 0 o I 5 E L E CT ED V E HI CLE & 7 I V E H Ilc L E AS S I G N ME NT 3 V E HI C L E AS 51 G N ME NT R E DA F4 4 I 0 RI V E RA F 4 4 I TYP SEQUENCE INS ORIGIN/ DESTIN. APPL. NO. NO. FIELDS VOLUME NO. TRANS ~r!dtA- ~IDENT FILE CODE V E RA NO OM 9 9 9 X X I 5 00 N 2 V E R A NO ol~ I 5 00 N 2 5 U PO T 6 8 00 SF FO RM AT I 5 00 N 0 3 E X T 1 16 8 0 0 5 5 F FO RM AT I 3 00 N 2 5 0 N 2 2 EX TT 6 8 0 5 0 N I 2 E XT T 6 8 0 0 2 E XT T 6 8 0 0 I R I V E RN ONE MF FO RM AT 0 R I V E RA F 4 4 I SF FO R~ AT VE FO RM AT 9 9 9 X X I 5 00 N 7 0 A F 4 4 I 5 F FO R~ AT I 5 00 N 3 3 U PO T 6 8 0 0 I I---I--I.--~I.--"" ~- FUNC. DYN. L.--- ---'-'-'-'- .... _1.-- .... -75 - 79 Figure 3. Input/Output Transactions, Card 5. 314/ Computers - Key to Total Systems Control INPUT-OUTPUT FIELDS DATE:~ APPLICATION NUMBER: PAGE _1_ OF 2.... 16181010111 I - 5 ~~ ~ C~R FIELD NAME NA 1M E G R ADE OF V E HI CLE OF N U MB E R IN TE NO E 0 o USE E S T I N AT ION IA o 0 4 0 I 0 03 o 0 9 0 I 0 o I I OA o 2 o 0 I o 0 3 0 OF R E Q U ES TOR OA o 0 7 0 I 0 o 3 0 OF V E HI o o 0 I CL E VE HI CLE OF FC FC FC STEP STEP STEP o I 5 0 I 0 o 3 o 0 9 0 I 0 o I RE Q U ES TO R AD OR E S S FC STEP STEP IA R E Q U ES TOR V E HI CLE R E PO R T IN G PH ONE PREPARED BY ~ CARD 6 A OA 0'1 I I FC STEP S~~P s~~P s~~P s~~P s'T~P str~P s!f~P I 0 I 2 0 2 0 o I o I 2 o I 3 01 5 0 o I o 0 3 0 o 4 o I 5 0 o 0 I 0 03 o 0 4 0 I 5 0 TY P E OF V E HI C L E DA o 0 8 0 I 0 o 3 o 0 4 0 I I TY P E OF V E HI IA o 0 8 0 9 0 2 6 o 2 7 0 2 9 03 o 0 3 I o 3 2 0 3 5 02 3 0 3 6 0 CL E o I 5 0 2 2 0 V E HI ~ L E A 0 MI N I S T R A TI ON N U MB ER OA o 0 4 0 5 0 o 7 o 0 8 0 V E HI C L E A 0 MI N I ST RA TI ON N U MB E R IA o 0 4 2 5 0 4 0 0 V E HI C L E R E GI 5 T R A TI ON NU fIIB E R IA o 0 8 0 9 0 I V E HI C L E R E GI S T RA TI ON NU MB E R o A o 0 8 0 5 0 o 7 o 0 8 0 P ER AT OR I A o I 5 0 5 0 o 7 o 0 80 o 9 o I 3 0 I 5 o 3 7 0 OP ER AT OR IA o 0 4 0 5 0 07 OA o I 5 I OA o 0 4 3 7 0 3 8 0 I~ o 0 7 0 9 0 NA ME GR AOE NA ME V E HI C L E o V E HI CLE V E H I C L E G R A 0 E V E H I C L E PH ONE NU MB E R 9 - OP E R A 1 OR OP ER AT OR iO F R E QU ES TOR 3 3f 3940 36 Figure 4. 42 6 o 0 I 8 o 0 I I 01 2 0 I 5 o I 7 0 2 6 0 o 0 8" o 9 o I 3 0 I 5 o 3 7 0 3 8 0 2 0 I 4 0 I 0 I 6- 8 6 8 6- 8 6- 8 6 8 6- 8 6 8 6- 8 6- 8 6- 8 6- 8 6- 8 Input/Output Fields, Card 6. knowledgeable regarding today's system that many Short-range improvements became obvious, and appropriate recommendations were made. ANALYSIS OF EXISTING SYSTEMS (PHASE 2) Having all information regarding the current system on punched cards, a wide selection of analyses was possible. The basic analysis is made from the sequential listing of process steps as inflow charts. By simply merging the process cards (No.4) and input/ output transaction cards (No.5) on flow chart step number, a flow chart may be prepared by the IBM 407 Accounting Machine. The flow chart prepared for the first part of the motor pool operation is shown in Figure 5. The listing prepared by the 407 is completely satisfactory for use in a systems analysis. To make the listing look more like a conventional flow chart (to facilitate ~ommunication), a plastic template was used to draw file boxes and input-output arrows. One example will be given to illustrate the type of analyses which it is possible t~ prepare from the punched cards. In planning an integrated system one of the most important requirements is to obtain a clear picture of the data traffic flow in and out of applications and between applications. Consider the input-output fields (No.6) cards. For each distinct field a card was punched to correspond to each flow chart step in which that field was used. These cards were then sorted by flow chart step number and merged with the input-output transaction (No.5) cards by flow chart step number. A listing of the resulting card deck gives a clear picture of the traffic flow related to the application being conSidered. A listing of the flow associated with steps 010 and 090 in the motor pool application is shown in Figure 6. To save space the flow associated with traffic internal to the application has been omitted from this An Automated Technique for Conducting a Total System Study /315 • • • • • • • • • • • • • • • • • • • • • • • .• FC BR BR STP YES NO PROCESS DATA FROM OUTPUT INPUT DATA TO PEAK L TF NO TRAN 'APPLICATION 68001 OPERATION OF BASE MOTOR POOL XXXTH TRANSPORTATION SQUADRON AFR 11-12 . AFt-' 64-8 MANUAL Opt~AT ION XXXX AVG MONTHLY NON-MACH DP HOURS TYPICAL DP GRADE STAFF SGT DISPATCHER RECEIVFS TELFPHONE REQUEST FOR TRANSPORTATION 010 1500 999XX (REQUEST FOR VEHICLF) 020 DETERMINES REQUIRED TIME OF SERVICE AND TYPE OF VEHICLE 030 ENTERS DETAILS OF REQUEST ON DAILY VEHICLE DISPATCH LOG (REQUFST FOR 040 n~o IF VFHICLE 1500 IN USF CAN MEET RI;QUIREMENTS ~TYP~ 1500 OF VEHICLE REQUIRED) SFLFCTS AND ASSIGNS VFHI("LF AND D~IVFR.TRANSFFR TO STEP 090 0';0 060 010 • VEHICLF~ DETERMINES FROM LOG 060 ~SELFCTED nao 1300 VEHICLE &DRIVER) SELECTS AND ASS IGNS UNCOMMITTED VHCLE AND DRVR. TRANSF!'R TO 090 ~SELECTEO VEHICLE &DRIVER) 150 VEHICLE SORIVER) 50 SFLECTS AND ASSIGNS SUaST I TUTE VFHICLE AND DR IVER 080 ~SELECTED CONFIRMS VFHICLF ASSIGNMFNT TO RFQUFSTOR RY TFLFPHONF 090 (VEHICLE ASS IGNMENT) 999XX 1500 ENTERS VEHICLE ASSIGNMENT ON DAILY DISPATCH LOG 100 (VFHICLE ASSIGNMFNT~ 1500 ~ • • • • • • • MENTALLY DETERMINES IF AN UNCOMMITTED VEHICLE CAN MEFT SPECIFIC REQUIREMENT 010 • • • • • • • • • • • • • • • •- Figure 5. Base Motor Pool Flow Chart. • • • • • '. • • • • • IIPPL "R,,-'\ "10 F~OM 999XX INPUT OR OuTPUT I REQUEST FOR VEHICLE FIELD NO TRAN PEAK CHARC 150 0 NAME OF VEHICLE REQUESTOR GRADE OF VEHICLE RFQUESTOR REPORTING ADDRESS PHONE NUMRFR OF REQUESTOR INTFNDED ,USE OF VEHICLE I)FSTINATION OF VEHICLE TYPF OF VEHICLE I I o o D o o l~ 4 20 1 1 10 8 65* 090 TO 999XX VEHICLE ASSIGNMENT 150 0 NAIo'E OF VEHICLF R"QUFSTOR GR"ADE OF Vf'HICll' REQUESTOR TYPE OF VEHICLE VEHICLE RFGISTRATION NUMBER NAMf' VFHICLE OPFRATOR GRADE VEHICLE OPFRATOR PHONE NUMBER OF RF.QUESTOR 15 4 B 8 15 4 1 61* Figure 6. Data Processing Flow. • • • • • • • • • • 316 I Computers - Key to Total Systems Control illustration. Referring to Figure 6, it is seen that seven fields of information (two of them of an identifier nature, 5 of a dynamic nature) are associated with a request for vehicle. The total data recorded is 65 characters in length. This input occurs 150 times a day. Corresponding information is shown relative to step 090. Other analyses that could be made include the following: 1. List all input-output fields in the system and each input-output name with which they are associated. This would show multiple use of data elements to help in minimizing redundancies. 2. List input-output fields and applications within which they occur. This shows multiple use of data elements in different applications to assist in minimizing redundancies. 3. Summarize volume data relating to information flow between functional areas, by time frame. This gives a gross picture of the data traffic flow. TOTAL SYSTEM POSTULATION (PHASE 3) USing the data developed in the first two phases a broad concept of a total system encompassing all data proce sSing at an air base was developed. The system concept for data processing was designed without regard to existing Air Force base organizational structure. Although the system was confined to a base the nature of inputs originating offbase and the nature of outputs forwarded from the base were taken into consideration. The system concept designed in this phase will serve as a guide to subsequent phases of the study. It should be emphasized that the concept design phase was undertaken with no preconceived ideas as to system or hardware configuration. Even such fundamental matters as the tentative number of processing units were not determined until the analyses were accomplished. The efforts expended in this phase can be categorized as follows: 1. Determination of the goals of each functional area and of the bas~ as a whole. 2. Selection of the applications, base wide, that are prerequisite to attainment of these goals ("sliCing"). 3. Initial design and description of the data processing systems responsive to the requirements of each goal (slice). 4. Adaptation of the data processing of each slice to the base system configuration. 5. Documentation of the total system in broad terms. The determination of goals was a critical step. Goals were chosen which related to data processing having definite effects on the response of the base to its mission. Mission statements for the base and each functional area were studied. The relative importance of each application to the functional area and to the base was established. Lists were prepared showingthe objectives of each application, what is required of each application by the base, what is required of the functional area by the base, and the base-wide location of similar files. Problem areas associated with each application were examined. The goal of the motor pool is to provide ground motor vehicular transport to the base and to the aircraft wings operating from the base. All data processing activities on the base were now grouped by common endeavor. This categorization of data processing activities inferred a restructuring of the data processing systems from their vertical alignment within functional area into a horizontal alignment (slicing). A slice consists of a set of logically related data proce sSing activities. Slices were chosen to cover areas encompassing major segments of the operation of the base. The purpose of this step is to organize the data processing systems so as to most effectively meet the goals of the base. In a broad sense any business may be categorized into that which involves people, material, dollars, operations or facilities. As a first approximation to sliCing, each goal was associated with one of these categories. Major data flows, problem areas, and governing regulations were studied. The location of and reason for similar files were examined. The mission of the base and the functional areas were re-examined. Applications now apparently pertinent to the slice and the goal were collected. Finally, it must be established that the tentative slice fully responds to the goal. All data proceSSing applications documented in Phase 1 and all data processing endeavors occurring at base level, but not documented, were examined and aSSigned for An Automated Technique for Conducting a Total System Study / 317 concept postulation to the pertinent slice. Data processing activities, which were not conducted at base level, but which were deemed advisable to encompass if data processing capability were existent, were defined and assigned to the pertinent slices. The result of this analysis was the categorization of all data processing on the base into five functional groups or slices. The five categories were: 1. Aircraft Management - the data processing necessary to provide information needed to efficiently manage the supply support, m a in ten a n c e, and scheduling of aircraft to achieve the response required by mission demands. 2. FacilitiesManagement - the dataprocessing necessary to provide information needed to efficiently maintain base facilities and to operate base-wide systems. 3. Personnel Management - the data processing necessary to effect initial and daily job assignments and training of personnel to achieve full utilization of total group capability. 4. Financial Management - the data processing necessary to plan the use, receipt, safeguarding, disbursement, and accounting of public funds. 5. Per-sonal Needs - the data processing necessary to provide the information needed to initiate and sustain services responsive to personal needs of assigned per sonnel. The following will illustrate the relation between the old and new data processing structure. The Facilities Management slice encompasses 23 of today's applications. These applications include, for example, Real Property Costing and Real Property Maintenance Records from the present Civil Engineering functional area. The slice also includes Operation of the Base Motor Pool and ,TRIGGER ORIGIN _ _ _L - - - - INPUT DESCRIPTION OF MAJOR FUNCTION Ground Vehicular Maintenance from the pres-· ent Transportation functional area. After the goals of the data processing system for the base were established and the data processing applications prerequisite to the attainment of each goal were determined, it was necessary to establish and informally document the broad blocks of data processes of each slice. ("Broad block" is a term used to describe an unquantitized number of proc. ess steps expressed as an entity.) The de"!" velopment of the broad blocks required that the major data proceSSing functions be sequenced within the slice in such a way as to permit the different analysts, as they worked with the slices, to be able to understand the content of the slice and its relationship to the other slices. It was necessary to identify the inputs, outputs and files of the broad blocks in 'general terms. The time frame was then added to the broad blocks to identify when information within the broad block would be available or needed. To insure uniformity in documentation among study team members, a standard format for the informal documentation of each slice was established which could also be used in the documentation of the total system. The major data processing functions were recorded in the form shown in Figure 7. The development effort of the previous activity resulted in the establishment of an initial data processing system concept responsive to the objectives of each slice, i.e., five SUbsystems. Inasmuch as the requirement was the establishment of a total basewide system, the next task undertaken was the establishment of a base-wide systems configuration (with due consideration being given to the processing required by each slice to accomplish the over-all base mission). Here, for the first time in the system development plan, consideration was given to needed hardware capabilities. No effort FILES ------- OUTPUT Figure 7. Data Frace s sing DESTINATION ~ TIME NOTES ~ 318 / Computers - Key to Total Systems Control was, or should have been, made to relate system requirements to specific hardware. Rather, this activity was properly confined to such basic factors as: (1) determination of the number of processors, and (2) whether memory should be associated with each processor separately, or common to all. The establishment of a tentative base-wide configuration of an automated system was considered a prerequisite to the alignment of the blocks of data processing actions within the' total system. Phase 1 documentation provided helpful volume and frequency data. Examination of the initial system concepts documented for the five slices provided qualitative information. By relating this information it was possible to determine major data flow channels, processing similarities and dissimilarities, similarities in input-outputs, processing time fact0rs, similarities in filed data, and the nature of communication requirements. Study, of this information led to the establishment of a tentative configuration of two processors sharing a common memory. The processors and memory would be electronically accessible to specified organizational elements by means of selected communication devices. It is entirely possible that the detailed system design phase would change this configuration. However, the use of the technique is illustrated for this tentative configuration. These efforts guided the assignment of the processes in each slice to specific processors. The data processing required in the previously defined functional groupings pertaining to Aircraft Management and Facilities Management was assigned to Processor 1. The data processing required by Personnel Management, Financial Management and Personal Needs groups was assigned to Processor 2. , It was then necessary that each processing block contained in the concept be placed in logical order within the processing unit to which it had been assigned. Generators and recipients of data were connected and the concept of system memory, automated and manual, was defined by type, user, contents and mode of access. The concept for system communication of input and output, automated and manual, was defined by type of device (if automated), user, time originated, and mode of communication., With the system concept developed to the broad block level, it was necessary to document the data in a manageable and standardized format: Again, punched cards were used. The use of the forms will be demonstrated by illustrating the processing block in the concept solution which includes the motor pool operation associated with the handling of a vehicle request (used in describing Phase 1 documentation). Input-Output (Figure 8) Card 7 and Card 9 were used to record input and output information re spectively. Control Number designates the processor through which the input or output· data is processed. "Trigger" identifies the instrument, situation or condition causing the initiation of action described by the block. Origins of inputs and destinations of outputs (Col. 41-53) were entered as applicable. INPUT-OUTPUT DATE:~ PREPARED BY:~. CARD 7- CARD 9 CONTROL NUMBER' GJ PAGE~OF-'::"" I BLK NO. . 7 7 INPUT OR OUTPUT TRIGGER o RJE 7 7 0 T UJEJS T Q R~ ' F olRJ I IN,s PO R T AIT'I I I I i I 7 7 0 I 7 7 0 I ! : : i' i I I I II ..... 1- U-..... L..-J--.I- .... I /,1 i./II : i I, 1.1 RIE o U EST ON FOR v E HI CLE T.R I P I EQ U I PM ENT N S T R UC TI ONS : i UN ITS au IA NO E S TS V E HI CLE 1..- ..... 1..-1..-1.- ..... 1-.... --.-.. .' ! II1I11111111 UiftHFrr'I'II'l,'l,! 11111 11111 Figure 8. Input/Output,. Card/7/Card 9. !; lp LA TiE I 1..-1..- !EQ U I I : T I I :),I! IRE DR IV E R - U N I NIC OC FILE IDENTIFICATION ON B A SE VE HI CLE TR AN S P OR TA TI ON .OR '-'-~'-'-'-':-'-'-'I I I ORIGIN OR DES TINA TION AN YO N E I Ip MIE NT I 7 ?7 'I : 3 7 I I I 9 ~~ ............ . ......1;;;: III II.! I_I!,IIIII ~ An Automated Technique for Conducting a Total System Study / 319 Origins or destinations of data outside of the processor we r e de'scribed by functional names. If data within the processor originated in the previous step or had the subsequent step as its destination, no designator was entered. Movement of data between processors was shown by using the processor designator (Control Number) and the pe'rtinent block number. File identification was used to name all files used with the block. Col. 79 (No.) is used to number consecutively these cards within a given block. concept was reflected. Time (Col. 66-78) refers to either the time within which the process (taking place within the block) must occur, or the interval at which a process was started. Col. 79 (No.) is used to number consecutively these cards within a given block. The result of merging the above described cards on block number and listing them is shown in Figure 10. This "process listing" serves as the basic documentation of the total system concept. The system concept was amplified by means of file analyses. These analyses included, for each file, such information as: definition of file contents and expanded statement of file use, identification of the mode of communication between file and user, and a statement of the reason for use of the file. Process (Figure 9) Card 8 was designed for the entry of data describing the action which takes place in a block. The process description (Col. 5-65) was the maj or area in which the system PROCESS DATE:~ CONTROL NUMBER'~ o 7 7 o o o o 7 7 7 7 7 7 7 7 7 7 o o L-_'- PROCESS DESCRIPTION D I 5 PA TC HER R EG AR DI I F N E E D E D. 0 N N G 1M ME DI R E C E IV ES V E HI ATE TIH WI D RI MAN VE R 5 is C L E E I OR E Q U I IS CA R D 5 D A Y. OR R E QU E 5 T, R V ICE R E Q U EST P R E V 10 US P U N CH ED BY:~ PAGE~OF~ BLK NO. 7 7 PREPARED CARD 8 A 5 PM EN T NOT FOR U 5 E. R E Q U EST D E 5 T I FR OM Iv I 5 RU N 5 DI 5 P AT C H E D E HI C L E CA RD N A TI ON RE Q U I R E D ,C ~ R D IS N 0 TIME E T E 5 E 5 TA B L I 5 HE D V E HI C L E DE N T I F I C AT ION UN I T CO MP WI & TI ME FI LED LL BY B E R E Q U EST P L AT E , WI TH DA TA DLY ON D E MA N D I NE E D EID 2 TI M E 3 P R EP A R E D CA R D TI ME o 4 I 5 5 U T, AND 6 N U tvB E R -,- --,-- 7 ---- " ,-_-1--"- --,-,---- ............. ,-,--- ...... [[lIm IIffIIIIIIIIIIIIIIIII ml.!!!!!!11 rrnIffi 1IIIIIIIl11lm Figure 9. Process, Card 8. • • • • • • • RLK 77n /I TRIGGER RF'lUF<;T 'OR TRAN5PORTAT 10N OR IGI N INPUT ANYONE ONRII<;f REQUEST FOR TRAN5PORTATION.OR VEHICLE-EQUIPMENT UNI TS IPROCFSS DESCRIPTIONI FILES T I ME I OUTPUT DESTINATION VE'HICLE AND FQUIPMENT REQUESTS OISP~TCHfR RFCFIVES PFQU"ST. COMPLFTFS RFQUFST CARD WITH DATA RFGARDING VEHICLF OR F()UIPMFNT USE. DESTINATION & TIMF NEEDED IF I"MEDIATE SFRVICE IS NOT RFQUIRED. CARD IS FILFD ElY TIME NEEDFO. REQUFST CARDS FOR ESTABLISHED RUNS WILL BE PREPARED ON PREVIOUS DAY. AS VfHICLF IS DISPATCHFD REQUfST CARD IS PUNCHFD WITH IDfNTIFICATION FROM VFHICLF PLATF. TIME OUT. AND DR I VERS MAN OR UN IT NUMBER VEHICLE PLATF Figure 10. Process Listing. DLY ON DEMAND TRIP INSTRUCTIONS DRIVER-UNIT • • • • • • • 320 / Computers - Key to Total Systems Control To complete the picture, each broad block of the total system was analyzed to determine if it contained inputs and/or outputs. If inputs were found, was there a problem in data recording that a special input device could solve? Did the time requirements make it mandatory that information be transmitted automatically or would manual transmission be satisfactory? Finally, were outputs being generated in one processor that needed to be transmitted to the other processor for use as an input? The same type of analysis was performed regarding outputs. In all blocks where the answer to the above was affirmative, the time requirements, use of the device, and estimated traffic flow were used to arrive at a device expre ssed in broad terms. REMAINING PHASES Introduction While a detailed approach to conducting the remaining phases of a total data processing systems study has not been developed, indications are that the material developed in conducting the phases already described will be of considerable assistance in the remaining effort. The basic requirement is that of exploding the system concept into a detailed design. This detailed design will include the entire system-that which is to be mechanized and that which should be done manually. Process blocks must be broken into individual steps so that programming can be done for that portion of the system which is to be mechanized, and procedures can be written for that portion which is to be done manually. Inputoutputs must be described in terms of individual data elements, which in turn must be sequenced. Likewise, information files must be formatted. Of cour se, the functional capabilities required of the system must be determined. This in turn gives rise to hardware considerations. The following is an approach to the remaining phases of a total systems study. "segmenting" into subsystems. This should not be thought of as regression from the "total" system approach, but rather a convenient grouping of the data processing to facilitate management and control of the design effort. A fir st approximation to segmentation might be the data processing groupings or slices that were identified in postulating the new system concept. When segments have been chosen, blocks may be assigned to them. Individual blocks must now be examined. In some cases it will be necessary to divide into sub-blocks. It may be found that certain blocks or subblocks are missing, i.e., simply not included in the original concept. After the necessary regrouping, blocks should be aligned within each segment in order of relative influence. Thus, if we. label blocks B 1, B 2, B3, ... a segment can be shown schematically as in Figure 11. The system at this point consists of a number of these segments. By working from the top down (using the top "block as a "control"), changes may be minimized. In the case shown, a subsystem would be laid out for B12 first. As subsequent systems are planned for B3 and B 17 , they would be "fitted" to agree with the subsystem associated with B 12' The corre sponding procedure would continue until all blocks in the segment are covered. It is now possible to prepare Phase 3 type listings by segment. Descriptions of processes, files, and input-outputs can be put in order corresponding to the priority of the blocks within each segment, segregated by segment. Concept Analysis (Phase 4) To make possible detailed systems design, blocks identified in the process listing prepared in Phase 3 c~n be grouped by similar end product. This will be referred to as Figure 11. Data Processing Segment. An Automated Technique for Conducting a Total System Study / 321 Detailed System Design (Phase 5) Consider one block. From Phase 3 the process listing gives the over-all processing associated with that block; the file analyses furnish such basic information as "why," the file, the user, and the type of accessibility envisioned relative to the total system approach, while the input-output analysis gives basic system requirements in that area. Next, study the information collected and developed in Phases 1, 2 and 3. An examination of earlier documentation is necessitated by the fact that the de sign of a large system may require the efforts of many people, that considerable time may transpire between conduct of phases of the study, and that the analyst doing the detailed system design in most cases will not have done all of the earlier work pertinent to his present endeavor. Following this initial study, a first pass solution can be developed. Here files, inputs, outputs, and process steps related to this block are determined. In effect, a subsystem for the block is developed. This is the creative part of the effort. No machine or system technique is going to completely perform this task today. However, the work done in Phases 1, 2 and 3 will be of considerable help. The narrative description contained in the process listing of Phase 3 gives a guide to breaking the proceSSing down to the next level of detail. The Phase 3 file analyses give, in addition to general information mentioned above, file sequences which may be used as a first approximation. The input-output analyses, in addition, identify users and note appropriate time frames. It is in developing a second pass solution that the detailed design phase comes into focus. Process steps now will be broken down to a level of detail from which programming may be done or detailed procedure s may be written. Phase 1 listings of existing system input-output record layouts may be used as a starting point in designing records. Once data fields have been selected for inclusion, record formatting may be facilitated by separating cards by "Identifier" and "DynamiC" categories. Of course, in the case of files, file redundancies must be examined for those cases where a file is shared by more than one block. At this point a subsystem exists for each block. These subsystems must be meshed. The Phase 3 process listing will serve as a guide to putting the subsystems in order. Independently, a determination of the number of processors and the blocks to be associated with each must take place. Theprocess steps for each block to be mechanized are associated with a particular processor in a particular order. All input-outputs between blocks handled by the same processor may be regarded as internal transfer s. Information transmitted between processors or between the system and the outside world will be treated as true input-outputs. Determination of Functional Spe.cifications (Phase 6) Information from which hardware capability can be derived will have, to a large degree, evolved simultaneously with the detailed systems design. For example, early in design such basic decisions as which information files must be available on a random basis and which can be available serially will have been decided. However, the type and amount of memory remains to be determined. The input-output analyses of Phase 3 define functional requirements in that area. Input-output and processor speeds must be determined. A documentation of the detail system solution somewhat comparable to that used to document the present system (Phase 1) is foreseen. This would provide a vehicle for totaling file references by time frame so as to determine access time requirements, leading toward determination of memory hardware requirements. A similar analysis could be performed with respect to inputoutputs. Programming a sample of the proceSSing is probably the safest way to estimate processor requirements. Other Phases With the total system designed a logically phased implementation plan may be instituted. Programming and installation may take place along a route directed at the desired end result. CONCLUSION Motivation for the total systems approach to data processing is strong. The magnitude of the tasks and the amount of data involved in the design of a total system in many cases 322 / Computers - Key to Total Systems Control requires an automat~d study technique. The punched-card approach described is a step in the right direction. It has expedited systems analysis by mechanically relating significant data in the analysis phases. Clearly, more sophisticated design analyses can be carried out with a computer approach makipg it possible to automate a larger part of the total systems study effort. However, much research needs to be done. ACKNOWLEDGEMENT A number of persons contributed to the development of the technique described in this paper. In particular, Mr. R. N. Sweeney originated many of the ideas and was a principal contributer to all aspects of the work. Substantial contributions were made by Mr. H. W. Gidley and Mr. C. W. Gooch, III. BmLIOGRAPHY 1. Kavanagh, Thomas F., "TABSOL - A Fundamental Concept for Systems Oriented Languages, " Proceedings of the 1960 Eastern Joint Computer Conference. 2. Evans, Orren Y., "Advanced Analysis Method for Integrated Electronic Data Processing," mM General Information Manual No. F20-8047. White Plains, New York. 3. Grad, Burton, "Tabular Form in Decision Logic," Datamation, July 1961. Chicago, Illinois. DISPLAY SYSTEM DESIGN CONSIDERATIONS R. T. Loewe and P. Horowitz Ford Motor Company Aeronutronic Division Newport Beach, California Lack 01 a single all-inclusive objective forces consideration of many displayobjectives and criteria. Some of the more appropriate ones for displays are described below. They are still subjective. It seems that quantitati ve criteria cannot be stated except at the level of detailed speCifications or characteristics such as: brightness, contrast, resolution, response time, etc. The following statements attempt to present meaningful objectives of display systems. Not all of the statements apply to all systems and they are definitely redundant, frequently expressing similar thoughts in different manners. INTRODUCTION This paper presents several significant design considerations (non-equipment) for computer oriented display systems. It begins with a discussion of display objectives and criteria. Then coding, formats, display request and control, and amounts of information displayed are discussed. Factors related to retinal resolution, display size and detail, group and individual displays and viewing environment are presented. After these miscellaneous conSiderations, a checklist of primary display characteristics is presented. Improve DeciSion Making DISPLAY OBJECTIVES AND CRITERIA The most general objective of display systems is to improve human decision making. This is difficult to measure because it must be appraised subjectively. Even if decision quality could be measured adequately,' it is difficult to separate the influence of the displays from the intellect of the decision maker. . DeciSion making is used in a general sense .here. It ranges from a commander's strategic or tactical decisions to a radar operator's decisions distinguishing targets from noise. A thorough understanding of display objectives and criteria is essential to good display system design. Unfortunately, there are usually no quantitative measures of effectiveness for display systems. In fact, it is often difficult to state clear cut qualitative criteria. A Single all-inclusive measure of effectiveness is highly desirable. Such a measure is, "probability of success per dollar," which suits some types of systems. A complicating factor is that display systems are invariably subsystems of larger systems. Display criteria stated in terms of the primary system criteria seldom aid in selecting display alternatives, or in display subsystem evaluation. Improve Understanding The quality of decision-making is based on understanding and inSight of the problem. 323 324/ Computers - Key to Total Systems Control Thus, a primary display system objective is to improve understanding and insight of the entire problem or situation. The display system should allow' the user to _assimilate, perceive, comprehend, and apprehend the information available from the balance of the system. The display system should also take the initiative in notifying users of emergencies, exceptions, and urgent information. Provide Effective Man-Machine Communications This cliche expresses the major objective well. Displays are generally the primary communication link from the machine to the man. The display system should allow the users to extend their decision making capabilities by use of the memory and processing capabilities of the balance of the system. An ultimate objective might be that of providing a man- machine communication link which approaches telepathic capability. Clarify Complex Relationships Another important objective of display systems is to present complex situations in such a manner that significant relationships, conflicts, correlations, and extrapolations can be quickly, clearly, and correctly comprehended. It should be possible to display separate categories of information in a manner that optimizes the user's ability to detect these relationships. Displays should allow details to beunderstood in context with the whole situation and should allow the whole situation to be examined in detail. Reduce Reaction Times The ability to make well founded decisions quickly is an important objective. Availability of proper information in an effective form is necessary for timely decisions .. Reduction of staff reaction time is important in: detecting trends, conflicts, and exceptions; responding to requests from top level decision makers; and in planning for various contingenCies. Top level decision makers seldom need speed in direct presentation of input data. They generally need speed in the interpretation, evaluation and recommendations based on such input data in order to hasten their decisions. Improve Coordination Improved coordination within diverse operations is an objective of display systems. Instead of each working group or staff having different data, which may cause contradictions, conflicts and misunderstandings, each user should have current, identical data. Even within a given display, different data should have consistent "as of" times to reduce confusion. Improve Availability of Information Any display system involving data storage and retrieval has a classification and indexing problem. Users must be able to quickly and conveniently identify and request various data categories or combinations of information characteristics. Quick, accurate means which allow the user to obtain the exact information he needs is an important objective. It is often desirable to request displays by logical statements regarding relationships between classification parameters and data characteristics. Provide Dependability Dependability includes concepts such as reliability of data and equipment, maintainability, and degree of confidence in the operation and in the data presented. The display system should provide thorough, accurate, dependable data which will minimize human errors and improve the effectiveness of human judgement. Improve Control Some display systems provide information necessary for control of a process or system. Such display systems should provide displays that aid personnel in executing improved control and monitoring. Improve Briefings Display systems are often used in briefings to appraise key personnel of status, problems, and plans. Improvement in the quality, clarity and duration of briefings is an important objective. A display system should also reduce briefing preparation time and should facilitate better answers to questions during briefings. Display System Design Considerations / 325 Simplify Operations Satisfy Human Factors Requirements Simplicity of operation is an important objective in display systems. If equipment is difficult or inconvenient to operate, it will not be used effectively. Training requirements should be minimized and as much interchangeability of operations and functions as possible should be provided. Ultimately, the effectiveness of a display ,is dependent on the user's perception, which has definite psychological limits. Certain display design parameters must be adhered to in order to effectively utilize human perception. Some of the more salient pOints which must be considered on information displays are: retinal resolution, brightness, contrast, coding and symbology, critical flicker-fusion ratio, and the general viewing environment. Other considerations such as; human response times, display formats, individual display preferences, and other psychological differences also warrant consideration in the evaluation of display systems. Provide Compatability With Data Entry Display systems used in conjunction with data processing systems are sometimes closely related to data entry functions such as; editing, formatting, verifying, correcting, intervention, and interrogation. The displays should provide supporting information and should aid data entry by displacing formats and data being entered. Provide Flexibility Flexibility and adaptability are perhaps the most important criterion of display systems. Display requirements often change drastically with time due to: (1) Changes in commanders (or executives) and staff personnel (2) Changes in organization and staff functions (3) Changes in military threats (or commercial markets) (4) Changes in defensive capabilities (or products) (5) Changes in information available (6) Experience from system operation and exercises (7) Improvements and additions to computer programs (8) Technological improvements (9) Modifications in mission or goals Thus, flexibility to adapt to such changes quickly and effectively is a primaryobjective of display systems. Some of the aspects of display systems where flexibility is desired include: (1) Formats (2) Content (3) Symbology and coding (4) Display control and utilization (5) Distribution of personnel (6) Distribution of displays (7) Growth potential in both quantity and performance CODING AND SYMBOLOGY There are many different ways of representing information for visual interpretation. This discussion is confined to v~sible markings on a two-dimensional display surface. The earliest known attempts to represent information in visual form date back to drawings in caves of the Cro-Magnon period. Pictures are a familiar and effective means of representing information. They are visual simulations of the actual object or concept. Egyptian hieroglyphics and Chinese writing have evolved from crude pictures or drawings. Abstract concepts not amenable to pictorial representation were represented by remote pictorial associations. The Phoenician alphabet and Arabic numerals were perhaps the first attempts to represent information in coded symbolic form where symbol shape has no pictorial value. Coded symbols (letters) are combined into more complex codes (words) which represent real things or abstract concepts. Although written language is one of man's most indispensable tools of communication, it is not necessarily the simplest or most efficient means of representing thoughts. It is a compromise which limits the number of different symbols required. We still resort to special symbology to facilitate visual communication, particularly where the thought represented has a characteristic pictorial shape that is easy to learn and remember. It is more effective to represent an aircraft by its outline than the combinations of letters "Aircraft." Use of special symbols for abstract thoughts such as "validity," is 326 / Computers - Key to Total Systems Control limited by human learning and memory capabilities. Evaluation of coding depends upon anumber of factors, such as; the physiological limits of human discernment (e .g., the point at which the human sensor cannot reliably discriminate between two brightnesses or colors). Relative compatibility with other coding modalities, relative efficiency of the code (how long does the average operator take to make a positive identification) psychological effect of the code on the operator, (is the code irritating, fatiguing or perhaps hypnotic, as in the case of some flicker rates). These and other considerations must be examined prior to evaluation, selection or use of a particular coding modality. Some means of coding information are: (1) color (2) size (3) shape (includes symbols and font) (4) pOSition (5) orientation (6) line width (boldness) (7) number (quantity) (8) flicker or blink rate (9) intensity (includes brightness and grey scale) (10) line length , (11) line type (dotted, da~hed, crosshatched, etc.) The American Standards Association has suggested the use of particular colors for coding; publication Z53-1-1-1953. This list is quite detailed and complete. DISPLAY FORMATS Figure 1 indicates some of the wide variety of formats used in displaying information. Combinations of formats and coding can improve presentations. There are also many ways of displaying three variables in only two dimensions. In system design presentation formats must be determined after determining what information is to be displayed. These decisions are as important to display system effectiveness as many technical decisions. Coding and symbology capabilitie s must be considered in selecting formats. Display systems are often used to compare different activities, coordinate different functions, and detect conflicts. Thus, there is need for determining the best method of simultaneously presenting ,different types of information in formats which most clearly show interactions, relationships and conflicts. Certain types of data cannot be presented effectively in alpha-numeric form. Examples are: fallout contours, flight paths, coverage of surveillance devices or weapons, planned maneuvers, meteorological patterns, and areas of re sponsibility. Line drawings are an effective means of representing such information that is still compatible with computer outputs. Colored or shaded areas are good representations for such information, but are less compatible with computer outputs. AMOUNT OF INFORMATION IN THE SYSTEM The amount of information in a system at anyone time is a very Significant characteristic of display systems. Some systems can display all their information in a single presentation, e.g., radar systems. Other display systems are based upon large data storage and retrieval systems. Whenever there is more information required than can be presented in one display, the information in the system must be divided into categories for updating and display. The division of information into categories is a complex problem involving: file organization, classification and indexing, data entry and proceSSing conside rations , and information requirements of the users. Selection of categories for data entry, file organization, and display is an extremely important part of system deSign. Organizing information into predetermined categories limits flexibility by hampering the ability to request data other than by the predetermined categories. Defining many categories complicates the system but improves flexibility. Ease in redefining categories is a good way of providing flexibility. Some systems may have 100 or more different display categories. Manual preparation of different programs for each category would be expensive and inflexible because of the inevitable changes required in the display categories. An approach which develops basic programs for each type of display format has significant advantages. Such programs generate or compile new programs each time a new display is requested. The request message supplies the needed' parameters and control information. Display System Design Considerations / 327 -' ...~- .~=-.,; .... == =. = ~-==---- --= --..... ...,. .....- e IZI »k. e JD TABULAR SITUATION TEXT HISTOGRAM BAR GRAPH --_. -: = - - '- -r;; ------ •:;,~ --- GANTT CHART ':';-' flj ,M_.. -.=.... _..... _ - _. GRAPH ft __ --:=- -:.-- '= GRAPH [IDlffi SCALE ~ .... I ' CLOCK = -:--~ PATTERNS ll I .-- !- METER e .~,.- DIAGRAM -- fi) ,. . ~-:-.:..- ! - PIE CHART ... m !~: ....- . ",......... ..,.... -=== MUSICAL SCORE Figure 1. e ~I ~o;..~ ./ , , I~"- CHARACTERS LIGHTS / SELECTED MESSAGES ttttt e (t):l: e -4t(C-~L~ SYMBOLS FORMULA INDICATORS Typical Display Formats. This approach provides tremendous versatility and adaptability. It may provide users the capability of defining their own display formats and contents without requiring assistance from programming specialists or analysts. This may reduce the amount of analysis of operational requirements preliminary to display programming. DISPLAY REQUESTS To change the information categorie s presented on a display screen, the user must indicate the information he wants displayed (unless the system itself determines what data is to be displayed and when on the basis of previous analysis). A number of different ways of selecting the desired display information are described below. (1) A keyboard with a separate button for each category to be displayed or removed can be used. This approach is made more flexible by using a single keyboard and changing the meaning of the keys by overlays or other means. 328 / Computers - Key to Total Systems Control (2) Where there are many categories, they may be selected by a code and keyboard. For example, when decimal numbers are used to indicate display categories, 100 different displays can be identified by two activations of a decimal keyboard. (3) Displays can be requested by a limited syntax language or by logical statements. In this manner, a user can define the information combinations and formats he desires. (4) Another method of defining information to be displayed, is by pointing at an item on an existing display. For example, a user requests details of a particular symbolized item by pointing at that symbol on a display. (5) Searching is another method of obtaining the desired display. The actual display may be sequentially changed with the operator deciding when to stop the sequence of changes. DISPLAY CONTROL The display control function includes: routing display information to display units, updating display information, and rules for changing displays. The computer may store information regarding the routing of display information. It may have a rule which states; "whenever certain data files or display information are updated, certain display units should be notified or given the displays." Security considerations also affect routing of display data. Display updating rules may also be handled by a computer. Displays may be updated on a real-time basis so that all changes are immediately reflected in the appropriate displays. Displays may also be updated according to any of the following criteria: at given time intervals, after collection of several input messages, each time new information arrives, or when display requests are made. Priority considerations may be incorporated in the updating rules also. Thus, one updating rule is used for one priority class while a different rule is used for another priority class. Forced displays, too, may be under computer control. If the computer recognizes occurrences which match predetermined forCing rules, selected displays can automatically be changed to show the detected critical information. It is also possible for certain personnel to force displays on units operated by other personnel, although this is generally an extreme measure. This risks interruption of more important work and is annoying at times. A less extreme approach notifies the user that critical information is ready for viewing. Such notification may also indicate priority or type of information. Th~ user may then accept the new display at his convenience. AMOUNT OF INFORMATION DISPLAYED When the information required by an individual to perform his functions exceeds the capaCity of one display, there must be means of acceSSing other displays. Two primary methods of accessing different displays are given below. (1) A single display screen is provided, and the information displayed upon it is changed at the command of the user. (2) All available display information is simultaneously shown in a number of different displays. The user accesses different information by visual searching or memory and then focuses his attention on the desired display; this can be accomplished rapidly for moderate amounts of information. (A variation of this is the use of some magnifying means to access detailed information in a display.) An important characteristic of any display system is the display access time. This is the time lapse between a user's request and when the display is actually viewed. Shifting the eyes or head presents a convenient and rapid display access time. However, the amount of information available in this manner is limited. There are several limitations to the amount of information that can be displayed at one time. Visual acuity or resolving power is the ability of the eye to perceive and discriminate precise sensory (visual) impressions. The human eye can, in normal light, discriminate lines that are about 1. 5 minutes of arc apart, using parallel black lines separated by intervals equal to the line width. This gives a resolving power of 2,300 line pairs per radian. The visual angle at the eye is 2 arctan L/2D; the angle subtended at the cornea by a Display System Design Considerations / 329 viewed object in which L is the size of the object measured at right angles to line of sight and D is the distance between the eye and the object. The solid angle about an individual and the resolution of the eye limit the total amount of information that can be displayed simultaneously to anyone person. Of course, the complete solid angle around the person cannot be utilized for display purposes, but cockpits, for example, frequently use much of the total solid angle for displays and controls. Since the amount of information that can be presented in a single display depends primarily on the solid angle subtended and the re solution of the eye; the distance of the display from the user is not significant. This contradicts the popular concept that one must have a big display to see the big picture. Figure 2 shows the relationship between three interrelated variables: size of display screen, acceptable viewing distance, and the amount of detail or number of characters which can be displayed. This shows that for a given viewing distance, the display size must be increased if the amount of detail displayed is to be increased; the curve holds true both for individual displays and group displays. Another limitation on the amount of information displayed is the response time required and rate at which information can be assimilated. If a person must respond to certain information very rapidly, he does not have time to comprehend a great amount of detail. Thus, highly summarized information should be presented when rapid decisions are necessary. With enough time, however, a complex and detailed display can be absorbed or understood after thorough study. In lengthy analysis, interpretation, and detail planning functions, considerable information can be presented for study. Several different displays can be simultaneously presented on the same display unit. For example, three-fourths of a display surface may display a geographic situation with the remaining one-fourth used for tabular or graphical details. Some categories and formats contain little detail in comparison to the detail capability of a display unit. In such cases, several categories and formats can be presented simultaneously in different portions of a common display screen. GROUP AND INDIVIDUAL DISPLAYS The value of group displays versus individual displays is a controversial topic. A group display is a display intended for simultaneous viewing by more than one person. This definition is independent of display size; although common use tends to link "large screen" with "group display." This may be due to the fact that most displays intended for individuals can be viewed by more than one person. The value of a group display depends on how the people work together and on their information reqUirements. A list of advantages of group and individual displays follows. Advantages of Group Displays (1) Where information requirements of a number of people are similar or identical, a group display may provide a more economical method for providing a large number of people with the data they need. (2) A small working group can communicate more efficiently, relevant to a group display; whereas, such personal interchange is less convenient and effective if personnel are situated at separate consoles. (3) In many cases, the senior person of any group indirectly controls the content of the group display. This allows the support personnel engaged in detail work to know the concern and interests of the top-level decision maker. (4) One group display may be more economical than several individual displays. (5) There may not be enough physical space for several individual displays. (6) With a group display, coordination and integration may be improved since all concerned are seeing the same information. (7) Manual backup procedures are more effective for group displays than for individual displays. (8) Many users have become accustomed to operations based on manual grot1,p displays. 330 I Computers - Key to Total Systems Control 100,000 80,000 ...-... z '-" UJ p:: ~ 60,000 CJ « 2 ~ N ::z:: CJ p;.. 0 p:; = .L lOS D2 40,000 ~ ~ z 20,000 o o 10/1 Dis (RATIO OF VIEWING DISTANCE, D, TO DISPLAY SIZE, S) i .SH CONDITIONS: 1. Square display 2. Character slot as shown 3. Character height, H, subtends 10 minutes of arc at viewing distance, D, (H = .003 D) 4. Increased viewing distance at display edges is neglected S. Adequate brightness and contrast exist 6. Viewing distance, D, is greater than 13 inches 7. No margin allowed at display edge ~ j . 1. SH H .6SH~ ~. ~ ~r 4 .7SH - - . Figure 2. Number of Characters That May Be Displayed vs. Ratio of Viewing Distance to Display Size. 1H Display System Design Considerations Advantages of Individual Displays (1) Information may be displayed which exactly fits the particular task requirements of an individual, rather than a composite display planned to fit group needs and not optimized for anyone specifically. (2) Individual displays can be changed at will, thereby gaining access to greater amounts of information without interrupting the information displayed to others. (3) More information can be presented on individual displays than on group displays because the individual can lean over or bend over portions of an indi vidual display to get the detail. (4) It is possible to display identical data on all individual displays. This approaches the capability of the group display for allowing many people to simultaneously refer to the identical display information. (5) The deployment of personnel and equipment has more flexibility than group displays. (6) More diverse capabilities are available with the current state of the art. GENERAL VIEWING ENVIRONMENT The environment (conditions and influences, other than display "output," which affect the perception and comprehensiop., of display information) of both the individual viewer and the total viewing audience is an important input to the overall system design. The more important environmental factors include: 'ambient lighting, seating, console deSign, work area configurations, temperature, humidity, and noise level. Ambient illumination should not exceed the display brightness; although work surfaces should have an illumination of at least 25 ft. candles. The light bandwidth, or color, is dependent on the particular type of display used. The lighting should complement the display, and if possible, be pleasing to the viewing audience. I 331 Seating is designed for the average individual using the equipment. The seats should offer the individual comfortable support for both viewing and other work tasks. The console is designed for optimum viewing at a particular configuration (seating or standing) depending On whether the viewer is to be active for extended or limited time periods. Temperatures between 68 and 72 F and humidity from 30 to 50 percent allow extended periods of alertness and efficiency from the viewing group. Noise control is necessary if direct verbal communication between the viewers is warranted. The ambient noise level in a direct communication system should not exceed 60 decibels. 0 CHECKLIST OF DISPLAY SUBSYSTEM CHARACTERISTICS Some primary display systems characteristics are listed below. They may be used as a checklist for specifications, requirements, and evaluation. Not all of these topics have been discussed above, but they are all important characteristics which must be considered during the design of a display system. Each display system will also have other considerations specifically related to the particular application. Amount of Display Information Available Updating Response Time Rates of Change of Display Data Display Access Time Display Request Rates Number of Display Units Display Size Resolution Audience Size Coding Symbology Display Formats Brightness Ambient Lighting Contrast Accuracy Distortion Flicker or Blink Time ABSTRACT SHAPE RECOGNITION BY MACHINE Mary Elizabeth Stevens National Bureau of Standards Washington, D. C. ABSTRACT Graphic pattern recognition ill the development of total systems for information selection and retrieval is considered. A particular hypothetical machine model for shape recognition is described. Examples are given of recognition of 12 to 20 categories of geometric shapes, by use of a contour-projection principle. Within certain limitations, the model identifies these graphic patterns, regardless of size, location, and certain rotational transformations. It provides means for detecting classes of patterns which would or would not be ambiguous with respect to any of the patterns that are recognizable. Problems in practical application, including possibilities for recognition of constrained handdrawn figures, are considered. Pos sible means of implementation are also discussed. all phases of processing. We must determine the full extent to which the machine can replace the man, or supplement his efforts, or serve him as an efficient tool. We should consider, for example which steps can be automated in the preparation of files to be searched by machine, in the content-analysis of incoming material for identification of appropriate selection criteria or "retrieval hooks," and in the framing and renegotiation of search-selection prescriptions. Because "one picture is worth a thousand words," the graphic material interspersed with natural-language text in the system's input must also receive analysis and storage. Therefore experiments in mechanical recognition of graphical patterns go hand-in-hand with investigation of possible methods for machine processing of natural-language text, and for communication by man, in more or less his own language, with the machine. 1. INTRODUCTION The storage, search, selection and retrievalof information represent one oftoday's most challenging areas for research and development. The urgent need to improve the effectiveness with which our total scientific resources (men, machines, methods and findings) are utilized, requires increased ability to avoid replication of old work, to follow up new leads promptly, and in general to cope with the exponential growth of technicalliterature. Not only machine technology , but also our understanding of mechanizable processes, must be pushed to new limits to achieve information processing systems adequate for these demands. The prospective in t e g rat ion of many information-handling functions in a single system emphasizes that mechanizable operations must be sought out and identified in 332 Abstract Shape Recognition By Machine / 333 A number of possible approaches to mechanical recognition of certain geometric shapes have been proposed. This paper contains a detailed description of a particular method, partly based on the contour-projection technique suggested by Deutsch. [8 ~:~] The method will be shown, within restrictions described later, to distinguish among octagons, squares, rectangles, some triangles, and certain other classes of polygons. The procedure can be used (by hand Simulation, if desired) to generate large classes of patterns, not in the model's "vocabulary," which would be misidentified as some member of the family; it can also be employed to generate classes of patterns for which no such misidentifications are possible. Thus the procedure can in a sense be used to gain inSight into its own limitations. It can be applied to both solid or outline figures, either black-on-white or white-on-black. Shapes recognizable by the method can usually be identified regardless of variations in size or location in the field. Anomalies and ambiguities are encountered, however, for some shapes at critical sizes or proportions; some illustrations of this will be given. Certain rotated variants and mirror images can be distinguished for some, but not all, of the shapes. In such cases, rotated versions may be distinguished from their originals (e.g., a diamond in contradistinction to a square), or may if desired be given a qualified identification with the originals (e.g., a diamond recognized as a "tilted square"). With minor additions to the recognition or decoding logic, some shapes might be recognized both generically and also more specifically; e.g., a diamond might be identified as "parallelogram," "particular parallelogram-square," and "rotated square." Examples of distinct shapes which are indistinguishable by this particular procedure will be given, and limitations regarding sloppily drawn figures will be noted. Problems likely to arise in practical application are considered, including questions of instrumentation, resolution and quantization, as well as the complications introduced by multiple figures Simultaneously distributed in the input pattern field, or by shapes enclosed projection technique s for pattern recognition have also been suggested, without detailed discus sion, by Selfridge [33] and Minsky [26]. ~:~Contour within the boundaries of other shapes. Practical implementation appears feasible for "closed vocabularies" of up to at least 70 distinguishable shapes, in the case of suitably constrained handdrawn figures such as chemcial structure and electrical circuit diagrams. 2. RELATED RESEARCH IN PATTERN RECOGNITION The literature shows considerable work in several areas related to machine recognition of graphic patterns. First, there are alphanumeric character recognition devices, commonly requiring either a specially stylized font or a closely restricted alphabet of characters in one or a few type styles. Under certain restrictive conditions, these devices may prove practicable for symbol-transliteration or input operations on large bodies of text, for either an information selection system or a mechanical translation program. The restrictions typically include a require-, ment for conSistently high quality of the input patterns, and a limitation of the recognizable alphabet to at most several hundred members with each allowable size and style variation of each character counting as a separate member. Second, various techniques have been developed for machine detection and recognition of classes of input patterns that can be associated with the same desired output. Examples cover many areas of practical interest, from the processing of cytological smears and bubble chamber tracks to the analog representation of the enunciations of various sounds of speech. Studies of alphanumeric character recognition for large alphabets, including hand-printed and hand-drawn alphabets, are especially relevant to the design of an integrated infor mation selection -and - retrieval system. Third, a number of investigations ha ve been directed toward the explanation, simulation or "black-box modelling" of processes which might underlie perception, recognition, learning, recall and generalization phenomena, especially in lower-level living organisms. Such studies have dealt with hypothetical m e c han ism s for per c e p t ion and recognition, for image-improvement, and for translations of variations in size or position into differences in normalized times-ofarrival. They include work on the use of perception-recognition phenomena as demonstrations of "learning" cap a b iIi tie s in 334/ Computers - Key to Total Systems Control simulated neural n e ~ w 0 r k s which "selforganize" from initial random configurations. Examples in the literature of pattern recognition research range from classic hypotheses by Pitts and McCullough [28], Hebb [20], Schade [32], and others, through image improvement mechanisms such as those considered by Kovazny, Arman, and Joseph [25], to computer simulations and working machine models of "learning," "conditioned reflex," or "self-organizing" phenomena, by Uttley [41]; Clark, Dineen, Farley, and Selfridge, [7, 10, 13,33]; Rosenblatt [31]; Harmon [19]; Roberts [29]; Uhr [39]; Barus [4]; and Baran and Estrin [3], among others. For size-constained, and usually positionnormalized, input patterns there have also been intriguing proposals for recognition by machine of various shapes (especially shapes common to constrained hand-drawn alphanumeric characters) by such investigators as Doyle [11]; Sherman [35]; Johnson [22]; Dimond [9]; Bomba [6]; Grimsdale, et al [18]; Kamentsky [23]; Unger [40]; Taylor [38]; as well as by others, some of whom have not as yet rep 0 r ted their results in the open literature. Other investigations (e.g., that of Alt [1] on the use of moments for digitalized pattern recognition) have been based on properties of -characters or shapes which are largely independent of variations in size and locations, and are relatively invariant under certain rotations, certain minor stylistic differences, and c e rt ai n a mount s of noise. Randomly-generated operators for the extraction of relatively invariant features of graphic patterns, especially alphanumeric character patterns, are considered in detail by such investigators as Bledsoe and Browning [5]; Uhr and Vossler [39]; and Novikoff [27]. There also have been interesting studies of possibilities for explaining shape -discrimination phenomena actually observed in living organisms in terms of potentially machinable processes, especially by Sutherland [37] and Deutsch [8]. There are other ways of classifying past research in pattern recognition which is relevant to the maximal mechanization of the information-processing function. For example, one might ask whether or not a proposed method provides for adaptive modification ("self-organization") with respect to perception-recognition behavior. This will be discussed later. Second, one might ask whether or not template-matching principles are used in reaching an identification decision. On this last point, we note that templatematching schemes are generally considered to be inadequate for large alphabets whose characters are subject to appreciable differences in size or location in the field, or to substantial rotations. Templates (as the term is used here) may be photographicnegative images of the shapes or characters belonging to the alphabet to be recognized, or they may be of coordinate descriptions of those shade-quantized cells in a superimposed grid which would be black or would be white if the input pattern is a particular character. Templates may also be in the form of descriptions of topological features which can be obtained for each of the members of the alphabet-set, for example by curve-tracing techniques. For Perceptron devices [31], in which there are initially random connections between sensory-receptor cells and "association" cells and between association cells and response cells, the recognition templates eventually "learned" depend, in effect, upon coordinate descriptions inA-unit spacewhich have been fIr ei nfo r c ed" for ftc 0 r r e ct response. " Template-matching systems which are adaptive provide little or no capability for generalization from a shape of one size to other examples of the same shape in other sizes and orientations unless prototypes for these variations have previously been introduced tothe system. Fain [12] has pointed up the difficulties of requiring a number of prototypes by estimating that the total number of possible coordinate descriptions for anyone shape subjected to size, positional, and rotational transformations lies between 1Tk 2 /6 and 1Tk 2 where k is the number of cells in the superimposed grid or retinal array. On the other hand, template-matching techniques for small, closed-end alphabets, where recognizable patterns have all, in effect, been "seen" before, are well-adapted to devices with relatively little programmed logic, low storage requirements, and rather simple means for making identification deciSions, e.g., by "best-fit" integration for the response of a photocell array to light reflected through character masks. In most of the "criterial" or "distinguishing features" approaches to the problem of pattern recognition, relatively invariant properties of recognizable patterns (such as Abstract Shape Recognition By Machine / 335 combinations of horizontal, vertical, and diagonal strokes that make up a character, [34] number of corners left after stripping away most black cells [7, 10], ''lakes'' and "inlets" or cavities open to the left or right [11, 30], connectivities of selected topological features [15, 36], and the like) are used to provide tolerance for some transformations which may occur for the "same" shape. This advantage is typically achieved at the price of extensive processing in the extraction of the discriminating features, or of considerable storage capacity, or of comparatively sophisticated recognition logic.~:~ Systems utilizing context -dependency p r inc i p 1 e s, such as those discussed by Bledsoe and Browning [5], whether based on templatematching or criterial feature approaches, suffer the same respective disadvantages as those approaches involve. In addition, they require means for storage and recall of previous recognition decisions. A third basis for categorizing prior results in the field of pattern recognition is the degree of orientation toward hardware. Here there is a spectrum ranging from the development of practical character recognition equipment for a given, usually small, alphabet, through investigations directed toward the determination of relatively invariant features of selected classes of patterns, to modelling of perception -recognition phenomena observed to obtain in living organisms. In the latter area, investigations such as those of Harmon [19] and Singer [36] are concerned primarily with machine design implementations of procedures for recognizing selected geometric shapes with size, position, and rotational invariance. On the other hand, the studies of Sutherland [37] and Deutsch [8] are concerned with mechanisms to explain perception and recognition phenomena in lower-order living organisms, including anomalies of behavior in shape discrimination. For example, they discuss findings which indicate that the octopus can apparently distinguish mirror images in the case of certain shapes but not others. Sutherland has proposed a principle of measurement of the horizontal extent of a shape at each *For example, the requirement: "The height of the left leg of a V-shaped figure less than half the height of the right leg," in Unger l s SPAC [40]. point of the vertical axis and of the vertical extent against the horizontal axis. In his discussion of subsequent tests of this principle, he claims that, to the best of his knowledge: "no other existing theory of shape discrimination would predict that animals should be able to discriminate some mirror images but not others." (Sutherland [37], 1959) In 1955, Deutsch [8] suggested a contourproj ection procedure which accounted for mirror-image ambiguity but not for mirrorimage discriminability. He described this procedure as follows: "Let us assume there is an array of units (or cells) arranged in two dimensions, each unit having many neighbors. This plane composed of cells has messages arriving on it from light receptors . . . "1. Each unit on the two-dimensional array can be excited by a counter falling on the region of the retina to which it is jOined. "2. When such excitation . . . . arrives each unit will pass on a pulse down what will be called a final common cable. It also will excite its neighbor .... Therefore when a contour is projected on the two-dimensional array . . . . a message conSisting of one pulse will be passed down the final common cable by each cell or unit on which that contour lies . . . . "3 Second, the contour will excite all the cells which lie next to it on the twodimensional array. These will pass the excitation on to their neighbors ... The assumption is made that a cell will pass on its excitation at right angles to the contour of which it happens to be a component ... "4. As such lateral excitation from a point in a contour advances another pulse will be sent down the final common cable as soon as it coincides with another point in a contour imposed on the two-dimensional array. "This message down the final common cable will at each moment give a measure of the number of points thus brought into coincidence. . . Thus the message for any rectangle will consist of three sharp volleys, the proportions of the last two being governed by the ratio of the longer to the shorter sides." The present paper reports the results of preliminary investigations of a particular variation of this Deutsch model. This model 336 / Computers - Key to Total Systems Control UP I LR - - ~ I ! ! ! ! 0 0 [] 0 [] : G--RL --~ ~ 0 0 0 0 [JE---~ ~ ~ 0 0 0 ~---.a ~ ~ ~ 0 0 [)----~ ~ ~~ ~ 0 G-- ----0 0 0 0 0 0 ---9 9 I I DU I I QQ I I I I 9 I I £;1 • I ~-- 0--0 0 0 0 0 0 o-.m 0 0 0 o.D 0 0 ~-o D-~ ~ ~ 0 GD Q~ ~ ~ ~ G-D D->Q Q Q Q Qc-Q D-~ ~ r;r-- GD 0 0 0 [] [] I I ( b) (0) o G:{] 0 G-D 0 t!I [,] [,] Q<-Q [,J [] li1 ~ [] G-O [] o til ~ tm O<-D 0 o Q~ , , ~-t:;J Q OD-DDDOD o D-:{] 0 0 0 0 o 0 0-0-0 0 0 o m0 [,J til ~ 9 ~ ~ ,,-6 6 Q O~Ii1~litOD o o 0 0 [}:-D 0 0 0 0 G-D 0 0 lel o 0 G-D->O 0 0 o fi1 G-D 0 0 0 Q til fir-D 0 9 Q O[iJ~1i100J~ ommliltioD o 0 G-D->O 0 0 o 0 G-D->O 0 0 G-D 0 0 [,J< -Q Q [,J (d) o G-D 0 D->D 0 Q li}-D 0 0 Q Q O~~ODOO DliJD~DDD O~IiJ~mQO o G-D o 0 o-{] 0 G-D 0 D-~ 0 lel Figure 1. Scan-Mode Operations lf1 Abstract Shape Recognition By Machine / 337 was developed with the following objectives in mind: (a) it will consist of mechanizable processes but avoid extensive computational, housekeeping, feature-extraction, and storage requirements. (b) It will successfully recognize a certain number of categories of abstract shapes, together with large numbers of Size, positional, and certain rotational variants for each such shape, and it may exhibit some of the anomalies with respect to rotational transformations observed by Sutherland. (c) It will be useful for some practical applications, e.g., for closed vocabularies of selected shapes which are carefully drawn or deliberately constrained, as might be the case for stylized schematic drawings. 3. OPERATION OF THE MODEL In this particular model for shape recognition, the principle used ,is that of fired-cell coincidence counting with respect to the projection of excitation from given contourindicating cells against the cells which are also members of contours. A retinal mosaic or quantization grid in the form of a rectilinear array is assumed. Each cell has eight immediately adjacent neighbors and there are eight possible directions for a straight-edge contour line. For convenience, we will make certain simplifying assumptions and we will defer for later discussion questions of noise, resolution, effects of quantization, and the matter of multiple shapes distributed in the input pattern field. However, shapes entirely within other shapes can be handled one at a time. We assume that correctly drawn shapes are imposed on a square array of n x n units of size; that the line width is approximately equal to the width of a cell, or resolution unit, and that input patterns are at least several resolution units in size. We require a space free of objects (i.e., a border) in order to determine the background color. Thus only shapes which can be inscribed in ann-2 x n-2 area will be processed consistently. Means for detection of contour-membership (such as those described by Babcock [2]) are assumed to be included in the scan-mode operation, described below. In the scan-mode operation, horizontal and vertical scans are made with an individual scan-line for each row and each column of the array, in both directions, as shown in Figure 1/:' The scan-mode activities shown in Figure 1 proceed alo,!!e; each scan-line until a first "black" cell>;'''' is encountered. This is a contour-indicating cell. Whenever a scan-line reaches such a cell, it stops. Otherwise the scan-mode activities proceed along that line until the border of the field is reached. In example (a) of Figure 1, no cells have as yet been identified as contour-indicating cells. Example (b) indicates the status as of this initial step, plus one.t At this and in succeeding steps, precisely those cells which are the first blacks with respect to the scanline along which they were reached will "fire. " This firing is illustrated in the examples of Figure 3 by the dots superimposed on the appropriate shaded (input-pattern-affected) cells. As we have noted, scan-lines which encounter a contour-indicating cell will terminate at this point. For this reason, in this particular model of shape recognition, it is clear that the resultant activity based on fired cells will be the same for either a solid or an outline shape, examples (e) and (f) of Figure 1, and for shapes entirely containing other shapes or noise. Some contour-indicating cells will be reached by more than one scanline, but in this model the effect is the same for both single and multiple encounters. Scanning and contour-detection operations are followed by contour-projection activities as illustrated in Figure 2. This contourproj ection activity will be initiated in any fired (contour-indicating) cell which has an immediately adjacent contour-indicating cell, and it will proceed at right angles to the line joining such neighbors. A line of two or more ':'For purposes of illustration, the cells of the array are shown as displaced from. their im.m.ediate neighbors by one unit in all directions. ,:o:'That is, the cell at the edge of the object with enough black im.pinging on it to m.eet the quantization requirem.ents, as sum.ing the background is white. For a black background, this would be the first "white" cell. tQuestions of the tim.ing and sequence of scanning are imm.aterial because cells fired by the scan are counted only after' completion of scanning and propagation activities. Neither absolute nor relative tim.ing considerations are required for recognition in the present m.odel. 338 / Computers - Key to Total Systems Control 0101010:0 00000 ----------lo) -6 -z -6- - - - - - o o rtJ 0 o o UD COUNTER I lb} LR COUNTER 1 -~-i-~-~-~ ---------- ~II ,0,0 I ~:O:O 0 I 0 I 0'0 I I0 1 1 OOrlOD - ODffJOD ---------- ld) - - - - - - - - - 1 00000 RL COUNTER =1 ~ DU COUNTER=O ~ /[yU'O/Q/Q' " 'l;J"P"~"O M ' " 0" '9 , UD' , le) " " " "9' "0". ", "0' V I = =I O:~:Ii:O , I 0:0:0:0;0 0:010:0:0 (e) :0 0110 :&toto O:Olrt+o+o O'rit: If) i}' /f;)/~/ :jn" .1} UDDUt} , , "= , ,O'O'D'Cl'O " " " nna5D' "" U,0"0' 19) /ON 1J/~/~/t} LD COUNTER Ih) 2 ~~.,¢ ,d¢ ~'[} , {J)& D RU COUNTE R =0 Figure 2. RD COUNTER = I Contour-Projection Fronts in the Model AbstracLShape Recognition By Machine / 339 immediately adjacent fired neighbors thus defines projection ~ctivity for each in two directly opposed contour-projection "front" directions. These we categorize as "Leftright" (ffLR ft ) , and so forth for the eight possible front directions, as shown in Figure 2. Each of the activated projection-lines proceeds until it reaches another contourindicating cell, at which time a tally of this coincidence hit is made in the appropriate directional category. It is to be noted that the projection-line encounter possibilities are not limited to the case of diametrically opposite contour firings. No tally is made if the border is reached by the projectionpropagation line without encounters occurring. Further, only one coincidence hit per proj ection line is allowed in this model (that is, in effect, we start proj ections from the borders of the field and register only the first encounter, if any, along a given activated line). For instance, although four cells are projection-activated in the from-left-upward direction in example (e) of Figure 2 (these four meet the requirements both of scan-mode first encounter and of co-fired neighbors), only the two lowermost become effectively active in this "front" direction. Example (g) of Figure 2 illustrates a case in which two different fronts are established in the same direction (for this example, the from-rightupward), but in which no hits would occur in this direction. Figure 2 also gives the directional-counter hit-tallies which would occur for the appropriate ones of the projection-front-directions for the input patterns shown. Again, timing considerations are immaterial since fired cells remain active until, and use of counts takes place only after, the completion of all scanning and projection activities. Once the projection operations have been completed and all coincidence-hits have been tallied in the appropriate directional counter, the recognition-identification op era t ion s begin. These are based upon equalityinequality comparisons for the number of coincidence hits tallied in the eight directional counters, taken two counters at a time. For instance, in the case of the square, examples (e), (f), of Figure 2, the results of such compari sons which are necessary and sufficient to distinguish these squares from other shapes distinguishable by the model (Figures 3, 4, and 5, for example) are as follows: (I) LR = un (15) LR f. RU (2) LR = RL (16) LR f. RD ·(3). LR = DU (17) UD f. LU (4) UD RL (18) UD f. LD (5) un = DU (19) - UD f. RU (6) RL = DU -(20) -. UD f. Rn (7) LU = Ln (21) RL f. LU (8) LU = RU (22) RL f. LD RD (23) RL f. RU (9) LU (10) LD = RU (24) RL f. RD (11) LD = RD (25) DU f. LU (12) RU = RD (26) DU f. LD (27) DU f. RU (13) LR f. LU (14) LR i LD (28) DU f. RD Precisely these relationships will obtain for larger squares which have equal numbers of quantized units--pe..I' __~ide, whether outline, solid, -or- enclosing other- shapes. These results for equality-inequality comparison between the contour-projection coincidence-hit counters serve to distinguish an input pattern that is either a square or a diamond (45 tilted square) from other shapes such as those indicated in Figures 3, 4, and 5. However, in order to distinguish the square from the diamond, if desired, it is necessary to provide a tie-breaking decision based upon the number of contour-projection directional counters which have non-zero tallies. ~hat is, all eight counters will have tallies-in the case of the square::c, but in the case of the diamond only the four diagonal counters will have tallied hits):c*. Some of the other pairs of shapes shown in Figure 3 can be distinguished from each other only by the tie-breaking check of the number of counters having non-zero tallies for the given input pattern. The hypothetical model, operating as described' above, has been checked by manual simulation against a variety of geometriC shapes constructed of straight-line segments crossing near the centers of affected cells, specifically including the shapes shown in Figure 3. Obviously, shapes that can be separately discriminated from each other may also be grouped into sub-sets in various ways. Such grouping possibilities may be used to treat as equivalent the members of 0 ):cWith the TIlinor exception of the square that has only two resolution units per side, to be discussed later. ):o:cSee Figure 6, exaTIlples (c) of Cases I and II, and exaTIlples (a) of Case I and (b) of Case II, respectively. 340 / Computers - Key to Total Systems Control l. II. D 0 .:XlI[ or ~ c::::> o XiZIIl. XIX. D or ~. ~ :xx. or [7 :xxI. N. ~. w. ~ JZlIl. TIC X. A or v 6 V xxrr. or 0 or 0 XXIIl. ~ or XXN:. 0 CJ () 0 :xx¥.Q CJ XK.l> XX'l![. ~ ]Oli.~ XX\llJl. L XN·O ~.Ior ¥!I. xxx. L or or or or () L I J D or ~ or r-- or I or lS lOOOII. U :xmil. dJ :xmz:. U xmzr. [S V XXYI. XXXL XXXII. V L> XL ~ or r---......... XlJl.lII. Aor or ./" JIT:IX. Vor~or ""-.J l. II. < / or > T or \ or '> ) or -.- ~.[J ill. ~.JJ .r::rn:. ~ or XXYJK.. lJ LIV. I- or f-- or :xL. 6 N. or ----! or 'XII. P I'lC. /' or ~ JillL d J::lll. ./ or Dllif. "\- or L1X . A or Dr. . . . . .. l([JJf. XLIV. XL\, . c:::u U rI or or or ---L- '\ y/' T 1 or ..... or .. ~ or ~ -1 or • or / ' or ,/ or '\. or ~ ["other'J Figure 3. Example s of Shape s That Can be Separately Identified particular sub-sets chosen as categories of shapes which may be of interest, such as those shown in Figure 4. Categories such as those of Figure 4 may be further regrouped in various other ways. For example, we might require different responses for the tilted right angles and the "up right" singleline right angles shown in Category IX, but assign the same output response requirement (i.e., "upright right angle") both to the latter and to the members of Category X. Once decisions have been made as to grouping, the recognition logic may be based either on all 28 comparisons (made sequentially or in parallel) plus the 8 tie-breaking checks for number of counters with non-zero counts, or on shorter paths through adecisiontree network or equivalent decoding matrix in which the results of one comparison determine which of the other comparisons need also be made. Recognition-decision paths chosen to eliminate redundancy for a particular set of shapes may be selected on the basis of systematic procedures such as those suggested by Gill [16] or Glovasky [17], or on a trial-and-error basis specifically including the possibilities of reward-reinforcements for "learning" from experience with various "teaching" examples. A typical set of trial-and-error decision paths is shown in Figure 5, in the form of a computer program flowchare:~. This was determined from observation of results for various sizes, proportions, and 45 rotations of the 20 categories of shapes shown in the output boxes. These categories represent a further illustrative grouping of sub-sets of shapes, where a given shape may (double outline or solid "L ") or may not (triangle) be given the same output response assignment as one or more of its rotational transforms. An alternative output response, "other," is also shown in Figure 5, but in general it is presupposed that recognizable input patterns belong to some one of the indicated shape categories and that they are reasonably carefully drawn to meet the constraints implicit 0 ':~In Figure 5 and later figures, the notation (x) -:f 0 means "exactly x of the eight counters have non-zero tallies." Abstract Shape Recognition By Machine / 341 m. D @]aDDEJ[J~~ O.0.~oO <:> 0 • ® 01 00 N. ~~A~~ [7 ~ 6~~~v [> ~ ~~ DI XL E. 0 <> I I =0 [J dJ [L' ~ lJ(l C => [S ~ D CJ (J ~ [ill ( ) <0' ~ L I I ~ L v~ x. 00 [7 J \) (j I li ~ f1== T ~ t- -1 Y '-< ~ ~ 1A" Figure 4. L> H Examples of Shapes That Can Be Recognized as Equivalent 342 / Computers - Key to Total Systems Control t"::N::-O- - - - - - - - - - - - - - - - - - { ( S h . O ? ) . . - - - - - - = - - - . NO Figure 5. Recognition Logic For Selected Shapes in the system. Within these limiting conditions' this program (or an equivalent coincidence-gating network) would make a very high per c en tag e of correct recognitiondecisions regardless of size, position, and certain rotational transformations. However, in some cases, especially for some shapes (e.g., double outline or solid "V" and ''Un) not included in the groups of recognizable categories in Figu;res 3 and 4, anomalies and ambiguities will occur for 'certain critical sizes or proportions. 4. AMBIGUITIES, ANOMALIES, AND PROBLEMS OF PRACTICAL APPLICATION Some of the anomalies and ambiguities observed in the model are illustrated in Figure 6. In each of the cases shown in Figure 6, example (a) is ambiguous with respect to example (b), but not so with respect to example (c). Case Iof Figure 6 involves the exception previously noted that a square of the minimal size that is identifiable in the model (i.e., two cells or resolution units per side) behaves as though it were a "tilted square," or diamond. We consider this case one of anomaly, since if we wish to treat the 45 0 , 90 0 , etc. rotational transforms of a given shape as being the "same" shape, there would be no problem. We reserve the term "ambiguityft for cases in which aparticualr shape is confused by the model with a shape belonging to an "obviously" diff'erent category. Case II of Figure 6 illustrates a perSistent ambiguity of the cross and the diamond. Figure 6 next shows (Case m) the special case of the triangle which has 3x3x5 dimensions after quantization. This presents the anomaly that the mirror images cannot be distinguished from each other, whereas for larger triangles of the same type thisdistinction may be made if desired. It is therefore an example of anomalies occurring at a certain critical size. Other cases such as the ambiguity of the double outline or solid "V" with the pentagon, and the anomaly with Abstract Shape Recognition By Machine / 343 IT I &I iJ I!J 8 I!lIiII!I IS l!IiJ I!) I!J I!II!IOI!)I!J il l!Il!J&J1!I I!) e I!l I!J 11 (0) I!J f!J iJ til II !J I!J .1!I81!11!1 &J r!I I!l !J ell!) )l[ II :Dr ]]I I!l I!I iii I!I I!l &ISS il I!J I!l &JI!II!) !!JI!)I!) I!)I!JI!) I!J !I !I Ii 8 !I I!) 8 8 8 S I!) I!I S I!) 8 iJ &J I!I £!l 8 I!J I t~:~ ~:~ ~:~ :t:~ I ~:~ =~ I ~~:~ :t:~ ~:: ::~ ~:= ~:: ~:~ ::: ____I4~L_~ ____________m_-o_ _--I-_ _ _ I 8 melm I IilS Iil II 8 El m 8 I I (b) ~~:g ~:~ LO:O ROoO I I LR-O I I '00 UtaO ~8:g ~g w02 L0 0 3 L002 1100 2 RO:3 '00 OU:2 RU02 RO:2 17UIoO (.) US , " Nature, 185:4711 (February 13, 1960), p.443-446. - - - - - - "A Theory of Shape Recognition," British Journal of Psychology, 46: Part 1 (February 1955), p. 30-37. Dimond, T. L., "Devices for Reading Handwritten Characters," Proceedings of the Eastern Joint Computer Conference, Washington,December 9-13, 1957, vol. 12, p. 232-237. Dinneen, G. P., ffProgramming Pattern Recognition," Proceedings of the Western Joint Computer Conference, Los Angeles, March 1-3, 1955, vol. 5, p. 94-100. Doyle, W., "Recognition of Sloppy, HandPrinted Characters," Proceedings of the Western Joint Computer Conference, San Francisco, May 3-5, 1960, vol. 17, p. 133-142. Fain, V. S., "The Quantity of Coordinate Descriptions of Images in Systems for Recognition of Visible Patterns," In: Soviet Developments in In for mat ion Processing and Machine Translation. New York, U. S. Joint Publications ResearchService,28July 1960, 14 p. (JPRS: 3570) . Farley, B. G., "Self-Organizing Models for Learned Perception. ff In: Selforganizing Systems; Proceedings oran 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Interdisciplinary Conference, 5 and 6 May 1959, edited by M. C. Yovitz and S. Cameron, New York, Pergamon Press, 1960, p. 7-30. Fitch, C. J., "Character Sensing and Analyzing System," U. S. Patent 2,682,043; patented 22 June 1954. Garmash, V. A., V. S. Pereverzev, and V. M. Tserlin, "Quasi-topological Method of Letter Recognition," In: Foreign Developments in Machine Translation and Information ProceSSing, No. 19. Washington, U. S. Joint Publications Research Service, 23 January 1961,p. 1-6. (JPRS: 6633.) Gill, A., "Minimum -Scan Pattern Recognition, "IRE Transactions on Information Theory, IT-5:2 (June 1959), p. 52-58. Glovazky, A., "Determination of Redundancies in aSet of Patterns," IRE Transactions on Information Theory, IT -2:4 (December 1956), p. 151-153. Grimsdale, R. L., F. H. Sumner, C. J. Tunis, and T. Kilborn, "A System for the Automatic Recognition of Patterns, " Proceedings of the Institution of Electrical Engineers, 106, Part B (March 1959), p. 210-221. Harmon,L. D., "A Line-Drawing Pattern Recognizer," Proceedings of the Western Joint Computer Conference, San Francisco,May 3-5,1960, vol. 17,p. 351-364. Hebb, D.O., "The Organization of Behavior." New York, Wiley, 1959,335 p. Holland, John, "A Universal Computer Capable of Executing an Arbitrary Number of Sub-Programs Simultaneously, " Proceedings of the Eastern Joint Computer Conference, Boston, December 1-3, 1959, No. 16, p. 108-113. Johnson, R. B., "Indicia-Controlled Record Perforating Machine." U. S. Patent 2,741,312; patented 10 April 1956. Kamentsky, L. A., "Pattern and Character Recognition Systems; Picture Processing by Nets of Neuron-Like Elements," Proceedings of the Western Joint Computer Conference, San Francisco, March 3-5, 1959, No. 15, p. 304-309. Kirsch, R. A., L. Cahn, L. C. Ray, and G. H. Urban, "Experiments in Processing Pictorial Information with a Digital Computer," Proceedings of the Eastern Joint Computer Conference, Washington, December 9-13, 1957, No. 12, p. 221229. 350 / Computers - Key to Total Systems Control 25. Kovasznay, L. S. G. and H. M. Joseph, "Image Processing," Proceedings of the IRE, 43:5 (May 1955) 560-570. :-:-:. - - - and A. Arman, "Optical Autocorrelation mea sur em en t of TwoDimensional Random Patterns," Review of Scientific Instruments, 28:10 (October 1957) 793-797. - - - - - - and H. M. Joseph, "Processing of Two-Dimensional Patterns by Scanning Techniques," SCience, 118:3069 (23 October 1953) 475-477. 26. Minsky, M. L., "Steps Toward Artificial Intelligence, fI Proceedings of the IRE, 49:1 (January 1961) 8-30. 27. Novikoff, A. B. J., "Statistical Properties of Geometric Figures Invariant Under Translation and Rotation." In: Transactions of the Symposium on Principles of Self Organization, University of Illinois, June 1960, edited by H. Von Foerster. London, Pergamon (in press). 28. Pitts, W. and W. S. McCulloch, "How We Know Universals-The Perception of Auditory and Visual Forms," Bulletin of Mathematical Biophysics, 9: 3 (September 1947) 127-147. 29. Roberts, L. G., "Pattern Recognition With an Adaptive Network." IRE International Convention Record, 8 part 2 (1960) 66-70. 30. Rochester, N., J. R. Johnson, G. M. Aondahl, and W. E. Mutter. "Recognition of Recorded Intelligence, " U. s. Patent 2,889,535, patented 2 June 1959. 31. Rosenblatt, F., "The Perceptron: A Perceiving and Recognizing Automaton. " Buffalo, N. Y., Cornell Aeronautical Lab 0 rat 0 ry, January 1957. Project PARA. Report No. 85-460-1 - - - - - - "Perceptron Simulation Experiments, " Proceedings of the IRE, 48:3 (March 1960) 301-309. - - - - - - "Perceptual Generalization Over Transformation Groups." In: SelfOrganizing Systems; Proceedings oran Interdisciplinary Conference, 5 and 6 May 1959, edited by Marshall C. Yovits and Scott Cameron. New York, Symposium Publications Division, Pergamon Press, 1960, p. 63-100. 32. Schade, O. H., Sr., "Optical and Photoelectric Analog of the Eye, " Journal of the Optical SOCiety of America, 46:9 (September 1956) 721-739. 33. Selfridge, O. G., "Pattern Recognition and Modern Computers," Proceedings of the Western Joint Computer Conference, Los Angeles, March 1-3, 1955, No.5, p. 91-93. 34. Shepard, D. H., P. F. Bargh, and C. C. Heasly, Jr., "A Reliable Character Sensing System for Documents Prepared on Conventional Business Devices," IRE WESCON Convention Record, 1, part 4 (1957) 111-120. 35. Sherman, H., "A Quasi-Topological Method for the Machine Recognition of Line Patterns," In: Information ProceSSing; Proceedings of the International Conference on Information ProceSSing, UNESCO, Paris, 15-20 June 1959. PariS, UNESCO, Munchen, R. Oldenbourg; London, !3utterworths, 1960, p. 232-237; addendum, p. 237-238; discussion, p. 238. 36. Singer, J. R., "Model for a Size Invariant Pattern Recognition System." In: Bionics Symposium, 13-15 September 1960. Wright-Patterson Air Force Base, Ohio, Directorate of Advanced Systems Technology, Wright Air Development Division, Air Research and Development Command, Dec e m be r 1960, p. 239-245. (WADD technical report 60 -600) ASTIA doc. No. AD-252,300. 37. Sutherland, N. S., "A Test of a Theory of Shape Discrimination in Octopus VulgariS Lamarck," Journal of Comparative and Physiological Psychology. 52:2 (April 1959) p. 135-141. 38. Taylor, W. K., "Pattern Recognition by Means of Automatic Analogue Apparatus," Proceedings of the Institution of Electrical Engineers, 106, part B (March 1959) 198-209. 39. Uhr, L., ''Intelligence in Computer s the Psychology of Perception in People and in Machines," Behavioral Science, 5:2 (April 1960) 177-182. - - - - - - and C. Vossler, "A Pattern Recognition Program that Generates, Evaluates, and Adjusts Its Own Operators," Proceedings of the Western Joint Computer Conference, Los Angeles, May 9-11, 1961, vol. 19, p. 555-569. 40. Unger, S. H., "A Computer Oriented Toward Spatial Problems," Proceedings of the IRE, 46:10 (October 1958) 1744-1750. Abstract Shape Recognition By Machine / 351 - - - - - - "A New Type of Computer Oriented Toward Spatial Problems, " Proceedings of the Western Joint Computer Conference, Los Angeles, May 6-8, 1958, No. 13, p. 234-239. 41. Uttley, A. M., "Imitation of Pattern Recognition and Trial-and-Error Learning in a Conditional Probability Computer," Reviews of Modern Physics, 31:2 (April 1959) 546-548. CHRYSLER OPTICAL PROCESSING SCANNER (COPS) A Character Recognition System Which is Independent of Character, Translation, Size or Orientation D. N. Buell Chrysler Corporation Centerline, Michigan ABSTRACT A character recognition system is described which incorporates a lens-and-retina input and a relatively simple computer, The system operates effectively with the image focused anywhere on the retina and may operate so as to be independent of image, size or orientation. The characters which maybe unambiguously, discriminated are those which have distinct transform functions T~:~. A simple algorithm is given for obtaining T~:~ for both curvilinear and rectilinear figures. Examples are given and possible means of resolving the ambiguities discussed. The Transform of a Pattern This paper describes the conceptual mechanization of an optical scanner designed to accomplish a specific, well defined task. After the machine is described, there is given a brief discussion of processes, events and components which form apartofthepsycho-physiological visual system. It appears that there are, at least superficially, a number of analogous concepts. Computers designed to recognize patterns may take either of the forms shown in Figure 1. Some preprocessing on the inputs results in a transform (the round dot in the Figure). It is this transform which is identified or recognized by the computer. Usually, the transform is a binary number. The number may be identified as such, existing in some specific registers in the machine, or it may be phYSically or logically distributed, and represented by the binary 0 - 1 state of several elements of different circuits. But, in INPUT INPUT PR EP ROCESSOR M E M LOGIC CIRCUITS o R y OUTPUT OUTPUT Figure 1. Diagrams of generalized scanner principle s illustrating that identification is based upon a transform of the input, rather than the input itself. 352 Chrysler Optical Processing Scanner (CORS) / 353 either case, it is this number-this transform-on which the identification or recognition logic operates. The two schemes shown here are, perhaps, only different diagrams of the same functional blocks. In any case, it is the intent of this paper to discuss a class of preprocessing operations and the transforms which they produce. It is taken for granted that if a binary number exists in the machine which contains sufficient information to discriminate the pattern of tbe input, then logical operations can be formulated to produce as output a signal identifying the pattern presented. But the form of the transform function is important because it has a strong influence on the capacity of the memory or the complexity of the logic required for recognition. The preprocessing includes, typically, an optical-to-digital transducer system, a magnetic reader, or an acoustic-to-digital transducer system. It may, also, include certain logical operations on the digital data. And, of course, it may use an analog, rather than digital techniques. • Figure 3. Typical characters which should be identified as similar by a form-perceiver which is not affected by size of orientation. of its size, its orientation, or the location of its image on the retina. In other cases, however, these differences are as important as the form. If the machine scans the equation at the top of Figure 4, it will see 12 separate symbols, but these are made up of only 4 forms, (A, Bar, 6, and dot). A:=16.9· AI AA A-16 9· CHARACTERS The Chrysler Concept Figure 2 shows the system which is to be discussed. We are concerned with producing a transform; that is, a group of digital bits which can be uniquely associated with the character presented. For some applications, it would be nice to associate the characters in Figure 3 as being alike and to produce the same set of binary bits as the transform for each of them. More formally, it would be nice to have the machine identify a square form, regardless CHARACTER /ENS ~ RETINA OUTPUT (TRANSFORM FUNCTION) PHOTORECEPTORS Figure 2. Schematic of generalized optical scanner. 011010 110111 000100 111010 FORM SIZE ORI ENT ATION LOCATION A - 6 . Figure 4. A typical equation to be scanned, and a hypothetical transform in which disjoint sets of bits discriminate form, size, orientation and location of the image. If we can generate a transform (shown conceptually as a binary number in Figure 4), in which certain digits are identified with shape or form, others with Size, some with orientation, and still another set with location, the logical operations of recognition will be much Simplified. The number of shapes which must be memorized by the machine will be substantially reduced. It is not the intent here to justify the desirability of having disjoint sets of bits, each set associated with some property of the character. There is enough literature on the subject already, both in the computer field and in the psychological analysis of human perception. 354 / Computers - Key to Total Systems Control To a limited degree, the system to be described does just this. Of course, this is not the whole problem. A general purpose pattern recognizer may be confronted with Figure 5 and must recognize not only the similarities but also the differences between these sets of characters. A Transfarm T T TT T Figure 5. A typical problem for a general pattern recognizer which should discriminate both the similarities and th~ differences in the sets of figures. But, even though it doesn't do everything that might be asked of it, there seems to be a measure of utility in the system shown in Figures 6 and 7. Here a part of the preprocessing is done optically. An optical wedge is rotated so that the image is caused to nutate on the retina. The wedge driver motor also drives a commutator which puts out timing signals. The circuitry is shown in Figure 7. . Caunters Figure 7. Schematic circuits of the Chyrsler Optical Proce s sing Scanner. Each of the n photo receptors in the retina is connected to a differencing circuit or "flicker filter," (Symbol F), which compares the signal now with what itwas an instant ago and emits a pulse if they are different. These pulses are connected to one large bank of OR gates. The output at Point A, Figure 7, is one pulse every time anyone of the receptors changes state. The number of receptors and duration of single pulses are such that the overlapping of signals from two receptors to form a single output pulse at "A" is statistically a rare event. The effect is ignored. The m timing signals direct traffic of these pulses so that, for the first increment of rotation of the wedge, the pulses are accumulated in Counter No.1, the next increment of rotation reads pulses into Counter No.2, and so on. If there are 180 counters, each will, after 180 of wedge rotation, have counted the flickers during 1 degree of travel. The counters are emptied every 180 The counter readings may be plotted as in Figure 8. The curve these pOints represent may properly be called a transform of the character which generated it. It is denoted as the T* transform. Two kinds of differences exist between a real transform and an ideal one. In the left half of Figure 8A is shown the result of using an infinitely divisible retina and a finite number of counters. The curve is approximated by a step function, but no better approximation is possible without using smaller increments. In the right half of the same Figure, both a finite size and a number of retinal 0 WEDGE DRIVE MOTOR 0 • Figure 6. The conceptual arrangement of the Chrysler Optical Processing Scanner. Chrysler Optical Processing Scanner (COPS) / 355 ~ ~ ~ ,.......-r-=' ~ ~-:::-:::~ ~ 7 1I en ... GI ~ - U U. o Q; 0 ... A CII E A E ;:) Z ;:) Z m 0 7r Nutation Phase Angle Counter Number A. The effect of a finite number of counters. B. The effect shown in "A", together with the effect of a finite retinal matrix. Figure 8. Real transforms (A) and idealized transform (B), generated by Chrysler Optical Processing Scanner. elements and a finite number of counters are used. The approximation is somewhat more irregular. In what follows the idealized transform in Figure 7B is discussed. It is assumed that there are infinitely many retinal elements and counters. The degree of approximation permitted in a real machine will depend on the job it has to do. The T* transform in the counters :tnay be cyclically shifted, as shown in Figure 9, until the smallest value lies in Counter No.1. The result is denoted as the T R* transform of the character. If after this operation.each T* Transform Counters TR Transform Counters TN Transform Counters Figure 9. Shift-and-divide operations which generate the T R ~( transform (invariant with respect to character rotation) and the TN ~:( transform (invariant with respect to size). counter is divided by the number in Counter No.1, a T*N transform is produced. With this description of the system in mind, we can now begin to discuss its characteristics. The machine description above is entirely'conceptual. It must be emphasized that such terms as wedges, counters, commutators, et al are only convenient terms for description; the hardware of a real scanner would be functionally the same, but phYSically far different. Discriminability and Invariance The transform of a circle is a horizontal line, (Figure 10). The rate at which the circle covers and uncovers the receptors as it nutates is constant. The transform of a square is proportional to / sin e + cos e/, where e is the nutation or. phase angle; with a reference established by setting e = 0 at the time the pulses begin to accumulate in the first counter. Since the transforms are different, at least these two characters can be discriminated. Consider next the two characters in Figure 11. The transforms of these two characters are identical, except that one is out of phase with the other by an amount equal to the difference in angular orientation. But in the computer, the TR* transforms will both have been shifted (by different amounts) until they have the same position in the counters. 356 / Computers - Key to Total Systems Control T Figure 12. Two characters having distinct T*R transforms, but identical T*N transforms. Figure 10. Two simple characters which are discriminated. The T* transform of a circle is a horizontallinei for a square, it is a (sin e + cos e). T Figure 11. Two characters having distinct T* transforms, but identical T)rR transforms. Therefore, the TR* transforms of these two characters are identical. If we wish to compare the transforms with a number of prestored bits, one set of bits in the memory will match either character. But if, in the shifting of the transforms in the counters, we count the number of shifts performed to bring the minimum counter reading into the first counter, the result is a number which gives a measure of the orientation of the character of the retina. In Figure 12, one more vari~ple is introduced-size. The larger figure will "sweep out"-Le., cover and uncover-more receptors and produce more flickers than the smaller one. And the number of flickers generated will be linearly proportional to a linear dimension of the characters. But, in generating the normalized transform, T*N, every ordinate of the T R* transform (or every counter reading) was divided by the minimum value. The result is that Counter No.1, which holds the minimum value, reads "1", for both transforms-and the TN* transforms of the two characters are identical. The information as to the size of the image, however, need not be lost. The reading in Counter No. 1 of the T*R transform gives a measure of the size of the character. The foregoing results are stated more formally in the Appendix. At this point, we may summarize the properties of the scanner, as in Figure 13. The form of a character generates a group of bits, T*N' which are identical for all Sizes, orientations and locations on the retina. It is truly a measure of form or shape only, unaffected by the other three properties. Form T*N Size Orientation Counter #1 Shift Count TR T* to TR Location , • Figure 13. Summary of the specific transform bits associated with form, size, and orientation. The orientation of the character is given by the count of the number of shifts to bring the minimum reading into Counter No.1. This orientation has no meaning if we wish to compare the orientation of Character A with Character B. It is only meaningful in comparing the orientation of 2 A's, one of which can, of course, be a standard which is displayed erect and stored in the memory. The size of a letter, measured by the entry in Counter No. 1 of the T*R transform likewise does not compare the size of an A with a B, except, perhaps, very approximately. In this device, then, it appears that the perception of form is independent of the other Chrysler Optical Processing Scanner (COPS) / 357 parameters; the others are not, however, completely independent of form. It is patently impossible for the systems described to provide a measure of the location of the image. The processing takes note of how many receptors flicker and at what time during the nutation cycle. Nowhere is there any information as to which receptors change state. This is not the only deficiency in the device. Two characters, which are the same exceptfor a 180 rotation, are not discriminable. This is evident from the fact that the transform is cyclic with a 180 period. For the same reason, we cannot distinguish a reorientation of the figure through 30 from one through 210 A second form of ambiguity arises because if two characters or parts of characters are scanned Simultaneously, the transform is the sum of the transforms of the two when scanned separately. This source of ambiguity may also be ascribed to the inability of the machine to sense the location of an image, or part of an image, on the retina. These two ambiguities are illustrated in the next two Figures. Figure 14 shows figures which are ambiguous due to 180 rotation -polar symmetry. A -• •- -- C -• 0 • 5 -• 0 0 0 • 0 (I ) 6 ...!.... 9 Figure 15. Examples of characters not discriminable (by the basic flicker-count circuits) because of failure of these circuits to provide image-location information. The obvious question is how to add necessary circuits without lOSing the desirable characteristic that form, size and orientation are separately identified; and, also, without complicating the circuitry by trying to recognize which receptor is excited at a given time. a 360 cycle, the number of receptors turned on will always equal the number turned off. It is evident, with a little geometric reasoning, that each receptor which is affected at all must in360° change state an evennumber of times. But, consider the characters in Figure 16. These two characters have identical transforms, but in one case there are two changes-of-state in each affected receptor and in the other there will be four changesof-state in some receptors. A count of the number of receptors which change state four or more times b e com e s an additional -rn 0 Symbol I denotes two charactors which have equal transforms. Figure 14. Examples of characters not discriminable (by the basic flicker-count circuits) because of polar sy:m:metry. Figure 15 shows figures which are ambiguous because they are each the sum of the same elements, the elements being located differently with respect to each other. An element is defined as a boundary between a black area and a white one. A machine which cannot distinguish a 6 from a 9 is somewhat limited in its usefulness. Figure 16. Examples of characters discriminable by counting receptors which have :multiple changes-of- state. 358 / Computers - Key to Total Systems Control transform and provides the information which will distinguish these two characters. This scheme is, of course, in addition to, rather than instead of, what has already been described. There are other schemes-many of themwhich will assist in the discrimination of characters. Some of these schemes are better at resolving one form of ambiguity, others are better for other characters. Two of these will be discussed. Imagine a feed-back circuit associated with each receptor, such that when the receptor changes state its output is blocked for a short time interval. This has the effect of inhibiting the second of two flickers which occur too close together in a single receptor. Figure 17 illustrates the effect of this circuit on two otherwise ambiguous characters. The effect is to produce for the two characters transforms which are different. The flickers which would normally be produced by the segments shown dotted do not appear when the dotted segments follow too closely the adjacent line. It is somewhat as if fillets were added, but these fillets vary in $ize as the image nutates and only appear at all when the nutational phase angle is in the appropriate quadrants. It is, therefore, feasible in principle to utilize the transform as modified by this device instead of the ones previously discussed. The next ambiguity-resolving scheme was derived from trying to make a 6 and a 9 funda- 6 9 Figure 18. A (hypothetical) strategem for producing discriminable images from characters not discriminable by the basic flickercount circuits by optical distortion. 1 Square :!: 1 Receptor Numbers Refer To Quadrants in Which Flicker Count Is Reduced For The Segment Shown. Figure 19. Schematic representation of a non-uniform retina which simulates electronically the effect of optical distortion. Figure 17. Examples of characters which are discriminable by circuits which inhibit the second ,two changes-of-state occurring too close together. mentally different by optical distortion. If the image formed on the retina results from reflection from a warped mirror, so as to produce distortion as in Figure 18, the polar symmetry disappears and distinguishable transforms results. However, the equivalent of optical distortion can also be produced as shown in Figure 19. The size and spacing of retinal elements is progressively diminished near the bottom of the retina. The effect is to increase the number of flickers produced by the lower half of the character exactly as if the image had been optically distorted as before. The transform can still be "normalized" as before to produce invariance with respect to Size, location and orientation, although the computations to do so are more complex than the simple shift and divide operations described above. Chrysler Optical Processing Scanner (COPS) / 359 This scheme suffers from the fact that the retina at the top must be fine enough to produce suffic iently smooth transforms, and finer still at the bottom. Consider the next modification in the sequence, (Figure 20). 1 I I Figure 20. Schematic representation of a non-uniform grouping of retinal elements which produces the same result as the retina of Figure 19, but without variable size or spacing of retinal elements. Here, a uniform retinalmatrix is usedand transforms are generated, as illustrated in Figures 6 and 7. In addition, taps from the receptor outputs are connected to additional circuits. Near the top, groups of receptors are grouped in these circuits so· that they behave as single receptors. To do this, the circuits effectively pass the flicker pulse associated with the first of the group to change state and then inhibit the remainder of the group from emitting pulses. In these circuits, therefore, the group acts as a s'ingle receptor. The effect of grouping receptors in this way is the same as if the optically distorted 6 or 9 had been focused on the retina and the characters are, therefore discriminable. The number of variations and additions to the se concepts has not been exhausted in the descriptions above. For implementation in a generalized pattern-recognizing computer, several of these schemes may be combined. Further discussion of the ambiguities resulting from the simple circuits and of means of resolving them is not fruitful without more rigorous mathematical formulation. It is pOSSible, however, to list a few of the transform -generating schemes which may be useful for specifiC applications. 1. Count the total number of changes-ofstate and read them into counters by the use of timing pulses. (This is the basic countand-sort arrangement described above-.)-2. Count and sort the changes-of-state while the image moves off the edge of the retina. Alternately, after 180 0 of motion, switch out or inactivate those receptors just ahead of the moving image so that, effectively, an "edge of the retina" is artificially produced. 3. Count and sort separately the number of receptors which change state two, four, six or more times. 4. Count the number of receptors illuminated (or dark) at some instant. 5. Number the rows of receptors, from I to U, and let each row generate a number of pulses r, such that r =f(U). Together, with normalizing circuits, this scheme provides one coordinate of the location of the image. 6. Number the column, as in 5, to obtain the other coordinate for the location of the image. 7. Countand sort only the first change-ofstate for each receptor in each cycle. Imperfect Patterns Some comment on the uncertainty in the shape or form to be recognized is appropriate. The analysis has been based upon the assumption that characters to be recognized as identical were, in fact, congruent, pure black on a pure white background. Figure 21 shows an enlargement of typical characters from 12 point type. The irregularities on a vertical outline will effectively increase the flicker count most during that portion of a cycle when the image is moving vertically. The result is to increase the flicker count-never to reduce it. Figure 21. A typical enlarged character, originally set in 12 point type, and illustrating characteristic irregularity of outlines. 360/ Computers - Key to Total Systems Control Several "hole filling" or contour smoothing techniques have been discussed in the literature. It appears possible that a relati vely simple strategem can be effective in systems utilizing image nutation, as is described here. If the image is optically defocused, a gray outline is formed, like that of Figure 22. The lower figures represent the effect of equal blurring of the characters above. If the s e fuzzy character s were scanned, using autocorrelation techniques depending on which receptors were stimulated above a given threshold, the thresholds or sensitivities would have to be very carefully controlled. Otherwise, the low brightness gradient would magnify, rather than diminish, the irregularity of the border. Figure 22. A pictorial description of the influence of defocusing or blurring on a typical and a perfect letter. The blurred images are more nearly alike. However, consider an image moving normal to such a fuzzy edge. The receptors which are at the low end of the threshold tolerance would change state late, those at the high end early. Since we are simply counting the changes-of-state and don't care at all which receptors are involved, these effects tend statistically to cancel or "average out." During that portion of the nutation cycle when the image moves parallel with a fuzzy edge, low and high threshold receptors are likewise less likely to undergo unwanted changes-of-state. This technique is, in fact, akin to certain hole filling schemes, except that the filling is accomplished by distributing light from a point to adjacent points, rather than by distributing calculated probabilities. The blurring of the image may also be created by other means, as by superposing a high frequency vibration on the lens-objectimage system, or by passing the image through a silk screen, or equivalent grid. This latter technique may be considered to be borrowed from the photographers who "soften" their portraits to remove harsh contrast. Nutation and Other Image Motions Mention should be made of the reasoning which led to the use of nutation as the image motion which is most effective. It is intuitively evident (and is simply derived mathematically) that line segments of characters produce little or no flickers and hence do not input a Signature to the computer while their motion is parallel with the segment.· To pick up lines of character in any orientation, there should be some interval during which the motion is normal to every line. Nutation is such a motion. It may be more formally stated that no motion generate s a transform having more information content than nutation. There are, however, many motions which do as well. Any of these may be resolved into a nutation and some superposed motion. ConSider, for instance, the superposition of a lateral translation and nutation, which produces a net motion, such as is shown in Figure 23, for each point in the image. The translation adds or subtracts from the lateral (horizontal) component of nutation velocity. So long as the superposed lateral velocity V is always less than the velocity of the nutation, Rw, the image vector will, at some time during its cycle assume every direction from a + 00 to a - 00 slope. Such a motion produced no loss of information. So long as the superposed motion is known, the flickers it produces or inhibits do not subtract from or add to the information content of the transform. When such a superposed image movement exists, it may be found desirable to generate timing pulses of unequal duration. Figure 23. Sketch of the cycloidal path of an image-point over a retina which results from superimposing nutation and lateral translation. Chrysler Optical Processing Scanner (COPS) / 361 It is, therefore, nearly as easy for the scanner to "read" a moving character as a fixed one. The capability for discrimination of images without bringing them to rest in front of the lens can be a useful asset for some applications. The technique of moving the image may b.e thought of as a sort of time-sharing of ~ircuitry in which the switching is accomplished optically. Instead of connecting "edge autocorrelation" circuits to various receptors in sequence, the image is "connected" sequentially with different receptors in sequence. Thought of in this light, the optical wedge replaces the switching circuitry. Mirrors and Fiber Optics There are a few further strategems which may be used to reduce still further the number of logic blocks and receptors required. Not all of these can necessarily be used simultaneously. The choice of which to use depends upon the application. In Figure 24 is shown a character being nutated over a semi-circular retinal array of receptors. A system of mirrors is so arranged that as the image leaves the retina on top, its reflection enters below. The number of receptors and the circuits associated with each is halved. In Figure 25 is shown a different arrangement. The matrix of retinal elem~nts is composed of the ends of optical fibers. The other end of the fibers carries light to the photo receptors proper. All of the fibers bearing the same number communicate to the same receptor. In the scheme shown, 459 fiber ends are connected to 91 photo multiplier tubes. H the largest character to be scanned can be completely enclosed within a circle inscribed in one of the large bold-face hexagons, no loss of information will result. It is evident that with the size restriction it will never Occur that one part of a character moves to turn on or illuminate a tube which is already on, or vice versa. It is probably true that the highly organized connectivity shown, where the optical fibers are accurately grouped, is not really necessary. Within limits, the fiber ends could be connected "at random" to the photo receptors. In this case, if the multiple connections are carried too far, large sample statistics govern, and the instantaneous "sample" of elements turned on and off will always be the same as that of the population. The ''population'' of flickering cells have an average of zero, since every receptor turned on will be turned off during a cycle. There will, therefore, be no net change of illumination and no flickers. But if the statistical scheme used to define "random connectivity" is properly selected, random connections may be used with only small degradation of information content in the transform. Composite Images-Words vs Letters Figure 24. Sketch of the image formed when a mirror system is used to bring a reflection onto the bottom of a retina as it leave s the top so that fewer receptors are required. Some interesting properties of this scheme arise from the theorem, stated earlier, that the transform of a character is the sum of the transforms of its parts, taken as if they were separately scanned. Suppose the image focused on the retina consists of two letters, A and B. The transform will then be the sum of their separate transforms. Assume, for the moment, that there are a sufficiency of the ambiguity-resolving circuits to discriminate each letter separately. H there are no two or more characters, the sum of whose transforms is identical with that of a third one, then the transform of AB maybeuniquely associated with these two letters,\ but not their order. This property opens up the possibility of reading words rather than letters. Obviously, if the output is an electric typewriter, no advantage accrues to the system. H, however, 362 / Computers - Key to Total Systems Control Figure 25. Another scheme for diminishing the number of photo receptors required by connecting the optical fibers (shown as circle s) to photo receptors (numbered). the output is to a language-translating computer, which must have a dictionary stored in its memory, anyway, the scanning of words rather than letters may be useful. Without going into detail, this same theorem may be said to offer the possibility of analyzing a character into its separate parts. The analysis will, in general, not yield completely unambiguous results. However, if one leg of a character is missing, it is reasonable to consider predicting probabilistically the intended character and the rechecking by other techniques. Scanner Characteristics Summary The Chrysler Optical Processing System exhibits the following characteristic behavior: 1. There is generated within the logic a transform of the image in which character form, Size, orientation, and location are represented by diSjoint sets of bits. 2. Image movement may, if convenient, be superposed on nutation-characters need not be brought to rest to be read. 3. Character imperfections may be effectively smoothed out by blurring, without complex hole-filling circuitry or precise biasing of receptor thresholds. 4. Accurate servo-centering of imageson the retina is unnece ssary . 5. Words may be read instead of letters; characters may be analyzed into their elements. Chrysler Optical Processing Scanner (COPS) / 363 6. Various means, both optical and electronic, may be used to reduce the number of retinal elements and logic blocks required to obtain the effect associated with a fine-grained retinal matrix. Each of the six statements above should include the phrase, "-subject to limitations as discussed in the text." The Psycho-Physiological Parallel The description of the scanner and a survey of its capabilities, both im~ediate and potential, is complete. It would be amiSS to omit mention of the striking, though possibly superficial, similarities which exist between this scanner and the processes, events and components of the human visual system. There are several of these psycho-physiological analogies. The image formed on the human retina is not still, even when the observer attempts to fixate a particular point. The motion of the fixation pOint on the retina has been measured and looks something like that of Figure 26. The movements take the form of sharp, fast flicks, with a slower drift between flicks, rather than the smooth nutation which is convenient for the machine. Superposed on this is a high frequency tremor. It has been reasoned that the nutation of the image is an optimum image-movement tactic. Asa speculation, it would be of interest to examine how well these drifts and jerks apprOXimate nutation. The obvious first choice for a straight-line approximation to a circular motion is a regular polygon. TREMOR: 20 - 150 cps .2 IIIln. arc (nat ,hown) "FLICK": ~ 60 ",in. arc .03 to 5 ,econel, between flick. min. arc/sec DIAMETER: 10 mln.arc Figure 26. Typical movement of the fixationpoint of the human eye, consisting of a high frequency tremor, a series of jerks, and a saccadic jump to compensate for the cumulative drift due to jerk. In the inaminate scanner, we must accumulate the transform for whatever time is required to nutate 180 0 before the transform is complete. If after' a transform is generated the machine memory could only be exposed to two small parts of it, what parts would yield the most information? Vertical motion yields the most information about horizontal lines and vice versa. It would be to our advantage to select the two parts of the transform so that they represent the count of changes-of-state of receptors at two instants when the image motions are perpendicular to each other. Or, conversely, after the image has moved vertically, and the changes-of-state recorded, the next motion should not be nearly-vertical since this adds less toilie information already on hand than if the second movement is approximately horizontal. Suppose, therefore, that we retain the regular polygon as an approximation, but traverse the legs out of order. Furthermore, movement in either direction, A to B, or B to A, produces basically the same set of changes-of-state. One further charge in the "regular polygon" idea is required. If the polygon is exactly regular, and of n sides, the directions of movement on the n + 1st movement will exactly coincide with the first. It would be better if we chose a figure whose sides progress angularly. In summary1. Select a regular polygon of n sides (Figure 27A). 2. Adjust the angles slightly so that no two sides of any group will be exactly parallel (Figure 27B). 3. Rearrange the sides out of order so that the angle between adjacent Sides is approximately 90° (Figure 27C). 4. At random, reverse the direction of the sides, taking BA instead of AB, for instance (Figure 27D). With these considerations in mind, the movements of the image in the eye seem not too dissimilar to what we would build into our engineering artifact if mechanical convenience were not a factor. Straight-line motions which start and stop are just not as easy or as cheap to make out of metal as they are of muscle. It may be noted that the machine described fails to provide "location" information. It can, of course, be supplied by additional circuits which have not been described. 364 / Computers - Key to Total Systems Control C B D C A E o B A F !5l Figure 27. Various steps in the deduction of an optiInum image-movement for a mechanical scanner constrained to utilize straightline image movements. If image signals are generated in the human retina during both the "flick" and the drift, it is not unreasonable to suppose that the analysis of the signals generated by two different motions are analyzed by two different schemes. More specifically, can one of the se motions be considered to generate signals which are analyzed in the brain without attention to which receptor is active while the other motion is associated with the location of image parts? It would be interesting to follow the speculation a little further and see what sort of eye movements are observed if the subject is exposed to a visual field composed of heavy vertical lines and nothing else. Vertical eye movements in such a field will not produce any changes-of - state and hence produce no information. This is probably not strictly true, except in an optically perfect eye without aberration. If the principles discussed in this paper are truly analogous to human vision, and if there is feedback in the system, then a vertically-ruled field should induce more horizontal jumps in the eye scan. The visual process of observing a moving object superposes another motion on the image motion due to scanning. In the inaminate device, information is lost if the superposed translational velocity exceeds the velocity due to nutation. In a speculative sense, it might be interesting to try to discover in a human eye what rate of movement of an object is associated with a loss of information as to its form, and to relate this to the scanning speed. Some of the other analogies between machine and eye are certainly obvious to the reader. Both are sensi ti ve to change s of illumination rather than illumination directly. The machine use of a refractory period which inhibits the second of two pulses too close together has a direct analog in the refractory period of neurons. The grouping of local clusters of photo receptors to a single channel output was discussed as a means of producing the equivalent of optically distorted images. This is a reflection of the multiple connections of rods to a single neural path. Neither of these two phenomena has, to the author's knowledge, been associated previously with form perception, yet they appear, in the inaminate machine at least to be wellsuited to the task. The circuits which count the receptors which fH.cker more than twice requires what in the computer field is termed a flip-flop; and in the field of psychology a form of "temporal summation." The machine requires a number of counter registers in which to store the flicker count. It is inappropriate to discuss such counters in the physiological system. In the machine, signals travel to the counters at the speed of light and are held in the counters as long as needed, as in Figure 28. In the brain, signals travel slower. We may surmise that at any instant the various counters have their counterpart in the various links in the neural ~ --------....,·0 Fast Transmission MACHINE Intermittent Transmit - and - Hold BRAIN Figure 28. Comparison of the machine and brain storage of information showing the possibility that information in the brain may be II stored" so as to be available to have logical operations performed on it while in transit from neuron to neuron. This po s sibility is lacking or difficult to exploit in a computer because of the speed of transmission. Chrysler Optical Processing Scanner (COPS) / 365 pathway. That is, the several counters are analogous to the several stations along an appropriate set of neural paths which carry the signal at a given instant. These signals may reverberate back and forth, perhaps undergoing phase shifts and other normalizing operations in the process. Figure 7 showed the mechanical scheme by which the count of changes-of-state are switched or directed into the various counters in sequence by the timing pulses from the commutator. Figure 29 show~ the same schematic in which the inhibitory or excitatory effects of one set of synopses accomplish the timing function and direct traffic for a set of receptor outputs. There is little or no direct evidence that some of the neural pulses are image signals and others are timing signals related to the scanning motion of the eye movements, but there does not appear to be any direct evidence that such a concept is impossible. The possibility also exists that a given axon, synapse or receptor acts sometimes as a timer and sometimes as a signal detector. Conclusion As a peroration, certain rather abstract observations must be brought forward. The neuro-visual process may be rather vaguely SIGNAL RECEPTORS A TIMERS AA 1 111 defined as a "mapping" of certain changesof-state of the retinal receptors into the brain. This mapping process is simply another way of stating that a "transform" is generated in the brain as a result of retinal activity. The map or transform may be either static or dynamic; that is, it may be defined by specifying either the state of a set of neurons, or a sequence of changes-ofstate. In either case, there is a powerful appeal, both intuitively and logically, in a system where the transform of two images is the sum of their individual transforms. Such a scheme is, for different reasons, appealing to the computer engineer and the psychologist. The details of machine circuitry discussed are not likely to carryover entirely intact their usefulness into the psychological field. The machine principles may be described: 1. A moving image on a retina can provide much information about form, even with circuits which do not distinguish one receptor from another. 2. More information about form can be developed in the scanner if the direction of the scanning motion associated in time with change-of-state of a receptor is available in the form of timing signals. 3. Means can be conceived and circuits defined for form discrimination in which the transform identified is the sum of the transforms of its separate parts. Stated in these terms, the principles on which the machine operates may be equally interesting to the psychologist. This paper does not claim to present a new psycho-physiological theory of form perception. The description of the machine is a sequence of ,declarative sentences-the psychological discussion of a series of interrogative ones. The questions it asks may' stir up a fruitful train of thought, but the answers are likely to go far afield from the present simple concept. APPENDIX Figure 29. Conceptual sketch of neural circuits in which SOITle signals are analogous to the COITlITlutator tiITling pulses of the Chrysler Optical Proce s sing Scanner and others are purely iITlage- signals. Certain of the relationships between characters and the transforms they generate are repeated here in a form more suitable for mathematic analysis than oral presentation. 1. Let a character be defined as the set of pOints contained within a finite number 366 / Computers - Key to Total Systems Control 2. 3. 4. 5. 6. 7. expressed as a function of R, 8, and the dimensions of the element. Specifically, by definition of closed boundary lines and distinguished from pOints not in the set. If points within the character are distinguished by being black and those outside are white, the character is positive; if the character is white on black, it is negative. A positive character is solid if a closed figure can be drawn which contains all the black pOints and no white ones; otherwise, it is hollow. A character is rectilinear if all of its boundary lines are straight. It is curvilinear if one or more of its bounds are curved. A rectilinear character is convex if all of its internal angles are:::: 1T; otherwise, it is concave. A curvilinear character is convex if all of the internal angles between its rectilinear elements are :$ 1T and if no tangent can be drawn to its curbed bounds which intersects the character. An element of a character is any segment of its boundary (and which, therefore, has white pOints on one side and black ones on the other). The T* transform of an element of a character which is nutated with radius R and has an instantaneous position, as indicated by e (Figure 30), is the rate at which the element sweeps out area; ..e ~ ~ o~ e <: 360 = S R d8/dt T* (E) (1) where S = the projected length of E on a line parallel with the instantaneous radius R. Letting 8 = wt gives =RwS T* (E) (2) 8. If E I and E 2 are congruent elements which can be superposed by pure translation without rotation, then (3) 9. The transform of a character C is the sum of the transforms of its elements. T* (C) = (4) T* (E I ) + T* (E 2 ) + ... + T* (En) lQ. The transform of the combination of two elements is the sum of their separate transforms. T* transform of a Iinear element of length L inclined at an angle cb to the line == eo where 9 is the nutation angle. e +cb dA = Rd9· S 9 == cut d9/dt ==cu S :: Leos (9-¢) T* = dA/dt T* == RcuLeos (9-¢) T* max. at (9-¢) == 0, TT, 2TT T* min. at (9-¢) == TT12, 3TTI2 Figure 30. Notation and derivation of T~~ transform for a straight-line element. Chrysler Optical Processing Scanner (COPS) / 367 The transform (2) may be written T * (E) = R w f (e, di, ¢ ) (6 ) where e is the nutation angle measured from a fixed arbitrary reference di are the dimensions of the element et> is the angle between the reference axis e = 0 and any dimension of the character and which, therefore, specifies the angular orientation of the character. ' 11. If two characters are congruent, their T* t~ansforms can be made equal by rotatIon of the reference axis for e = 0 through an angle let> 1 - ¢21. Hen~e, if the reference axis for e = 0 is taken at the same angular orientation with respect to et>, a new transform T~ is defined which is independent of character orientation. 12. If two characters C1 and C 2 are congruent, (7) 13. There corresponds to every solid convex character one and only one transform T:. 14. Every hollow character is concave. 15. For every concave character, there corresponds one and only one solid convex character which has the same transform T*. 16. The family of concave characters all of which correspond to the same sOli'd convex character, are called an ambiguous family. An ~mbiguous family are denoted by primes with the same base and the unique solid convex character by the unprimed notation. Hence, T~ (C i ) = T* (C 21) = T* (C) C is called the unique character of the family C.1 l , 17. An algorithm for determining the unique member of a rectilinear family for which one concave member is given is as follows (Figure 31). 1. Number each line of the boundary and add arrowheads in sequence around the boundary. 2. Tabulate the angle each vector makes with the first one. 3. Retabulate 'the bounding vectors, ranking them in increasing order of their corresponding angles. 2 10 4 8 5 7 6 given Line Angle ( 0) 1 2 0 90 210 180 90 180 270 180 150 270 3 4 5 6 7 8 9 10 steps two & three step one Rank (8) 1 2 1 2 8 5 5 3 7 9 6 4 10 step four Figure 31. Example of generating the convex solid (unique) member of an ambiguous family given one concave member. 368 / Computers - Key to Total Systems Control 4. Redraw the figure, using the same vectors, head to tail, but taking them in the order in which they were ranked in Step 3. 18. The algorithm for determining the unique member of a rectilinear family for which one hollow member is given is the same as in 17 above. Number and rank the vectors in both the exterior and the interior boundary, as in Figure 32. 19. If two characters or elements have polar symmetry with respect to each other, their T* transforms are identical. T* (C)I B = T* (C) 22. An algorithm for finding the unique member of an ambiguous family, when one curvilinear concave member is given is as follows (Figure 33). 1. Add arrowheads and number the elements as in 17 and 18. In dividing up the boundary into elements, (a) Each straight line segment is an element. (b) Each segment of a curved line is an element where the segment ends occur: (1) where a straight line meets a curve; (2) where two curved lines meet with a discontinuous first derivative; (3) at a point of tangency of a curved line with a tangent parallel to any rectilinear element having the same sense as the curve; (4) where a point is required to divide a curve into an element parallel with another and a non-parallel element. 2. Where two or more curvilinear elements are parallel with each other, eliminate them and substitute a third element which has an identical transform, using 21. 3. Rank the elements by their angles, as in 17, using the chord of an IB+." 20. Two curvilinear elements of a character are parallel if their chords are parallel, taking the chords as vectors having the same sense as the vectors of the curvilinear elements. 21. Givena curvilinear element El described by y = f 1 (x) and having a derivation y' = f'l (x) which can be solved for x to give x = cP 1 (y') and given, also, a secondparallel element characterized by y = f 2 (x); y' = f'2 (x) and x = cP 2 (y'), then a third element E 3 defined by the equation x = cP 1 (y') + cP 2 (y') has the property that T* (E 3 ) = T* (E 1 ) + T* (E 2 ) 6 3 given step one Line 1 2 3 4 5 Angle (O) Rank 0 67 ~ 0 247 ~ 112~ 1 5 2 8 6 line 6 7 8 9 10 Angle (0) Rank 0 292 0 247 ~ ~ 112~ 3 10 4 9 7 step four steps two & three Figure 32. Example of generating the unique member of an ambiguous family given one hollow member. Chrysler Optical Processing Scanner (COPS) / 369 5 2 2 step one given line Angle (0) Rank 1 2 3 4 5 6 7 8 0 90 135 225 270 315 45 180 1 3 50 80 9 110 20 6 line Angle (0) Rank 9 10 11 12 13 14 15 16 225 135 8b 5b 90 4 45 315 225 180 270 2b llb 8e 7 10 step four steps two & three Figure 33. Example of generating the unique member of an ambiguous family given a concave curvilinear member. element to determine its angular orientation. 4. Proceed, as in 17, to draw the figure which is the unique member of the family. 23. No motion of the image of a character over a retina can provide more, information about the character than nutation; nutation defines completely the unique member of the family. 24. Any motion which translates the i-mage without rotation so that a tangent can be drawn to the hodograph of a point having any slope from -00 to +00 will provide as much information as nutation and will define exactly the unique character of a family. 25. Specifically, a linear translation, such as would be produced by moving characters in a straight line past the lens, may be superposed upon the nutation and so long as the net nutation velocity R w > V, the linear velocity, it will identify the unique member of the family. 26. The unique member of a family is completely identified by 180 of nutation. 27. If two characters C 1 and C2 are similar, and two corresponding sides have the ratio 1: a respectively, then 0 aT~(Cl)=T*R(C2) (9) and the corresponding transforms are proportional. 28. Define a normalized transform T: by Th = T*/[T*] =80 (10) N R R In which each value of the transform is divided by its value at an arbitrary nuta-:tion angle eo. 29. Then, if two characters C1 and C 2 are Similar, (11) 370/ Computers - Key to Total Systems Co~trol BIBLIOGRAPHY 1. Bledsoe, W. W., Bomba, J. S., Browning, I., Evey, R. J., Kirsch, R. A., Mattson, R. L., Minsky, M., Neisser, U., and Selfridge, O. G., Discussion of Problems in Pattern Recognition, 1959 Proceedings' of the Eastern Joint Computer Conference, pp. 233-37. 2. Bledsoe,- W. W., and Browning, I., Sandia Corporation, Albuquerque, New Mexico, Pattern Recognition and Reading by Machine, 1959 Proceedings of the Eastern Joint Computer Conference, pp. 225-232. 3. Bomba, J. S., Bell Telephone Laboratories, Inc., Alpha-Numeric Character Recognition Using Local Operations, 1959 Proceedings of the Eastern Joint Computer Conference, pp. 218-224. 4. Brown, Laurence R., Briggs ASSOCiates, Inc., Nonscanning Character Reader Uses Coded Wafer, Electronics Magazine. November 25, 1960, pp. 115-17. 5. Crescitelli, F. G., Physiology of Vision, Annual Review of Physiology. Volume 22, 1960. 6. Ditchburn, R. W., Eye-Movements in Relation to Perception of Colour, Journal, Physiology, 145. London, 1959. 7. Gill, Arthur, Minimum-Scan Pattern Recognition, mE Transactions on Information Theory. June, 1959,pp. 52-58. 8. Greanias, E. C., and Hill, Y. M., International Busine ss Machine s Corporation, Endicott, New York, Considerations in the Design of Character Recognition Devices. 9. Harmon, Leon D., Bell Telephone Laboratories, Inc,., Line-Drawing Pattern Recognizer, Electronics Magazine. September 2, 1960, pp. 39-43. 10. Horne, E. Porter, and Whitcomb, Milton A., Editors, Vision Research Reports. Washington, D. C.: NationalAcademy of Sciences-National Research Council, Publication 835, 1960. 11. Kirsch, R. A., Calm, L., and Urban, G. H., National Bureau of Standards, Washington, D. C., Experiments in Processing Pictorial Information with a Digital Computer, Proceedings of the Eastern Computer Conference, pp. 221-29. 12. Rosenblat, Frank, Cornell Aeronautical Laboratory, Inc., The Perceptron, A Theory of Statistical Separability in Co nitive Systems Project PARA). Report No. VG-1196-G-1, January, 1958. 13. Scott, Bowman, and Curry, Peter A. M., Automatic Printed Character Reading, Journal of the SMPTE, Volume 68. April 1959, pp. 240-41. 14. Stevens, S. S., Editor, Handbook of Experimental Psychology. New York: John Wil~y & Sons, Inc., 1951. 15. Wiener, Norbert, Cybernetics. New York: John Wiley & Sons, Inc., 1948. 16. Wulfeck, Joseph W., and Taylor, John H., Editors, Form Discrimination as Related to Military Problems. Washington, D. C.: National Academy of SciencesNational Research Council, Publication 561, 1957. 17. Yovits, Marshall C., Office of Naval Research, and Cameron, Scott, Armour Research Foundation, Self-Organizing Systems, Proceedings of an Interdisciplinary Conference, 5 and 6 May 1959. New York: Pergamon Press, Symposium Publications Division, 1960. TECHNIQUES FOR THE USE OF THE DIGITAL COMPUTER AS AN AID IN THE DIAGNOSIS OF HEART DISEASE* C. A. Steinberg Department of Medical and Biological Physics Airborne Ins truments Laboratory Deer Park, Long Island, New York W. E. Tolles Department of Medical and Biological Physics Airborne Instruments Laboratory Deer Park, Long Island, New York A. H. Freiman, M.D. Cornell University Medical College Associate, Sloan-Kettering Institute Clinical Assistant, Memorial Hospital New York City, New York Sidney Abraham Instrumentation Unit, Heart Disease Control Program Division of Chronic Diseases, Public Health Service U. S. Department of Health, Education and Welfare Washington 25, D. C. and C. A. Caceres, M.D. Instrumentation Unit, Heart Disease Control Program Division of Chronic Diseases, Public Health Service U. S. Department of Health, Education and Welfare Associate in Medicine, George Washington University HosPital Washington, D. C. The rapid computational capabilities and large storage capacity of the digital computer can provide the physician with a powerful tool for diagnostic procedures. Numerous techniques are available that can be used in attempts to use the digital computer as an aid in diagnosis [1]. For this reason, a study in the use of a general-purpose digital computer in analyzing physiological waveforms of the heart and their relationship to cardiovascular pathology has been undertaken, and a pattern recognition program for automatically recognizing clinically useful parameters in the electrocardiogram (ECG) has been developed. The techniques presented are components of a system that can be used a~ an automated aid for the physician in his diagnostic process [2]. I. COMPUTER CLASSIFICATION OF DATA A program based on multi -dimensional probability density functions was used to *Portions of this work were performed as part of the U.S.P.H.S. Contracts Number SAph-75508 and Number SAph-70926. 371 372 / Computers - Key to Total Systems Control classify normal and pathological subjects [3, 4, 5]. The basis of this technique is similar to that used by the cardiologist in the diagnosiS of heart disease. The cardiologist records physiological signatures related to the function of the heart. He studies the resulting waveform, recognizes and measures the important parameters in the waveform, and then compares the measured parameters with these he has memorized for normal and pathological subjects. By this comparison he makes a "diagnosis." The computer program is based on similar logic, but substitutes the probability denSity function for the cardiologist's experience. Measurements of the important parameters are programmed to characterize normal and pathological subjects and then to classify unknown subjects with respect to the previously defined characterization. An example of the use of this technique is given below. A. Input Data Simultaneous curves from four arbitrarily selected electrophysiological signals were recorded. These signals were the electrocardiogram (Lead V5), phonocardiogram (mitral area), ballistocardiogram (acceleration), and arterial pulse (radial). Clinically important parameters from these curves were measured manually. The electrocardi9gram (ECG) is a measurement of the electrical potential generated by the heart during the depolarization and repolarization of the heart muscle as measured from the surface of the body. There are 12 leads customarily used in clinical practice to measure the potentials. Each of these leads measures the heart potentials from different vantage pOints. In each lead the P wave represents atrial depolarization, the QRS complex represents ventricular depolarization, and the T wave represents ventricular repolarization. The phonocardiogram (PCG) is the measurement of the sounds caused by the mechanical activity of the values in the heart and movement of blood within the heart. A microphone strapped to a speCified area of the chest surface is the usual transducer for measuring the PCG. There are normally two major sounds recorded with the PCG. The first sound primarily reflects the closure of the valves between the atria and the ventricles; the second sound reflects mostly closure of the aortic and pulmonic valves after blood has been ejected from the heart into the great vessels. The ballistocardiogram (BCG) measures the movement of the body as it recoils from the contraction of the heart and the movement of blood throughout the body. The type of sensor used in this study was a lowfrequency table, free to move in one dimension' with a modest amount of built-in damping. There are three classical ~odes of measuring the ballistocardiogram: (1) displacement, (2) velocity, and (3) acceleration. We chose to record acceleration, which provides information about the force of heart contraction. Movements of the table were sensed by means of a velocity transducer and the BCG acceleration was obtained by differentiating the velocity signal. Acceleration measurements filter out the low frequency (0.1 - 0.5 cycle) respiratory components which affect interpretability in the routine displacement recording. A surface arterial pulse (AP) is a measurement of a pressure wave transmitted along an artery, damped by the tissue between it and the transducer. The transducer used in this study to measure the surface radial arterial pulse was a variable capacitance microphone which was held in place over the radial artery at the wrist by an inflatable cuff. Figure 1 is a sketch of the arrangement of a subject with transducers and resulting physiological Signatures. Th~ subjects were pOSitioned along the length of the ballistocardiogram table. Forty-five subjects were used. Fifteen subjects were normal, 15 had hypertenSion, and 15 had aortic insufficiency. The pathological subjects had been diagnosed according to standard diagnostic procedures. For each of the 45 subjects tested we measured the peak amplitudes, durations, and intervals of the waveforms and four characterizing data ppints, systolic blood pressure, pulse pressure, age and weight (Figure 2). The variables were tabulated on IBM punch cards. These data cards served as the input to an LGP30 computer. B. Analysis and Results In order to determine which clinical parameters were statistically Significant in separating normal from pathological subjects, the means and variances of each of the Techniques for Use of the Digital Computer as an Aid in Diagnosis of Heart Disease / 373 J • 4TH #fI.~---I""----I."""-1ST 2ND 3RD /'8 ECG Figure 1 variables, and all of their correlation coefficients were calculated for each group. The Significant tests used were the modified t-test, the F-test and z-test. Figures 3 and 4 describe the significance of the variables in distinguishing the normals from the pathological subjects. At the left, from top to bottom, are the symbols of each of the 45 variables measured; the first 12 are the ECG variables, the next 6 are the PCG variables, the next are the 12 BCG variables, followed by the AP and characterizing variables. The first columns (top and left) have opaque entries when the mean of each variable is significant at the 99.9 percent level or greater in distinguishing between normal and pathological subjects. The second columns have opaque entries where the variances are significant at the 99.9 percent level or greater. The Significant correlation coefficients are also shown in Figures 3 and 4. Each opaque entry Signifies a Significant correlation between the two corresponding parameters at the 99.9 percent level or greater. Only one-half of the correlation matrix is filled in since the matrix is symmetrical. All parameters not yielding a mean or a variance of at least one correlation coefficient Significant at the 99.9 percent level or greater were eliminated from further analysis. In addition the Gram-Schmitt routine t6] was used to eliminate all parameters having linear dependence since these parameters do not add any new diagnostic information. The results of the signifi'cance and linear dependency test y i e Ide d a total of 14 374 / Computers - Key to Total Systems Control SOURCE I. ECG 12 DATA POINTS PEAK AMPLITUDES DURATIONS Pa Oa Pd aRS d Ra OR d Sa Td INTERVALS POi aT i Ta STo 2. PCG 6 DATA POINTS 10 20 Id 2d Q2i 3. BCG Ha Hd QHi 1a Id Qli Ja Jd QJi Ka Kd QKi ABd QAi 12 DATA POINTS 4. AP 9 DATA POINTS Ba Ca Qli BCd COd Da OEd AEci DESCENDING SLOPE - OS ASCENDING SLOPE - AS 5. STATIC 4 DATA POINTS SYSTOLIC BLOOD PRESSURE - S P PULSE PRESSURE - PP AGE WEIGHT Figure Z parameters that were significant for diagnosing these two pathological groups and one normal group. Of these 14 parameters, 9 were from the electrocardiogram, 4 were from the phonocardiogram, and one was from the ballistocardiogram. These 14 parameters were then used to form a 14-dimensional Gaussian probability density function (Appendix A). The analysis yields a score to characterize groups of subjects with known entities. Use of the same parameters in the same equations but derived from an unknown subject allows accurate classification of the unlmown into a known group. The ratio of the value of the hypertenSive group t s probability denSity function to that of the normal group's probability density, or the hypertensive likelihood ration, was also calculated for each subject. Similarly the aortic insufficiency likelihood ratio was calculated. These ratios in addition to probability density values can be used for subject classification. The distributions of both likelihood ratios are shown in Figure 5. One Techniques for Use of the Digital Computer as an Aid in Diagnosis of Heart Disease / 375 ~ATA ~Io PTS. 10: DATA PTS. 1M Ifl~ il~~'~ ~I-~ -~ 1~lolol~l~ !! Po I~ /0 IxlH 00 Ro So To . --'~-'~1I1 ~0W~ I~~ IHI~I~I~ 13 1101" I~" 1410141 mlu 10 14 _ '~~;'Iif• T .. m -• r- I. ~ ~-. [oTj 02j • IH. • II. Ja IKa I Hd Xd • Jd I Kd 10H, lOX, OJ; ~ ~ • • f- I I • • ---- • • ~ I-- l - Il - I-- - ~ AS os -ABd BC .. COd OEd g ~AEd • .f---~I ~. • - • • • r. •• • • • • • • • •• • • • • 111 1f Figure 3. Significant variable s, aortic insufficiency versus normal. hypertensive subject has a likelihood ratio that is in the same range as those of the nonhypertensive subjects. Three aortic insufficiency subjects have likelihood ratios in the same range as those of the hypertensive group. II. COMPUTER CHARACTERIZATION OF DATA The results of the previously described computer program demonstrate that the technique described can be used to classify normal and pathological subjects. The classification was based upon manually derived measurements of parameters that characterizephysiological waveforms related to the heart. It is also possible with computer techniques to characterize data automatically. To do this pattern recognition programs ar~ required. A pattern recognition program for the electrocardiogram has been developed [7, 8, 9]. The techniques and methodology used can serve as a basis for pattern recogt)ition programs for other physiological waveforms. A. Input Data The basic objective was to develop a program that would automatically recognize and measure parameters from anyelectrocardiogram taken with any lead system from any 376 / Computers - Key to Total Systems Control ~ATA PTS DATA PTS. I". M 1M ~ 10 Iv '- ~ Po 00 Ro _ To S. ~ STo . If 'i V i11- I 10 - 10 I..... - I~- 6 1-"IC\lol_vl~ 10"" l- l- ~ ~ ~- I:z:o ~ I..: I..: 1:..:° l:z:v 104- ~ ~ j;- I~ 13 ~Ic: I~I:I(I) : l:i ~u Ii Ii 13 • I • •• 1 I~ I- I~ I. Pd I ORS d ~ Td lOR, ~ POi OT, fa 20 lei • • 2d 101 Q2i Ho 110 Jo Ko • • Hd 1:d • • .Jd [Kd I • QH, IQXi OJ, ~~ ~ ~ ~ 'OS ABd BCd. COd =- • -•I • • OEd -AE d • • I •1= • ~ -g.r! "r AGE WT I Figure 4. I I-I-- - • • • --- • - - 11 • Significant variables, hypertensive versus normal. subject. The clinical parameters desired were the P, Q, R, S, T and U waves, and the PQ, ST, QT, and RR intervals. The ECG lead was converted from its analog form to digital values at a rate of 625 samples per second, and was recorded in digital form on magnetic tape. Time measurements were thus accurate to each 0.0016 second. The data was digitized to an accuracy of one part in one thousand. The digitization process was designed to be able to start at any arbitrary point during the electrocardiographic recording. Figure 6 is a block diagram of the data processing system. Prior to pattern recognition it was necessary to eliminate noise by smoothing the ECG signal. Several techniques are available to do this. One technique is the use of a moving average. With a moving average, the more samples that are averaged together the greater the degree of smoothing. As the number of averaged samples is increased, a value will be reached where further smoothing will severely degrade the signal. In this case, along with noise elimination, there was serious attenuation of the amplitude and characteristic peaks in the ECG waveform. Another type of smoothing is based on Techniques for Use of the Digital Computer as an Aid in Diagnosis of Heart Disease / 377 t : . ·1 NORMAL SUBJECTS ~ HYPERTENSIVE SUBJECTS ~ AORTIC INSUFFICIENCY SUBJECTS 16 en t4 ~ (..) LIJ -, 12 m ~ 10 en LL 0 0:: LIJ m 8 6 ::IE ~ z -10 0 10 20 30 40 HYPERTENSIVE LIKELIHOOD RATIO (ORDERS OF MAGNITUDE) 16 (J) I0 LAJ 14 12 -, ~ 10 (J) LL. 0 8 a: 6 LAJ m :IE ~ z 4 2 0 -40 -30 -20 -10 o 10 20 30 40 AORTIC INSUFFICIENCY LIKELIHOOD RATIO(ORDERS OF MAGNITUDE) Figure 5 378 / Computers - Key to Total Systems Control smooth data and decreased the amplitudes of the signals to be measured by less than 0.005 mv. and was used. SUBJECT LEADll OSCILLOGRAPH MONITOR L:EAD V3 AMPLIFIER ANALOG MAGNETIC TAPE RECORDER ANALOG -TO-DIG ITAL CONVERSION SYSTEM LGP-30 COMPUTER Figure 6 successively determining the parabola that best fits a series of ECG samples. Such a parabola is defined as that which minimizes the mean square difference between the parabola and the value of the EC G samples at corresponding pOints. The value of the parabola at the center sample point is the value of the smoothed data. To avoid interpolation, the number of sample pOints is always made odd. As with the moving average, the degree of smoothing increases with the number of ECG samples over which the best parabola is determined, and the degradation of the data increases with an increase in the number of pOints. For the same degree of smoothing, signal degradation was found to be much less with parabolic smoothing than with movingaverage smoothing. The nine-point (n = 9) least square parabola yielded sufficiently B. Analysis and Results Preliminary rule s and definitions based on conventional ECG criteria were used to define wave onset, wave peak, wave termination, Significant voltage fluctuations and time intervals in the ECG. These definitions were programmed, tested, and reprogram"med as necessary until final definitions suitable for the computer program were formulated. Definitions for the program were suitable when they encompassed all possible variations of waveforms in the electrocardiographic leads. A basic requirement for any logic for pattern recognition is to locate a point of reference that is repeatable in any subject. This point is particularly needed if the digitization is to be started at any time in the signal. The point of greatest negative rate of change in the ECG signal was used as this constant point of reference. This point, which always occurs after the peak of the R wave or before the peak of the S wave, was obtained by locating the greatest negative value of the derivative in various portions of signal and then finding the absolute minimum of those values. With a reference point such as the one used and ECG complex can be isolated automatically. The next step in the process is to locate the peaks of the waves. The presence of R waves is ascertained by determining if the value of the maximum positive derivative proceeding the maximum negative derivative exceeds an empiric value. The presence of S waves is ascertained by determining if the derivative is greater than a given value after the maximum negative derivative. Once ascertaining that R or S waves are present the peaks are found by locating the maximum or minimum within a given number of samples. Q wave peaks are found by searching for a minimum value in a given interval before the R wave peak. The P wave peak is searched for in a fixed interval before the location of the maximum negative derivative. The maximum and minimum values of the derivative are found in intervals during P wave duration. The order of maximum 'and minimum derivatives defines the type of P wave present (positive, negative, diphasic, bifid or trifid). Techniques for Use of the Digital Computer as an Aid in Diagnosis of Heart Disease / 379 The T wave peak is located at the maximum absolute amplitude in the smoothed ECG data in a fixed interval after the S wave peak, or the R wave peak if no S wave is present. The next order of procedure is to determine wave duration, which requires definition of wave onset and end. The point before the first P wave peak having a derivative of less than 1.875 mv/sec for 0.016 seconds was defined as the P wave onset in this study. This and all criteria were empirically determined through trial and error. To follow clinical practice, a baseline was constructed as the straight line connecting the start of the P wave in the second heartbeat with the start of the P wave in the third heartbeat. This baseline was used as a guide for arbitrary but reproducible definition of wave onset and end. To find the end of the S wave, the first baseline crossing after the S wave peak in the smoothed ECG signal is located. The point after the S wave peak where the derivative is less than or equal to 1.875 mv/sec for 0.008 second is then found. If either a baseline crossing or the point where the derivative is less than 1.975 mv/sec is found, the end of the S wave is located at whichever is present. If both a baseline crossing and a derivative of less than 1.875 mv/sec are found, the end of the S wave is located at the baseline crossing. Similar methodology was followed to find all other waveform points of onset and -termination. With these points it was possible to. determine wave duration. Amplitudes of the ECG signal were measured from the baseline to the peak of each waveform. This tecl1nique for pattern recognition provides quantitative characterization of data necessary and reasonable to use in a ,computer. The data can be obtained with the speed and in the volume required for economical use of these machines. The results obtained are reproducible and are comparable to those obtained by cardiologists using manual technique s. III. SUMMARY Parameters from physiological waveforms related to the electrical, mechanical, and acoustical properties of the heart can be used as a basis for classifying and characterizing normal and pathological subjects. The use of the multi-dimensional probability density function and the associated likelihood ratio is well suited for this purpose. Parameters from the ECG, BCG, PCG and AP wave were combined into a multidimensional probability distribution. The different distributions for the normal and pathological groups of patients were formulated and stored in the computer. The compatibilityof an unknown subject's parameters with those stored in the computer can be calculated for classification, into a known group. A pattern recognition program has been ~eveloped to automatically recognize and measure the prinCipal components of the electrocardiogram. The techniques described in this paper can be used as an automated system to aid the physician in the diagnosis of disease. APPENDIX A The probability density function was formulated using the following equation. Pi = IA 12 11/2 0 (27T) 12 C 1/2 ~ 12 ~ a. ~1 j~ Jq (X .. - m.) (X . - m ) J1 J qJ. q where X j i is parameter j from subject i m j equals the mean of parameter j 1 Ao 1 is the determinant of the inverted covariance matrix. Small a j q is the element of the j th row and the q th column of the inverted covariance matrix. 380 / Computers - Key to Total Systems Control REFERENCES 1. Caceres, C. A., Rikli, A. E., The Digital Computer as an Aid in the Diagnosis of Cardiovascular Disease. Trans. New York Academy of Sciences. 23:240, 1961. 2. Rikli, A. E., Caceres, C. A.,Abraham, S., Tolles, W. E., Steinberg, C. A., An Electronic System for Electrocardiographic Analysis. (Abstract). Circulation. In Press. 3. Tolles, W. E., Carbery, W. J., Freiman, A. H., Caceres, C. A., Role of the Modern Computer in Analyzing Electrocardiographic Data. (Abstract). Circulation. 22:824, 1960. 4. Rikli, A. E., Tolles, W. E., Steinberg, C. A., Carbery, W. J., Freiman, A. H., Abraham, S., Caceres, C. A., Computer Analysis of Electrocardiographic Meassurements. Circulation. In Press. 5. Tolles, W. E., Steinberg, C. A., Carbery, W. J., Freiman,A. H., Experimental Techniques and Results of a Study Using a Computer as a Diagnostic Aid. Trans. New York Academy S~iences. 23:246, 1961. 6. Birkhoff, G., McLane, S., A Survey of Modern Algebra, MacMillan Company, New York City, 1953. 7. Caceres, C. A., Steinberg, C. A., Carbery, W. J., Abraham, S., Computer Extraction of Electrocardiographic Parameters. Clinical Research, 9:137, 1961. 8. Caceres, C. A., Steinberg, C. A., Abraham, S., Carbery, W. J., McBride, J. M., Tolles, W. E., Rikli, A. E., Computer Extraction of Electrocardiographic Parameters. Circulation. In Press. 9. Steinberg, C. A., Carbery, W. J., Caceres, C. A., Pattern Recognition in the Electrocardiogram. Presented at the 4th International Conference on Medical Electronics, New York City, New York, July 14 - 21, 1961.
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19 Producer : Adobe Acrobat 9.0 Paper Capture Plug-in Modify Date : 2008:11:16 19:43:46-08:00 Create Date : 2008:11:16 19:43:46-08:00 Metadata Date : 2008:11:16 19:43:46-08:00 Format : application/pdf Document ID : uuid:adfd480c-60ae-42d7-bc75-099fabb32ce7 Instance ID : uuid:10b3002c-17d3-4122-a4f4-6c88bb871c06 Page Layout : SinglePage Page Mode : UseOutlines Page Count : 396EXIF Metadata provided by EXIF.tools