1967 04_#30 04 #30
1967-04_#30 1967-04_%2330
User Manual: 1967-04_#30
Open the PDF directly: View PDF .
Page Count: 809
Download | |
Open PDF In Browser | View PDF |
AFIPS CONFERENCE PROCEEDINGS VOLUME 30 1967 SPRING JOINT COMPUTER CONFERENCE AFIPS CONFERENCE PROCEEDINGS VOLUME 30 1967 SPRING JOINT COMPUTER CONFERENCE APRIL 18-20 ATLANTIC ClTY, NEW JERSEY The ideas and opinions expressed herein are soiely those of the authors and are not necessarily representative of or endorsed by the 1967 Spring Joint Computer Conference Committee or the American Federation of Information Processing Societies. Library of Congress Catalog Card Number 55-44701 Thompson Book Co. National Press Building Washington, D. C. 20004 © 1967 by the American Federation of Information Processing Societies, New York, N. Y. 10017. All rights reserved. This book, or parts thereof, may not be reproduced in any form without permission of the publ ishers. Sole distributors throughout the entire world (except North and South America): Academic Pres s Berkeley Square House Berkeley Square, London, W. 1 CONTENTS DYNAMIC ALLOCATION OF COMPUTING RESOURCES A resource allocation scheme for multi-user on-line operation of a small computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Effects of scheduling on file memory operations . . . . . . . . . . . . . . . Address mapping and the control of access in an interactive computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Allen Reiter Peter J. Denning MANAGING THE DEVELOPMENT OF COMPUTER PROGRAMS A USER'S VIEWPOINT The Air Force computer program acquisition concept . . . . . . . . . . . Configuration management of computer programs by the Air Force: Principles and documentation . . . . . . . . . . . . . . . . . . . . . . . . . . Milton V. Ratynski The technical specification - Key to management control of computer programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Air Force concepts for the technical control and design verification of computer programs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . COMPUTER LOGIC AND ORGANIZATION UNIVAC 1108 multiprocessor system . . . . . . . . . . . . . . . . . . . . . . Considerations in block-oriented systems design . . . . . . . . . . . . . . . Intrinsic multiprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The association- storing processor . . . . . . . . . . . . . . . . . . . . . . . . VISUAL OUTPUT RECORDING Digitized photographs for illustrated computer output. . . . . . . . . . . . Mathematical techniques for improving hardware accuracy . . . . . . . . A new printing principle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPLICATIONS OF ANALOG AND HYBRID COMPUTERS A time delay compensation technique for hybrid flight simulators . . . . Backward time analog computer solutions of optimum control problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cartoon animation by an electronic computer . . . . . . . . . . . . . . . . . Stochastic Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DATA MANAGEMENT The people problem: Computers can help . . . . . . . . . . . . . . . . . . . File handling at Cambridge University . . . . . . . . . . . . . . . . . . . . . . GIM-1, a generalized information management language and computer system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . David C. Evans, Jean Yves Leclerc Lloyd V. Searle George Neil Burt H. Liebowitz M. S. Piligian Lt. J. L. Pokorney D. C. Stanga D. H. Gibson Richard A. Aschenbrenner Michael Flynn George A. Robinson D. A. Savitt H. H. Love, Jr. R. E. Troop Richard W. Conn C. J. Walter W. H. Puterbaugh S. P. Emmons V. Wayne Ingalls Max D. Anderson Someshwar C. Gupta Takeo Miura Junzo Iwata Junji Tsuda B. R. Gains E. R. Keller, II S. D. Bedrosian D. W. Barron A. G. Fraser D. F. Hartley B. Landy R. M. Needham Donald B. Nelson Richard A. Pick Kenton B. Andrews Inter-program communications, program string structures and buffer files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DM-l, a generalized data management system . . . . . . . . . . . . File management on a small computer. . . . . . . . . . . . . . . . . . . . . . HANDLING THE GROWTH BY DEFINITION OF MECHANICAL LANGUAGES - A SPECIAL TUTORIAL SESSION . . . . . . . . . . . . . . . E. Morenoff J. B. McLean Paul J. Dixon Jerome D. Sable Gilbert p. Steil, Jr. Saul Gorn I/O DEVICES An optical peripheral memory system .. A rugges militarily fieldable mass store (mem- brain file) . . . . . . . . The "Cluster" - Four tape stations in a single package. BIOMEDICAL COMPUTER APPLICATIONS The oscillating vein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Computer applications in biomedical electronics - Pattern recognition studies . . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R. L. Libby R. S. Marcus L. B. Stallard W. A. Farrand R. B. Horsfall N. E. Marcum W. D. Williams J. T. Gardiner Augusto H. Moreno Louis D. Gold A. J. Welch Joseph L. Devine, Jr. Robert G. Loudon Experi~ental investigation of large multilayer linear discriminators . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . Effect of stenosis of the blood flow through an artery. . . . . . . . . . . . SECURITY AND PRIVACY IN COMPUTER SYSTEMS . . . . . . . . . . . . . Security consideration in a multi- programmed computer system ... Security and privacy: Similarities and differences . . . . . . . . . . . . System implications of information privacy . . . . . . . . . . . . . . . . . . . . . W. S. Holmes C. E. Phillips Peter M. Guida Louis D. Gold S. W. Moore Willis H. Ware Bernard Pete-rs Willis H. Ware Harold E. Petersen Rein Turn PANEL DISCUSSION: PRACTICAL SOLUTIONS TO THE PRIVACY PROBLEM The ABC time-sharing system . . . . . . . . . . . . . . . . . . . . . . . Project MAC time- sharing system . . . . . . . . . . . . . . . . . . . . . . . . James D. Babcock Edward L. Glaser COMPUTING ALGORITHMS The influence of machine design on numerical algorithms . . . . . . . . Base conversion mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Accurate solution of linear algebraic systems - A survey . . . . . . . . Recursive techniques in problem solving . . . . . . . . . . . . . . . . . . . Statistical validation of mathematical computer routines . . . . . . . . . W. J. Cody David W. Matula Cleve B. Moler A. Jay Goldstein Carl Hammer . . . . . MACROMODULAR COMPUTER SYSTEMS . . . . . . . . . . . . . . . . . . A functional description of macromodules . . . . . . . . . . . . . . . Local design of macromodules . . . . . . . . . . . . . . . . . . . . . . . . . . . Engineering design of macromodules . . . . . . . . . . . A macromodular systems simulator (MS2) . . . . . . . . . . . . . . . A macromodular meta machine . . . . . . . . . . . . . . . . . . . . . . The CHASM: A macromodular computer for analyzing neuron models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wesley A. Clark Severo M. Ornstein Mishell J. Stucki Wesley A. Clark Mishell J. Stucki Severo M. Ornstein Wesley A. Clark Asher S. Blum Thomas J. Chaney Richard E. Olsen Richard A. Dammkoehler William E. Ball Charles E. IvIolnar Severo lVI. Ornstein Antharvedi Anne SOlVIE ASPECTS OF COMPUTER ASSiSTED iNSTRUCTiON Requirements for a student subject matter interface . . . . . . . . . . . . Central vs. decentralized computer assisted instruction systems ... . Reflections on the design of a CAl operating system. . . . . . . . . . . . . INFORMA TION PROCESSING IN THE BUSINESS ENVIRONMENT Nature and detection of errors in production data collection . . . . . . . Serving the needs of the information retrieval user . . . . . . . . . . . . . The Ohio Bell Business information system . . . . . . . . . . . . . . . . . . TECHNIQUES IN PROGRAMMING LANGUAGE - PART I Programming by questionnaire. . . . . . . . . . . . . . . . . . . . . . . . . . . using formal specification of procedureoriented and machine languages . . . . . . . . . . . . . . . . . . . . . . . . . Kenneth Wodtke M. Gelman E. N. Adams William 44. Smith, Jr. C. Allen Merritt E. K. McCoy Allen S. Ginsberg Harry M. Markowitz Paula M. Oldfather Compilel~ genel~ation An experimental general purpose compiler . . . . . . . . . . . . . . . . . . . THE BEST APPROACH TO LARGE COMPUTING CAPABILITY A DEBATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Achieving large computing capabilities through aggregation of conventional system elements. . . . . . . . . . . . . . . . . . . . . . . . . Achieving large computing capabilities through associative parallel processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Achieving large computing capabilities through an array computer .. Achieving large computing capabilities through the single-processor approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Philip Gilbert William G. McLellan R. S. Bandat R. L. Wilkins . Gerhard L. Hollander . George P. West . . Richard H. Fuller Daniel L. Slotnick . Gene M. Amdahl THE EXPANDING ROLES OF ANALOG AND HYBRID COMPUTERS IN EDUCATION: A PANEL DISCUSSION "Position" Papers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LOGIC-IN-MEMORY DTPL push down list memory An integrated MOS transistor associative memory with lOOns cycle time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planted wire bit steering for logic and storage . . . . . . . . . . . . . . . . A cryoelectronic distributed logic memory. . . . . . . . . . . . . . . . . . . SCIENTIFIC PROGRAMMING APPLICATIONS Trace-time-shared routines for analysis, classific.ation and evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Degradation analysis of digitized signal transmission . . . . . . . . . . . . Digital systems for array radar . . . . . . . . . . . . . . . . . . . . . . . . . . TECHNIQUES IN PROGRAMMING LANGUAGES - PART II DIAMAG: A multi-access system for on-line ALGOL programming .. GRAF: Graphic additions to FORTRAN . . . . . . . . . . . . . . . . . . . . . The multilang on-line programming system . . . . . . . . . . . . . . . ... Dr. Lawrence E. Burkhart Dr. Ladis E. Kovach A. I. Katz Dr. Myron L. Corrin Dr. Avrum Soudack Dr. Robert Kohr R. J. Spain M. J. Marino H. 1. Jauvtis Ryo Igarashi Toru Yaita W. F. Chow L. M. Spandorjer B. A. Crane R. R. Laane Gerald H. Shure Robert J. Meeker William H. Moore, Jr. J. C. Kim E. P. Kaiser G. A. Champine A. Auroux J. Bellino L. Bolliet A. Hurwitz J. P. Citron J. B. Yeaton R. L. Wexelblat RPL: A data reduction language . . . . . . . . . . . . . . . . . . . . . . . . . . Experimental automation information station: AIST-O . . . . . . . . . . . PAPERS OF SPECIAL INTEREST Some issues of representation in a general problem solver . . . . . . . . A compact data structure for storing, retrieving and manipulating line drawings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Experience using a time-shared multi-programming system with dynamic address relocation hardware . . . . . . . . . . . . . . . . . . . . . THOR - A display based time sharing system. . . . . . . . . . . . . . . . . ADVANCES IN SOFTWARE DEVELOPMENT nCompose/Produce: A user-oriented report generator for a timeshared system" . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. , 0 • Code Generation for PIE (Parallel instruction execution) computers .. Snuper Computer - A computer instrumentation automation . . . . . . . . TECHNIQUES IN PROGRAMMING LANGUAGES - PART ill An algorithmic search procedure for program generation. . . . . . ... Frank C. Bequaert A. P. Ershov G. 1. Kodzuhin G. P. Makapov M. I. Nechepurenko I. V. Pottosin George W. Ernst Allen Newell Andries Van Dam R. W. O'Neill John McCarthy Dan Brian John Allen Gary Feldman William D. Williams Philip R. Bartram J. F. Thorlin G. Estrin D. Hopkins B. Coggan S. D. Crocker M. H. Halstead G. T. Uber A system of macro-generation for ALGOL . . . . . . . . . . . . . . . . . . COMMEN: A new approach to programming languages . . . . . . . . . . SPRINT: A direct approach to list-processing languages . . . . . . . . Syntax-checking and parsing of context - Free languages by pushdown- store automata. . . . . . . . . . . . . . . . . . . . . . . . . . .. The design and implementation of a table-driven compiler system .. . . . . . SOME IDEAS FROM SWITCHING THEORY Synthesis of switching functions, using complex logic modules . . . . . . Adaptive systems of logic networks and binary memories. . . . . . .. . Design of diagnosable sequential machines. . . . . . . . . . . . . . . . . . . NON-ROTATING MASS MEMORY LCS (large core storage) utilization in theory and in practice . . . . . . Extended core storage for the control data 64/66000 systems . . . . . . Simulation of an ECS- based operating system . . . . . . . . . . . . . . . . . FAILURE FINDING IN LOGICAL SYSTEMS A structural theory of machine diagnosis. . . . . . . . . . . . . . . . . . . . Compiler level simulation of edge sensitive flip-flops . . . . . . . . . . . A logic oriented diagnostic program . . . . . . . . . . . . . . . . . . . . . . . Automatic trouble isolation in duplex central controls employing matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . COMPUTERS FOR INDUSTRIAL PROCESS ANALYSIS AND CONTROL Digital backup for direct digital control . . . . . . . . . . . . . . . . , Reai- time monitoring of laboratory instruments . . . . . . . . . . . . . . . Industrial process control software with human attributes . . . . . . . . . 0 ••• K. R. Gielow H. Le'i'0Y Leo J. Cohen Charles A. Kapps Victor B. Schneider C. L. Liu G. D. Chang Y. N. Patt 1. Alexander Zvi Kohavi Pierre Lavallee T. A. Humphrey G. A. Jallen lvi. H. lvlacDougall C. V. Ramamoorthy James T. Cain Marlin H. Mickle Lawrence P. lvlcNamee Herman Jacobowitz E. M. Prell J. M. Lombardo Paul A. C. Cook J. B. Nebleti D. J. Brevik A resource-allocation scheme for multi-user on-line operation of a smaii computer by ALLEN REITER Lockheed Palo Alto Research Laboratory Palo Alto, California INTRODUCTION Recently a great deal of interest has been evident in on-line information retrieval systems in which the retrieval search involves real-time man computer interaction. The advantages of such systems are becoming well known,.1 Operating systems designed to allow on-line time-shared information retrieval have common characteristics which distinguish them from other types of on-line systems. The system designer has to face problems in allocating the available computer resources that are not usually encountered in other contexts. Information retrieval tasks typically involve many repeated accesses to data stored in not so rapidly accessible peripheral storage. When the system is being shared by several jobs simultaneously, the following situation results: • The entire system is I/O bound. • System performance times are critically affected by the order in which various I/O tasks are performed. • It is obviously advantageous to have many different jobs in simultaneous execution, each placing requests into an I/O queue, so that the monitor can best schedule the order of peripheral storage accesses. • It will not do to remove jobs from core temporarily by "rolling them out" into peripheral storage, since this will merely aggravate the I/O-boundedness of the system. • Core storage has to be allocated dynamically, with care paid to both the present and the future needs of each job in execution. This paper presents an approach to solving the system-design problems when the available computer resources, and in particular core storage, are quite limited. It is shown that it is indeed feasible to design a time-sharing information-retrieval system and obtain satisfactory working results on a small research laboratory sized computer not specifically intended for time-shared use. This work was done in connection with a library reference-retrieval system designed at the Lockheed Palo Alto Research Laboratory. The system is currently running on the IBM System 360/30 computer, equipped with 32 thousand bytes of core storage, two disk-pack units, and one data-cell drive, all sharing the same I/O channel. A brief description of the retneval system has appeared in print;2 a later paper by D. L. Drew giving a full description of the timesharing monitor will appear shortly.3 A generalized system 'l'he system under discussion is designed to meet the following requirements, which are shared by most on-line multi-user information retrieval systems. PI (Multiple Simultaneous Use) - There are potentially several users on-line with the computer at any given moment in time, say 10, each of whom communicates with the computer via a slow telecommunication device. (The word user will be used synonymously with console, and will denote a source of human input to the computer.) P2 (Independence) - Each user is completely independent of every other user. Nothing that transpires at one console shall have any influence on what occurs at any other console. P3 (On-Line Interaction) - Each user's job involves many steps. By a step is meant user input followed by computer processing and system output. Any two consecutive steps of a job are necessarily separated 2 Spring Joint Computer Conf., 1967 by the period of time it takes a user to initiate the new step; this period may last anywhere between several seconds to several minutes. The computer cannot be doing any processing for this job between two steps. P4 (Program Segmentation) - A user's job requires the services of a group of program segments. These are selected by a monitor program from a large pool of such segments, based on an analysis of the user's input for each step, There is no a priori correlation between a given user and the set of program segments that he will require. PS (Storage Variability) - Different program segments place different core storage demands on the computer. These storage demands are of three types: storage for the string of segment code itself, storage for any working space that the segment might require, and storage for reading in data from the auxiliary memory devices. P6 (Heavy File Manipulation) - Almost every step of a job will involve one or more accesses to data stored in auxiliary memory devices. This system requirement, together with its consequence that the operation will basically be I/O bound, will motivate our approach to the system design. P7 (Rapid Average Response Time)- The system should normally produce a response within a fixed time from the initiation of a step by a user. This fixed time may vary from step to step, depending on the nature of the task that the computer must perform within the step. Delays to a given user caused by other users should be guarded against; ideally, no user should even be aware that there are other users of the system at the same time. In addition, without increasing the complexity of the system, we can add: P8 (Priorities) - There are priority levels associated with each job. These priorities are not meant to be overriding, but are merely another factor to consider when the system monitor is allocating the system resources, All these requirements are to be satisfied by a system which is to be implemented on a "small" computer. That is, the computer has a reasonably small core (high-speed) memory augmented by a large (but slow) random-access-memory device, and no built-in hardware for multiprocessing. Specifically, these limitations are: RLl- There are too many program segements to fit into core simultaneously. The program segments will have to be stored in the random-access memory and fetched as needed. RL2 - There is not enough core storage to dedicate a storage area for each user. Core storage will be pooled and allocated to each user as needed. Each job is expected to return storage to the pool whenever it can do so. RL3 - The central processor of the computer can only be executing one program segment (application or monitor) at one time. The only activity that may go on in parallel with the processing is input/output. As a consequence of P6 and RL 1, it may safely be assumed that the system will be I/O bound to a large extent. In order not to increase the I/O load, the following specification is imposed on the system: Sl- Once a program segment has been brought into core and its execution has commenced~ it must be allowed to come to its conclusion while it is still resident in core. Although the segment may relinquish control several times before it is finished, the segment is not to be "rolled out" to peripheral storage and brought back later in order to make its space available for other uses. As will be seen, program segments will be relinquishing control quite frequently before being finished, and there may be several unrelated segments in core simultaneously. Taken in conjunction with RL2, this implies that the storage requirements of every program segment have to be scrutinized carefully before the program is loaded to make sure that the segment will be able to reach a successful conclusion and not get hung up because of lack of space. The fact that IiO operations will have to be scheduled carefully implies: S2 - All I/O operations are to be performed by the system monitor. The individual program segments will place their respective requests into a queue which will be serviced by a system I/O scheduler. A program segment can relinquish control to the system monitor (and thence to other program segments) for one or more of several reasons. First, it may have finished its task. Second, it may have just placed a request for I/O into the queue and cannot continue until the request has been acted upon. Third, it might need some additional core storage, and no core storage is currently available. Finally, its execution may be taking too long, and it interrupts itself to give the system a chance to do something else. With a certain degree of arbitrariness it is being assumed that the system monitor will not be taking control away from the program segments, but rather the segments will relinquish control voluntarily. Thus: S3. - The system is to be event driven, rather than time driven. Because of the core storage limitations and the variation in the storage requirements from program segment to program segment~ it is imperative to have some flexibility in handling storage. In particular, A Resource-Allocation Scheme if a contiguous block of storage sufficiently large to accommodate a storage request is not available, one should be able. to honor the request utilizing noncontiguous areas. The editing problem in subsegmenting program and data areas is extremely complex, and in practice some compromise has to be effected between executing programs interpretively and placing restrictive demands upon the person writing the program segments. As this is not directly relevant to the allocation problem; we shall not go into this any further, but simply state: S4 - Storage requests can be honored by scatterloading. Resources to be allocated The resources are to be allocated with the object of optimizing the performance of the total system. Priorities notwithstanding, overall system considerations will always override the considerations relative to a particular job. Thus, we do not intend to turn over control of all of the resources to jobs for fixed periods of time; the resource allocation algorithms will do their juggling on the basis of the whole picture at a given instant. The system design is governed by two types of timing considerations: optimization with respect to total elapsed time, for all of the jobs currently on the computer, and optimization with respect to the average response time within a step, for each job and each console. No guarantee is made that every step along the line will receive a response within a certain allotted time span regardless of what is happening at the other consoles, not even if the particular job has the highest level; rather, it is hoped that long delays will be rare, and that the higher the priority the less frequent the delays. In fact, the internal priority of a given task for a given job will be a function of both its initial (external) priority and of the amount of time that has elapsed since the initiation of the step to which the task relates. The first of the resources that will be allocated explicitly is that of core storage. When a job requests storage from the system, the monitor has to consider the following: • Is enough free storage available to satisfy the request? • Suppose that the request is granted, will the job make storage available to the rest of the system (because it is now able to run to a conclusion), thus freeing not only the area just granted, but other areas as well? • Will the job be making additional requests for storage, and if so will the system be able to satisfy these reQuests? 3 • How will granting this request affect the storage requirements of the other program segments that are currently in core but are unfinished? Of course, the monitor will expect each program segment to carry enough information about its own storage requirements to be able to answer all of these questions. r-----, i Segment S requests i L N~orage cells _ -.J Are there N cells of free storage available? no yes Make a tentative storage assignment for segment S as requested Compute the new usable storage profile (US) Find the maximum single future need of anyone of the segments currently in core (MAXNEED) Does MAXNEED fit into US? yes no Is segment S already in core, or is it about to be loaded? about to be loaded already in core Reserve stor"age for all of the future needs of S - t-----------I:I-I Figure 1 - Processing storage requests Another resource that has to be allocated carefully Although typically the hardware configuration is quite complex and varies from system to system, the only devices in the generalized system whose scheduling vitally affects the performance of the system are the random-access-memory (RAM) units. Without loss of generality it shall be assumed that only one RAM unit is on-line, and that its storage capacity is infinite. This device consists of cylinders, each of which is capable of containing many records. Associated with each I/O activity is a seek time, which we shall define as the time it IS that of access to the I/O devices. 4 Spring Joint Computer Conf., 1967 takes the RAM unit to respond to the I/O command before it can commence data transfer. (We are neglecting such things as latency times and read/write head selection times, which are small compared to seek times.) The seek time depends on the distance from the current cylinder to the one where the I/O is to take place, and is zero when the distance is zero. To optimize the overall system performance, the monitor will try to schedule the order of operations on the RAM unit so as to minimize the total seek time. Although good data organization can effect great savings in the total seek time, the monitor will assume that records are to be accessed in a completely random order. If the users take the trouble to organize the data carefully they will be rewarded by faster response, but no such effort is demanded of them by the monitor. The last resource that the system monitor will have to allocate among the several jobs is that of control of the central processor. Because of RL3, only one job can actually be running on the machine at any moment (apart from the I/O activity that may be going on simultaneously). The system monitor therefore has to decide (at various decision points in the course of operation) to which program segments control is to be transferred. The core storage allocation problem As already indicated, the processing of requests for storage is a complex affair. It must be remembered that as a result of P5 and RL2, each program segment which is in core or is about to be placed in core for execution has two kinds of storage requirements: ( 1) immediate storage for the string of code that makes up the body of the segment and for its immediate working storage and (2) future storage that the segment may yet require before it can come to an end but which it can currently do without. If storage were to be reserved for each program segment at the time of its loading, there would be no particular allocation problem. When the monitor decided that the services of some given program segment were desired, it would try to load the segment. If enough storage were available at that time for all of the segment's needs, the segment would be loaded; otherwise, the loading would be postponed until a more propitious time. However, this mode of operation would mean that the system is not operating at the full capacity of the computer, and that much of the storage that might otherwise be used profitably by another job is being wasted. Since we reject the "simple-minded" approach, we have to deal not only with the problem of fitting in the immediate needs of the segment at the time of its loading, but also with the problem of making certain that all of its later storage demands can be satisfied so that it can reach a conclusion and be removed from core. Moreover, the adoption of specification S 1 prohibits us from satisfying these demands at the expense of some other program segment in core at that time. In designing an allocation algorithm, care must be taken not to over-process. The elegance of any given scheme must be weighed against the storage requirements of the algorithm itself and against the time it takes the computer to execute the algorithm. It is possible to come up with an excellent resource allocation algorithm which unfortunately consumes most of these resources itself. A good algorithm should allow storage to be allocated efficiently and quickly in the common cases while at the same time making sure that when extreme cases arise they are taken care of (no matter how inefficiently). The algorithm outlined here is an attempt to proceed along these lines. Several definitions are now in order. Any storage area that is unused (at the time under consideration) will be called free. If an area of core is at this time being used by a program segment, but that segment will be able to come to a conclusion without requiring any additional storage (thus freeing the area for the rest of the system), the area in question will be called storage-in-wai(ing, abbreviated SIW. Free storage and SIW together form usable storage. All storage which is not currently usable will be called occupied. The procedure in determining whether there is sufficient room for a segment is to match the segment's immediate needs against the free storage, and its future needs against the left-over usable storage (which is guaranteed to become free at some later time). Segments will be loaded, even though at this moment in time they cannot run to a conclusion due to lack of space, as long as storage to satisfy their needs will become available eventually. Reserving storage is to be avoided whenever possible. The key to proper allocation is the division of each segment's needs into immediate and future, and taking the interplay of aggregate future needs into account. This is accomplished as follows. When the system monitor receives a request for storage, it first checks the available free storage to see if the request can be accommodated. If not, the request is rejected (postponed) without further ado. Assuming that sufficient free storage is available, a tentative storage assignment satisfying the request is made. The storage needs of this particular segment are (tentatively) updated, and new SIW and usable storage profiles for the system are computed. Next. the monitor ob- A Resource-Allocation Scheme tains an estimate of the future needs of the entire system by computing the largest of the future needs of any single segment currently in core, including the segment about to be brought in (if the storage request is being made in order to bring in a new program segment). This largest future requirement is matched against the new usable storage. If the usable storage is sufficient to accommodate the future needs of everyone (but not necessarily more than one) of the segments currently in core, the storage situation is adjudged to be favorable, the tentative storage assignment is made permanent, and the request is granted. This takes care of the great majority of the storage requests. If, on the other hand, the maximum load is too big to be handled by the available usable storage, the storage situation is deemed unfavorable, and we have to consider the circumstances of the reqQest. If the request is being made in order to bring in a new program segment, the request is rejected. New segments generally tend to increase the total load on the system; in fact, bringing in a new program segment is the only way that the load can be increased. Such rejection will follow any indication that the system may hang up if the new segment is admitted at this time, and not just those cases where hanging up is a certainty. Assuming that the request has been made in order to accommodate the additional storage needs of some segment already in core, we know that its storage needs have been considered when it was first loaded, and that the request should be granted. It cannot, however, be granted without some precautions, since we took into account the needs of only one (the "hungriest" one) of the segments, and hence have to make sure that the monitor does not attempt to divide the available storage among several segments, ending with the insufficient storage for any of them. At this time a subset of usable storage is reserved for all of the future needs of the segment that is requesting storage. The free storage involved becomes part of the segment; any SIW storage involved will become part of the segment as soon as it becomes available. (See Figure 1.) All of the segment's future storage needs are thus taken care of, the segment will not be requesting any additional storage from the system, and hence by definition all of the area occupied by the segment becomes SIW. The net effect of granting the storage request on the system is one of increasing the usable storage. (This apparent paradox comes about as follows: If we were only concerned with maximizing usable storage, we would always reserve storage for a segment at the time of its loading. The effect of any reservation is a loss in the flexi- 5 bility in the order of execution of various independent tasks, leading to a less efficient use of the other system resources. Thus, increasing usable storage can only be done at the cost of possibly not being able to later execute the segment that is "right" for that moment, a kind of "law of conservation of resources. ") The fact that storage is reserved for the segment means that the segment has to wait for it to become available, and cannot make use of any other storage that may in the meantime have become free. In very extreme cases it may happen that there are several segments waiting for the same area, and that we have set up a hierarchy as to the order of execution of these segments, regardless of other factors. This is not particularly disturbing, since the chain of circumstances leading to this situation will arise very rarely. It might be pointed out that even in the worst possible cases the system will be operating at least as efficiently as it would have been had we decided to reserve the necessary storage for every segment at the time of its loading. An example will help illustrate the operation of the algorithm and the motivation behind the adopted conventions. Let us suppose that at some time to program segments A and B are both in core. Program A occupies 1,000 cells, and will not require any more storage before it is done; B occupies 500 cells and will require an additional 1,500 cells; 1,000 cells are currently free. If B were to request the 1,500 cells at time to, the request would of course be rejected since the area is not available. However, we know that eventually A will be finished, and then B will be able to get its storage. Let us suppose that it is desirable at this time to bring into core program segment C, which is currently residing in auxiliary memory. Segment C occupies 600 cells, and will need 2,000 more cells before it is done. Evidently, if we bring C in now (at time to)! there will not be sufficient room left to complete either B or C (even after A is completed); hence, we postpone bringing in C until a more propitious time (i.e., until after we complete B). If, on the other hand, at time to segment D wants to come in, and D occupies 500 cells and will need another 1,000 eventually, then D is brought in. Even though there is no room at the present time to complete D, at some later time (t1) segment A will be done, and then we can complete either B or D, depending on the order in which their requests come in. We return to the case where C wants to come in, but this time assume that C only occupies 500 cells while still requiring an additional 2,000 later. It would seem that we should load C, since there would 6 Spring Joint Computer Conf., 1967 still be enough room left to finish B (500 free locations plus the 1,000 cells currently belonging to A which are SIW), after which there would be room to complete C as well. Nevertheless, C is again refused admittance, for the foiiowing reason. Suppose that we do admit C at time to, and that at time t1 C places a request for 500 cells. The 500 cells are free, but should they be granted to C then things would grind to a halt, as there would not be enough room left to complete either B or C. This would therefore mean that at to, when we are trying to load C, we also have to make a reservation of the remaining usable space for B. The situation becomes even messier if we have to contend with several segments like B in core at time to. To avoid overcomplicating the algorithm, we simply refuse to load C. Note wen the difference in ioading D. If Dis ioaded at time to, and subsequently at time t1 D places a request for 500 more cells, the request is granted and a reservation of the SIW space (currently held by A) is made for D; no reservations have to be made at time to, and no segments other than D have to be dealt with at time t 1. lt has been assumed in this discussion that the storage needs of segments can be satisfied by noncontiguous blocks of core. This assumption is not crucial, and the algorithm would work with minor modifications if the scatter-loading hypothesis S4 is dispensed with. The point is that now we have to worry not only about the total demands of a segment, but also about the "shape" in terms of the block sizes.* The input / output scheduler Unlike the core allocator, the I/O scheduler will not be intimately involved with individual program segments. Instead of being concerned with the aggregate of different segments that are resident in core at any moment in time, the I/O scheduler will be concerned with the aggregate of I/O requests in the queue, without regard (except for priority determination) for the segments that have placed the request. Thus, two distinct requests for I/O by the same segment will in no way be related to each other in the scheduling, and will be treated as if they were placed by different jobs; in particular, their order of execution is unpredictable. The considerations invoived in determining which I/O operation is to be scheduled next are: (a) Which item in the queue would make for the lowest seek time? *For the Lockheed system, it is assumed that the program and data areas can be split into blocks of either 512, 1024, or 2048 bytes for noncontiguous loading; the block size is at the option of the programmer. (b) Which items have the highest urgency (in terms of the time that has elapsed since the initiation of the step leading to this request)? (c) What are the external priorities of the jobs to which the items pertain? (d) Which items are most favorable from the point of view of storage availability? (A request for input mayor may not require obtaining the necessary storage from the system; a request for output mayor may not imply that storage is being returned to the system.) Having first eliminated from consideration all items (necessarily requests for input) for which the required space is not available, the scheduler will select from among the remaining items the best one, and this will be the request that will next be. honored. It shall be assumed that the data transfer rate of the RAM unit is very fast compared to the seek time. (This assumption is implicit in our failure to include the length of the I/O request in the list of factors to consider in the scheduling.) Since we have also assumed that the seek time in accessing items on the current cylinder is zero, it follows that any operation that Can be performed without changing cylinders should be scheduled first, without regard for the other factors. If there is more than one operation that can be done on the same cylinder, other factors may be brought back into consideration; in practice it turns out that this does not significantly affect system performance, and that we might as well commence the I/O operation as soon as we find a request calling on the current cylinder, without further scanning 01' the queue. If there are no items in the queue that call for the current cylinder, we have to associate a numerical weight with each item. This weight will be some function of factors (a) to (d). The item with the highest computed weight will be scheduled next. Note that only one item at a time is being scheduled. This is consistent with the fact that both the contents of the queue and the storage situation may change significantly by the time the currently scheduledI/O operation is completed. Also note that no explicit provisions are made to ensure that the entire queue will eventually be serviced. This is partly taken care of by including into consideration factor (b), and partly by the fact that I/O requests can be placed into the queue by program segments only when the latter have control of the central processor; hence reasonable care in sequencing the transfer of control from segment to segment will ensure that every item in the queue will eventually be acted on. A Resource-Allocation Scheme The control scheduler The sequence in which the monitor passes control from segment to segment is not a particularly critical part of the overall system design. Since the system is by hypothesis I/O bound, there frequently will be times when every job is either waiting for access to the RAM unit or is waiting for user input, with the central processor being idle. The extent of the mutual interference between different users will ultimately be determined by how long each job has to wait for the I/O devices, rather than the availability of the central processor. One possible way to proceed in trying to schedule the control transfer is to compute (at time to) for each job not currently in a "wait" state an internal priority function which will depend both on the external priority of the job and on the time that has elapsed since the job last had control (measured against some real time standard). Control would be given to the job with the highest internal priority. The internal priority function should rise sharply when the elapsed time passes some critical value, so that no job is left waiting too long regardless of priorities. This scheme would guarantee that every job will eventually gain control, but will generally allow jobs with higher external priorities to gain control sooner. CONCLUSION The Lockheed LACONIQ system was designed along the lines indicated in this paper for the IBM System/360 family of machines. It is intended to be used almost exclusively in an information-retrieval setting. The major points in the system design and the motivation behind them are as follows: (1) The operations for which this system is designed largely involve accesses to files stored in peripheral storage, with relatively little processing of the accessed information. (2) Because records usually will be accessed in a random fashion, it is desirable that the system rather than the individual programmer schedule the required I/O operations. (3) Because of 2, it is desirable to have as many jobs simultaneously in the computer as can be fitted into core in order to minimize the seek times of the random-access-memory devices. (4) Because of 1, it is undesirable to dump a "core image" of a segment into peripheral storage for later retrieval in order to make core storage available for other jobs. (5) Because of inherent core storage limitations, 7 and because of the fact that the file manipulations will occasionally require that large blocks of core storage be made available for program segments, it is impractical to dedicate fixed areas of core storage for each user. Instead, core storage is pooled for the entire system and allocated out of this pool as required. Points (2) and (5) distinguish LACONIQ from other on-line time-sharing systems designed for smaH computers that have been created to date, such as the MAC system4 developed at MIT for the IBM 7094, and the DARTMOUTH system developed at Dartmouth College for a series of GE computers. The latter two were intended for general computation-oriented use and hence make liberal use of peripheral storage devices as an extension of core memory. It is the rather special orientation of LACONIQ that necessitates the delicate handling of the resource allocation problem. Pending further experience with the system in actual and simulated environments, it is felt that satisfactory performance can be expected from the 360/30 with 32 thousand bytes of core storage if not more than four users are on the computer simultaneously. A 360/40 computer with similar core (whose performance will be tested in a simulation study) can be expected to accommodate 12 users at the same time. Increasing core storage should improve system performance slightly; it is felt, however, that system performance will level off rapidly and not be affected much by further increases in core storage. Since the system is I/O bound, the improvements in performance will be caused largely by allowing more I/O operations to take place simultaneously; i.e., by adding more input channels to the computer. REFERENCES J J ROCCIO G SALTON AFIPS conference proceedings Vol 27 part 1293-305 Fall Joint Computer Conference 1965 2 D L DREW R K SUMMIT R I TANAKA R B WHITELEY An on-line technical library reference retrieval system American Documentation Jan 1966 3 DLDREW The LACONIQ monitor: time sharing for on-line dialogues to be published 4 A L SCHERR Time-sharing measurement Datamation 12 4 1966 Effects of scheduling on file memory operations* by PETER J. DENNING Massachusetts Institute of TechnoLogy Cambridge, Massachusetts INTRODUCTION File system** activity is a prime factor affecting the throughput of any computing system, for the file memory is, in a very real sense, the heart of the system. No program can ever be executed without such secondary storage. It is here that input files are stored, that files resulting as the output of processes are written, that "scratchwork" required by operating processes may be placed. In a multiprogrammed computing system, there is a considerable burden on secondary storage, resulting both from constant traffic in and out of main memory (core memory), and from the large number of permanent files that may be in residence. It is clear that the demand placed on the file memory system is extraordinarily heavy; and it is essential that every part of the computing system interacting with file memory dQ so smoothly and efficiently. moving head devices such as disks this proposition is still true, but not dramatically so; optimistic predictions look for at best 40 per cent improvement, an improvement attained only with serious risk that some requests receive no service at all. The solution lies at an unsuspected place: a method of "scanning" the arm back and forth across the disk, which behaves statistically like the access-time-minimizer but provides far better response than first come first served policies. Other analyses of drum and disk systems, but from different viewpoints, have appeared elsewhere. 1•2 •3 The importance of the results obtained here is that they are relatively independent of the behavior of the processes generating requests. The model of the file system For our purposes the computing system can be visualized as two basic entities, main memory and file memory. Only information residing in main memory can be processed. Since the cost of high-speed core memory is so high, there is at best limited availability of such memory space. A core allocation algorithm will be at work deciding which information is permitted to occupy main memory, and which must be returned to secondary memory; algorithms for doing so do not concern us here and are discussed elsewhere. 4 The essential point is that there may be considerable traffic between slow, secondary storage, and fast, core storage. System performance clearly depends on the efficiency with which these file memory operations take place. It is our concern here to discuss optimum scheduling policies for use by central file control. In this paper we discuss some important aspects of file system organization relevant to maximizing the throughput, the average number of requests serviced per unit time. We investigate the proposition that the utilization of secondary memory systems can be significantly increased by scheduling requests so as to minimize mechanical access time. This proposition is investigated m!lthematically for secondary memory systems with fixed heads (such as drums) and for systems with moving heads (such as disks). In the case of fixed head drums the proposition is shown to be spectacularly true, with utilization increases by factors of 20 easily attainable. For *Work reported herein was supported in part by Project MAC, an M.I.T. research project sponsored by the Advanced Research Projects Agency, Department of Defense, under Office of Naval Research Contract Number Nonr-4102(Ol}. We assume there is a basic unit of storage and transmission, called the page. Core memory is divided logically into blocks (pages); information is stored page by page on secondary storage devices; it follows that the unit of information transfer is the **By "file memory" in this paper is meant secondary storage devices of fixed and movable head types. Drums are examples of fixed head devices, while both fixed and movable head disks exist. Tapes may be regarded as movable head devices. 9 10 Spring Joint Computer Conf., 1967 page. We win assume that requests for file system lise are for single pages, and that a process which desires to transfer several pages will have to generate several page requests, one for each page. Singlepage requests are desirable for two reasons. First, read requests will be reading pages from the disk or drum, pages which are not guaranteed to be stored consecutively; it is highly undesirable to force a data channel to be idle during the inter-page delays that might occur, when other requests might have been serviced in the meantime. And, secondly, the file system hardware is designed to handle pages. By far the biggest obstacle to efficient file system operation is that these devices, mechanical in nature, are not random-access. This means that each request must experience a mechanical positioning delay before the actual information transfer can begin. It is instructive to follow a single request through the file system. The various quantities of interest are displayed in Figure 1 and defined below. REQUEST ENTERS QUEUE ! L~ REQUEST CHOSEN (DECISION POINT) I QUEUES CENTRAL FILE CONTROL I REQUEST COMPLETE ~~LI-a--+,-~ . I j ! L____:' ---I BEGIN OF TRANSFER is bound to be a queue. If a first-come-first-served (FCFS) policy is in effect, the queue is in reality nothing more than a by-product, a side-effect, of the system's inability to satisfy too heavy demands. It is natural to inquire whether the file system can take advantage of opportunities hidden within the queue. For example it might be possible to serve the last request in the queue during the positioning delay of the first request. Thus it is apparent that something may be gained by examination of the entire queue rather than just the first entry. I ts - REQUESTS r; -----, --:]' wF Figure 1 - Waiting time parameters for drum to - the transfer time; the time required to read or write one page from or to file memory. a - the access time; the mechanical positioning delay, measured from the moment the request is chosen from the queue to the moment the page transfer begins. ts -the service time; ts = a + to W q -the wait in queue; measured from the moment the request enters the queue to the moment it is chosen for service. W F - the total time a request spends in the file system. The policy Before discussing scheduling policies, we should mention the goals a policy is to achieve. The policy we seek must maximize throughput, and yet not discriminate unjustly against any particular request. In addition, it must be reasonably inexpensive to implement. Since mechanical devices waste much time positioning themselves, a policy which explicitly attempts to minimize positioning time is suggested. Because the file system does not operate rapidly enough to satisfy immediately the total demand, there MAIN (CORE) MEMORY SECONDARY (FILE) MEMORY Information Flow (Single Channel) Figure 2 - Modei of fiie system In Figure 2 we see a generalized representation of the queueing activity for a file memory system. Incoming requests are sorted by starting address into one of the queues Qbq2, ... ,qm. We will see shortly that a drum is addressable by sectors, so in this case there is one queue for each sector, and two requests are in the same queue if and only if they are for the same sector. We will see that a disk is addressable by cylinders, SOl in this case there is one queue for each cylinder, and two requests are in the same queue if and only if they are for the same cylinder. The important point is this: each queue is associated with a mechanical position of the storage device. The switch is intended to illustrate the delays inherent in mechanical accessing. If the device is a drum we may imagine that the switch arm is revolving at the same speed as the drum rotates, picking off the lead request in each queue Effects Of Scheduling On File Memory Operations* as it sweeps by. This structure is equivalent to the following policy: choose as next for service that request which requires the shortest access time; this policy will be called the shortest access time first (SATF) policy. It should be clear that the FCFS policy is less efficient because it involves longer access times per request. It should also be clear that SATF does not discriminate unjustly against any request. Now suppose that secondary memory is a disk. Due to physical constraints, it is not possible to move the switch arm of figure 2 between q 1 and qm without passing q2, ... ,qm-l. The arm does not rotate, it may only sweep back and forth. However it can move arbitrarily from one queue to any other. The operation of moving the arm is known as a seek; but the policy shortest seek time first (SSTF), which corresponds to moving the switch arm the shortest possible distance, is unsatisfactory. For, as we will see, SSTF is likely to discriminate unreasonably against certain queues. In order to enforce good service we will find that the best policy is to scan the switch arm back and forth across the entire range from ql to qm. We shall refer to this policy as SCAN. It will result in nearly the same disk efficiency as SSTF, but provide fair service. Again it should be clear that SCAN should be better than FCFS, which results in wasted arm motion. The drum system Our first goal is to analyze a fixed head storage device. The analysis deals with a drum system, but is sufficiently general for extension to other devices READI WRITE HEADS Figure 3 - Organization of the drum 11 of similar structure. The analysis we use is approximate, intended only to obtain the expected waiting times, but it should illustrate clearly the advantages of scheduling. The drum we consider is assumed to be organized as shown in Figure 3. We suppose that it is divided lengthwise into regions called fields; each field is a group of tracks; each track has its own head for reading and writing. The angular coordinate is divided into N sectors; the surface area enclosed in the intersection of a field and sector is a page. If the heads are currently being used for reading, they are said to be in read status (R-status); or if for writing, they are said to be in write status (W-status). Since there are two sets of amplifiers, one for reading, the 'other for writing, there is a selection delay involved in switching the status of the heads. Thus, suppose sector k is presently involved in a read (R) operation. If there is a request in the queue for a page on sector (k+ 1), and its operation is R, the request is serviced; but if the request is W, it cannot be satisfied until sector (k+2) , since the write amplifiers cannot be switched in soon enough. We suppose further that there is a drum allocation policy in operation which guarantees that there is at least one free page per sector. This might be done in the following way. A desired drum occupancy level (fraction of available pages used) is set as a parameter to the allocator. Whenever the current occupancy level exceeds the desired level, the allocator selects pages which have been unreferenced for the longest period of time and generates requests to move them to a lower level of storage (for instance a disk). Since these deletion requests are scheduled along with other requests, there will be some delay before the space is available, so the desired occupancy level must be set less than 100 per cent. A level of 90 per cent appears sufficient to insure that the overflow probability (the probability that a given sector has every field filled) will be quite small. If this is done, two assumptions follow: first, that a W-request may commence at once (if the heads are in W-status), or at most after a delay of one sector (if the heads are in R-status); and second, it is highly probable (though not necessarily true) that a sequence of Wrequests generated by a single process will be stored consecutively. The assumption that W-request can begin at once is not unreasonable, and can be achieved at low cost. We denote the probability that a request is an Rrequest by p and that it is a W-request by (l-p). That is, Pr[a given request is R] = p Pr[a given request is W] = 1 - p 12 Spring Joint Computer Conf., 1967 We suppose that the access time per request is a random variable which can assume one of the N equally likely values where T is the drum revolution time, N the number of sectors. When no attempt is made to minimize the access time, the expected access time is N-l ~ E[a] = k=O F"lyl: w·· (kT) k = N-I Pr[a=-] -T N N 2N (I) ing properly, there is a high probability these pages will be stored on consecutive sectors. It follows that a sizable subset of waiting R-requests, all originating from the same process, will want information which is stored on consecutive sectors, so that the access times will have higher probability of being smail than a uniform distribution will assign. Although the use of a uniform distribution simplifies our calculations, it leads to conservative answers because the expectations obtained will tend to be too high. If the service policy is FCFS the expected access time is just the access time for one request: p, ~ gW /2 is identical, so we need consider only k W/2 by symmetry. , Fs (u) I .- - - - - - - - - - ------~ I ~ 2p(k-1l I ~ o 2 I k-2 k-I 1\ k+ W-k j Figure 11 - Cumulative distribution for arm motion F iu) Figure 11 is the cumulative distribution Fiu) that the seek time s is less than or equal to u units: Flu) = Pr[s::::;u] (18) (20) Finally the access time is E[a] = E[s] +-t (21) Saturation and loading effects We have said nothing about what SSTF is to do in case of a "tie"; that is, when the minimum arm movement is the same in either direction. Suppose we were to adopt the rule that, in case of a tie, the arm moves away from the center of the disk region; in this way (we would reason) we can counteract the effects of outer-edge discrimination. Consider what would happen if, on the average, there were one request per cylinder. There would almost always be a tie for a motion of one track, so that the arm could drift to one edge of the track region and stay there. Any requests for the opposite edge might be overlooked indefinitely. This possibility that there may be times when there are many cylinder requests is the downfall of the SSTF policy. For under heavy loading conditions, the arm will tend to remain in one place on the disk, Effects Of Scheduling On File Memory Operations* and pay little or no attention to other regions. Although SSTF provides an increase in utilization, it is not at all clear that it will provide reasonable service to the requests. For these reasons we feel the following policy is superior. do a transfer of one track at each stop. So the time t between stops is t (22) N ext we obtain an estimate of the seek time per request. If there are n requests, these divide the track region in (n+1) regions of expected width W/(n+1). The seek time for one such distance is E[s] = S . mm + Smax - n+1 = E[s] - Smin+ S . + ~ T t = Smax n+1 mIn 2 Hence the time to cross W tracks is nt. The time WF -- ----«0;;1'.- WF = ... 2 ' 2 '3 nt = '3 n +"2T (24) N ow we can determine how long it takes the arm to cross the track region. It must make n stops and ... [Smax-Smin+ ] T n+ 1 Smin + n (26) Example To demonstrate the effects of scheduling, we present an example using the following parameters: Smin = minimum seek time = 150 ms Smax = maximum seek time = 300 ms W = number of tracks =30 T = disk revolution time =60 ms n = number of requests in queue = 10 The utilization factor, or the fraction of time spent by the disk doing useful transmission, is t U = E[a] +t (27) where t is the transfer time for a single request. We use t = T, that is, each transfer is a full track. Due to uncertainties resulting from possible saturation effects we do not venture to give estimates of WF under the SSTF policy. Using WF = n E [ts ] under the FCFS policy, Q = l/E[ts ] for the throughput factor Q under all policies, and the disk equations just derived, we obtain the following table for the above parameters: milliseconds (23) (25) a simde reauest must wait is. from eauation (22), Smin Assuming that, once the arm has stopped at a cylinder7 there is an additional expected delay of T/2 for the starting address to rotate into position, we have for the access time E[a] 3 = E[a] + T = E[s] + '2 T or, The SCAN policy As we mentioned in the discussion following Figure 2, a policy which insures reasonable service to requests is the SCAN policy, in which the switch arm is swept back and forth between Gl and Gm, servicing any requests in the intervening queues as it passes by. We can think of operating the disk arm as a "shuttle bus" between the inner and outer edges of the track region, stopping the arm at any cylinder for which there are waiting requests. U sing average-value arguments we can obtain estimates for the utilization factor U and waiting time WF of a single request. First assume that there are sufficiently many cylinders and sufficiently few requests that the probability of finding more than one request for a given cylinder is much less than the probability of finding just one request. This is equivalent to assuming that the total number of waiting request falls randomly within the track region, and that when it arrives the arm is at some random position within the track region. Then the expected distance between the arriving request and the arm is W/3. N ow with probability 1/2 the arm is moving toward the request, in which case the distance the arm must travel before reaching the request is W/3. With probability 1/2 the arm is moving away from the request. in which case the distance the arm must travel before reaching the request is 3(W/3)=W. Hence the expected distance the arm moves before reaching the request is 17 POLICY FCFS SSTF SCAN E[s] E[a] E[ts] 195 113 164 225 143 194 WF 285 2850 203 ? 254 1700 Utilization Throughput U Q per cent Per second 21.0 29.5 23.6 3.5 4.9 3.9 It is apparent that with 10 cylinders requested the expected utilization increase with SSTF over FCFS is 29.5 = 1 40 21.0 . 18 Spring Joint Computer Conf., 1967 so that the gain under SSTF is a not-too-impressive 40 per cent. It is the large minimum access time, Smim that impairs efficiency. We conclude that, since the SSTF gain is marginal, the discrimination certain requests might suffer is not worth the risk. This substantiates our claim that SCAN is preferable. SCAN exhibits an improvement of 23.6 = 1 12 21.0 . or 12 per cent in utilization over FCFS; but the improvement in WF, 2850 1700 = 1.68 or 68 per cent is well worth the cost. It means that each request sees a disk that is 68 per cent faster. Finally note that the relative improvement Smax - WF [FCFS] ---"'----7--_=::_ W F [SCAN] = Smin ~ 3 + 3 + Smax - (s . Smin n+l mm "V:; ! Iope=t 4.v'/ -3T ..' - - - - 2 T "2 .-', +--- I ! I .----.J.- 2 ··--~n -~ 3 N-I Figure 13 - Comparison of W r for two drum policies w "F ~ I 3 +,2 T Smin + l T) Slope =K+ (d 3 I 2 approaches a maximum for n >> 3Smin Smin+ - T Smax - 3T K ~ Smin+T 2 6. = Smax - which is obtained under normal load conditions. v CONCLUSION In the case of fixed head devices such as drums, we have seen that spectacular increases in utilization can be achieved by the rather simple expedient of Shortest Access Time First (SA TF) scheduling. Requests serviced under the SATF policy are treated with the same degree of fairness as under the FCFS policy . Yet service is vastly improved. We have seen, in the case of movable head devices such as disks, the impulse to use Shortest Seek Time First (SSTF) scheduling must be resisted. Not only may SSTF give rise to unreasonable discrimination against certain requests, but also during periods of heavy disk use it would result in no service to requests far from the current arm position. Enforcing good response to requests by shuttling the arm back and forth across the disk under the SCAN policy surmounts these difficulties? at the same time providing little more arm movement than SSTF. Hence SCAN is the best policy for use in disk scheduling. WF, the time one request expects to spend in the file system, provides a simple. dramatic measure of file system performance. Figures 13 and 14 indicate comparative trends in WF for two policies. As usual, n is the number in the queue, T the device revolution time, N the number of sectors on the drum, Smax Smin 6. "+"3 .-----.--~ 6 - n m »-Smin Figure 14 - Comparison of Wr for two disk policies and Smin the maximum and minimum disk seek times respectively. Figure 13 shows that even for small n, WF under the SATF policy is markedly improved. The curves diverge rapidly. '''Ie call attention to the asymptotic slopes, which apply under heavy load conditions. Figure 14 leads to similar conclusions for the SCAN policy. There can be no doubt that these simple policies - SATF for drum, SCAN for disk - can significantly improve hIe memory operations and thus the performance of the computing system as a whole. ACKNOWLEDGMENT The author wishes to thank Jack B. Dennis and Anatol W. Holt for helpful suggestions received while composing this paper. Appendix 1 - Expectation of the Minimum of Random Variables Consider a set of independent, identically distributed random variables t 1 , t 2 , ••• , tn each having density function p(t). Define a new random variable (1.1) Effects Of Scheduling On File Memory Operations* We wish to determine the expectation of x, E[x]. Now, Pr [x ? a [ = Pr [t1 '> a; t2 > a , . .-. , tn > a] = (Pr[t > a])n = [F/ (a)]n where f f3 E2[a] = a f du + f (1 - 2~ o ¥r 19 du f3 00 F/ (a) == Pr[t > a] = (1.2) pet) dt is the complementary cumulative distribution for t. U sing the fact that f 00 E[x] = (1.3) Pr[x > u] du o we have 00 E[x] = f CF/ (u))n du o (1.4) APPENDIX 2-Analysis of SATF Policy Consider the SATF policy. As indicated by Figure 5, the distribution function for access time is o u~O 1 a < u Fa(u02~+¥ O W/2, with k replaced by (W-k). From Appendix 1, the expected minimum seek time is (1 _~) k(~) pk (l_p)k Since this is true for each k = 0, 1, ... ,(n-l), we must sum over k. In \ I. l)k k" '~k \k) \ 1 - N P t I-Pr- (~) [p (1 - ~) r(1 - Pr- k - pn( 1_~)n = [1 - p + p (I - N)] n_ pn (I _~) n = (1 _~) n_ pn (1 _~) n Hence the probability Q=Pr {~o R-request for the present sector and heads 1 In R-status and at least one W-request J Q=pn+l [(~ - ~) n_ (1 - ~) 1(1 - pn) (2.6) But Q is just the probability that E[a] =~ . Collecting together the results of cases 1 and 2 we see that E[a] = ER[a] pn + TN Q (2.7) so that 1 )n+l T(1-p) T(l-p) n+l1 n _ [TP ( _ _ E[a] - n+l 1 2N + N + 0+1 P f f (1 du + o = From Figure 11 we have for the distribution function for the arm movement for one request, conditioned on the arm moving: 2 This integration is straightforward, so we do not reproduce it here. The result is E[s] = t+ 2; 1 ( + p(n+ I) 1 - [I - (I - 2P(k-l)t'] n!-I 2p(k-l) ) n+l (3.3) Equation (3.3) applies for k < W/2. By symmetry (Figure 9) it appiies for k > W /2 if we replace k by (W-k). The case k < W /2 occurs with probability 1/2, and so does the case k > W/2. Hence, collecting terms in equation (3.3), E[s 4 I k< ~] = + 2 (n!1) By symmetry, E[s APPEN D IX 3 - Analysis of SSTF Policy k-- (3.2) (1-2~r'lp"+~ pn+, (I-pn) which concludes the derivation. f (1-~(2k-3)-PUr du (3.4) _ _(1 _~)n] P + p - 2 U) n du + 1 2 (2.8) [(~ ~)n .. 1 W -K+2 . 1 k--= 2 2 E[s] = kE[s E [s] = E[s [1 + (1 - 2p(k_l))n+l] p Ik > ~ ] Ik < i] + i is the same. Then E[s I k > ~] Ik < W "2 ] (3.5) Now, recalling that the head position k is assumed to be uniform for values of k = 1,2,000 ,W, we can appoximate its distribution function by a ramp of Effects Of Scheduling On File Memory Operations* slope 1/W from 21 to W + 2.1 Conditioning on k < ~, we can approximate the conditional distribution by tt a ramp or slope 2/W Hom to integrate [i ,i (~ E [s I k < 'i] ) (w+ 1). Therefore we on the interval (W+l)]. The result is, using p= l/(W-l): moves), we have for the expected minimum seek time when n are in the queue: [.! E[ ] = (W-1)n + S . + Smax - Smin S W 2 mm 2(n+1) (3.8) (1 + n~2 (W~I)n+1)] which concludes the derivation. REFERENCES 1 W-l [ 1 ( W) n+l)] E[s]=2"+2(n+1) l+ n+ 2 W-l (3.6) 2 recalling that this is conditioned on the arm moving, we remove this condition by multiplying by the probability the arm moves: 3 and obtain the following: E[s] = (W;1r [i+ 2~~~) (1 + n!2 (W~1r+l)J 4 (3.7) Noting that the time required for (W-1) tracks is Smax, and the time for one track is Smin (if the arm 21 5 A WEINGARTEN The Eschenback drum scheme Comm ACM Vol 5 No 7 July 1966 D W FI FE J L SM ITH Transmission capacity of disk storage systems with concurrent arm positioning IEEE Transactions on Electronic Computers Vol EC-14 No 4 August 1965 PJ DENNING Queueing models for file memory operations MIT Project MAC Technical Report MAC-TR-21 October 1965 LA BELADY A study of replacement algorithms for a virtual-storage computer IBM Systems Journal Vol 5 No 2 1966 T L SAATY Elements of queueing theory McGraw-Hili Book Co Inc pp 40 ffNew York 1961 Address mapping and the control of access in an interactive computer* by DAVID C. EVANS University of Utah Salt Lake City, Utah** and JEAN YVES LECLERC 109 rue St. Dominique Paris, France *This work was sponsored by the Advanced Research Projects Agency, Department of Defense, under contract SD-185. **Formerly ofthe University of California, Berkeley INTRODUCTION Computer system designs have attempted to maximize machine utilization (sometimes called efficiency) without regard to other important factors including the human effort and elapsed time required to solve problems. In recent years some computing systems have been developed which provide communication and control means by which users can interact with their own computing processes and with each other. Initial use of these systems has demonstrated their superiority in computer-aided problem solving applications. These interactive computing systems are mainly adaptations of conventional computing systems and are far from ideal in many respects. This paper describes a much improved mechanism for protection, address mapping, and subroutine linkage for an interactive computing system. The user of a computing system should be able to interact arbitrarily with the system, his own computing processes, and other users in a controlled manner. He should have access to a large information storage and retrieval system usually called the file system. The file syst~m should allow access by all users to information in a way which permits selectively controlled privacy and security of information. A user should be able to partition his computation into semiindependent tasks having controlled communication and interaction among the tasks. Such capability should reduce the human effort required to construct, debug, and modify programs and should make possible increased reliability of programs. The system should not arbitrarily limit the use of input/output equipment or limit input/output programming by the user. The system capability specified above is available to some degree in present computing systems. The particular limitations to which this paper is directed are the following: (1) The familiar memory protection systems limit or control access to specified regions of physical memory or to specified units of information. The actual system need is to control the various access paths to information. For example, at one time a particular segment of information may be a procedure for execution only to itself, a data segment to a debugging program, and entirely inaccessible to the other segments in memory. (2) In order to protect the input/output equipment from unauthorized use, most mUltiple access computing systems deny all direct access to input/output equipment by user programs. The system described permits selective controlled access without limit as authorized by the executive system. For example, a user may be given unrestricted use of a magnetic tape unit without hazard to other users or to the system. (3) Most systems require modification of procedures by program to bind segments together for a computing process. This is usually done by means of a "loading routine." The system de23 24 Spring Joint Computer Conf., 1967 scribed permits arbitrary binding at run time with no modification of data or procedure and no compromise in protection of information. (4) It is often the case that a computing task is made up of a number of semi-independent computing processes which should operate concurrently with only limited interaction. Familiar computing systems do not provide a convenient means for handling such cases. Before examining the mechanisms proposed let us examine a computing process. We may think of a process as an activation of a procedure which operates on other elements of information. We call these elements parameters and the procedure itself the base parameter of the process. Each parameter may be a simple element, such as a data element, or may be a compound element, such as another procedure with its parameters. Ordinarily, elements of a process as described are segments of information from the file system. Segments either may be private to a single process or user or may be shared among users or processes. The subject of this paper is a mapping mechanism by which procedures are bound to their parameters at execution time without modification or relocation. Three functions are performed by means of this single mechanism. (l) It permits each procedure to see its parameters through a map which defines the relationship between its own address space and the address spaces of its parameters. (2) It permits the user (or the process) to selectively control access to information on every access path. (3) It permits selective control by the user and the system of access to processing resources, including input/output equipment and instructions. Severai address mapping schemes have been described previously which do not provide all of the desired capability},2,3,4,5 The most serious defect of such schemes is that access to a segment of information solely depends on that segment of information, but as will be justified later, should depend on the access path from the parameter making the access to the parameter being accessed. storage block. A segment may be a portion of another segment or may be a set of segments each of which also has a symbolic name. Parameters and parameter spaces The reiation between two segments depends on those two segments and not only on the called segment. For example, consider the debugging program DDT and the program P: P may not write on P, DDT may write on P, DDT may not write on DDT, and so on. The user should be given tools which permit him to establish the proper relations between segments. The structure of a computing process may be represented as a tree. Consider the structure represented in Figure 1. In this structure the procedure segment nam~d PI may directly access the procedure segment named P2 and data segments named S 1 and S2. The procedure segment P2 may directly access the data segment S 1. In the example shown it is not necessary for PI to refer to S 1 by the same addresses as are used by P2 to refer to S 1. We have chosen the following more convenient notation which is an adaptation of a functional notation due to Von Neumann to represent information of the type shown in Figure I. If the computing process of the figure is called a, it is represented in the notation as a: (PI, (P2, Sl), SI, S2) This may also be represented in a less condensed way: a: (P I, ,8, S I, S2) ,8: (P2, Sl) The three representatives are equivalent. PI Computing processes and addressing spaces Before examining computing processes and their control, we will make the following definitions: Segment Information is stored in a file system. The basic entity of the file system is a segment which is an ordered collection of information having a symbolic name as in the terminology of J. Dennis. 4 Examples of such segments might be the body of a procedure, an array, a pushdown stack, a free storage list, or a string SI Figure 1- The representation of the access paths of a computing process Address Mapping Consider now the procedure segment P 1. It may be represented as (PI, Fl, F2, F3) where PI is called the root parameter and F 1, F2, and F3 are formal parameters of the procedure. If the procedure PI is to be executed, it is necessary that actual parameters be assigned in place of the formal parameters F 1, F2, and F3 as has been done in the expression, (P 1, /3, S 1, S2) It may be seen that an actual parameter may be a, simple segment as is S 1, or it may be a compound structure as is {3. Each segment (either a procedure or data segment) may refer to other segments. These segments are the "parameters" of the given segment which is called the root segment. Such a segment SO with its associated actual parameters S 1, S2, S3, ... SN is written as before, (SO, SI, S2, ... SN) and defines a "parameter space."* Two parameter spaces having the same root segment are different if any parameter is different. The root segment of a parameter space is always fixed and sees itself as parameter number O. It references other parameters with numbers 1, 2, 3,... N. Every address appearing in the memory of the computer (e.g., in instructions) will refer to such a parameter space in the form PARAMETER, DISPLACEMENT where DISPLACEMENT identifies an element of a parameter. The parameter space to which an address is relative will be called the "source" of that address. Note that a parameter space may be a parameter of a parameter space. In the example given {3 is a parameter space which is a parameter of the parameter space a. There are several kinds of parameters: A parameter may be fixed for that parameter space or may be a dummy parameter which is changed every time the parameter space is entered. A parameter may be a scratch segment in which case every time the parameter space is entered, the system assigns a fresh copy of the scratch segment for temporary storage, which is released when the program returns from the parameter space. Such a parameter should be declared, but the user can rely on the system for getting fresh copies. This can save space in the secondary memory, because a pool of scratch segments can be shared by the *The term parameter space includes the term subprocess and parameter space reference 6. 25 system among the many users of such segments. User space Each parameter space which has been defined is given a number for identification. The number is assigned by the system and has no meaning to the users. Each segment which is not the root segment of a parameter space is considered to be a parameter space and is also given a number. These parameter space numbers are the addresses of the parameter spaces in "user space." It is necessary for the system to know the identity of the parameter space to which an address is relevant. An address in user space has three components. SOURCE, PARAMETER, DISPT ACEMENT. An address in user space is an unambiguous address specification which will be used explicitly in subroutine linkages. Users may freely manipulate parameter space addresses without hazard to the system or ot other users in the system described in this paper. Operations on user space addresses must be limited by the system to assure the system integrity and to protect the computing processes of users from accidental or intentional damage by other users. 1. A process may request and receive the information which specifies the status of an immediate dependent. 2. A process may transmit an interrupt signal up the hierarchy which will be received and acted upon by the first superior process in which the corresponding interrupt is armed. If no process in the user's hierarchy of processes is armed, the interrupt will be acted upon by the system itself. 3. Processor-generated interrupt signals indicating faults, attempted violations of protection or other information may be transmitted up the hierarchy as in No.2 above. It is evident from the above that there are two means for defining communications among processes. Each process should be armed for the desired interrupt signals. The desired common data segments should be assigned so that processes may obtain messages from other processes. A process may have the capability to alter its priority or its interrupt arming. Dynamic binding Binding is the assignment of actual parameters to a parameter space. In traditional computing systems the only space which exists at execution time is the physical address space. Binding is done in the physical address space before execution by a program called loader, assembler, or compiler which modifies the 26 Spring Joint Computer Conf., 1967 stored addresses. In the system described, the mapping hardware binds parameter spaces at execution time with no modification of the addresses stored in memory and without the sacrifice of protection that results when conventional base registers are used for the binding. When a parameter space is entered it is not always completely defined. The definition is complete when all formal parameters in the parameter space have been replaced by actual parameters. An actual parameter may, of course, be a value, a data segment, a procedure segment, a parameter space, or some descriptor of the parameter. This may be accomplished by the transmission of some information from the calling parameter space to the called parameter space as in the transmission of arguments to a subroutine, or it may be accomplished by the execution itself. The mapping functions The address of any item is uniquely defined in user space by the three components SOURCE, PARAMETER, DISPLACEMENT During execution these three components are always known although only the parameter and displacement components are stored in the text of the procedure. The mapping function translates addresses from user space to physical address space. The mapping function may be implemented in any of several forms. Only one implementation will be described in this paper. Alternative implementations are described in reference 6, and their relative merits are examined. In the implementation described, it is assumed that a conventional pageing strategy as described in reference 1 is used for memory allocation. In this scheme the physical memory is partitioned into a set of uniform sized blocks. The physical address may thus be represented by two components, BLOCK, LINE where BLOCK is the number of the physical partition and LINE is the number of the element of the block. Block size is determined by the same criteria as in other paged memory systems. An associative implementation of the address translation map is shown in Figure 2. The address in user space is stored in registers marked SOURCE 0, PARAMETER, DISPLACEMENT. The PARAMETER, DISPLACEMENT portion is contained in the address field of an instruction as stored in memory or an instruction address register. The DISPLACE. MENT field has been partitioned into subfields called r'O~EO SOURCE 1 PARAMETER DISPLACEMENT I I I :C.l":l. 1 I 1 7 J r I ! PAGE SOURCE CONTROL BLOCK 0 0 a 6 a 1 0 Il 5 a 2 0 y 1 a 2 1 8 3 Il I I 0 0 Il 5 1 0 y 1 1 1 y 0 0 y 0 1 Il I I a 8 I Tn'E L./.LJ." I / PARAMETEJi PARAMETER SPACE I J..:..o I I I I I y II I y y II I 1(+ PHYSICAL ADDRESS 3 1 3 Figure 2 - Associative implementation of address translation map PAGE and LINE. A page of information is stored in memory in a block. In order to understand the operation of the map consider the address structure used as an example in part B. There are four parameter spaces: a: (Pl,,8, SI, S2) ,8: (P2, S1) y: S 1 0: S2 Consider that the information is stored in the blocks of physical memory as indicated in Figure 3. The segment PI is one page in size and is stored in block 6. The segment S 1 requires two blocks for storage; page 0 is stored in block 1. and page 1 is stored in block 3. Other segments are stored as indicated. This storage allocation and address structure is represented in the address transformation map as shown in Figure 2. The first line of the map represents the parameter PI of the parameter space (source) a. Any address retrieved from PI when accessed through this table entry is relative to the parameter space a as indicated in column 4 of the first row. The information I 1 I 5EGY,:::~T KA.V.:::: 51 ! I 52 I ! I I 51! . : P2 - - - - - - ! - --:- --,--- ----j-- o ?AG:2: o 1 i,' 011: 2 3 I ~1_ i_____ _ --1- : 10 4 i I I i 01 I 5 BLOCK NUMBER Figure 3 - Representation of storage assignment in physical memory 7 Address Mapping is stored in block 6 of memory as indicated in column 6. The second line represents parameter 1 of parameter space a, which is parameter space {3. The only part of the parameter space {3 which is directly addressable from a is P2, the root parameter of (3, which is a one page segment stored in block 5. Each page of every pc...:.:a-neter space is similarly represented by a row in the taole. Consider now the use of the mapping mechanism. If execution is to begin with the Kth instruction of PI, the instruction location registers are set as follows: SOURCE 0 a PARAMETER 0 PAGE 0 LINE K The associative memory represented by the table uses SOURCE, PARAMETER, PAGE as argument and selects the first line. The physical block number 6 is concatenated with the line number Cf~) to make the physical memory address 6,K from which the instruction is fetched. The parameter space name a from column 4 is stored in SOURCE 1. Subsequent operation depends on the nature of the instruction fetched from memory at address 6,K. Three cases will be examined to illustrate the operation of the address translation map. Case 1. A typical instruction for which the operand is the content of memory at the address specified in the instruction. In this case the address translation is identical to that of the instruction fetch described in the paragraph above. SOURCE 0 remains a, and the address from the instruction is of the form PARAMETER, PAGE, LINE. Case 2. The same as Case 1 but indirect addressing is specified. Operation begins as before but when the content of memory by the first memory access is used as PARAMETER, PAGE, LINE of the address for the second memory access. However, SOURCE 1 is used in place of SOURCE 0 to select the parameter space for this access. For example, if the address from the instruction is PARAMETER PAGE LINE 1 0 m INDIRECT and the first physical address accessed is 5, m, and the value of SOURCE 1 is {3. On the second access the parameter space accessed is {3 as indicated by the SOURCE 1 register. Indirect addressing can be nested by this mechanism and the parameter space for the next access after the operand is fetched is determined by the content of the register SOURCE 0 which will remain unchanged as a. 27 Case 3. A transfer of control instruction where the next instruction is to be from a new parameter space. In this case the value in SOURCE 1 is transferred to SOURCE 0 before the next instruction is accessed. For example, if the instruction is fetched from the address the value SOURCE PARAMETER a 0 PAGE o LINE K of SOURCE 1 will be set to {3 as before. If the address contained in the instruction is PARAMETER 1 PAGE o LINE n the address of the next instruction will be SOURCE 0 {3 PARAMETER PAGE LINE IOn because SOURCE 0 is set to {3 by the content of SOURCE 1. Simple extension from these three cases will cover all the addressing cases which are analagous to those of a conventional computer employing indirect addressing and indexing. The common technique of using indexing of greater range than the range of the DISPLACEMENT component of the address field in storage presents no problem. It is clear that the capacity of an associative memory which it is reasonable to construct is too small to accommodate all the information for all users of a computing system. The same technique employed in other computers (see reference 5) in which the entire map is stored in general memory and only those currently active in the associative memory is employed. Reference 6 gives a detailed description of the structure and manipulation of such tables. Use of the system by multiple users presents no problem. One can think of users as owning parameter spaces and being identified by the assignment of parameter space names. Some parameter spaces may be common porperty and may be identified as belonging to the system as a kind of pseudo user. An important characteristic of this mapping mechanism is that each row of the table represents an access path. The use of this characteristic for access control will be described in the next section. It should also be noted that the hardware of the mapping mechanism described is almost identical to that of other mapping mechanisms employing small associative memories. Its cost and speed is therefore similar to that of the more familiar systems such as that described in reference 5. 28 Spring Joint Computer Conf., 1967 Access control Protection or access control in computing systems is usually of two kinds. Two modes of operation, sometimes called user and monitor, exist and are distinguished by the monitor mode permitting program access to input/output instructions and to instructions which alter the state of the machine; these are called privileged instructions. Access to memory is controlled by restricting access to regions of physical memory. In systems employing memory mapping, access control is applied to units of information called pages or segments. As was shown in section I.B, the desired memory protection depends on the relationship between pairs of parameters; it is access path protection. A conventional computing system can provide such protection by dynamic modification of protection every time a subprogram is called and by calling the supervisor for each return to perform the inverse action. In the system described, much better protection may be achieved because the CONTROL entry in each row of the map permits specific control of access on each access path as desired. We will now show diffen>nt possible ways of protection. A. If a call does not permit access to a given segment, the segment does not appear as a parameter of the parameter space. Of course, a parameter space may provide access indirectly to other segments through one of its parameters if that parameter is defined as the root parameter of a parameter space with the indirectly accessible segments as its actual parameters. Each level of access can be controlled through such parameter spaces. B. In each parameter space the access to each parameter may be specified independently; a particular segment may, for example, be an execute only subroutine in one parameter space and a data segment in another parameter space. C. A program parameter has protected entries if it is possible to give control to only a certain number of privileged points in it. To implement this feature conveniently, one can reserve the first N locations of a parameter to point to N entries in the parameter. A protected branch instruction to this segment must then be an indirect branch through one of these N locations" a user to execute directly are permanently forbidden to all users. Thus, for example, no user may ever make direct use through his own program of any input/ output equipment or secondary storage equipment. The access path control concept permits the same kind of flexibility of control to peripheral equipment and instructions as to information. For example, in a particular parameter space on a particular access path a user may be given access by means of his own procedure to a particular magnetic tape unit with no hazard to users of other tape units. More generally stated, the access to a particular instruction, peripheral unit, or other system capability depends on the relationship between the access path and the capability. It may be impractical to reserve sufficient space in the CONTROL field of the map to permit the complete range of flexibility described above. A reasonable implementation is to have reserved in general memory some space corresponding to each row in the table and a single bit in each CONTROL field, which when set to 1 causes the hardware to fetch this additional control information. Control information relating to such resources as peripheral equipment for which maximum speed is not essential should be stored in this reserved space in memory. In all these cases we have considered parameters instead of segments. A segment can be a data parameter for one parameter space and a program parameter for another. A program segment can have protected entries for one parameter space and no protection for another. The real power and perhaps the justification of the system li~s in the fact that protection is provided in the parameter spaces and not by segments, as has been done in other hardware systems. If we return to our example of a debugging program DDT and its object program P, one can conceive the the following structure: In the preceding we have considered the control of access to information. This is an extension of the idea of memory protection. Let us now examine use of the same mechanism to control access to processing resources. This is ~n extension of the ideas of privileged instructions. In the familiar systems all instructions which under any circumstances may be hazardous for In this hypothetical situation D 1 is a data segment on which P is working; 02 is a segment of tables about P which is used by DDT; P2 is a subroutine used by P and which will be supposed to be already debugged. Consider as another example an executive program which handles input/output of files through buffers. a: {3: (DDT P.RO., (3, D 1 D., D2 D.) (P P.RO, D1 D., P2 P.RO.PE) with the conventions, P. D. RO. PE. for for for for program data read only protected entries. Address Mapping Most of these operations are not really input/output, but exchanges between buffers and the user programs. Such an executive program requires only limited use actual input/output instructions. It should call a subprogram having capability to use appropriate input/ output instructions when real input/output is involved. The protections needed here are: A. The user program is not allowed to jump everywhere in the executive program. B. The number a user gives must be checked as being a real file name belonging to that user. C. Access path protection must be provided to input/output and peripheral equipment. The first protection is given by protected entry. The entries correspond to the different kinds of input/ output, for example character, work, block, number, string, line, and so on. The second protection can also be provided- easily. Suppose the file number consists of the segment number (in the user space or in the parameter space of the executive program) of the segment which constitutes the buffer for this file. The executive program is a given parameter space in the user program. Each buffer appears for the executive program as a parameter in its parameter space. If the file number the user gives is not really a file number of the user, it will not appear in the parameter space of the executive and an instruction trap will result. This kind of protection frees the executive from such checks. More sophisticated protection can be given in the case where the system provides many input/output packages. If a certain file has been opened by a certain package in such a way that it will not make sense to other packages, the corresponding parameter will not appear in the parameter spaces of other packages. This does not complicate the logic of the program which handles the memory traps, because the same kind of situation can occur anywhere in a user program and must be serviced. Because errors on file numbers occur quite infrequently, an automatic protection saves much time and programming. Subroutine calls and transmissions of arguments The call of a subroutine usually corresponds to a change of parameter space. The parameter space is not always completely defined before the call. To complete the definition some information may have to be transmitted from the calling routine to the called routine. This process transforms formal names in the called space to actual names or to values. At the time of the call it is often necessary to store some information about the calling segment in order to be able to return to it. This information is called the "link." 29 A. Links A link consists of the address of the call. The complete address in user space which identifies the parameter space and specifies the logical address in the parameter space must be stored. Users must not be permitted to alter directly the parameter space name in a link because an incorrect parameter space name (source) may permit unauthorized access to the executive or to the computing processes of other users. Links are stored in a protected stack type segment which is attached to each process. A link is pushed into the stack and popped from the stack by a return. B. Transmission of arguments An argument of a subroutine may be an entire segment, a portion of a segment, or a value. The mapping we have thus far described is adequate for the first two categories. It can, however, be extended for the other category. When transmitting arguments it is necessary to transmit information about their addresses as well as the capabilities attached to these arguments. These capabilities may be specified by the map of the calling routine and by the formal parameter in the new parameter space for the called routine. For the case where there is conflict between the two specifications, some rule has to be designed to determine the resultant capability of the actual parameters. Consider now the three types of arguments: 1. Entire segment The argument is equivalent to a parameter as defined previously. The call is P(il, i2, i3, ... in) where ij is the number in the calling parameter space of the parameter number j in the called parameter space i (ij = 0 means no parameter transmission). At the time of the execution of the call, the processor scans the parameter list and copies the information relative to the parameter ij from the mapping table of the old parameter space to the mapping table entry for parameter j in the new parameter space; this information is composed of parameter space number plus the capability. 2. Portion of a segment It is often desirable to transmit only a portion of a segment as a parameter. If this can be done, greater capability may sometimes be given to the access path to that portion than could be given to the entire segment. Such an argument should look like any other parameter. Consider a segment A composed of a vector of vectors. Suppose we call on a routine B which operates on one vector only. The user may give a new segment name to the selected vector which will then be handled by the standard mechanism. 30 Spring Joint Computer Conf., 1967 3. Values Sets ·of values can be stored in a stack segment and accessed direciJy. CONCLUSIONS The system described provides access path control for access to information and to processing resources in a multi-access interactive computing system. Three benefits of this are (1) strong selective control of access to information, (2) dynamic binding capability at run time, and (3) elimination of arbitrary restrictions on access to peripheral equipment and processing instructions. These benefits are all implemented by one simple mechanism. The system also provides for execution of a hierarchy of computing processes having controlled interaction but executed independently in time. Although the system has not been implemented, the hardware and the software problems have been analyzed extensively as reported in reference 6. The improvements are gained without substantive increases in hardware cost, and the software complexity is reduced. Many of the system concepts have been developed by others. What is claimed is an integrated system design with a reasonable set of hardware-software decisions, which is an improvement over previously described systems" REFERENCES TKILBURN One level storage system Trans of the Professional Group on Electronic Computers 2 223 1962 2 RSBARTON A new approach to the functional design of a digital computer Proc Western Joint Computer Conference 1961 3 J P AN DERSON A computer for direct execution of algorithmic languages Proc Eastern Joint Computer Conference 20 184 193 4 J B DENNIS Segmentation and the design of multi programmed computer system IEEE International Convention Record Part 3214225 1965 5 E GLASER J COULEUR G OLIVER Description of the G E 645 Proc Fall Joint Computer Conference AFIPS 1965 6 JYLECLERC Memory structures for interactive computers PhD dissertation University of California Berkeley June 1966 or project GENIE document No 40 10 110 University of California Berkeley May 25 1966 7 BWLAMPSON Reference manual time sharing system project GENIE document No 30 10 31 University of California Berkeley August 1 1966 The Air Force computer program acquisition concept by MILTON V. RATYNSKI Electronic Systems Division L. G. Hanscom Field Bedford, Massachusetts puter program data AFTER the initial acquisition. In this instance, the activity is primarily with the "software" implementation process from the point of view of the "software" implementor's problems within his own environment. This paper and the series of papers to follow address themselves to area "a," that series of events and activities which involve the initial design and acquisition of computer programs and the integration of the resultant efforts into the overall system. Those activities identified in the second category, "b," are the user's activities after the system is declared operational and turned over to the user. The "b" activities involve the updating and maintenance of existing operational computer programs and the evolvement of a limited number of new and additional programs. Management procedures for the "b" activities are in the process of evolvement by the Electronic Systems Division for the U. S. Air Force and will be presented at a later date. The objective of this paper is threefold: 1. To introduce the Air Force developed procedures for the acquisition and control of command system computer programs based on the concept of the computer program as the end item of a definable process; 2. To suggest that the developed process is general enough to cover a wide variety of users outside the military domain; and 3. In terms of this process and the Air Force system management philosophy, set the stage for the papers 2 ,3,4 that follow. INTRODUCTION The classic approach to the development of Air Force operational computer programs has been to award separate contracts for the hardware and for the "software" aspects of an electronic system. The integration of the hardware and the "software" into a homogeneous total system has not always been a planned certainty, primarily due to the lack of definitive management procedures and contractor guidance and control techniques for the area popularly known as "soft-ware." It was with this history in mind that a study! was initiated to evolve a technique which would permit the following: a. Development of contractual requirements standards to provide positive control over the contractor's effort in the development of computer programs. b. Development of a series of principles and procedures which would be applied to the configuration management of computer programs. c. Development of a series of design standards and specifications for use during computer program design and development. d. And most important of all, to develop an orderly process of "software" production that would assure full compatibility and timeliness with hardware production. The "development" and "acquisition" of computer programs, as discussed in this paper, has been broadly categorized to two areas: a. Those early events, activities and steps involved in INITIALLY acquiring the computer hardware and the related computer programs. Here is the arena for activities and problems from the viewpoint of the system manager, the system designer, and the system acquisition agency. b. Those events and activities by the military user and implementor to maintain and constantly update the computer programs and the com- The computer program as an "end item" Classical definition of "software" The term "software" is being removed from official Air Force terminology because of the diversity of its entrenched definitions; some of the more popular definitions of "software" are as follows: 33 34 Spring Joint Computer Conf., 1967 HARDWARE "SOFTWARE" t- COMPUTER PROGRAM CONTRACT END ITEM (CPCE I) CONTRACT END ITEM (CE I) I l I ANTENNA POWER SU PPLY AIRFRAME I DATA ITEMS TAPE CARD DECKS COMPUTER PROGRAM DATA ITEM MANUALS DRAWINGS SPECIFICATIONS FLOWCHARTS LISTINGS MANUALS SPECIFICATIONS Figure 1 - The computer program as an end item 1. Computer programs, together with associated data, training materials, and the operational personnel. 2. All computer programs, including the hardware of the computer system itself. 3. All computer programs, excluding hardware. 4. Special utility computer programs which are supplied by the digital computer manufacturer as part of a computer. 5. Deliverable contractor data associated with the development and operation of system equipment. 6. System personnel, as contrasted with system hardware. "Software" as an end item In order to adapt the Air Force 375 concept of system management to "software," it was first necessary to define "software" precisely and, more specifically, to attempt to describe it in engineering and hardware terminology. It was determined that it was more reasonable to adapt "software" to the "375 hardware acquisition techniques," than to develop a separate "software" management process, which in turn would require a third or higher level management process to integrate "software" and hardware into a total system. Fundarriental to the management of "hardware" is the readiness with which it is possible to identify an item of hardware as an End Item (a Contract End ltem 5) and the various paper products (Drawings; Manuals, Specifications) as Data Items. It is this philosophy which was adapted to "software," and as depicted in Figure 1, "The Computer Program as an End Item," permitted the identification of "software" products into the more precise categories of: (1) Computer Program Contract End Items (epeE!), and (2) Computer Program Data. It win be noted from Figure 1 that, as is the case with hardware, the computer program is now a designated, deliverable, and contractually-controlled product. The Data Items for both hardware and for computer programs are those paper products which "describe" the deliverable "end item" or describe how to use, test, or update the end item. Card Decks, although physically "paper," are essentially integral to the direct operation of the computer itself, and are not considered a Data Item per se. Both the hardware and the computer program data items have standards for their preparation, however, the format and content for computer programs is recognized in that there are separate "standards" for hardware and separate "standards"6 for computer program data items. Definition of contract end item (eEl) The term "contract end item" (CEI) has been selected to identify individual design packages. A contract end item has become a very useful and common reference for program management, i.e., alignment of design responsibilities, contracts, schedules, budgets, etc. The CEls, thus, represent a computer program or a level of assembly of equipment selected as the basis for management. Once the "design package" has been identified as a contract end item (CEI), this end item is then described in an individual specification. 2 Experience to date with electronic command systems contracts, 7 has indicated that there is indeed a common basis for management when computer programs are designated as CEls; management by the government of the contractor's efforts and management by the contractor of his own or subcontractor's efforts. An understanding by both the government and the contractor of what is to be delivered is an important step towards developing an orderly process for the production of computer programs. The Air Force Computer Program Acquisition Concept HARDWARE END ITEMS (CEls) COMPUTER PROGRAM CONTRACT END ITEMS (CPCEls) x X X X X X X X X X X X X X X X X X X X X X X X X X 35 Figure 2 - Some commonalities between computer program end items and hardware end items Computer programs and the 375 system management process The basic decision that a computer program could be defined as a Computer Program Contract End Item (CPCEI) permitted adaptation of virtually all the Air Force 375 System Management concepts to the management of computer programs. Specifically, the concepts of uniform specifications, baseline management, change control, specification maintenance, design reviews, and a test program became all as pertinent to computer programs as they are to hardware acquisition. More importantly, however, a common definition and acquisition process now assures a full integration and in a timely manner of both the equipment and the computer programs into an integrated and homogeneous military system, There were sufficient, substantive differences between hardware end items and computer program end items to warrant the development of separate but companion procedures and standards for computer programs, and these will be described at opportune moments during this and the following papers. 2 ,3,4 However, it was possible, in the real live world situations that the Electronic Systems Division is constantly exposed, to adapt the "end item" philosophy of management to computer programs, and yet retain full technical integrity and full technical identity for all disciplines concerned. Comparison of computer program end items with hardware end items Figure 2, "Some Commonalities between Computer Program End Items and Hardware End Items," portrays in a capsule form that the major technical events and milestones, which pertain to hardware, are also applicable directly to computer programs. Under the Contract End Item (CEI) concept, there is a common and understood method for specifying the technical requirements prior to computer program design, for specifying the interfaces between computer programs/hardware/personnel, and for the development of sufficient computer program documentation to assure that the user can operate the system effectively. The basic premise is that it is equally important to specify the system requirements for computer programs as it is for hardware, thus the initial common ground for both is in the System Specification. In the normal design process for military or for commercial computer programs, both the hardware designer and the computer program designer require a document identified as a Specification, in which the performance/design and test requirements and/or parameters can be detailed. Likewise, design reviews, testing, change procedures, manuals, technical descriptions of the product are equally common to both areas. The discussion on the system management process that follows attempts to point out that it is primarily due to the "commonality of approach" by the computer program designer and the hardware designer, that it was possible to adapt the 375 process to computer program development. Just as it was possible to identify common activities, it became quickly apparent that substantial differences 36 Spring Joint Computer Conf., 1967 HARDWARE END ITEMS x X X X COMPUTER PROGRAM END ITEMS X X X X X X Figure 3 - Differences between hardware and computer program end items existed too. These are listed in Figure 3, "Differences between Hardware and Computer Program End Items." Unlike hardware, computer program instructions do not "wear out." Further, it is not necessary to build and to maintain an elaborate special production facility to produce each computer program in quantity since, regardless of its configuration, any number of copies can be normally duplicated on standard machines at small cost. Therefore, the elimination of concepts, such as, reliability, spare parts, quality control, useful life, etc., required careful tailoring of the hardware oriented management procedures to computer programs. It is felt that this goal was substantially achieved, and the following discussion on the pertinence and relative compatibility of the Air Force 375 System ~1anagement Process to computer program development is an attempt to demonstrate that, with modified procedures, the basic 375 process can readily be accepted by the computer program community. Concept of systems management The contemporary Air Force 375 series regulations and the AF Systems Command manuals establish the procedures of acquiring a new military capability in a finite and structured manner. These documents were intended to include all the activities and all the events necessary to assure a complete military system, however, the emphasis in the current AFSC manuals is on hardware acquisition and does not adequately identify the inherent peculiarities of "software" acquisition. The "375" technique, nevertheless, can be applied and the "software" activities readily associated with the 375 life cycle. This is the objective of the discussion following. The system life cycle is divided into four phases: Conceptual, Defini-tion, Acquisition, and Operational, as shown in Figure 4. An overview of the Air Force system management process System management of large-scale military systems is a complex team efiort, in which many government agencies and the contractors pool their resources to balance technology, cost, time and other factors to achieve the best performing product for the military inventory. One of the most important points to understand about the 375 process is that it is not a new way of life nor is it an entirely new approach to the development of a system. As stated by Gen. B. A. Schriever/' the Air Force is taking advantage of the lessons learned over past years, and has formalized and standardized on a "typical" way of doing business. This is not to say that every program or project was or is intended to follow all the 375 procedures or all the processes, but that it is a "road map" of events, activities, and milestones that make sense, can save the taxpayers dollars, and the military time. The emphasis in the Air Force has always been on the "selective use" and on the "discrete application" of these formal and standard procedures." The final portion of this paper is essentially an introduction of a management concept for computer programming and is intended to set the stage for the papers 2 •3 .4 that follow. The significant activities of the programming process, in terms of the four phases of a systems' life cycle with an emphasis on key milestones and key outputs; are summarized on a phase by phase basis. The Air Force Computer Program Acquisition Concept 37 CONCEPTUAL PHASE Ope rational Requ i rement Identified I nitial System Concept Evolved Design Requirements & Gross System Functions Determined DEFINITION PHASE System Specification Developed FunctionsfTasks Defined Design Trade-offs made ~njlrifir Ann r-n::lrh <:olortorl ..,"'.v"'",,..... -1""--"'''''' • "t'I"I_-VII ACQUISITION PHASE Detail Designs completed Tests conducted Contract End Items produced Logistics/Support plans activated OPERATIONAL PHASE System Tests completed System/Equip. updated System tu rned over to User Figure 4-Air Force system life cycle The conceptual phase for a computer program This is the period during which new inventions, technological advances, user requirements, time and money, and other considerations are traded off to define a valid requirement. Of particular interest to computer program development is a firm delineation of the system mission, the operational environment, interfaces, and doctrine of operational employment. F or information IDENTIFY OPERAT IONAl REQU I REMENT 1 ..,...... DEFINE INITIAL SYSTEM CONCEPT 2 management and handling systems, the analyses of the system information processing functions should begin during the Conceptual Phase. These analyses will typically include the detailing of system functional flows, the identification of design requirements, and the performance of trade-off studies based upon estimates of cost effectiveness. Figure 5 depicts typical key events/activities that would be important to insure early and adequate DETERMINE DESIGN ..,.. REQU I REMENTS & GROSS SYSTEM FUNCTIONS CONDUCT SYSTEM ...... FEAS I BIlllY ...,. STUDIES ~ 3 PERFORM SYSTEM ~ ENGINEERING 5 - 4 Figure 5 - The conceptual phase for a computer program - ---.. 38 Spring Joint Computer Conf., 1967 consideration for the computer programming aspects of an information processing system. Block 1, "identify operational requirement" For computer-based systems/subsystems, this is the initiation of the information processing analysis. Mission requirements are analyzed, the operating concept is defined as are the modes, environments and constraints. The responsibilities, geographic locations and the levels of the user are identified. A preliminary estimate of personnel requirements is made. Depending on whether the requirement is to satisfy a military or a non-military user, the information processing requirements are included in the appropriate planning documentation, in order to identify the total system operational requirements. Block 2, "define initial system concepf' This step is concerned with developing qualitative requirements of sufficient potential value as to warrant further effort and definition in specific terms. The qualitative requirements should recognize the status of the pertinent state-of-the-art and should conceive those concepts which will satisfy the basic mission and plans. The initial operational functions and concept are developed at this time, as would be the identification and nature of the sources and the destinations of data elements. The requirements for data collection, generation and/or transIhission are initially defined. It is often pertinent to evolve several information processing concepts, in order that various approaches can be assessed, particularly from the major time and money trade-off viewpoints. Block 3, "conduct system feasibility studies" This step represents the initial effort toward the formulation of a specific operational requirement for a system. For computer-based systems, this involves the translation of a qualitative requirement into system concepts by the assignment of functional and operational capabilities to specific areas of equipments, procedures, and man/machine relationships on a trial basis. This is the first point at which the considerations of timeliness, technological and economic feasibility, and capability are explored in any detail. Block 4, "perform system engineering" A specific concurrent and prime technical activity at this point in time is the system engineering activity. In the case of military systems, this activity will be performed more and more by in-house government agencies and less and less by contractor-industry activities. For the Air Force, captive contractors, such as, the MITRE Corporation and the Aerospace Corporation, and in-house engineering agencies, such as the System Engineering Group and the Rome Air Development Center, perform the bulk of the initial system engineering studies. System engineering studies are conducted to the level of detail necessary to establish that the system selected will meet the operational performance capabilities and will be technically attainable within the required time period. Basic technical data should essentially be complete in the following areas: a. Information processing. This will at least include: a description of the mission requirements, including deployment requirements and integration with other systems; concept of operation associated with each mission/environment; the system information flows; the allocation of functions between man and computer; a description of the system data base including processing and storage requirements; a description of selected techniques of computer programming; a description of the command organization with preliminary estimates of personnel requirements; a description of requirements for system exercising; and a description of interfaces with other information systems. b. Computer and associated equipment. The performance characteristics of the computer, the operational consoles, the other Input/Output units, and the special equipments for system exercising are derived from the analysis of system information processing functions, in parallel with the determination of functions to be performed by personnel and computer programs. Both off-the-shelf and state-of-the-art equipments are considered. Additionally, customconfigured or significantly modified existing equipment are included in the cost-effectiveness studies, in order that technical feasibility, cost and schedule estimates, and interfacing characteristics with the computer program system, communications, and facilities are firm enough to warrant the development of a System Performance Specification. Factors, such as, general, logical and physical equipment configuration; data processing speeds, storage requirements, input-output interfaces; peripheral requirements for magnetic tape units and card machines; operator consoles; special equipments; and growth potential, are identified preliminarily at this point in time in order to assure feasibility of the system to meet the mission requirements. Block 5, "determine design requirements & gross system functions" This step signifies that sufficient system concept studies, system feasibility studies, exploratory development, and/or system engineering have been The Air Force Computer Program Acquisition Concept performed to satisfy decision makers that the system costs are realistic, estimated schedules realizable, the high risk areas identified, and that this is the system which should be funded and resources allocated with which to proceed to the next phases, the Definition/ Acquisition Phases. pected to occur whenever a system goes through the Definition Phase. Block 6, "initial system specification" This step represents the technical effort that is applied to preparing a specific document upon which many subsequent steps and processes are dependent. The initial system specification is largely oriented to the operational requirements and allows considerable latitude in the system design, except in those areas wherein gross design considerations are specified or obvious. In some instances, expediency does not permit more than a cursory refinement of previous concepts and tentative performance requirements in the formulation of this document. The preparation of the initial System Specification generally first requires that trade-off studies are identified and performed and that technical studies, consisting of reviews, verification, and expansion or alteration of technical concepts and data resulting from the activities from the Conceptual Phase are accomplished. If time precludes in-house accomplishment of these studies, this activity may be tasked upon the Definition Phase contractor(s). In this case, the Definition Phase contractor(s) would be required to evolve a fully defined System Performance Specification as one of his end products. For computerbased systems, information processing functions are re-examined and verified in relation to the user's organization, mISSIon, and operating doctrines. Alternative approaches in the areas of computer programming, equipment, communications, facilities, personnel, procedural data, and training are assessed. The direct objective of these studies is to establish The definition phase for a computer program This phase, which came into being under Secretary McN amara, sees the entire system defined and identified down to the level of contract end item specifications. During this phase, the systems analysis activities are carried out, considering such factors as total system cost/schedule/performance, identification of interfaces and high-risk areas. The Definition Phase culminates with the preparation of a definitized development contract setting forth the results of the Definition Phase as the Design Requirements Baseline. For electronic systems, the information processing aspects are identified as a system segment. Technical studies and alternative approaches are made at this time in the areas of computer programming, equipment, communications, facilities, personnel, procedural data, and training, including considerations of development lead times, system testing criteria. The direct objectives of these technical studies are to establish the total spectrum of design requirements and design constraints firmly, both for hardware and software, at the levels required for the System Specification and other documents which must be prepared. Figure 6 identifies some of the major events, activities, and output products that would normally be ex< ------------. PART I , - - INITIAL - - - - -, : , : I SYSTEM , SPECIFICATION I , 6' ,,, , , ~ I I . I 7 CEI SPECIFICATIONS I : ,_ _ _ _ _ _ _ L2 ___, '- - - t - - -' DOCUMENT SYSTEM REQU I REMENTS 39 ..,...... EXPAND SYSTEM REQU IREMENTS ...,.. DEFINE COMPUTER r-PROGRAM REQU I REMENTS 9 DEFINE MANUAL TASKS r---r- 10 8 DEFINE EQUIPMENT ........ REQU I REMENTS II Figure 6 - The definition phase for a computer program t--- ___4: _... 40 Spring Joint Computer Conf., 1967 the total spectrum of design requirements and design constraints at the levels required for a System Specification. Block 7, "document system requirements" Under the 375 system management concept, the entire technical control of the system is based on the establishment of three (3) baselines/specifications. The first of these is the Program Requirements Baseline, the technical requirements of which are defined in the System Specification described earlier. The Program Requirements Baseline consists of documents which provide a conceptual technical description of the system, a description of the Definition Phase inputs/events/expected outputs and the estimated cost. This is the document that is evolved prior to initiation of the Definition Phase. From the total system approach, it is critical that the entire man/ machine concept be sufficiently detailed particularly from the time, money and integration aspects. Block 8, "expand system requirements" The Definition Phase contractors first technical activity is to conduct a comprehensive and critical reveiw of the functions, the performance, and the design requirements contained in the System Specification. Objectives are to verify, expand, and/or alter on the basis of the contractors approach and technical experience. Selected trade-off studies would be performed, interface requirements of the major hardware and computer program end items would be expanded. Block 9, "define computer program requirements" and Block 11, "define equipment requirements" The nature of the technical efforts will typically begin to diverge at this point in time with respect to their direct concern with system operational functions. This effort will define the requirements for the detailed tasks to be performed by the operational computer programs and the system equipment. It is predicted on the basis that the interfacing equipment characteristics have been defined at a level which will permit the analysis and specification of functions to be performed by the computer programs and equipment contract end items. Block 10, "define manual tasks" A concurrent activity is the definition of manual tasks. The technical effort during this phase encompasses the analysis of manual and man/machine tasks. This leads to the definition of: a. manual tasks and procedures b. console operator procedures and decisions c. design requirements for console controls and displays. Block 12, "Part I eEl specifications" One of the most important products of the Definition Phase is the development of all the necessary "design-to" specifications for the Computer Program Contract End Items. In Air Force terminology, these are caiied Part i-Performance and Design Requirements Specifications. 2 This part of the CPCEI specification is used to specify requirements peculiar to the design, development, test and qualification of the contract end items (CEls). The Part 11Product Configuration and Detailed Technical Description specifications5 are not prepared until well into the Acquisition Phase. An important section of every computer program Part i specification is the detailing of the requirements imposed on the design of a computer program end item because of its relationship to other equipment/computer programs. I nterfaces defined in this section of the specification shall include at least all relevant characteristics of the computer, such as memory size, word size, access and operation times, interrupt capabilities, and special hardware capabilities. The Part I specification permits the first opportunity for initiating configuration management procedures 5 for the control of design requirements changes. Part I specifications permit competition for the Acquisition Phase contract(s). The acquisition phase for a computer program The contractor designs, produces and tests the system hardware and computer programs during this phase. This phase continues until the last article is delivered to the operational user and all system development test and evaluation has been accomplished. Figure 7 identifies many of the important activities in the design and validation process that would normally be initiated during an Acquisition Phase. Block 13, "Part I specification" Now that the initial end item performance specifications have been developed, the test requirements detailed, and all the necessary man-machine tradeoffs made, it is necessary that the System Specification be updated and approved for contractual use in the Acquisition Phase contract(s). For hardware, it is usually possible to have defined in detail the functional interfaces, however, for computer programs this is normally not possible unless a firm selection and approval of specific hardware, computer programs, and communications has been made. Thus, the system specification will normally not be fully updated, insofar as computer program requirements are concerned at this point in time, but rather, after The Air Force Computer Program Acquisition Concept 1- - - - - - - L _ _ _ _ _ 13 _ ~' I -..: PROCEDURES .- I 'I - 16- -'' ,I I ('nMDIIT~D VI .... ' PROGRAM DESIGN 14 ___ " .J 1 I I II I • I .---_..... ---I1 : PRELIMINARY: I CRITICAL : DESIGN • : DESIGN I REVIEWS :-. I REVIEWS I .,.. I I 15 I L~ , 1 I I _ _ _ _ _18_ _ JI ____ I SYSITEM TESTS - - .... 24 I t I ----- ;.--- • f 1 - 1-_- , DETAILED DESIGN OF CO!)! NG COMPUTER COMPUTER ....-.& ........... PROGRAM PROGRAM ASSEMBLY TESTS COMPONENTS & DATA BASE 21 17 20 PRELIMINARY - I I I :- I PART II I SPECIFI CATIONS I 23 ,J' I______ 19 I VV"II r-------I r-- - --,• TEST r:: - - -, , • PART I I 1 TEST : SPECIFI CATION ... ,~ PLANS 41 i-FiRfr- - - - ---: I : ARTICLE 1 I I CONFIGURATION ~J 1 INSPECTION I I1- _ _ _ 22_ _ _ _ _,I Figure 7 - The acquisition phase for a computer program some of the Design Review activities in the Acquisition Phase. Blocks 9, 10, 11 and 12 constitute the technical substance of the Design Requirements Baseline. This baseline represents the technical requirements for the Acquisition Phase contractor(s). Block 14, "preliminary computer program design" The fundamental purpose of the Acquisition Phase is to acquire and test the system elements required to satisfy the users requirements. Upon award of the Acquisition Phase contract(s), the design of all contract end items begins. The Part I (design-to) specifications developed earlier, plus the System Specification, will be the contractor's technical baseline and, essentially, are a start on the design of the end items. For computer program end items, this activity consists of finalizing the analysis of system inputs/outputs/functions, allocation and grouping of computer programming tasks into individual computer programs or program packages. Additionally, individual programs will be described and the interprogram interface requirements detailed. All this, plus the development of functional flows, the accomplishment of trade-offs, etc., will be the basis of the detailed design th~t will be described in the Part II specification. Block 15, "preliminary design reviews," Block 18, "critical design reviews," and Block 22, "first article configuration inspection" During the Acquisition Phase, a series of technical reviews and inspections are held to provide discrete milestones for an exchange of technical information between the Air Force and the contractor. Two of these, the Preliminary Design Review and Critical Design Review, are analyses of the design of the contract end items at various stages of development. The third milestone, the First Article Configuration Inspection, is an audit of the documentation that describes the contract end item. A more detailed discussion of these milestones is contained in the paper by Piligian. 3 Block 16, "test plans," and Block 19, "test procedures" A parallel effort to the computer program end item design is the development of a Category I qualification test program. Draft of the test plan and associated test procedures for the validation and evaluation of computer program end items are written for submission to the procuring/engineering agency for approval. Block 17, "detailed design of computer program components & data base" The detailed design of the computer program is accomplished based on the approved Part I Specification and the results of the Preliminary Design Review. The detailed flowcharts logic diagrams, narrative description, etc., will provide the basis for actual coding of the computer program(s). The design of 42 Spring Joint Computer Conf., 1967 the data base is developed at this time resulting in the number, type and structure of tables, as well as description of the items within the table. The detailed design forms the basis for the Critical Design Reviews 3 discussed previousiy. Block 20, "coding & assembly," and Block 21, "computer program tests" Immediately following the Critical Design Review, coding of the individual components of the computer program end items takes place and the process of checkout and testing of the components begins. Computer Programs are generally first tested during the Category P test program. Cat I demonstrates that the CPCEI, as produced, satisfies or does not satisfy the design/performance requirements of the Part I CPCEI specification. Block 23, "Part II specifications" The Part II Specification is a detailed technical description of the CPCEL Essentially, it consists of elements which have appeared as computer program documentation in the past in a variety of forms and combinations e.g., functional allocations, timing and sequencing, data base characteristics and organization, flowcharts, etc. The Part II Specification organizes these into a single, comprehensive description which includes the data base and listings, It is an "as-built" description, which the procuring agency accepts only after its completeness and accuracy have been formally verified, and normally after the computer program performance has been qualified in relation to the Part I Specification. Like the Part I, it does not contain operating instructions, test procedures, or other non-specification materials. Its subsequent technical uses are as an aid in correcting errors and designing changes. Following formal verification of its completeness and accuracy, it defines the Product Configuration Baseline. Block 24, "system tests" The objective of Category II system tests is to demonstrate that the system will satisfy the system performance/design requirements of the System Specification. For computer programs, Category II testing will assure the overall systems engineer that the computer programs are fully compatible with the hardware in an integrated performance environment, and that they meet the total system requirements, including personnel, communications, manmachine relationships, etc. The operational phase for a computer program The Operational Phase permits the transfer and turnover of systems/equipments from the design and acquisition agency to the using (customer) agency. This phase begins when the operational user accepts the first article and ends when all the elements of the system have been accepted by the user. Most Air Force systems are turned over to the user on an incremental basis: squadron by squadron for missiles; site by site for electronic systems; or system element by system element. In the case of computer-oriented systems (command/control systems), there is an evolutionary aspect present, which seldom permits the completion of specific Operational Phase. In this instance, it might be stated that there may be many Operational Phases for anyone System, as a requirement, for system-updating occurs and as this requirement is satisfied. As the development agency acquires end items, and satisfies the user that a group of end items meets the user's operational requirement, a formal release of both the physical entities, as well as the engineering responsibility, is made by the development/acquisition agency. For computer programs, the transfer of engineering responsibility would not normally be to the Air Force Logistics Command (as is true for hardware), but rather would more likely be to the user. There are instances, however, where certain utility and/or maintenance-diagnostic computer programs· furnished with, or as parts of, the computer equipment are engineering-transferred to the Logistics Command, rather than the user. As elements or end items are turned over to the user, the configuration management responsibility also becomes the responsibility of that agency. For purposes of configuration management of computer programs, the updated System Specification and the Part I Computer Program End Item Detail Specification function as the design requirements baseiine throughout the Operational Phase. Figure 8 identifies many of the specific activities that pertain to a process that permits the design and acquisition agency to turn over to the user those completed elements of a system, as the operational requirements are met. Block 25, "turnover to user" Under current Air Force concepts, equipment, facilities and computer programs can be incrementally "turned-over" to the user on an operating unit by operating unit basis. The standards for computer program turnovers is in the process of evolvement, however, it is general practice to "turn-over" both the hardware as well as the applicable computer programs on a concurrent basis. Under any circumstance, turnover implies that the minimum operational capability has been satisfied for the total system or The Air Force Computer Program Acquisition Concept 43 -"',.. "'4~ r~ 0.....- TRANSFER OF ENG I NEER I NG TURNOVER ~~ & LOGISTIC RES PONS IB ILITO USER TIES 27 25 UPDATING CHANGES ON CONTRACT H USER OPERATIONAL SYSTEM TESTS -. ~ SYS.TEM UPDATING 28 29 ......... MISSION PERFORMANCE - 30 ~ 26 Figure 8 - The operational phase for a computer program for some element thereof, and that the industry and government design agencies consider the primary design/engineering activities as completed. Block 26, "updating changes on contract" As with hardware, computer programs are subject to follow-on development tests which normally result in updating change requirements. As the user exercises his system, or some element of a system, deficiencies and/or improvements become suggested. Updating changes are most practical to contracts which have not been completed, and can be broadly categorized as those which are (1) the contractor's responsibility and essentially under contract "guarantee," and (2) improvements and performance updating initiated by the user, which requires a new contractual understanding and new design effort. In essence, the "design-updating" changes that are necessary are now placed on contract, system tested and recorded. Block 27, "transfer of engineering & logistic responsibilities" There is no formalized Air Force policy on the logistics and engineering responsibilities for computer programs once they have been turned over to the user, however, an unofficial process is in effect. Several large electronic systems have been officially turned over to using commands. The "engineering" responsibility for controlling corrective actions and incremental improvements of operational capabilities through changes in the computer programs has in all cases, to date, been assigned to and assumed by the using command. In some instances, this responsibility extends to the maintenance of handbooks, user manuals, and other documents which are directly de- pendent upon the computer program end item configuration. The "logistics" and the so-called "engineering" aspects of computer programs are being studied and debated at appropriate levels, and a decision issued, particularly with reference to certain utility and/or maintenance-diagnostic programs furnished with, or as parts of, the computer equipment. Block 28, "user operational system tests" Upon the completion of Category II system tests and the incremental transfer of computer programs, computer equipments, handbooks, user manuals, etc., to the user, the using command may elect to conduct Category III type tests. Category III tests are system tests similar to Category II and for computer programs may either be unnecessary or may be conducted concurrently with Category II. At this point in time, the system is fully operational, all live environment, and is conducted by the user, generally with the assistance of contract services from the automated data industry. As during Category II testing, deficiencies and/or improvements are revealed, and system modifications made dependent on significance to mission and budgets. Block 29, "system updating" One of the final technical functions is to document and record the precise system/equipment configuration and to update all manuals, handbooks, etc. Beginning back in the latter part of the Definition Phase, a "configuration management" procedure would have been defined, agreed upon by the contractor(s), and would at this point in time be thoroughly updated and turned over to the user. The user would continue to use the system specification and the Part I de- .. 44 Spring Joint Computer Conf., 1967 tailed "design to" specification, as the design requirements baseline for the purposes of configuration management and for a design updating standard. The system itself is also updated to incorporate updating changes and modifications resulting from the users operational testing and system usage. Block 30, "mission performance" This event represents the continued operation of the system by the user until such time as the system is phased out of the operational inventory. SUMMARY & CONCLUSION The management framework established by the 375 series Air Force regulations and manuais is appiicabie to electronic systems, as well as to aircraft and missiles. This management concept is exemplified by electronic computer-based systems, such as, 412L, 416L, 425L and 465L; namely, operational military systems which provide information processing assistance to command personnel who are responsible for planning, decision-making, and control of resources and forces. A major impact of considering this type of system is to emphasize information processing and associated technologies as the lead items in system concept and design. This emphasis is needed in order to assure that the specification and procurement of hardware and facilities will be based upon adequate consideration of the user's information processing procedures and requirements. The modification of the current hardware-oriented 375 system management process to include "software" activities places primary emphasis on events associated with: 1. Analysis of system information processing functions. 2. Allocation of functions to operational personnel and the computer hardware. 3. Definition of the functions to be performed by computer programs. 4. Development of operating procedures. 5. Design, development, and testing of computer programs. 6. Development of provisions for operational training and other personnel subsystem products. The implications of the concept described in this paper can be summarized as follows: 1. The normally hardware-oriented System Program Director is now provided with a management tool with which to evolve requirements. and assess the total system's progress by the establishment of computer program key events, milestones and activities during the system's life cycle. The "visibility" aspects of computer program intricacies will be more evident to the System managers. 2. Computer program requirements documented in a technical specification provide a standard by which the performance of the contractor and the performance of the resultant computer program can be evaluated. 3. The design documentation and specifications developed during a normal Definition Phase activity will provide for the first time an opportunity for the government to acquire computer programs on a true price competition and open-bid, fixed-price basis, rather than the current predominant sole-source, cost-plus situation. 4. The computer program management techniques evolved will significantly reduce the excessive cost-overruns and will reduce the overall system costs that were uncontrollable without a finite management control process. 5. The eventual user and operator of the electronic system will be provided with sufficient data and documentation which will permit the user to operate, maintain and update the system much more effectively and efficiently. 6. The concept described is considered to be applicable to any system, military, business, or industrial and to any programming exercise that warrants the use of computer program management techniques. REFERENCES 2 3 4 5 6 7 8 00-1498: Computer programming management Air Force Project 67-2801 1967 B H LIEBOWITZ The technical specification-key to management control of computer programming SJCC Proceedings 1967 M S PILIGIAN J L POKORNEY Air Force concepts for the technical control and design verification of computer programs SJCC Proceedings 1967 L V SEARLE G NEIL Configuration Management of Computer Programs by the Air Force: principles and documentation SJCC Proceedings 1967 AFSCM 375-1: Configuration management during definition and acquisition phases Air Force Systems Command U S Air Force 1 June 1964 AFSCM 310-1: Management of contractor data and reports Air Force Systems Command U S Air Force Revisions September 1966 and March 1967 System 416-M: BUIC-back-up interceptor control Electronic Systems Division U S Air Force B A SCHRIEVER General USAF: Foreword to AFSCM 375-4-system program management manual Air Force Systems Command U S Air Force 16 March 1964 Configuration management of computer programs by the air force: principles ancJ cJOCllmpnt~tl()n* ______ ...... ....,....&. ......... ~ ..... .&."" ........... .L""' ... .L by LLOYD V. SEARLE and GEORGE NEIL System Development Corporation Santa Monica, California INTRODUCTION the system status and technical objectives can be formalized, for the mutual benefit of the many agencies which are typically associated with the procurement, development, logistic support, and operation of a complex system. Contract End Items (CEls) are the system parts to which configuration management applies. In the Defense Department and NASA, the CEI designation* does not apply to system personnel, items of data, or to contractual studies and services. It refers only to identified items of equipment, facilities, and computer programs, as the major deliverable elements of a system which is developed for use by an operational agency. Although the emphasis in this discussion is on computer programs, it should be recognized that the procedures to be discussed .are designed to fit within a common framework of configuration management for all types of CEls in a system. In fact, they incorporate many concepts and terms which have been borrowed from established practice with items of equipment. At the same time, they are specifically tailored to reflect the many unique characteristics of computer programs as contract and items. In general, they are derived from actual experience in developing computer programs for electronic systems, and are presently in use by a number of system contractors. General concepts Within the scope of configuration management requirements, distinctions are made among the three major sub-processes of identification, control, and accounting: This paper is addressed to Air Force concepts relating to configuration management of computer programs. For this meeting, our purpose is to summarize the nature of the concepts, and to present an introductory outline of the documentation and procedures. Although we are using the Air Force terminology and phased system program relationships, it should be recognized that the same general principles, and many of the particulars, are also in process of being adapted for use by the other military services and NASA. The basic standards lend themselves to general application in the formal management of computer programming projects. As described earlier in this session, l configuration management represents only one of several management areas which apply to a total system program. Contrary to a prevalent misconception, it is not synonymous with, nor a substitute for, the technical system engineering effort which constitutes the heart of a system design and development program. However, as an auxiliary structure which evolves in steps during the Definition and Acquisition Phases it is closely related with the other areas of syst~ms management, particularly with the processes of system engineering and testing. Its special concern is with procedures for controlling the performance requirements and actual configurations of the various physical parts of a system. One of the principal needs it fulfills is to provide a systematic means by which *The authors have been associated with the development of computer programming management procedures for Air Force Systems Command, through contract studies conducted in support of the Electronic Systems Division. This report summarizes selected aspects of the Air Force procedures as viewed by the autho.rs; it is not to ~e construed as an official expression of policy by AIr Force agenCIes or the System Development Corporation. Configuration identification refers to the technical definition of the system and its parts, primarily in *In the Army, CEI denotes Configuration End Item, rather than Contract End Item. 45 46 Spring Joint Computer Conf., 1967 the form of specifications. In general, configuration management is based upon the concept of uniform specifications, which implies simply that in each system program there should be one general specification for the system as a whole and one specification for each contract end item. General format and content requirements of the specifications are uniform for all systems. However, requirements for the system specification and CEI specifications differ. The system specification is written at the level of performance and design requirements only, while the specification for each major CEI is written in two parts - Part I as a performance-level specification to estabiish technical objectives and design constraints, and Part II as a technical description of the actual configuration resulting from the design/development/test process. Detailed requirements for specification format and contents are different for the major classes of CEls, i.e., for equipment, facilities, and computer programs, as a function of the typical differences in technical characteristics. Once written and approved, each specification formally defines a baseline configuration of the system or item. A baseline, in general, is an established and approved configuration, constituting an explicitly defined point of departure from which changes can be proposed, discussed, or accomplished. Configuration control refers to the procedures by which changes to baselines are proposed and formally processed. These procedures involve standard classes and types of change proposals, as well as formal mechanisms for review, evaluation, approval, and authorization for implementing the proposed changes. Configuration accounting refers to the reporting and documenting activities involved in keeping track of the status of configurations at all times during the life of a system. For production items of equipment, it includes the intricate process of maintaining the status of production changes, retrofits, and spare parts for all production items in the current inventory. In the case of a computer program item, it is principally a matter of maintaining and reporting the status of the specification, associated documents, and proposed changes. Documentation and procedures While the items of central reference in configuration management are contract end items, as distinct from data or services, the management process itself proves to be principally a matter of documentation and procedures. As indicated above, technical specifications are the principal substance of the Configuration Identification process. Configuration Control and Accounting are accomplished by means of other standard forms and reports. And, particularly in the case of complex computer program systems, account must also be taken of technical manuals and other data prepared for the using agency, whose contents are sensitive to changes in computer program configuration. Hence, the major framework of configuration management and its sub-processes can be represented as a structure of the principal documents with which standard procedures are associated. This structure is illustrated in Figure 1, which shows (a) the specifications, as the baselines which are defined and managed, (b) the dependent procedural data, in the form of handbooks or manuals, and (c) the set of forms and reports which serve as tools for control and accounting. It may be noted that the computer program contract end item (CPCEI) is also represented, in the physical form of a tape. While the tape (or alternative form, such as punched cards) is not forgotten as the eventual object of these activities, most of our concern about working procedures is with the other elements. Additionally, it should be noted that events are related in a gross way to phases of the system life-cycle. In general, the structure begins at the outset of the Definition Phase with issuance of the System Specification, is expanded during the Acquisition Phase, and is subsequently maintained during the system's operational life. The specifications are established as the three baselines at successive times, and in dependent relations, during the developmental periods. However, an earlier baseline is not replaced by a new one; once established, all are maintained together, indefinitely. Specifications The system specification is typically written and issued by a procuring agency as the primary requirements document governing the developmental process for all contract end items. Its function is to define objectives and constraints for the system as a whole. It sets forth requirements for system performance and system testing, identifies all major parts to be developed or otherwise acquired, and allocates performance requirements to the parts. As a basis for information processing efforts, one of its important roles is to define and control essential functional interfaces among computer programs, computing equipment, communications links, and personnel. When issued at the outset of the Definition Phase it is established as the program requirements baseline. While it normally undergoes subsequent expansion and refinement, all changes must be approved by a central control board, documented, and coordinated with the agencies concerned. Configuration Management Of Computer Programs By The Air Force ~ ____ .,./ ,/,-/' / // I " ,/ I" SYSTEM I '" I .",.,.-' I I I I I SPECIFICATION ACCOUNTING /;' DOCUMENTS /1/ I ,," ",'" CONTROL &. i /' /' / // 47 I I I " II I I I I I I ' I I I I I I I I I i I PROGRAM REQUIREMENTS BASELINE / / I / PART' "."" " I ; ': I I / I I I // I ,': / ,I I / I I I / i \ \ \ \ \ \ \ \ \ \ \ DESIGN REQUIREMENTS BASELINE PART II SPECIFICA TION PRODUCT CONFIGURATION BASELINE HANDBOOKS MANUALS DEFINITION ACQU ISITION OPERATIONAL Figure 1 - Sequence and structure of documents The Part I specification for a computer program contract end item (CPCEI) is primarily a detailed compendium of information processing functions to be performed by the computer program. As a product of the Definition Phase analysis activities, it is not a computer program design document, as such, although it may specify design requirements or constraints and should reflect an appreciation of feasible computer program design solutions. I t contains a detailed definition of all input, output, and processing functions to be accomplished, specifies all pertinent interfaces with equipment, personnel, and other computer programs, and identifies the means by which the eventual performance of specified functions wilI be verified by formal testing. The standard format which has been developed for the purpose 2 is written at a very general level to permit application to many types of computer programs, both large and small. As a specification, it does not contain planning information or procedural data pertaining to use or operation. Its functions are to govern the processes of computer program design, development, and testing, and to provide the primary instrument for manage- ment control throughout the course of a system program. Since it is written in mathematical, logical, and operational terms, rather than in technical computer programming language, it provides an essential vehicle by which the computer program functions can be communicated and managed at the level of operational performance. Part I Specifications for the collection of computer program and equipment elements for the system as a whole are verified for consistency with the System Specification and compatibility of interfaces, and are established collectively at the outset of Acquisition as the design requirements baseline. Because of its exceptional importance to the conduct of a system program, the Part I CPCEI Specification was chosen as a special topic to be amplified in another paper in this session. 3 The Part I I specification is a technical description of the CPCEI structure and functions. Essentially, it consists of elements which have appeared as computer program documentation in the past in a variety of forms and combinations-e.g., functional alIocations, timing and sequencing, data base characteristics and organization, flow charts, etc. The Part I I 48 Spring Joint Computer Conf., 1967 Specification organizes these into a single, comprehensive description which includes the data base and listings. It is an "as-built" description, which the procuring agency accepts only after its completeness and accuracy have been formaHy verified, and norrnaHy after the computer program performance has been tested against performance requirements of the Part I Specification. Like the Part I, it does not contain operating instructions, test procedures, or other non-specification materials. Its subsequent technical uses are as an aid in correcting errors arid designing changes. Following completion and verification, it constitutes the product configuration baseline. As in the case of preceding baselines, it is maintained subsequently through the processes of configuration control and accounting. Procedural data As indicated above, operating and instructional information is not contained in the computer program specification. This class of information is the proper subject of separate handbooks or manuals, which should be written specifically to meet the needs of operating and support personnel. Configuration management does not apply directly to such documents. However, since their content is typically sensitive to CPCEI performance and/or design characteristics, they must also be maintained to reflect approved changes to the CPCEI. Hence, they appear as prominent "impact items" in the configuration control processes. Configuration control and accounting documents Configuration control and accounting documents are standard forms and reports which serve as the instruments by which changes to established baselines are processed and recorded. The engineering change proposal (ECP) is the vehicle by which a change is initiated. I t is a form of long-standing use for equipment which has been adopted with appropriate modifications for computer programs. A completed ECP describes the nature and magnitude of a proposed change, estimated developmental requirements, and impact of the change on all associated documents and other system elements. During most of the Acquisition Phase, "computer program changes" normally refer to changes in the Part I Specification. At later stages, a fully implemented change will also involve the preparation of change pages to the Part II Specification and other derived documents, as well as incorporation of changed instructions into the computer program. Assuming that the Part II Specification is based upon completed design and testing of the altered computer program, changes are essentially implemented with the issuance of approved change pages to the specifications. The specification change log, end item configuration chart, and specification change notice (SCN) are also standard forms, originally developed for equipment, which have been adopted with modified uses for computer programs. They constitute, respectively, (1) a cover sheet, (2) a listing of current pages, and (3) a summary of incorporated changes to accompany each issue of change pages to a specification. As a group, they are inserted into the revised specification, to provide ready indicators of the specification's current status. The version 4escription document is a collection of pertinent information which accompanies each new reiease of a computer program tape, or cards. Its purpose is to identify the elements delivered and record additional data relating to their status and usage. The' configuration index and change status report are items issued periodically (e.g., monthly) to inform interested agencies of the current status of the CPCEI configuration and proposed changes. The Index contains up-to-date listings of basic issues and revisions of the specifications and derived documents, with dates of issue and approved changes. The Change Status Report is a supplement to the Index which records the status of all current change proposals. CONCLUSION The preceding description has attempted to provide only an introductory overview of configuration management for computer programs. The documentation and procedures are the result of some years of study, experience, and coordination which were accomplished principally under the direction of the Technical Requirements and Standards Office at the Electronic Systems Division of Air Force Systems Command. At the time of writing this report (January 1967), the detailed requirements are in process of being inserted into the forthcoming revision of AFSCM 375-1,4 which is scheduled to be issued within the next few months. A full set of requirements, in the form of a collection of the proposed changes to AFSCM 375-1, was also issued separately for interim use as ESD Exhibit EST-l in May 1966. 2 Although that exhibit has had limited distribution, it is presently being used in a number of Air Force contracts and significant provisions have also been coordinated for joint use by NASA in managing computer programs for the Apollo program. 5 Experience to date has tended to confirm that the provisions are generally sound, and capable of meeting a num- Configuration Management Of Computer Programs By The Air Force ber of long-standing needs. I t is anticipated that refinements will be suggested by further use and study. REFERENCES M V RATYNSKI The Air Force computer program acquisition concept SJCC Proceedings 1967 2 ESD Exhibit EST-I: Configuration management exhibit for computer programs Electronic Systems Division Air Force Systems Command Laurence G Hanscom Fieid Massacnuseits May i 966 3 B H LIEBOWITZ The technical specification -key to management control of 49 computer programming SJCC Proceedings 1967 4 AFSCM 375-1: Configuration management during definition and acquisition phases Air Force Systems Command U S Air Force June 1 1964 5 B H LIEBOWITZ E B PARKER III C S SHERRERD Procedures for management control of computer programming in apollo TR-66-342-2 Bellcomm Inc September 28 1966 6 M S PILIGIAN J L POKORNEY Air Force concepts for the technical control and design verification of computer programs SJCC Proceedings 1967 The technical specification-key to management control of computer programmIng by BURT H. LIEBOWITZ Bellcomm, Incorporated Washington, D. C. program and the performance of the program itself. F or computer programming, the cycle formed by these steps looks something like that shown in Figure 1. The standard is expected costs, estimated schedules, and desired technical characteristics. Evaluation is accomplished by means of reviews and tests. Corrective action is accomplished by allocations of resources, clarification of the standard and, when necessary, changes to the standard. The part 1 specification is an important segment of the management standard. It documents the technical requirements for the computer program, thus providing both the basic "design to" guide for the programming contractor and the standard by which the user can evaluate the resultant program. * Without it the program developer must rely on word of mouth and informal notes and the user has no way of determining the validity of the evolving program. Thus there is no firm basis for management control. To answer the second question, we must consider several factors, some common to both hardware and computer program development, others peculiar to computer program developments. In the former category we find in some cases that lack of time prevents an adequate definition of requirements. Also, in some cases the nature of the effort is such that total requirements are not known prior to some experimentation with the system as (partially) built. INTRODUCTION If one considers the life cycle of a system as described in the paper by Ratynski, l it becomes evident that effective management is dependent upon the presence of detailed specifications. In general, a specification describes what a product should be so that someone or some group can design and/or build it. In the previous paper the concept of a two-part specification was introduced - the first part describing the technical requirements for the item, the second part describing the actual configuration of the completed item. In this paper we will consider the content of the specification and its application to the management control of the computer programming process. Particular emphasis will be placed on part 1 of the spec. In doing so we will pose and answer two questions: (1) why is the part 1 spec so critical to management control? and (2) why, if so important, have so many programming efforts been characterized by its absence? To answer the first question, let us consider the objective of and the steps required for management control. The objective of management control is to assure that the resultant program does the job for which it was intended, is ready when needed, and is produced within expected costs. To achieve management control the managing group must: develop a standard which describes expected performance, evaluate actual performance against this standard, and take corrective action when undesired deviations from the standard occur. Performance in this context covers both the performance of the group developing the In computer programming we are faced with one other factor-the flexibility of the programmable digital computer. A somewhat exaggerated view of this capability had led unwary managers to the belief that, since changes to a finished program can be easily made, the time and costs to define requirements, and the need to exercise control once they have been *For convenience in this paper, the managing group will be refered to as the "user" or "using agency"; the program developer will be referred to as the "contractor." 51 52 Spring Joint Computer Conf., 1967 CHANGES OR ADDITIONS (FROM FURTHER SYSTEM ANALYS I S) ~ COMPUTER THE PROGRAM MANAGEMENT STANDARD TECHNICA/ CHARACTER I STI CS; EXPECTED COSTS; SCHEDULES / EVALUATION BY MEANS OF TESTS, REVIEWS CHANGE OR CLARIFY THE STANDARD NO CHANGES REQUIRED PRODUCTION OUTPUTS OF THE PROGRAMMI NG " PROCESS: DES I GN DOCUMENTS; TEST RESULTS; ACTUAL COSTS; MILESTONE COMPLETION DATES CHANGE THE PROGRAM; REDEPLOY RESOURCES Figure I - The management control cycle released, can be avoided in computer programming. Another difficulty is caused by the use of computers to provide flexibility in systems which operate in a changing environment. These systems are designed so that computer programs will absorb the major portion of expected changes. This allows firm definition of hardware requirements early in the development cycle of the system but makes it difficult to define the computer program requirements at the same time. The impossibility under realistic conditions of establishing complete and definitive requirements in the programming process should not, however, be interpreted as a hopeless impasse to management control. On the contrary, if we accept as the general rule that the definition of requirements is an evolving process, we must conclude that a major function of management control is to insure that the development of the part 1 spec is an orderly one. This can be accomplished by providing mechanisms for the development of the spec and then for controlling changes to the spec as the requirements become better defined. This is actually what configuration management is all about as discussed in the paper by Searle and Neil. 2 The rest of this paper will discuss the content of the first part of the specification, some methods for developing it in face of the realities mentioned above, and its relationship to the second part of the spec and other management control tools. We begin with a brief description of what the first part of a computer program specification should contain. The technical specification (Part 1) Part 1 of the specification results from an analysis of the role the computer is to play in the system; The Technical Specification-Key To Management Control it is a translation of user needs to the language of computer systems analysts. The specification is developed in the definition phase prior to extensive design of the program. Content of the specification The computer program specification contains performance requirements, interface requirements, design requirements, and test requirements. The performance requirements describe what the program is to do and the required data base characteristics. F or each major function of the program the specification describes the type of data inputs, the required computer processing and the required outputs. The interface requirements describe the content and format of data transferred between the computer program and other computer programs and equipments. The design requirements delineate items, not directly related to the desired performance of the program, which constrain the design of the program, e.g., requirements for modularity and expandability. The test requirements define the types of tests needed to verify that the resultant computer program satisfies the performance and design requirements contained in the specification. Test requirements are included in the specification to al· low the contractor sufficient time to adequately plan for running the required tests and to facilitate management control of the testing process. 3 An outline of a model format for the first part of the specification is given in Figure 2. A description of a model spec is given in the Appendix of this paper. The format was developed with two things in mind: (1) to provide a convenient framework for the documentation of computer program requirements, and (2) to conform as much as possible to the format already in use for hardware specifications. The format and model were produced as part of an effort, undertaken on behalf of NASA's Apollo Program Office, to apply configuration management to computer programming. 4 This effort was closely coordinated with a similar one undertaken by the USAF's Electronic Systems Division. 5 Development of the specification Ideally, the user would produce a complete set of requirements prior to the design efforts- of the contractor. With adaption of the phased system acquisition concept as discussed by Ratynski,l this ideal can be more closely approached than has b~en in the past. In this approach the interface, performance, design and test requirements would be developed in the definition phase prior to the contractor's design efforts in the acquisition phase 53 (see Figure 3). However, in many cases for the reasons discussed earlier in this paper, some overlap of requirements analysis with design must be allowed if the program is to be available when it is needed. An orderly development of requirements can still be achieved in these cases. The requirements can be built up in several ways depending on exact circumstances. In some cases the functions of what will eventually be a single program can be split into severai subprograms, each of which can be developed separately. For example, in the case of an automated checkout system the final program may be composed of a supervisory system plus a package of test programs. The detailed requirements for the supervisory system may be relatively insensitive to the object under test and hence can be developed prior to the availability of the complete set of test program requirements. Significant design and development' of the final program can then be accomplished prior to the total definition of computer program requirements.* Another approach is to develop enough of the requirements to start design of the program at a high level, detailed design taking place as more requirements become available. For example, design of a program could commence subsequent to the establishment of a set of qualitative performance and design requirements. As more quantitative requirements - accuracies, response times, exact interface data formats, etc. - become known, the specification can be amended allowing the contractor to design the program in more detCi-il. As requirements evolve, the program can be designed, evaluated (such evaluation perhaps aiding in the further definition of requirements) and flow charted. Coding, debugging, and assembly of the program would commence upon release of the completed requirements. Even where the ultimate form of the system is not known at the inception of design - as in the case of some research and development projects - the requirements can be built up in an orderly fashion. To do this we borrow the concept of a prototype from hardware development. For many systems enough requirements can be developed in the definition phase to serve as the basis for producing a meaningful prototype computer program. This program can then be used in the operational system. As experience is gained by using the prototype, the requirements can be revised, reissued, and from them a "second gen*Another benefit of this approach is the isolation of those portions of the program which are expected to change; they in turn can be designed to be flexible, this being stated as a design requirement. 54 Spring Joint Computer Conf., 1967 -- - -- I COMPUTER PROGRAM SPECIFICATION (Part I) l. Scope 2. Applicable Documents 3. Requ ireme nts 3. 1 Performance 3. 1. 1 System Requirements 3. i .2 Operationai Requirements 1) Funct ion 1 1 • 1 Inputs 1.2 Outputs 1 .3 Information Processing 2) Funct ion 2 2.1 Inputs 2.2 Outputs 2.3 Information Processing 3.1.3 Data B 3 1 ase Req . 3 2 • .4 Human Perft ulrements • Computer P ormance 3 ? 1 I . . rogram Def: ... :L' 3 2 IOferfa Ce Re • ··""'on • • 2 User F . qUlrements 3.3 Design Req ~rnlshed Programs UIrements . · - • .1 4. Qua/it As 4. 1 1m Y surance plementat' 4. 2 Inte r ' IOn Test Re ' g atlon Test Re . qUlrements qUlrements I I I I I NOTES APPENDICES I n} Fund ion n Figure 2 - PART 1 of the computer program specification eration" program developed. This iterative procedure can be repeated in controlled discrete steps until the final operational system is produced. and develop flow charts to show the interrelationship among the components. Control of the specification Variations and combinations of the above described approaches may be appropriate in particular efforts. Whatever approach is used however, a common factor exists: as soon as sufficient requirements have been developed to allow initial design of the program, they are documented and officially released as the "design to" specification. This usually occurs when the performance and design requirements have been defined to a level of detail which permits the contractor to segment the program into component subprograms, allocate functions to the components, 1 Control of changes and additions to the part 1 specification is essential if it is to be used as the standard for controlling the design and development of the computer program. Forma! control, by the user, begins with the release of (some subset of) the requirements as the part 1 specification. Control is vested in a change control board (CCB) made up of user personnel who are aware of the technical effects of changes throughout the system. Any change to the specifiCation, except for correction of editorial errors, must be approved The Technical Specification-Key To Management Control 55 + TEST REQUIREMENTS I FOR OTHER I ELEMENTS IN THE SYSTEM DEFINE SYSTEM TEST REQUIREMENTS DEFINE COMPUTER _---~PROGRAM DESIGN REQUIREMENTS DEFINE DATA BASE PERFORMANCE REQUIREMENTS EXPAND SYSTEM REQUIREMENTS AllOCATE FUNCTIONS TO SYSTEM ELEMENTS; INITIAL DEFINITION OF INTERFACES ~-11"'" DEFINE COMPUTER PROGRAM FUNCTIONS ";0 ~ C "tI I I r--- - --, I I DEFINE I t..l I MANUAL TASKS I Z -I m ~ ~ - - - - -I "» () m I ,-------1 , 0 m "Z .-------, : I I~ 1 DEFINE EQUIPMENT FUNCfJONS '___ - TO THE ACQUISITION PHASE ~ I 0 1_ _ _ _ _ _ Z • I ---' Figure 3 - Definition phase activities leading to the development of the Part 1 specification by the CCB before the change can be incorporated into the specification. All approved changes must be documented and disseminated to all agencies affected by the changes. t The CCB must be able to recognize and react to different kinds of changes to the part 1 specification. Many of the early changes to the specification will actually be additions, filling in areas not previously defined. Changes of this type will come from the group in the using agency that developed the original requirements. Changes will also come from other groups in the using agency as a result of further dt!finition of or changes to the system's requirements. The CCB transmits and coordinates these types of changes to the contractor. Other proposed changes may come from the contractor as he uncovers inconsistencies in the requirements, or formulates new con- t A discussion of change control and accounting documents which aid in the change control process is given in the paper by Searle and Neil." cepts as to what the program should do. If acceptable to the CCB, they are incorporated into the specification. The specification as a management control tool Once released, the part 1 specification serves as a valuable tool in controlling the contractor's design; in assuring the quality of the program, and in accepting the resultant computer program. In many cases it is also a valuable tool in procuring the services of a programming contractor. Procurement In those cases where the services of an outside programming contractor are required, the part 1 specification, included as part of a statement of work6 in a request for proposal, helps define the task to be done. The more complete the specification the better 56 Spring Joint Computer Conf., 1967 the chances are of getting realistic bids from contractors. Design control The specification provides the standard by which the contractor's design may be evaiuated. This can be done in several reviews during the programming process, permitting detection of design errors (or faults in the requirements analysis) early enough to do something about them. At least two types of reviews are helpful: a preliminary design review (PDR), and a set of critical design reviews (CDR'sV The PDR is held early in the design process. The contractor's initial overall design approach is reviewed with respect to the part 1 specification. The review gives the user an opportunity to evaluate the proposed design to see if it will meet the requirements as stated in the spec. After the PDR, the contractor proceeds to the detailed design of the individual components of the program. Once the detailed design of an individual component is complete, it is reviewed in a CDR, prior to coding. This provides an additional check on the ability of the computer program to meet the design and performance requirements. Since the detailed design of a large scale computer program may take considerable time, several CDR's may be held. Quality assurance The "quality" of a computer program is determined by its ability to do the job for which it is intended, to be modified as required, to be maintained, and to be understood by others than those who produced it. Although quality in this sense is difficult to measure, it can be enhanced by the availability of programming standards, the application of good documentation techniques; and comprehensive testing of the evolving program. The total specification - both part 1 and part 2 - can be used as an instrument in achieving these conditions. Programming standards are used to control and guide the efforts of programmers during the acquisition phase to ensure that a self consistent computer program is developed (see Figure 4). They are usually of three types: standards of formats, for example, for punched cards and flow charts; standards of design techniques; and standards of procedures regulating programming personnel. 7 Although the responsibility for developing the standards usually lies with the programming contractor, the requirement for producing them is levied by the user in the design requirements section of the part 1 specification. The user may also include detailed standards in part 1 if appropriate. For example. if the user knows the program will have to be modified extensively in operational use, he could include a requirement in the part 1 specification limit- ing program module size to 1,000 storage locations. The part 1 specification also provides a vehicle for indicating the types of tests the contractor must perform during the programming process. These tests are used to determine if the program components are error free, a condition which must be approached if a high quality program is to be produced. Another essential aspect of quality assurance is documentation of the resultant program. Without adequate documentation, the program cannot be modified or corrected, causing it to lose its value as time progresses. Part 2 of the specification provides a description of the program and as such is the instrument for making and controlling changes to the program in the operation phase. The part 2 specification is a collection of information that is generated during the acquisition phase of any well managed programming effort (see Figure 4). It contains: (1) a description of the overall program design including high level flow charts; (2) programming specifications for the individual components of the computer prograll); (3) the detailed flow charts for the components; (4) and program listings. A complete description of a suggested format and content of the part 2 spec is given in the aforementioned government manuals. 4 •5 Acceptance of the program The role of the part 1 specification in the formal acceptance of the program is discussed elsewhere in this session. Suffice it to say here that part 1 has a twofold role in the acceptance process. It provides the quantitative and qualitative measures by which the performance of the program can be evaluated; it also provides specific requirements for the types of tests and inspections necessary to make this evaluation. CONCLUDING REMARKS Computer program requirements, documented in the part 1 specification, provide a standard by which the performance of the contractor and the performance of the resultant computer program can be evaluated. Despite some inherent problems which may prevent a user from developing complete requirements prior to the design of a computer program, it is possible to use the evolving requirements as a key management sool during the program's development. An initial part I specification can be released early in the programming process for use by a contractor as the basis for the design of the program. The remaining requirements can be transmitted to the contractor in an orderly fashion as they are developed. All sub- The Technical Specification - Key To ~1anagement Control DETAILED PRELIMI NARY DESIGN OF COMPUTER COMPUTER ~ PROGRAM PROGRAM COMPONENTS DES IGN AND DATA BASE I CODING AND ASSEMBLY ~ COMPUTER PROGRAM f-+TESTS \~~ \ 1. COMPUTER PROGRAM FLOW CHARTS THE PART 2 SPEC o n + L ~ 0 ~ "'tI 0 ~ zm ....Z \ y OVERALL DESIGN DESCRI PTION o ~'" ~ ~ COM:10NENT FLOW CHARTS COM:~NENT I LISTINGS /1/1 I I I I I I I 2£ ~ '" 0 .... 111111 COMPONENT #1 DESCR I PTION 0 ) COMPONENT #r! #n FLOW CHARTS LISTINGS III ~ Z m Z y COMPONENT ~6 "'tI I I I II / II I I I SYSTEM TESTS n o 57 fg. II II I / I II 1111/1/1111 Ii III IIIII y I COMPONENT #n DESCRI PTION Figure 4 - Programming standards and the Part 2 specification in the acquisition phase sequent changes to part 1 can be controlled by a change control board, composed of user personnel, to insure the availability of up-to-date requirements consistent with the requirements of any interfacing elements. Several benefits accrue from having an up-to-date part 1 specification throughout the development cycle of the program. The user can evaluate the contractor's design at periodic intervals. The contractor is provided a basis by which he can develop programming standards, which along with the program description documented in part 2 of the specification is an essential tool in assuring the quality of the program. Also, the user is provided with a measure for determining the acceptability of the program since the result of formal acceptance tests can be compared against the performance requirements in the part 1 specification. APPENDIX - A model for the Part 1 specification This appendix presents a more detailed description of the types of information that should be included in a computer program requirements specification. The format illustrated in Figure 2 will be used as the basis for discussion. Performance requirements (3.1) The performance requirements put bounds on the expected performance of the program. This is done at several levels. The first level specifies the system characteristics which define the environment that the program operates in (3.1.1). For example, in a space tracking system this could be the number and types of radars involved, the maximum number of space vehicles to be tracked, the numbers and types of displays to be driven, etc. For a payroll program this could include such things as the number of employees, the types of deductions, the salary ranges, etc. 58 Spring Joint Computer Conf., 1967 The second level provides an identification of the distinct functions that the computer program must perform. The functions are described, with the aid of a functional block diagram, under the heading '''operational requirements" (3.1.2). The block diagram illustrates the relationships of the functions to each other to clarify the textual descriptions that follow in the spec. The third level provides the inputs, outputs, and required processing for each function depicted in the block diagram. In the space tracking example, as a case in point, the first identified function might be that of orbit determination. A lead paragraph (3.1.2.1) describes the function in general tenns with particular emphasis on its relationship to other functions. Then the source and type of inputs associated with the function are described (3.1.2.1.1). in our exampie this might be spacecraft position data from each tracking station and a table of past spacecraft positions generated by the computer program. For each of the input sources, such things as data rates, accuracies, units, and limits should be given. The types and destinations of data outputs associated with the function are then given (3.1.2.1.2). F or example, one such output might be an orbital prediction used for driving a flight controller's display. Again such things as data rates, accuracies, units and limits are specified. The information processing required for the function is then described (3.1.2.1.3). This is done by prose and mathematical descriptions including necessary logical concepts, timing requirements, formulas and processing accuracies. In our example this might include among other things, the differential equation describing the orbit, the accuracy with which the equation must be solved, and the interval of time within which it must be solved. The next major class of requirements considered in the performance section of the spec is the requirements for the data base - the collection of data that the program operates on (3.1.3). For many programs the storage requirements for data may exceed the requirements for instructions and must be carefully considered before the program is written. This consideration should include such things as the volume of data, a definition of data classes, for each datum, a description of the units of measure and ranges. If special methods are required to convert the data to a form suitable for use by the computer program, they should be specified. If the program is to be used at several sites where the data values will vary from site to site, the site adaption procedures should be specified. Many computer programs have extensive human interfaces and like hardware items should be designed with human performance in mind. Therefore, the part 1 specification includes such things as clarity requirements for displays, times for human decision making, maximum display densities, etc. (3.1.4). Computer program definition (3.2) While the performance requirements may take the bulk of analysis time and occupy most of the content of the specification, there are other important factors that must be considered prior to the design of a computer program. Two of these factors - the interfaces of the computer program with the other elements of the system, and the available computer programs that can or must be used as components of the desired program - are specified under the category, "computer program definition." The interfaces with other computer programs, communication devices, and equiprnents must be specified prior to detailed design of the computer program (3.2.1). This includes all relevant characteristics of the computer or class of computers the program is to operate in, including such things as available memory, programming languages, word size, etc. The relationship of the computer program to other equipments and programs should be portrayed in a block diagram, with detailed paragraphs in the spec describing the individual interfaces. The descriptions should include such things as data formats, data rates, and data content. In addition, this portion of the spec should describe all requirements imposed upon other system elements .as a result of the design of the program. For example, certain program requirements may affect the design of a display console; if so, they should be documented in the spec. In many programming efforts there may be available already completed programs which are of potential use to the program designers. For example, a tightly coded numerical routine for solving differential equations may exist in a program library. If there are such programs, the requirements to use them should be stated in the spec (3.2.2). Design requirements (3.3 ) There are certain requirements which affect the design of a computer program, which are distinguishable from the performance requirements. These requirements result from general considerations of usability and maintainability, and may include such things as requirements for: the use of programming standards; program organization; special features to facilitate the program's testing; and expandability. These types of requirements should be considered in the definition phase and included in the spec. The Technical Specification - Key To Management Control Quality assurance (4.0) One of the major functions of the specification is to define the tests and demonstrations necessary to qualify the program for operational use. For most computer programs the time and resources expended for testing exceed those for any other activity in the programming process. Unless the requirements for testing are considered early enough, there may be delays later in the process when these needs arise. Also, in a large system the requirements for the testing of a computer program are directly related to the requirements for testing the entire system. For these reasons test requirements should be considered in the definition phase and included in the specification. A method of verification should be given for each of the performance and design requirements stated in the specification. The requirements should be stated to a level of detail which will permit detailed test planning by the program developer. The specification itself should not be a test plan. The types of tests that should be considered include implementation tests, integration tests, preliminary qualification tests, final qualification tests, string tests, etc. 3 59 REFERENCES 2 3 4 5 6 7 MVRATYNSKI The Air Force Computer Program Acquisition Concept SJCC Proceedings 1967 L V SEARLE and G NEIL Configuration Management of Computer Programs by the Air Force Principles and Documentation SJCC Proceedings 1967 M S PILIGIAN andJ L POKORNEY Air Force Concepts for the Technical Control and Design Verification of Computer Programs SJCC Proceedings 1967 NPC 500-1 Apollo Configuration Management Manual (Exhibit XVIII) National Aeronautics and Space Administration May 18 1964 ESD EXHIBIT EST-l Configuration Management Exhibit for Computer Programs Electronic Systems Division Air Force Systems Command Laurence G Hanscom Field Bedford Massachusetts May 1966 B H LIEBOWITZ E B PARKER III and C S SHERRERD Procedures for Management Control of Computer Programming in Apollo Appendix I TR-66-320-2 Bellcomm Inc September 28 1966 IBID APPENDIX VI Air Force concepts for the technical control and design verification of computer programs by M. S. PILIGIAN andJ. L. POKORNEY, Captain, USAF Electronic Systems Division L. G. Hanscom Field Bedford, Massachusetts once it is developed. Generally, a one to one relationship exists between Sections 3 and 4 of the specifition. Thus each requirement of Section 3 will have an appropriate test requirement and test method identified in Section 4. The specified requirements form the bOasis for three formal technical reviews through the system and contract end item design and development. Concurrently the specification test requirements are the basis for subsequent test planning documentation and system testing at both the contract end item and system performance levels. The relationship between the specifications, design reviews and test program is illustrated in Figure 1. The lower blocks of the figure identify the design reviews during the system life cycle each of which will now be discussed in more detail. INTRODUCTION While much has been written about the design and development of large scale computer-based systems, little has been published about the testing of these systems and in particular about the testing of computer programs within the context of a system. Similarly, while extensive techniques for design control of system hardware have been developed by the Air Force over the past five years, technical control and design verification procedures for computer programs have not been aggressively investigated. An Air Force project was established at the Electronic Systems Division (AF Systems Command) to rectify this situation. Concepts resulting from this investigation are presented and current procedures to insure design integrity of computer programs by technical reviews of the designer's efforts and by tests during program development are summarized. System design review The System Design Review (SDR) is held late in the Definition Phase* of the system life cycle. 4 The purpose of this first review is to study the contractor's system design approach. At the SDR a critical examination is performed to insure that contractor's design reflects a proper understanding of all technical requirements. An analysis of contractor documentation in the form of functional diagrams, trade study reports, schematic diagrams, initial design specifications, etc. is conducted. A prime objective of the SDR is to review the allocation of functional requirements to the various system segments and contract end items. Thus, for computer programs, the SD~must insure that only those system requirements that can be realistically satisfied by Uniform specijications Fundamental to Air Force management of computer program design, development and testing is the definition of computer programs as deliverable contract end items and the adaptation of the Air Force uniform specification program to these end items. 1,2 The uniform specifications,3 both at the system and computer program contract end item (CPCEI) level, consist of two basic sections; Section 3, performance/ design requirements section, and Section 4, the quality assurance or· test requirements section. It should be realized that even as early in the design process as the preparation of the system and end item specifications, the methods of testing end item performance against technical requirements should be known. It is a waste of time and money to specify technical requirements if a method of performance verification is not available to evaluate the computer program *Phases as discussed here (i.e. Conceptual, Definition, Acquisition and Operational Phases) refer to the 4 phases of the System Life Cycle as defined in AFSCM 375-4, System Program Management Procedures. 61 62 Spring Joint Computer Conf., 1967 . - - - - - - - - - + - - - - - - - . . 1 CATEGORY II TEST PLAN , I CATEGORY II TEST I PROCEEDURES I-------~, I ..------~I~ L---\ PART I CPCEI SPECIFICATION SYSTEM SPECIFICATION DETERMINE \ SYSTEM REQU I REMENTS I I I I I I I PRELIMINARY DESIGN REVIEW SYSTEM DES IGN REVIEW CRITICAL DES IGN REVIEW FIRST ARTICLE CONFIGURATION INSPECTION ~:..- : - . - - - - DEFINITION PHASE --~JI··------------ACQUISITION PHASE -------------,~~ I I I Figure 1- Computer program design flow computer programs have been allocated to computer program contract end items (i.e. operational, utility, diagnostic, etc.). Prior to the conduct of the SDR, trade-off studies concerning equipments vs. computer programs must have been completed to provide a cost effective allocation of requirements. Satisfactory completion of the SDR permits preparation of the Part I specifications ("design to" specifications) for all CPCEI's. These specifications form the basis for the second technical review in the design process. Preliminary design review The Preliminary Design Review (PDR) is normally held within 60 days after the start of the Acquisition Phase. Concurrently the preliminary design of the CPCEI can progress based upon the approved "design to" specifications for the end item. The purpose of the PD R is to evaluate the design approach for the end item or group of end items in light of the overall system requirements; thus, the prime objective of the PD R is achieving design integrity. A review of the intetfaces affecting the computer program contract end item is an important element of a PDR. Emphasis is placed on verification of detailed interfaces with equipment and with other CPCEI's. At the PDR the instruction set of the computer to be used must be firmly established. The programming features of the computer, e.g. interrupts, multiprocessing, time sharing, etc. must be known. All external data formats and timing constraints must be identified. The computer program storage requirements and data base design are reviewed for technical adequacy at this time. The structure of the computer program contract end item is also reviewed at the PDR. During the initial design process for a complex CPCEI, the requirements of the Part I specification which are function-oriented are allocated to computer program components or modules. The relationship of the components of a typical CPCEI to the functions identified in a Part I CPCEI specification is shown in Figure 2. The allocation of functions to computer program components within the CPCEI is examined at the PDR. The primary product of the review at this level is establishing the integrity of the design approach, verifying compatibility of the design approach with the Part I specification, and verifying the functional interfaces with other contract end items in order that detailed design of the epCEI and its components can commence. ATR BAG MIM RADAR INPUTS TRACKING COMPUTER (M) PROGRAM COMPONENTS X X X IDENTIFICATION X DISPLAY CONTROL X DATA TRANSFER RST X X X X (N) FUNCTIONS Figure 2 - Allocation of performance functions to computer program components Air Force Concepts For The Technical Control And Design Critical design review The Critical Design Review (CDR) is a formal technical review of the design of the computer program contract end item at the detailed flowchart level. It is accomplished to establish the integrity of the computer program design prior to coding and testing. This does not preclude any coding prior to the CDR required to demonstrate design integrity, such as testing of algorithms. In the case of a complex CPCE!, as the design of each component proceeds to the detailed flowchart level, a CDR is held for that component. In this manner, the CD R is performed incrementally by computer program components, and the reviews are scheduled to optimize the efficiency of the overall CDR for the end item as a whole. Due to the varying complexity of the parallel design efforts for CPCEI components, it would be unreasonable to delay all of the components being developed to hold one CDR for the computer program end item. At the CDR, the completed sections of the Part II CPCEI specification (detailed technical description) are reviewed along with supporting analytical data, test data, etc. The compatibility of the CPCEI design with the requirements of the Part I specification is established at the CDR. "Inter" interfaces with other CPCEI's and "intra" interfaces between computer program components are examined. Design integrity is established by review of analytical and test data, in the form of logic designs, algorithms, storage allocations and associated methodology. In general, the primary product of the CDR is the establishment of the desigfl as the basis for continuation of the computer program development cycle. Immediately following the CDR, coding of individual components takes place and the process of checkout and testing of the components begins. Computer program testing System testing as defined by the Air Force is divided into three classes or categories of testing, two of which, Category I and 11 5 are important in development testing of Air Force systems and will be discussed here. Category I tests for CPCEI's are conducted by the contractor with active Air Force participation. These activities, when properly planned and managed, will normally proceed in such a way that testing and functional demonstrations of selected functions or individual computer program components can begin early during acquisition and progress through successively higher levels of assembly to the point at which the complete computer program CEI is subjected to formal qualification testing. Since the total process is typically lengthy and represents the major expense of computer program 63 acquisition for the system, the test program includes preliminary qualification tests at appropriate stages for formal review by the Air Force. While the tests are preliminary in nature (they do not imply acceptance, or formal qualification), they do serve the necessary purpose of providing check points for monitoring the contractor's progress towards meeting design objectives and of verifying detailed performance characteristics, which, because of sheer numbers and complexity, may not be feasible to verify in their entirety during formal qualification testing. Category II tests are complete system tests, including the qualified computer program end items, conducted by the Air Force with contractor support in as near an operational configuration as is practicable. Figure 3 - Test documentation Computer program testing is accomplished in accordance with Air Force approved test documentation as illustrated in Figure 3. As previously discussed, test requirements and corresponding test methods (to the level of detail necessary to clearly establish the scope and accuracy of the methods) are contained in Section 3 and Section 4 of the CEI specification. The Category I test requirements are further amplified in the contractor-prepared Category I Test Plan. This document contains comprehensive planning information for qualification tests; complete with schedules, test methods and criteria, identification. The Category I test requirements are further amplified in the contractor-prepared Category I computer programs and personnel. The Test Plan forms the basis for Category I Test Procedures which are also prepared by the contractor. These describe individual Category I qualification tests in detailed terms, specifying objectives, inputs, events, recording/ data reduction requirements and expected results. Actual test results are reported in a formal Category I Test Plan. This document contains comprehensive planning information for qualification tests; complete with schedules, test methods and criteria, identification of simulated vs. live imputs and support require- 64 Spring Joint Computer Conf., 1967 CONDUCTED AT THE CONTRACTORS FACILITY CONDUCTED A:r CATEGORY II TEST SITE ~coding r: CDR COMPONENT #3 n CDR COMPONENT PRELIMINARY #2 QUAliFiCATiON COMPUTER FORMAL PROGRAM QUALIFICATION INSTALLATION TESTS TESTS CDR COMPONENT #1 TIME - - - - -.. ~ Figure 4 - Computer program contract end item critical design review and Category I tests ments for test equipment, facilities, special test computer programs and pronnel. The Test Plan forms the basis for Category I Test Procedures which are also prepared by the contractor. These describe individual Category I qualification tests in detailed terms, specifying objectives, inputs, events, recording/ data reduction requirements and expected results. Actu test results are reported in a formal Category I Test Report. Category I (qualification) testing of computer programs The Category I test program verifies that the computer program contract end item satisfies the performance/design requirements of the Part I "design to" CpeEI specification. The test program must be designed to insure that all of the functional requirements, as translated into computer program components, are tested and that requirements are not lost in the translation. The program is divided into two major classes of tests: Preliminary Qualification Tests (PQT) and Formal Qualification Tests (FQT). The former are designed to verify the performance of individual components prior to an integrated formal qualification of the complete epCEI. Preliminary qualification testing The PQT phase is conducted incrementally by components in the same manner as the Critical Design Review. Figure 4 depicts the relationship between CDR and the Category I test program. The crosshatched blocks in Figure 4 indicate coding of individual computer program components. The Preliminary Qualification Tests are modular and a "building block" effect occurs as testing progresses. As each computer program component is added and each PQT conducted, increased confidence develops in the CPCEI being tested. Generally, parameter tests are conducted prior to and in parallel with Preliminary Qualification Tests. 6 Parameter tests are those designed to prove that an individual sub program satisfies the detailed design specification, not that the program performs as coded. These tests compare the actual operation of each sub program against the design specification. Parameter testing usually requires a utility system incorporating sophisticated parameter test tools. These test tools, which are computer programs themselves, allow more efficient testing because they increase the ease with which a test can be specified, implemented and analyzed. They allow a programmer to easily input data, make corrections and record results. In addition to the test tools, the programmer needs the compiled or assembled program, the Part I specifications, the test plan and the test procedures. In parameter tests, the programmer must input a simulated program environment to the computer. The environment should include the broadest range Air Force Concepts ForThe Technical Control And Design of anticipated inputs, including some illegalities. The program is operated in this simulated environment, and the actual outputs are compared with the expected outputs. After each test run, the programmer analyzes the results and makes corrections to the code. All corrections are verified by submitting them to a parameter test once again. Assembly testing verifies that the computer program components in the contract end item interact according to design specifications. It is conducted with simulated inputs in order to minimize the effects of people and equipment and allows a broad range of input conditions to be simulated. Elaborate test tools, such as input simulation, recording, and reduction programs, are required to conduct assembly tests. Since these programs take time to prepare, test requirements such as instrumentation must be anticipated. For example, provision must be made for core storage to accommodate test control and test recording programs along with the program being tested. At the conclusion of Preliminary Qualification Testing, all of the computer program components will have been integrated and tested and the CPCEI is being ready for formal qualification and acceptance. Formal qualification testing Qualification testing of a complex computer program contract end item requires extensive use of simulation techniques. The use of these techniques is dictated by the high cost of providing overhead computer facilities or by the unavailability of new computers undergoing a parallel design and development effort. Although Preliminary Qualification Tests will make maximum use of simulation techniques, the Formal Qualification Tests of an operational CPCEI will require live inputs, live outputs and operationally-configured equipment. A prerequisite, then, of FQT is usually the installation and checkout of the CPCEI in an operationally-configured system at the Category II test site. The exception would be in the case of a support CPCEI such as a compiler that would require live inputs, e.g. radar data, and could be fully qualified at the contractor's facility. To provide reliable data during FQT, the CPCEI installation requires fully installed and checked out equipment CEl's. The first opportunity for FQT will normally occur at the Category II test site after equipment CEl's that have successfully passed First Article Configuration Inspection have been installed and checked out and an operationallyconfigured system exists. FQT is conducted subsequent to installation and checkout of the CPCEI. The conclusion of FQT signals the end of the Category I test program. The CPCEI will have been fully 65 qualified and all of the requirements of the Part I specification should have been satisfied except for those requirements of the Part I specification that can only be demonstrated during a Category I I system test. After successfully passing this phase of testing, the CPCEI is fully integrated into the system and is ready for system testing. First article configuration inspection With CPCEI design and testing essentially completed, Part II of the CPCEI Specification is available for review. The Part II specification provides a complete and detailed technical description of the CPCEI "as built," including all changes resulting from prior testing. It will accompany the CPCEI to each installation or site and functions as the primary document for "maintenance" of the CPCEI. Consequently, the technical accuracy and completeness of the Part II specification must be determined prior to its acceptance by the Air Force. The First Article Configuration Inspection (F ACI) provides the vehicle for the required review; thus it is an audit of the Part II CPCEI specification and the CPCEI as delivered. The primary product of the F ACI is the formal acceptance by the Air Force, of (1) the epCEI specification (Part II) as an audited and approved document, and (2) the first unit of the computer program contract end item. Air Force acceptance of the CPCEI is based on the successful completion of the Category I Test Program and the FACI, but it does not relieve the contractor from meeting the requirements in the system specification. Subsequent to FACI, the configuration7 of the CPCEI is essentially controlled at the machine instruction level so that the exact configuration of the CPCEI is available for Category II system testing. Category II system testing After acceptance of the CPCEI, the Air Force conducts an extensive Category II system test program with the objective of demonstrating that the total system meets the performance/design requirements specified in the System Specification. Insofar as the computer programs are concerned, Category II testing will verify the CPCEl's compatibility with the system elements and its integrated performance in meeting system requirements in the live environment, with operational communications, personnel, etc. Residual design and coding errors discovered in this phase of testing are corrected prior to the system becoming operational. SUMMARY The techniques for design reviews and testing presented in this paper provide a means of insuring the 66 Spring Joint Computer Conf., 1967 design integrity of computer programs during the lengthy design and development cycle. It provides the Air Force with technical control, at discrete phase points, which was not before available. To provide this control; existing Air Force Systems Command management techniques were assessed and adapted to computer programs. No attempt has been made to equate computer programs with equipments; rather, the requirement for similar technical controls has been recognized with due consideration for the inherent differences between computer programs and equipment. While these techniques were developed for computer programs within the context of large computer-based systems, they are and have been readily adaptable to small individual computer program procurements. More detailed information on requirements and procedures are included in ESD Exhibit EST-I and ESD Exhibit EST-2, published by the Electronic Systems Division. Though the above techniques have been used on contracts at ESD, none of the programs have progressed through the complete cycle. The limited experience to date indicates that the techniques are feasible, they do provide vitally needed Air Force technical control and visibility and in turn they have been useful to the contractors as a formal management scheme and a means for mutual understanding and problem resolution. REFERENCES 2 3 4 5 6 ESD Exhibit EST-l Configuration management exhibit for computer programs Test Division of the Technical Requirements and Standards Office Eiectronic Systems Division Air Force Systems Command L G Hanscom Field Bedford massachusetts May 1966 AFSCM 375-1 Configuration management during definition and acquisition phases Andrews AFB Washington D C Headquarters Air Force Systems Command June 1 1964 B H LIEBOWITZ The technical specification - key to management control of computer programming SJCC Proceedings 1967 M V RATYNSKI The Air Force computer program acquisition concept SjCC Proceedings j 967 AFR 80-14 Testing/evaluation of systems subsystems and equipments Washington D C Department of the Air Force August 14 1963 LEONARD AF ARR A description of the computer program implementation process System Development Corporation TM-I021/002/00 February 25 1963 7 L V SEARLE G NEIL Configuration management of computer programs by the Air Force: principles and documentation SJ CC Proceedings 1967 Univac ® 1108 multiprocessor system by D. C. STANGA Univac Division, Sperry Rand Corp. Roseville, Minnesota INTRODUCTION posed of many distinct modules or system components which are functionally, logically, and electrically independent. Any system component can be removed from the system, resulting only in a degradation of system performance, and not total system destruction. The removal of the system component is accomplished by a combination of software and hardware actions. (This will be discussed further under System Availability.) The following system components can be interconnected into a variety of pre-specified system configurations. Two prime objectives existed during initial conception of the 1108 Multiprocessor System. These were: • Increased system performance, and • Increased system availability. Increased performance in a "central system" was achieved via multiple processing units, multiple input/ output units, and multiple access paths to critical peripheral devices. To accommodate this increase in computer capability the main memory was increased in size to provide storage for a large number of resident programs. Increased availability was achieved by providing multiple access paths to all system components, and by providing for removal of system components for offline testing and maintenance. In order to accomplish the prime objectives, several self-imposed restraints were placed on the design considerations, these are: modifications to the 1108 Processor would be minimal, the two processors (1108 & 1108 II) would be functionally identical, all peripheral subsystems and existing memory modules must operate in the new configuration. The self imposed restraints were intended to minimize development time and ensure that the existing upward compatibility between 1107 and 1108 Processors would be continued through the 1108 II Processor. 1108 II processor This processor is functionally identical to the 1108 Processor except that an additional mode of main memory addressing was introduced, and another instruction was added to the Unprivileged Set. Additional mode of main memory addressing.To the programmed overlapped addressing of the 1108 Processor was added the interleaved capability with an extension of this addressing form to include 262K, 36-bit main memory words. This interleaving is accomplished after the basing and indexing operation by decoding· the upper two bits and the lower bit of the absolute memory address. Logical Bank 0-3 System configuration (hardware) Figure 1 shows a maximum 1108 Multiprocessor System configuration, with the exception of the Peripheral Subsystems which are essentially unlimited with respect to the rest of the system. A minimum configuration (unit processor) of the same system would consist of a processor and two memory modules (65K). The 1108 Executive system views the minimum configuration as a subset of the more general multisystem configuration. To better understand the multiprocessor system, it is helpful to think of it as com- Even/ Odd Address Field The upper two bits specify the logical bank and the least significant bit of the address field specifies the even or odd module within the logical bank. Each logical bank contains 65K of 36-bit words. The interleaving feature permits optimum simultaneous execution of a common area of procedures by two 67 68 Spring Joint Compnter Conf., 1967 (or more) processors. The degree of interleave is a trade off' between simultaneous access capability and hardware functional capability during times of main memory hardware malfunction. Addition of the test and set instruction to the unprivileged set. - The function of this instruction is to permit queued access to common procedure areas that cannot be executed simultaneously by two or more processors. This function is accomplished by testing the specified main memory cell and setting it during the same extended memory cycle. 30 Memory Cell 2 = 1 No Yes Take NI Interrupt to Loc. 164 Consequently, this common area of procedures is protected from simultaneous entrance by virtue of the fact that all references to it must test the cell associated with that area. If simultaneous access is attempted, an internal interrupt to the Executive System is effected. These restricted entrances into procedure areas will occur most frequently in the Executive area during assignment of, or changes in, priority of system tasks. It is beyond the scope of this paper to delve into discussions on re-entrant or pure procedure, and conv.ersational mode compilers. They are, however, planned. as standard software packages for 1108 Multiprocessor Systems. Main memory Main menmry is provided in 65K word increments, expandable from a 65K minimum to a 262K maximum configuration. The main memory cycle time is 750 nanoseconds. Eight distinct paths are provided for each Processor and IOC, thus enabling each of these components to address the maximum memory configuration. Main Memory is composed of eight separate 32K modules, thus eight SImultaneous references could occur in a system configuration containing the maximum memory, processor, and IOC components. Multiple module access unit (MMA) This system component provides multiple access to individual memory modules. A pair of MMA's provides access to one logical bank of 65K words. A maximum of five paths to each module exists. Priority resolution between simultaneous memory requests is accomplished in this unit. The ProcessorI OC-Memory interface is request -acknowledge logic. Therefore, at a time when queues develop at a module interface a Processor or IOC can be kept waiting while memory requests are serviced on a predetermined priority basis. This priority is so arranged that IOC's are serviced first due to the inability of most peripheral devices to "wait" for any extended period. Requests are serviced in the following manner. Priority is sequenced from left to right in each class with Class 1 having preemptive priority over Class 2. lOCo lOCI Class 1 Input output controller The main function of this unit in the system is to provide the capability for simultaneous compute and input/out data transfer operations. It also enhances the real-time capabilities of the system by providing high speed Externally Specified Index operations. Other primary functions include system channel expansion capability and data buffer chaining. The IOC is functionally similar to the input/output section of the 1108 II Processor. It does, however, exhibit the following advantages over the processor as a memory to peripheral subsystem data transfer device. (1) Requires no interruption of processor computational capability to execute data transfers. (2) Possesses data buffer chaining capability. (3) Performs ESI data transfers to main memory utilizing only one main memory reference versus three main memory references for a processor executed ESI transfer. The operations of the IOC are initiated via control paths from each of the three processors in the system. A channel from each processor is required as a control path for the issued commands and the reSUlting termination interrupts. The commands specify where function and data buffer control words are located in main memory; it is then up to the IOC to procure and issue functions as well as initiate, control, and monitor the reSUlting data transfers. Upon completion of an operation, a pre-specified processor is interrupted and notified that the channel has been terminated. The status associated with this termination interrupt is automatically stored at a pre-specified location in main memory by the IOC. The control memory of the IOC is 256 words (expandable to 512 words). Its cycle time is 250 nanoseconds. This high speed internal memory enables the IOC to hold up to 448 ESI buffer control words internally. During an ESI transfer the IOC need only reference this memory for its control words and therefore requires only one main memory reference at the time that data is to be transferred. In contrast the processor must reference main memory three times for the ESI buffer control word (as shown below): Univac ® 1108 Multiprocessor System roc: 69 \Read B I \ . Wri te BCW/ \ Store Character in 250 ns ',250 ns Main Memory 750 ns ,\verlapped with laSj! Transfer Processor \Read BCW~ Write BCW~ Store Charac ter in / 750 \NO TIS 750 ns Main Memory 750 ns , overlap possible / The maximum aggregate data transfer thruput of an IOC is 1.33 million words per second. Multiple processor adapter This functional unit provides mUltiple access capability to a peripheral subsystem. It honors requests for access on a first come-first served basis. The unit has two basic modes of operation, one for Internally Specified Index (lSI) operation and the other for Externally Specified Index (ESI) operation. Up to four input/ output channels from any combination of Processors and IOC's can be connected via the MPA to a peripheral subsystem. In the lSI mode the MPA will "lock" onto the first channel that issues a function and will continue servicing that channel until one of two contingencies occur. They are: (1) An External Interrupt is issued by the Peripheral Subsystem, or (2) A Release Control function is issued by a Processor or IOC. In the ESI mode the MP A will remain locked onto a Communications Subsystem until another channel issues an External Function. In the normal ESI mode the MP A remains continuously dedicated to the initiating input/output channel. In the case of a channel malfunction, control of the Communications Subsystem can be switched to another channel connected to that MP A. The switching is accomplished by a function being issued by the channel wishing to take control. Dual access devices In addition to providing multiple access to individual subsystem control units, the capability also exists for dual access to certain devices by two control units. The devices provided this capability are Tapes, FH Drums, and F ASTRAND Drums. These devices have the capability for resolving simultaneous requests for service from two independent control units. If one of these devices is busy, a busy status is presented to the other control unit. Upon com- pletion of the current service request, the "waiting" control unit is granted access. Further discussion of simultaneous service requests to a device is included under the System Control section of this paper. System-control (software) It is obvious from the preceding hardware discussion that many hardware configurations exist and also that many alternate paths between system components are available. However, software and system performance considerations makes it advantageous to pre-specify legal system configurations, and the primary data flow paths as shown in Figure 2. System control is maintained by the Executive (EXEC) software system. The EXEC can be executed by any processor in the system. Each, in turn, acting as the EXEC processor will inspect the list of current activities and select a task to be done. As previously stated in the hardware discussion, the EXEC processor may interlock an area of critical common procedures or data during task assignment or facilities assignment operations. Input/output operations are normally initiated using the primary data flow path shown in Figure 2. To increase system performance the EXEC will also assign another path to a string of dual access devices such as the FH Drums. This secondary path may also serve as the primary path in the case of malfunction. Secondary paths to single access device subsystems (such as a card subsystem) are also assigned during system generation so that they may function as primary paths during IOC or Processor malfunction. The EXEC routines interfacing with the resident worker programs are reentrant in design. For minor tasks requested of the EXEC, many of the routines are totally re-entrant. Others, when in the multiprocessing environment, will queue the worker program requests where serial processing in a particular area of the EXEC is required. At the lowest level, the EXEC must queue interrupts and issue input/output service requests on the pre-designated processor. Above this 70 Spring Joint Computer Conf., 1967 basic level, any of the available processors can perform a given task with selection based on the priority of the task currently being executed by the processors. System performance Several methods have been used in an attempt to quantitatively express the additional increase in computational performance afforded by the addition of one or more processors to the basic system. Most of these methods consist of complex mathematical expressions and simulation models or a combination of the two in order to depict all of the factors of the configuration and their comolex inter-relation~ ships. The simple expression presented below is only intended to show the primary effect of the factors. PXI06 • • N =. InstructIons per second (1 ) C+Q+D+E ' Where, P = number of processors C = cycle time of memory (the memory itself) Q = delay due to queues at memories D = delays due to hardware (MMA, etc.) E = time added due to extended sequence instructions and C, Q, D, and E are in microseconds C and D are straightforward factors; E is best gotten from the Gibson Mix or the like, and Q is the most difficult number to arrive at. As an extreme case, consider the I-processor configuration with a 750 nanosecond memory, no queues at memory and no hardware delays. The maximum rate of instruction execution with no extended sequence instructions would be, N = lXl~ ~= .. 1.33xI06 InstructIons per second (theoretical maximum-one processor) The maximum rate of instruction execution with extended sequence instructions would be, lXI06 . , N = .75+.300 = 0.95xI06 InstructIons per second (for one processor) As an example of a 2-processor case; set C= .750 and D = .125. An estimate for E would be about .300. Through the medium of various simulations of the 2-processor case, a value of Q = .050 may be arrived at. Hence, "'IX 1nS N = . 7 5+.05~. ~ ~~+.300 = 1.63x 10 instructions 6 per second (for 2 processor-multiprocessor system) Therefore, Gain for 2nd processor is 1.6g~.95 = 0.71 The value of E may be adjusted through a small range to reflect the type of problem mix. Q is influenced most strongly by the configuration, the I/O load, and the intelligence of the assignment portion of the Executive. Q is also somewhat interdependent with E. System availability Central System availability is assumed to be required on a continuing basis. To achieve this goal modular independency is stressed throughout the system. Each system component is electrically and logically independent. The same provision is made regarding cooling and power supplies. Provision is also made for disconnecting any malfunctioning components without disrupting system operation. This disconnection is initiated either by the Executive System or the operator. The component in either case is first "program disconnected" by the Executive System and then the operator is informed via the system console. System operation will then degrade to a level which is dependent upon the malfunctioning units normal contribution to system performance. The Availability Control Unit (ACU) and the Availability Control Panel (ACP) shown in Figure 3 provide the capability for isolating components from the remainder of the operational system for purposes of test and maintenance. Within this framework two other important features are included. They are: Partitioned System capability, and an Automatic Recovery System (ARS). The ARS is basically a system timer; it is dependent upon the Executive System to reset it periodically (millisecond to several second intervals). If it is not reset, a catastrophic malfunction of the Executive System is assumed, and an initial load operation will be initiated by the hardware using a pre specified portion of the total system. An example of a pre-specified split in the system configuration is shown in Figure 4. For the system shown in Figure 4 the left-hand portion would try to initial-load the Executive Sys- Univac ® 1108 Muitiprocessor System SUMMARY The 1108 Multiprocessor System is a large scale central data processing system which functions equally as well in a real-time, demand processing application as in a scientific batch processing environment. The symmetrical system configuration permits a high degree of parallel processing of tasks by all system processors. Modularity of system components provides for total system availability as well as ease in expansion capability for the future. tern first. If the malfunction still exists (the system timer would trigger again) then the right hand portion of the configuration would attempt the initial load operation. Assuming one malfunction, one of the two configurations will be operational. This then is the Partitioned System recovery concept implementation. The system can also be partitioned manually by selection. The partitioning is pre-specified, and the initiation only serves to activate the pre-selected partitions. MEMORY BANK MEMORY BANK (O-65K) (65K-13IK) 32K MMA i • I E I 32K ~ MMA 0 i' :· .·.n I I I I I I r T IL ___ TT I I : ••• I I I I T ( 198K - 262 K ) I 0 : I I I I I I I I I I PROCESSOR 8 L __ .$-_ ----+- ••• I ~ ~ r I INPUT IOUTPUT CONTROLLER Cf II08A PROCESSOR PROCESSOR ~--erl2;i6 8 ~~l=~---4_-----~-- r •1 CONSOLE ACP .~Lf _J 1 -,~ I 2 AVAILABILITY CONTROL UNIT , INPUT IOUTPUT CONTROLLER e I 3 ~4I8rI2rli II T I r - - - - ...., - - - - - - - - - - CU/S 1 CONSOLE -t-t$!! ---l CU/S • 4 : I ~-8:12Ti6 ~4rerI2Ti6 MPA ~ I ; ~ I ....L I T 1 MPA : i I I I I 0 MMA II08A L_ ~)¢ ~3 CONSOLE ..L 32K I MMA ~ • d 32K MMA I I I •I .. 32K El MMA T I I II08A ~t - .. 0 32K : ! ~ __ -,-l ____ 1 ____ 1 ___ _.1.. _ _ _ _ ..: ..l... _ _ _ ~--8ri2T1i MEMORY BANK ( 131K -198K ) I ! ...J z 0:: 0:: 14 u. All z 50L l- ...J 0 u. I- 0 _ _ _ PROGRAM FITS COMPLETELY ..-WITHIN 541 BLOCKS 30 z (/) III u 4 a: ~ z w ~ ~ 25 3 2 Z III a: 20 PROGRAM FITS COMPLETELY WITHIN 812 BLOCKS III u. w a: 15 I- z III U a: 10 III CL 5 2 4 8 16 32 64 128 256 512 NUMBER OF !i6 WORD) BLOCKS IN LOCAL STORAGE Figure 6 - Local store sizes The replacement algorithms divide into three classes. The congruent mapping algorithm is probably cheapest to implement but makes least efficient use of local store. A modified version of this algorithm will cost more but can improve efficiency. This class of algorithm uses a binary decode of the address to choose the space in local store. The other two classes use an associative search to choose a space. The "first in, first out" algorithm searches the available space to find the space first filled (i.e., longest ago filled). This class of algorithm is based upon only the blocks in local store and does not deal with block history in the backing store. On the other hand, the third class of algorithm deals with reference activity information stored in extra cells in the backing store; e.g., the total number of times a block was referenced for all stays in local store might be stored in backing store, and used whenever the block is in local store on thp replacement algorithm. A B C D E F G DIFFERENT ADDRESSING PATTERNS Figure 7 - Replacement algorithm Program size vs. block transfer effectiveness The usefulness to the CPU of block transfer is clearly a function of the program running in the CPU, if by "program" we mean "address pattern." No other meaningful description of "program" can be correlated to the swapping activity in a block transfer system. The trace of a single FORTRAN compilation illustrates the inadequacy of program size as a determining factor of swapping activity. Figure 8 emphasizes the changing address pattern within a single "job." Time has been sliced into units of 200,000 references. The upper chart indicates the changing size of storage used by the compiler, varying from a low of 6.4 K to a maximum of 32K in the tenth time slice. This chart is detailed to indicate relative storage required by data and by instructions. The Considerations in Block-Oriented Systems Design lower chart indicates the percentage of references not found in local store during the various slices. Note particularly that the greatest incidence of going outside the local store occurs when the used storage size is smallest (during the fifth time slice, when unique words used is nearly minimum). From this and many similar programs, it is concluded that the program size is of second-order importance to the addressing pattern in determining the effectivness of b10ck transfeL 79 core/drum hierarchy. Thus, if a drum is accessed for 1024 words per block, and if the program has only 4096 words allotted for use in core, then 1.9 words will be transferred from drum to core for each word transferred from core to CPU. (32K) 100 LOCAL STORAGE CPU MEMORY OR BACK ING STORAGE 90 o ~ 80 ~ ~ 70 M'_' PHOTOMULTIPLIER TUBE ~~FUTURE LENS 1~':t I ~ .. ~~~~~J PLIER TUBE t, ~, CONDENSER I COMPARATOR ~UTURE DARK ROOM .. l..ttfRT COORDINATES .... ~, t -.J MONITOR CATHODE-RAY TUBIE ........ BEAM INTENSITY ~ YES-NO POLARITYOIF DIFFERENCE "--Jj~ ... f""" PDP-I COMPUTER lREFgNCE • PRI~YJ PHOTOMULnPLIER HIGH VOLTAGE SUPPLY AND CONTROL Photograph digitizing Figure I - "Eyeball" - film reading system The large amount of filmed analog data processed at this Laboratory led to the development of a computer controlled reading device. 5 In its present state As may be seen in the figure, light from the CRT is split by the pellicle and directed toward both a primary and a reference photomultiplier tube. This light is focused against a film in the primary holder *Work performed under the auspices of the U.S. Atomic Energy Commission. 103 104 Spring Joint Comper Conf., 1967 and a neutral density filter or nothing in the reference holder. Light passing through is collected by each condenser for its respective photomultiplier. Future plans call for the log-difference of the photomuitipiiers to be sampied by an analog to digital converter and made available to the computer program. It was originally planned that this scheme would be used to determine gray shades in the digitized film. While technical difficulties with this plan are being looked into, gray scale determination is made by a programmatic variation in the beam intensity of the eyeball CRT. The photomultiplier outputs have been closely matched, so that for a single CRT beam intensity the eyeball output is a simple "yes - no," reflecting the polarity of their difference. Eyeball sensitivity is a function of the high voltage to the photomultipliers and, more importantiy, of the relative voltage between the two. The CRT coordinates as well as the beam intensity are under program control. The eyeball CRT has 4096 by 4096 addressable points over a 3-inch square. Beam intensity is variable through eight equal voltage levels. For these experiments only five could be used satisfactorily. The latest photograph digitizing routine follows the flow indicatetl in Figure 2. Once the operator has positioned a film and set the photomultiplier voltage to within a known tolerance, a prograrpmed scan sweeps the entire face of the eyeball CRT. This and subsequent eyeball operations are visible to the operator on a 16-inch monitor CRT. During the sweep a bit pattern of eyeball yes - no responses is stored in memory. The yesses are replayed for operator observation. The operator adjusts the reference with respect to the primary voltage until he is satisfied that the yesses cover what will be the reproduction's darkest areas. (Because positives or negatives can be equally well used and can produce either positive or negative reproductions - polarity is unimportant, i.e., yes may be substituted for no, and lightest for darkest). When the operator signals his satisfaction, the bit pattern is written as a single record on magnetic tape. The beam intensity is then reduced to the next lower level, the scan repeated, and the response pattern written as a second tape record. This sequence is repeated through the remainder of the lower beam intensities being used. Resolution is necessarily dependent upon the mesh chosen for the programmed scan. A square array employing every sixteenth point was arrived at as a compromise between photographic detail on the one hand and time and storage on the other. It was found that the quality of the output picture was greatly im- proved by shifting the response pattern over and up fourth point. As on the scan, the playback pattern was shifted over and up for each subsequent record. At that time the reference coordinates were restored. The computer time for digitizing a single film is less than a minute and can probably be reduced by a factor of two. The storage requirement is under a third of a million bits and can also be appreciably reduced by mapping out backgrounds or areas of no significance. SCAN AT 16 POINT INTERVALS ~"TO RIGH':', 10':'':'0;'; TO'l'Cf' SAY[ PATTERN Of'RESPONSES Figure 2 - Flow of photograph digitizing routine Photographic reconstruction Although photographs were recreated for test purposes on the digitizing computer, plans for integrating the pictorial output with text made it advisable to use faster equipment with character generation capabilities included in the hardware. Accordingly, a CDC 00-80 was used for the outpuLti It is interfaced to an IBM-7094 through a direct data channel. For film recording, the 00-80 employs a 5-inch CRT with 1024 by 1024 points across a square a little under two and one-haif inches on a side. Because there (lre four times as many points in both directions Digitized Photographs For iHustrated Computer Output* on the eyeball CRT, the reconstruction of film digitized at every sixteenth point is determined at every point. As on the scan, the playback pattern was shifted over and up for each subsequent record. After commanding the plotting of a header frame and a film advance, the reconstruction program reads the digitized photograph from magnetic tape a record at a time. Following each read, all points corresponding to the pattern of yes responses are displayed. All records are displayed at a single intensity and on a single frame. The program uses less than 10 seconds of 7094 time. Half and quarter size pictures were also recreated by displaying the response pattern with the increment between points reduced to two and one points respectively. While a great deal of work is still to be done to achieve truly fine quality at low cost, the present output is satisfactory for many internal uses. It is probable that even a presentable Xerox copy may be attained by a proper pre screening of the negatives. The exaggerated flatness in shade is due largely to the use of an extremely high contrast film previously .chosen for its good line reproduction characteristics. CONCLUSIONS The experiments indicate the technical feasibility of including photographs with computer output. Some results are shown in Figures 4 through 6. Figure 3 is a print of the negative which was digitized for use in this paper. (The young lady is replacing the filter holder on the reference side of the eyeball.) Figure 4 is the Xerox output at full size. Figure 5 is a print made from the same 00-80 film. Figure 6 is a print made from a OD-80 film in which the text shown was included along with__a_ half size reconstruction. Figure 4 - Xerox output EYEBALL Figure 3 - Print of digitized negative To date, all negatives have been on 4/1 x 5" cut film. Plans in progress call for the use of 35 mm rol1 film. This change should eliminate most of the set up time without seriously affecting resolution. 105 liliiii EYEBALL Figure 5-Print of DD-80 film 106 Spring Joint Computer Conf., 1967 ACKNOWLEDGMENTS REFERENCES I would like to thank George Gielow for requesting a study of this nature, Ervie Ferris for his suggestions and help with the "EyebaU," and Sidney Fernbach for his support. M P BARNETT 2 3 4 Pece~! ,t':des ~o~e ~ e~ r:-:cde :o,.,c"c :he Oyton', :ec e c : : ; [, 9 0 I P': r. tee rr.o e' 0:, Qr C e ¥ e (, rr,o" e c \oJ of''' e (, t ';; IOtlo'c the ger,e-o::or 0 1 c yO: ; t ~ p ~ ; r.t : r, 9 - t ~ P eo', ~ : 11'" - e so: ~ t : 0 r. C C : ",0 Ce - 'c. (:.;:lB. He 'e o'e desc ~; bee some e'::le' 'rr.er.:s :r. d :9 t- • : z: rig o~oto~"opr.s ."Ii-:; c!- ' s:~~e?:.;e~::¥ ~Q~ be c~rrb fec ,"". ~ei~ . . al !(,fo~rr:c:!or. cr,,: corr,Q.:er ee'tee: lor cc:noce--C:i t:.;Oe outp,,:. Figure 6 - Print of half size reconstruction with text D J MOSS D A LUCE K L KELLEY Computer controlled printing 5 6 Proc 1963 Spring Joint Computer Conference Spartan Books Washington DC Vol 23 263-271 1963 M V MATHEWS J E MILLER Computer editing typesetting and image generation Proc 1965 Fall Joint Computer Conference Spartan Books Washington DC Vol 27 389-398 1965 R J MCQUILLAN J T LUNDY Computer systems for recording retrieval and publication of information Proc 1965 Spring Papers and Presentations of DEeDS DECUS Maynard Mass pp 61-91 1965 V C SMITH 3600 publisher CIC Report 06-001 LRL Livermore 1965 R W CONN R EVON HOLDT An online display for the study of approximating functions JACM 12 No 3 326 1965 A CECIL G MICHAEL DD80 programmers manual LRL Livermore 1963 Mathematical techniques to improve hardware accuracy of graphic display devices by CLOY J. WALTER Honeywell Inc. Waltham, Massachusetts INTRODUCTION accuracy of a computer graphic output device despite its hardware limitations? This developmental research problem involves discriminatory analysis, differential equations, and simulation. Methods are needed to predict the location of an error as a function of position on the screen of a Cathode Ray Tube (CRT). Compensation must be made for this error. If the errors in a CRT electron beam can be corrected before the beam is generated, then at least one of the vital questions stated earlier can be answered affirmatively. Mathematical techniques can be used to improve the accuracy of a computer graphic output device. The problem Background of the problem The contribution of scientists pioneering the design and construction of electrical apparatus has been recognized and valued by our society. Equipment ranging from toasters to air conditioners to electrocardiographs have been widely implemented and regularly used. People have viewed each new apparatus independently and sought to derive maximum benefits by judicious application of its potential. Large scale digital computers were invented scarcely a decade ago and offered new possibilities for application of electrical design. People accepted a computer as another independent electrical apparatus, i.e., a computer was regarded as an entity. Computer peripheral devices were developed and the importance of a processing system was recognized. Although several units were coordinated to satisfy a specific requirement, no attention was given to techniques of interaction/adjustment/response among devices. Cannot a peripheral device be regarded as a governable, adjustable unit? Or a main processing unit as a sense/response mechanism that can accept/transmit information to/from elements within the system as well as control action instigated by the preassigned specific requirement? Can a computer and a peripheral device be considered as a single unit? If a computer and a peripheral device can be considered as one unit, can the accuracy and the reliability of the peripheral device be improved by mathematical techniques? Or can improvements in electronic devices only be achieved by modifying electrical circuitry or hardware? For example, can mathematical techniques be used to improve the Reason for research Operations performed by computer systems could be greatly expedited by an application of techniques that require an accurate computer graphic output device. Such a device is not available. The purpose of this research was to give detailed consideration to the development of a technique for converting computer digital data into accurate film image representation. Immediate application of graphic data processing to solve a variety of problems is both physically possible and economically desirable. Graphic data processing can be effectively applied in mathematics, engineering, banking, education, communications, medicine, management information systems, programming, and many other fields. Barriers to rapid development of graphic data processing include the failure to fully develop graphic devices and to recognize benefits that can be derived from applications involving such devices. Two recent developments make the use of computer graphic devices economically feasible. Time-sharing 107 108 Spring Joint Computer Conf., 1967 enables a number of customers to utilize a single computer in a manner such that apparently simultaneous processing results. Remote data terminals permit geographically distributed installations to receive the benefits of rapid data .processing as though computers were located at each facility. Attempts have been made to improve the accuracy of computer graphic devices. New and improved circuits, equipment for precise voltage control, improved tubes, and other electro-mechanical features have been innovated. Engineers, system designers, progralJ1mers, and mathematicians recognize the desirability and ultimate necessity of providing a data processing system that accepts either digital data input or graphic input and provides accurate graphic output. Several universities and companies have developed graphic input/output devices. These devices are an advancement in the computer field but lack the degree of accuracy required for certain engineering design drawings. The aim of this research was to contribute to the advancement of the computer and electronics fields by demonstrating that mathematical techniques can be applied to increase the accuracy of an electronic device. This goal was achieved. Such techniques were applied to General Dynamics' Stromberg-Carlson 4020 microfilm machine. Accumulated results show mathematically that a visual display system can produce accurate images, i.e., that an inaccurate computer peripheral device can provide accurate data output. The development of an accurate computer graphic device portends significant changes. The throughput time for product design and specification and subsequent engineering modification will be greatly reduced; new vistas will open in the field of publications; new techniques will be available for the rapid production of animated films that permit the simulation of many situations. Most importantly, graphic data processing can be intimately associated with on-line systems, thus adding new dimensions to man/machine interactive systems. Hopefully, the conceptual ideas of this paper will assist the best minds in the computer industry in a reexamination of the computer-peripheral device relationship. The result should be a faster rate of progress in the computer field than we have today. Statement of the problem The problem of producing an accurate image with a computer-controlled CRT was assumed to be a fundamental process control problem or a process mode1 buiiding problem. Specific questions to be answered This research was conducted to formulate bases for answers to the following questions: 1. Can a computer be used to derive equations that can predict the locations of errors in output of computer peripheral equipment? An affirmative answer to this question implies that: (a) Errors transmitted by an output device can be predicted. (b) Mathematical techniques can enable the computer to supply modified, seemingly inaccurate data to its output device. If these implications are valid, then an inacclIrate peripheral device can, in turn, provide accurate data output. 2. Are the errors of linearity predictable in both X and Y directions? Linearity of the SC 4020 is reported as ± one percent. Prediction and subsequent correction of such variation should be possible. Summary of related research Many large companies and universities are engaged in computer graphic research. Interest in Engineering applications is especially prevalent. A list of aspects currently being investigated and details concerning research related to Engineering applications follows. 1. Automatic design systems 2. Programming systems and routines 3. Microfilm updating techniques 4. Improvement of accuracy by hardware advancements 5. Development of character readers 6. Console instrumentation 7. Logical arrangement of the console 8. The quality, flicker rate, modification timt::, drawing ability, and pointing ability of CRT units. 9. Production of hidden lines in perspective drawings 10. Development of half tones in CRT images 11. Development of color CRT images 12. Introduction of motion 13. Coupling and translation of data from one form to another form 14. Getting the structure of an image into the computer 15. Logical arrangement of drawings 16. Adequate abstraction in graphics (models are needed) 17. Engineering applications (a) Sandia Corporation and the Thomas Bede Foundation have jointly developed an Automated Circuit Card Etching Layout Program Mathematicai Techniques To Improve (ACCEL). ACCEL was developed to design printed circuit boards and to produce drawings for their construction. The drawings are produced on an SC 4020 CRT plotter. 1 Sandia is currently trying to design and build a mosaic camera to improve the accuracy of the SC 4020. 2 (b) Bell Telephone Laboratory is using an SC 4020 and an IBM 7094 digital computer to produce animated films- The coordinates of points are recognized by the computer and used to position the electron beam of a CRT. A picture is traced on the face of the tube. A 16-mm camera, also under the control of the computer, photographs the surface of the tube while the picture is being traced. The coordinates determined by the computer are automatically connected to produce the desired film. Applications are in the areas of satellit'e stability and orbit presentation, physical motion of objects, and display of the development of three-dimensional objects. 3 (c) Rand Corporation has developed the RAN D Tablet, which has been operational at Rand since September 1963 and has recently been installed for research purposes at several institutions. An electric pencil is used to write on a ten-inch by ten-inch conductive sectored tablet. The tablet is connected to a computer and to an oscilloscope display which provide a composite of the current pen position and meaningful track history. The Rand Corporation is currently developing a method by which characters can be recognized as they are drawn on the tablet, as well as on the oscilloscope display unit. 4 (d) Stromberg-Carlson Corporation is continuing to develop its microfilm printer-plotters for additional engineering applications. More than forty operational systems are translating computer-generated data into drawings, annotated graphs, etc. The system converts binarycoded input signals into images on the face of a shaped-beam tube. 5 (e) MIT's Lincoln Laboratory has developed SKETCHPAD. SKETCHPAD deals primarily with geometry. Sketches are drawn on a CRT with a light-sensitive pen or an electronic stylus. Freehand irregularities are automatically transformed into neat lines. SKETCHPAD can be employed to animate a drawing or to rotate parts of a drawing at high speeds or in slow motion so that linkages may be studied in action. Electric-circuit diagrams can be animated to show 1£\£\ IV7 current flow. Other operations are available. SKETCHPAD has three-dimensional display characteristics. Front, plane, and side views as well as a rotatable perspective view of an object can be presented. 6 Roberts of MIT generates views of solid three-dimensional objects with all hidden lines removed. 7 General Motors and IBM have cooperated in the development of the Design Augmented by Computer System (DAC-I). An electrical probe contacts a resistive X -Y coding on the front of a Scan CRT, which has been developed by IBM. The X-Y voltage pulses are transformed by the computer into the coordinates of the spot under the probe. After the computer determines the coordinates, an X appears on the screen under the probe. The operator may write or draw on the CRT. Three CRT's are involved: a Scan CRT for automatically converting drawings into digital coordinate information, the console ten-inch CRT with the resistive probe input for drawing, and a CRT from which the display is photographed and recorded on microfilm. (f) The Scan CRT for digitizing drawing information has a dynamic threshold adjustment which is set by the computer as each line is being scanned and digitized. The output of the DAC-l CRT at General Motors is ten inches in diameter and has a resolution of 1: 2000 obtained by a daily calibration, correction and adjustment procedure. The DAC-l output CK I' has a rourteenbit drive. After calibration and correction, the accuracy is eleven bits. DAC-l personnel have developed a drawing control system. General Motors uses the system in designing various parts of automobiles. (g) The Computer-Aided Mechanical Engineering Design System (COMMEND) is a problemoriented system and works equally well in the design of a card punch, a printer, a document transport, or similar machines. The primary objective of COMMEND is to assist design engineers with high speed computations and to provide large memory capacities by means of a computer. The program determines a mathematical model of the requirement and performs tolerance, dynamic, and wear analyses. The computer determines a sensitivity coefficient for each dimension and tolerance so that critical situations are recognized by the engineer. The system reduces human error in design calculations and data handling. All 110 Spring Joint Computer Conf., 1967 analyses are documented and stored for retrieval purposes. s (h) Douglas Aircraft has a graphic research program to assist in design, documentation, manufacture, and test of eiectronic hardware. A major research goal is to solve wiring interconnection problems. A three-level wiring program has been developed. The first level petforms chassis wiring from point to point and specifies size and length of wire, number of wire wraps that can be mounted on a given terminal, and associated documentation. The second level petforms harness wiring (branched wiring assembly), and the third level designs cables. In the cable program, the computer first tries to satisfy current requirements by using a previously designed cable or its dosest matching subset. Douglas uses an SC 4020 to show wire build-ups on wirewrapped pins. Personnel monitor this operation. Plans for expansion involve generalization of programs and program modules to allow for more efficient programming (less reprogramming for new requirements) and to facilitate more efficient program organization (master control program module sequence, per run).9 (i) The Norden Division of United Aircraft Corporation has developed a computer-aided program to design integrated circuits. Much of their effort has been directed toward improved methvds for synthesis, analysis, layout, and packaging of electronic circuits. Circuit design and connectivity are inputs to a computer, which petforms a pattern and diffusion analysis of the data. The size and shape of the mask for each part as well as routing and wiring information is determined. This user-oriented system describes the circuit node by node. Engineers determine values and tolerances. The Norden program utilizes a designer's initial thoughts about parts layout but completes the layout automatically. The system currently uses a computer-controlled plotter for graphical display and for automatic preparation of mask artwork. Plans for future developments include on-line operation with graphical display and manipulation of circuit layout patterns on a CRT display with a light pen. 10 (j) M IT personnel have established projects MAC (Multiple Access Computer) and AED (Automated Engineering Design), and offer their automated design tapes to the general pUblic. MIT is currently deveioping AED Graphics. This graphic system uses an Algorithmic Theory of Language which requires no distinction between verbal language communicated through a typewriter keyboard and graphical language communicated by means of push-buttons and a light pen. This graphic system is called Computer-Aided Design Experimentai 1 ransiator (CADET). CADET permits the user to apply verbal or graphical languages of his choosing. 11 Project personnel extend an invitation to industries: Send a representative to Boston to study the automated design project and participate in its design and development. The cost to a company is the salary and travel expense of its representative. I n return, the company acquires the latest design automation information available at MIT. Computer-controlled drafting machines can be obtained from Gerber Scientific Instruments Company, CalComp, U niversai Drafting Machine Company, Benson-Lehner, EAI, IBM, G. Coradi Ltd., Dennert and Paper (Aristo-Werke), Sheffield (Ekstrom-Carlson), Visual Inspection Products, and others. The machines can be used for large-scale drawings. The time required to produce a drawing by means of a computer-controlled drafting machine normally ranges from thirty minutes to ninety minutes. Visual display systems can be obtained from Stromberg-Carlson, Straya Industries, Benson-Lehner, Data Display, IBM, ITT, GE, RCA, Bunker-Ramo, PhiIco-Ford, Sanders Associates, Raytheon, and others. It has been established that displays and graphic input-output devices, virtual1y undeveloped as recently as 1963, will constitute approximately eleven percent of the information processing equipment cost for a typical manufacturing company by 1973. 12 Computer graphics usually involve a CRT, a light pen for drawing and manipulation of the image, an associated console, and switches for control of frequently-used subroutines and macro instructions. This peripheral equipment is linked to a computer. Communication through graphics is inherently structural; it is reasonable that a truly fundamental effort toward implementation of man-computer conversation is the most important step taken in computer technology.ls Graphic systems are particularly suited to design tasks because of their capability to shorten cycle time and facilitate change. Graphic data processing can rapidly provide accurate designs. Graphic systems can translate graphic and alphanumeric information and can process words, tables, and equations as well as graphs, drawings, and charts. Until recently, these Mathematical Techniques To Improve tasks appeared to be beyond the capabilities of a computer. Computer graphics will continue to expand. Handling of information graphically in computer systems will be as normal in a few years as handling of characters is today. 14 Experimental procedure Background The major problems encountered during attempts to improve the accuracy of the SC 4020 visual display system were: 1. Development of a procedure to accurately measure errors. 2. Identification of a stable film base that did not change dimensions as variations occurred in the environment. 3. Determination and isolation of causes of deflections. 4. Determination of mathematical functions to correct the CRT display. 5. Dynamic focus. 6. Tangential errors. 7. Interaction errors. The major causes of problems encountered during attempts to improve the accuracy of a visual display system were: 1. Astigmatism. 2. Pincushion correction. 3. Effect of the earth's magnetic field. 4. Exponential stretch of the film. 5. Quanta noise (error due to the size of the raster). Preliminary investigations Preliminary investigations led to the supposition that if errors in the SC 4020 system could be measured accurately, then mathematical techniques could be developed to predict the locations of errors on the CRT screen. Predictable errors could be corrected. Discovery that a microfilm image could be enlarged to exact dimensions led to recognition that designing, programming, and microfilming a standard matrix test pattern should be possible. The resulting image could be enlarged and the test pattern could be measured. Development of a standard calibration pattern A standard matrix test pattern which covered the CRT screen was designed and seemed to be the most valuable technique to use in checking for errors in orthogonality (skewness) and in checking the film transport mechanism. Collection of data The appendix contains pictures of the equipment used in this research. Data for the study was collected by the following procedure: 1. The magnetic tape labeled "4020 Calibration 2. 3. 4. 5. 6. iii Pattern" was processed at least twice daily on the SC 4020 machine. Test patterns were run immediately before and after the regularly scheduled SC 4020 operations. The test pattern was run both before and after any adjustments were made to the SC 4020. Thirty-five millimeter film was used. A note indicating the date and time of the test was attached to the exposed film. The film was developed by a microfilm laboratory. The microfilm image of the test pattern was enlarged and the coordinates of each symbol were measured by a Ferranti machine. Mathematical analysis and programs Producing an accurate image with a computercontrolled CRT was assumed in this study to be a process model building endeavor initiated to solve a process control problem. A process simulation analysis was performed. Many processes can be represented by displays similar to the following diagram: Controlled Variables ~ C Uncontrolled Variables U ~ B rocess S ~ State Variables Process parameters which can be adjusted are classified as controlled variables. Process parameters which cannot be adjusted are regarded as uncontrolled variables. Variables which are the result of process action on the controlled and uncontrolled variables are referred to as state variables. The controlled variables in the model developed for this research were the coordinates of points to be accurately positioned by the SC 4020 display system. The coordinates could be changed before they were entered in the digital to analog converter of the SC 4020. The uncontrolled variables were the parameters associated with the hardware of the system. At any given time, the uncontrolled variables which affected CRT performance could be measured. The dynamic state of a process control model with n state variables can be characterized by a system of n differential equations. One equation is required for each state variable. This implies that n equations of the following form can be used. dS i = f.(SI ••• Sn, Cl, ... c , Ub ... up) m dt l ' for i = 1, n, where m = the number of controlled variables and p = the number of uncontrolled variables. 112 Spring Joint Computer Conf., 1967 -------------------------------------------------------- The following notation can be used. Define S, C, and U as follows: S C U sn} c m} ••• up} {Sb S2, ... {cj, c2 , {U}, U 2 , ••• Then S = F(S, C, U) where the dot above S indicates differentiation with respect to time. Changes in either controlled or uncontrolled variables can produce changes in state variables. Corrective action may be required. Such corrective action is called system control. In practice, only two control policies exist: feedback control and feedforward control. Perfect feedforward control requires a perfect process model and precise measurement of uncontrolled variables. Feedback control does not provide corrective action until after an error in a state variable has been observed. Since one aim of this research was to correct errors in the CRT electron beam before the beam was generated, a feedback control design could not be employed. A system was developed for feedforward control. In this research, the state variables S were measured and compared to the theoretical or desired condition ST' The error E defined by the expression E = ST - S was determined and routed to a statistical computer program. The output of this program was applied to the controlled variables C and significantly reduced the magnitude of E. System inaccuracy due to uncontrolled variables was measured as described in the section of this paper entitled "Collection of Data." The measurements of inaccuracy were used in statistical programs to simulate posIUonmg ot the coordmates and predIct system performance. The output predictions governed manipulation of the controlled variables C to produce the desired state variables S. I n summary, the model was a feedforward control system developed to prevent deviation of actual from theoretical in positioning performance of the CRT. Computer process control models were derived from a multiple regression analysis of error measurements. Such statistical models provided an explicit description of the process and were modified when deviations in positioning occurred. The model parameters were adjusted periodically as a result of comparisons of current model behavior to actual process behavior. A multivariate prediction computer program was used to make these comparisons. Functional relationships between final and initial conditions of the process were determined. A regression analysis was peliormed on the output data. The analysis revealed independent variables which most significantly reduced the errors. Errors in the CRT display were revealed to be systematic in nature. Recognition that such systematic errors must be correiated throughout the caiibration matrix led to the supposition that the errors could be predicted and subsequently corrected. Multiple regression analysis Flow charts, statistical methods, and computer programs used in this research are discussed in this section. Techniques of multiple regression are well known; no attempt is made to present a complete discussion of regression analysis. Some basic discussion of multiple regression is presented to clarify differences between regression techniques used in this research and conventional regression techniques. Multiple regression analysis is used primarily to obtain the equation which best fits a given set of data. The equation is typically of the form: y = bIx 1 + b2 x 2 + b3x3 + ... bnx n + a. (1) y is commonly referred to as the dependent variable, the criterion variable, or the predicted variable. {Xi: i = I,n} is the set of variables of prediction or the set of independent variables. Classification of these variables as independent does not imply that the variables are uncorreiated. {bi: i = l,n} is ihe set of coefficients of the regression equation. a is a constant. The solution of a particular equation may be interpreted as the value of the coefficients for a specific data sample. The standard error of each coefficient is calculated. These calculations provide a measure of the reliability of the coefficients and are the bases for inferences regarding the parameters of the population from which the data sample was obtained. Multiple regression procedures were employed in this project but were adapted to fit nonlinear equations of the form: y = bIz I + b 2z 2I + b 3 z t z 2+ ... + bnfnCzbz2, ... zn) + (2) Equation (2) can be obtained from equation (1) by a process of transgeneration where Xl =Zl x2 = Z2 j X3=ZlZ2 A conventional stepwise multiple regression analysis computer program was modified for use in this research project. The original program was designed by Mathematical Techniques To Improve 113 M. A. Efroymson. 15 MUltiple linear regression equations were derived by the computer in a stepwise manner as follows: Y I = a+blx l Y 2 = a'+b'lx l +b2X2 Y 3 = a" + b" IX I + b' 2X2 + b3x3 If the addition of Xj contributed significantly to error reduction, this variable was added to the regression equation. New coefficients were calculated whenever a variable was added. In general. each succeeding equation contained a new variable. The variable which achieved the greatest improvement in the fit of the equation to the data sample was selected. This variable produced the best estimate of the criterion variable as evidenced by the sum of the squares of the errors. It possessed the highest partial correlation to the dependent variable partialed on the variables which had previously entered the regression equation. It was also the variable which had the highest F value when added to the equation. The output of the computer program showed: 1. Sum of each variable 2. Sum of squares and cross products 3. Residual sums of squares and cross products 4. Means and standard deviations 5. Intercorrelation matrix At each step, the output showed: 1. Multiple R 2. Standard error of the estimate 3. Constant term 4. For each variable in the regression (a) Regression coefficient (b) Standard error of the coefficient (c) F to remove 5. For each variable not in the regression (a) Partial correlation coefficient (b) Tolerance (c) F to enter In the stepwise procedure, the variables were divided into disjoint sets: Xl = {xu, ... x IQ } X 2 = {X21' ... X2r} where Xl was the set of independent variables in the regression equation and X 2 was the set of independent variables not in the regression equation and all dependent variables. If a variable was no longer significant, that variable was removed before another variable was added. Only significant variables appeared in the final regression equation. The symbols used in the subsequent discussion should be interpreted as follows: E2, E2 is differentiated partially with respect to each N = the number of cases of data or the number of observations m = the number of variables (input and trans- b i . Normal equations are then obtained by equating each partial derivative to zero. The normal equations can be written in the following concise form: generated variables and the dependent variable) Xip = the pth value of the ith variable X mp = Yp = the pth value of the dependent variable Xi = the mean of the ith variable Sij = the residual sum of squares and cross products of the ith and jth variables, i.e., Sij = N L (Xip - Xi) (Xjp - Xj) p=1 = VS;; (This is not the standard deviation.) rij= the correlation coefficient between the ith and jth variables. The ordered array of the m2 coefficients forms the simple correlation matrix r. Cij = the element in the ith row and jth column of the inverse matrix of the matrix r N min , N max = selected independent variables V min = the increase in variance obtained by deletion of the variable N min from the regression equation O"ii V max = the decrease in variance obtained by addition of the variable N max to the regression equation b i = the estimated value of the coefficient of the ith variable Sy = the standard deviation of the dependent variable Sb = the standard error of the coefficient of the i ith variable yp = the predicted value of the dependent variable for the pth observation Dp = the discrepancy between actual and predicted values of the dependent variable on the pth observation, i.e., Dp = yp - ~ F I = the F value established as the criterion for entrance of a variable in the regression equation (for this project, F I ~ 2.5) F2 = the F value established as the criterion for deletion of a variable from the regression equation (for this project, F2 ~ 2.5) m-l Ep = yp - Y- L bi (XiP - Xi) for p = I, N i=l To determine b h i = I, m-I, which minimize 114 Spring Joint Computer Conf., 1967 N L y) (XiP - Xi) (yp - p-t The set of m-l simultaneous linear equations in b i can be solved by several methods. In this research, linear transformations were applied to the partitioned matrix illustrated as follows: I S H' I M= H K D -I B C B was a one-column matrix. D was a one-row matrix. K was a constant illustrated as follows: K= ~ (yp - y)2 = ~ (x mp - xm)2 where Xmp = yp. I was the identity matrix. H was a one-row matrix illustrated as follows: (H)tj = hlj = (Xjp - Xj) (yp - y) for j = 1, m-l. h' jt = hlj defined the elements of the matrix H'. The element Sij of S was the deviation sum of squares and cross products as defined previously. Regression coefficients were entered into the B matrix. The D matrix was obtained by first transposing the B matrix and then multiplying the new matrix by -1. That is, d il = -b li . The juxtaposition of the submatrices S, H, H', and K formed an m by m matrix and could be partitioned in any manner. This m by m matrix was normalized and became an intercorrelation matrix. As the calculation proceeded, the S matrix was inverted. The D matrix replaced the H matrix. The B matrix replaced the H matrix, and the C matrix replaced the S matrix. The C matrix contained the inverse of the portion of the S matrix which corresponded to the variables in regression at that time. Correlation coefficients needed at various steps in the computation were extracted from the M matrix. As the addition of variables proceeds, the elements of S become partial correlation coefficients; because all included variables being held constant. The computer initiated the regression procedure by examining the intercorrelation matrix and selecting the independent variable which had the highest correlation with the dependent variable. An F test was made to determine whether the contribution of the selected variable to the prediction of the dependent variable would be significant. The determination was made by examining the reduction in the standard error of the dependent variable. If the reduction would be significant. i.e .. above an established F level, then the I program retained this variable. The major steps performed by the computer are described in detail within the discussion of system flow charts. Essentially, * the computer program proceeded as follows: 1. The transformations were generated. 2. The sum of each variable was accumulated. 3. The raw sum of squares and cross products were calculated. 4. Deviation sums of square5: and cross products were calculated. Each eleraent of the intercorrelation matrix was calculated. 5. Means and standard deviations were determined. 6. The simple correlation coefficients were calculated by evaluating the following equation: As an alternate procedure, a raw score formula could have been used. 7. The estimated population value of the standard deviation of y was obtained as follows: 8. The estimated population value of the standard error of the estimate for y was determined as follows: a-est.y =.4- yvT=""W ~N -~ - q I where q was the number of variables in the regression equation at the time of the calculation. 9. The coefficient b i was determined by evaluating the following expression: 10. The standard error of b i was determined by evaluating the equation: The flow chart follows. At certain branch points in the chart a finite number of alternative statements '" Although the output conformed to the following steps, the program did not foliow precisely all formulas shown. Mathematical Techniques To Improve are specified as possible successors. One of these successors is chosen according to criteria determined in the statement preceding the branch point. These criteria are usually stated as a comparison of a specified relation between a specified pair of quantities. A branch is denoted by a set of arrows leading to each of the alternative successors, with each arrow labeled by the comparison condition under which the corresponding successor is chosen. The quantities compared are separated by a colon in the statement at the branch point. A labeled branch is followed if and only if the relation indicated by the label holds when substituted for the colon. Block A, Block B, and Block C: The content IS self-explanatory. Block D: The simple intercorrelation matrix was obtained by normalization of the residual sums of squares and cross products. Block E: Procedures to selest the variable to be added to the regression equation were initiated. Block F: The size of ~i was checked; this check reduced the probability that an independent variable which was a linear combination of a variable more highly correlated with the criterion variable would enter the regression equation. A value of .001 was assigned to Tol. 3 1 V max = Vi J START am 1 b'1 = 8y8 6i L IVi I Vcli 11 ~ IVmin I < Vmin = Vi M Nmin = i N 0 m-l I Q 6 b o =xn - bi xi i=l IV min I ¢/rmm F2 < Input Data K = number of sets of data or number of observations m = number of variables xip = pth observation of the ith variable i=1,m-1:p=1,N E = ST - S = X mp = pth observation of dependent variable p = 1, bim ;;-: K ~ A Nmax bi p I 115 F K Nmin ¢ ¢ + 1 ~ F1,F2 = F values for tests of significance Transformations Performed 6 5 K Sums of variables = '" xip for i ~ 1, m p~1 Sums of squares and cross products = B K ~ xip Xjp for i = 1, m; j = i, m "i = V Sii for i ~ 1, m p=l 1 Mean = Xi = ~ xip for i = 1, m K D bi E for i = 1, m; Sijl"i"j for i = 1, m - 1: j - i - 1, m I Residual sum of squares and cross products = c qj =0 (j = 1, ... , m - 1) "min ~ "'- Vmin = Sy = "n Jrmml <'> Kmin j - 1, m i = 1 I 4 _I 0.0 = 0 116 Spring Joint Computer Conf., 1967 F G H 8~----~( ~V· . 0 " 0) / s .r------_.--.-------------" S "- v max (¢ - l)/(rmm - Vmax) : .1.'1 T k ~ I = N max ¢=¢-11 5 u II Calculate a new matrix akk aij - aik akj 1. ai" (new) = J akk for i f. k, j f. k 2. aik (new) = - aik/akk for i 3. akj (new) = akjlakk for j f. f. k, j = k k, i = k 4. akk (new) = l/akk 8·1~----r,------" I v m-l Yp (pred.) D = bo + = Yp ~ i=l b i xip - ~p STOP Block G: The quantity Vi was calculated. Block H: The sign of Vi was determined. Vi positive implied that Xi was not in the regression; Vi negative implied that Xi was in the regression at the time of the test. Block I and Block J: The variable Xi which would cause the greatest reduction in the variance was selected. Block K: The standard error and the regression coefficient were calculated for each variable currently in regression. Block L and Block M: The Xi which contributed the least toward reduction of variance was identified. Block N, Block 0, and Block P: The content is self-explanatory. Block Q: The variance contribution of each variabie was measured; insignificant variables were deleted from the regression. Block R: The content is self-explanatory. Block S: A test determined whether the variance reduction obtained by adding Xi to the regression would be significant. Block T: If Xi would contribute significantly, the variable was entered into the regression equation. The number of degrees of freedom was reduced by one. Block U: A new matrix was calculated and replaced the original matrix in the computation. The elements were normally entered into the I matrix. I was generated except for the elements in the row and column corresponding to the subscript of the variable added to the regression. The new matrix was computed by the following procedure: 1. au = rij when both Xi and Xj were not in regression. 2. au = bij when Xj was not in regression and Xi was in regression. 3. au = dii when Xi was not in regression and Xj was in regression. 4. au = cij when both Xi and Xj were in regression. The C matrix was the inverse of the r matrix for all i's andj's in regression. Block V: The predicted values of the dependent variable were calculated. The computer determined the actual value of the dependent variable, the predicted value of the dependent variable, and the difference between the two values, Cross validation The results of the multiple regression program show how the regression equations performed for the data sample from which they were derived. The way such equations perform for an independent sample is more important. Major concerns of this research included not only how well regression equations predicted for the particular sample from which they were derived, but also how well and for how long the equations provided reliable predictions related to new sets of data. The correlation between actual and predicted errors serves as an index of the accuracy of the prediction determined by the equation derived from the same data sample. This correlation cannot be used to assess the accuracy with which this same equation can be applied to a different data sample. To assess the accuracy with which a regression equation derived Mathematical Techniques To Improve from one set of error measurements can be applied to another set of error measurements not satisfying the conditions of the regression model, it was necessary to use an index based on actual errors of etimates (i.e., y - y).16 Cross validation procedures for this research were contained in a multivariate prediction computer program. The final regression equation was applied to a new sample of error measurements. Values of the dependent variable were predicted by the computer. The accuracy of these predictions was evaluated by computing the product moment correlation coefficient (Pearson r) between the predicted and actual values. The regression equations used in the multivariate prediction program were derived from data collected daily throughout one week. These equations were applied to predict the errors of a new data sample. The results of analysis This research project provided the bases for responses to questions proposed earlier in this paper. Several questions which arose during the research project were successfully answered. The aim of this research was to demonstrate that mathematical techniques can be applied to increase the accuracy of an electronic device despite hardware limitations. This goal was achieved. Such techniques were applied to the SC 4020. Accumulated results show that the SC 4020 can be used to produce accurate engineering artwork, i.e., that an inaccurate computer peripheral device can provide accurate data output. This affirmation implies that a Cathode Ray Tube (CRT) connected to a computer can function as an accurate high speed artwork generator. Results of this research indicate that artwork generatioE by a visual display system is possible. Location accuracy of ± .004" for 8" x 8" artwork and ± .0025" for 5" x 5" artwork can be obtained. Equations were derived to predict the locations and magnitudes of errors in the output of the SC 4020 system. Errors transmitted by the CRT were predicted. A computer supplied modified, seemingly inaccurate data to a peripheral device. Accurate data output resulted. Errors of linearity were predictable in both X and Y directions. Exponential terms in the prediction equation compensated for film stretch due to irregular transport. Initially, the data obtained from the morning test was used to predict afternoon performance of the tube. A cross-validation computer program was used on the data from the afternoon test. After the proper generating functions had been derived, the correlation ) )7 coefficient on the cross-validation program was as high as .973. Calibration equations derived from data obtained during a week of testing were used to predict tube performance eight days later. The correlation coefficient obtained was .968; the equations which were originally obtained for corrections were valid eight days later. Tube maintenance was performed during this period. Thus, the tube appeared stable during the elapsed time period. Recalibrations of the tube less frequently than once a week would perhaps suffice. The range of errors before correction was typicaJJy .025 inches to -.080 inches. The range of errors after correction was ± .004 inches. The maximum error before correction was .087 inches. The maximum error after simulation correction was .004 inches. The average degree of error before correction was .0150 inches. The average degree of error after simulation correction was .0015 inches. The correction equations derived by the computer program were applied to data obtained from the Ferranti operation. All symbol coordinates were recalculated and compared to theoretical coordinates. Computer programs determined where the symbols would have been located by the SC 4020 if correction equations had been applied to original coordinate information. The error measured by the Ferranti machine, the calibration correction for each position, and the difference between corrected and theoretical coordinates were determined by the computer. An example of the error distribution before and after correction is displayed on the accompanying graph. The simulation correction procedures were used primarily to derive the equations necessary for correction of actual data. The calibration equations were employed to generate accurate circuit card artwork. The SC 4020 software was modified to include compensated deflection voltages. The deflection voltages were corrected by adding the calibrated errors to the corresponding given coordinate pair. That is, (X, Y) = (X, Y) given + E deflection = (X, Y) original + E or, (X, Y) calibratea or, the plotted (X, Y) = the theoretical (X, Y) or, the adjusted coordinate positions = the result of application of the derived equations to original coordinates. The calibration equations \\ ere applied to given coordinate points: a predetermined correction was added to the deflection voltages for each point to be located 118 Spring Joint Computer Conf., 1967 by the SC 4020. The given coordinates were converted to calibrated deflection voltages. The result was accurate computer graphic output. SC 4020 production of engineering drawings would be approximately 500 times faster than existing computer-controlled drafting machines. More important than speed, however, is the possible on-line production of circuit cards by application of the techniques developed by this research. Honeywell is considering an advanced design automation program for on-line circuit card design/production in which a visual display system functions as a production tool. In this program the circuit card (without components) could be generated directly during the manufacturing process. Such a system would provide unlimited flexibility in producing circuit cards. One or several of each kind of card could be easily, quickly, and economically produced. The design engineer could retrieve a design from storage or could enter the coordinates of the card elements and parameters such as connections, into the computer, and the exposed circuitry would be automatically produced on a card. The research completed to date indicates that such on-line operation is possible. Each design produced would be stored for online retrieval. When the program outlined here is fully implemented, no draftsman will be required for circuit card design/artwork! .~~ II .6\1 >- UNCORRECTED DATA \ I- ::J iii eX m AI 0 g: .2 CORRECTED DATA 0 0 10 20 30 40 50 X IN THOUSANDTHS 60 70 80 Figure 1 - Sample of error distribution before and after corrections 1"' , I· ! i _~j---;." . ::J[ii__.1 INTERPRETATIONS AND CONCLUSIONS Research efforts portending significant improvements or alterations to existing conditions or acceptance of new techniques frequently introduce new questions which are as significant as answers provided for original queries. From this research evolve questions such as "In what other areas and by what procedures can the techniques of this research be applied to solve similar problems?" The production of engineering artwork is only one example of how the results of this research can be applied to advance the electronic and computer industries. The initial goal in this application is to proceed directly from a computer to the artwork by means of an accurate CRT image. Concepts analyzed apd utilized throughout this study may contribute to process control or process model building applications in the following areas: 1. Air traffic control (collision avoidance). 2. Low approach aircraft landings. 3. Microwave video transmissions. 4. Off-course aircraft computers. 5. Graphic data concentration and transmission systems. P (IE I ~X) a Figure 2 - Stromberg Carlson 4020 microfilm machine Figure 3 - Charactron tube and camera .. Mathematical Techniques To Improve 119 One-ahot .mu.l....ethell.f 10,.1"1 choract.r. MATRIX - Shap •• • Iectron b.am Into a charact... by .x· tru.lon prac... ELECTRON GUN - Shoot. unahapocl .I.ctron b.om SELECTION PLATES - Direct unahapocl .I.ctron boom to lIIumlnat. a pr.· •• I.ctocl ap.rtur. In tho motrl---~--- REFERENCE PLATES - Align ahapeel beam on axl. of tub. VIEWING SCREEN FOCUS COIL - Focu •••• hopocl b.am charoct.r on .cr.en DEFLECTION YOKE - Bond. b _ to po.ltlon "'oped baam choroetor on vl.wlng .croon HELICAL ACCELERATOR Glv •••hapocl b _ character ".p.eeI" for Incr.a.eeI brlghtn... METAL SHIELD Figure 4 - Charactron shaped beam tube STANDARD PLOTTING AREA (4'x4" SQUARE) ---=I::::--±~.. ?t ?,.tp~ Figure 5 - Standard plotting format ~- CHARACTRON ft.. SHA PED BEAM TU BE PLOTTING CIRCLE 120 Spring Joint Computer Conf., 1967 VECTOR ORIGIN CHARACTRON SHA PED BEAM TU BE STANDARD PLOTTING -----",...-.--i-_____~ AREA(4X4" SQUARE) 14---#--- PLOTTING CIRCLE Figure 6 - Vector component direction Conjectures concerning how the techniques of this research can be applied are difficult to formulate. Clearly, an apparatus under consideration must be computer controlled and some aspect of its performance must be measurable. The results of this research demonstrate that the accuracy of a visual display system can be improved despite hardware limitations. Potential benefits of a computer-controlled graphic device are comparable to benefits derived from the introduction and application of automatic data processing. The value of graphical information processing is difficult to access; only with the passing of time will this value be properly realized. REFERENCES 2 3 4 5 6 C J FISH D D ISETT A utomated circuit card etching layout Technical Memorandum Sandia Laboratory Albuquerque October 1965 Ibid 22 A MICHAEL NOLL Computer generated three-dimensional movies Computers and Automation 20 23 November 1965 M R DAVIS TO ELLIS The RA N D tablet A man machine graphical communication device Instruments and Control Systems XXXVIII 101 103 December 1965 N WADDINGTON Some applications of graphic data output Computers and Automation 24 27 November 1965 I E SUTHERLAND SKETCHPAD A man machine graphical communication s}'stem AFIPS Conference Proceedings XXIII 329 346 Spring 1963 7 LAWRENCE G ROBERTS Machine perception of three-dimensional solids MIT Lincoln Laboratory Technical Report No 315 Boston Massachusetts Massachusetts Institute of Technology 1963 8 L F KNAPPE A computer-oriented mechanical design system Paper read at the Share Design Automation Workshop Atlantic City New Jersey 23 25 June 1965 9 D K FRAYNE Three levels of the wiring interconnection problem Paper read at the Share Design Automation Workshop Atlantic City New Jersey 23 25 June 1965 10 A SPITALNY W MANN G HARTSTEIN Computer aided design of integrated circuits Paper read at the Share Design Automation Workshop Atlantic City New Jersey 23 25 June 1965 11 D T ROSS Current status of AED Paper read at lhe Share Design Automation Workshop Atlantic City New Jersey 23 25 June 1965 12 JOHN DIEBOLD What's ahead in information technology Harvard Business Review XLIII No 5 77 September October 1965 13 S A COONS Computer Graphics and Innovative Engineering Design Datamation XXII No 5 32 34 May 1966 14 CHRISTOPHER F SMITH Graphic systems for computers Computers and Automation 14 16 November 1965 15 M A EFROYMSON Muitipie regression analysis in Mathematical methods for digital computers A Ralston and H S Wi If eds pp 191 203 New York Wiley 1960 16 P BLOMMERS E F LINDQUIST Elementary statistical methods Houghton Mifflin Company Boston 460 1960 A new printing principle by W. H. PUTERBAUGH lVationul Cash Register Co. Dayton, Ohio and S. P. EMMONS Texas Instruments, Inc. Dallas, Texas INTRODUCTION Previous printing applications have been largely confined to the processor printout, where high speed and multiple copies were necessary. These printers were largely mechanical impact devices operating near the edge of the performance expected of highspeed mechanisms. The few non-impact printers developed for these applications have not found general use because of unsuitable cost/performance ratios. The recent development of time-shared systems has created a need for printers in the performance range of 20 to 50 characters per second for use in inquiry and terminal equipment. A recent survey of the peripheral market by Stanley Zimmerman showed that in 1955 this totaled $20 million or 19 percent of the computer market. In 1965, the peripheral market had increased to $1.68 billion or 51 percent. Mr. Zimmerman estimated that by 1975 peripheral equipment will have a total value of almost $4.5 billion or 69 percent of the computer market. Three aspects of this need are reviewed. The first discusses the system trends towards electronic compatible printers as on-line multiple computer systems come into greater use. Problems associated with printers, such as speed and power requirements and reliability deficiencies~ are discussed showing that a new printing principle is necessary to obtain the cost/performance needs of the future. This principle, that of thermal printing, is discussed together with a solid-state embodiment. System trends Definite trends in computer systems and especially in data processing systems indicate that time sharing 121 of the central processor and its files is well under way. These types of systems require terminals and/or inquiry stations of many varieties to satisfy the need of the customer who is time sharing the processor. Figure 1 shows a time-shared system where many remotely located terminal units are connected by communication lines to a processor and its files. These terminal devices must have several capabilities, the minimum being a keyboard, a display and a printer. As this trend continues the major cost of the system will be in the terminal area. It is in this area, therefore, where cost and performance will be very important. Satisfactory costs, however, are difficult to obtain. One of the most critical functions in the terminal area is that of the printer. The printing of alphanumeric data from electronic signals has always been difficult from a cost/performance point of view and even more disappointing from the standpoint of reliability. As system trends continue, the day of the "'household computer" is not too far removed, where on-line availability of a processor will be possible. The printer associated with this device and other terminals must possess at least an order of magnitude increase in reliability over present mechanical printers. Monolithic silicon technology has contributed much to improvements in logic and memory. The developments now occurring in the use of complex arrays of monolithic silicon promise even greater reliability and cost reduction. It would be logical, therefore, to examine this technology for its suitability to printing applications. It certainly is not obvious what relationship exists between printing and integrated circuit technology. In fact, at first thought, this ap- 122 Spring Joint Computer Conf., 1967 Print head design I I~ }~ 'REMOTELY ~I TIME SHARED PROCESSOR FILES a II i I ~ COMMUNICATION LINE LOCATED TERMINALS Figure 1 - Time shared system pears to be the one function least compatible with the application of silicon technology. The printer The process of producing alphanumeric characters on paper from electronic logic signals must necessarily involve the change of electrical energy to a form of energy that win affect the paper in such a manner as to produce legible print. In the past, this has largely been done by controlling mechanisms whose power and speed differed markedly from the logic signals. Since these differences are the prime reason for the high cost of present printers, an economical method of transforming energy with better compatibility between the power and speed of the logic circuits and the printer is suggested. The most efficient and easiest energy transformation of electrical current is to that of heat. Papers have been available for some time which change from white to black when exposed to heat. A printing concept, then, involves selectively heating areas on some surface which is in contact with a thermally sensitive paper. Such a printer could be realized using the PR losses within resistors assembled to form a matrix of 5X7 or 5X5 heating elements. Selection of resistors within the matrix would produce the desired alphanumeric symboL Normally, heat energy is not selected as the form of energy to be used when speed of any consequence is desired. Intuitively heat energy is thought to be inherently slow, but this is because the majority of everyday experiences involve sizable thermai masses. Actually, the thermal time constant for a given structure depends upon its thermal mass, which includes the physical mass of the heated material, and the thermodynamic mechanisms acting to conduct energy away from it. A three-dimensional heat flow analysis is necessary to accurately predict the rise and fall times of temperature. For the purposes here, it is sufficient to generalize. If thin-film resistors are to be used as heating elements, the thermal rise time of the element is largely dependent upon its physical mass. The choice of a substrate material upon which the heating element is placed largely governs the fall time of the temperature. The design of a printer, for a given speed of response, using the heat generated in a resistor, becomes one of selecting the most suitable combinations of resistor elements and substrates. Approaching the problem in this manner, without other considerations, resulted in the choice of thin-film resistors and ceramic (A1 2 03 ) substrates. Each character, consisting of a 5x5 matrix of resistor elements, required 26 leads. A head assembly of five characters thus required 130 external interconnections. The complexity of these interconnections together with other considerations of importance, such as life, reliability and cost, have directed attention in an entirely different direction. Reduction in interface complexity by silicon implementation The integrated circuit art has demonstrated the economics of fabricating components within a monolithic structure of silicon. Such components as resistors, diodes and their interconnecting leads, have been routine for some time, and the feasibility of fabricating 125 resistors and diodes to produce a silicon structure containing five characters is attractive. Each character would be a 5x5 matrix of heater elements. A diode-resistor pair within each heater element would reduce the number of external leads for printing five characters sequentially from 130 to 30 as shown -in Figures 2 and 3. Within the five character head. the characters would be printed sequentially. In a typical printing sequence the common for character # 1 would first be activated and the ap, propriate drive lines corresponding to the correct alphanumeric symbol would be pulsed negatively. After a cool-off period; c-ommon #2 would be ac- ANew Printing Principle I 2 3 4 5 6 7 8 910 II 12 131415 1617 1819120 2122 232425 I 2 6 7 II 12 1617 2122 3 4 5 8 9 10 131415 181920 231~ 25 I 2 3 4 5 6 7 8 9 10 II 12131415 1617 18 19 20 21 22~ !--Wv-i ~ ~ ~ ~ ,~ 4 5 6 7 Dj----VIIy---i ~ 8 9 10 !3 z ::i :~ ~ 13 14 15 iii 0 I- :~ ~ :~ ~ - CERAMIC SUBMOUNT 20 21 ~ ~ ~ 22 ~ ~ CHARACTER ~ ~ 23 24 25 COMMONS Figure 3 - Interconnection scheme for 5X5 matrix printing head tivated and a different combination of drive lines would be pulsed. Various types of system drive schemes are conceivable. If the line in the machine is made up of an assembly of the five character heads, every fifth character could be printed in parallel. The highest speed printer, therefore, will be one in which a line will be printed in the time necessary to print five characters. In the lowest speed printer all characters in the line will be printed sequentiaJly. Print head fabrication A prototype print head has been fabricated in monolithic form with the physical dimensions shown in Figure 4. Each heater element shown in Figure 3 is fabricated within the silicon mesas, shown in Figure 4 and each mesa contains a resistor-diode pair, prod~ced by conventional integrated circuit diffusion techniques. The array was interconnected by normal evaporated leads. The leads are protected from paper wear because the silicon structure is mounted with the leads at the interface between the silicon and a ceramic substrate. The structure of a silicon mesa mounted on a ceramic substrate was chosen to provide the desired thermal transient performance. Because silicon is a very good thermal conductor, the mesas are par- Figure 4 - Construction of monolithic silicon print head ticularly necessary to provide thermal isolation between heater elements. As discussed earlier, the thermal characteristics of the interface and the ceramic as well as the thickness of the silicon mesa determine the temperature rise achieved for a given pulse width and power level. AAAAA88B88CCCCCDDDDDEEEEE FF~FFGGGGGHHHHHIIIIIJJJJJ KKkKKLLLLLMMMMMNNNNNOOOOO PPPPPQQQQQRRRRRESSSSTTTTT ,:.1. '.' , . :I.II'.III' II II II II I i II II II II I········ .................. · 1·..·1· · 1·..·1··' • 1..1 ',I ',' ,., 1,1 ,I, ,I, ,I, ,I, ,I, ••••••••••••• ".,,", I ZZZZZOODDClI I I I 122222 E:E:E:E:E: ~~~·~~5S5S5bbb~b1'1"88888 qqqqq+++++-----.",.///il Figure 5 - Example of print and printing head Print head performance Although the process is still in a development phase, much has been learned about the performance of such a head. The print head photographed in Figure 5 uses a 10-millisecond current pulse corresponding to a power level of approximately 700 mw/element to achieve a 200°C peak temperature. A 5-millisecond cool-off time, necessary to allow the diodes of the pulses character to recover before the next character is pulsed, results in a sequential character rate of 15 milliseconds per character. Typical prints are also shown in the photograph. 124 Spring Joint Computer Conf., 1967 process is an improvement in print intensity during the life of the print head; (2) the silicon is considerably thicker and harder than the films and provides more life in this manner. The monolithic silicon printing head will provide longer life and increasing print quality during its life without a change in the value of the resistors. Most people observing the operation of the thermal printer wonder when the printer is going to start to operate without realizing that it is indeed already operating. The printing, of course, makes no noise in itself and paper spacing is the only mechanical motion necessary. Many techniques are available to reduce this noise and thermal printers have been built whose operation is only apparent by the gentle swoosh of the paper movement. Thermal paper Figure 6 - Thermal printer (80 characters per line - 240 characters per minute) Machine performance No..complete printers have yet been built using the sIlIcon configuration. Many printers of various types have been built with other print head configurations using films of various types for the resis tors .. Figure .6 shows one such printer which operates III a senal-by-character mode, printing a line of 80 alphanumeric characters at a rate of 240 characters per second. The mean-time-between-failure of this printer is 2,000 hrs. at 30% duty cycle with a minimum life of the print head of 50x 106 lines of print. Other printers have been delivered to operate in systems whose design objectives are in excess of 15,000 hrs. MTBF at 100% duty cycle. This illustrates the increase in life and reliability which can be expected of thermal printing. The change of printing heads from films to monolithic silicon will give additional life and reliability. The silicon heads will provide much longer life for two reasons: (1) since the resistors and diodes are at the silicon-ceramic interface, as shown in Figure 3, mechanical wear of the silicon surface by the paper can proceed until practically all of the silicon is removed. The only difference noted during this wear The printer shown in Figure 6 produces an original and two copies. The use of thermal energy for printing assumes a paper sensitive to this energy with properties suitable for legal records. Several paper systems have been developed for various applications requiring up to twelve copies. These printing papers' are difficult to tell from untreated papers by inspection or handling, and can be stored indefinitely at 65°C. CONCLUSIONS The feasibility of extending the electronic circuitry directly to the printed page by the solid-state embodiment described has been proven. Tests have shown that reliabilities of the same order as experienced with integrated circuits can be expected. Paper systems have been developed as an adjunct to this work which will provide copies, although in most terminal applications this will not be required. Redesign of the printing head for production must be done before accurate cost estimates can be made. Life test data has not yet been obtained due to the length of time required for failure. The failure mechanisms are much the same as those in an integrated circuit having two levels of interconnections. A time delay compensation technique for hybrid flight simulators by V. W. INGALLS The Boeing Company Seattle, Washington INTRODUCTION A flight simulator or vehicle simulator of any type except those involving only a point mass, appears at first glance to be ideally suited for mechanization on ~ hybrid computer because of the difference in requirements of the rotational and translational equations of motion. Solutions to the rotational equations contain high frequencies, making the use of the analog computer best for solving these equations. The translational equations have mostly low frequency solutions but requires high accuracy so the digital computer is best. Also the digital computer is the best means of generating multi-variable functions such as aerodynamic coefficients. The equations to be solved and the conventional methods of mechanization of flight simulators are discussed by Fifer! and Howe. 2 The division of the problem between the two halves of the hybrid computer is to solve the rotational equations mainly on the analog computer and the translational equations mainly on the digital computer. The rotational eqpations require multivariable functions so that part of the solution must be done digitally and because of the interaction of the translational equations with the rotational equations, part of the solution of the translational equations should be done by the analog computer. Because this division cannot completely isolate the rotational equations to the analog computer and the translational equations to the digital computer, several problems arise. The problems In the hybrid computer solution of differential equations several sources of error occur that are either not present or are easily compensated for in all digital or all analog computation. One of these sources of error, as reported by Miura and Iwata,3 is the delay introduced into a closed loop because of digital computation. The length of this delay is the time from an analog voltage being sampled and transferred to the digital computer until all computations using that value are completed and the results returned to the analog computer. This source of error has a counter-part in an all digital simulation but there are well known methods of reducing the error, in the all digital case. Some of these methods are directly applicable to hybrid computation, some can be used in modified form and some cannot be used at all. The most notable of the last group is the RungeKutta method. To use this method for hybrid computation would require the analog computer to make several trial solutions at the same instant of time which cannot be done. A number of papers have been written discussing various methods from the first two groups but most are only effective for linear problems. Another source of error in a hybrid computer is data reconstruction following digital to analog conversion. This source of error, as well as some others, is discussed by Karplus. 4 Theoretically, the output of a digital to analog converter is a string of impulses that are passed through some form of holding circuit. It is normally considered that reduction of the error by using any holding method more complicated than a simple zero order hold is not worth the problems created. This contention is not disputed but this paper will describe a method by which the effect of a higher order hold can be achieved without the actual hold circuit being present. One of the problems of using a zero order hold, which holds the value of the voltage constant between conversions, is that if the variable converted is a derivative to the integrated on the analog computer, which is often the case, especially in vehicle simulators, the integral can be determined algebraically at each sampling time. This means that although the integra125 126 Spring Joint Computer Conf., 1967 tion is done by the analog computer, the result is the same as if it were done by the digital computer using the most elemental method of integration, i.e., rectangular or Euler. This being the case, there is some question as to the utiiity of using a hybrid computer for solving differential equations or at least for solving the equations of motion for a vehicle simulator. A solution The suggested solution, which is similar in some respects to that proposed by Gelman, 5 to the problem of derivative functions being represented by a series of step functions is to rewrite the equations so that every loop can be closed without going through the digital computer. As an example, to check the method, the equation d2y dt2 = - ay Iy I was chosen because of several factors. These factors are, first, it is nonlinear; second, it has a solution that is periodic with constant amplitude and the period is functionally related to the amplitude; third, the period and amplitude can be determined analytically so errors can be checked; and last, it can be mechanized on an iterative differential analyzer simulating a hybrid computer. Actually this equation can be solved entirely by the analog computer, but the game was played assuming that the absolute value could not be found on the analog and thus the digital computer (or simulated digital computer) was needed. The general form of this equation is d2y dy dt2 = f(y, dt' t) or in state quation form it is as in the example, the simplest way to rewrite the equation is to divide and mUltiply by y and mechanize it such that the function divided by y is generated by the digital computer and the multiplication by y is done by the analog. This mechanization might have some computation probiems if y goes to zero but can be overcome if f also goes to zero for some y. To do this, divide and multiply by y plus a constant, such that y plus the constant goes to zero when f goes to zero and define zero over zero as zero. This mechanization will not completely eliminate the problems of the time delay or the use of the zero order hold. However the outputs of the analog integrators can no ionger be computed aigebraicaiiy at a sampling instant from the conditions at the previous sampling instant. Instead, a linear differential equation must be soived. The result of this manipulation, therefore, is to change a nonlinear differential equation to a linear equation with parameters that change at every sampling instant so as to approximate the original equation. This is also approximately the result of using a higher order hold in the data conversion equipment. Nothing in the foregoing discussion does anything directly to overcome the time delay problem. The example will be used to describe the attack on this problem rather than a general case. Assume that the analog to digitai converter, ADC, and digital to analog converter, DAC, operations occur simultaneously and repeat with a period ~t, then the example equation as mechanized becomes d2 y(t) dt2 - = -a I y(tl - ~t) I y(t) for tl ~t to. Then minimum time is the smallest time, t, at which e(tf ) == 0. (11) The result is that the required final states, x(tf), will be enforced at that time, since e (t) is a measure of the terminal error with time. By this method, the final states, x(tf), can be considered as being unconstrained; in reality, the constraints have merely been shifted from the final states to the criterion function by defining grange multipliers and perform a computer search for these additional parameters. Method for solving the problem backwards in time A method for converting a problem with state variable constraints to one which apepars to be without constraints has been shown. This method allows the classes of problems without constraints on the state variables to be enlarged considerably. The motivation is that many of the actual optimum control problems fall within these classes. A method will now be presented which greatly simplifies the computational requirements for solving optimum control problems without constraints on the state variables. Consider the properties of Pontryagin's Maximum Principle, stated in Appendix A, that hold for a system with free or unconstrained state variables. By free (unconstrained) state variables is meant that the state vector x == (X},X2, ... , Xn) can be any point in the n-dimensional Euclidean space X. If x remains within some smooth manifold S L X without imposing constraints, then the state variables also behave as though they were free. By requiring the state variables to be unconstrained, the hypothesis of Theorem A.l is satisfied. For a linear system with additive control li(t) Theorem A.l provides both a necessary and a sufficient condition for optimum control. In addition, this theorem provides final values for the adjoint variables; i.e., p(tf ) == (-1,0,0, ... ,0) (12) or po(tr) == -1 and Pi (tf) == 0, for i == 1,2, ... , n. With this additional information, brought about by the requirement that the state variables be unconstrained, a new computational procedure can be developed. Instead of solving an initial value problem with x(to) known and p(to) unknown, the problem can be solved as a final value problem with x(tf) known or arbitrary and p(tf ) ==) (-1,0,0, ... ,0) known from Theorem A.l. But it is very difficult to solve final value problems, even with the help of a computer. Many computer runs are required to find one solution whose trajectory passes through the required final values x(tr) and p(tf). A better approach is to convert j 35 this final value problem into an initial value problem, since the latter problem is easier to solve. This is true because only one computer solution is required to uniquely solve an initial value problem. This is in con-trast to the many computer solutions required for the iterative parameter searching techniques. The problem can be solved as an initial value problem by solving it backwards in time; i.e., by starting the solution at time tf and solving the problem backwards in time until time to. The initial conditions for this backwards time method are x(t ) and i5 (tr ) == (-1,0,0, . . . , 0). To state this approach formally, let T be the independent variable for the backwards time solution; i.e., let T be time running backwards. The, during the time interval [to, tr], T is defined by T==tr-t (13) where tr is the final time, and t is real time. The backwards time solution begins with T == 0, which occurs at time t == tr, and ends when t == to; i.e., when T == tf - to. For the case to == 0, T runs from to t r. By making the change of variable, (14) t == tr - T, the problem is converted from a final value problem to an initial value problem. The final states (tr) and p (tf)' become the initial values for the backward time solution, and x(to) and p(to) become the final values upon which the backward time solution must terminate. The method for solving an optimum control problem backwards in time can now be stated in three parts. 1. Write a program to solve the system equations == ~x(t) Bil(t) (15) backwards in time. This can be accomplished by negating each input to every integrator or integration subroutine. The initial conditions are x(tr ) • 2. Maximize the Hamiltonian H with respect to li mathematically, and program the resulting expression for ii, which is a function of and p. 3. Write a program to solve the adjoint system equations (16) Pi == - eXt, for i == 1,2, . . . , n ° x x + x backwards in time, where the partial derivative of H with respect to Xi is taken by hand and the resulting equation programmed on the computer. The initial conditions are p(tr ==(-I,O,O, ... ,0). Note that the equation for H is not programmed on the computer. This method can be represented by the block diagram shown in Figure 1. There are now 2n equations in 2n unknowns with 2n initial conditions known; hence, there are no more initial conditions for which to search. Furthermore, no Lagrange multipliers have been used. Therefore, all parameter searching has been eliminated. 136 Spring Joint Computer Conf., 1967 -u 1. Solve Backwards i = !i{t) 1 Generate 2 • ~(t) I - -P -x 3. u II I lI: . Solve Backwards -p ~ = - ax Figure I-Method for solving an optimum control problem backwards in time on a computer Examples Example 1: Minimum time frequency control of phase-locked loops The problem is to minimize the time for a phaselocked loop to lock onto a step change in frequency.12 The sine term represents the non-linearity of the phase detector. The system is described by the state differntial equations Xl == y'2W:" sine -Xl) + X2- u, xdO) == 0 (17) X2 == w" sin( -x!), X.2 0 == -~w X 2 (tf ) == 0 == 0 u == K sgn(Xl-pl) PI == -[-y'2"Wn(PI-Xl)+W2n (P2- X2] cos Xt +\12 CUn sin X1 -X2 +U, Pl(tr ) == 0 2 P2 == - Xl+pl+W n sin Xl, P2(tr) == 0 An analog computer solution of these equations is shown in Figure 2. These results agree with those obtained by Sanneman and Gupta. 12 A small perturbation of the adjoint initial conditions to the values Pt(t r) == 0.02 and P2(tr ) == 0.03 produced an accurate solution. This indicates that analog computer errors are on the order of 0.3 percent of full scale. The problem was time scaled to let one second real time equal 10 seconds computer time. This reduced the sensitivity of the problem and allowed the computer to give a more accurate solution. ~(t) I - I + Xl(tf ) X2 == Clln sin Xl, (18) One second real time equals ten seconds COIIll"'ter tillle. 1 = 1 1 i + 0.5 I n Find the control u(t) that will drive the system from its initial states to the final states x1(tr) == X2(tr) == 0 in minimum time, where luiLK. The criterion function of minimum time is converted to a minimum error function defined as the new coordinate xo(t) ==Vz [(Xl (t) -Xl (t c) (X2(t) -X2(tr) rl U"n =1 1=2 I J ~ = 1 1 Tille in Seconds r+ (19) Then minimum time is the shortest time, t f , at which Xo ( tf ) goes to zero. The Hamiltonian is H == poxo + PIXI + P2X2 == (PI-x lh/2w n sine -Xl) + x2-u] + (P2-X2)W n sine -xd, 2 Figure 2-So1ution of second order nonlinear phase-locked loop problem (Time Backwards) (20) O. H is since po == -1 by Theorem A.l and Xl (tf ) == maximum with respect to u if u == K sgn (XI-PI)' (21) The adjoint equations are PI == [\12 Wn(pl-XI)+Clln (P2- X2)] cos( -Xl) +V2Wn sine - X I )+X2-U (22) 2 P2 == XI-PI+W n sine -Xl). (23) To solve this problem backwards in time, the following equations must be programmed on the computer. Example 2: Third order nonlinear minimum Time problem The purpose of this example is to show how much the difficulty of obtaining a solution increases in going from a second order to a third order nonlinear problem. Let the system be described by the state differential equations (24) Xt(O) == 0.8 Xl == X2 , (25) x 2 (0) == -0.8 X2 == Xa, (26) Xa == -aXa-X2!X21+ u , Xa(O) == -6.4 Optimum Control Problems Find the control u (t) which will drive the system from its initial states to the final states Xl (t) == X2 (1r) == Xa(tf)==0 in minimum time, where lulL! and a==0.333. The criterion function of minimum time is converted to a minimum error function defined as a new coordinate by xo(t) == ~ [(xl(t) -x1(tr) )2+ (x2(t) -X2(tr»2 + (Xs(t)-Xa(tf ) )2]. (27) Then minimum time is the smallest time, t f , at which xo(1r) == O. Since x(tf ) == 0 xo == xlil+X2~+XsXa (28) = Xlx2+X!!Xs-aXs2 -x2I x2IXs+Xsu. The Hamiltonian is H == P"xO+P1X1+P2X2+paXa == - XIX2 - X2Xs.+ aXs2 + X21X21Xs - XsU + PlX2 + P2Xs - apaXs-paX2(X21+ paU, (29) since po == -1 by Theorem A.l. H is maximum with respect to u if (30) The adjoint equations that must be solved are Pl == X2, Pl(1r) == 0 (31) P2 == Xl + Xa - 21X21 Xa - Pl + 2pa1X21, P2(tf ) == 0 (32) -P2 ap3, (33) + To obtain a solution, equations (24,25,26) and (31, 32, 33) had to be solved backwards in time along with equation (30). This problem was solved on the analog computer, and the results are shown in Figure 3. No particular difficulties were encountered in obtaining a solution. Only one multiplier, two integrators, and one amplifier were required for the third order problem in addition to those required for the second order problem. This was insignificant as was the additional effort to perturb p(tf) == ± Efor one additional component. This problem was also slowed down by 10, by time scaling, to obtain less sensitive and more accurate results. Nonlinear problems have been chosen for the examples in order to demonstrate the capability of this method to solve nonlinear problems with the analog computer. On the contrary, it has not been shown in this work that the Maximum Principle is a sufficient condition for optimal control of nonlinear systems. It turns out, however, that the sufficiency condition holds for these examples. To show this, the notion of normality relative to X and the solution of the HamiltonianJacobi partial differential equations are required. These have been worked out by Athans and Falb. 13 137 6 4 2 o -2 -4 One second real time equals ten seconds computer time. -6 Figure 3-Solution of third order nonlinear problem (time backwards) CONCLUSIONS A simple method has been developed for solving optimum control problems by Pontryagin's Maximum Principle. The requirement for searching the adjoint initial conditions for an acceptable set and the use of Lagrange multipliers has been eliminated by solving the problem backwards in time. A good criterion for evaluating a computing method is to note the increase in the complexity of obtaining a solution when going to higher order systems. The operating procedure does not change for the backward time method; only the computer program becomes more complex .. In going from a second order to a third order system, the procedure for obtaining a solution remains the same, except that there is one more parameter, P3 (tf ), to perturb by a small amount ± Ea to measure error and sensitivity. On the other hand, in the forward time mechanization, the computer time required to search for an acceptable p (to) increases by an exponent equal to the order of the system; e.g., if m2 seconds were required for a second order system to converge to a solution, then mS seconds are required for the convergence of a third order system. In addition, about 20 percent more analog hardware is required. Curves for evaluating these methods, based on several examples, are shown in Figure 4. The capability of the backwards time method is also shown in its use as a design tool. If it is desired to 138 Spring Joint Computer Conf., 1967 I 12 'g 150 0 (,) ~ ....d s:: ....0 ~ ~ Forward Time Solution 100 I ~ .Q 0 0 ~ CD !! f< 50 3. The state differential equations (1) are continuous in the variables x and u and continuously differentiable with respect to the components of x. The integrand fo(x,u) of the criterion function is also defined and continuous together with its partial derivative with respect to i. 4. The system described by equations (1) is autonomous. c8 I'l 2. There exists a control region U, which is a bounded subset of some r-dimensional vector space. The control variable u(t) e U must be a bounded piecewise continuous vector function of time, with domain in [to,tf ] and range in U. If li(t) satisfies these requirements, it is called an admissible control. I 5. The criterion function J, defined by equation (2), has at lease a local minimum at time t f • This is true when the first variation of J is zero and the quadratic form of the second variation of J is positive definite. IS 2 :5 4 Order of System Figure 4-A comparison of the times required to obtain a computer solution drive a system from a given initial state X(1:.,) to a required final state x(tr ), it really doesn't matter whether the problem is solved forward or backwards in time. By solving the problem backwards in time from x (tf ) with u(t) constrained by lulLM, the trajectories of x(t) are easily obtained, and the manner in which x(to) is approached can be observed. If the time tf - to is constrained, it can be seen immediately whether or not x(t) will move to x(to) in reasonable time. If not, then the information is available on how to change M to satisfy this requirement Changing M is easily done on the computer. This approach is very difficult to achieve using the forward time method, because -each time M is changed, a new set of initial states p(to) must be found by a searching procedure. Appendix A The following assumptions were made in order to solve the optimum control problem, stated in the body of the paper, by Pontrayagin's Maximum Principle. 1. The system is controlable; i.e., the states of the system can be changed from some initial states x(to) to some final states x(tf) in a finite time tf - ~ by the application of some bounded control function net) over the time interval [to,tel. The state vector x (t) is the solution to the state differential equations (1) with x(to) given. The state vector x(t) exists as a unique point x in the Euclidean space X of dimension n at each instant of time in the interval [to,tr]. The following theorems can be stated for systems with unconstrained final states: IS Theorem A.l: Let ii(t) be an admissible control which moves the system described by equations ( 1) from the fixed initial states x (1:.,) to some unconstrained final states x(tr ) in X. In order that ii(t) be an optimal control and x(t) the corresponding optimal trajectory, it is necessary that there exists a nonzero continuous vector function ptO ==(PO(t),Pl(t), ... , pn(t)), corresponding to u (t) and x (t) , on the time interval [to, trJ, such that a. p(t) is a solution to the adjoint system of equations defined by 6H (A.l) PI == --6--' for i == 0,1, ... ,n, . Xi where H (p,x,u) is defined by n H(p,x,u) == b. with c. u(t) L PIXI. (A.2) i==O The functional H(p,x,u) has an absolute minimum respect to u(t) on the interval [to, tr]. The maximum value of H(p,x,u) with respect to is zero on the interval [to, tel; i.e., sup H(p,x,u) == ueD d. At the final time, tr, ° pete) == (-1,0,0, ... ,0). (A.3) (A.4) If the system is linear and the control additive, as in equations (1) for 4 and B matrices with constant elements, then Theorem A.I provides both a necessary and sufficient condition for optimum control. Theorem A.2: Let the system be described by the Opiimum Controi Problems set of differential equations (1), where the controls Uj are subject to the constraints IUjILMj, for j == 1,2, ... ,r, (11) for M j a positive real number. If the system is moved from its initial states x(to) to some unconstrained final states i. (tr ) in X in such a manner that the criterion function defined by equation (5) is minimized to zero, then the condition H (p (tr), i (tr ), UCt.-)) == 0 is redundant. REFERENCES GEORGE A. BEKEY Optimization of multiparameter systems by hybrid computer techniques Simulation February, 1964, pp. 19-32, and March 1964, pp. 21-29 2 GEORGE A. BEKEY and ROBERT B. McGHEE Gradient methods for the optimization of dynamic system parameters by hybrid computation Computing Methods in Optimization Problems, edited by A. V. Balakrishnan and L. W. Neustadt Academic Press, Proc of U .C.L.A. Conference January 30, 1964, pp. 305-327 3 EDWARD J. FADDEN and ELMER G. GILBERT Computational aspects of the time-optimal control problem Computing Methods in Optimization Problems, edited by A. V. Balakrishnan and L. W. Neustadt Academic press, 1964, pp. 167-192 5 O. R. HOWARD and Z. V. REKASIDS Error analysis with the maximum principle IEEE Trans. on Automatic Control Vol. AC-9, No.3 July, 1964, pp. 223-229 6 139 CHARLES H. KNAPP and PAUL A. FROST Determination of optimal control and trajectories using the maximum principle in association with a gradient technique Proc. of Joint Automatic Control Conf., 1964, pp. 222-225, also in IEEE Trans. on Automatic Control, Vol. AC-lO, No.2 April 1965, pp. 189-193. 7 R. L. MAYBACH Optimal control by pontryagin on hybrid computer IEEE Region Six Conference Record. April, 1965, also ACL Memo No. 119, Electrical Engineering Department, University of Arizona, April 27, 1966 8 BERNARD PAIEWONSKY, PETER \VOODROW, WALTER BRUNNER, and PETER HALBERT Synthesis of optimal controllers Using hybrid analog-digital computers Computing Methods in Optimization Problems, edited by A. V. Balakrishnan and L. W. Neustadt, Academic Press, 1964, pp. 285-303 9 M. D. ANDERSON and S. C. GUPTA Analog computer solution of a third-order pontryagin optimum control system Simulation, Vol. 5, No.4 October, 1965, pp. 258-263 10 DIANG-TSENG FAN The continuous maximum principle John Wiley & Sons 1966 11 JULIUS T. TOU Modern control theory New York: McGraw-HilI, 1964 12 R. W. SANNEMAN and S. C. GUPTA Optimum strategies for minimum time frequency transitions in phaselocked loops IEEE Trans. on Aerospace and Electronic systems, Vo1. AES-2, No.5 September, 1966, pp. 570581 13 M. ATHANS and P. L. FALB Optimal control McGraw-HilI 1966 An application of hybrid curve generationcartoon animation by electronic computers byTAKEO iviiURA Hitachi Central Research Laboratory Tokyo, Japan and JUNZOIWATA Hitachi Electronics Co. Tokyo, Japan and JUNJITSUDA Hitachi Central Research Laboratory Tokyo, Japan INTRODUCTION Curve generation techniques are gaining importance in the field of computer graphics. Curve generators using either digital or analog techniques can be built. However it is extremely advantageous to use hybrid techniques by taking advantage of superior analog curve generation capability. This results in small storage requirements for a digital computer and a relatively fast display time. In this paper, as an application of hybrid curve generation techniques and computer graphics, computer animation problems are dealt with. Motion picture cartoons and other types of animation require extraordinarily great expenditures of labor, since each individual cartoon frame must be drawn by hand. These frames, each one of which incorporates only minute changes, are then photographed one after another. We have recently developed two computing methods for producing animation: (1) Representing the picture in mathematical equations and moving it by switching the constants of the equations (analog computer method); and (2) having two frames drawn by an animator. The curve indicating the movement between these two frames is then read into the computer. According to the results calculated by the computer, animations between the two frames are machine-drawn (hybrid 141 computer method). The second method offers more advantages from the practical point of view, because it is easier to draw a picture which is faithful to the artist's intention. A nalog computer method Basic principles Individual pictures in animated cartoons consist of a multitude of highly complicated lines. However, each individual section of the picture can be simulated by means of relatively simple curves. For example, a curve can be approximated by a series of parabolas. In most cases, each section consists of simple closed curves. Consequently, it is possible to take a circle as the basis of a closed curve, and then to modify it to make a desired pattern. -y• Figure 1 - Circle-test circuit 142 Spring Joint Computer Conf., 1967 A circle can be generated by a so-called "circle-test circuit," shown in Figure 1. In an analog computer, the modification of a pictorial pattern can be performed simultaneously with the generation of the circle. Thus, it is possible to produce a picture by varying in succession the manner of modification as numerous circles are being produced repeatedly one after another. These are displayed on a cathode ray tube. If slight differences are introduced in the parameters in the transformation circuit for each one of these individual curves, then it will appear as if the picture is moving continuously. x-0-v-0-( 0) X Y Lh yx stretch (Compression) /m' ~'\e i qJ $x kl, ! I I I I I II I I - 111111111 111111 I II I I I ; 111111 I I 1111111 T ran sf 0 r mat i on by I I I I ( d) . i . i x i y I I y - Displ acement V :~ T ran s for mat ion -$-x (c) (e) Figure 3 - Transformation of coordinate grid Rotation y :-m-: $v -$-, :~: $v +, (d) by Non-Linear Transformation (e) Non-Linear Transformation formation. In this manner, one can modify the basic circle to produce a large number of desired shapes. Besides modifying circles, it is naturally possible also to begin with other differential equations. For example, one can use a damped oscillation ~ircuit. If this is displayed on the phase plane, one will obtain logarithmic spirals. However, if the decrement is made smaller, it will be possible to black out the area inside the circle. If this process is discontinued before completion, one will obtain a circle with thick lines. Other differential equations for obtaining other solutions are also conceivable. However, just as in the case of modifications, if they are exceedingly complex, they will cease to be practical. Figure 2 - Transformation methods The chief means of modifying the basic pictorial patterns are as shown in Figure 2. Although all of these are transformations of the coordinates, the procedures of (d) and (e) in Figure 2 have the effect of distorting the coordinate axis. Figure 3 shows how the coordinate grids are changed by these transformations. Thus, if one takes into consideration these transformations of the coordinate grids, one can anticipate the shape which a given pictorial pattern will have after its trans- Examples of actual applications Figure 4 is a picture of Oba-Q, the hero of a comic strip enjoying popularity in Japan. Figure 5 is a picture of rabbit driving a car. As for the former the truck, eyes, mouth, and legs consist of seven closed curves. The eyeballs are blacked out by spirals, and the hands and the hair are made by conics. The functions of movement, expansion and contraction, modification, etc., can be provided by several potentiometers in the computing circuit This can be done Cartoon Animation By Electronic Computers 143 Figure 5 - A rabbit driving a car Problems of the analog computer method This method has the advantage that the pictures produced on the cathode ray tube can be moved on real time. However, the method also has two important drawbacks. One is the fact that it is difficult to produce a picture which is faithful to the artist's intention. The second drawback is that in order to obtain complicated pictures the computing circuit itself will become complicated. Hybrid computer method General introduction this method an animator draws out by hand two separate frames of the cartoon. These two original drawings as well as the curves indicating the movements between the two, are read into the computer. Then the computer generates the intervening frames by interpolation. A hybrid computer is used for the following reasons. First, input operations can be performed conveniently if the curves are read in an alog fashion. In addition, since the pictures must ultimately be drawn, analog techniques will be necessary in these sections. The curves were represented by means of the coordinates of representative points. Although in this method it is necessary to use a greater amount of data to represent the picture, it is possible to represent even highly complicated curves, and any picture conceived by the animator can be produced easily. The curves can also be modified or revised freely in any way. ~n Figure 4- Oba-Q displayed on a cat hod ray tube either manually or under the program control of the digital computer. In carrying out these experiments, we used the Hitachi ALS-2000 analog computer, which has an iteration rate of 3 KC. Reading in the pictures As is shown in Figure 6, a curve is represented approximately by suitable sampling points: PI' P z••• P7 • The following four types of points will be necessary: a Initial point. This is the point where the curve begins. The pen of the XY recorder is lowered at this point. 144 Spring Joint Computer Conf., 1967 2 Then one must generate a smooth curve which will pass accurately through the given points and wi11 connect with the given tangents. The first process is performed by the digital computer, and the second by the analog elements. Ps Figure 6- Representation of a curve by point coordinates b Intermediate points. These are the intermediate points along the curve. They ought to be connected smoothly with the points preceding and following them. c Break point. This is an intermediate point on a curve at which the curve bends in a different direction. d Terminal point. This is the point where a curve ends. The pen of the XY recorder is raised at this point. The pictures are read into the digital computer by means of a series of points, and are then memorized by the computer. Each point ir:cludes information concerning the position (the coordinates) and the type of point. A special curve reader is used. This reader consists of a pen for position detection and a set of function switches. As the pen is moved along the curve, the coordinates of the points are detected electromagnetically and are transformed into digital quantities. The point coordinates are read into the computer by operating the switch. The type of point is distinguished by selecting the appropriate function switch. Reproducing the pictures There are various conceivable methods of reproducing a curve by joining together a series of points, for instance the method of joining the points by means of arcs or parabolas. We adopted a method of utilizing analog elements by which it was possible to draw these curves simply and conveniently. As shown in Figure 7, if one specifies both the positions of each of the points and the tangents of the curves at each of the points, then it. will be possible to reproduce the original curve with almost complete fidelity. However, a prerequisite for this is that the series of points must have been sampled with a sufficient degree of coarseness making possible a faithful representation of the original curve. The following two processes must be performed: 1 The tangents must be calculated. Figure 7 - Curves are designated by the positions of the points and the directions of the tangents Figure 8 - Calculation of tangents by parabolic approximation Calculation of tangents In order to calculate the tangents, the smooth curve passing through a given series of points must be expressed by equations. Here we adopted the parabolic approximation. Let us suppose that there are four points: Pi -2 , Pi-I, Ph and Pi+l' as shown in Fig. 8. First, we shall draw the parabola Ii-I, having an axis perpendicular to Pi-2Pj and passing through the three points: P i-2, Pi-I, and Pi. Let Qi-I,2 be the point of intersection of the tangents of li-l at point P i - l and point Pi. Next, we shall draw the parabola Ii> having an axis perpendicular to P i - 1 Pi+l and passing through the three points: Pi-I, PI. and PHI. Let Qi,l be the point of intersection of the tangents of Ii at points Cartoon Animation By Electronic Computers P i-1 and Pi· Taking into consideration Qh the central point between Qi-l,2 and Qi,h we assumed that Pi-1Qi £!nd PiQi were the tangents at P i-1 and Pi of the approximate curve between points P i-1 and Pi. Since the tangents of the curve at each point will not strictly coincide before and after the point, the curve will therefore bend in a different direction at each point. However, if the points in the series have been spaced at suitable intervals, the differences in the tangential directions will be so small as to be negligible, and these variations will make no difference from the practical point of view. a b + (, + sf 145 Consequently: d~ x (0) = Xl X (00) = X2 yeO) = YI X (00) = Y2 dy dx t=o dx Q = trYI f-XI I - trY2 f-X2 t=oo "'" x Q b' 0' + y Figure 9 - Block diagram for generation of a smooth curve Generation of smooth curves Having obtained the two points Pt(x1,yt) and P 2 (X2,Y2), as well a', Q(~, 7]), the point of intersection of tangents T t and T 2 at PI and P 2, we next draw a curve passing through these points and having the given tangents. This can be conveniently mechanized using the analog elements. Taking into consideration the dynamic characteristics of the XY recorder, we employed the circuit shown in block diagram form in Figure 9. Let us suppose that each input terminal is fed the values: 1 = Xb l' = x , 2 = X and 2' = Y(X and Yare certain values), and that the circuit is in steady state. Then the outputs will be x = Xl and Y = Yl· Let us next change the input at 1 and i' to X2 and Y2 respectively, and at the same time let us change the input at 2 and 2' to X + ~ - Xl and Y + 7] - Yb respectively. Then the response of the circuit will be: x(t) =X2 + [(XI-)(2) (l+t) + (g-X2) Q PI P2 Figure 10 - The curve changes its shape according to the tangents TJ and T2 Therefore, the resultant curve I = (x(t) , yet)) starts from PI (XbYI), terminates at P 2 (X2,y2) and has the given tangents at PI and P 2. Curve l has a shape enclosed by the triangle QPIP2 and its shape changes depending upon the directions of tangents TI and T2 , as shown in Figure 10. This method can provide a seemingly natural curve and is quite adequate for the purpose of curve generation required here. Interpolation of pictures between the two frames There are two methods available now to provide a cartoon figure with a sequence of movement. 146 Spring Joint Computer Conf., 1967 I I I I I I . I \ t \ ,, , i\ \ 52 \ I , \ , \ \ \ \ ;Olj \ \ \ I \ \ , I I I I I I , ; I I I I I I I I I I / I I I I I I I ! \ , \ I I I I \ \ , I I \ , \ I I I \ I I \ I \ I \ I I \ \I \ \ Aeij ,, \ \ Finally, let us take the weighted mean of ASii and to obtain the required point Au. This will give: tu2j i ) I , ,, " /,' Matrices /cSiwsi and keiwei can each be calculated by the following equations: ~iwsi 1 - (SIX ~ Snx)2 + (SlY - Sny)2 If the expansion rate is k~j: f/:: 1, 2, ... ,n, \; - 1, 2, ... ,m Next, let us assume W ej to be the rotation matrix for superposing the vector enel on vector qjPj. If the expansion rate is kei : urJ~ wilJ WWjl + (Slx-Snx) (PjX-Qjx) +(Sly-SnY) (Pjy-Qjy) WSj2 = (SlySnY) (PjX-QjJ -(Slx-Snx) (Pjy-Qjy) Figure 11 - Interpolation of Type I qjPj uril L-U,si2 Here, /"" Type I In this method, the original curve is given, as well as the curve after it has been moved and/or modified. Furthermore, the sequence of movement is specified for representative points on the curve. Then the specified number of interpolation curves are prepared for the changes intervening between both curves. Linear interpolation is adopted as the method of interpolation. That is, interpolation is performed by the fundamental operations of movement, rotation, and expansion and contraction. Let us assume that the curve in the original drawing No.1 is given by the series of points S., S2 ... , Sn, and that the curve in the original drawing No.2 is given by the series of points el, e2 ... , en (see Figure 11). Let us suppose that there is a one-to-one relationship between the points in both series, for instance, that point Si will be at point ei after it has completed its movement. Let us also suppose that points Sl and Sn are chosen as representative points, and that the sequence of movements of each is given by points PI-Pm and points ql-qm respectively. If we wish to calculate Au, the ith point on the jth interpolation curve, we assume wsi to be the rotation matrix for superposing the vecotr SnS 1 on vector r Here, wejl Wej2 (eIX-e nx ) (Pix-Qjx) + (ely-e ny ) (Pjy-Qjy) (ely-e ny ) (PjX-Qjx) (eIX-e nx (Pjy-Q y) By means of this transformation, one can obtain the series of points for the group of curves changing continuously, in both their shapes and their positions, from curve S., S2 .... Sn to curve el, e2 .... en. Type II In this case, one original drawing will suffice. The original curve is moved by a combination of movement, rotation, and expansion and contraction. This type of transformation is depicted graphically in generalized form in Figure 12. The method of moving the curve is the following. The reference point S' n is established at an appropriate point, and vector S' nS' 1 is drawn from this reference point to a suitable length and in a suitable direction. This is taken as the reference vector. N ext, if the curve is a jtk transformation curve, two points: Q'j and P'j are given, and one determines the transformation relationship for shifting the reference vector to the vector Q' jP' j. The original curve is then moved using this relationship. The following equation is used to calculate Ai}. the itk point on the jtk interpolation curve: Cartoon Animation By Electronic Computers the representative points are, nor does it matter what types of points are the points in betw~en both of the representative points. For instance, if oner. wishes simply to move the picture as a whole, it will be enough merely to select the first and last points in the series of points as the representative points. The parts to be moved are not limited to a single place . Any number of places can be specified. , . ,, , I I I I I 147 I I , \ \ \ \, " \ ,, \ , I I "\ \I , I I I I I I I I I I I Pm , PJ \, P2 qm , qj s~ q; q2 Figure 12 -Interpolation of Type II Here, w\ = (S'lX-S ' nx) (P'jX-QjJ + (S'IY-S' ny) (P'jy-Qjy) Wj2 = (S'IY-S' ny) (P'jX-Q'jx) -(S'lX-S' nx) (P'jy-Q'jy) By means of this transformation, both the position and magnitude of the original curve can be transformed while maintaining a similar shape. In designating the range within which the curves are moved, it does not matter what types of points Figure 13 - Examples of animated cartoon Results of application and their consideration Animated cartoons were actually prepared on the basis of the methods described above. A typical example is shown in Figure 13. As is evident from the figure, the pictures can be moved about quite freely by this method, and the animated cartoons made in this manner were more or less satisfactory. In the future, when further improvements have been incorporated in the picture input device and the digital program, it is expected that this system will be quite satisfactory from the practical standpoint. In the system described above, the pictorial patterns are read in as planar patterns, and new patterns are formed by specifying movements on the flat planar surface. However, animated cartoons are fundamentally projections on a plane surface of the movements of spatial objects. In order to approach this problem, one may formulate, by the trial and error method, an equation corresponding to a clay model such as that shown in Figure 14, and the eyes and mouths can be produced by drawing frontal diagrams. Their x-y coordinates can be read, and assuming them to be present on this curved surface, one can calculate z from the above equation. If the spatial pattern is prepared in this way as an equation, one can draw a diagram of its projection on a flat surface as long as the center, the scale, and the direction of the designated points have been specified. This is, however, merely a provisional method which can be used only for limited purposes. 148 Spring Joint Computer Conf., 1967 It is found extremely advantageous to use hybrid techniques in order to meet the demand of faster curve displays with lower computer memory requirements. In our experiments, however, still a large amount of computing tasks were done in the digital computer, i.e. calculation of tangents. It was desired to develop an analog curve generato,r capable of generating a smooth curve given only successive point coordinates. We have developed such a curve generator, which is now in use. ACKNOWLEDGMENT Many thanks are expressed to Researcher Fujii, who took charge of many sections of the actual work in the performance of this research project. Figure 14 - Three demensional display of an equation extracted from a clay model, and features drawn on its surface Stochastic computing by B. R. GAINES Standard Telecommunication Laboratories Harlow, Essex, United Kingdom for realization of the STeLLA learning scheme,l and later extended to give rise to a family of computing elements capable of performing all the normal functions of an analog computer-this was called a Stochastic Computer.4 It is impossible within the scope of this paper to do more than describe briefly a few basic stochastic computing elements and configurations; Reference 4 discusses the theoretical basis of stochastic computing and describes some previous uses of random variables in data-processing, whilst Reference 5 describes the application of stochastic computing to process identification by means of gradient techniques, Bayes estimation and prediction, and Markov modelling. INTRODUCTION The Stochastic Computer was developed as part of a program of research on the structure, realization and application of advanced automatic controllers in the form of Learning Machines. l,2 Although algorithms for search, identification, policy-formation and the integration of these activities, could be established and tested by simulation on conventional digital computers, there was no hardware available which would make construction of the complex computing structure required in a Learning Machine feasible. The main problem was to design an active storage element in which the stored value was stable over long periods, could be varied by small increments, and whose output could act as a 'weight' mUltiplying other variables. Since large numbers of these elements would be required in any practical system it was also necessary that they be small and of low cost. Conventional analog integrators and multipliers do not fulfill requirements of stability and low cost, and unconventional elements such as electro-chemical stores and transfluxors are unreliable or require sophisticated external circuitry to make them usable. 3 Semiconductor integrated circuits have advantages in speed, stability, size and cost, and it was decided to design a computing element based on standard gates and flip-flops which would be amenable to large-scale integration. A binary up/down counter has the properties of an incremental store, but requires many bits if the increments are too small and of variable size. If incrementing is made a stochastic process, however, 'fractional increments' may be effected in the stored count. Thus, if an increment of one-tenth of the value corresponding to the least significant bit is required, the counter may be incremented by unity with a probability of one-tenth-this is the basic principle of stochastic computing' to represent analog quantities by the probability that an event will occur. This principle was first embodied in the ADDIE, a smoothing and storage device with stochastic input and output Stochastic representation of numerical data The stochastic computer is an incremental, or 'counting,' computer whose computations involve the interaction of unordered sequences of logic levels (rather than digital arithmetic between binary 'words'), and is in this respect similar to the Digital Differential Analyser,6 Operational Hybrid Computer,7 and Phase Computer. 8 In all these computers quantities are represented as binary words for purposes of storage, and as the proportion of ON logic levels in a clocked sequence (or frequency of pulses in the operational computers and asynchronous DDAs) for purposes of computation. In conventional computers, however, the sequences of logic levels are generated deterministically and are generally patterned or repetitious, whereas in the stochastic computer each logic level is generated by a statistically independent process; only the generating probabiJity of this process is determined by the quantity to be represented. This distinction is illustrated in Figure 1 which shows typical sequences in the various forms of computer: (a) is the output from a synchronous rate multiplier, or from the 'R register' of a DDA, corresponding to a store % full-it will be noted that the ON and OFF logic levels are distributed as uniformly as possible; (b) is the output of a differential 149 150 (a) Spring Joint Computer Com., 1967 01 101 101 in its representation of quantity, the lack of coherency or patterning in stochastic sequences enables simple hardware to be used for complex calculations with data represented in this way. 101 Output from Rate Multiplier (b) 0000 I Stochastic computing Output from Differential Store (c) 0101 (d) O r"'\1 V I (f) 10 1001 10 10101 101 o 000 101 Ensemble of Stochastic Sequences Figure 1-Typical computing sequences in various incremental computers store in the Phase Computer-the OFF logic levels in a cycle all occur before the ON logic levels giving the synchronous equivalent of a mark/ space modulated signal; (c) through (f) are examples of stochastic sequences with a generating probability of % -any sequence [including (a) and (b)] may occur, but the proportion of ON levels in a large sample of such sequences will have a binomial distribution with a mean of %. Although a probability is a continuous variable capable of representing analog data without quantization error, this variable cannot be measured exactly and is subject to estimation variance. The effect of this variance on the efficiency of representation may be seen by comparing the number of levels required by various computers to carry analog data with a precision of one part in N: • The analog computer requires one continuous level; • The digital computer requires lo~ kN ordered binary levels; • The DDA requires kN unordered binary levels; and • The stochastic computer requires kN2 unordered binary levels; where k > 1 is a constant representing the effects of round-off error or variance, k == 10 say. The N 2 term for the stochastic computer arises because the expected error in estimating a generating probability decreases as the square-root of the length of sequence sampled. Although this progression from 1: log2N : N : N 2 shows the stochastic computer to be the least efficient Although there are occasions when the [0, 1] range of probabilities may be used directly in computation, e.g. Bayes estimation and prediction,5 it is usually necessary to map analog variables into this range both by scaling and shift of origin. Many mappings have been investigated, but the two considered in this paper are of particular interest because they give rise to computations similar to those of the conventional analog computer. These are: (i) Single-line symmetric representation.-Given a quantity, E, in the range -V L E L V, represent it by a sequence with generating probability, p, such that: p(ON) == lhE/V lh (1) so that maximum positive quantity is represented by a logic level always ON, maximum negative quantity by its being always OFF, and zero quantity by a random sequence with equal probability of being ON or + OFF. (ii) Dual-line symmetric representation.-The first representation suffers from the disadvantage that zero quantity is represented with maximum variance, and when values near zero must be distinguished it is better to use a two-line stochastic representation. Let the quantity, E, in the range -V L E LV, be represented by sequences on two lines, the UP and DOWN lines, such that: if E > 0 (2) \E/V p(UP == ON) if E ~ 0 l 0 I., '\ < 0 \.J) if E:::::"" 0 l 0 These equations give a minimum variance representation which is not necessarily maintained during a computation, and the most general form of the Dual-Line Symmetric Representation follows from the inverse equation: E/V == p(UP == ON) - p(DOWN == ON) (4) The next sections describe stochastic computing elements to perform the complete range of analog computing functions, inversion, multiplication, addition, integration, and so on, using synchronous logic elements acting on stochastic sequences. p(DOWN == ON) ~-E/V if E Stochastic invertors, multipliers and isolators To multiply a quantity in representation (ii) by -1 requires only the interchange of UP and DOWN lines. In representation (i) the logical invertor, whose output is the complement of its input, performs the Stochastic Computing same function. Consider the relationship between the probability that its output will be ON, p', and the ( i) [E] ~>-p-----[>-p-'~) [E'] UP : [E'] Dowil probability that its input will be ON, p; that is p' == I-p (5) From equation ( 1 ) , the relationship between these probabilities and the quantities they represent is: p ~E/V ~ (6) p' == ~E'/V ~ (7) hence (8) E' == -E Multiplication of one quantity by another may be effected by an inverted exclusive-OR gate in representation (i), and by a pair of similar gates in representation (ii); realizations of these stochastic multipliers in NAND logic are shown in Figures 3 (i) and 3 (ii) respectively. + + ~:~ ::~Vl C = A.B v + + + p(V.V'.D.D.') and:p(DX) == p(U)p(D') + p(D)p(V') (14) p(V.V'.D.D') Figure 2-Stochastic invertors (j) + p(C) == p(A)p(B) (1-p(A» (1-p(B» (9) and from equation (1):(10) peA) == lhE/V ~ (11 ) pCB) == ~E' IV V2 so that:pee) == ~(EE'/V)/V ~ (12) which is normalized mUltiplication of E by E'. A similar result is obtained for 3 (ii) by substitution from equation (4) in the relationships:p(VX) == p(V)p(V') p(D)p(D') (13) + x (i i) i 5i An important phenomenon is illustrated by the use of a stochastic multiplier as a squarer. For example, it is not sufficient to short-circuit the inputs of the gate in Figure 3 (i), for its output will then be always ON. This difficulty arises because we have assumed that the stochastic input sequences are statistically independent in obtaining equation (9) above. Fortunately an independent replication of a stochastic sequence (in fact a Bernoulli sequence) may be obtained by delaying it through one event, and Figure (4) illustrates how a squarer may be constructed using the multiplier of Figure 3 (i) together with a flip-flop used as a delay; similarly the multiplier of Figure 3 (ii) may be used as a squarer by feeding delayed replicas of V and D to V' and D' respectively. Flip-flops used in this way act as stochastic 'isolators', performing no computation but statistically isolating two cross-correlated lines. [E] ---'i>__~~~ [E2] SYMBOL A.B CLOCK [E] Figure 4-Stochastic squarer rEEf v] [E] (i j) u. u' yo. 0' 0- = U.o' v o. u' U" = Figure 3-Stochastic multipliers That multiplication does occur may be confirmed by examination of the relationship between input and output probabilities for the gates of Figure 3. For 3 (i) we have: Stochastic summers Having seen how readily inversion and multiplication may be performed by simple gates, one is tempted to assume that similar gates may be used to perform addition. However this is not so, and stochastic logic elements must be introduced to sum the quantities represented by two stochastic sequences. For example, consider two stochastic sequences in representation (i), one representing maximum positive quantity and hence always ON, the other representing maximum negative quantity and hence always OFF. The sum of these quantities is zero, and this is represented by a stochastic sequence with equal probabilities of being ON or OFF. A probabilistic output cannot be obtained i 52 Spring Joint Computer Conf., 1967 from a deterministic gate with constant inputs, so that stochastic behaviour must be built into the summing gates of a stochastic computer. Stochastic summers may be regarded as switches which, at a clock-pulse, randomly select one of the input lines and connect it to the output. The output line then represents the sum of the quantities represented by the input lines, weighted according to the probability that a particular input line will be selected. The random selection is performed by internaIlygenerated stochastic sequences, obtained either by sampling flip-flops triggered by a high bandwidth noise source, or from a delayed sequences of a central pseudo-random shift-register; these sequences we call 'digital noise.' r_l ~ l c. J [E'] A B DIGITAL NOISE (0 p(DX) = Y2p(D) (l-p(U'» (l-p(U» + Y2p(D') (18) Stochastic integrators, the ADDIE and interface The basic integrator in a stochastic computer is a reversible counter-if this has N 1 states, then the value of the integral when it is its k'th state is:f = (2k/N - l)V (19) If this quantity is to be used in further computations it must be made available as a stochastic sequence, and this may be generated by comparing the binary number in the counter with a uniformly distributed, digital random number ( obtained from a central pseudo-random shift-register or a sampled cycling counter). In representation (i) the integrator output line is ON if the stored-count is greater than the random number. In representation (ii) the stored count is regarded as a number in twos-complement notation, whose magnitude is compared with the random number, and whose sign together with the result of this comparison determines whether the UP or DOWN output lines shall be ON. + CLOCK u [E] 0 u' [E'J D' [E] ~A~oof\ [E'] ~B.....t.....I>-i-V DIGITAL (in NOISE (I) CLOCK Figure 5-Stochastic summers Two-input stochastic summers for quantities in representations (i) and (ii) are shown in Figures 5 (i) and 5 (ii) respectively; the cross-coupling between the inputs in Figure 5 (ii) reduces the variance of the output. That addition does occur may be confirmed by examination of the relationship between input and output probabilities for the gates of Figure 5. For 5(i), assuming symmetrically distributed digital noise, VIC have:pee) ~p(A) ~p(B) (15) and hence from equations (10) and (11):pee) ~ (~(E E') )/V ~ (16) which is normalized summation of E and E'. A similar result is obtained for 5 (ii) by substitution from equation (4) in the relationships:p(UX) ~p(U) (l-p(D'» ~p(U') (l-p(D» (17) = = = + + + + rJE+E'] Digital Noise Figure 6-Stochastic integrators Figure 6 shows two-input stochastic integrators for each representation with output lines as described above, and gating at the input of the counters to form the sum of the quantities represented by the input lines (stochastic summing is not required because the number of lines used to represent the sum is greater than the number of lines used to represent each input). A HOLD line at the input of the integrators determines whether they are in the integrate or hold modes, and Stochastic Computing the normal integrator symbol is used for the overall device as shown in Figure 7. [E]~---I . Ul"\1 "- ""'~.., Figure 7-Integrator symbol That integration does occur may be confirmed by examination of the expected increment, 8, in the counter at each clock-pulse. For 6(i):8 == N2V [p(A)p(B) - (l-p(A) (l-p(B))] (20) == (E + E')/N (21) by substitution from equations (10) and (11), which is equivalent to an integrator with a time-constant: T Nlf (22) where f is the clock-frequency. A similar result may be obtained for 6(ii) by substituting from equation (4) in the relationship:- = 8 =~[2P(U)P(U') + p(U) (l-p(U')) + p(U') (l-p(U)) - 2p(D)p(D') - p(D) (I-p(D')) - p(D') (I-p(D))] (23) == ~ [p(U) - p(D) + p(U') - p(D')] (24) =2(E + E')/N (25) which is equivalent to integration with a time constant: (26) T ==N/2f where f is the clock-frequency. 153 it may be shown that the fractional count in the store tends to an unbiased estimate of the probability that the input line will be ON at a clock-pulse (for the integrator of Figure 6 (i) connected as in Figure 8). That is, for an N+l state store in its k'th state: p(lNPUT == ON) == kiN (27) with an estimation time of order N clock-pulses, and a final variance: (7"2(i)) == p(1-p) IN (28) Thus any quantity represented linearly by a probability in the stochastic computer may be read out to any required accuracy by using an ADDIE with a sufficient number of states, but the more states the longer the time-constant of smoothing and the lower the bandwidth of the computer. Since the distribution of the count in the integrator is binomial, and hence approximately normal for large N, variables within the stochastic computer may be regarded as degraded by Gaussian noise whose power increases in proportiOn to the bandwidth required from the computer. Integrators or ADDlEs form the natural output interface of the stochastic computer. Integrators with their HOLD lines OFF also form the input interface for digital or analog data, since binary numbers may be transferred directly into the counter to generate a stochastic output sequence, and analog quantities may be converted to binary form by comparison with a standard ramp generated by a cycling counter driving a digital! analog convertor. Similarly an integrator may be used to hold a constant and thus act as a 'potentiometer' if coupled to a multiplier. Arbitrary functional relationships may be realized by imposing a suitable nonlinear relationship between the stored count and the stochastic output; for example, an integrator whose output is ON when the count is equal to or above mid-value, and OFF when it is below mid-value [in representation (i)] approximates to a switching function. [Ee-kt] [E] HOLD Figure 8-ADDIE The integrator with unity feedback illustrated in Figure 8 is called an ADDIE, and performs the important function of exponentially averaging the quantity represented by its input. In terms of the quantity represented it may be regarded as a transfer function: 1I (s+ 1) , and in terms of the stochastic sequences Time --+ • Figure 9-Stochastic second order transfer function-response to unit step in position and velocity 154 Spring Joint Computer Con£., 1967 Higher-order smoothing than that of the AVDIE may be realized by connecting integrators in cascade with appropriate feedback loops. The inset of Figure 9 shows a stable second-order stochastic transfer-function using two stochastic integrators in representation (i). If the first integrator has M+ 1 states, and the second N 1, then the transformation realized is:MN M -r- E out + T E out + E out = E in (29) Random Pulse Generators + where f is the clock-frequency. So that the undamped natural frequency is: f fn = 2II(MN) 1/; and the damping ratio is: (30) I = 'h (M/N)lh (31) FF.'I F~ 1 ne responses to unit step in position and velocity for the two conditions: M=2 1O , N=210 and M-29 , N=210 : are shown in Figure 9; these were obtained on the Mark I Stochastic Computer at STL. Generation ot stochastic sequences The central problem in constructing a stochastic computer is the generation of many stochastic sequences (K for each integrator, where K is the number of flipflops in the integrator counter), which are neither cross-correlated nor auto correlated , and which have known, stable generating probabilities. This reduces to a requirement for a number of independent sequences each with a generating probability of 'h, since any probability may be expressed as a fractional binary number and realized to any required accuracy by appropriate gating of a set of lines equally likely to be ON or OFF. For example, Figure 10 illustrates one technique for generating stochastic sequences with a generating probability of }~ by sampling flip-flops toggling rapidly from a noise source: the following NAND gates convert two of these sequences to one with a generating probability of %. This may be confirmed from the relationship:p(C) = (l-p(A)) p(A)p(B) = 3A (32) The generation of digital noise as shown in Figure 10 is quite attractive since radio-active or photon-emitting sources may be coupled directly to semiconductor devices to form random pulse generators. It suffers from the disadvantage that very high toggling rates must be attained in FFl and FF/ and sampled by very narrow strobes in FF2 and FF/, if a high clockfrequency is to be used. The Mark I Stochastic Computer had six ten-bit integrators, each with their own internal digital noise source consisting of ten-bit counters cycling at a high clock-frequency. These counters were sampled at a very much lower and anharmonic clock-frequency to Figure lO-Generation of stochastic sequence (p==%) give an effectively random output. This was not a practical arrangement since the sampling frequency had to be so low (500 cs), that the overall bandwidth of the computer was only 0-1 cs ! ; as an experimental tool, however, it has enabled us to check out configurations, such as that of Figure 9, whose behaviour is difficult to determine theoretically. + PSEUDO-RANDOM OUTPUTS < < ([)--G)--- Figure It-Central pseudo-random generator The Mark II Stochastic Computer, at present under construction, uses entirely different techniques which have reduced both size and cost and increased the clock-frequency to IMcs. A single, central pseudo~ random shift-register9 •16 is used to generate stochastic i55 Stochastic Computing sequences for all computing elements. Different sequences for each element are obtained by appropriate exclusive-OR gating of the shift-register outputs, giving delayed replicas of the sequence in the shift register itself. Such a generator is illustrated in Figure 11, and with 43 flip-flops it is capable of supplying 100 16-bit integrators for one hour without cross-duplication. Serial arithmetic is used in the integrators of the Mark II computer so that the counter may be realized using shift registers and the comparators by far fewer gates. In this way a sixteen-bit stochastic integrator may now be fabricated from only six dual in-line packages. A clock-frequency of 16 Mcs in the shiftr.egisters gives rise to a clock-frequency of 1 Mcs in the stochastic computer, and respectable bandwidths of 100 cs or so may now be attained. Applications of stochastic computers The Stochastic Computer was developed for problems arising in automatic control, and immediate applications are apparent mainly in the fields of adaptive control and adaptive filtering. Gradient techniques for process identification and on-line optimization are the simplest examples of powerful control methods which lack the hardware necessary for their full exploitation. Direct digital control using conventional computers is not practical with a small plant, and conventional analog computers· are expensive because of the large numbers of multipliers required. Two-level or polaritycoincidence multiplication10.11 has been suggested 12 as one means of realizing gradient techniques cheaply and reliably using digital integrated circuits; however a comparison of six techniques for multiplication in a steepest-descent computation has shown that, for the same convergence-time, polarity-coincidence and relay mu1tiplication give much greater variance in parameter estimates than Goes the equivalent stochasticcomputing configuration. 5 In this particular computation the stochastic multiplier may be regarded as a statistically-linearized I3 •14 polarity-coincidence multiplier, and the addition of sawtooth dither to the input signals, which has been suggested as a means of effecting such linearization,11.15.16 may be seen as a technique for obtaining a pseudo-stochastic sequence. Maximum likelihood prediction based on Bayes inversion of conditional probabilities is the basis of many 'learning machines' for control and pattern-recognition, but the equations for estimation and prediction are difficult to realize with conventional computing elements, and a stored-program digital computer has been required for experiments with this technique. Using a three-input variation of the ADDIE, however, the estimation of normalized likelihood ratios, and pre- diction based on them, become very simple operations requiring little hardware. 5 The theoretical basis for the economy in hardware offered by stochastic computing lies in a theorem of Rabin 17 and Paz,I8 to the effect that a stochastic (or probabilistic) automaton is equivalent to a deterministic automaton which generally has more states. An immediate practical example of this phenomenon may be found in adaptive threshold logic as used in patternclassifiers such as the Perceptron19 or Adaline. 20 An adaptive threshold logic element with discrete weights will not necessarily converge under the Novikoff conditions,21 even though the weights can take values giving linear separation, whilst the equivalent stochastic element may be shown to converge under the same conditions. 5 A pictorial explanation of this difference is that the direction of steepest descent followed in adaptive threshold logic with continuous weights cannot be taken if the weights are discrete, and there are then several directions of 'almost steepest descent.' Deterministic logic has to 'chose' one of these directions and, if it is the 'wrong' one, may get into a cycle· of wrong decisions, whereas stochastic logic has a probability of taking any of the possible directions of descent and is bound to take the right one eventually. CONCLUSION The main performance measure of a computer are size and range of possible problems, speed and accuracy of solution, and physical size, reliability and cost of the computer. There are strong interactions between these measures and it is unlikely that any one form of computer will ever be optimal on all counts. The identification and simulation of complex processes, and the realization of multi-variable control systems, requires large numbers of computing elements such as multipliers, summers and integrators, working simultaneously and costing little. However these elements do not have to compute a solution quickly or accurately, for a bandwidth of 10 cs and an overall accuracy of 1 % is adequate in the simulation of economic and chemical processes, and in control systems where feedback is operative a computational accuracy of 10% may be ample. In these situations it is advantageous to trade the accuracy of the digital computer and the speed of the analog computer, for the economy of the stochastic computer. ACKNOWLEDGMENTS My thanks are due to Dr. J. H. Andreae (now at University of Canterbury, Christchurch, N.Z.) for long discussions on learning machines and computers, and for his criticism of this manuscrapt; to Mr. P. L. Joyce Spring Joint Computer Conf., 1967 156 for constructing the first Stochastic Computer and obtaining the results of Figure 9, and to S.T.L. for permission to publish this paper. REFERENCES 1 J. H. ANDREAE Learning machines m .tmcyclopaedia of Information, Linguistics and Control (Pergamon Press, to be published) 2 B. R. GAINES and J. H. ANDREAE A learning ma- 3 4 5 6 7 8 9 10 chine in the context of the general control problem Proceedings of the 3rd Congress of IFAC 1966 G. NAGY A survey of analog memory devices IEEE Trans. Electron. Compo 12 388 1963 B. R. GAINES Stochastic computers in Encyclopaedia of Information, Linguistics and ControJ Pergamon Press, to be published B. R. GAINES Techniques of identification with the stochastic computer Proc. IFAC Symp. Problems of Identification 1967 F. V. MAYOROV and Y. CHU Digital differential analysers Iliffe Books, London 1964 H. SCHMID "An operational hybrid computing system IEEE Trans. Electron Compo 12 715 1963 B. R. GAINES and P. L. JOYCE Phase computers 5th AICA Congress 1967 W. W. PETERSON Error correcting codes MIT Press & Wiley, New York 1961 C. L. BECKER and J. V. WAIT Two-level correlation on an analog computer IRE Trans. Electron Compo 10 752 1961 11 12 :~ 3 14 15 ]6 J7 18 19 20 21 The applicability of the relay correia tor and the polarity coincidence correia tor in automatic control Proc. 2nd Congress IFAC 1963 P. EYKHOFF, P. M. van der GRINTEN, H. KWAKERNAAK, B. P. TH. ''ELT~1AN Systems modelling and identification Survey Paper 3rd Congress of IFAC 1966 O. I. ELGERD High frequency signal injection: a means of changing the transfer characteristics of nonlinear elements WESCON 1962 A. A. PERVOZANSKII Random processes in nonlinear control Academic Press, New York 1965 P. JESPERS, P. T. CHU, and A. FETTWEIS A new method to compute correlation functions Proc. Int. Symp. Inf. Theo. 1962 G. A. KORN Random-process simulation and measurement McGraw Hill, Inc. 1966 M. O. RABIN Probabilistic automata Inf. & Contr. 6 230 1963 A. PAZ Some aspects of probabilistic automata Inf. & Contr. 9 26 1966 F. ROSENBLATT A model for experimental storage in neural networks in Computer and Information Sciences Spartan Books, Washington, D.C. 1964 B. WID ROW and F. W. SMITH Pattern-recognizing control systems in Computer and Information Sciences Spartan Books, Washington, D.C. 1964 A. NOVIKOFF Convergence proofs for perceptroTU in Mathematical Theory of Automata Polytechnic Press, Brooklyn & Wiley Interscience 1963 B. P. TH. VELTMAN and A. van den BOS The people problem: computers can help by E. R. KELLER, 2nd and S. D. BEDROSIAN University of Pennsylvania Philadelphia, Pennsylvania INTRODUCTION Each day tens of millions of people parade in and out of our academic and industrial facilities in search of their daily bread. Of these, many find their work challenging and stimulating. Countless others, however, are reduced to vestiges of human spirit by the frustrations of their environment, boredom with lack of responsibility, or misdirection of their talents. Consequently, they approach their assignments with something less than a maximum of enthusiasm. Meanwhile each day thousands of holes in personnel pegboards go unfilled. Positions requiring skill at all levels remain unclaimed because of inadequate or unavailable descriptions of qualified workers. Personnel Departments charged with the responsibility of recruiting, retaining, and developing effective human support for their respective organizations are often hopelessly frustrated by their inability to bring together people and jobs. From the standpoint of computer implementation we may interpret this as the problem of mapping a set of tasks into a universe of talents. A natural recourse, for people so inclined, is to attempt to manage this massi ve matching operation through computer mechanization. As evidenced by pertinent articles in such magazines as Business Week,l.2.3 American Education4 and Dun's Review,5 the people problem is far from being ignored. Although the mechanization of personnel information is by no means a novel concept, the mass storage of comprenehsive analyses of individuals is in its infancy. Of the many personnel data systems now in existence, those of Essol and IBM2 seem to be the most comprehensive and coordinated. From a cursory inspection, however, even those do not appear to treat the many details necessary to exploit fully the employee's desires and capabilities for future work, especially if unrelated to his present (or past) assignment. Through the use of existing techniques in mechanized inference-making6 and by judicious application of on-line storage and retrieval systems 6.7.8.9 it should be possible to develop and maintain a work force consisting primarily of interested workers. One can envision for instance filling a vacated position with someone from a relatively unrelated position by exploiting his competence in a hobby. We are concerned more with the general problem of storage and retrieval systems than with a particular application of them. In fact, the system described in this paper is directed toward flexibility of application rather than toward implementation of a specific file type. In order to demonstrate the utility of the system, data for use in resolving the people problem are being collected, stored and applied at the University of Pennsylvania. System organization The filing system The communication language and the system of interpretive processors used for maintaining the information files and for manipUlating the information during retrieval and output are named, collectively, GENERAL STORE. The overall system layout is shown in Figure 1. Although an input item to GENERAL STORE may be constrained in its form or its relation to other items in storage at the discretion of the user, GENERAL STORE is indiscriminate as to the nature of information stored in its files. For instance in the pilot model, a file of mechanical and electrical descriptions of electronic assemblies for use in system design and test is stored along with personnel information. lo In addition the user is permitted a maximum of flexibility in describing procedures for controlling file maintenance, interfile retrieval, and manipUlation of data for output. We turn now to the specific objectives in the conceptual design of GENERAL STORE which have been implemented in greater or less degree. In gen157 158 Spring Joint Computer Conf., 1967 Outline Item Description Document Nome 2 (Authorship) 2. I (Author I) 2.1.1 Nome 2.1.2 Address 2.1.3 Affiliation 2.2 (Author 2) 2.2. I Nome 2.2.2 Address 2.2.3 Affiliation 3 (Publisher) Figure'l - General store system diagram 3. I Publisher's Nome eral, however, the following discussion focuses on our goals rather than accomplishments. In fact, the GENERAL STORE concept could be implemented, with some reservations, as an extension of many existing on-line systems of which the Probiem Solving Facility at the University of Pennsylvania7 is an example. 3.2 Strl)ctl)rf?d F de and Constraints GENERAL STORE SysTem Executive Report Generator C)··6 List structured data files Just as the technique of preparing an outline is a familiar and powerful organizational tool for nearly everyone who has set pen to paper, the structuring of data records is becoming a commonplace solution to the problems of storing variable length, multiple entry, or historical information. This development is due in the main to LISP,ll IPL-V,12 and certain other existing list processing languages 13 ,14,15,16 through which manipulation of complicated data structures is simplified. In concept, each data fiie in GENERAL STORE has associated with it an ordinary outline describing the contents of a record in that file. By means of this outline both the user and the machine can establish a useful means of communicating information about the fiie so defined. In Figure 2 is shown an example of an elementary bibliographic file as the description might be given to GENERAL STORE. The numbers represent a means by which the user may reference each line of the outline,· and names are symbols by which the user may refer to each line. Some Hnes are contained in parentheses to indicate that these lines never actu- Publisher's Add ress Figure 2 - General store fixed file description ally contain data but are used only as classifications for, or pointers to, the items subordinate to them in the structure. These lines represent intermediate entries in the end-point code for each data line. This figure contains locations in the structure for information about two authors. As shown in Figure 3, the concept of multiple authorship can be indicated more concisely by replacing the author number with a letter. This practice permits the letter specified to assume any integral value. In fact, the number of items at any level may be specified as a variable. Data may be represented for input to G EN ERAL STORE in at least two ways. First, it is possible to specify an item for entry by stating a reference, either as a number or name from its outline description, followed by the pertinent information. In addition, GENERAL STORE employs a flexible system which permits specification of the line name by an abbreviation of the user's choosing. The second method involves writing the input information in a more conventional list notation where each sublist is enclosed in parentheses. Examples of these alternatives are shown in Figure 4. Relocation o/programs and data in available storage Since GENERAL STORE is intended to be implemented on a computer having iimited storage The People Problem: Computers Can Help Variable File Fixed File Outline Item Description Outline Item Document Nome (Authorship) 2. I (Author I) ) 2. 1.1 Name 2.1.2 Address 2. I. 3 Affiliation I"'"", (Author 2) Description Document Nome 2 2.2 J 59 ,.. ,.. ,.. / ..... , ,.. ,.. ,..'" 2 (Authorship) 2.N (Author N) 2. N.I Nome 2.N.2 Address 2.N.3 Affiliation 2.2. I Nome 2 .2.2 Address 2.2.3 Affiliation 3 (Publisher) 3 (Published 3. I Publ isher 's Nome 3. I Publisher's Name 3.2 Publisher's Add ress 3.2 Publisher's Address ."./ Figure 3 - General store comparison of fixed and variable file descriptions capacity in anyone device, it has been necessary to design the system in such a way that only active programs and data are stored in the fastest memory devices.17 The user, by specifying to which files he will need access, causes G EN ERAL STO RE to arrange for as many of these files as possible to be loaded into direct-access devices. Files not so specified will still be available during processing, but may entail longer access times. Flexible arithmetic and string manipulating functions The user may in some cases request standard output formats and may give specific information for input. In this system he has been provided with a report-generating facility and the ability to describe procedures to be followed in selecting records for output or in preparing a record for output. By making available to the user a set of list -processing functions in a language understood by the GENERAL STORE Interpreter, or included as a program in the GENERAL STORE data files, he can perform extensive modification of any item. Such modification may be made either in terms of other items in the file or on the basis of information introduced at the time of modification. User-defined constraints on input data In preparing an outline to describe a file, the user may include certain restrictions to be placed on the data that will fill each outline item. In this way, a considerable amount of checking can be done by the processor to help insure the validity of input data. For example, the constraints may simply require that the data contain only numeric characters, or that the input field be a particular fixed length. Again, constraints specifying a relationship among parameters in this or other files may be stipulated. This procedure is demonstrated by the personnel file described in Figure 5. Shown with the description are a few examples of constraints which may be imposed on input data. Of particular interest is the restriction of total salary to a value greater than or equal to the sum of all individual project salaries. I nterfile reference Just as in specifying constraints, the boundaries of a single file may be crossed at will when specifying criteria for retrieval. In fact, it may be convenient to think of each data file as a sublist of items in the master file structure. It is exactly in this way that programs and data fit into the GENERAL STORE concept. 160 Spring Joint Computer Conf., 1967 JONES,BT) (2.1.1 (2.1.2= 3120 WALNUT ST.-PHILA.,PA.) (2.1.3= UNIV. OF PENNA.) REFERENCE BY NUMBER OR (AUTHOR I/NAM E = JON ES, BT) (AUTHOR II ADDRESS = 3120 WALNUT ST. - PHILA., PA.) (AUTHOR I/AFFILlATION = UNIV. OF PEN NA.) REFERENCE BY NAME OR 2 =« JONES, BT)(3120 WALNUT ST.}(UNIV. OF PENNA.» CONVENTIONAL LI ST ENTRY Figure 4 - Generaf store input forms Outline Item Description Employee Number 2 Nome 3 (Address l 3.N (Address Nl 3. N.I Dote first occupied 3.N.2 Address 4 Phone 5 (Earnings) 5. I Totol Salary Constraint FORM ~ FORM SXXXXX.XX MAG~ 5.M XXXXX r WI (5.M.2l (Project M) 5.M.1 Fund Number 5.M.2 Project M Solary FORM: XXXXX.XX Figure 5 - Possible constraints on input data Complete operating instructions At any point a user may request guidance from the system as to what alternative steps are available to him, or how to proceed in accomplishing a specific goal. It should be possible, given the ability to gain access to the system, for an uninitiated user to bootstrap his way into useful, and possibly even optimal, operation of GENERAL STORE. For example, a prospective user need only know that GENERAL STO RE contains information pertinent to his problem and that he can at any time request aid from the system by pressing an interrupt key. Following an affirmative response to the initial system-generated question: DO YOU NEED HELP? TYPE (YES) OR (NO), a dialogue ensues in which the user may be informed of the different types of file available and the data contained in each file. If a useful file is disclosed, a discussion may be requested concerning the ele- mentary techniques for retrieving items from specific records. Logical statements are then written which define retrieval constraints on the items to be observed and on other items in the same record. As the user gains facility, he is introduced to techniques involving more complex functions of the form and magnitude of the data fields. If he wishes to spend the computer time and money, the user can eventually learn from the system itself virtually all of the operating details of GENERAL STORE. Optional queueing of ajob for deferred production During any retrieval procedure, the approximate number of records which will result is noted by GENERAL STORE and may be requested in advance by the user. If either this number or the time estimate for completion of the job appears to be too large, the user has two options. First, he may reduce the scope of his request and reinitiate searching, or second, he may place the procedure and data in a production queue with a specified priority. Jobs in the queue will be performed in order of priority when the system is not involved with real time operation. File protection GENERAL STORE allows the user to modify the contents of a file not only by introducing data directly from the outside, but also by writing a procedure which will operate on items within the file as well as on external data. As mentioned earlier, it is often the case that constraints specified by the user will be adequate to check modification procedures. However, when it is felt that the constraints are not adequate to ensure proper updating, the user may request a display of the files as they would appear after modification but \vithout actually introducing a permanent change. As a further hedge against unintentional destructive modification of its files, GENERAL STORE maintains a complete historical record of the transactions it has processed. This record may be used to recreate the file structure if necessary. Delayed completion of on-line procedure I t is often the case that a user has not allocated enough on-line time to complete a particular procedure. By using the appropriate features of GENERAL STO RE, the user can store his procedure and the intermediate results in such a way that they can be subsequently recalled. The resultant effect IS one of no apparent interruption in processing. Storage and modification of procedures Although some procedures may be used only once and discarded when the results have been obtained~ The People Problem: Computers Can Help it is more likely that others will be used repeatedly. This eventuality is accommodated by storing these complicated procedures with variations as required for execution on different sets of data. A filing system having many of the characteristics of GENERAL STORE is being used to store personnel information on research workers at the Univeristy of Pennsylvania. By storing job descriptions, historical analyses, and the individual's own interpretation of his capabilities and his interests, it is anticipated that Personnel Directors will have a new tool with which to move closer to their goal of successfully matching jobs and people. Preliminary to full scale implementation of GENERAL STORE on an IBM System/360 computer, pilot runs are being made using programs developed for the IBM 1401 and IBM 7040. Data collection Collection of original and up-date information is by far the most time consuming, unreliable, and frustrating of all the tasks involved in operating the personnel file. This feature is by no means unique to the approach under discussion. I ts solution relies heavily on the proper approach not only to each individual, but also to the managers of the institution or department for which he works. Through frequent, but unobtrusive, contact with the individuals, and by building an attractive, responsible, and worthwhile image of the system, it is hoped that the problems generally e~countered in massive personnel data collection can be minimized. The personnel file concept described herein is completely in step with the times. Never before has the people problem centered so specifically on getting the right person in the right job. Technological progress accompanied by social unrest has introduced new pressures on individuals and on employers. One has only to read current help-wanted advertising in any newspaper to see evidence of the present magnitude of a perennial problem which has been complicated by the introduction of new requirements based on new skills stemming from new technologies. One advertisement which appeared in the New York World Journal Tribune for October 20, ] 966, was presented essentially in the form of a structured list with eight first-level descriptors, 22 second-level and more than 195 third-level descriptors. We submit that without competent assistance neither an individual nor his prospective employer can respond effectively to an advertisement written to this degree of specificity. I n our judgment, the most promising approach to the "People Problem" at this time lies in full and intelligent cooperation between computers and people. 161 ACKNOWLEDGMENTS The research on which this paper is based was performed at the I nstitute for Cooperative Research of the University of Pennsylvania. It was supported in part by the U. S. Navy under Contract NObsr95215. The authors wich to acknowledge with thanks the stimulating discussions with Mr. A. M. Hadley and also critical evaluation of the manuscript for this paper. REFERENCES 2 3 4 5 6 7 8 9 10 II 12 13 14 15 16 17 Describing Men to Machines Business Week I 13 4 June 1966 C ompllters move lip in personnel ranks Business Week I 18 23 Oct 1965 Picking top men Business Week 97 6 March 1965 WO REED Data link American Education 31 1 June 1965 Office services Dun's Review 86 part 2 166 Sept 1965 M E MARON R LEVIEN Relational data file: A tool for mechanized inference execution and data retrieval 3rd National Colloquium on Information Retrieval University of Poonsylvania May 1966 N S PRYWES A problem solving facility Moore School of Electrical Engineering 20 July 1965 TOLLE IN FOL: A generalized language for information storage and retrieval application Control Data Corp April 1966 Generalized information system IBM Application Program White Plains New York 1965 A M HADLEY et al Project monidan final report on contract NObsr-95215 Dept of Navy BuShips The Institute for Cooperative Research University of Pennsylvania 30 June 1966 J McCARTHY et al LISP 1.5 programmer's manual M IT Press Cambridge Mass 1962 NEWELL ALLEN Information processing language V Prentice-Hall Englewood Cliffs N J 1961 G LOEV SLIP list processor University of Pennsylvania Computer Center Philadelphia Pa April 1966 K C KNOWLTON A programmer's description of L6 Communications of the ACM 9 8 616 1966 COM IT programmer's reference manual Research Lab of Electronics M IT Cambridge Mass 1961 D J FARBER R E GRISWOLD I P POLONSKY SNOBOL: A string manipulation language Journal ACM 11 21 Jan J 964 W C McGEE On Dynamic Program Relocation I BM Systems J 4 3 184 1965 File handling at Cambridge University by D. W. BARRON, A. G. FRASER, D. F. HARTLEY, B. Ll\.NDY and R. 1\1. NEEDHAl'v1 The University Mathematical Laboratory Cambridge, England INTRODUCTION On designing a filing system The file handling facility now in use on the Titan* computer at the University Mathematical Laboratory, Cambridge provides storage for data over indefinitely long periods of time and yet contrives to make that data available on demand. An 8 million word disc is augmented by the use of magnetic tape. The organization of this available space is entirely a system responsibility and the user can normally expect data to be transferred into his immediate access store area on demand. The filing system is part of a multi-programming system which has the ability to hold several user programs simultaneously in the core store, and provides on-line facilities for interacting with these programs. Jobs are initiated either off-line for normal job-shop working, or through console keyboards for interactive on-line working. Several of the basic concepts of the Titan system have been derived from the earlier supervisor written for the Atlas 1.1 In particular, the concept of a storage "well" which is used to buffer all data passing to and from the "slow peripherals" was an essential part of the Atlas system. This well has been implemented at Cambridge as an integral part of the more versatile file handling mechanism now described. The concept of a standard internal code with interpretation for every peripheral is also carried over from the earlier work. The file handling proposals for the Multics system 3 had an important influence on the design as did the experience gained during an earlier attempt at implementing a permanent storage facility. 2 The final choice is a compromise between a number of conflicting requirements. Some of these are listed below. This choice was not made easier by the realization that it would have a profound influence on the future pattern of machine use. Paramount amongst the design requirements for a filing system is the need for confidence on the part of the user. To obtain this the protection given against the effects of system failure must be demonstrably adequate. The user must also be able to determine the extent of the protection provided against misuse of his files either by his own error or by the activities of others. On the other hand, the protection system must not be so designed that it absorbs an unwarranted amount of the available space or time, and the normal method of securing file access must not be too cumbersome. The natural patterns of file use (including group working) should not be distorted by system controls. Protection against system failure implies some safeguard against the misplaced activities of the operating staff. Not only is it necessary to check operator actions but the system design should be such that non-standard activities are unnecessary and unreliable short cuts are eliminated. The latter may be expected to arise when the normal mechanism for recovery from system failure itself fails, and also if the recovery mechanism is protracted or too expensive in terms of lost computing activity. Poorly designed controls ahd inadequate flexibility can give rise to unexpected patterns of activity. Not all of these will be foreseen, but the design must be checked against such variations as can be foreseen. For example, the system of priorities used for space allocation should not be so designed that it can be negated by a simple change in the user's pattern of behaviour. The demand for space at Cambridge exceeds the supply of space on disc. Magnetic tapes are used to provide the necessary extra space and housekeeping operations are therefore required to regulate disc loading. The file store must, for operational purposes, appear to be uniform and some care is required to keep disc and tape transfer to a minimum. The limited *Titan was developed from the prototype leT Atlas 2 163 164 Spring Joint Computer Conf., 1967 facilities provided by the hardware should not be totally concealed, however; some feedback which encourages the user to work along lines in keeping with the physical limitations of the system will prevent the extravagance which arises when a uSer is not aware of the fact that he is overloading the system. Documents The Titan system provides storage and handling facilities for documents, where a document is defined as any ordered string of data that is available to a user program, but is stored outside the area administered by that program. Access to a document is provided by system calls and the user program may use these to read, alter or create documented information. Data that are input through the slow peripherals (paper tape and punched cards) are assembled into individual documents by the system. Each document is identified by a title !hat is supplied by the user, and is local to the job to which it belongs. Similarly, a user program may create documents which may be assigned individually to particular types of slow peripherals (line printer, paper-tape punch or plotter). The input and output processes themselves are timeshared supervisor activities that operate quite separately from the associated user program execution. Jobs The word job is used here to identify the connected series of activities initiated by one set of input documents, and one distinct activity is called a phase. Each phase of a multi-phase job operates on some or all of the documented data from that job and may at the same time create new documents. The documents iefl by one phase can be used by the next and represent the major connection between the separate phases of one job. A typical example of a multiphase job is the sequence: edit, compile, assemble and run. The word job also' identifies the series of activities initiated from an on-line console during the time that the user of the console is logged in. I n this case it is most likely that the activity will be multi-phase. Local and global data The data flow to and from peripherals and the flow of data between phases is an organizational consideration which is not necessarily the concern of the user program. The commands which control the data flow and initiate each phase, resemble a simple programming language in which documents are the data elements. For many command sequences it is necessary to recognize a number of intermediate documents which exist only to interface between distinct activities. I ntermediate documents are also brought into existence to communicate with slow peripherals. These documents are the local data for the job concerned and for convenience their names have a scope which is local to the job; thus no confusion arises if two identical jobs are timeshared. Global documents are required whenever data from one job are held over for subsequent processing by another, and for this purpose a document can be given a title that is recognized in a global context. Such documents are called files. There are a number of important differences between local and global documents: (a) The scope of the name. (b) The iife - iocai documents cease to be of value after the last phase of a job has been completed. (c) Activity - a local document usually has a high rate of activity throughout its short life. (d) Backup-by virtue of its short life and high activity a local document will usually be guaranteed high cost space. An infrequently used global document could be relegated to lower cost and less immediately available space. (e) Protection -local documents are protected by the narrow scope of the document name. Globai documents require a separate mechanism for protection against accidental or malicious misuse. (f) Recovery - after a system failure the cost of recovering a lost local document will usually be no more than the cost of repeating one job. Global documents, which can be expected to be much greater in total volume, are not so easiiy recovered. In view of these differences, two distinct software packages are used to provide the supporting facilities for the document handling system. One is concerned with local documents and the other is responsible for the files. The facilities for processing a document are quite independent of the two support packages and the method of processing makes no assumptions about how a document is classified. Two types of processing are provided: (a) Character string processing - The document is assumed to contain variable length records of characters in a standard format. Appropriate system calls are provided for character at a time and line at a time transfer. (b) Literal processing- No format assumptions are made and the data is transferred in blocks of 512 48-bit words. File Handling At Cambridge University Disc space control One system of space allocation is used for all documents and all disc transfers are supervisor controlled. Files are also held on magnetic tape (see below) and space allocation here is the responsibility of the File Support package. Document storage space on the disc is allocated in units of 1 block (512 words), and this is controlled by a map of the disc space. Each block of disc space is represented by a corresponding entry in the map, and a document is represented by linking together the appropriate entries. Free space is also linked through the map. I t is important to note that this linking is not part of the data space, and the map is stored separately. This enables the system to locate the position of any block of a document without access to the document itself: for example, a document can be deleted from the disc by a simple rechaining operation within the map. Parts of the map are held in the core store as and when space requirements permit, but they are dumped on to the disc when it is necessary to ease the demand for core space, and also periodically so as to permit recovery of documents in the event of system failure. The remaining sections of this paper describe the various facilities and support packages of the filing system; further details of local document organization are dealt with in a further paper. 5 File identification and access Any prospective user of the computer must gain access by quoting his initials and project number. This combination, known as his title, is required for off-line as well as on-line working, and is checked before any computing is permitted. The title of the file owner is the first of three alphanumeric components which identify a file. In general it is the file owner who creates and maintains the files which carry his title and the protection system is based on this. A file owner can extend some or all of his privileges to one or more nominated part owners. When making such a nomination the file owner gives the title of the part owner together with a status which specifies the privileges which can be enjoyed. These privileges range from permission to read from a restricted set of files to the right to create new files on behalf of the owner. Certain privileges can be acquired by anyone who can quote an alphanumeric key specified by the file owner. A person who is able to do this is known as a key holder. A prospective file user may therefore be acting simultaneously in up to four different capacities, 165 namely: Owner, Part Owner, Key Holder and General User. In each capacity his privilege with respect to one file may be different and if he requires access to a file then it will be granted if in any of his capacities the required activity is permitted. It is the file status that defines the four permitted ranges of activity. File status Four letters, each chosen from the following set, define the status of a file, and each corresponds to one capacity in which the user might act. N Access not permitted. L Loading permitted for execution only. R Reading permitted for any purpose including loading. C Status change permitted in addition to reading. D Explicit deletion permitted in addition to reading and status change. U Updating (changing the contents) is permitted together with explicit or implicit deletion. (The latter arises if a new file is created with the same title.) F All activities (including change of status) are permitted. The author of a file will usually specify the status when a file is created, although a default setting is available and file status can be changed at a later date. File class In addition to status the author also specifies the class of file. This item exists to allow the system to choose the most suitable space allocation strategy for the file. The four principal classifications are: A Archive file - The file will normally be held on magnetic tape. W Working file- The file will be held on disc where possible and, for security, a copy will be held on tape. T Temporary file - Disc space will be used but no security precautions will be taken. S System file - The file will be given preferential treatment, but will otherwise be handled as a class W file. File deletion We define file life as that span of time during which the file is known to the system. It is not in any way related to the existence of anyone copy of a file held on one particular medium. File life is terminated in response to an explicit command, although file deletion can also take place when a new file is created 166· Spring Joint Computer Conf., 1967 with the same title as an existing file. Both activities are subject to the status checks described above. The performance of a filing system depends upon the volume of data held within its control, particularly where more than one siorage medium is involved. Protracted file life and the undue proliferation of files must therefore be viewed with some concern. To restrict either of these without adversely affecting the value of the filing system requires a sympathetic analysis of the file owner's requirements. The user must be encouraged to make this analysis himself and a management procedure is required to ensure that the appropriate standards are being maintained. Arbitrary controls applied by the system are likely to result in abuse or undue frustration. Compromise is clearly necessary. A system which allows the user to make post-dated requests for file deletion and status change was rejected on the grounds that, at Cambridge, the validity of a file depends more on circumstance than on time and therefore would not significantly assist the user to make a realistic evaluation of his files. In contrast, the chosen policy is to make file deletion as simple as possible by providing a variety of aids to file directory maintenance. These are included as special facilities in the command system. Commands The commands which are handled directly by the filing system are augmented by other macro-commands which provide more specialized facilities. The basic set is the minimum complete set necessary to provide the facilities outlined above. OPEN, CLOSE, DELETE and CHANGE STATUS provide essential file handling facilities. SET KEY and UNLOCK service the key holder system and CREATE PART OWNER and REMOVE PART OWNER service the part-ownership mechanism. The basic set is extended so that many of the administrative features (including dump and re-Ioad) can be carried out by conventional object programs that communicate with the central filing facility. In particular there are system calls that operate on the individual attributes of a file held by the system. Each attribute type has an associated system defined status against which all requests are checked. File storage on magnetic tape Magnetic tape is used for two distinct reasons; to augment the limited supply of disc space and to hold redundant copies of files so that the chances of accidental loss by system failure are reduced. Operationally the two are linked. Data are copied to mag- netic tape at intervals of about 20 minutes and thereafter are protected against loss by system failure. The existence of a copy on tape leaves the system free to recover disc space when necessary simply by erasing the disc copy of a selected file. However, since the latter action reduces the level of security, magnetic tapes are duplicated. A dump program copies to magnetic tape only those files for which there is no up-to-date dumped version. Class T (Temporary) files are never dumped. At weekly intervals the files for one owner are collected together on an archive tape. Several file owners will usually share one tape for this purpose. If a file is deleted or updated the old version is automatically removed from the directory of files. However, since three generations of archive are kept the careless file owner has up to two weeks in which to recover an erroneously deleted file. The file directory contains a record of the files that have been stored on magnetic tape and this is sufficient to allow automatic file recovery. In addition, it is planned to make the archive tapes available on demand so that a file owner may, for the duration of one job, have access to all his files even though the total volume may exceed the available disc space. File reloading is batched and a file containing a queue of requests for file reloading is processed at suitable intervals. The user can file such a request and when doing so he can ask for a message to be transmitted to him upon completion. For off-line work the execution of a job may be dependent upon the availability of a file and if not available a request for reloading is added to the queue. Disc space allocation Each file owner is allocated a specific amount of disc space which he may not exceed. The allocation is split into space for ordinary files and space for temporary files. If a filing attempt for an ordinary file fails through lack of space then the file will be reclassified as temporary and a second attempt will be made. The total space allocated exceeds that available and thus it is possible for space to be exhausted even though no user is in error. In this case all the files for one user are off-loaded. The user affected in this way is chosen in strict rotation from all those not active at the time. When a file is off-loaded the disc copy is erased as soon as it is known that a copy exists on magnetic tape. Temporary files are lost by the offloading process. System files and other files which are in general use are classified as S and are never off-loaded. Each user is given a (usually zero) space allocation for his File Handling At Cambridge University class S files; all users are treated equally. Protection against system failure File dumping takes place every 20 minutes and has already been described. Each dump tape contains sufficient information to allow the file directory to be reconstructed. The restart process recovers files from dump tapes and archives ad-lib until recovery is complete. The first files to be recovered are those owned by the system which are held on the appropriate archive; thereafter recovery proceeds simultaneously with general use of the filing system. Many system failures do not result in loss of information on disc and a recovery procedure is available that retrieves as many files as possible on the assumption that the file was not over-written arbitrarily. To make this possible the methods used to update the disc control map and the file directory must failsafe and this it is hoped has been achieved by carefully sequencing the operations which take place during the file creation and deletion. In a system in which overlapping is extensively employed, care is required to ensure that the official recognition of a change in state is withheld until that state has been established. CONCLUSION A number of implementation points are worth noting because of the extent to which coding and maintenance are thereby simplified. A privileged but otherwise conventional user program handles file 1L.., 101 access and the various necessary interlocks. The file processing and disc control are again separate but part of the supervisor. All other facilities (including dumping and file recovery) are carried out by conventional user programs. One file format is used for all dump and archive tapes and all file directories are held as files in their own right. The interlock requirements are thus minimized and by holding a detatched map the timing considerations which are essential to a successful recovery system are simplified. ACKNOWLEDGMENTS The work described in this paper is part of the program of research and development being carried ou at the University Mathematical Laboratory, Cambridge under the direction of Professor M. V. Wilkes F.R.S. The early stages of the basic supervisor work were carried out in collaboration with International Computers and Tabulators Ltd., subsequently the project has been supported by the Science Research Council. REFERENCES T KILBURN R B PAYNE D J HOWARTH The Atlas S.upervisor Proc EJ C C n 279 1961 2 A G FRASER J D SMART The COMPL language and operating system Computer Journal vol 9 p 144 3 R C DALEY P G NEUMANN A general-purpose file system for secondary storage Proc F J C C p 213 1965 GIM-l, a generalized information management language and computer system by DONALD B. NELSON, RICHARD A. PICK AND KENTON B. ANDREWS TRW Systems Redondo Beach, California The current demand for more comprehensive information systems had created an increasing need for generalized information management. Generalized information management denotes a complex of interrelated information capabilities encompas~ing both human functions and the operation of automatic devices which supplement and extend human capabilities. The methodology and techniques for such generalized information control have been defined and are exemplified in G 1M-1, a generalized information management language and computer system now being implemented at TRW Systems. With the use of GIM-I, the problems inherent in defining more comprehensive information systems can be completely and economically resolved. The definition of a system for such information management requires a communication network of many remote stations and a central complex of one or more computers. It also must accommodate natural language queries and multiple technical vocabularies. Additionally, such a system must provide automatic correlation of information both within and between data files, complete as well as selectively limited information security, and automatic controls for data reliability, data conversions and the synthesis of data as a function of other data. All of these requirements for comprehensive information transfer can be satisfied by the use of G 1M-I. GIM-I permits natural language access to data list information stored in a random bulk storage device which also is available to other computer programs, and the remote user may select any available equipment in the entire network for an information output. Although GIM-I is general to information management needs, its design accommodates the particular information requirements of anyone application area with special purpose efficiency in computer operating times. GIM-I is essentially machine independent, and the calculated addressing scheme permits retrieval of any required data from random storage in a single access. The GIM-I language is limited natural English, and the formats and rules for remote inputs are both simple and very general. The language processors, together with the use of dictionaries, permit inputs to be stated directly in the technical terminology natural to each application area, and also provides the user with plain language outputs. The GIM-I language uses the lineal format natural to prose text, accepts any number of variable length words, and permits a limited freedom of word order. Minimal vocabulary prohibitions to ensure uniqueness apply only to the data list identifiers and are guaranteed by automatic language audits, but no vocabulary prohibitions are imposed on the information values. Additionally, the GIM-I language permits the definition of any number of identifer synonyms, and provides a large selection of input conditionals which may be used to limit outputs to only relevant information. In G 1M -I, the "master" dictionary contains the data list identifier nouns, and the "user" dictionary associated with each data list contains the attribute identifier nouns. The master dictionary also contains the process identifier verbs and the language connectives; and, in each of these dictionaries, any number of synonyms may be defined for each identifier. The connective words include all conjunctions, prepositions, articles and special symbols specified for possible use in language inputs. The definition 169 170 Spring Joint Computer Conf., 1.967 of these connectives, then, includes the designation of relational operators and other conditional words for limiting information searches to only relevant data. Therefore, the specification of connectives will dictate operational procedures not only for the language preprocessor but also for the automatic correlation of data and the numerous data processors within GIM-l. Additionally, a limited natural syntax has been defined for GIM-l, since any completely natural syntax would require a probabilistic processor contradictory both to practical efficiency and to the absolute identifications required for updating data lists with complete accuracy. The GIM-! data base consists of many different data lists, and all GIM-l information is stored in data lists. Each data list is identified by a DATA LIST 1. D. and consists of many different items of information; and each item consists of an ITEM 1. D. followed or not by relevant information values. All information values, then, are stored in items within data lists, and each VALUE is identified by one of the many attributes defined for each data list. Each attribute is identified by an ATTRIBUTE I. D. and any number of attributes can be defined for the identification of all possible data list values. However, since items contain only relevant values or none at all, the usual document has values for only a few of the many attributes defined for a data list. The standard format for organizing GIM-I information, then, has a column heading for each of the following four information elements: Information element DATA LIST I.D. ITEM LD, ATTRIBUTE I.D. VALUE Mnemonic Code D I A V An example of information organized in accordance with such a format is illustrated in Figure I. Since a data list may have virtually unlimited attributes which may be used or not in any given item, a user is neither restricted to a small set of fixed identifiers nor required to assign a value to each identifier for every item. For example, assume all references ror transporation systems are itemized by library code, with each reference containing such standard information as TITLE, AUTHOR, ABSTRACT, etc. In addition to these standard attributes, however, much greater indexing depth can be achieved by also defining many special attributes such as GROUND EFFECT MACHINES; HELICOPTERS, tvl0NORAILS, TOTAL COST, and PRINCIPAL CITY. These extra attributes, then, define special information which mayor may not be relevant to anyone transportation system reference. For instance, the majority of references may include absolutely no information for these extra attributes and; therefore; no extra values would be stored, However, for any item which may contain such special information, these extra attributes would enable an indexer to describe the reference item in much greater depth. Provided such attributes were defined, then, a GIM-I user might initiate the following input: LIST THE TITLE AUTHOR AND ABSTRACT OF EVERY TRANSPORTATION SYSTEM REFERENCE WITH THE PRINCIPAL CITY "LOS ANGELES" AND THE GROUND EFFECT MACHINES "AVC-l" OR "HOVERCRAFT" Furthermore, the organization of G I M -I information permits the remote user to add new attributes for a data list whenever he may wish, and without any effect on the existing data list information. For instance, an indexer might encounter a transportation system reference which included a description of the net change in smog levels during trial tests of some proposed system. Assuming all of the existing attributes to be unsuitable for a description of this information, the indexer might wish to add the new attribute HYDROCARBONS. This new attribute then would be available for possible use in any old or new transportation system reference. The four elements within the standard format for G 1M -1 information can be considered both as an attribute value DATUM having three IDENTIFIERS (Figure 2), and as a set of two dyads, with each dyad having one DATUM and one IDENTIFIER (Figure 3). Consideration of the standard format as a sequence of two dyads of information is a concept of particular importance. Together with the automatic correlation of G I M -1 data, both within and between data lists, this concept permits the definition of extensive and very complex information formats. The construction of an extended data format by a unidirectional chaining of dyad units is illustrated in Figure 4. As an elementary example of data format extension, assume the unidirectional construction in Figure 5 as defining both the retrieval and update-add correlation between the attribute A UTH 0 R in the ANEW DOCUMENT data list (defined in Figure 1) and another data list identified by TECH/AUTHOR. In Figure 6, therefore, any value for AUTHOR automatically will be also an item 1. D. for TECH/ Gim-l, A Generalized Information lVianagement DATA LIST I. D. ATTRIBUTE I.D. ITEM I.D. NADC-AX-6123 ANEW DOCUMENT J7 J ATTRIBUTE VALUES TITLE MOD 3 SIMULATION DESIGN AUTHOR JOHN DOE WAL TER SMITH SOURCE DDC 457 321 DESCRIPTORS P-23 SIMULATION ADX AIRCRAFT SIMULATION - -- - - - -- - ...:. v NOL-25682 - - TITLE S012 REPORT SOURCE NEL REMARKS ORDERED ON MAY 7, 1966 - ~ ~ ~- TITLE - - PETER BROWN SOURCE DDC 123 896 DESCRIPTORS X503 TRAJECTORY """'-- - Figure I-Example ofGIM-I data organization rA~UMI I Figure 2 - Standard data format A ~----------~~--~ IDENTIFIER DAJUM IDENTIFIER DATUM .-----------.-----~ A I V Figure 3 - Standard data format B I~1-"-1A. ,.~lnD~lt~ITI7ATIVV',------t . . . ,~. _------,. ~ D D--'I~IL.....,Ir--A--'I-v""'l -I A V 1------... V V Figure 4 - Extended data format ANEW DOCUMENT AUTHOR -. BALLISTIC PERFORMANCE AUTHOR -- "V" IDENTIFIERS D t A D WITH P-23 AIRCRAFT MISS DISTANCE -- D I A -~ NEL-251367 .A.. 12 NOV 65 DESIGN FOR SIMULATION OF JULIE AND JEZEBEL EXERCISES - - -.- DATE ABSTRACT - -- item I. D. for TECH/AUTHOR. However, any retrieval of an item I. D. for TECH/AUTHOR will not include any associated data. The elementary correlations in Figures 4, 5, and 6 are constructed by unidirectional chaining of the values of an attribute in one DIA V unit with the item I. D. in another DIAV unit. However, many other types of automatic correlation also are available to the GIM-l user. For instance, "Christmas Tree" interrelationships between different items within the same data list require bidirectional chaining of the values of an attribute with the item I. D. in a single DIAV unit. Additionally, some commonly required correlations are considerably more complex. For instance many interrelationships require correlations between the values of two attributes in different data lists, together with automatic item identifications. This type of correlation is illustrated in Figure 7 as an elementary construction with only two unidirectional correlatives and with only one correlative defined for the values of an attribute. I TECH/AUTHOR ..-......_ ....._.L...--I Figure 5 - Example of extended data format AUTHOR, although each item I.D. for TECH/ AUTHOR is not necessarily also a value for AUTH 0 R automatically also will include, as associated data, all the information stored under the relevant In Figure 7 then, each update of a value in DI A3 requires the automatic update of an item I.D. in D 2. Similarly, each update of a value in DIAl requires the automatic update of a value in D 2A 4· However, the automatic update of D2A4 further req~ires the automatic identification of each item I.D. in D2 which also is defined as a value in DI A 3. The automatic creation of such "bridge" values I 172 Spring Joint Computer Conf., 1967 I I I I ... , II""\.. .. i\ JOHN DOE I II WALTER SMiTH - ~ AUTHOR I I MOD 3 • TITLE NADC-AX-6123 ANEW DOCUMENT VALUE ATTRIBUTE I. D. ITEM I. D. DATA LIST I. D. SOURCE -- - -I DATA LIST I. D. -~-- I ATTRIBUTE I.D. II !TEM !.D. ) JOHN DOE TECH/AUTHOR DOC 457321 - - ADDRESS I I VALUE NAS, SD OCCUPATION AGE I TEST PILOT 35 CATEGORIES NAVY FLIGHT TEST ------~ -- ~ ~ -- ~, - -~ - - WAL TER SMITH PO'\.. - .- 1 I --~- SIMULATION -- ~ -- - -- - - -- ADDRESS NAS, SD OCCUPATION MATH. ENG. ~~---~ -------- - .- ~ Figure 6 - Example of extended data format Figure 7 - Example of data list correlation between data lists, then, is required for any correlation between the values of two attributes in different data iists. Although these few examples of automatic correlation are elementary, they are sufficient to indicate the flexibility provided the G I M-1 user in defining extensions of the standard format for organizing information. GIM-l, then, permits the user to specify very complex data list interrelationships for automatic correlation. Only a simple dictionary code enforces any defined correlation for all subsequent inputs, and G I M -1 processes all interrelated information with total relevance and with complete accuracy. The several correlations available for specification by the GIM-I user include: • The automatic retrieval of associated information stored in other data lists. • The automatic updating of correlated information stored in other data lists. • The automatic updating of cross-indexed data lists. • The automatic calculation of data values as a function of other stored values. • The automatic coupling of unit values in associated sequences of mUltiple values. • The automatic creation of "bridge" values for correlation between data lists and items. • The automatic updating of all relevant information in "Christmas tree" data lists. • Full "Christmas tree" searches for retrieval and counting requests. • The automatic retrieval and updating of nonredundant information stored only in another data iist. Gim-l, A Generalized Information l\tianagement Among these several optional capabilities defined for user convenience, the automatic updating of information in correlated items and data lists is of particular importance. For example, a user might require optional access to information by classifications unique to his own technical area, while the technical library might wish to file new information only by DDC index number. These apparently different user needs are not contradictory, however, since both requirements can be accommodated by the automatic updating of correlated information. Assuming the information for each D DC index number is defined to include such attribute identifiers as TITLE, AUTHOR, ABSTRACT, SOURCE, TECHNICAL AREA and DESCRIPTORS, and also assuming the relevant correlation codes are stored in the dictionaries, the GIM-I system would update not only the DDC data list stated in the technical library input, but also automatically would update any number of correlated data lists and items defined by the dictionary codes and the values stored under the encoded identifiers. This complex capability, therefore, eliminates not only the need for complex intervention by the user but also the probability of human error, and ensures the complete accuracy and relevance of interrelated information. GIM-I further accommodates the remote user by providing complete as well as selectively limited information security, automatic value conversions and complex format audits of input values. Additionally, the executive control system provides priority processing and automatic record-keeping of all transactions. The standard data processing capabilities of GIM-l include the retrieval of stored information; the counting of information values; the deletion, addition or changing of stored information; the remote initiation of new dictionaries and data lists and a special report processor for generating special output formats. As exemplified by GIM-I, then, generalized information management is based on a new and interdisciplinary approach to the total problem of information, and is a comprehensive complex of in- 173 terrelated capabilities. As indicated by its name, however, GIM-l is only an initial competence with many extensions of present capabilities, as well as new capabilities, planned for the future. At present, for example, the automatic updating of information between data lists provides a selective dissemination of information, but only within the GIM-I data bank. However, the rapidly growing need for selective dissemination requires an external distribution; and, because of the construction of functional group interest profiles, the impetus for the flow of information rests with the system rather than with the user. Therefore, in a future version of GIM-I, the present selective dissemination of information will be extended to indude automatic decisioninformation outputs to all users. Similarly, the increasing demand for international information transfer requires a system which accommodates multiple languages, as well as multiple technical vocabularies, with direct access to mutually shared data banks without language translation. However, GIM-I already accommodates mUltiple technical vocabularies with direct access to mutually shared data lists without vocabulary translation. Additionally, GIM-I is both machine independent and language dependent. Therefore, in a future version of GIM-I, the present natural English language will be supplemented by Russian, French and German. This description of GIM-I has been brief, and the summary of its capabilities gross. As an example of generalized information management, however, it has been sufficient to indicate the methodology and some of the techniques for resolving the problems inherent in designing more comprehensive information systems. Also, it has indicated the need for integrating the definitions of company information standards and management responsibilities with the specification of a communication network and the software control system. And hopefully, this brief description of GIM-I has been sufficient to verify generalized information management as a new and powerful tool for supplementing and extending present capabilities in information systems. Inter-program communications, program string structures and buffer files by E. MOREN OFF andJ. B. McLEAN Rome Air Development Center Griffiss Air Force Base, New York INTRODUCTION Receptiveness to change is one of the most important attributes of a programming system. There are obvious advantages associated with being responsive to changes in a system's environment without being required to essentially redesign the system. These environmental changes may take the form of variations in the functions to be performed by the system or in the applications to which the system is put. They may be reflected in modifications of the content or structure of the data which the system is to process. They may even appear as changes in the number, type or function of the equipments comprising the computer within which the system is operated. The introduction of program modularity is one of the most common approaches to designing programming systems capable of evolutionary growth and modernization. Traditionally, modularity is associated with the division of a program system into its major components, which in turn are divided into their subcomponents, and so on. The degree to which this can be actually reduced to practice, however, is a function of the facilities available for combining the program modules into larger programs. Factors which must be considered are the extent to which inter-program dependencies exist, the nature of the mechanism available for resolving such dependencies, and the time at which they are resolved. If the program modules could be treated as completely separate entities, wholly independent of one another, they could be used as program building blocks to be arbitrarily combined to form larger programs. This generalization leads to the notion of a pool in which all program building blocks are maintained, available for use in larger programs to perform user-oriented functions. The application of Program String Structure techniques l allows such a generalization to be made, and hence allows for the realization of the notion of a program building block pool. The most essential feature of the Program String Structure concept is the introduction of Buffer Files through which all inter-program communications are achieved. Although the primary motivation for the development of this Buffer File mode of operation was to provide ~ program linkage mechanism which could be used as part of a Program String Structure, several very important benefits can be realized by its application outside the Program String Structure environment. It is the intent of this paper to examine these benefits in terms of the unique characteristics of the Buffer Files which make their realization possible. Program string structures The Program String Structure is based on the fundamental principle that a set of programs can be used collectively without actually being combined or integrated. This collective use of programs is realized by providing a mechanism for moving the data from one program in the set to another. Each program in the set is afforded, in turn, an opportunity to operate on the data in some prescribed manner. The mechanism is sufficiently general to allow for the collective use of totally independent programs. A program in the context of the Program String Structure, is a physically identifiable unit through which streams of data are passed. The program accepts one or more input data streams, operates on them in accordance with the logic implicit in the program, and then produces one or more output data streams. All programs are maintained in a program pool. Figure I illustrates the logical representation of a program. The primary characteristic of the Program String Structure is the introduction of a Buffer File in the path of each stream of data flowing from a output of one program to an input of another program. A program is designed so that its input data streams are taken from Buffer Files and its output data streams go to Buffer Files. The program need not be concerned with where the data found in its input Buffer File comes from (or how or when it got there), nor where 175 176 INPUT Spring Joint Computer Conf., 1967 # *" I INPUT 2 1 PROGRAM A ! OUTPUT ~ i i ! I *" OUTPUT 3 1 Figure I - Logical representation of a program in a program string structure the data it places in its output Buffer File goes to (or when it will get there or what will be done with it). The operation of a program is completely asynchronous with respect to any other program with which it may be collectively used. The synchronization of the program with concurrently running programs and the coordination of access to common data between itself and concurrently running programs, are automatically performed by the Buffer File linkage mechanism. The Buffer Files thus completely isolate a program from the programs with which it is linked. Figure 2 illustrates the logical representation of the use of Buffer Files as a program linkage mechanism. The use of Buffer files is a necessary but not sufficient condition for allowing sets of totally independent programs to be used collectively. Each program assumes a format and structure for all data on which it operates which is inherently embedded in the logic and code of the program. Hence, a program expects the data at each of its inputs to be of a specific format and structure. The program, in turn, generates data at each of its outputs in a specific format and structure. Consequently, the Program String Structure must provide a means for insuring that that data reaches a program's input Buffer File in a form required by the program. To insure data is properly formatted and structured when it reaches a program's input Buffer File, the format and structure specifications of the output and input data streams which are to be linked are automatically compared and then adjusted for reasonable format discrepancies. This implies that the descriptions which define the format and structure of each of the output and input data streams of a program must be explicitly stated and available for use by that portion of the Program String Structure which compares and adjusts data formats. Reasonable adjustments can be accompiished by the automatic insertion of a generalized reformatting program in the data stream. The inputs to the generalized reformatting program are the input and output data stream specifications, and the data in the streams to be reformatted. The output of the generalized reformatting program is a stream of data in the desired format. The generalized reformatting program is a type of report generator program. Since the outputs and inputs of the programs being linked are isolated from each other by Buffer Files, the introduction of the reformatting program in no way influences the execution of either of these programs. Figure 3 illustrates the logical representation of the use of the reformatting program. The case is the same as shown in Figure 2, except that it is assumed here that the format specification of the third output of Program A is not compatible with the first input of Program C and must be adjusted by the use of the Generalized Reformatting Program. Another characteristic of the Program String Structure is the introduction of a variable time frame over which program inputs are actually bound to the data on which the program wi!! operate. At the time a program is designed, the programmer assigns symbolic names by which each input and output is internally referred to by the program. At this time, he also specifies the formats and structures of the data which are required by the program at these inputs and outputs. At linkage definition time, the user specifies which programs are to be used collectively, and which outputs are to be ]jnked to which inputs. At this time, the user may also bind some of the free-standing inputs to data on which the linked programs will operate. A free-standing input is one which is not connected to any other program except the one for which it is an input. The user may elect to defer the binding of some of the free-standing inputs to data until the time the linked programs are to be executed. If such is the case, these unbound free-standing inputs may be specified as part of the user's request to have the set of linked programs executed. It is possible, however, that not all the free-standing inputs have been bound to data at the time the execution of the set of linked programs has been initiated. If, as a result of the logic of a program and the nature of the data being processed, no data reference is made to an unbound free-standing input, then the fact that the free-standing input has not been bound does not affect the processing of the set of programs. If, however, a point is reached in one of the programs where a request is made for data from a Inter-Prugram Communications INPUT 177 it. 2 INPUT #1 PROGRAM PROGRAM A B OUTPUT GENERALIZED REFOR MATTING PROGRAM INPUT#2 r-~--------------~' PROGRAM C OUTPUT ;:tl Figure 2 - Logical representation of programs linked via buffer files previously unbound free-standing input, then the linkage mechanism causes the execution of that program to be delayed until the monitor system can request the user to supply the missing binding information, and such information is provided by the user. Finally, programs may be recursively defined in a Program String Structure. This is possible to the extent that a program representing a set of linked programs can itself be treated as a program building block and maintained in the program pool to be used collectively with other programs. Figure 4 is an illustration of the recursive definition of a program in which Programs R, Sand T are linked to yield Program A, initially shown in Figure 1. The primary result of the use of Program String Structure techniques is the elimination of the need for pre-planning on the part of the programmer during the program design and implementation phase. The programmer may be totally indifferent to the characteristics of other programs with which the program he is preparing may operate; the variations in structure and source of data on which his program may be called on to process; and any timing or coordination considerations with respect to other programs which may be concurrently executed. The programmer is free to design a particular program to optimize that program's performance solely with respect to the function being implemented. The elimination of the need for pre-planning means that a set of programs can be designed, coded, debugged and modified by different programmers at different points in time and still be capable of being arbitrarily linked. This is the essential characteristic of a true building block approach to the design of large programming systems. The construction of large programs by linking together as many already existent programs as possible (and creating new programs only when necessary) materially shortens the overall program preparation 178 Spring Joint Computer Conf., 1967 #" IN PUT PROGRAM A I PROGRAM B OUTPUTI"tf OUTPUT 2 I I INPUTI=t,! PROGAM C Figure 3 - Logical representation of automatic reformatting capability time at the expense of an increased overhead associated effecting the linkage of the smaller programs into larger ones. In environments in which many of the programs are executed on essentially a "one-shot" basis, such a trade-off seems reasonable. Should any of these programs eventually be used on a production basis, however, thus tending to increase the significance of the overhead, the structures of these programs can be modified by removing the inter-program linkages. Changing the overall program from a set of linked programs to a single program eliminates the overhead previously associated with the program. The program restructuring, however, can be done at a convenient time with respect to such considerations as the availability of programmers, existing work loads and priorities. In the meantime, the desired function can be performed as a collection of smaller programs. It is important to note that although the use of Program String Structures eliminates the need for preplanning, the programmer retains the ability to introduce pre-planning in the design of a set of programs to any degree he wishes. Thus, in 'i.he design of a set of programs which will be frequently used, the pro- grammer may elect to carefully consider questions of inter-program communications in order to improve the performance of the set of programs. The programs making up the set, however, may still be placed in the program pool and collectively used with other programs to perform other functions as well. Buffer files - principles of operation A conceptual representation of a Buffer File is shown in Figure 5. The Buffer File shown is employed in the linkage of the third output of Program A to the first input of Program C, as illustrated in Figure 2. The data in the Buffer File is organized in fixed length units called blocks. There are M computer words per block and N blocks per Buffer ,File. Only a unidirectional flow of data through a Buffer File is permitted. As shown, Program C may only read data from the Buffer File and Program A may only write data to the Buffer File. Once the data has been transferred from Program A to the Buffer File, that data can no longer be accessed by Program A. Similarly, once Program C has read data from the Buffer File, that data is erased from the Buffer File. Inter-Program Communications INPUT .. I II INPUT Z Figure 4 - Logical representation of a set of programs linked to form a new program In order that programs using a Buffer File be independent of both parameters M and N, the Buffer File closes around itself, forming a ring structure. Addition is performed on a modulo N basis, that is (N-l) plus one equal zero. Two markers are associated with each Buffer File, one indicating the name of the block to which data is to be written and the other from where the data is to be read. In Figure 5, the Write Buffer Marker is advanced each time a block of data is placed in the Buffer File by the. third output of Program A, and the Read Buffer Marker is advanced by one each time a block of data is read from the Buffer File by the first input of Program C. If the Read Buffer Marker and the Write Buffer Marker should coincide and the two markers have recycled the same number of times, no further data is available in the Buffer File for Program C to read. Hence, any read operation attempted by Program C under this condition must be inhibited. Similarly, if the Read Buffer Marker and the Write Buffer Marker should coincide and the Write Buffer Marker has recycled one more time than the Read Buffer Marker, no further space is available for Program A to write in the Buffer File. Hence, any write operation attempted by Program A under this condition must be inhibited. Finally, since only a unidirectional flow of data is permitted through the Buffer File, any attempt at any time by Program A to read data from the Buffer File or Program C to write data to the Buffer File must be inhibited. As soon as the presence of any of the inhibit conditions is detected by the linkage mechanism, control is immediately transferred to the computer monitor system, thus inhibiting the execution of the read or write operation. During the design and implementation phase of a program, the programmer symbolically defines the input and output Buffer Files to be used by the program. It is not, however, until that point in the exe- 179 cution of a program is reached where a request for the creation of a Buffer File that the Buffer File is generated. In this manner, although a programmer may specify multiple outputs in this program to cover mutually exclusive conditions. Buffer Files are created only for those outputs which the program actually selects on the basis of the data being processed. The actual linkage between an output of one program and an input of a second program is effected through the use of a Buffer File Control \Vord (BFCW) generated by the linkage mechanism. One BFCW is maintained by the linkage mechanism for each Buffer File established. The BFCW contains such information as the positions of the Buffer File's~ Read and Write Buffer Markers, the Buffer File's size, location and a series of indicators reflecting its condition and status. Either of the two programs to be linked via a particular Buffer File may be the first to reach that point in its execution where the request is made for the creation of the Buffer File. In response to this request, the linkage mechanism generates a BFCW and establishes a correspondence between the BFCW and the symbolic name by which the Buffer File is referred to in the program. When the other program to be linked makes a request for a Buffer File, using a symbolic name equated to the symbolic Buffer File reference in the first program at linkage definition time, the linkage mechanism establishes a correspondence between that symbolic name and the same BFCW. The method by which the correspondence between the BFCW and the symbolic Buffer File references in the programs to be linked is instrumented, is a function of the particular environment in which the linkage mechanism is implemented. The following types of commands are typical of those which could be used in a programming language to control the Buffer File mode of operation: OPEN BUFFER FILE * ALPHA, M, N WRITE BUFFER FILE * ALPHA READ BUFFER FILE * ALPHA COMPLETE BUFFER FILE * ALPHA The OPEN command is used by a program to request the linkage mechanisms for a Buffer File. InRROGAM A OUTPUP3 BL OCK ·0 Write Buffer MarkE'r --- BL OCK ", L- Read Buff"r Marlier BLOCK ·2 V V T BLOCK #(N BUFFER /) FILE. J Figure 5 - Conceptual representation of buffer file operation t 80 Spring Joint Computer Conf., 1967 elusion of M and N enables the programmer to specify preferred block and file sizes, respectively. The actual transfer of data to or from a Buffer File is requested by use of the WRITE and READ commands respectively. The COMPLETE command is used to make the linkage mechanism aware of the end of the requirement for a Buffer File. Although the flow of data through a Buffer File is unidirectional, bidirectional communication between two programs can be effected by the establishment of separate Buffer Files whose direction of data flow are in opposite directions. Figure 6 illustrates the logical representation of the use of Buffer Files for bidirectional inter-program communications. Figure 6 also illustrates another important advantage derived from the use of the Buffer File linkage mechansim. I n the event that Program Moduie Y does not yield satisfactory results (accuracy, speed or core space), it may be replaced by a different program module Y', simply by defining a linkage between Wand Y', and requesting the execution of the new set of linked programs. No re-assembling is necessary to accommodate this change, which can be effected in an "on-line" mode of computer operation. Implications of the lise of buffer files The characteristics exhibited by the Buffer Files are such that their application as separate entities apart from Program String Structures, for which they were initially conceived, has considerable merit. INPUT #: I r PROGRAM W PROGRA M With the exception of this synchronization, which takes place as the data passes through the Buffer File, the two programs can be executed completely independently of one another. The computer monitor system m 1.3 l.3.H.2 1.3.H.-1.H.l 2.2. l. H. (j 2.:l.2.H.2.H 2. -1. l. ({ Figure 3-3-Item position index directory physical location of the data. For instance, the Index Value data and R Value data will be in subordinate directories of their own, linked to the main Item Position Index by addresses. ARGUMENT Item Class Code (ICC) FUNCTION Term Item Type ORDER FILE 1. 2.R ORDER RECORD 1. 2. R. 1 PONo. 10 CHAR 1.2 1. 2.R. 2 1. 2. R. 3 191 DUE DATE REQUESTER Index Values Index Code R Values 5, 10, 12. ALL VALUE 0-1300 1,@,3, 7. VALUE 1301-5000 4, 6, 8, 9, 11. 12 CHAR SAME VALUE JAN 66 4, 6, 7, 11. VALUE FEB 66 1,O,3, 8, 9. VARIABLE VALUE SAME A. SMITH O,4, 9, 11. VALUE H. ALT 1, 3, 7, 8. VALUE J. JONES 6. 1. 2.lt. 4 VENDOR No. 10 CHAR NONE 1. 2.R. 5 VALUE VARIABLE NONE 1. 2.R. 6 ITEM LIST FILE 1. 2.R. 6.R ITEM LIST RECORD 1. 2.R. 6.R.1 ITEM No. 6 CHAR NONE 1. 2.R. 6.R. 2 QUANTITY 4 CHAR NONE 1. 2.R. 6.R. 3 COST 10 CHAR NONE (Link to R1 Values) Figure 3-4-Item position index Figure 3-4 shows the logical relationships between entries in the Item Position Index. For each ICC in the argument, there are the following types of associated information: (1) Tenn. The term entry after the ICC makes the Item Position Index the inverse table of the Term En'Coding Table and permits the conversion of an ICC ture a:a other records in the same file (e.g., ORDER Record; 1.2.R). A record may contain other files or it may contain fields of three kinds. A variable field (e.g., REQUESTER; 1.2.R.3) is one whose length changes according to the length of the data in the field. A fixed field (e.g., DUE DATE; 1.2.R.2) is always the same length, and the length in characters 192 Spring Joint Computer Conf., 1967 is indicated in the function of the Item Position Index. The Item Type also specifies the mode in which the data of a field is stored, such as binary, octal, integer, decimal, floating point, or alphanumeric. (3) Index Values. It is anticipated that many data fields will be indexed, thereby permitting searches for specific fields without having to access large amounts of data. When a field in a series of records is indexed, all the different field values in the records are listed under Index Values in the Item Position Index. If values are repeated, they need be listed only once. Reference can be made to the values without having to retrieve the records. An example in Figure 3-4 lists the field value range of zero to 1300 under the field caned PO No. (4) Index Code. Three indexing options are available to a program performing a file updating function. One option is to index all values which occur in a given field, whether similar values have been indexed or not (e.g., ALL, after PO No.; 1.2.R.1). Another option is to continue to index only those values which have already been indexed in the past (e.g., SAME, after DUE DATE; 1.2.R.2). The final option is to not index the field at all (e.g., NONE, after ITEM No.; 1.2.R.4.R.1). (5) R Values. To give the indexing meaning, the index values must be directly related to specific fields. The relationship is provided by means of R Values which can be substituted for the letter R in the ICC. For example, Figure 3-4 shows that the term DUE DATE has an ICC of 1.2.R.2 and that it is an indexed fixed field. If one wanted to identify an item in this class which contained the value FEB 66, any of the R Values 1, 2, 3, 8 or 9 could be substituted in the ICC 1.2.R.2 for R to give a unique series of integers which would identify the exact relative (or logical) position of such a field in the data structure. The series of integers, with no letter R contained in it, is called an Item Position Code (lPC). To demonstrate the use of the Item Position Index in locating specific fields of data, let us return to the example started at the beginning of this section. The ICC obtained from the Term Encoding Table is 1.2.R.3, and the field desired is called REQUESTER. The value of the field is specified by the Job Request as being equal to J. JONES. Assume that the portion of the Item Position Index given in Figure 3-4 is equal to a segment. The program searches the argument for the ICC equal to 1.2.R.3 and checks the term for consistency. The program notices that REQUESTER is a variable-length field which is indexed. It searches down the list of Index Values for J. JONES. When J. JONES is found, the R Value associated with J. JONES is extracted (in this case, the integer 6) and is sub- stituted in the R of the record ICC to form the IPC 1.2.6. If more than one R Value exists, the other values can be used in subsequent searches for more transistor records having REQUESTER fields with the value J. JONES. The important fact to notice is that the IPC is now unique within the whole DM-l data structure, and it may now be used to point to the exact data record desired by the user. (The IPC could have been used to point to a specific field or bit in the record. ) The problem of conducting Boolean searches for records meeting certain criteria can now be discussed with some understanding of the mechanism by which the searches may be conducted. Suppose that a Job Request wants all Order Records which have a purchase order number less than 1300, which are due in February, 1966, and which were requested by Mr. A. Smith. The program can examin.e the three fields, PO No., DUE DATE, and REQUESTER, for the desired Index Values. The list of R Values corresponding to these Index Values can be extracted and compared for any integers in common. In the case shown by Figure 3-4, the integer 2 is common to all three desired values. Hence, the R of ICC 1.2.R. can be replaced by 2, and the record identified by IPC 1.2.2 may be retrieved from random-access storage with full assurance that it meets the criteria of the Job Request Query. In this manner, the Item Position Index can be manipulated to determine what records are desired without having to fetch from storage any more records than those which exactly fit the criteria. DM-l files can be dynamic, with constant addition, deletion, and change. The Item Position Index is the logical place to keep track of how many records are contained in each file and of what gaps may exist in the logical structure of the file. Normally, an entry occurs in the R Value column of the Item Position Index only for indexed fields, but record fields are an exception. Figure 3-4 shows three integers in the R Values portion of the function for ORDER (1.2.R). The last integer (12) gives the R Value which should be used for the next record added to the file. Thus, the number of records in the file may be calculated by subtracting one from the last integer. The first (i.e., 5) and the second (i.e., 10) integers indicate R Values which were once part of the file but which have been deleted and not reused. New additions to the file can receive R Values for their IPC's by means of the entries in this column. Two sets of statistics are retained in the Item Position Index to keep track of system usage. The first is a tally kept for each time a field value is used in a conditional search. Periodic analyses of these tallies permit the data base manager to unindex those values DM-l which are seldom used, thereby conserving storage space. The second is a tally kept for each time a field is accessed, whether conditionally or as a result of serial processing. These tallies help to show the usage relationships between data items and aid the data base manager when he restructures data for more efficient processing. When files are placed within the records of other files, multiple R's are found in the ICC's, and some complexities arise. For instance, a single get of integers is not sufficient to show the R Values for a single. ICC, because the ICC now has multiple R's in it. Since each R represents a multiple number of records, the possible number of integer sets grows exponentially with each new R in the ICC. The problem of organizing the sets of R Value integers can be solved by linking with addresses each integer of the first set to its appropriate second level set, and so on down the hierarchy of R levels in the ICC. There are several outputs which can be derived from the Item Position Index. The Item Position Code is the major output because it may be used to point directly to the data field being sought. The Item Type, another output, is also important because it describes the nature of the field being dealt with, such as the field length in the case of a fixed field. A number of possible error conditions may be encountered while manipulating the Item Position Index: the desired IPC may not exist in the argument; the term in the Item Position Index may not agree with its counterpart in the Term Encoding Table; the field, for which a value was given on input, may be found to be unindexed; and many other possible internal inconsistencies. The output from the error conditions will depend entirely on the operating policy of the system at the time of implementation. In this case, the output is an IPC with the value 1.2.6. Segment name list Looking up the name of the segment containing the desired data is the next step in locating the desired ORDER record. The names are kept in the Segment Name List. The parameter required to use the Segment N arne List is a single IPC, which is used to request from the I/O Control Program the segment which contains the desired item. As the data base grows, the Segment Name List may become large enough to require its own Directory. The Segment Name List Directory will be brought into core memory, if it is not already there. The argument of the Directory is a list of the first IPC in each segment of the Segment Name List (see Figure 3-5). The function is the name for each segment of the Segment 193 Name List. The Segment Name List is brought into core memory, just as the Ter mEncoding Table was, selecting the segment with the next lower argument closest to the IPC being sought. SEGMENT NAME LIST DIRECTORY ARGUMENT FUNCTION (First !PC in Each Segment of the Segment Name List) (Segment Name) 4968431 1.5.157.2 M268828 2.2.4.24.6 9206307 SEGMENT NAME UST ARGUMENT (First !PC in Each Sepnent of the Data Bue) 0 ----.. FUNCTION (SelJDent Name) 6984320 1.1.2.5 7032694 1.2.4.1 8268215 1.2.11.4. 19.3 4394762 1.3.7.4 1147238 1.3.84.1 6468945 1.3. 112. 6.1 2325464 Figure 3-5-Segment name list directory and segment name list The Segment Name List is exactly like the Segment Name List Directory, only much larger (see Figure 3-5). Whereas the Directory argument has the first IPC of each Segment Name List segment, the Segment Name List argument has the first IPC of each data base segment. In essence, the Segment Name List is an extension of its own directory. Only directories can be ordered from the Local Control Program without using the Segment Name List, and this ordering is done through a directory which, in reality, is a small Segment Name List. In our test case, the IPC desired is 1.2.6. The routine orders the first segment of the Segment Name List with the Segment N arne of 4968431 (see the top arrow in Figure 3-5). The Segment Name List Segment brought into core memory looks something like the bottom table in Figure 3-5. The Segment Name List is used to select the data segment which contains IPC 1.2.6. In this case, the segment begins with IPC 1.2.4.1 and has a Segment Name of 8268215 (see the bottom arrow). The Segment Name is transmitted to the I/O Control Program, and an interpretive request is given the I/O Control Program to retrieve the data segment. The Segment Name List also contains a Usage field to hold data on the number of times the segment has been retrieved in the last statistical data period. Analysis of this data will permit optimal use of the various storage media of the computer center. 194 Spring Joint Computer Conf., 1967 Segment index The final step in locating the data is made with the help of the Segment Index at the head of the segment containing the data. The major parameter for using the Segment Index is the IPC which is being sought. Another parameter is the Item Type (showing the length of the field, if it is a fixed field). A third parameter shows the beginning address of the segment in core memory. In actuality, the portion of the Item Position Index already referred to is another parameter, because the Segment Index and Item Position Index are used in conjunction with each other to locate the data item. A segment will be divided into four parts: a heading, a segment index, data, and vacant space. Except for the heading, the proportion of each part will vary, depending on how much data exist in the block and on how much indexing data are required to access the data. To illustrate how the search would proceed, let us first consider what the string of data in the recently retrieved segment might look like. Figure 3-6 uses some symbols to show the various types of items and their logical relationship in the data structure. Although the symbols are shown on four lines, the items should be considered as one continuous string of data. The IPC for each item has been posted under the item, for visual reference. It will be noticed that the data string begins the segment and that the IPC value of 1.2.4.1 corresponds with the starting IPC of the segment just retrieved by means of the Segment Name List. r----------I) } Heading Data [1.2.4.1]=A [1.2.4.4] =B [1.2.4.4.1.1] =C --I\ _ _ _ _[1_.2_._4._4._1_.3_]=_D ___ [1.2.6.1] = E 1[1.2.6.4] Segment Index =F VACANT = G A Data Vacant NOTE: A set of brackets represents an address of a location containing the data named by the !PC in the brackets. A capital letter represents a data address. Figure 3-6--Graphic description of a data string The DM-l design specifies that the Segment Index consists of a list of addresses showing the starting position of data fields in the segment. Figure 3-7 shows a Begmmngofse~ent r( PO No. I Due Date L (1.2.4. ~ 1. 2. 4. 2 (1. 2. 4. 4.1. PO No. I < ~ Vendor No. 1) ~ 1.2.6.2 [.........J> /Requester 1.2.6.3 )]) (1.2.4.4.1.3) 1. 2. 4. 4.1. 2 Due Date /Value 1. 2. 4. 5 1.2.3.4 /Quantity Item No. [( /Requester Vendor No. /value ~ 1. 2. 6. 5 .....J. [ ] < ) is a file is a record is a fixed field is a fixed field series I is a variable field Figure 3-7-Sample segment index sample Segment Index. The first address always shows the start of the data area (i.e., address A) and is relative to the beginning of the segment. The following addresses (i.e., B-F) point to subsequent data fields and are relative to the beginning of the data area. The final address in the Segment Index (i.e., address G) is always the end of the data area or the beginning of the vacant area. However, only those addresses that are vital to the process of locating data are included in the Segment Index. A series of fixed fields, for instance, needs only the starting address of the series, because the starting addresses of the rest of the fixed fields in the series can be calculated from the Item Position Index. Normally, only the end of variable or optional fields need be indicated. In Figure 3-6, the IPC addresses needed to scan the data have been circled. The other addresses need not be carried in any index, and it will be noticed that in Figure 3-7 only the circled addresses have been included in the Segment Index. The basic logic for locating data in a segment is to use the Item Position Index to calculate where the desired address is in the Segment Index. The program starts with the ICC in the Item Position Index which corresponds to the IPC at the start of the segment. The program steps through the Item Position Index, while keeping count of how many addresses there should be DM-l in the Segment Index up to that point. When it gets to the desired IPC, the program goes directly to the Segment Index and counts down through the index the same number of addresses to the desired address. This address points to the data with the specified IPC, thereby completing the retrieval function. Normally, the program need go to the segment itself only once to fetch the data. If an optional field is discovered in the Item Position Index, however, the program must go to the data to see if the field actually exists. To see how the process operates, let us follow the logic of how the data for IPC 1.2.6 is retrieved. The program knows from the Segment N arne List Directory that the segment begins with IPC 1.2.4.1 and that the -first address of the Segment Index will point to that data field. The program consults the Item Position Index for the Item Class Code which corresponds with 1.2.4.1. It is found to be 1.2.R.1. The R Values for the file ORDER show that the fourth record is a legitimate member of the file because no 4 appears under R Values to show that the fourth record is missing. The program notices that the first two fields are fixed, followed by a variable field, and the program deduces that a second address in the Segment Index will be required to point to the end of the variable field called REQUESTER or to the beginning of a fixed field called VENDOR No. Further, the program deduces that a third address will be required to point to the end of a variable field called VALUE or the beginning of a possible file called ITEM LIST. A link to a subsidiary list of second level Rl Values (not shown in Figure 3-4) supplies the information that only one record exists in the ITEM LIST File when the first R in the ICC is equal to 4. The program deduces that a fourth address in the Segment Index must indicate the end of the QUANTITY field and the beginning of the COST field (lPC 1.2.4.4.1.3). A fifth address is needed to signal the end of the COST field, because it is variable, and the end of that inner file and record. It is also known that the fifth address skips to the beginning of record 1.2.6, because the Item Position Index R Values for ICC 1.2.R. state that record 1.2.5. does not exist in the file. Since IPC 1.2.6 represents the desired record, the program can now turn to the Segment Index and select the fifth address in the index. The program can go to the data location in the segment which has that address, and the program will be positioned at the start of the desired record. The end of the record can be determined by finding the address which starts the next record, using the same procedure as described above. The intervening data may be retrieved, thereby completing the search process. 1C\~ 17J IV. DM-l job requests General An important feature of DM-l is its ability to respond to Job Requests, either immediately upon entry or after they have been stored in the system for a period of time. Much of the operational power of DM-l is achieved by permitting users to sequence and link generalized programs by means of Job Requests. The remainder of this section covers a general concept of what happens within the system when each of the five job types is initiated. Item definition request An Item Definition Request can be used either to add or to delete the definition of items in the file structure. Changes are affected by means of a deletion foIIowed by an addition which represents the correct version. The input to the system from an Item Definition Request which adds a definition will originate on a standard input form. The user wiI1 show the relationships between items and subitems by the use of indentations on the form, which may be tabbed. The item definitions will be keypunched to show the number of indentations for each entry. Upon receipt of the definition data, the Supervisor program begins executing the program in the Add Item Definition job. The programs step through the terms of the input and note the logical relationships between terms. A series of records is created containing each term and its associated interim tree code, along with other information intended for inclusion in the Item Position Index, such as indexing code or Fixed-Field Length. The items in the records will automatically fall into order by tree code, because the input of the Item Definition Job Request would be in hierarchical order. The base node is checked to be sure it exists in the directory and that it can be used as a foundation for further expansion. Separate records are prepared for each of the items. They are sorted by term name for the purpose of updating the Term Encoding Table. The original set of records is in ICC order, and it is used to update the Item Position Index by means of a single insertion, since the ICCs are in a cluster. A generalized print routine can be called upon to print out both series of records for manual accuracy checking and for updating manual records of the Term Encoding Table and the Item Position Index. For deletions to the directories, a different process is employed. The last item in the input of the Job Request names the item to be deleted. In addition, all other items which are subsumed by the named item are to be deleted. The Term Encoding Table and the 196 Spring Joint Computer Com., 1967 Item Position Index are used to create the ICC of the item named for deletion. The entry in the Item Position Index is inspected for the item to be deleted and for all lower items in the same tree code branch (i.e., having the same ICC root). If the index shows that data exist in the data base for any of these items, an error condition is considered to exist because the definition for existing data must not be deleted. Data must not be permitted to exist in the data base without being properly defined. Thus, if data exist, the definition is not deleted, and a printout is prepared for the person initiating the Job Request instructing him to delete the data first if he wishes to delete the item definition. If no corresponding data are found to be associated with the named item and its subsidiary items, the entries for the items are deleted from the Item Position Index. Pertinent items are deleted from the Term Encoding table, and a printed audit trail of deleted items is prepared. Data Format: User Inputs: The Data Entry Request may be used either to add data to or to delete data from the data base. With additions, the data are not converted from one logical structure to another, but they are translated from one physical structure to the IMS physical structure so that it can be incorporated into the data base. Data may be added in anyone of four modes, as specified by the Data Entry Request (see the top half of Figure 4-1). The four modes are as follows: (1) Defined-External Mode. This mode requires that an Item Definition, describing the data to be entered, has already been entered into the system and has been incorporated in the system directory. The data are entered in externai format; that is, me data are manualiy formatted and named by a data specialist using a simple input worksheet. (2) Undefined-External Mode. This mode has the same external format as the Defined-External Mode, but it does not contain a definition of the data being entered. Consequently, the definitions, in the form of an item image, must precede the data on the input medium. (3) Defined-Internal Mode. This mode requires that a complete definition of the data be included in the system directory before the data are entered, just as in the Defined-External Mode. The format of the data, however, is different. The internal format is defined as being synonymous with the segment format used in the data segments of DM-l. Internally formatted data come in increments of a segment and have their own segment index at the beginning of each segment. The data are entirely dependent on the system directory for data identification and processing. I I I I I 1 ) ADD EXTERNAL I Internal 3 11) Defined I (In system I directory) I ADD INTERNAL I I I I Rem Definition: Undefin~ 4) 2) DEFINE AND ADD EXTERNAL (Entered with the data) I DEFINE AND ADD INTERNAL I Data Format: Processing Actions: Internal External I II I Item Defin;ti()!l: 1) De"'"..med (In system directory) I II I 3) e Convert external data to internal fermat I eGoto®- I Console or tape I ! Add internal data to data base ~ Convert external item Merge internal directory I with system directory I Undefined i e image and data to Add internal data to I data) with the _-.m data base e Go to 0-I tape ~ 2 1 ) 4) - b I Data entry request I External Figure 4-1-Data entry modes (4) Undefined-Internal Mode. The last of the four modes does not require that the system contain the definition of the data to be entered, because, like the Undefined-External Mode, it contains its own definition. The data are in internal organization but the data also have a local Term Encoding Table and Item Position Index heading the blocks of data on the tape. Program entry request Compiled program code will be entered into the system according to established local conventions, and these programs will be called at execution time by means of the IOCS. Descriptions of the programs, however, are entered into the DM-l directory for the purpose of inventory control and for internal checking to be certain that Job Descriptions are compatible with the programs they call on. The task of the Program Entry Request is to add or delete a Program Description from the Program Description List. For an example of how a Program Entry Request might look, the reader is referred to the top portion of Figure 4-2. The example says, in English, "I want to enter two Program Descriptions into the system. My name is Jones and my identification number is 87. The deadline for entering the program is 9: 30 AM on February 13. I wish to add to the Program Description List, and the Program Description will follow on the console. The first program I wish to enter is called ORDER SEARCH. The first input parameter of ORDER SEARCH is called REQUESTER, and REQUESTER must be an aiphanumeric which is of variable length. Dl\r1-1 IPROGRAM ENTRY REQUEST: I Job . l (Program Descriptions) PROGRAM ENTRY REQUEST, JONES 87, 0930-13-FEB; ADD PROGRAM; CONSOLE. JONES 87; ORDER SEARCH INPUT/A, V, REQUESTER/A, 10, VENDOR Data l RESULTS (F, SEARCH PRODUCT); VALUE ANALYSIS INPUT (F, ANALYSIS DATA) RESULTS (F, ANALYSIS PRODUCT) IJOB ENTRY REQUEST: I j Job I JOB ENTRY REQUEST, JONES 88, 0930-I3-FEB; ADD JOB; CONSOLE. JONES 88; JOB ONE: ORDER SEARCH INPUT REQUESTER; *ALPHA, VENDOR; RCA RESULT SEARCH PRODUCT; OUT Data VALUE ANALYSlS INPUT ANALYSIS DATA; OUT RESULTS ANALYSIS PRODUCT; TOTAL VALUE/ (A, V, ALPHA). IJOB RUN REQUEST: I Job - JOB RUN REQUEST, JONES 89, 0930-13-FEB; CONSOLE. Data_ JONES 89; JOB ONE (ALPHA = "SMITH"). IGRAPmC ILLUSTRATION OF PROGRAM SEQUENCE: I ANA LYSlS PRODUCT TOTAL VALUE Figure 4-2-Sample job requests The second input parameter of ORDER SEARCH is called VENDOR, and VENDOR must be an alphanumeric which is ten characters long. There is only one result (i.e., output) parameter for ORDER SEARCH, and it is a file called SEARCH PRODUCT. The second program I wish to enter is called VALUE ANALYSIS and it has only one input parameter which is a fil~ called ANALYSIS DATA. VALUE ANALYSIS has only one result parameter, and it is a file called ANALYSIS PRODUCT." The basic functions of the Program Entry Request Routine may be summarized as follows: (1) To associate a name with a program so that it may be called at a later time. (2) To define the prerequisite parameters of a program so that the parameters given in any program description which calls for the program may be checked for format and completeness before the program is run. Job entry request The basic functions of the Job Entry Request are as follows: (1) To check the consistency, accuracy, and completeness of an incoming Job Description by comparing it with the Program Descriptions to which the Job Description has referred. 197 (2) To merge a valid Job Description with the Job Description List so that it may be used at a later time for running a job. The basic functions of a Job Description are as follows: (l) To name the programs which must be run in order to accomplish the task assigned to the job. (2) To specify the sequence in which the programs should be run. (3) To specify the values or names required by the input parameters of the program to be used in the job, or to specify that the values or names will be given by the Job Run Request at a later time. (4) To specify the names of portions of data resulting from the program so that these output parameters may be referred to and used by subsequent programs that have the same names specified in their input parameters. (5) To specify the names of multiple program exits so that programs may be linked by the Job Manager of the Supervisor Routine according to various contingencies. The Job Entry Request provides the raw data for a Job Description. An example of a Job Entry Request may be seen in Figure 4-2. Aside from the usual header information, the request says, "I would like to enter a Job Description into the system via the console." The job is called JOB ONE, and it calls for the running of two programs. The first program is called ORDER ~EARCH. I do not wish to give a value at the present tIme to the first input parameter of ORDER SEARCH called REQUESTER. The value of TYPE will be named at execution time (when a Job Run Request calls for the job), so I will give it the job parameter name of ALPHA, and I will put an asterisk in front of the name to distinguish it from a value. I wish to assign the value RCA to the second input parameter called SEARCH PRODUCT. The second program is called VALUE ANALYSIS. I want to assign the name OUT to the input parameter, which the program VALUE ANALYSIS has called ANALYSIS DATA. (This assignment will connect it to the result parameter of ORDER SEARCH.) I want to assign the name TOTAL VALUE to the job result parameter, which the program VALUE ANALYSIS has called ANALYSIS PRODUCT. Since a value has not been supplied to the job input parameter called ALPHA (the program parameter called REQUESTER), I will place a description of the parameter requirements at the end of the Job Description for reference independent of the program. The requirement is that the parameter be a six-character alphanumeric. The Job Entry Request processing requires that a11 198 Spring Joint Computer Conf., 1967 programs referred to by a Job Description be entered into the system before the Job Entry Request is processed. Processing takes the following form: ( 1) The Program Descriptions associated with the Job Description are retrieved from the Program Description List. Any missing programs signal an error condition which terminates the routine. The Job Descriptions of both the Program ORDER SEARCH and the Program VALUE ANALYSIS are brought into core memory. (2) The input and results parameters given in the Job Description are compared with their counterparts in the Program Descriptions to ensure that all parameters have been accounted for. (3) At the same time, the limitations imposed on the para.lJleters by the Program Descriptions are checked against the nature and format of the parameters given by the Job Description. For instance, the second parameter of the Program ORDER SEARCH, called VENDOR, must be an alphanumeric because the letter A is given. On checking the Job Description for the Program ORDER SEARCH, the routine finds the value RCA given. The value is an alphanumeric and satisfies the limitation. A number of the subroutines used to perform the above two tasks can be shared between the Program Entry Request Routine and the Job Entry Request Routine. (4) One of the most important tasks of the routine is to scan the Job Description parameters for consistency to be certain that the result parameters specified match the input parameter requirements. For example, the result parameter, SEARCH PRODUCT, from Program ORDER SEARCH is called OUT. The routine scans for a matching input parameter which, in this case, is the parameter, ANALYSIS DATA, of the Program VALUE ANALYSIS. Once the match is determined, the limitations are compared. Any result or input parameters which require mates, but which do not have them, or which have improperly written mates, are printed out for subsequent correction. (5) Any parameters which are unspecified at the time of Job Description entry are formatted at the end of the description for easy checking when they are specified by a Job Run Request. Once the Job Description has been thoroughly checked and has been found to be valid, the routine calls in the proper segment of the Job Description List so that the ne\v entry can be merged into the List, using the Job Name as the primary sort key. The entered Job Description is printed out for manual corroboration and for use as an audit trail. The deletion of a Job Description from the Job Description List is a relatively simple task because no other portion of the system is functionally dependent upon it. Only a Job Run Request, as it is being introduced to the system, is dependent on a Job Description, and the Job Run Request is rejected immediately if the proper Job Description is not in the system. Consequently, t.~e Job Entry Request Routine can delete a Job Description by retrieving it from the Job Description List and restoring the List without the Job Description. The name of the job must be deleted from each Program Description that is referred to by the job. File management on a small computer the C-IO system* by GILBERT STEIL, JR. The MITRE Corporation Bedford, Massachusetts INTRODUCTION C-10 is a general purpose file management system that has been implemented by The MITRE Corporation for the IBM 1410. It is of interest for two reasons: first, it is one of the most flexible file management systems ever attempted for a machine the size of the IBM 1410; and second, the conditions surrounding its implementation have produced a design for a large system of programs that displays some uncommon and useful characteristics. These uncommon characteristics include a strong affinity for redesign; a framework for debugging that eliminates the need for memory dumps, symbolic snapshots, and other conventional debugging aids; and an adaptability to machines of various memory sizes and configurations without reprogramming. Our purpose in presenting this paper, therefore, is twofold: to describe the C-10 file management system, and to relate the experience of its unusual implementation. Evolution Work on the C-10 system was started in D.ecember of 1964, and was originally slated to terminate six months later in June of 1965. "C-10" originally stood for "COLINGO-10" and was intended to be an improved version of a small general purpose file management system named "COLIN GO" which MITRE had developed earlier. In return for a slightly larger machine (the IBM 1410 instead of the IBM 1401, on which COLIN GO operates), some increased flexibility was expected. In particular, the design goals for C-10 included the following capabilities that COLINGO did not provide: cross-file referencing, multi-level files (files in which property values may be filed), an improved means of generating new *The material contained in this article has been approved for public dissemination under Contract AFI9(628)--5165. files, more elaborate facilities for generating formatted reports, and increased speed for complex operations.' An important restriction at that time, which must be noted now, was that the work was to be completed in no more than six months. The designers examined the problems of achieving these improvements within the COLINGO software framework with the available manpower in the available time, and decided it was impossible. Several other approaches to implementing an improved COLIN GO on the IBM 1410 were then investigated. The adopted approach was to start from scratch and build a LISP-like interpreter defined over a single data structure, with the intent of programming 90 percent of the system in the language of the interpreter. This approach, while thought to be a long shot, was made inviting by what appeared to be an ideal data structure both for general system use and as a basis for building files. This data structure is now known as "streams" (see Appendix II). The stream structure was thought to be suitable for modeling files because it is possible to take advantage of a specialized instruction of the IBM 1410 (LLE: Lookup on Less than or Equal) to impiement an important primitive operation in one instruction. System analysis and design took place in two weeks. A work schedule was drawn up, and work was begun. F or the first six to eight weeks the schedule was rigorously maintained. Mter a few weeks, the IOCS module was operating, slightly later the disk allocator was debugged, and soon the relocatable subroutine controller was working. In the meantime, as a result of other work, the bulk of the system had been coded in the LISP-like interpretive language. Then, about three months into the project, a large snag was encountered. At this time the LISP-like interpreter became operational and some of the interpretive pro199 200 Spring Joint Computer Conf., 1967 grams were checked ouL Debugging the logical flow of the interpretive programs went smoothly enough, and if the only concern had been the logic of these programs, the tight schedule could have been met. But performance was also important, and unfortunately the performance of these programs was off by not just a mere factor of two or three, but by several orders of magnitude. For example, a subroutine in one of the language translators consumed not an intended 10 milliseconds of time, but 3 or 4 seconds! Soon it was realized that disruptions to the work schedule due to the performance problem would not allow a product to be delivered on time. But as hopes for meeting the schedule were dimmed, considerable interest in surmounting the performance problem, and in the system design in general, was generated. As a result, the C-I0 project evolved into an experiment in system design and modification which continued not only for the remainder of the originally scheduled six months, but for an additional fourteen months afterward. During this additional time the system underwent many experiments in restructuring, which included: redesigning and recoding important primitive operations; replacing one data structure with another; writing a compiler for translating the LISP-like language into machine language; replacing LISP-like programs with machine-language equivalents; and replacing machine language programs with LISP-like equivalents. At the end of this period the performance of the system had been brought up to a satisfactory level, and the system had evolved into a flexible environment for file management based on several data structures and written in several languages. At the present time no further development work is contemplated, but the system is being maintained and used experimentally on both the IBM 1410 and the IBM 360/40 (under emulation). File management General purpose file management systems are characteristically directed toward a user with routine data processing problems involving large files of information. They are designed on the basis of a generalized file structure, and consist of a set of generalized file management functions, embedded within an operating system, These generalized file management functions usually include: (a) generation of structured files from any machinable data (b) maintenance and updating (c) retrievai of selected data (d) generating formatted reports (e) operations involving combinations of the above Thus, it is intended that users of the system need not program their problems from scratch, but need only supply an appropriate set of parameters to the already existing generalized tools. Several gene;al purpose file management systems have been implemented for machines of various sizes, or are now in the implementation process. These include ADAMI on the IBM 7030, LUCID2 on the AN/FSQ-32V, and GIS3 on the IBM 360. The C-l 0 generalized file structure can be described as follows: A file is a linear sequence of objects. Associated with a file is a set of properties common to all objects. Each object contains a set of property values. For exampie, a CUSTOMER ORDER fiie might have associated with it the set of properties,· ORDER NUMBER, CUSTOMER, TOTAL LIST PRICE, and ITEM. Each object of the file contains a property value for each of the properties; for example, 3246, SAMPSON, 3018.30, etc. (See Figure 1). Each property has a value type, which remains the same throughout the file. The type of a property may be integer, string, floating, group, etc. If a property has type group, the property values for that property are themselves entire files (see, for example, ITEM, in Figure 1). In this manner, files can be nested within files to any level. This structure is sometimes referred to as an "N -level file structure." Properties may have additional attributes, such as length for stri~gs, formats for printing, etc. All C-IO files reside on disk, although it is possible to save them on tape. Most file management systems are organized into modules or phases along the lines suggested earlier, that is, into generation, updating, retrieval, and so forth. This frequently leads to inefficient processing in the case that a task is not a simple generation, update, or retrieval, but is some combination of these operations. This is 'because each separate operation involves at least one access to a file and sometimes an entire pass through a file. In some systems, separate languages are even used to describe the separate processes. In summary, the traditional approach to file management systems is to pass the data base over each procedural module as many times as are necessary to achieve the desired operation. C-IO file processing is a departure from this tradition. In C-l 0 it is possible to pass the entire procedure base over each data module. Here is how this works: In C-I0 a single language, PROFILE, is used to express all file management functions. The PROFILE user can manipulate as many files as he wishes simui- File Management On A Small Computer The C-IO System* 20 I STRUCTURE DESCRIPTION OF THE CUSTOMER ORDER FILE: CUSTOMER ORDER ORDER NUMBER (INTEGER) ITEM NAME (STR!NG) INCREMENTAL COST (FLOATING) TABULAR DESCRIPTION OF THE CUSTOMER ORDER FILE, WITH VALUES GIVEN: 3246 SAMPSON 3018.30 2680 .00 2 DR. SEDAN 281 .50 AUTOMATIC RADIO 3251 fLINGER 3042.45 56 .80 2640 .00 2 DR. COUPE 4 SPEED TRANSMISSION 290 .80 DISC BRAKES 81 .90 HEAVY DUTY SUSPENSION 13 .80 fAST MANUAL STEERING 12 .70 HEAVY DUTY STOCKS 3 .25 Figure 1 - Example of a C-l 0 file taneously. The basic mechanism that he has available to him is a position operation that selects an object of a file for processing. Once an object is selected, its property values may be extracted, changed, or deleted, or an additional object may be inserted after it. Files may be positioned forward or backward, or directly to a specific object that is pointed to from an index (which is itself a file). Data can be transferred directly between files. The same positioning mechanism is also used within groups (subfiles). Data can be transferred from any level to any level. In a similar way, the PROFILE user directs data from and to I/O devices. PROFILE allows the user to manipulate data from (to) any input (output) device as though it were a continuous stream of characters, indexed by a pointer. The pointer may be moved forward and backward, and data are extracted from (entered into) the stream relative to the position of the pointer. Thus, it is possible to write PROFILE procedures that are quite flexible; for example, a procedure may generate a new file from data contained in several old files as well as data supplied on cards. The C-IO file management environment as viewed from PROFILE is illustrated in Figure 2. Here we see several streams of data flowing from input devices and referenced with a pointer, several files with particular objects selected for processing, several streams of data flowing to output devices, a collection of other data structures, a set of variables, and a library of procedures. File management problems are solved in PROFILE by segmenting the task into several procedures and writing and debugging each procedure separately. Procedures are maintained in a library, and a procedure may appeal to any procedure in the library (including itself) to have a subtask performed. Finally, it should be pointed out that PROFILE contains a set of statements specifically intended for spontaneous on-line work. Of course, any PROFILE procedure can be written, debugged, and added to the procedure base on-line. A detailed example of the use of PROFILE is illustrated in Appendix I. Implementation In the previous section we discussed how C-IO looks to a user involved in file management applications. In this section we will discuss how C-IO looks to a C-IO systems programmer. Since there is no 202 Spring Joint Computer Conf., 1967 ~ c:::::J-+11111 IIIII OBJECT 2 OBJECT 3 OBJECT 4 OBJECT 2 OBJECT 3 OBJECT 4 OBJECT 5 OBJECT 6 IIIIIIIII~II-+ OBJECT 3 OBJECT 4 OBJECT 5 OBJECT 6 + 1111111111111-+ FILE A OBJECT I FILE B D D FILE C VARIABLES r=l OTHER DATA STRUCTURES Figure 2 - The C-IO file management environment as viewed in PROFILE distinction made between user procedures and system procedures, * and therefore no distinction between users and systems programmers, we are really discussing how C-I0 looks to a sophisticated user. To the systems programmer, the C-I0 system offers a framework within which he can perform his daily work. It allows him to define the pieces of his program one procedure at a time, and it allows him to save the state of the entire system from one session to the next. It provides him with the following im:portant tools. The system provides an expandable set of data structures, which so far includes files, private stacks, f streams, t and blocks. t All of these data structures have the characteristic that they are virtually infinite in length, and all storage management problems associated with space sharing of core and disk are handled implicitly. This means that the systems programmer can create and use instances of any of these data structures without consideration of a proliferat- t Defined in Appendix I I. *Except when it comes to maintaining procedure libraries for separate users. ing maze of details and qualifications. It is also important to note that instances of any of these data struc.tures are not tied to a specific procedure, as is true In most programming languages. An instance of a data structure may be created by one procedure, saved by a system mechanism, and referenced later by a second, independent procedure. Each of the system data structures is defined over a set of data types which are a subset of the data types known to the system. The set of system data types is also expandable. The system provides an expandable set of source languages, which so far includes AUTOCODER, STEP, and PROFILE. AUTOCODER is the assembly language of the IBM 1410; STEP is a language similar to LISP (but defined over streams instead of lists); PROFILE is the file manipUlation language described above. A matrix showing which data structures may be- referenced in each of the languages is shown in Figure 3. The system provides a generalized macro facility, TAP, which may be used with any source language except A UTOCODER. The system provides an expandable set of object languages, which so far includes machine language File rv1anagemeni On A SmaH Computer The C-I0 System* 203 DATA STRUCTURES DATA TYPE FILES PRIVATE INTEGER ./ ./ ./ FILES FLOATING POINT ./ ./ ./ STRING ./ ./ POINTER ./ ./ STAC~ STREAMS BLOCKS STEP PRIVATE STACKS ./ ./ ./ ./ STREAMS ./ ./ ./ .; BLOCKS ~ ./ I ./ BULK BOOLEAN I MACHINE LANGUAGE STEP INTERNAL I ./ PROFILE) ./ AUTOCODER I I AUTOCODER STEP ./ ./ j I I ~ PROFILE ./ Figure 3 - Relationships Among the Tools Provided by C.,.) 0 For the Systems Programmer and STEP internal; and, of course, the system provides a set of miscellaneous translators for translating source language procedures into object language procedures. A procedure in either object language may appeal to any procedure in the other object language. Figure 3 also includes matrices showing which source language-can be translated into each of the object languages. One thing the system does not automatically provide is an executive routine. This is because each user tends to use the system in a different way, and it was not considered reasonable to build a large monolithic executive which anticipated the requirements of each user. What is provided instead is a set of tools that permit the user to piece together his own executive routine. All the basic modules of the system - an editor, translators, compilers, interpreters, allocators - have simple interfaces and can be combined in an arbitrary way. The system provides a set of debugging tools, the mainstay of which is a dynamic, selective trace. This trace interprets and prints the arguments and values returned by each selected procedure. It is effective because C-I0 programs consist of a large number of small procedures. Memory dumps, patches, and symbolic snapshots are almost never used. All communication between procedures is accomplished through an intermediate linkage routine, and it is here that the tracing mechanism is housed. The intermediate linkage routine would also be an ideal place to house instrumentation concerned with timing, but unfortunately an adequate clock is not available on the IBM 1410. The C-I0 system has been designed to adapt readily to minor changes in the machine configuration. When initially loaded from an arbitrary tape unit, it holds a dialog with the operator to determine the current machine configuration. It will operate with either a 1301,1302, or 1311 disk unit (2311 or 2302 on IBM 360). Additional core storage does not necessitate any reprogramming, and system operation speeds up as core is added. C-I0 operates a little more than twice as fast with an 80,000 character memory as with a 40,000 character memory. Finally, the system allows the user access not only to the large modules of the system (like the STEP compiler, for example) but also to each of the individual procedures that constitute the large modules. 204 Spring Joint Computer Conf., 1967 Every procedure in the system has a simple interface, and is documented as though it were independent of the rest. This is an advantage that we feel is important, and deserves more explanation. Imagine that you have the job of writing a compiler for a computer that comes from the manufacturer equipped with a conventional operating system, and ALGOL and COBOL compilers. In the construction of your new compiler you will need subroutines that manipulate character strings, subroutines that format error messages, subroutines that prepare output, etc. Doubtless, subroutines that perform these jobs already exist in the software supplied with the machine. But do you have access to them? Definitely not! Even if they wert.! separately documented and maintained, it is unlikely that all the boundary conditions surrounding their use could be satisfied. Things are very different in C-IO. Every module consists of a large number of small procedures, and each procedure is independent, with a necessarily simple interface that is documented. As a result, there is a great deal of sharing between modules that perform similar functions. Because of the extensive use of this feature, the C-IO system is relatively small. The entire system - two compilers, one interpreter, an editor, disk and core allocators, data structure primitives, etc. - is composed of approximately 400 procedures, averaging 900 characters in length. Commentary The two most important factors responsible for the uncommon characteristics of the C-IO system are the size of the machine on which it was implemented (hence the title of this paper), and the unusual conditions surrounding the development of the system (hence the discussion of system evolution). The smaH core size (40,000 characters) forced a design which (I) assumes that things seldom fit into core, and (2) provides an environment that allows the systems programmer to forget about the storage allocation problem (unless, of course, he is writing an allocator). The magnitude of the task, and the short time in which it originally was to be accomplished, motivated a design that attempted to trade off operating efficiency for speed of construction and ease of debugging. This trade-off succeeded too well, with the loss, initially, of far more performance than could be afforded! One of C-J O's important characteristics is an affinity for redesign unknown in our experience. During the course of improving the system every module was programmed at least twice; more efficient data structures were invented and the old ones were replaced with new ones; tools were added that helped evaluate system performance. in one case, the rep- resentation of files was changed drastically, and this was done without severe interruption to the day-today use of the system. Other ways in which this system differs from others within the scope of our experience are that it is significantiy easier to document, it is easier to debug, and it exhibits a good economy of programs. All of this we trace to the enforced uniformity and simplicity of procedure interfaces, the nearly exclusive use of data structures of virtually infinite length, and the emphasis on small, independent procedures. Perhaps C-J O's greatest contribution to program construction is its service as a discipline. I n the long run, the attempted trade-off of ope rat ing efficiency for speed of construction failed. By the time system performance was brought up to a satisfactory level by redesign and tuning, the system could have been constructed along more conventional lines. The trade-off that was, in fact, accomplished in the final product is one of operating efficiency in exchange for an affinity for redesign, ease of documentation, ease of debugging, and economy of programs. Now it occurs to us that for the construction of very large programs in an environment where the cost of manpower is increasing while the cost of hardware is decreasing, trade-offs of this type are very much desired. The construction of a file management system like C-IO surely should be, essentially, the construction of an application program. Yet, looking back, it appears that only a small percentage of the total effort was concerned explicitly with the problems of file management. The remainder was spent solving programming problems, that is, building the programming environment that we have described above. This circumstance is not unique, and seems to come up with the construction of almost every mediumsized or larger program. See, for example, the discussion of the implementation of ALPAK, and the subsequent design of the programming environment, OEDIPUS, in Reference 4. The development of the PROFILE language was an evolutionary process. Starting as a highly restrictive "near-English" query language, it was gradually generalized to the point where it combines file generation, retrieval, updating, and report formatting in one language. I n its present form it is a programming language, although a simple one. The fact that it is a programming language is met at first with some grumbling on behalf of its users, but they find it easy to Jearn and they are usually pleased with the flexibility it has over "near-English" languages. Fiie Management On A Small Computer The C-I0 System* If C-IO were to be designed again, two mistakes would certainly be corrected. The first concerns what we have come to call "system arrogance." Although any procedure within C-IO can be appealed to by a procedure within the system, the system itself cannot be used as a subroutine of another system. In this way the system is "arrogant." The second mistake was in not building an assembler as an integral part of the system. Instead, all assemblies are made off-line with an "arrogant" assembler that was found impossible to incorporate into C-IO. The decision to use AUTOCODER was justified by the original schedule, but it has led to some unfortunate results. In particular, the system cannot be easily used to maintain its own symbolic decks, and editing and macro facilities which are otherwise general purpose cannot be used on AUTOCODER source statements. Finally, one thing that was done correctly was the strict adherence to configuration independence. When operating the system at other installations, it is a valuable asset to have the system automatically adapt to any available disk unit and to take advantage of increased core storage space. The most important characteristic of C-IO as a programming environment is that it is a nucleus of an integrated software system that can be readily changed and molded to fit the needs of a specific set of users. It is not a large, complex, monolithic set of programs which attempts to be all things to all men. REFERENCE 2 3 4 5 CONCLUSIONS C-I0 has been described as a file management system on a small computer. It is unusually flexible in that it allows any number of files to be processed concurrently, it allows file processing operations to be combined with file generation and report generation, and it enables and encourages its users to break their problems into small procedures. C-I0 has been described as an environment for programming that provides facilities not usually found in an operating system, especially for a machine the size of the IBM 1410. These facilities include: (a) A framework that allows the programmer to define and check out one procedure at a time, within the system environment, and to save the state of the system from one session to the next. (b) An expandable set of data structures characterized by virtually infinite length. (c) A choice of three languages in which to express procedures, and the ability to appeal to any procedure from any procedure. (d) A set of debugging tools, which are made effective by a reliance on small procedures. (e) Access to the subroutines of a module that is already part of the system. (0 The capability of adjusting to changes in configuration without reprogramming. 205 6 7 T L CON.NORS ADAM - a generalized data management system Proceedings AFIPS Spring Joint Computer Conference Spartan Book Co Washington DC] 966 E E GRANT The lucid users' manual SDC TM-2354/001/00, System Development Corporation Santa Monica California June 16 1965 J H Bryant P SEMPLE JR GIS and file management Proceedings 2] st National Conference of the ACM Thompson Book Co Washington DC] 966 W S BROWN An operating environment for dynamic-recursive computer programming systems Communications of the ACM Volume 8 number 6 pp 37]-377 June ]965 C BAUM L GORSUCH eds Proceedings of the second symposium on computer centered data base systems SDC TM-2624/l00/00 System Development Corporation Santa Monica California L A BACHOROWSKI Phase II demonstration MTR-93 Supplement 2 The MITRE Corporation ESD-TR 66-647 Bedford Massachusetts July 5 1966 G STEILJR C-JO user's manual MTR-35 The MITRE Corporation Bedford Massachusetts ESO-TR 66-335 March 15 1966 APPENDIX I A file management example The Second Symposium on Computer-Centered Data Base Systems 5 was held on September 20-21, 1965. Prior to the symposium, a data base problem was submitted to the designers of five file management systems. The problem was divided into seven parts, and C-IO solutions to all seven parts are presented in Reference 6. In this Appendix we summarize the C-I0 solution to two of the seven parts: the production of two periodic reports, and the spontaneous generation of a demand report. The periodic report problem concerns two files: the PERSONNEL file and the ORGANIZATION file (see Figure 4). Units within the organization are either divisions, departments, groups, or sections. 206 Spring Joint Computer Conf., 1967 The periodic report request is stated as follows: "Combine the Personnel information with the Organization information, so as to prepare two reports. One report covers all sections in ascending organization unit number sequence, showing for each section its authorized complement, actual complement and deviation from budget. The second report presents this same type of information for all groups." The procedure, as illustrated, has two arguments. The first argument designates the organizational level for the report, that is, section, group, department, or division. The second argument, a number, limits the number of units to be processed, and was included soleiy to make it possible to control processing time during demonstrations, This problem is not the most difficult of the problems posed at the symposium. It does, however, involve cross-file referencing, calculation, and the outputting of reports in a specific format. The C-IO solution makes only one pass of each file for a report, and is illustrated in Figure 5. Comments in the actual program will help the interested reader get through it. Sample output is shown in Figure 6. STRUCTURE OF PERSONNEL FILE Generating the demand report is simple, and can be accomplished easily on-line. The problem asks that the name, number, unit, code, and skill names be retrieved of all personnel satisfying the following criteria: more than two skills, not a head, male, birthdate between 1916 and 1935, and any skill code of 3340. The appropriate PROFILE statement is: STRUCTURE OF ORGANIZATION FILE SUBSET TITLE IS 'DEMAND REPORT'; GET PERSONNEL IF [NO. SKILLS GT 2] AND [LEVEL NE 'HEAD'] AND [SEX = 'M'] AND [EXTRACT (BIRTHDATE, 7, 2) GT 16 AND LT 35] AND [ANY [SKILL (CODE) = 334<1>]]: NAME, NUMBER, UNIT, CODE, SKILL (NAME); Figure 4-Structure of the Personnel and Organization Files PROCEDURE WRITE.HEADING (ORG.UNIT, REPORTS. TO, ORG.NAME); BEGIN; FIELD = 'ORG UNIT'; SPACE OUTPUT 5; FIELD ~ ORG.UNIT; SPACE OUTPUT BLOCK; FIELD = 'REPORTS TO'; SPACE OUTPUT 3; FIELD = REPORTS. TO; SPACE OUTPUT BLOCK; SPACE OUTPUT BLOCK; FIELD = 'ORG NAME'; SPACE OUTPUT 5; FIELD = ORG.NAME, SPACE OUTPUT BLOCK, SPACE OUTPUT BLOCK; FIELD = 'AUTHORIZED COMPLEMENT'; SPACE OUTPUT BLOCK; SPACE OUTPUT BLOCK; RETURN; END; "THIS PROCEDURE, WRITE.HEADING, HAS 3 , • ARGUMENTS. ,tIT FORMATS THE FIRST FOUR LINES OF THE "PERIODIC REPORT, SUBSTITUTING ITS "ARGUMENTS WHERE APPROPRIATE. "THE OUTPUT DEVICE, AND THE DEFINITION "OF A BLOCK HAVE BEEN DEFINED BY THE "PROCEDURE WHICH CALLS IT. ,, "THIS LINE IS TYPICAL OF A STATEMENT "WHICH INSERTS THE VALUE OF AN EXPRESSION "IN THE OUTPUT STREAM. ., ,"THIS , ,, .., LINE INSERTS 5 SPACES IN THE OUTPUT STRe.:'AM. "THIS LINE INSERTS AN ENTIRE " LIN~ OF SPAC~S • , "THIS STATEMENT RETURNS TO " TH~ CALLING PROCEDUQF. Fiie Management On A Small Computer The C-IO System* PROCEDURE WRITE. LINE (KEY,CODE,TITLE,QUAN,SAL), BEGIN; ~PACE OUTPUT 5 + KEY ~ 5, FIELD 4 = CODE; SPACE OUTPUT IS - KEY ~ 5; FIELD 32 = TITLE; SPACE OUTPUT 2; FIELD 2 QUAN; SPACE OUTPUT 8; r=iELD 6 ~ SAL; SPACE OUTPUT BLOCK; RETURN; END; = PROCEDURE WRITE. TOTALS (Q.TOTAL, S.TOTAL); BEGIN; SPACE OUTPUT BLOCK; SPACE OUTPUT 19; FIELD = 'TOTAL'; SPACE OUTPUT 29; FIELD 2 = Q.TOTAL; SPACE OUTPUT 18; FIELD 6 = S.TOTAL; SPAC~ OUTPUT BLOCK; SPACE OUTPUT BLOCK; RETURN; END; PROCEDURE WRITE.AC (); BEGIN; 'ACTUAL COMPLEMENT', FIELD SPACE OUTPUT BLOCK; SPACE OUTPUT BLOCK; RETURN; END; = 207 "THIS PROCEDURE, WRITE.LINE, IS SIMILAR "TO THE PROCEDURE WRITE.HEADING. ,, "IT HAS FOUR ARGUMENTS, AND FORMATS MOST "OF THE DATA LINES IN A PERIODIC REPORT. ,, "THREE OF THE ARGUMENTS ARE DATA TO BE "INSERTED IN THE OUTPUT STREAM, BUT KEY "IS AN ARGUMENT USED TO CONTROL SPACING. "THIS PROCEDURF., WRITE.TOTALS, IS SIMILAR ,"TO , THE PROCEDUQ~ WRITE.HEADING. "IT HAS TWO ARGUMENTS, AND FORMATS THE "LINE CONTAINING TOTALS ,, "THIS PROCEDURE, WRITE.AC, HAS NO "ARGUMENTS. IT WRITES THE TITLE "ACTUAL COMPLEMENT PROCEDURE WRITE.DEVIATION "THIS PROCEDURE FORMATS THE DEVIATION (DEVIATION); "FROM BUDGET LINE. BEGIN; "IT HAS ONE ARGUMENT, THE DEVIATION. SPACE OUTPUT 19; FIELD 'DEVIATION FROM BUDGET'; SPACE OUTPUT 33; FIELD 6 DEVIATION; SPACE OUTPUT PAGE; RETURN; END; = = PROCEDURE WRITE. TITLE (REPORT.NAME); BEGIN; SPACE OUTPUT 5'; FIELD REPORT.NAME; FIELD 'REPORT'; SPACE OUTPUT BLOCK, END; "THIS PROCEDURE, WRITE.TITLE, WRITES A "SIMPLE TITLE LINE. "IT HAS ARGUMENT, THE NAME OF THE REPO~T. PROCEDURE PERIODIC.REPORT (LEVEL, N); "THIS PROCEDURE, PERIODIC.REPORT, HAS TWO "ARGUMENTS: LEVEL, INDICATING WHETH~R = = 208 Spring Joint Computer Conf., 1967 BEGIN; "REPORT IS TO COVER DIVISIONS,DEPARTMENTS VARIABLE Tl, T2, T.TITLE, T.QUANT", GROUPS, OR SECTIONS; AND N, INDICATING , T.SAL, T.CODE, T.UNIT,"HOW MANY UNITS TO REPORT ON. IND, TN, T3, INC, INCl, " LIMIT, LIMITl, U.TITLE; "DECLARE VARIABLES. , IN!) = ~; TN :: . ,, S!; IF LEVEL = 'SECTION', INC =~, " IF LEVEL = 'GROUP'; "INITIALllE. BEG I N, INC = 9, INC 1 = 1; END; " IF LEVEL = 'DEPARTMENT'; "INCREMENTS HAVE TO DO WITH THE BEGIN; INC = 99, INCI = 1~,ENDJ"ASSIGNMENT OF NUMBERS TO UNITS. IF LEVEL = 'DIVISION', "(PERSONNEL FILE HAS BEEN SORTED BY BEGIN; INC = 999, INCl=I~~JEND," UNIT NUMBER) OUTPUT TO PRINTER, "DECLARE PRINTER AS OUTPUT DEVICE. DEFINE PAGE FOR OUTPUT AS 33::132,"DEFINE SIlE OF PRINTER PAGE. DO WRITE.TITLE(LEVEL), "WRITE TITLE READ PERSONNEL, ELSE RETURN, " ORG:READ ORGANIlATION; ELSE RETURN; "FIND ORGANIlATION UNIT OF APPROPRIATE IF ORG~LEVEL NE LEVELl GO TO ORG;"LEVEL IN ORGANIZATION FILE. TN = TN+1; " IF TN > N; RETURN, "RETURN IF ENOUGH UNITS PROCESSED. LIMIT = ORG.UNIT+INC, " DO WRITE.HEADING(ORG.UNIT, "WRITE HEADINGS. AUTHORIZED COMPLEMENT REPORTS.TO, ORG.NAME); "IS PRINTED FIRST. T1 = ,; ., T2 = ,; "INITIALIlE TOTALS. T3 = ,; " O.JOB:READ JOB; ELSE GO TO O.UNIT; " DO WRITE.LINE (" JOB(CODE), "WRITE LINE OF REPORT FOR EACH JOB. JOB(TITLE), JOB(QUANT), " JOB(SALARY)), " T1 = Tl + JOB(SALARY); "INCREMENT TOTALS. T3 = T3 + JOB(QUANT); " GO TO O.JOB; " I.UNIT:READ UNIT; ELSE GO TO O.END, "WRITE LINE OF REPORT FOR EACH DO WRITE. LINE (1, UNIT(CODE), "SURSIDIARY UNIT. UNIT(TITLE), 1, UNIT(SALARY)); " U.TITLE = UNIT(TITLE); " Tl = Tl + UNIT(SALARY); " GO TO O.UNIT; " O.END:IF LEVEL NE 'SECTION'jT3=' 'J" DO WRITE.TOTALS(T3,Tl); "WRITE TOTALS FOR AUTHORIlED COMPLEMENT. DO WRITE.AC(); " T3 = ,; "BEGIN ACTUAL COMPLEMENT SECTION OF MATCH:IF PERSONNEL(UNIT)=ORG.UNIT, "REPORT. GO TO P.JOB; "FIND FIRST EMPLOYEE WHICH READ PERSONNEL, ELSE GO TO P.END,"BELONGS TO THIS UNIT. GO TO MATCHJ " P.JOB:T.TITLE = PERSONNEL(TITLE), " T.CODE = JOB.CODE; " T.QUANT = ,; " T.SAL = " " P.JOB1:T.QUANT = T.QUANT+1, " T.SAl = T.SAl+PERSONNEL(SALARY)j I I READ PERSONNEL; ELSE GO P.JOB2j "GATHER INFORMATION ON ALL EMPLOYEES IF [PERSONNEL(UNIT)=ORG.UNIT) "IN UNIT WITH SIMILAR JOBS. AND [PERSONNEL(TITLE)=T.TITLE];" GO TO P.JOB1; " P.JOB2:DO WRITE.LINE(', T.CODE, " T.TITLE, T.QUANT, T.SAL), "WRITE LINE FOR THIS JOB. T2 = T2 + T.SAL; " i3 = T3 + i.QUANi; IF PERSONNEL(UNIT)=ORG.UNIT; GO TO P~JOBl P.UNIT:IF PERSONNEL(UNIT»LIMIT; GO TO P. END J .t"DO NFXT JOe "UPDATE TOTALS. " ' , File Management On A Small Computer The C-10 System* = .; = 209 T.SAL I' T.UNIT = PERSONNEL(UNIT)J I·SUMMARllF. DATA FOR SUBSIDIARY UNITS. LIMITl T.UNIT + INCl; •• P.UNITl:T.SAL T.SAL+PERSONNEL(SALARY)J READ PERSONNELJ ELSE IND = IJ •• IF PERSONNEL(UNIT) 1 3,40 7320 3370 COATES w C. L. fLETCHER, ~. 81130 w. 71475 GORTON, R. A. 175C}0 GREEN,. S. D. 34840 LEVITT, P. S. 32924 lITTLE, E. F. 42055 MILLER, F. L. 52467 ~/ECH TECHN "'ACHI~E OPK MAIt\T TEC/-4 1 E ) PAI~Tlf\G CPR 2313 pt.ACHINF OPR ~ILLlf\;G ,..ACH OPR 3340 3345 3360 HEAT 1365 3125 3340 7320 TrCL CESIGNER TOCL t-'AI 1...·-----------1 (L1 ) E T ? No Append (Ll ) I to T Figure 2-Prefix language; len-to-ngnt scan new characters in the object alphabet. Our third restriction limits the form of these explicit definitions by demanding that the extended language category be also complete. Let us see what this requires. Suppose 'd' is the newly defined object character. It will have to possess, by our first restriction, a fixed stratification number, say n. If, then, aI, a2, ... , an designate any good expressions of fY' :;I by our second restriction f! rJ must also contain a good expression of the form 'dala2 ... an'. Thus, the explicit definition must have the 'form' f31 = f32, where the 'definiendf dum' f31 must have the 'simple form' dala2···an, and the 'definiens' f32 must not contain the character 'd' explicitly (no recursion), and must be an obvious syntactic function of the syntactic variables a1, ... ,an for all languages of the category. By the 'principle of syntactic invariance' (see Gorn 10), the al must be variables representing any good expressions throughout the category, because they are appropriate 'scopes' and the completeness of the category means that all good 'scopes' are 'good words' and vice versa. We must therefore be able to define and recognize forms as well as expressions. This is easily done without too much work by introducing an alphabeT of 'scope variables': d y = {a1 a2, ... } having no characters in common with a, and each character of which has stratification zero. If :;I' = d U d y , then.f! d is a form language, representing a whole category of form languages in which 'tree forms' can be ge>nerated, recognized, and compared. "Handling The Growth By Definition Of Mechanical Language* For example, we have the following definition throughout the category of languages of tree patterns: Definition: The form f31 is said to be 'of the form ~o', and fJ.o js called 'an initial pattern of {3/ (we write {3o:::;; (3t), if there is a compJete independent set of scopes 0"1, ... , O"n of f31, where n is the number of endpoints of f3o, such that, if ai = aj in f3o, then Ui = O"j, and such that f3t = f30 (~ah ... 'O"n~an). We can also write: f3t =+f3oUI.·.U n. If we think of the variables in d v as also referring to some unspecified addressing system for the control of storage of expressions, then this definition is effective; figure 2 presents the design of the processor called a 'tree pattern recognizer' . A number of other notations might be mentioned as being convenient both in the theory and in the construction of processors: a. 'Ca{3/ to mean 'the character at (tree) address a in tree (form) {31'. b. 'Sa{3t' to mean 'the scope at (tree) address a in tree (form) {3t' . c. 'D{3/ to mean 'the domain of (tree) addresses in tree (form) {3,'. d. If ~ and a3 are tree addresses, then a1 = a2·a3 can be read as 'the tree address of· relative address a3 with respect to address a2', and ~ is a 'tree-predecessor' of a l : ~ :::;; at. Similarly, if Al and A2 are two sets of tree-addresses, At· A2 will be the set of tree-addresses of relative address some A2 with respect to some AI; it is to be interpreted as the null set A if either At or A2 is null. e. We can also permit the scope-operator 'S' to refer to tree-domains as well as to trees. Thus, if D is a tree domain and at E D, then there is a tree domain Dl such that Sal D = al . D 1; also, Sal . ~ D = a1 . S~Dl. This notation sets up a primitive address computation facility (in fact a semi-group with unit '*' meaning root-address) for tracing and identifying the effects in expressions of growth by definition in the category. f. "'an occurrence of the character c E A in f3' will mean 'an address a such that c = C a {3', and the set of ·such occurrences can be written 'C-l c {3'. Thus 'a E C-l c {3' means 'a is an occurrence of cin{3'. It is now possible to recognize internal patterns as well as initial patterns in trees: {3o is an internal pattern of f32 occurring at the tree address a if f30 :::;; S a f32; in this case we also write a E C-t{30f32, and speak of 'an occurrence of the form f30 within {32'. If {3o is deeper than zero, i.e. is more than just one object character 2i7 at the root, then we say that the form f31 'dominates' the form f32 with the intermediary f30 whenever f30 s a scope of (31 and the initial pattern of f32, but f3o, f31 and f32 are not all the same; if we replacea that . occurrence of f30 in f31 by f32, the result f3t(f32 ~ f3o) if a E C-l f3of31' is a 'f31f32-domino'. We now have the apparatus by which we can specify an 'explicit definition', and trace its effect by means of a primitive kind of computation with tree addresses. EXPLICIT DEFINITIONS AND TREE MAPS We have now fixed u1'on an appropriate definition of 'explicit definition' for our categories of mechanical languages. It is one in which: a. The definiendum is a simple form, i.e. either of depth zero (hence only the single new character), or of depth one with only distinct variables at the endpoints, b. the definiens is an arbitrary form 'Pd, at least as deep as the definiendum (hence "# a), not containing d explicitly, but each variable of which does occur again in the definiendum. Ordinarily explicit definitions are introduced in order to say in less space something one will want to repeat fairly often. In other words, a very common motive for an explicit definition is the desire to have a large family of abbreviations; each definition provides an infinite set of abbreviations, all of the same form. (Thus each definition is like an 'optional linguistic transformation' .) Because the size of a tree can be measured both in depth and in breadth, two of the simplest types of explicit definition are the pure depth reducer, and the pure breadth reducer: An explicit definition, dal ... an = 'Pd, is a 'pure df depth reducer' if those end-points of CPel which are variable are, reading from left to right, in p or ~ form, exactly at, a2, ... ,an, and at least one variable has depth greater than one. If n = 0, so that d = 'Pd where df no end-point of 'Pd is variable, we do not call it a depth reducer, no matter how deep 'Pd may be. An example of a pure depth reducer is data2 = ca1CCOa2. df An explicit definition is a 'pure breadth reducer' if the depth of every variable in 'Pd is one, and those end-points of 'Pd which are variable are, reading from left to right, in p or ~ form and ignoring repetitions, exactly ahah ... , an, and at least one variable occurs more than once. The same interpretation is made if n = 0 as before; no matter how broad 'Pd may be, it is not a breadth reducer. An example of a pure breadth reducer is data2 = catCCocOCOcoa2al0 More generally, if 'Pd is the definiens of an explicit definition, let Adj = C-1aj'Pd (the occurrences, possibly 218 Spring Joint Computer Conf., 1967 Definicndum address character Definicns address character ---~--- )!: 0 d 0'1- .,' c 0 0'2 C '2 10 0'1- 11 0'2 Figure 3 - An explicit definition n null, of aj in CPd), and Ado=Dcpd - U Adi (the 'interior' i=1 of CPd); let mi be the number of addresses in Adb which we could call the 'breadth' or 'multiplicity' of aj, and let d i be the maximum depth of aj in A di • Then the definition does some breadth reduction if m!> I for at least one i, and it does some depth reduction if d i > ! for at least one i. If m! = 0 for some i :::; n, the stratification of d, then the definition is allowing arbitrary scopes to be introduced, and we say that the definition is a 'scopeexpander'. An example of a 'pure scope-expander', i.e. one in which neither depth or breadth reduction occurs, is dala2 = ca2, or dala2 = cco. df df Finally, an explicit definition may be introduced neither to 'expand scopes, nor to reduce depths or breadths, but simply to permute scopes. In a pure permuter' ill! = 1 and d i = 1 for i = 1, ... , n. Thus da1a2 = ca2CCOCOCOal is a pure permuter. df Most definitions we might envision would be mixtures of these types, and for each such mixture we might imagine ..:ach type of effect to be introduced by a separate 'ideal definition', thereby 'factoring' the definition into a sequence of pure types. For example, the explicit definition da1a2 = ca2cala2 might be endf visioned as the result of 1. a pure depth reducer d1ala2a:l = ca}ca2a3, df 2. a pure breadth reducer d2ala2 = d1ala2al, df 3. a pure permuter dala2 = d2a2al' df Figure 3 illustrates this definition. We can now be precise about the meaning of such expressions as: a. The elimination of an occurrence of d in a form {32: if a EC-1d{32, and the scopes ( .:: ij)(a l ~ a 2 . au). Let the relation 1 ~ a 2 among addresses mean just this, so that our condition reads: a l ~ a 2 => a l ~ a 2. This, then, is precisely the condition under which the 'elimination functor ' exists; it is applicable to anyone of the infinite number of expressions f3 with an occurrence of d at a2 and also at ~(a2;a}). We could similarlv validate and identify the 'elimination functor F = = Ed a I ···Edan' and restrict our· selves to a primitive address computation as in Figure 5. d O'~ 0'2 dc C 0'2 C 0'1 0'2 f <* > {*, O} = (I 0 ) g 4( *; a) { <* > ('~, I) = {O. 1 I J {*,I,II} = {<*>{'~,l} U <*>(*,1' I}} a = <111,0> ( {O,II) U fO,Il)' I} and the composItIon of d-maps can be reflected in such notation as: f31 DJ. {O.II,OI, Ill} ( (O,OI) U <0> (O,II,III)) E ~ f33 () (f2 0 f t ), or f1 1- f2 D2 - - . - ---...,,..- ~2 1 D3 ------,-- f3 3 a a {O' <*> (*,1) U (ll.lll}) = = = < Ill> (0' fO,II) U {l1.lll}} (OO,OII,ll,lll) {Ill, 00, 0 II. II} = {OO,OII,ll} Figure 5 - An address computation for d-e1imination a If, furthermore, the explicit definition is not a scope expander, and f32 ~ f31, the uniquely determined mapd ping from f31 into f32 is a mapping 'onto'. In any case, such mappings f are uniquely determinded by addresses only; i.e. by a computation which given any aE Dl=Df31' yields f(a)E D 2=Df32' Actually, an even stronger statement can be made; these address maps are even independent of the particular trees. Eda is a functor applicable to any tree f32 for which Caf32 = d, and it is possible to compute gd(a;b) for any address without knowing anything else about f31 beyond the fact that a E C-lCPd{31' We can therefore talk, within the context of a fixed expiicit definition, of 'the elimination functor '. Furthermore. Eda1Eda2 will be applicable, as a The problem solved by the computation in figure 5 could be stated as follows: If we explicitly define d by means of dlXllX2 = ClX2ClX)lX2, then we would like to know what 'traces' are left from original occurrences at {*, I,ll} in any word to which the following elimination functor is applicable; d is eliminated at *, then at 0, and then at 1 1 I. According to the computation, the only traces will be at addresses 00, 011, and 11. In particular, if d's occurred originally only at *, 1, and 1 1, they would not be completely eliminated; there would still be occurrences of d at 00, 011, and 11. A study of Figure 5 reveals that the address computation is driven to a conclusion by an algorithm which applies the following rules: Rule I: <*> {*} = Rule 2: If i < s(d) (the stratification of d), then for every address a < > {*, I " a} = l'~di . a ={ai! . a .... ,a.itj a}. Handling The Growth By Definition Of Mechanical Language 221 ( /I. ;:::, 0, I,ll} Figure 6- The Hasse diagram of E (ao) The address set is interpreted to be null if the multiplicity, mb is zero, i.e. if the definition is scope expandin~ at i. Rule 3: If*EA l, then {a . AI} = {a . <*> AI}' Rule 4: If a:::;;b, then{a,b }={b}. Rule 5: (the first commutation rule) If a and bare independent addresses (i.e. neither preceding the other), then = . Rule 6: (the second commutation rule) If mi =1= (i.e. if the definition is not scope expanding at i), then = . If the multiplicity is zero, mi=O, then we can only say ~ (the functor has in its domain any expression with an occurrence of d at a' the functor is more restricted becaus~ it also reguires an occurrence at a·i·a'). Rule 7: (the distribution rule) If the d-elimination functor F is applicable to the address sets Al and A 2 , then it is applicable to Al U A2 and F(AI U A 2 )=FAI U FA2 • Suppose we now represent the distribution of occurrences of d and 'Pd in an expression f3 by another expression of the form {C- l d{3;C- l 'Pdf3}. Then, for the definition of figure 3, the expressions in pa: dca2 al d a2 aj, c d a2 al d al c a2 aI, and ao = c c al c a2 al ° c c a2 al c al c a2 ab will be represented by {*, 1; A}, {o,l;A}, and {A;*,O,l,ll} respectively. Moreover these three expssions all belong to E(ao), consisting of eight expressions in a partial ordering whose Hasse diagram appears in Figure 6. 1. If f31 and f32 are forms over the extended alphabet f3, then there exists another form f30 such and f3l that ~,du 130 and f32 d f30· ThIs is a very special case of the Church-Rosser theorem, which deals with the very general e~tension of formal systems by definitions. See, for example, Curry & Feys.6 2. Every expression f31 over the extended alphabet determines a unique expression f30 over the original alphabet such that f3l ~ f30· In other words, evgry equivalence class of expressions contains one and only one expression over the original alphabet, its unique 'normal form'. 3. For every expression f3, L(f3) is a lattice. Figure 6 shows that this need not be true of E(f3). 4. E(f3) can only be infinite if the definition is scope expanding. 5. E(f3) can only fail to be a lattice if 'Pd is selfdominating, and f3 contains a 'Pd'Pd -domino. For example, this is the case in figure 6 because the occurrence of 'Pd at 1 in ao dominates the occurrence =: 222 Spring Joint Computer Conf., 1967 CO'l CO'2 0'3 d, I 0', O'~Q" .:: II _d_f__d_2_0'_2~ df ~ ~ ~ Figure 7 - The Hasse diagram of E (ao) when d is factored at II and is. dominated by the occurrence at *. 6. A partial ordering is called modular if, whenever f32 ~ f31, any two complete chains between f32 and f31 have the same length. Figure 6 is not modular because one complete chain between {*.I ;A} and {A;* ,0, I,ll} is of length two and the other two are of length three. This happens because the definition is a breadth reducer, C-'a2c,od ={O,ll}, and C-lc,odao:2 {*,O, II}. 7. If we factored this definition into a pure depth reducer, a pure breadth reducer, and a pure permuter, as mentioned before, we separate their several effects into three phases of extension, as one can observe by studying Figure 7. CONCLUSION One could extend the very special theory of this paper in a number of directions. For example. one could go on to study the effects of sets of definitions; the factorization into 'pure' types illustrated this. One could relax the 'completeness' condition we were using in our categories of languages, and consider various kinds of incomplete categories. One could relax the restrictions implied in our use of the word 'explicit' to permit definitions by cases, or suppression of variables, or even recursion. The fact that there is such a theorem as the Church-Rosser theorem means that some kind of light should emerge. However, it seems to me that even our simple example has taught us some unexpected things. First of all, the processing we have been discussing can occur at meta-language level as well as at objectlanguage level. For example, in Church's axiomatic system for the propositional calculus the first axiom is AI : ~al:J (a 2 :J at)· Handling The Growth By Definition Of Mechanical Language The Name Al belongs to the meta-language just as the punctuation, parentheses, and 'I -: do. We can give Al several important types of interpretation in the meta-language, all of which we would like to use in the same system (see Gorn. 9 For example: 1. Al is an address in an addressing system for the storage of axioms and theorems. 2. Al is an instruction representing an operation on two expressions; Al6:1a2 will produce ~a2~al lX2 • h . _u .. :In t .. e 1.anguage f1',~ 0.1fa' .caLegol y. .1 HI., "~IU(ll1L1'" ~llC\v carries with it all the syntactic effects of the explicit definition of figure 6 with Al for d and ~ for c. In particular, the syntactic relation 'T't...:~ ~~--- _ct:'_~t ~~~~~~~~~~~~~~~~~ would also have the semantic consequence that both expression's specify methods of deriving a o =~ ~al ~a2al ~ ~a2al ~al ~a2al' We also know, because of the AlAl -domino in a o , that there can be no expression in the rI fJD from which both can be derived. This means that much of the processing needed in theorem proving is not essentially different, in spite of the shift in level of interpretation, from the processing at object level. Moreover the introduction of explicitly defined symbols, as in ~ ala2 dr V ~ala2' and the introduction of systems of names of axioms and theorems are not only similar to each other but also play the same role in the meta-language as the introduction of new names of instructions, or of macro-instructions in a programming language. All these new symbols can also be interpreted as names of linguistic transformations on the object language, and therefore as operators in a meta-language over the object language. This means that there is a second effect from our study. A number of seemingly different problem areas in information science, logic, and linguistics become identified: a. The growth of a mechanical language by the explicit defining of new characters: it can be controlled if we have the definitional forms recorded, and use such processors as form recognizers, recognizers of the relation ~ no matter what the 'd', reducers to normal form independent of d and 'Pd, equivalence recognizers, etc. Each of these processors will permit one to vary the alphabets, the forms, and the definitions, of which there will be very many. But of the basic processors there will be only a handful, and they will be applicable at many levels as well as to many alphabets and many definitions. The system should also contain a number of the translators among the language functions of the category. b. A number of problems in artificial intelligence: imagine that a language is specified for which a recognizer is either unknown or impossible; we want a 223 'heuristic' recognizer which will 'often' determine whether an expression belongs to the language by attempting to solve the problem of setting up . a derivation tor it. If the processor is halted before thIS happens, the recognition is left undecided. The inves~i gations of Newell, Shaw and Simon, such as the lOgIC theorist,13 and the general problem solver14 can be formulated this way, because the set of all 'true' expressions can be considered a language just as easily as the set of all expressions. This is because the axioms can be considered as ad hoc syntactic generators of good expressions, and such 'transformation rules' as modus ponens, substitution, etc. can be considered as derivation rules in a generative graminar. The heuristic program recognizes patterns of applicability of these transformation rules in order to set up the 'subgoals'. The p,vailability of our standard form recognizers, as efficient processors rather than heuristic ones, makes the main heuristics more efficient. See Boyer, 1 and Chroust. 4 c. The extension of formal systems by definition: one considers the 'derivation rules' of the formal system to be the 'transformation rules of the language', ip the sense of Carnap, just as described in ~. This is why the material in the first four chapters III Curry & Feys,6leading up to the Church-Rosser theorem for general formal systems had its counterpart in our simplified and much more highly structured languages. d. We handled an explicit definition as though it were an addition to the grammar of the language which permitted certain simple linguistic transformations to be performed. Our classification into depth reducers breadth reducers, etc. is a very primitive classification very much in the spirit of the much more complicated 'linguistic transformations' in the sense of Chomsky and Harris. Can we not consider that anyone who defines a new expression in a language is causing the language itself to change; is he not really changing the grammar of the language, and not merely adding new expressions? e. Suppose we have two programming languages, such as, for example, the assembly languages of two different binary general purpose machines of the von Neumann type. We can consider that each instruction of either language is defined in terms of a common 'micro-language' of bit-manipulations. Some of these definitions are recursive, but many can be made explicit. Among the difficulties of machine-to-machine translation is the fact that many instructions, like 'ADD', do not really have the same definition in the different machines. The same problem arises if a community of users, beginning with a common language, have the freedom 224 Spring Joint Computer Conf., 1967 of introducing macro-definitions independently of one another. Sub-communities with common problems will develop different sub-languages by different systems of macro-definitions, and if these different sub-communitities do not remain in constant communication, their distinct 'dialects' will, in effect, grow into distinct languages, and the translations, even with only explicitly defined macro-instructions, will be come difficult because of what, in this paper, is called the domino effect among definitions. The non-lattice effect we remarked on for definitions related by dominance we can now interpret as a danger of loss of communication; when the processors we have discussed are not available, the different sub-communities will not even know when they are saying the same things. REFERENCES 2 3 4 5 6 M CHRISTINE BOYER A tree structure machine for proving theorems Moore School Master's Thesis August 1964 JOHN W CARR III The growing machine to be submitted to a computer publication TECHEATHAM The introduction of definitional facilities into higher level programming languages AFIPS Conference Proceedings Vol 29 Fall Joint Computer Conference 1966 GERHARD CHROUST A heuristic derivation seeker for uniform prefix languages Moore School Master's Thesis August 1965 A CHURCH Introduction to mathematical logic Vol I Princeton 1956 H B CURRY R FEYS Combinatory logic Vol I North Holland 1958 7 B A GALLER A J PERLIS A proposal for definitions in A LG 0 L to appear in Communications of ACM 8 SAUL GORN Common Programming Language Task Rep AD 236-997 July 1959 and Rep AD 248-110 June 30 1960 U S Army Signal Res and Develop Labs Fort Monmouth N J Contract No DA-36-039-SC-75047 9 IBID The treatment of ambiguity and paradox in mechanical languages Am Math Soc Proc Symposia in Pure Mathematics Vol V (1962) Recursive function theory Apr 1961 10 IBID Mechanical pragmatics: a time motion study of a miniature mechanical linguistic system No 12 Vol 5 December 1962 pp 576 589 11 IBID Language naming languages in prefIX form Formal language description languages for computer programming North Holland 1966 pp 249-265 12 IBID An axiomatic approach to prefix languages Proceedings of the symposium at the international computation centre Symbolic languages in data processing Gordon and Breach 1962 13 A NEWELL J C SHAW H A SIMON Emperical explorations of the Logic theory machine: a case study in heuristics Proceedings of the western joint computer conference 1957 pp 218-230 14 IBID Report on a general problem-solving program Information processing UNESCO Paris 1959 pp 256-264 15 T J OSTRAND An expanding computer operating system Moore School Master's Thesis December 1966 An optical peripheral memory system by R. L. LIBBY, R. S. MARCUS* and L. B. un ~TAT T A u .. 1 ... .L..J.L....I1 J.I.'-LJ Itek Corporation Lexington, Massachusetts algorithmic (programmable), decision table, and tagassociative memory type of processing. This combination of processing appears to be typical of a broad class of non-numeric information handling problems that range from language translation to image pattern analysis and recognition and proved to be a more than adequate test vehicle for assessing the memory technology. Figure 1 is a picture of the final operating test system. The photo-optical disc reading unit occupies the two-bay cabinet to the left of the chain printer and magnftic tape transport units. The memory search logic is incorporated in the three-bay unit in the center background, along with the general purpose computer logic. INTRODUCTION The increasing extension of computer technology to applications involving the accumulation and use of large libraries of digitized data (1012 bits or greater) has stimulated interest in new digital peripheral memory techniques.1,2,3 Of the many characteristics and performance parameters of interest related to peripheral memories, achievable digital storage density is a fundamental parameter since it contributes strongly (but not uniquely) to the access time, data transfer rate, cost per bit, and other important properties of digital peripheral memories. The particular peripheral memory described in this report uses optical techniques for recording and reading digital data. The search logic and general purpose computer associated with this memory have allowed practical demonstration of the recording and reading of digitized information and the functional use of the peripheral memory as a content addressable store. The use of optical techniques in the subject memory demonstrated that many memory performance characteristics typical of magnetic technology can be equalled or exceeded. It would appear, however, that the promise- of optical techniques in the peripheral memory area lies in the area of storage and retrieval of digitized data in capacities of 1011 or greater for either on-line or off-line storage or retrieval applications. This paper describes first, an operational prototype system and then presents technical considerations for achieving mass digital storage capabilities. The system for evaluation of the photo-optical memory technology A complete computer system was designed around the photo-optical memory and tailored for combined Figure I - Overall view of memory test system Figure 2 shows the Disc Writer U nit which is fully automatic except for loading and unloading the photographic disc. An overall block diagram of the test system environment for the memory is shown in Figure 3. *Currently with the Electronic Systems Laboratory, Massachusetts Institute of Technology, Cambridge, Massachusetts. 227 228 Spring Joint Computer Conf., 1967 Mounting of the disc in the Disc Reader is as simple as mounting a magnetic tape reel. Once mounted, the photostore disc provides an on-line unit record of 150 million bits which can allow access to randomly located entries within it, in an average time of 15 milliseconds. When a desired entry is found, read-out into the computer memory occurs at a 4 megabit rate. Figure 2 - Disc writer unit DISC WRITER I Exposed Discs I Finished Discs SEARCH LOGIC AND CctlPUTER DISC READER Figure 4- Photographic memory disc Figure 3 - Test system block diagram The magnetic tape unit is used primarily for the input of source data to be recorded in the photographic unit record, or photostore disc, of the system. The control computer buffers each track worth (9,600 seven bit characters) of source data during the memory writing operation to insure affirmative parity checks before transferring the data to the Disc Writer Unit. The data transfer and writing occurs at a rate of 100,000 bits per second. The Disc Writer records these data serially by bit on each concentric track of the disc. Disc writing can terminate after any of the 2350 total possible tracks are completed but not during the writing of a track. The exposed (recorded) disc is then removed (manually) from the Writer and placed in a Developer Unit. After chemical development, the recorded disc is either stored for later use or manually placed in the Disc Reader Unit for use in retrieval or dictionary look-up processing. The photostore disc The short random access time (15 miHiseconds), high read out rates (approximately 4 megabits per second), and high unit record capacity (150 million information bits) achieved by the single reading station, results from the use of optical techniques for data writing and a photographic film emulsion as the storage medium. A glass disc, one-quarter inch thick, and 10.5 inches in diameter is coated with Eastman Kodak Type 649F high resolution emulsion. This is an emulsion formerly used primarily by spectroscopists but recently a favorite in holographic work. The information is recorded in a one-inch annular region (centered at a 4.25 inch radius), in the form of 2,350 concentric tracks (see Figures 4 and 5). Each track of information shares a transparent border and an opaque border with its neighboring tracks (see Figure 6). The stored information is recorded serially by bit on each track and 67,000 bits are recorded on each track, at a density on the inside track of approximately 2,850 bits per inch. The code used (Man- An Optical Peripheral Memory System 229 code words which, with appropriate hardware, could be used as special hardware recognizable operational codes or data delimiters. The Disc Memory currently uses the following five combinations: Character code 0080 ls 008028 00803 8 008048 008778 Figure 5 - Microphotograph of disc information tracks DISC Q[AD[D 5£.LF TOACKINO PRINCIDL£ Function Mnemonic Detector Synchronizing and Entry Delimiting Argument -Function Separator Substitutes for 008 in stored information Delimiter introducing Track Identification No. Match Anything Code a{3 Comment Machine Detected aT Machine Detected ay a5 Machine altered to 008 upon read out Machine Detected av Machine Detected There is nothing fundamental restricting the use of less dense codes in systems of this type, such as 8, 9, 10 bit, etc. code words, if one finds that either the reserving of 008 from available data-representing code words is too restrictive or the transforming of 008 into a double byte code prior to storage is cumbersome. As noted above, the system uses a two-character code (008 01 8 ) to delimit or bound the data entries ih the memory, and another two-character code (008 02 8) as an internal separator between the argument (look-up tag) and the function (read out) portion of an entry on the storage disc. Entries may contain one information character or up to 9,600. Photos tore disc reading In utilizing memories having on the order of 10 million information marks per square inch, one cannot rely on absolute mechanical positioning of the read-out mechanisms. In the optical memory reader, CDT5POT OI~C IlEADEU Figure 6- Disc reader self tracking principle chester), provides a short-time average light transmission that is independent of the information stored. For example, each logical bit value recorded as an opaque or clear mark is followed immediately by its complement. Thus a string of logical zeroes consists of an alternating sequence of opaque and transparent 5 micron square marks. The all zero code, 6 logical zero bits plus 1 odd parity bit per character, is reserved for use as an operational code recognized by circuitry. Thus, the sequence of bit marks representing the double character sequence (008 01 8 ) is uniquely available as a detector synchronizing code. The octal zero "shift" code, coupled with the other characters provides 62 other possible double byte INFOIMAlIOI COMPUTY ....------r--~TO Figure 7 230 Spring Joint Computer Conf., 1967 a reduced optical image of a Cathode Ray Tube (5AUP24) spot is positioned on the emulsion containing the digital information mark pattern. As depicted in Figure 6, the imaged CRT spot m.ay wander from the track locus, as the photostore diSC ..r..tatoc at 3600 rpm. The generalized closed loop ~~;v~~echanism depicted in Figure 7 keeps the image of the read-out spot centered on the information marks by feed-back control of the radial deflection of the CRT. Since the "on track" condition is stable, track stepping is accomplished by reversing the sense of deflection on the CRT and simutaneously "nudging" the spot in the radial direction desired (i.e., toward the disc memory center, or toward its outside edge). To make the tracking mechanism action independent of the stored information, the Mane-hester e-ode is used which provides an average "on track" light transmission of 50%. The servo response is limited by the 5.4 microsecond, short term, circuit-integrated average of the output of the photomultiplier tube (the PMT that reads the information-modulated CRT light). A non-integrated version of this output g~es to the search logic and control computer. Steppmg of the reading spot is controlled either by computer instructions or the automatic search logic. Total "many-track" stepping time (averaged per track), including instruction execution and servo settling time, is estimated at 7 microseconds. Since track stepping cannot proceed at a rate approaching the rate of occurrence of information m~rks (when "on track") and it is desirable to assure tIm~ for the reading spot to "lock on" each track that It passes, the radial velocity of the read-out spot is set so that radial search time corresponds to an equivalent velocity of about 61 inches per second. Programmed track search and entry sampling reduces this to 50 inches per second. The tangential motion of the information tracks relative to the readout spot (by disc rotation) is approximately 1700 inches per second. Disc format optimization It can be readily shown that the disc format has about SO% of maximum capacity for the given mean access time. The ratio of the two average coordinate search velocities (random search) is about 80% of the ratio of their corresponding coordinate dimensions. That is: V tangential x 2 : V radial x. 3 = 22.7 II R: W= 2S.3 and 211 R : W=2S.3 where: W = width of information annulus = 1 inch R = average radius of information annulus = 4.5 inches V radial = 50 inches/second V tangential = 1700 inches/second The factors 2 and 3 correspond to cyclic and bilateral search motions in the tangential and radial directions, respectively. and: (2 x V tangential) + (3 x V radial) : 2ll R!W = O.S The disc memory unit functions The two-bay Disc Memory Reader Unit contains five major functional sub-assemblies and utilizes seven control logic lines between it and the search and control logic. These lines pertain to track step commands, error flags, clocking, and entry delimiter signals. The five major functional sub-assemblies are: 1. CRT Light Source Generation: The 5AUP24 CRT is run at a beam power of 1.6 watts with a 0.012 inch diameter spot. Since this is a phosphor temperature-limited operation, the spot is kept moving on the phosphor in a 2.5 inch diameter circle at 100 cycles per second. Protection against loss of deflection is provided. A reference PMT continuously views the CRT and maintains constant CRT spot light output. 2. Lens Motor Assembly: The microscope lens used to image the CRT spot is mounted on a "voice coil" which is supported as an air bearing on the center pole piece of a large cylindrical electromagnet. The one inch radial motion of the field of view of the lens, which statically encompasses about 100 data tracks, has the necessary acceleration such that it does not limit the track stepping time as determined by the tracking servo settling time. This lens motor is injected with a properly phased component of the 100 cycle sig'hal that is used to generate the CRT spot circular motion, in order to cancel any radial motion of the spot's image on the disc. The 100 cycle tangential motion (along the information tracks) is tolerated. 3. Tracking Servomechanism: Both the CRT radial deflection (radial with respect to the disc spindle center) and the lens motor (lens position) are driven by the amplified error signal generated as the integrated PMT output (see Figure 6) deviates from a "grey level" reference value. The lens motor corrects for all perturbations up to about 120 Hertz and the CRT radial deflection for perturbations having frequency components from that cut-off point up to 150 to 200K Hertz which is well below the energy band of the information being read out. An Optical Peripheral Memory System 4. Signal Detection and Processing: .The analog signal output from the disc reader PMT IS shaped .by a delay line correlator and a detector clock ph.a~mg signal is derived from the information mark transItIOns (clear to opaque, etc.). Since the disc output signal contains two pulses of opposite polarity for each bit recorded on the disc, this fact is utilized by incorporation of two detectors whose detection sampling intervals are shifted in iime by one information mark time interval. Detection of a parity error in say the "true" detector automatically causes selection and use of the character in the "complement" detector. Circuit means are provided to prevent improper phasing of these detectors. 5. Air System: Approximately one-half of the Disc Reader volume is occupied by an air compressor and de-humidifier provided for the lens motor air bearing. Experience has indicated that the de-humidifier unit can probably be eliminated and the compressor and air reservoir system reduced in size. Photos tore disc memory searching Finding an entry in the photostore memory to begin read out can be accomplished in two different modes: a. Content Addressing (track search followed by entry search) b. Vicinity Search (absolute track addressing) followed by Content Addressing In the Content Addressing Mode, a string of characters (this can be several thousand characters long) is placed in the Look-Up region of the memory of an associated computer, or if the system is designed for an entry of fixed length, it can be inserted in an interface register and the Look-Up instruction executed. As soon as the CRT spot image, which may be on any track of the photostore disc, encounters an entry delimiter (00801 8) then each succeeding character is matched sequentially with the corresponding sequential character in the Look-Up memory region (or register). The moment an inequality of character code match is encountered, the reading spot steps up or down one track on the disc, based on the sign of the inequality. The matching of characters in an entry argument with those in Look-Up region begins over again the moment an (008018) is again encountered. Since the arguments of the entries in the dictionary are arranged in order by their code value (as left justified fractions, with each character value being a digit of the fraction) then this step track, attempt a sample match, and then step track sequence continues until the sequence of track-sample matches produces a "memory sample less than" to a "memory 23 J sample greater than" transition. It will be noted that during this "Track Search" phase, even an extra match of an entry argument with the sequence of characters being looked up, will not cause read out of an entry's function. This prevents a match of a shorter (hence lower valued) memory-entry argument with a short sequence of symbols being looked up, when a longer (higher valued sequence) may exist in the photo-disc memory. After the "less than" "greater than" track sampling sequence criterion is sa~isfied, the "Entry Search" phase of the Look-Up instruction occurs. The readout spot stays on a track during the Entry Search phase until either an argument is found that matches every character in the look up region as far as its intra-entry deiimiter codes, or until an "end of track" code word is encountered. In the latter case, the readout spot jumps to the next track containing lower argument code values and continues entry search, and so forth, until a matching argument is found or end of the memory is reached. When a matching argument is found, all parts of the entry following the intraentry boundary between argument and function and the (00801 8) function terminating code word are read out into a memory field (staticizer region) of the attached computer. The value of this "longest match", content addressable, search procedure in language processing has been described in some detail. 4 The sampling of one entry on each track in order to make the "sampled comparison" can slow the content addressable search procedure if the argument (or tag) of entries are long. Accordingly, a means has been provided in this system to perform a programmed "vicinity search" phase prior to entering the "Track Search Phase" of the Look-Up instruction. This is accomplished by automatically reading from a register the track number of any track that the read-out spot is resting upon (by employing a "track identify" instruction). These track numbers may be recorded as frequently as desired on a memory track or as little as once at the beginning of each memory track. Preceding a look up instruction, this track number is ascertained and compared with the approximate track location of the arguments having the first character value of the first character in the look-up region (this is determined from a small table in the control computer's memory). The program then gives a command to step the necessary number of tracks in the proper direction prior to giving the look-up instruction. Absolute Track Addressing is accomplished by use of the track number identification and programmed track step commands. 232 Spring Joint Computer Conf., 1967 Disc memory access time and capacity relationship The average timing of the accessing of randomly located records on the photos tore disc can be approximateiy expressed in a quantitative manner. A general relationship can be derived, relating the size of a dictionary that is stored in the photo-disc memory and the average random access time to an entry: Relationship of total dictionary size and look-up time: D = dictionary size in bits E = dictionary size in terms of the number of entries B = average number of bits per entry, including delimiters (assume function and argument are equally long) Assumptions and fixed parameters: (a) Servo settling time and step-track instruction execution in track stepping is approximately 7 microseconds (b) D = B x E (c) T = average look-up time for each of a large number of entries randomly located in memory (d) K = redundancy (repetition) of entries (=1, 2, 3 ... etc.) in terms of repeated sectors on a track (e) C e = capacity of photos tore disc that is effectively used; C e = K x D bits (f) NT = number of tracks utilized on disc, where: (B/(2 x 4 x 106 ) Term 5: + 7 x 10-6 ) = 0.40 x 10-3 seconds for B = 100 Function read-out time - B/(2 =0.013 x 10-3 seconds x 4 x 106 ) Since terms 3; 4; and 5 contribute about 1.2 millisecond, the access time (for entries where B = 100 bits) can be approximated by the following expression: T = 2.3 X 10-3 NT + 8.4 -;- K + 1.2(milliseconds) where, again: NT = total number of tracks of information on photo memory disc K = number of repeated information sectors per track The number of tracks (NT) can be expressed in terms of the number of entries in the photo memory. The expression for the average access time to randomly located entries becomes: T = 0.033 x 10-6 K x B x E + 1.2(milliseconds) + 8.4 K I t should be noted that the last term of the above access time expression is not very sensitive to the length of an entry (B) for a given capacity. A tenfold increase in B (to 1000 bits per entry) would change the final constant in the above expressions from 1.2 milliseconds to 2.8 milliseconds. Photos tore disc memory writing or NT KxD = ...I " 1 Ad ;<.. 1 V' tracks (g) memory serial scan bit rate (along track) 4 X 106 bits per second If vicinity search is used, the sum of the following terms will equal the access time in seconds: Term 1: Radial Track stepping time - 7/3 X NT X 10-6 seconds Term 2: Rotational latency time - 1/2 X 11K X 16.7 X 10-3 seconds Term 3: Vicinity track search; programmed file search of a 64 entry table -(64/2) X 30 cycles x 0.8 x 10-6 seconds = 0.77 x 10-3 seconds Note: The control computer has a 0.8 x 10-6 second cycle time Term 4: Fina! track stepping and entry sampling within 20 tracks of desired track - 20 The use of non-erasable photo-optical phenomena as a digital information storage method causes more conceptual than actual operational difficulties. It is to be noted that in many magnetic tape oriented systems, erasibility features are used primarily to recover the use of the storage medium rather than as an updating feature. The development program for this system has shown that writing rates competitive with 90 kilocharacter per second magnetic tape transports would be easily achieved with long-life, medium power, C-W lasers. The throwaway costs of optical recording materials, if obsoleted by rewritten records, could be negligible compared to the processing costs attendant to any large record updating task, using say a re-usable medium. The photo-memory writing process starts with a prepared batch of data on IBM-format compatible magnetic tape. This data has been segmented approximately into 9,600-character blocks, since this is the capacity of each of the 2350 tracks of a photodisc. The control computer memory writing program reads one block of information into the core memory and turns on a "Ready to Write" light on the control An Optical Peripheral panel of the Disc Writer unit. An operator has previously mounted an unexposed disc on a spindle in the Writer and he presses the "Start-Write" button when the computer signals "Ready to Write". The block of information is transferred under program control, six characters at a time, to the Writer Unit. The latter unit, serially by bit, by means of an electrooptical modulator, modulates a 25 milliwatt He-Ne C-W laser beam with the information. The laser source beam has been split into two beams (Figure 8). One of these, moduiated by the information bits to be recorded, is imaged as a 1.2 by 5 micron slit image onto the disc emulsion. The motion of the emulsion of the moving disc with respect to the slit-like image and the timing of the on-off sequencing of the electrooptical modulator produces a 5 micron square clear (unexposed) and a 5 micron -square opaque (exposed) sequence of areas on the disc for each logical "zero" to be recorded. The opposite sequence of an opaque and a clear area is used to record a logical "one". The second portion of the beam forms a slit-like image (the border image) which is left "on" continually while writing information marks. By switching the position of this border image every time a new track is written, alternate clear and opaque track borders ~Y1emory System 233 the overlapping of the beginning and end of a written track. All track beginnings are approximately aligned by means of a synchronizing magnetic pick-up on the writer spindle but radial correlation of track to track information at the bit level does not otherwise exist intentionally. The Disc Writer writes at instantaneous rates of 100,000 bits per second, but because of the interlaced track indexing motion (spindle radial indexing), the effective writing rate is 50,000 bits per second or about 7 kilocharacters (6 bits plus parity) per second. A design for interruptible spiral track writing has been completed which avoids this loss in effective writing rate. A more detailed technical description of the photo-optical aspects of the Disc Writer has been presented. 5 When completion of the disc (or partial disc) is indicated (by track number), the exposed disc is removed manually and placed in an automatic developer unit (Figure 9). A standard photochemical development is carried out by this unit with the precaution that all solutions are filtered (to 1 micron) immediately before their application. A completed dry disc, with archival quality, is obtained in about 15 minutes. This process probably could be reduced, by using heated and special solutions, to a period of 3 minutes. PJ!JC WIlIT(a ~ INDOiNO M01ToN I~T ATA Figure 9 - Automatic disc developer unit Figure 8 - Disc writer diagram are obtained as illustrated in Figure 5. When one track of information is written (9,600 characters and one spindle revolution), the spindle containing the disc is electromechanically indexed radially about 430 microinches (11 microns). During this indexing, the control computer is reading the next block of source magnetic tape. At the start of the next revolution of the disc spindle, the foregoing sequence is repeated. Disc spindle rotation and modulator timing are derived from stable frequency sources and it has been found that one or two characters of buffering (empty of significance) suffices to take care of The search logic and photo memory related instructions Since dictionary type look-up operations were expected to make up an important segment of the memory test operations, a special search logic comparator was added to the Disc Reader that allows a set of single instructions or computer. commands to address the 150 million bit photostore memory on a content addressable basis. The folJowing instructions facilitate search operations in the large memory: Look up This instruction locates the entry whose argument (TAG) makes the longest exact match with the indefinitely long string of characters stored in fast memory beginning at a specified location. When such 234 Spring Joint Computer Conf., 1967 .---.. -.--~.-.-.- ...-.."....... -.. . ---.-,..-~.".<.<-.--.-------------- an entry is found in the disc (argument match) its function (this can be either data or program) is automatically read out into a designatable (settable by manual switches) memory field (staticizer region) of the control computer's memory. code called the "match on anything" character. It is used in the dictionary only, and it is equivalent to the lowest valued character in the disc memory (that is, it is the last character value on which a match is attempted during Look-Up instruction execution). Retrieve This instruction was devised to search the large memory fur a pattern of symbols of variable length and of uncertain character content. An octal code that is to be recognized as a "mask" character is manually set into a switch register. U sing the Greek letter "w" for this value, and the letter "x" for any alphanumeric character in the memory, and "XN" being a particular specified alphanumeric character, then all entries in the memory having a tag - or argument - such as X1 X2 XXX 3 X4 or XIX2XXX3X"X would be retrIeved by applying the RETRIEVE instruction to an input character sequence such as XIX2WWX3X4W, This device can be useful in circumventing common spelling errors in the input data to be processed and for masking certain portions of character patterns that are being looked up in information retrieval applications. It is especially useful in applications where it is desired to retrieve information on a number of different keys but where it is not practical to presort the information on each key individually. Read out of matched information is accomplished into a staticizer region as in the LOOK-UP case. This instruction starts its matching memory scan at some specified argument and it terminates when reaching the end of the dictionary or when the staticizer region is filled. character. In a sense, it can be termed a "fail safe" matching Dump instruction The inclusion of this instruction recognizes that it may frequently be desirable to bring sections consisting of many contiguous total entries of the photooptical memory contents into the computer's memory where programmed search (or scanning) of total contents may be accomplished. The instruction operates by first finding a matching argument of an entry for a specified beginning point (entry) then it provides a complete sequential read-out (arguments as well as functions) of the photo-optical memory in a decreasing argument value direction until one of the special superboundary codes that have been previously Inserted in the dictionary is encountered. Masking features The three basic content addressable memory search instructions, described above, constitute the table or dictionary look-up repertory of the system. An additional code masking feature is important since it allows both economy and flexibility in the dictionary make up. This masking feature uses a particular octal I dentify track This is a specific command that allows query by the control computer of a special register which contains the track number identification of the track currently being read. Since track identity codes can be arbitrarily placed around a data track, latency time for track identity can be arbitrarily reduced. The operational code delimiting track identity numbers is uniquely recognizable (separably from recorded data) and this allows the updating of this register to be automatic if this is desired. Track stepping instructions Two commands are provided in the search logic for stepping the read-out position of the Disc Reader light spot image. These are the UP TRACK and DOWN TRACK commands that cause the read-out to occur on data tracks that are adjacent to the one currently being read. These commands are capable of being automatically sequenced and controlled. Content addressable search logic improvements The programmers who have programmed the system have made good use of its distinctive operational features. The experience has, however, "whet appetites" for inclusion of additional memory search features. The following list of "improvements" has been suggested for the disc search logic. I. Allow the value of the masking code (w) to be program settable. This would allow greater flexibility with respect to masking the variety of input code sets that can be handled by the system. 2. Accomplish termination of the RETRIEVE instruction by hardware determination of the fact that no further search matches are possible. This would save time in the completion of the RETRI EV AL execution. 3. Achieve automatic read-out and conditional storage (depending on subsequent match or no match) of the argument. I n many applications this would save repetition of the entry argument in the function of the entry. I n cases where match occurs on a v (match anything character) in an argument, the characters involved can be determined by program. An Opticai Peripherai Memory System 4. Introduce a program controlled "Count Match" so that the programmer can set threshholds for the number of bit or character matches required in a search (e.g., majority match). This would be useful in pattern recognition operations. 5. Provide a capability for program setting of several search logic registers such that certain operational codes (derived from the "shift" code) can cause skipping of the search match operation across "sub-fields" of eitner entry arguments or of the input data stream. This would be useful for implementing syntactic analysis rules and multifaceted record retrieval. This feature would additionally allow numerically ordered super-entries to be incorporated in unordered memory contents. Such a procedure would allow use of the RETRIEVE operation (serial search) with a key word which would then yield a sentence number permitting normal dictionary (random) look-up of the pertinent sentence(s). The general use of the content addressable features of the optical memory in association with a general purpose computer tailored for non-numerical information processing is described by the authors in a separate paper. 6 The potential of optical memory techniques Certain generalizations concerning the performance potential of optical techniques for the storage of digital information can be drawn from the experience of the authors and from work recently reported in the literature. These generalizations cover the three important aspects of a digital peripheral memory, namely (1) Realizable maximum storage density, (2) Storage media and (3) Storage formats. Realizable maximum storage density The three spatial dimensions and the light transmission variable (or density) of optical media can be used in a variety of quantitative combinations for the storage (and retrieval) of digital information. Two well known extremes are the "discrete volume per bit" and the "distributed volume per bit" techniques characterized by the technique described in this paper and by holography, respectively. In the discrete volume case which is discussed here, the maximum information capacity per unit volume of recording material is determined by the minimum size of elemental recording volume that can be achieved. This is in turn determined by the numerical aperture (or F number) of either the recording or read-out lens. If the memory system involves rapid relative motion of the recording medium and the recording (or read- 235 ing) optical system then consideration must be given not only to the size of the optically recorded image element but also to the positioning of it with respect to other recorded elements and with respect to the read-out optical system as well. A lens having a numerical aperture of 0.5 (or an F-number of 1.0) was used in the Disc Writer described in this report. The "depth" of a "point" image for this lens is about 2 microns (one micron = one micrometer = one millionth of a meter), and tracking (or clamping) of readwrite optical planes with respect to some surface of the recording material must be maintained to at least this degree, thus increasing the depth dimension of the elemental volume dedicated to a bit to say 4 microns. Similarly, the cross sectional area of the image is about 1.2 microns in diameter. Here again, an additional 1.2 microns should be reasonably dedicated to allow for physical tracking requirements. The elemental volume of recording material that is dedicated to the recording of a bit of information (in binary density form) now becomes, with these assumptions, about 18 cubic microns. If a recording surface layer 4 microns thick were used with these criteria then a reasonable maximum of 150 million bits per square inch of recording material could be stored and read out. Photo-optical phenomena, and possibly thermooptical phenomena, offer the possibility that the optical density of each elemental bit volume (in the discrete volume per bit mode) can be quantized to a greater extent than a binary mode. While this is true, the tolerance on spatial tracking and read-write energy levels may tighten to a degree that very little is gained in an overall system sense. Holographic or diffraction grating techniques represent a different trade-off of the roles played by the variables of an optical system. The density variable is used to an extent that quantizing levels are determined by the area average "noise" of the recording medium and inter-symbol noise, and a bit volume is distributed over a larger part of the recording medium. The relative advantages of these two techniques may well be determined by system implementation factors rather than achievable storage densities. Storage media Success in the use of thermal-optical effects in the recording of information has been reported 1 ,7,8 and a provocative proposal for optical writing in a magneto-optical memory has been published. 9 Since the early pUblication concerning photo-optical techniques for information storage,lO tremendous improvements in optical energy generation, and in flexible media coating and manufacture, have been made. 236 Spring Joint Computer Conf., 1967 If a recording medium or base coating of suitable cost, uniformity, physical-chemical and general environmental invulnerability is found and proven then the thermal-optical memory phenomenon offers attractive system attributes. The single step recording process (no latent image development) and the simultaneous read out during recording offer both reassurance and operational simplification to the user. Table I presents a summary of some reported energies that have been used (or proposed) to record digital information. Relative recording speeds with identical writing source energy (and optics) are also indicated. TABLE I OPTICAL MEMORY WRITING ENERGY Method Photo-optical (visible red) Material Approximate Relative Ergs Writing per Mark* Rate Source Spectroscopic Film Type E.K. 649F Thermal-optical (visible bluegreen) Opaque coating on Mylar base (UNICON) Thermal-optical (visible red) Evaporated metal coating on glass 0.05 micron thick (Iead,tantalum) Thermal-optical (visihle red) Dyed plastic coating on glass - one micron thick Thermal-optical (visible red) Developed aerial photographic film High Density Low Density Magneto-optical (Ultra-violet) Gadolinium-IronGarnet (theoretical) 10-5 3 x lOS 3 2 0.1 30 3 0.2 15 0.3 3 3 4 10-.1 memories then such a memory would require about 50 square feet of recordable surface. There appears to be general consensus that libraries of digitized information will continue to grow as will the need for more economical and higher capacity peripheral digital memory modules offering both automatic and manual accessibility. If optical techniques are to play their expected role in satisfying this need, consideration must be given to both the unit record and storage module format for the record material. A review of the physical forms that magnetic technology has employed (drums, discs, strips, loops, cards, reels, etc.) provide little guidance since erasability and re-usability features of magnetic technology confuse possible parallelisms. The use of low volume flexible media in either reel or some segmented form is indicated, however. Flexible media are readily adaptable to the handling required by optical systems. For example, the authors have conceptually designed a mass memory system employing both flexible disc and strip forms of unit record. Figure 10 shows a view of an experimental reading lens holder that has been retracted just prior to radial withdrawal, to allow automatic disc changing. This lens holder is also an air bearing clamp that holds the moving recorded emulsion surface (on a flexible -medium such as disc or strip) at the focal plane of the reading optics. Mass on-line storage providing random access to 1012 bits in the one to ten second access time range can be achieved by "juke box" techniques for discs or self-threading cartridge changing for reels. Since much of the mechanical transport technology developed for magnetics is applicable to optical memory media, progress in productizing trillion bit (or greater) optical memories would appear to be highly dependent on the nature and magnitude of user requirements. 5 *Based upon a one square micron information Mark. **Normalized at 100,000 marks/second for 30 milliwatt visible light energy incideni on one square micron mark area. SOURCES I. Authors 2. Becker! 3. Carlson et al N 4. Chitayat 7 5. Forlani ei al 4 StoraRe formats At the density of recording that is achieved in the system described by this paper (6 million bits per square inch) about 1000 square feet of a recording surface would be required to hold a trillion bits (10 12 ) of information. If ) 50 million bits per square inch represents a practical limit for discrete area optical Figure 10- Flexible disc lens mount and air clamp An Opticai Peripherai Memory System REFERENCES 2 3 4 5 C H BECKER UN/CON computer mass memory system AFIPS Conference Proceedings Spartan Books Washington DC vol 29 1966 R L LAMBERTS G C HIGGINS A system of recordinR diRital data on photographic film using superimposed grating patterns ibid ibid J D KUEHLER H R KERBY A photo-digital mass storage system ibid J L CRAFT E H GOLDMAN W B STROHM A table look-up machi~e for processing of natural language IBM Journal of Research and Development 5 3 1961 W DRUMM Photo optical recording of digital information presented at SPSE Symposium on Photography in Informa- 6 7 8 9 10 tion Storage and Retrieval Systems Washington D C 1965 Itek Corporation report 1965 R L LIBBY R S MARCUS L B STALLARD A computer system for non-numerical information processing Technical Report Itek Corporation February 1967 A K CHITAYAT Means and Methods for Marking Films U S Patent Number 3 266 393 August 16 1966 CO CARLSON E STONE H L BERNSTEIN W K TOMITA W C MYERS Helium-neon laser: thermal high-resolution recording SCIENCE vol 1543756 p !550 23 December 1966 F FORLANI N MINNAJA A proposal for a magneto-optical variable memory Proceedings of the IEEE 54 4 p 711 1966 G W KING G W BROWN L N RIDENOUR Photographic techniques for information storage Proceedings of the IEEE 54 4 p 711 1966 A rugged militarily fieldable mass store ( MEM - BRAIN file) w. A. FARRAND, R. B. HORSFALL, N. E. MARCUM and W. D. WILLIAMS by Autonetics, A Division of North American Aviation, Inc. Anaheim, California INTRODUCTION Military systems * often operate on a data base larger than is economically feasible for internal main store. Therefore, they require the use of auxiliary storage. There are many forms of auxiliary store. Each has characteristics which make it the optimum choice for certain tasks. Factors characterizing the domains of utility of some auxiliary storage systems are: Under 4 million bits Fixed Head Drums Magnetic Real Tape Systems Over 1/2 sec. average random access/ block Under 10 million bits Woven Wire Systems Tape Loop Systems Under 50 million bits Roving Head Drums Under 50 million bits Tape Strip Files Over 1/2 sec. average random access (unit documents) Disk Pack Systems 20 - 50 million bits/ pack (interchangeable data base) Under 500 million bits Fixed Head Disk Files Under 100 ms average Roving Head Disk Files access and over 50 million bits Military data systems studies at Autonetics show a recurring need for a large-scale data file. The required characteristics are: over 1,000,000,000 bits of storage, high data rate, low weight, low volume, long MTBF, and simple maintenance under military field conditions. Our survey uncovered no equipment with these properties, or equipment whose inherent design characteris*Examples: Message Switching Centers, Tactical Data Systems, Command and Control Systems, Combat Information Centers, Military Supply Control Centers, Coastal Defense System Data Nets, Air Traffic Control Centers, and other large-scale electronic Data Processing Systems (both military and civilian). tics could be sufficiently upgraded. Therefore, Autonetics set out to develop a militarily fieldable auxiliary store with a two gigabit data capaCity, a data rate of 1;3 million characters per second, and a maintenance schedule of less than one hour per thousand hours of operation, which would pass through a 24-inch square opening. For this, a roving head disk file was chosen. System Major differences in electromechanical form with respect to conventional disk files were necessary in order to meet project requirements. In common with conventional units, this device includes a rotating precision disk stack and moving arms carrying sets of heads for access to the disks. However, the basic principle of design is different in that maximum emphasis has been placed on maximizing stiffness to mass ratios in the mechanical structure and in the use of prestressing for improvement in dynamic response and reduction in weight. These principles have resulted in the adoption of an inside-out design incorporating a new disk form consisting of a thin annular foil in tension. Kinematic principles of design have been stressed in the development of this file. Because of the disk form, the new unit has been christened the "MEM-BRAIN File." A number of fixed head tracks in various configurations are included as an integral part of the disk file. Fixed head read/write techniques are used for various processing operations and fOT interfacing with diverse processing and peripheral units. Operations provided include automatic and continuous on-line file maintenance, record manipulation, formatting, editing, sorting, merging and collating. Some tracks are used with single read heads for timing and format control. Other tracks provide short recirculating registers for temporary storage of record/request data and format control bands, precession loops for use as push-down reg239 240 Proceedings-Spring Joint Computer Conf., 1967 isters, and multi head tracks for internal buffering of data. System optimization studies showed that greater through-put could be accomplished if certain bookkeeping and formatting features were included in the file proper. By placing these under storage program control, the master control program is freed for more complex functions. Means have also been provided to permit selective positioning of up to four sets of heads simultaneously, while continuing to read or write on other sets. Direct communication between MEMBRAIN and other peripheral devices may be accomplished without involving the central processor. Very careful attention to system engineering techniques was needed to optimize the configuration of the MEM-BRAIN File to meet the desired objectives, because of the intense. interaction of various design elements. For example, surface density of record cells depends on lineal density along track, radial track density, and zoning geometry. To avoid timing problems resulting from mechanical deflections under service conditions, low lineal density was desirable. The maximum lineal track density (500 bits per inch) was chosen to allow inexpensive exploitation of precession loops and their inherent data manipulation efficiency. Such operation would not be possible if self-clocking data recording were used. Military vibration environments would require self-clocking to permit use of higher lineal cell densities. Development of a trackseeking servo allowed the necessary compensating increase in track density, both by eliminating need for intertrack separation, and by aIIowing use of smaller track width. These factors reacted to reduce the size and mass of the moving arm elements (among other things) which in turn modified the criteria for lineal density along the track, to "Close the Loop." Similar interactions of design elements occurred at almost every turn in the development of the MEM-BRAIN File. Thus every design idea required checking not only for its direct effect on the immediate problem, but for its influence on every other facet of the entire system. Mechanical design The mechanical design of MEM-BRAIN centers about the high stiffness to mass ratio of a pretensioned membrane both for the disks and for the primary support structure of the rotating mass (the disk stack). This principle leads to an inside-out form of the file. The disks are axially stacked, mounted, and rotated within a hollow shaft and accessed from the center, as shown in Figure 1. The disks are thin annular sheets of magnetically plated foil stretched taut on tensioning hoops which are attached to the external tubular shaft. The tensile preload established by this process causes the plated membrane to act as a rigid surface of uniform flatness. This eliminates surface finishing operations. Such a membrane has tolerance to extreme thermal variations and aging without distortion out of plane because the stress level remains positive and less than the elastic limit. The disk has a mass two orders oi magnitude less than a conventional disk and has very low mechanical Q. These properties of the disk are basic to the militarized qualities of the MEM-BRAIN File. The disk stack forms a cylinder which is closed around the periphery. This disk stack is directly driven by a synchronous motor which combines with the high moment of inertia to mass ratio of the disk stack to provide a highly uniform rate of rotation. The enclosed disk periphery reduces air flow and the resultant noise level in the vicinity of the file. One end of the disk stack is supported by a pretensioned pair of shallow-coned metal sheets forming a light end-bell which is extremely rigid, both axially and radially. This end-bell is carried by a bearing supported by a similar conical pair. This structure is indicated in Figure 1. Three degrees of freedom are thus constrained. The other end of the disk stack is supported by a bearing through a membrane structure to complete a five degree of freedom constraint. The sixth degree of freedom is the desired rotation. A central, nonrotating rigid tubular member carries the protruding head support arms. These arms include a relatively massive and rigid fixed frame and a light but stiff moving element which carries the read/write heads. The frame and moving element are locked together during reading and writing operations, so that the critical circumferential location of the heads is maintained by the fixed frame. A set of eight heads per arm are mounted in pairs on four gas-lubricated sliders, to access two facing disk surfaces. The sliders are forced toward the disk surface to maintain an essentially constant gas lubricated gap. These heads are radially spaced at a separation corresponding to the radial width of recorded pattern (one band). They are constrained to move with the movable arm element. Thus, the servo need only move through one band to reach all records on a facing pair of disk surfaces. The large taut-disk-stack, central tube, and clamped arm comprise an extremely stiff, low-mass, low Q, mechanical assembly. This can withstand shock and vibration exceedingly well even while operating. The unique kinematics and self-set head positions insure a high quality information storage and retrieval system in spite of environmental extremes. The total mechanical system described provides a mechanism having high natural frequency and low vibration amplitude. By judicious application of visoelastic coatings, the me- MEM-BRAIN File 24) therefore, independently positionable, and a positioningtranscribing interface can be set up with head sets giving a continuous flow of data. The positioning time is never more than one disk revolution (50 milliseconds) and, therefore, no a priori ordering of channel seeks need be used. The arm positioning time reduces to 6 milliseconds for adjacent track positioning. The positioning time includes assignment of a servo electronic set, release of the arm clamp, traverse to the proper track, settling on the track center, verification of track center, clamping of the arm, reverification of track center, and release of servo electronics to other functions. Figure I-Two gigabit MEM-BRAIN file chanical Q of the total structure is kept below one. To provide for control and processing functions, a group of fixed heads are located at one end of the disk stack. These are gas-bearing supported against the exterior surface of the end disk. The head uriits are supported by rigid structural members attached to the central structure and are located and spaced to provide rapid access and buffer loop capability as required for file main.tenance and manipulation. In function, the support for these fixed heads is equivalent to a solid headplate such as has been used in Autonetics' computer memories. Head arms Each arm is capable of radially positioning a set of eight heads. The positioning is done by a servo mechanism whose control signal includes track number and track center data derived from the read head signals. Therefore, the servo is guided by true head position to track center instead of arm position. This permits the use of a lighter (under one ounce) head transport than is possible where the position signals are derived at a remote portion of the arm structure. The head servo is optimized by the minimum mass (therefore, minimum inertia) design. Tolerance to temperature and thermal gradients is also improved. To permit servo switching, a passive mechanical clamp is provided to hold each arm accurately at the selected track center position. The arm is light enough so that it can be driven by a direct drive electric motor at force levels up to 40 G's, with negligible reaction on the central column. This, coupled with the mechanical clamp on each arm, allows reading or writing on any head set without concern for the motion of any other arm. Each arm is, Electronic design The basic storage function is accomplished on the disks accessed by the positionable heads. The built-in control functions are implemented by the fixed head elements and associated electronics. The clock and origin are unalterably recorded on fixed head tracks. The fixed head elements with associated electronics are used for implementing the control and processing functions. Occasional coordinated use of the I/O buffers may also occur in executing certain of the internal processing commands. Except when they are in use for internal processing, the I/O buffers provide for asynchronous data transfer between MEM-BRAIN and other equipment, in such serial or parallel form as may be required by the application. Internally, all operations are synchronized by the clock. Such operations are basically serial in nature, but many may be carried out serial by character, rather than serial by bit. Normal NRZ recording is used in the fixed head area. A specially modified form of NRZ recording is used in the movable arm (main storage) area. The electronics include all necessary elements to carry out storage and processing functions short of actual arithmetic operations. Such elements include read and write amplifiers, multiplexing networks, comparison logic, control registers, servo electronics, and buffers. Four I/O control registers are used to direct internal operations in response to commands as more fully described later. Four sets of servo electronics are also provided to control arm positioning operations. On an "as available" basis, any control register may use any servo unit to control any of the 60 arms, and may make any required logical connections to transfer data between that arm and any specified combination of its I/O data channels. External data transfer normally occurs on a ready-strobe basis. The servo amplifiers respond to a signal developed by detecting the phase difference between adjacent 242 Spring Joint Computer Conf., 1967 tracks. The effectiveness of this technique is improved by a special form of NRZ recording. The arm is slewed for gross movements by noting the tracks traversed. Fine positioning is controlled by adjacent track nulling. A track identification recorded in each sector (eight bits) is used to verify track centering. All circuitry consists of advanced state-of-the-art replaceable microminiaturized circuit board assemblies designed to withstand military environment with excellent MTBF and MTTR. I/O control The internal organization of the MEM-BRAIN File is described in the functional schematic, Figure 2. Four control registers, each associated with its I/O data channel block, simultaneously control the positioning of any head arm and additionally the switching of the heads associated with any arm (8 heads) to the I/O data channels normally via buffers. They also accept and transmit the instructions in control of internal data manipulation. The controller acts upon discrete control lines to commit instructions and data and to deliver MEM- BRAIN status as required. A Security Code provision is available as a part of the instruction word. When used, this code requires a match to allow the function to proceed. Four I/O buffers each present digital inputs and outputs to the duplex interface data channels. These channels are capable of asynchronous repetition rates considerably in excess of most CPU's. Therefore, instructions and data may be transferred at the maximum rate of the CPU within the capacity of the static buffer. The only other limitations on rate are the MEM-BRAIN (337 KC) clock, and processing time if MEM-BRAIN processing is involved. Special factors such as busy conditions of head arms and priorities by other connected CPU's, are determined internally and expressed indirectly through the output control lines. The internally stored program of the MEM-BRAIN provides for most adjustable control functions. Differences in the discrete control line requirements of different CPU's need only the replacement of a card to provide compatibility of the MEMBRAIN File interface. SERVO ERROR DETECTION LOGIC jSERVO ERROR r1ETECTION LOGIC SERVO ERROR DETECTION LOGIC SERVO ARM SELECTOR I/O DATA CHANNELS (16) I/O DATA CHANNELS (16') READ/WRITE HEAD SELECTION NETWORK I/O CONTROL REGISTER -~~-.--I-l~ 10 CONTROL REGISTER -----"~.....,.~ EXTERNAL FUNCTION I/O I-.!.:RE:::.Q~U::::..:E::.::S~T_ _ _ _ _-1 EXTERNAL CONTROL REGISTER _ _--++:::::t1r-1 ~~'!"':::":::':":':';~-='=":":=--1 (TYPICALLY I/O CONTROL REGISTER - EXTERNAL FUNCTION DEVICE I-.:::.O..:::,U.:,;TP:.;l::...:'T:.-:D::;:A.:.:T:..:..;A;.;;R;::;E;..:::;Q:.::.U;;;;ES;;..;:T;..-·-1 THE C 1'642 B) ~ L--..:::O..:::U.:.;TP:.;U:..:T:.-:A:.:..;C~KN=O-,-W.=.LE;;;;DG~E----1 ~1-~IN~T~E~R~R~u~n~RE~Q~U::.::E=ST~~ g~.!.:IN~T~E~R~R~un~_ _ _ _~ INPUT DATA RE UEST INPUT ACKNOWLEDGE 'L..-_-- FILE !NTERRt;PT Figure 2-Functional schematic of 60-arm digital disk file MEM-BRAIN File Design for reliability Design principles embodied in the MEM-BRAIN File have been selected with the ultimate reliability of the device in a military environment as a paramount consideration. Simplicity is always of extreme value in eliminating failure modes and enhancing reliability of any system. Consequently, at every point where a choice between simple and complex solutions was available, the simpler technique was chosen. For any unit intended for military application, it is desirable to assume the need for operation in a hostile environment. Consequently, ruggedness is a necessary feature in such a design. In the MEM-BRAIN development such ruggedness has been sought at every decision point, but not by the brute force method of increasing structural dimensions. Rather, the technique has been one of reducing mass wherever possible and increasing effective stiffness and structural damping to minimize response to shock and vibration. The electromechanical elements of such a device are known to be sensitive to adverse environments related to humidity, pressure, and temperature. In the MEMBRAIN File, therefore, the electromechanical package has been designed as a hermetically sealed unit, and care has been taken in the choice of materials and their structural interconnection to minimize distubrance of critical locations due to temperature or temperature gradient. The electronic elements of such a system, on the other hand, may be more subject to deterioration in performance by parameter drift or catastrophic failure. To minimize the failure potential in the electronic system, the background developed on the Minuteman standard parts is used. Also, the electronic package has been designed for ready access to permit maintenance by module replacement. Its enclosure is dustproof and drip-proof, but, not hermetically sealed. SUMMARY The objectives of the MEM-BRAIN File development as it has been described were threefold: First, the fundamental target of military fieldability; second, the desire to provide exceptional operational capacity and capability; third, to accomplish these in a light compact unit adaptable to mobile and airborne applications. These objectives were all met by consistent application of system engineering methods by team effort. Table 1 summarizes the characteristics attained. Table 1. Tabular summary of MEM-BRAIN characteristics A. Highlights Militarized design High data capacity 243 Small physical size Low weight Hermetically sealed magnetic recording One complete package Interface to any computer Internal stored program control Internal buffering Easily programmed Short access time High data transfer rate Multiple independent head access Transcription permitted while a different arm moves Microelectronics High MTBF Excellent maintainability B. DetaiLCharacteristics Capacity (bits) 15 X 221 (approximately 2,000,000,000) Size (inches) 23X23x41 Weight (lb) .400 Power (watts) 1500 Head transports 60 independent Maximum head transport 50 milliseconds time Adjacent track head 6 milliseconds transport time Disk rotation time50 milliseconds nominal Data cells per track 16,384 Tracks per band 256 Bands per surface 4 Heads per band 1 Surfaces per head 2 transport Simultaneous head 4 transports Simultaneous I/O 4 channels Maximum cell density 500 bits/inch Radial track density 200 tracks/inch I/O channel rate327K bytes/seconds nominal Environment MIL-E-5400, MIL-E16400 MIL-E-4158, FEDSTD-222 North American Aviation, Inc., provided support in the development of the MEM-BRAIN concept and the fabrication of a 30 megabit test and demonstration model. This model has demonstrated the basic principles and design details needed for construction of the full scale File. Complete design and fa~rication of a 2 gigabit unit is under way. The "Cluster" -four tape stations in a single package l.._. ,""", vy '.,..1 JVfll"'l 'T' 1. I' An ,",'.,..Irn Un.~LllI"'IC~ Burroughs Corporation Pasadena, California INTRODUCTION The familiar shape of the magnetic tape transport has undergone a dramatic change. As a result, space age television shows may have to find convincing replacements for madly spinning banks of verticaHy placed reels. The imagination of the public may suffer, but the industry is provided with a new periphen'tl having a most exciting future. Details of a multi station Magnetic Tape Cluster are presented in this paper to provide an insight into how it was conceived, how it is built, and its capabilities. very nicely· but the ability to share mechanical components was questionable. Figure 2b shows a folded version of the above arrangement which improved the possibility of sharing mechanical features. An original design, Figure 2c, having a mUltiplicity of vertical tape paths but with horizontal tape buffers, received attention during the early development period. It was apparent, however, that a "sandwich" machine such as this would be plagued with severe accessibility problems. For each of the above designs there were advantages which could be cited, but one fact remained abu~dantly clear: none of the arrangements represented the major step forward we were seeking. We realized that the point had been reached where additional time spent in simply rearranging tape path components was not justified, and a clear departure from established custom was a "must" if our objectives were to be met. What then could be done to break this impasse? We were confident that the reels themselves were the key factor and, since a simple rearrangement did not fulfill our needs, the logical remaining possibility was to stack the reels and operate them on a common axis. This possibility proved to be the turning point and has since become the foundation of the multistation Cluster design. Stacked reels, in themselves, are certainly not original with this design. They have been used in the field of music reproduction and, to some extent, in the digital field at very low or incremental tape speeds. What is original with us is the design associated with making the philosophy work on a multi station tape transport operating at relatively high tape speeds and recording densities. Once the general approach had been determined, the next step was to examine tape path configurations capable of transporting tape which terminated at two levels of spooling. Refinements came rapidly, The Cluster concept If we reflect for a moment to consider the scheme generally used in digital tape drive design, one common characteristic becomes apparent; the tape path formed by the reels, the transducer and the tape buffers lies in the same plane. This is the simplest and most direct way to accomplish the objectives of a single station machine. Of all the transports on the market today, perhaps 80% are designed around the formal vertical plane tape path as shown in Figure I a. Another popular method places the tape path in a horizontal plane such as shown in Figure 1b. This design is advantageous in many respects and offers convenient table height operation. Some forward thinking designers have combined the two ideas to provide two transports in the same box (Figure 1c). Our earliest considerations for designing the multistation Cluster U nit contained several features which have remained throughout the entire development. These requisites included a four station package which shared electronic and mechanical features to achieve the best possible combination of performance, reliability and low manufacturing cost. Naturally, the development group first took a hard look at the commonly used vertical plane geometry. I t was found that some improvement was possible by rearranging reel positions similar to those shown in Figure 2a. This arrangement could share electronics 245 246 Spring Joint Computer Conf., 1967 SUPPLY REEL r Ir TAKEUP REEL /; / 1 (0) / ,R/W HEAD 2 (a) R/W HEAD TAKEUP R·EEL 2 (b) 1 (b) n I I I , I I I . I I ( )__________-.1'I '--________1--..:.-c~single station units i 21\c', ~I----------~~~--------------~ Figure 2-Conventionai tape path geometry for copJanar multiple station units The "Cluster" - Four Tape Stations In A Single Package and one particular path emerged which seemed to have superior characteristics over all others. A series of preliminary layouts was made and, much to our delight, the various pieces began to fit together with remarkable solidarity. Within a month we felt that sufficient understanding had been obtained to proceed with a full-fledged development program, and management gave its unqualified approval. Thus, the multi station coaxial reel concept was born. Three months later, a hurriedly constructed experimental model, Figure 3, was providing operational data. It is gratifying to note that the tape path shown here has stood the test of time and basically is the same as that used in the machine as it exists today. The current design is shown by Figure 4. It is a four-station Cluster which operates at a tape speed of 4S inches/sec. The Cluster is now in production and will be available to industry within the next several months. Geometric relationships Before proceeding with a discussion of the finished product, let us examine some of the geometric relationships associated with nonplanar tape paths. We begin by considering two coplanar reels as shown by Figure SA. This condition requires that the reels be in a spaced-apart relationship and that the axes of rotation be parallel. Desired convolutions 247 of the tape between the two reels are a function of judiciously placed pivot points which are installed normal to a plane of reference. The plane of reference, for our needs, may be defined as a plane which passes through one edge of the tape and is normal to the tape surface. It is particularly desirable to consider the tape as lying in the plane of reference between the point of entry into the supply reel buffer and the point of emergence from the take-up reel buffer. For purposes of our discussion, this condition will be assumed for all cases. We next introduce a modified condition which retains the parallel relationship of the reel axes but repositions the reels such that they are no longer coplanar. This condition is illustrated by Figure SB. As can be seen, the pivot points now assume an angular relationship to the reel axes. Convolutions of the tape within the plane of reference (between pivot points A and B) are removed from the scope of our discussion by definition. We continue our space relationships by repositioning one reel such that its axis becomes an extension of the axis of the second reel as shown in Figure SC. This move is for convenience only and no significant geometric changes are introduced when compared with Figure SB. However, a comparison of Figures SA and SC leads to several important observations. ..~~ : ~·.~~~iVJS!~$.'R%~~,. Figure 3 - Coaxial reel breadboard 248 Spring Joint Computer Conf., 1967 Figure 4 - Burroughs' four station Cluster 1. If the pivot points are cylindrical and fixed, they will perform their intended function under either condition. The relationship between the tape and a fixed pivot is one of sliding contact between the two surfaces but a variation in the contact length of the tape as it proceeds around the pivot will have no ill effects in guiding the tape. To accomplish this, we introduce an angularity between the axis of reel rotation and a plane of reference as illustrated by Figure 6A. Now, consider the tape as it proceeds from the supply reel to rotatable pivot point A. Upon contact, the tape proceeds around the roller without sliding contact. If 1800 were selected as the arc of contact, the tape would simple be returned to the reel. Under this condition the bottom edge of the tape would make a "point" contact with the plane of reference. Suppose we wish the tape to depart from the roller in such a fashion that its lower edge were to continuously lie in the plane of reference. This is accomplished with the aid of an additional rotatable pivot point C, which must be precisely located. The location must be such that a line drawn between pivots A and C must lie on the intersection of the plane passing through the bottom edge of the spooled tape and the plane of reference. Since by definition we must position the tape surface normal to the plane of reference, we install pivot point C such that its axis is normal to the plane of reference rather than simply parallel to the axis of pivot point A. Under these conditions, a small twist is introduced in the tape over the distance "L" . Note, however, that the rule stating that no relative motion is permissible as the tape travels around a rotatable pivot point has not been violated. TAKEDP REEL 5 2. if the pivot points are cylindrical and rotatable, they will perform properly under condition 5A only. Under condition 5C, we observe that a variation in the contact length of the tape as it proceeds around the roller must introduce relative motion between the two surfaces. The roller will therefore migrate along its axis or, if restrained, an undesirable slippage is introduced between the tape and roller. (a.) SUPPLY REEL 5(b) To summarize our position at this stage, we find that rotatable pivots cannot be used in conjunction with coaxial reels unless some type of relationship is established which prevents an angular contact between the direction of tape travel and the rotation of the roller. Since rotatable pivots are highly desirable for maintaining a low frictional drag, and perhaps even more important, to keep the drag forces constant, it is imperative that such a relationship be found. PIVOT TAKEUP REEL SUPPLY REEL PIVOT A I V ,,-- PLiGE OF t;EFERE'!CE Figure 5 - Geometric transition to non-coplanar tape path - fixed pivots The "Cluster" - Four Tape Stations In A Single Package 249 frame or floor oscillations which might be detrimental to reliable operation. The pads on each arm of the spider provide bearing surfaces for the coaxial reel drive assembly. One of the four coaxial reel drives is shown in mounted position on the spider. The deck assembly is also shown in mounted position attached to the face of the tubular hub of the spider. A close look will reveal the angularity (a) which pvi~t~ ""'L .... .aU ... U PIVOT A 6 (bl Figure 6 - Geometric relationships of non-coplanar tape path and rotatable pivots All that now remains to accomplish our geometric objectives for coaxial reels and rotatable pivot points is to reposition the two reels in a stacked attitude, such as illustrated by Figure 6B. We know from the foregoing discussion that this can be done without introducing any significant change to previously established relationships. We find that for small values of (a), a reasonably short distance "L" can be tolerated without difficulty. The magnitude of (a) is a function of the spacing between reels and the distance from the reel axis to the location of pivot point A (or B). These relationships, as expressed in actual Cluster values, result in a stress of approximately 40 psi at the outermost fibre of the tape. This figure is very low when compared with the proportional limit of the mylar material and a more meaningful comparison may be made in terms of the strain profile introduced across the width of the tape. Tension forces acting on the tape will desirably approximate 9 ounces and the 40 psi fibre stress is found to be equivalent to 0.3 oz. of tension. This results in a profile which has a variance of about 3% across the tape width . . Geometric implementation At this point it would be well to examine the hardware and see how the geometrics have been reduced to practice. Figure 7 shows the structural relationship between the frame and an unusual looking weldment called the spider. The spider is supported at four points by vibration isolators to damp spurious hptuTPpn IIJ''''''''.,. ... "" ..... .1..1. thp ... .1..1."'" r",,,,t rlri"", .::onrl th", .I. ...... "" ... "", ... .1. 't' ..... ~.J..u. "'1..1.,"" ".::01"'1111""" 1"' ..... 1. .......... " T "'-' .......... 1..11. ,,",V1.UI..l.lI.l..:) (plane of reference). Th!s angular relationship is obtained by machining the mounting pads of the reel drive housing at precisely the proper angle. A vertical adjustment is provided in the reel drive to correctly align the height of the reels with the plane of reference. Figure 8 shows the top of the four station Cluster without covers. This provides a view of the various component parts which lie in the plane of reference. For purposes of clarity, Figure 9 has been prepared to enable us to examine the elements which comprise a single statien. Beginning with the supply reel, we trace the tape path as follows: 1. Tape from the supply reel passes around rotatable pivot A (remembering the axis of pivot A is parallel to the reel axis). 2. Between pivot A and rotatable pivot C the tape undergoes a slight twist of about 3 3. Since the axes of pivots C and D are normal to the plane of reference, the tape lies in. the same 0 • Figure 7 - Hardware implementation 250 Spring Joint Computer Conf., 1967 Figure 8 - Deck assembly showing quad configuration plane at every point in the path between these two extremes. 4. The tape now proceeds in a fairly conventional manner from the supply buffer, past the reverse pinch roller driver, and over the left hand cleaner guide. Here, the reference edge of the tape is precisely aligned for passage over the head and any loose oxide particles are scraped off and vacuumed away. 5. Prior to reaching the read/write head, the tape passes through the end of tape/beginning of tape sensor. This sensor is also used to fix the exact position of the tape leader latch when the tape is to be unloaded. 6. As the tape passes over the read/write head, it is held in close contact by a magnetic shield supported by the lift-off arm. The shield not only assures an optimum flux path but effectively damps any vibrations which might be introduced during startup. The lift-off arm rotates to lift the tape completely off the head during rewind, thereby preventing unnecessary wear. 7. The tape continues past the right hand cleaner guide, past the forward pinch roller driver, and into the take-up buffer. A slight twist of the tape is again introduced between rotatable pivot points D and B. At pivot B, the tape is realigOf~d in the plane of the tape reel (remember- ing that the axis of pivot B is parallel to the reel axis) and finally is spooled onto the take-up reel. Cluster design features Speed, size and weight Each station of the Cluster operates independently at a tape speed of 45 inches per second (forward or reverse). The four stations are packaged in a single box 43" high, 36" wide and 30" deep. This compactness is further exemplified by the weight of the unit which approximates 800 pounds. Tape is moved by means of sealed pinch roller drive modules which are extremely positive and quiet in operation. Much of the c1ackety-c1ack is gone and, once the internal adjustments have been correctly made, further adjustment becomes essentially nonexistent. This condition arises from the fact that metal-to-metal contact found in most electromagnetic clapper devices has been eliminated by means of a cushioning device of a proprietary nature. The capstans for all four stations operate continuously at a synchronous speed of 900 RPM. Power is .supplied by a single motor, and heavy tlywheels provide sufficient inertia to maintain tape fluctuations at a minimum regardless of pinch roller activity. Tape guides are located on either side of the head in the conventional manner. The design of the tape The "Ciuster" - Four Tape Stations in A Singie Package 251 CAPSTAN \ CLEANER GUIDE BOT/EOT SENSOR R/W HEAD , o SUPPLY REEL Figure 9 - Tape path and associated components guides serves a dual function since the guides also provide for efficient cleaning action. Particles removed by the cleaning action are not allowed to accumulate but are swept away in a high velocity air stream. The vacuum columns are assembled in the form of a cross and receive vacuum pressure from a single source. Vacuum pressure to each station is isolated by means of a fail-safe check valve which closes should tape failure occur. Other stations are thus protected against loss of vacuum pressure and remain operational. Of particular significance. is the fact that the entire tape chamber is a sealed compartment which maintains this critical area dust free. Air within the chamber is recycled 30 times per minute and passes through a micronic filter element on each cycle. The air temperature within the chamber is continuously sensed and compared with room ambient temperature by means of a differential thermostat. A small cooling unit maintains the temperature of the recycled air within ± 1 C of the ambient temperature at all times. Cluster logic is a hybrid combination of discrete components and integrated circuit chips. Normal input power is approximately 2 KW at 208/230 V, single phase, 50/60 cycle. The read/write electronics accept either seven or nine channels of information in any code combination. 0 252 Spring Joint Computer Conf., 1967 The external control (Central System) is switched to anyone of the four stations by an appropriate exchange within the Cluster. Reading or writing at bit densities of 200, 556 and 800 bits per inch (N RZ 1) is provided as standard. At 800 bpi, the transfer rate is 36KB. This capabiiity can be extended to 72KS by installing the Phase Encoding option which is presently being offered at a density of 1600 bpi. Terminology for a machine composed of one set of read/write electronics, four active stations and nine channel R/W heads is 1x4x9. Under these conditions, anyone of the four stations can be independently reading or writing at any given period of time under the direction of a singie externai controL Provision is made to install a second set of re~d/ write electronics if desired. I n this case, the above terminoiogy becomes 2x4x9. Under these conditions, any two of the four stations can be simultaneously and independently operating under the direction of two external controls. If a user plans to use the Cluster with Burroughs' B2000 systems, the ability to fully utilize its multiprocessing capability is a highly desirable feature. Since mUlti-processing will generally require more than four tape stations, the Cluster can also be obtained as a slave unit and will be equipped with two, three or four stations to exactly respond to a user's needs. The siave unit is identicai in design to the master unit except for unneeded electronics. The terminology 2x8x9 is used to define a master and slave combination where any two of the eight availahle stations are under the independent and simultaneous direction of two external controls. SUMMARY The multistation coaxial reel concept is believed to be a significant advance in the art of digital tape transport design. In support of this belief are the many new features of the 45 ips Cluster which have been discussed in this paper. However, todays technology is a hard task master and technical advances without appropriate economic advances are likely to be lost in the shuffle. As most of us have learned, it is no longer sufficient for the engineer to develop "something better"; that "something better" must also .cost less. Economic studies of the Cluster's design are most encouraging in this respect and major cost reductions have accrued by sharing certain portions of the machine's makeup. This condition is also the result of a program where assigned target costs have accompanied each design element almost from its inception. Consider the two machines shown in Figure 1O. The upright unit is typical of many single station tape transports on the market today. Externally, we note that a four to one savings is directly applicable to the frame, skins, trim and covers. Internally, the ventilation and vacuum subsystems represent the same four to one savings potential. The power supply and capstan drive elements can be considered as a three to one savings. Perhaps the most outstanding single factor of all is the electronics themselves, here a savings of three to one can be conservative Iv applied. What does this all add up to? Although a direct cost comparison between 'the two machines is not completely fair, we do know that the Ciuster not only represents something better, but that it also satisfies the corollary that it must cost less. We look forward to continued refinement of the Cluster concept and foresee its advantages extended to higher speed machines operating reliably at even greater packing densities than heretofore considered practical. Figure 10- M ultistation Cluster and conventional single station transport The oscillating vein by AUGUSTO H. MORENO, M.D. Lenox Hill Hospital and New York University School of Medicine New York, New York and LOUIS D. GOLD, Ph.D. Electronic Associates, Incorporated Princeton, New Jersey INTRODUCTION In 1824 D. Barry inserted a glass bulb into the jugular vein of a horse and observed that when the animal was standing the blood flowed intermittently in jets that were not synchronous with either respiratory or heart rates (Brecherl ). Holt2 in 1941 arranged a flow circuit where the fluid traversed an interposed segment of collapsible tube and where he could vary at will the ratio of internal pressures. He observed that when the ratio approached zero the tube collapsed and began to pulsate. Brecher3 in 1952 examined carefully this phenomenon by decreasing the downstream pressure in the vena cava of open chest dogs and concluded that it originated in a momentary complete collapse of a segment of the vein when the extravascular ( atmospheric or ti~sular) pressure exceeded the intravascular pressure. The continuous inflow of blood from the capillaries would then elevate again the intravascular pressure forcing the closed segment of vein to reopen. With repetition of the cycle the vein oscillated at frequencies and amplitudes whose complex relationships he studied in physical analogues made of collapsible rubber tubes. Furthermore, he pointed out the clinical significance of this "chatter" during cardiopulmonary bypass surgery when the collecting reservoir for venous return is positioned at an excessively low level. In 1953 Robard and Saiki" and in 1955 Robard5 reported detailed studies on flow through collapsible tubes and on the clinical implications of its instabilities in relation to apparently anomalous flow-pressure patterns in various vessels of the body. Our own studies6 on the effect of quiet respiration in a two-chamber-hepatic valve model of venous return indicate that in the intact (closed chest) dog and man the venae cavae operate at the limits· of eqUilibrium and that instability may develop during vigorous respirations. It is of interest that all these authors recognized the significance of the special dynamics of flow through collapsible tubes in the body but complained, at the same time, that the subject- has been almost neglected by engineers and physicists. Thus Lambert's model,' apparently developed in response to such a nee<\o seems to be one of the first attempts at the mathematical description of flutter in distensible tubes when fluid is driven by steady pressures. The present report deals with a mathematical formulation and an analog computer simulation of the oscillating vein phenomena. In this paper a dynamic mathematical model is presented and Lambert's predictions8 of the flutter characteristics are corroborated by the analog computer simulation. Mathematical description Very flexible tubes carrying a steady flow of incompressible fluid may be caused to flutter or oscillate when subject to specific steady ex~ernal pressures. We observe this e~fect when we impose an external pressure of sufficient magnitude on a section of flexible tubing. When this external pressure is greater than the ~teady state hydrostatic pressure, an acceleration of fluid leaving this section of tubing occurs. Moreover, the increased external pressure reduces the flow into this section of tubing because of the decreased driving force or pressure gradient for flow into the tube. The net .result of these two phenomena is to sharply reduce the volume of fluid contained within this section of tubing. In decreasing the fluid volume within this flexible tubing, the tube diameter also decreases, which in turn acts as a valve, shutting off further downstream flow. The section of tubing above the constriction begins to fill again, due to the upstream pressure. When the hydrostatic pressure at the constriction is equal to the external pressure the tube opens, with a rush of flow downstream, causing an253 254 Proceedings-Spring Joint Computer Conf., 1967 other cycle in the oscillation. The idealized situation is pictured below: Collapsible j' Bigid t -I- Al I t "----i/ PI Higid --- Qin Moreover, until the fluid flow has built up to a volume V* in the collapsible section of tubing, the pressure just downstream is less than the external pressure, Px , or P4 - P 4 ,ss when P 4,85 > p" P4 P x when P4,SS < P x and V : : : :",. V* (8) P4 P s when P4• < P" and V < V*; Equations (2-8) are a complete description of the physical system under consideration. Figure 1 is the analog computer diagram for the simulation of these equations on an Electronic Associates, Inc. TR-48 analog computer. SB p x The pertinent mathematical equations which describe the system are: DISCUSSION OF RESULTS According to Lambert's theory,9 the frequency of the oscillation is proportional to: dO out = klLAs [P4 dt P 5 dV -----at = k2 [Oin - P s] - R :) PA s Oout (2) (9) (3) Oout] where V is volume in the colhlpsible section of tubing, o is volumetric flow rate, P is pressure, and R is the flow resistance. Moreover, at steady state conditions, OlD Oout Qss, and = I I I Ps I +RLA RsLsA)2 s ;; 21I 1 + RILJA;;2 + RILIA/ J 1 11 P4,ss = PI = 1 1 (4) where P 4 is the pressure just downstream from the collapsible section of tubing. We may then formulate the dynamic relationship of P 4 as follows: P4 = P4,ss when P 4 ,ss : : : :",. p" (5) P4 = P x when P4,ss < P" where p" is the external pressure on the flexible tubing. In addition, we observe from the physical description of the system that the oscillation cycle regains its energy from the constant upstream pressure, which causes a fluid volume buildup and concomitant pressure buildup, until the pressure on the upstream side of the valve equals the external pressure. To include this phenomenom in the mathematical description, we alter the system to include a pressure, P s , on the upstream side of the valve. * Ps is a function of the fluid volume in the collapsible section: Ps = P"ss when P4,ss > p,,; Ps = p" when p" > P 4,ss (6) This relationship is questionable since it neglects the frictional resistance term and requires quite a few approximations before the final form, Equation (9), is obtained. However, if we follow Lambert's formula.. tion and include the frictional resistance, we obtain essentially the same conclusions as are implied in Equation (9), namely: ( 1) The frequency of oscillation increases as the downstream cross-sectional tube area, As, is increased; and, (2) The frequency of oscillation is decreased as the tube length of the downstream section, L s, increases. These predictions were verified when the mathematical system describing the oscillating vein, Equation~ (1-8), were simulated on an EAI TR-48; using the circuit shown in Figure 1. Figures 2, 3 and 4 present the results of the simulation. From these results, it may be concluded that the mathematical system postulated for this phenomenon gives physically correct responses as they compare favorably with Lambert's theoretical and experimental findings.lO SUMMARY AND CONCLUSIONS This paper demonstrates once again the attractiveness of the analog computer in the investigation of process dynamics. Using the most salient feature of the analog computer, namely simulation by (electrical) analogy, we were able to "mathematize" an extremely complicated system merely by providing an accurate Therefore, Equation (1) may be modified to: dO. in at ____ k1AI_ [DJ. 1 pLl P3] - Rl- Qjn ('7\J pAl I *That is, when the portion of flexible tubing is collapsed, P3 is the fluid pressure just upstream from the collapsed portion of tUbing. The Oscillating Vein 25 5 +10 +3V' -10 +10 +3V k, A5 P5 2.5x 104pl5,B )-----10 -l I I I _I +10 -10 Figure I-Analog computer circuit diagram Time Time Figure 3-Increasing Px above P4 • and increasing the downstream tube length SS Figure 2-Increasing P x above P 4,8S physical description of the phenomenon under consideration, and then simulating directly this physical description. It is felt that this approach is particularly valuable in the biomedical area where one often deals with physical systems which are not amenable to vigorous mathematical description. REFERENCES G. A. BRECHER Venous return New York Chap. 1, p. 8 1956 Grune and Stratton, 2 J. P. HOLT The collapse factor in the measurement of venous pressure Am. J. Phys. 134, 292 1941 256 Proceedings-Spring Joint Computer Conf., 1967 3 G. A. BRECHER Mechanism of venous flow under different degrees of aspiration Am. J. Phys. 169, 423 1952 S. RODBARD and H. SAIKI Flow through collapsible tubes Am. Heart J. 46, 715 1953 5 S. ROD BARD Fiow through coiiapsibie tubes: augmented flow produced by resistance at the outlet Circulation 11, 280 1955 4 Q out Time Figure 4-Increasing P", above P 4."" and increasing the downstream tube cross sectional area 6 A. H. MORENO, A. R. BURCHELL, R. VAN DER WOUDE and J. H. BURKE Respiratory regulation of splanchnic and systemic venous return submitted for publication Am. J. Phys. 7 J. W. LAMBERT Distensible tube flutter from steady driving pressures: elementary theory paper presented at ASCE, EMD meeting, Washington, D.C., October 13, 1966, Session on Biological Flows 8 9 10 Ibid. Ibid. Ibid. Computer applications in biomedical electronics pattern recognition studies 1___ vy A I "TL'I £ ' l J ~_....I I I "L"TI~TL' 1""\.. J. YY D L v r I (lUU J. L • .l.JLY l1...,.L The University of Texas and ROBERT G. LOUDON The University of Texas Southwestern Medical School Dallas, Texas INTRODUCTION The University of Texas is fortunate in having excellent computational facilities available for utilization in research. This paper is an applications survey dealing with how these facilities are used by the biomedical electronics group in the Electrical Engineering Department of the University. Two computer systems are involved in the research projects described in this paper. The majority of computation is done on the University's Control Data 6600 system, while a Scientific Data Systems 930 computer maintained by the Electrical Engineering Department provides facilities for data conversion and pre-processing. The Control Data 6600 system was installed at the University during August, 1966. The center CDC 6601 computer consists of eleven independent, but integrated computer processors. A single control processor which contains ultra high-speed arithmetic and logic functions operates in connection with ten peripheral and control processors. All eleven processors have access to the central magnetic core memory. This central memory consists of 131,072-60 bit words of storage, each word being capable of storing data 17 decimal digits in length, or two to four centred processor instructions. A verage instruction execution time in the central computer is less than 330 nanoseconds. Each of the ten peripheral and control processors has an additional 4,096 work core storage. Information exchange is possible between any of the processors and the various peripheral devices. Peripheral equipment connected to the 6601 at the time of writing of this paper include a CDC 6602 operator console with twin CRT displays, six CDC 607 magnetic tape transports, two CDC 405 card readers (which operate at 1200 cards per minute), two CDC 501 line printers (1000 lines per minute), one CDC card punch (250 cards per minute) and one CDC 6603 disk (75 mega-character storage). The CDC 6600 is operated by the Computation Center at the University on a closed shop basis while the Scientific Data Systems 930 digital computer maintained by the Electrical Engineering Department is operated on an open shop basis. The SDS 930 has an 8,192 - 24 bit word core storage memory. Peripheral equipment includes two tape decks which operate at a tape speed of 75 ips with bit density selectable at 200 bpi, 556 bpi and 800 bpi. Additional equipment includes a twelve bit analogto-digital converter, eight bit digital-to-analog converters and a multiplexer (which in addition to providing coupling for the conyerters allows input and output of parallel data words and single bit data at logical levels). The AID converter may be operated at rates in excess of 30 K conversions per second. For this particular installation, a single inputoutput channel is available. It may be operated in an interlaced mode (which allows time multiplexing with central processor operation). This input-output channel is independent of the direct parallel inputoutput capability previously described. A priority interrupt system is incorporated which allows the computer to operate in a real-time environment. The basic machine cycle time is 1.75 microseconds, with fixed point addition requiring 3.5 microseconds and fixed point multiplication requiring 7.0 microseconds. Single precision floating point addition and multiplication require 77 and 54 microseconds respectively. Programming languages included in the software package are Fortran II, Real-Time Fortran II, Algol and Symbol (an assembly language). Real-Time Fortram II was evidently designed to 257 258 Spring Joint Computer Conf., 1967 allow the use of the priority interrupts, but because of poor documentation and inherent weaknesses in the soft-ware, it has been necessary to program most of the conversion routines used in Symbol, either as complete programs or as Fortran II subroutines. A display scope is a part of the system, but the memory location required by the priority interrupt level which it utilizes is also required by the Fortran II system, thereby effectively precluding its use. This handicap has been overcome to some extent by the use of the D/ A converters in conjunction with a conventional oscilloscope. This facility, used with a strip chart recorder or X -Y plotter fills the gap left by lack of a plotter or high-speed input-output equipment (input-output is by means of an online teletype or p~per tape). A first step in the data reduction required by the projects described in this paper is the digitizing of recorded analog signals and subsequent storage on digital tape. The SDS 930 provides this capability, but its relatively slow floating point operations and limited memory size make it desirable to use a more powerful installation for actual computation. This need is fulfilled by the CDC 6600 system. Two projects presently in progress within the biomedical electronics group of the Electrical Engineering Department at the University typify the profitable usage of the computational facilities available. These are a chick dietary deficiency study and a study of audio waveforms resulting from the cough reflex. Both are concerned with time-varying signals and have as a final objective the implementation of a pattern classification algorithm. From a data-handling viewpoint they represent extremes. The chick study works with the electroencephalogram, a relatively slowly varying signal which has a highest frequency component in the vicinity of 150 hz. The cough study operates on a waveform in which the highest significant frequency is in the range of 8 khz. In the first case a data sampling rate of 300 samples per second will suffice to completely represent the waveform, while for the latter a rate in excess of 16000 samples per second will be required. In practice a somewhat higher sampling rate than the Nyquist rate quoted is employed. The quantities of data which must be dealt with differ correspondingly. Prior to outlining the particular research projects, a brief review of the pattern classification techniques common to both is in order. Classification theory is divided broadly into statistical (or parametric) decision theory, which treats the data to be classified as being probabilistic in nature, and non-parametric decision theory, which treats the data as being deterministic. Statistical theory has the advantage that it is possi- ble to obtain a rule for classification that is optimum under stated conditions. These parametric methods require knowledge or good estimates of the underlying density functions and a priori probabilities of occurrence, or as in the case of optimum iinear filtering, require statistical stationarity. These properties are rarely known when one works with experimental data, and the underlying joint probability density functions are often so complex that they defy mathematical manipulation unless simplifying assumptions are made. Most of the non-parametric classification methods cannot be proved to be optimum and must stand by virtue of their success in classifying data from a particular experiment. In either of the above cases, a preliminary decision must be made as to what parameters are to be measured and used in the classification process. Little theory exists to indicate which parameters should be chosen, and an educated intuitive choice based on the preliminary data from the experiment is probably as good a route as any. In the particular case of biomedical pattern classification studies, the physiological models of the phenomena point toward some features which may logically be expected to contribute to successful pattern classification. Conversely, successful implementation of pattern recognition techniques utilizing measures suggested by the physiological model tend to bolster the validity of such a model. A pattern classifier has as inputs the measures gleaned from the experiment expressed as an ordered sequency of d real numbers. This sequence is called a "pattern" and may be conveniently thought of as a vector extending from the origin to a point in d dimensional space. The pattern classifier sorts the patterns into categories, for purposes of this paper, R in number. The R point sets constituting categories are separated by "decision surfaces" which may be expressed implicitly as a set of functions containing.R members. Let the "discriminant function" gl(X), g2(X), ... , gR(X) be scalar, single valued functions of the pattern X continuous at the boundaries between the R classes. These functions are chosen so that for all X in Ri : i, j = 1, 2, ... ,R (l) i # j i.e., the ith discriminant function has the largest value in region R i . The surface separating the contiguous regions Ri and Rj is given by: (2) Computer Applications In Biomedical Electronics Pattern Recognition Studies 259 Chick Dietary Deficiency Data Acquisition Block Diagram EEG ) Light Source I <11 ~<--Ch ic k ~I 1 'I Shielded Chamber /\ \/ Gra s s ./ "' Ele c t ro enc epha log ra ph \1 Time Base ........ 6 Voice Identification j ./ .7 o "' ~ Sync. \1 ~1I ./- Multichannel "' ./ Tape Recorder "' Recorded Recorded Sync. ______________________ J EE6\()I __ _ \1 () CRO Computer of Average Transients CAT-Punch Interface Paper Tape Punch Figure 1 - Chick dietary deficiency data acquisition block diagram When R=2 the division is termed a dichotomy and categorization consists of determining the sign of a single discriminant function: d g(X) = g}(X) - g2(X) The decision rule is as follows: g(X) > 0 --- classify X as belonging to R}; g(X) < 0 --- classify X as belonging to R 2. N on-parametric training methods initially assume a form for a discriminant function, an example of which is given as equation (4): g(X)=w}x} + W 2X 2+ ... +WdXd+Wd+l (4) The Xi'S are the individual measures which con- stitute the pattern and the w/s are adjusted by application of training procedure utilizing a representative group of training patterns. Parametric classification assumes that each pattern is known a priori to be characterized by a set of parameters, some of which are unknown. Construction of the appropriate discriminant functions incorporates estimation of the parameter values from a representative set of training patterns. A parametric classification technique has been applied with some success to the chick dietary study while it is anticipated that non-parametric methods 260 Spring Joint Computer Conf., 1967 are more applicable in the case of the cough recognition study. The chick diet deficiency study has as its objective the development of EEG techniques for diagnosis and classification of experimentally induced vitamin B6 (pyridoxine& deficiency states in the White Leghorn chick. Chicks are initially assigned on a random basis to three groups: control, short term deficient, and long term deficient. The long and short term deficient chicks are placed on a 98% pyridoxine deficient ration on the first and tenth days, respectively. Electrodes are implanted during an early state of experimentation. Spontaneous and evoked EEG are recorded at j 2 hour intervais starting when the chicks are nine days old. The recording sessions continue for two weeks, after which time anatomical histological confirmation of electrode position is made. Figure 1 is a block diagram of the data acquisition set-up for the study. Chicks are placed in a restraining box in a roosting position. In this position they tend to fall into a partial sleep, which is favorable for recording data. Ten seconds of spontaneous EEG and 200 evoked responses are recorded on magnetic tape. The chick's head is held in position and the left profile is exposed to the stimulating light source. The right eye is covered to insure monocular viewing. The electrocortigram from the implanted electrodes is recorded on one channel of a multi-channel recorder while identification, time reference and times of occurrence of photic stimuli are recorded simultaneously on other tracks. During recording the signal is monitored by the CRO and ink recordings are made. The Computer of A verage Transients is used in the real-time situation to verify that acceptable data is being recorded. The Computer of AVerage Transients contains 400 words of core storage. The memory is stepped sequentially at adjustable rates. The analog signal presented to the input is digitized in synchronization with memory address changes and the digitized value of the signal is added to the data contained in the memory word. When a repetitive signa] is presented to the CAT input with an appropriate synchronization signal (in this case the occurrence of the photic event), a considerable enhancement of the signal to noise ratio is obtained. The memory contents are displayed by stepping the memory sequentiaHy and performing a D/ A conversion on the contents of each address. The address register is also subjected to D/ A conversion, yielding a voltage which is proportional to the time of occurrence of the averaged amplitude with respect to the synchronizing signal. These converted signals either control a cathode ray tube display which is a part of the CAT, or are available for use by an X -Y plotter. Provision is additionally made for paralIel read out of the memory in BCD form. An interface has been constructed which synchronizes the CAT memory and a paper tape punch so that the digitized data is made available in a form compatible with the SDS 930 computer. A cough recognition study is currently under way which presents a contrast in data gathering and reduction techniques. A group is conducting research on respiratory ailments at Southwestern Medical School in DaHas, Texas. One parameter of interest is the number of times that a patient coughs during a given interval. Microphones are placed in selected hospital rooms and audio recordings are made. Figure 2 is a block diagrarn of one chan~'1e! of the data acquisition system. The tape recorders operate in a start-stop mode, having been energized by a voice controlIed relay. Sufficient delay is provided to aHow the recorders to come up to speed by prerecording on a continuous tape loop. An adjustable band-pass filter is interposed between the amplified signal from the hospital rooms and the voice actuated relay. Preliminary attempts to adjust the filter to aHow recording only of coughs has not been successful. Various artifacts will also energize the system when it is adjusted to record the majority of the coughs. I t is therefore necessary to etTect a more sophisticated approach to the cough recognition process. The quantity of data, and the impending installation of multichannel continuously operated recorders indicate that a mechanized recognition procedure wiB be required. In addition to the requirement to classify the audio signal as cough or non-cough, the physiological model of the cough indicates that decision theory may profitably be applied to the waveform to identify the cough as having emanated from individuals sutTering from ditTerent broad classifications of respiratory diseases. It is anticipated that adaptive non-parametric pattern recognition techniques wiB be applied to the recorded data to effect separation into the pertinent classes. F or both studies outlined a first step in the data reduction procedure is the digitizing of the recorded analog signals and subsequent storage on digital tape. The SDS 930 computer is used for this purpose. The relatively low maximum frequency content of the EEG recorded in the diet deficiency study allows a conversion rate slow enough that a complete digitized signal segment may be stored in the computer Computer Appiications In Biomedical Electronics Pattern Recognition Studies 261 Cough Recognition Study Data Acquisition Block Diagram I~Remote Microphone Audio . . . Continuous Loop Signal .., Recorder Tape ...... 7" Recorder 1\ Oelayed Audio Signal Tope Cont, 01 Sign 01 ~ Amplifier ...... -, Adjustable Fi I te r Voice ~ Actuated Relay Figure 2 - Cough recognition study data acquisition block diagram memory prior to writing on tape. In the cough recognition studies the length of an individual signal may be as long as two seconds. At a 20 K conversion per second rate a file consists of some 40,000 conversions, necessitating the simultaneous conversion and writing of information on digital tape. The computer memory acts as a buffer and the central processor controls output format. The priority interrupt system (activated by a pulse generator) initiates a conversion. Sampling time is controlled to within 3.5 microseconds. Data from the AID converter is read into the computer memory in the twelve most significant bit positions of a word. The digital words are written in binary mode on tape in a two character per word format, 1000 conversions per record. The two character per word format records data from the 12 most significant bit positions in the memory word. When the data is read from the tape, it is read in a four character per word mode. This effectively packs two conversions into each memory word. The final word in a file (a particular signal segment) is an identification word which characterizes the number of records in the file, the number of conversions contained in the file, the sampling rate and the number of conversions in the last data record (all others contain 1000 conversions). File identification is also included. Adjoining files are separated by End of File marks. Programs have been written to search the tape for a particular file and to output the data contained therein through the DI A con·verters. Two modes of operation are available - repetitive output of a segment of the file (the maximum length of segment being dependent upon available computer memory) with indexing capabilities so that a whole file may be scanned on a CRO, or continuous output of an entire file for recording on a strip chart recorder. DI A conversion is controlled by the priority interrupt system. The output is therefore adjustable for time base expansion by decreasing the interrupt input pulse rate. The mode of operation is controlled by sense switch operation and the on-line teletype. Provision is made for output of a calibration signal. Programs have been written for the CDC 6600 to provide the interface necessitated by the difference in word length and internal representation between the two computers. As previously noted, one of the early decisions that must be made in a pattern recognition study is which measures are significant. The quantity of data that is available in a file is formidable. The two second re- 262 Spring Joint Computer Conf., 1967 Plot of Linear Discriminant Separation of 14-Day Deficient and 14-Day . . _... l,;ontrol tsaoy ~nICKS - -. Deficient Centroid 0 KEY.· -'Y Deficient (14 days) o Long Term Deficient (21 days) ll. Cont r.ol o Fasted 0-24 Hour Fasted: Control Centroid 0 ll. ll. ll.0-24 Hour Fasted: #84 I I I ll. ll. : I I I I I ll. ll. + 0-72 I Hour Fasted: Same Chick, * 84 Figure 3 - Plot of linear discriminant separation of i 4-day deficient and 14-day control baby chicks cording mentioned in conjunction with the cough recognition study would have 40,000 data points. If each point is· considered as a dimension, direct application of pattern recognition techniques to the sampled amplitude data without pre-processing would necessitate working with 40,000 dimensions. It is necessary, therefore, to find an efficient means to reduce the dimensionality of the pattern without losing the means for classification. One approach to this data reduction is to penorm spectrum analysis of the time signal. Frequency analysis of non-periodic records, such as those with which this paper is concerned, can take several different forms. At one extreme is an evaluation of the Fourier integral, which has as its solution a continuous frequency spectrum for each signal analyzed. At the other extreme is an estimation of the power spectrai density of the entire class of signals by statistical techniques. Intermediate between these extremes is the possibility of obtaining a representation of the behavior of the signal in the frequency domain in terms of groups of frequencies. This suggests a bank of band-pass filters (the impulse responses of which are represented digitally and convolved with the digitized experimental data). Programs are in use which implement these three approaches. The first, a Fourier analysis, is applied in the case of the diet deficiency study where the band of frequencies is relatively narrow. Power spectral density estimates are useful in determining the frequency intervals of interest. The digital filters have been applied to the audio data in the cough recognition study. In the case of the digital filters, one wishes to cover the frequency band with as few fiiters as possible without losing significant information. After once Computer Applications In Biomedical Electronics Pattern Recognition Studies having decided to use filters, counting zero crossings of the output of the filter may be accomplished with little added expense in computation time. The zero crossing count should give an indication of the highest amplitude frequency component present in the filter output, at least on the average. A normalized tabulation of the periods between zero crossings indicates approximately how the frequency content of the filter output is distributed. The audio signa! under consideration may be viewed as a signal modulating some carrier frequency. The detection of the modulating signal would yield the envelope of the signal. This may be done digitally by application of Sterling's approximation from numerical analysis. Differentiation and solving for the time when the derivative of the approximation is zero yields the time of maxima or minima. A re-application of Sterling's formulation yields the interpolated value of the amplitude of the signal at that time. Sterling's approximation attempts to fit a polynomial to the discrete points in the neighborhood of the point of interest. Having evaluated the coefficients of the polynomial, one solves for the value of the polynomial at the point of interest. This formulation has the advantage that relatively few time consuming multiplications are necessary. Another measure which may find application is the rate at which the maximum energy content varies from one filter output in the bank to another. Having obtained the measures which appear to be pertinent, the next step is application of training procedures (in the case of non-parametric recognition techniques) or making estimations of the pertinent statistical parameters (in the case of parametric recognition techniques) to obtain the discriminant function described earlier. In the chick dietary deficiency study a preliminary 263 classification of deficient and control chicks has been obtained by using a parametric linear discriminant function on a fourteen point amplitude distribution. The discriminant function, given as equation (5) below, assumes that the points are normally distributed and that the covariance matrices for each class are equal. The amplitude measurements were obtained at a time when the control and short term deficient chicks did not have a significant weight difference. All chicks were fourteen days old with the exception of the long term deficient chick, which was 21 days old. A plot of the linear discriminant separation is included as Figure 3. The discriminant function separated these groups at a 0.10 level of significance. The applicable discriminant function is: g(X)=Xt~-1(MI-M2)-V2Mlt~-lMl+Y2M2t~-lM2+log (pl/P2) (5) where X is the pattern vector for each sample of data, Mi is the mean vector for class i, ~ is the covariance matrix and p(i) is the a priori probability for the ith class. The decision boundary given by setting g(X) = 0 is normal to the line segment connecting the transformed means ~-lMl and ~-lM2. Its point of intersection with this line segment depends upon the constant term: -Y2MltL-lMl+V2M2t~-lM2+log(Pl/P2) (6) It is to be noted that at the time of writing of this paper' the two research projects described are in progress and the results are necessarily incomplete. Although it would have been preferable to include final results of the studies, the outline of the work to date emphasizes that such research would not be feasible without the aid of mechanized data handling and high speed computation. Experimental investigation of large multilayer linear discriminatorsby W. S. HOLMES and C. E. PHILLIPS CorneliAeronautical Laboratory, Inc. Buffalo, New York INTRODUCTION Although proofs of convergence and general expressions for capability have been published to describe the performance of linear discrimination pattern recognizers, very little mathematical basis exists for designing a specific system to perform a desired task. Until these bases are developed, empirical studies are important in order to establish bounds of performance ~d t.o find insights that may eventually be generalIzed mto mathematical descriptions of performance. This study confines itself to perceptrons and· parametric modifications to perceptrons. The adaline. is included in the study as a perceptron with only one positive . connection per A-unit and a threshold ' T , subject to O nC'l-:>t;n" \oo.a.u..L..I...:J.I."-...... V.LI. Truncated adalines Elimination of connections to the retinal space reduces the size of the system, and hence its cost. Elimination on the basis of an information analysis of the training set permits a drastic reduction as shown in Table II. The Type 2 pattern set was used in these experiments. Number of A-Units 576 191 99 48 Posiitve Class 100 98.5 93.5 82.5 Negative Class 99.5 99.0 98.1 95.6 Truncation % 99.7 98.3 96.6 91.3 0 67 83 92 16 12 :'"' .... Pattern translation experiments General Noise presents a significant test of a recognition system's ability to generalize. Performance in the face of linear transformations of patterns such as translation, rotation, and scale changes presents a conceptually different test of a system's ability to generalize. Fot example, when considering generalization over translation, it is pertinent to inquire how performance deteriorates as tests are made using patterns located farther and farther from the location of the training set. Further, if the training set is divided between two locations separated by one or more retinal points, will the response to the testing set be better in the bracketed locations than in correspondingly distant locations outside the training bracket? Two translational experiments were performed seeking answers to these and other generalization questions. The experiments to investigate the translation transformational generalization capabilities of this class of recognition system were all performed using Type 2 patterns. Thus, all patterns in the training and testing set included noise and the sets were large enough to .~"".I.'"''''' ...'''''"'' 0:> .&...1."'.1. ...1. U. r!o:>nC'_ '-JIu,u..-,- I I~ Although performance suffers some from truncation, the deterioration is small compared to system savings in terms of retinal units and weights in the linear discrimination function of the system. """'''''.1..1. t'u. ....."".I..I..I. ""1oJI 20 18 Overall ;" Ao:>,.h "'o:>t+A~ ",,'O:>C' C'A1A,.tAI'1 .f!~n"" .1..&..1. sian distribution independent in Ixl and Iyl. The testing set was similarly translated and the test results plotted, as shown in Figure 5, as a function of the total translation calculated as follows: T = Ixl +.IYI. Table II-Truncated adalines % Recognition 269 10 68 PROPERTY GENERATORS 1'\ I\ I \ ,'r', I I,\\ \ \ \ I \ \ J \ \ I \ I I \ \ I I III' I \ \ \ \\ \\ \ \ \ \ \ \ \ \ \ \ \ , Figure 5-Recognition error vs total translation This experiment would appear to predict deteriorating performance as a function of increasing translation, at least within the range of reasonable statistical significance. However, when one considers the nature of the translational process, both for training and testing, which would tend to concentrate patterns at certain translational distances, and observes that the number of possible locations for patterns increases with increasing T, it is clear that the data require closer examination. Table III shows the results of the experiment for 68 A-unit and 300 A-unit two-connection perceptrons together with information about the number of patterns involved in the experiment in each translational distance. Focusing attention on the column "patterns per location," which is based on the 270 Spring Joint Computer Conf., 1967 total number of patterns at a fixed value of T and the number of locations corresponding to that value of T, we can see that this experiment tends simply to reveal that the performance of the two perceptrons tested deteriorates as the number of patterns per ioeation reduced. Although the data are a little sparse for use in drawing general conclusions, Figure 6 shows that they are suggestive of an inverse relationship in number of patterns and that upwards of 50 to 100 patterns per location would be required to effectively train such a device for translational efficiency. If one econsiders a 100 X 100 retinal region, the problem of training a machine using adequate samples at each of the 104 locations becomes startling. Table III-Recognition under training and testing translations B C C/B Total number of patterns Number of patterns in set with Average misc1assified translation patterns (Two connections) Number of as given in per % Error 68 A-units 200 A-units 68 A-units locations column A location 300 A-units 0.0 o 0 86 0.0 1 86 4 0 1.384 289 72 0.0 4 1.449 5 2 345 43 8 0.579 2] 12 259 3.088 8 2 0 ..772 133 8 13 3 9.774 16 2.255 59 3 11 2 3.389 18.664 20 12.5 0.6 2 2 24 16 12.5 o 1 0.0 28 10 0.4 10.0 o 0 0.0 32 3 0.1 0.0 A + Ixl Iyl Translation 0 1 2 3 4 5 6 7 8 10 systems to recognize patterns in locations adjacent to the location of the training set. For this purpose, the Type 3 pattern set was used. This set has 880 training patterns located at positions zero, +2, and -2 resolution cells. Testing subsets are available with translations zero, +1, +2, +3, and +4. The testing subset translated 1 resolution cell is bracketed by the 0 and +2 training subset locations. Testing subsets translated by +3 and +4 are unbracketed by any subsets and are progressively more remote from any location at which training has taken piaee. It is also of interest to examine the behavior of the machine at 0 and +2 locations in order to determine whether the influence of the training at 2 and -2 has caused the machine to be more capable as a recognizer at the 0 point than at the +2 point. The data from this experiment are presented graphically in Figure 7, plotting the number of errors as a function of translation of the test set. The letter T in the diagram designates the locations at which training took place. + PERCENT 5 ERROR + 'r 0' o I ! 10 20 I ! ! ! [ ! 30 110 50 60 70 80 0 I 90 !!UMBER OF PATTER!!S PER LOCATION Figure 6-Relation between recognition performance and number of samples per translation Translational generalization Since the pattern set required to train a perceptron adaline with two-translational transforms over a reasonable size retinal space is prohibitive, an experiment was run to determine the ability of such recognition The data contain one mystery which needs resolution, but in general, suggests that a limited amount of translational generalization is taking place. The mystery relates to the behavior of the uniform random pointset selection device in its performance beyond +2. Whereas we would expect the performance to deteriorate and, in fact, to deteriorate faster than for the 1 translational point, it, in fact, appears to improve. Performance at 0 is better than at 2 both of which + + Experimental Investigation of Large Mulitlayer Linear Discriminators were subjected to training, the first of which, however, was bracketed by +2 and -2. 100 A-UNITS-b-- = STATISTICAL POINT SET SElECTI ON OF CONN ECTI ON S 100 A-UNITS-o-- = RANDOM (UNIFORM) SELECTION OF CONNECT ION S AU WITH I CONNECTION FOR A-UNIT sets must be determined by the number of discrete points of transformation to be encompassed by the final machine and the distribution of training points over the transformations need not be as fine as the distribution of resolution cells in the "retinal" space. Even with this relaxation in requirements upon training, the cost of training a recognition system over more than one transformation, for example, translation, would probably be prohibitive. Therefore, additional constraints and / or onmnizational modifications to the systems tested seem required in order to achieve economic recognition efficiency over a sizable spectrum of transformations of the pattern set. - 60 110 -2 T - I 0 +I +2 T T TRANSlATION OF TEST SET +3 Figure 7-Two experiment example of translational generalization As mentioned in References 4 and 5, statistical point set selection of connections tends to produce a machine which is "tuned" to the problem. We had anticipated that the performance of the statistical point set selection machine would be relatively poorer in the 1 testing location than the random selection machine. This conjecture is not borne out by the data. Therefore, we must conclude that the statistical point set selection process, while tending to "tune" to the data, still permits significant generalization relative to random point-set selection machines. This relatively good generalization probably arises because of the great waste of connections in the randomly selected machine. This experiment suggests that a machine having strong generalization capabilities might be constructed by training in a matrix of resolution cells which are two or three units separated from each other in every direction. This would cut down the cost of training such a device by a factor of 4 to 9. An experiment to confirm this speculation has not yet been performed so it is not possible to go beyond the speculation. + SUMMARY AND CONCLUSIONS The experiments described in this paper suggest that the number of connections per A-unit in perceptrons should be reduced to the greatest extent possible and the reduction to one connection per A-unit seems economically optimum as long as statistical point set selection techniques are employed. The size of training 27j --. - - . - - - - - - - ------, -- - Q ACKNOWLEDGMENTS The contributions of C. W. Swonger, J. B. Beach, and C. T. Phillips to the analysis of property information relationships are acknowledged. The Type 1 patterns employed in the reported recognition experiments were generated under Contract No. Nonr 3161 (00), supported by the Geography Branch of the Office of Naval Research. Generation of the Type 2 patterns and performance of some of the experiments in this work were accomplished under Contract No. AF33(615)] 451 supported by the Research and Technology Division, Wright-Patterson Aif Force Base. REFERENCES W. S. HOLMES, H. R. LELAND, and G. E. RICHMOND Design of a photo-interpretation automaton presented at the Fall Joint Computer Conference 4 December 1962 2 F. ROSENBLATT Principles of neurodynamics Cornel Aeronautical Laboratory, Inc. Report No. 1196G-8 (also published by Spartan Books, Washington, D. C. 15 March 1961 3 W. S. HOLMES, H. R. LELAND and J. L. MUERLE Recognition of mixed-font imperfect characters presented at Optical Character Recognition Symposium Washington, D. C. 16 January 1962 4 M. G. SPOONER, C. W. SWONGER, and J. B. BEACH A n evaluation of certain property formation techniques for pattern recognition presented at WESCON, Los Angeles, California 25-27 August 1964 5 C. W. SWONGER and C. T. PHILLIPS A report of property generation and utilization research for pattern recognition Cornell Aeronautical Laboratory, Inc. Report No. VG1860-X April 1965 A computer analysis of pressure and flow in a stenotic artery* by PETER M. GUIDA, M.D. The New York Hospital-Cornell Medical Center New York, New York LOUIS D. GOLD, Ph.D. Electronic Associates, Inc. Princeton, New Jersey and S. W. MOORE, M.D. The New York Hospital-Cornell Medical Center New York, New York INTRODUCTION Materials and methods There is a widespread assumption in the medical and engineering communities that when a small decrease in cross-sectional area is imposed upon an artery there is a correspondingly small decrease in arterial flow and pressure, and that when progressively larger increases in arterial stenosis are made there is a cor,;. respondingly greater decrease in arterial pressure and flow. That this is not so has been shown in earlier studies1 ,2 in a qUalitative way. When a smaIl stenosis is imposed upon an artery there is no change in arterial pressure and flow until a rather large and significant stenosis is produced. Recent studies3 •4 have attempted to develop this concept even further. It has been the object of this study to quantitate the effect on the pressure and flow in an artery that is subjected to an increasing stenosis. This has been done by drawing from a background of numerous arterial flow and pressure determinations in both humans and dogs, and then carrying this further to the development of a mathematical model and subjecting the mathematical model to computer analysis. The basis for the construction of the mathematical model was determined in the following manner: Numerous blood flow measurements were made with a square-wave electromagnetic blood flowmeter~* Pressure measurements were made through No. 20gage needles inserted into the artery and connected to short lengths of rigid wall nylon tubing which, in turn, were connected to strain gages. ** These were connected to strain gage pre-amplifiers t and displayed on a suitable oscilloscope. tt The data were recorded on a 7-channel instrumentation tape recorder§ arranged in the FM mode of recording with a frequency response flat from 0 to 2500 Hz. Photographs were made of the analog oscilloscope display by using a Tektronix Model C-12 Polaroid Camera that can take photographs directly from the face of the oscilloscope tube. These data were then SUbjected to qualitative analysis, reduced manually to digital form, and the mathematical model which is described here was developed. The requisite mathematical • Avionics Research Products, Model MS-6000A. ··Statham Model P-23Db. fTektronix Model Q Oscilloscope Plug-in. tfTektronix Model RM-535A Oscilloscope. §Ampex Model SP-300 Instrumentation Tape Recorder. ·Portion of this work was done during a tenure by Dr. P. M. Guida as an Advanced Research Fellow of the American Heart Association. This work was supported by USPH Grant:# HE06846, the Susan Greenwall Fund and the Charles Washington Merrill Fund. ""'1 ':"fJ 274 Spring Joint Computer Conf., 1967 equations were solved and the results plotted out on a Digital Computer.§§ The Computer Block Diagram is presented in Figure 1. DEFI~ these conditions, the continuity equation takes the form: Qout = Qin (p = constant) (3) therefore, by virtue of equation (3) we make equate equations (1) and (2): PAmlETERS ~: AU'ERRA TO CALCL"LATE Qout; P4 ; B s 0 Qout, P4 dQin= dQout. or dt dt ' (4) PRINT A.'1D PWT oU'!' RESULTS ~_ _ _ _ _ _=NO~ ~ns~ Application of the Steady State Bernoulli equation (i.e., Conservation of Energy) to section 2, 3 in Figure 2 yields: ________~ (5) where v is the linear velocity, ev is the total energy loss in the section under consideration, and kl is a conversion factor. Then: Figure I - Computer block diagram for computation of distal flow and pressure in a stenotic artery Mathematical model In developing a mathematical model of the portion of an artery in stenosis, we will idealize the artery to the extent of considering only rigid wall tubing of constant cross-section, except in the immediate area of the stenosis. This idealized system is shown in Figure 2. P 1 in 2 vi _ Ev + P3 - P2 2kJ 2kJ p ~ P l* Qin 3 I, P 4 Qout P 5 ~ ~I 0 (6) ev = (7) .45 (1-B) A0 .L -L- where IA L kl We may evaluate ev for a sudden contraction5 as: T P2 + 1/2 vi e v = I-- L .\ B = A/ Ao; thus, Figure 2 - Schematic representation of an idealized stenosis in an artery A momentum balance between points 1 and 2 and points 4 and 5 yields: dQin = klAO (P _ P ) _ RQin dt pL 1 2 pAo dQout = klAO (P _ P ) _ RQout dt pL 4 5 pAo or V3=V AO=v/B A (1) Therefore, (6) becomes: (2) where Q is the volumetric flow rate, R is the resistance to flow, and p is the density of blood. Under §§Electronic Associates Inc. Model 8400 Digital Computer. or o _ 13 - - pv 2k 2 rL 18 1 1/ J 2 1 - I 1 T .45 W (1 1 - B)l J I T p 2 ( 0\ 71 A Computer Anaiysis Of Pressure And Fiow In A Stenotic Artery* Similarly, applying Bernoulli's Equation to sections 3, 4 in Figure 2 yields: P3 = 2: v 2 [1 - I/B2 + (1/B - 1)2] We may also determine the distal pressure, P4, by considering equation (2) and noting that dQout = 0 dt + P4 (10) 1 275 or (11) since ev for a sudden expansion is 6: ev = (1/B - 1)2 (16) Equating equations (9) and (10) gives: Therefore (17) (12) 100 We may substitute the continuity relationship: 90 Q) L. 80 ::l 3 0 into equation (12) to give: P2 =P~ +P~ + ~:2B2 1 ~ u- [(1 - B)2 + .45 (1 - B)] (13) a.. c .-c .Q) 1Il co Substituting (13) into equation (1) yields: 1Il 1Il Q) L. Q) 1Il co Q) L. Q) L. U U Q) Q) 0 0 -I..J -I..J C Q) u L. Q) a.. c Q) 70 60 50 40 30 20 U L. Q) 10 a.. a [(1 - B)2 +.45 (1 - B)]} - ~~n (14) Now, analysis of the actual experimental data and the numerical values of the parameters in equation (14) implies that there is no phase-lag in the pressureflow relationship, or: Thus, we finally obtain from equation (14) the desired relationship: Q 2 {(1 - B)2 + .45 (1 - B)} 2B2 2 B2 + 2RLQ _ k 1A 02 (P _ P ) = 0 p p 1 (15) 5 from which the flow rate, Q, may be determined. 10 20 30 40 50 60 70 80 90 100 Per Cent Decrease in Area Figure 3 - A plot of the computer results of the effect of increasing arterial stenosis upon flow and pressure. Only one curve is shown since the flow and pressure curves are identical Results and discussion Figure 3 presents the solutions to equations (15) and (17) as plots of the distal flow, as a percentage of the normal-unobstructed-flow, and the distal pressure difference, P4 - P5, as a percentage of the normal pressure difference, against increasing stenosis in the artery. Figure 4 is a cross-plot of the percentage of unobstructed distal flow against the percentage of unobstructed distal pressure differential, with stenosis as an implicit parameter. Note from Figure 3 the point of critical stenosis at 75 per cent (i.e., where flow and pressure drop precipitously), and from Figure 4 the expected linearity of the pressure-flow relationship, independent of stenosis, as predicted by equation (15). Figure 5, a plot of flow and pressure against steno- 276 Spring Joint Computer Conf., 1967 100 Q) 20 of the aorta this value is 92 per cent. The renal artery plot is shown between these two extremes. The value for this artery is 82 per cent. The lower value for the coronary artery is due, in part, to a lower, driving pressure head (diastoiic pressure) and occurs at a later time in the cardiac dynamic cycle. The parameters chosen for the mathematical model, (e.g., L, Ao, etc.), are not the same, however, as those implied in Figure 5. The two curves are quite similar, supporting the mathematical model postulated here. Neverthe'less, discrepancies ,between the present results and actual physical responses may be expected in regions of very large stenosis (almost 100 per cent obstruction), since then the assumption of negligible ~ 10 phase::-Iag (i.e., 90 8°1 70 ro E 60 0 50 I L- z ~ 0 40 .j..J c Q) u L- a.. 30 ~~ = 0) is likely to be in error. Indeed, i..L o 10 20 30 40 50 60 70 80 90 100 Per Cent Pressure Drop 1\_ -- - - -. . . Figure 4 - Plot of pressure drop and flow in an increasingly stenotic artery \~ \ \ \ \ \ Qout \~ ; : 70 E '- 60 Coronary Art.: ry \ o Z '0 ~ \ , . Aorta \ \ \ \ \ ~ 40 u::: Renal Artery \ ~ '\: \ 20 \. \! r ~ro___20~I l:L__ = Qin to break down. Subsequent work will show how the effect of elasticity at large stenosis may be determined. This ·'will lead to a method for determining arterial elastance 'under actual flow conditions by simple measurements of flow and pressure. , ro the very reason for this error is that in such situations the elasticity of the arterial walls must be considered. The effect of elasticity will cause the continuity relation: ~~1--~k---~~'--~~L-~fu--~M~'--~4~~~ ___ % Decrease in Area Figure 5 - Plot of actual in vivo measurements of the effect of increasing arterial stenosis upon blood flow. The point of critical decrease in cross-sectional area in the descending thoracic aorta is 92 per cent; in the renal artery, 82 per cent; in the anterior descending branch of the left coronary artery, 45 per cent sis, is derived from actual in vivo experimental measurements. These curves are presented to illustrate that there are different values of critical stenosis for different arteries. The lowest extreme value is the anterior descending branch of the left coronary artery where flow and pressure begin to fall off precipitously at 45 per cent decrease in crosssectional area. For the descending thoracic portion SUMMARY It had been a previous, widespread assumption that when an artery is subjected to a gradual, progressive, stenosis there was an immediate, gradual, progressive, fall in arterial blood pressure and flow, i.e., the relationship was linear. Experimental work over the past seven years has shown that this is not so; the relationship is not linear. Experimental observations in the human and on the dog have shown that when an artery is subjected to a decreasing cross-sectional area, as produced by a stenosis, the flow throJIgh that artery remains unchanged until a severe decrease in cross-sectional area is attained. Prior to this point there is no change in blood flow, i.e., it remains normal. When this point of critical stenosis is reached, there is a sudden, marked, and precipitous drop in blood flow through the artery. ' Application of the principles of conservation of energy and momentum to the system under consideration have led to a mathematical system which accurately describes the phenomen~m. A computer program has been written which ~escrib~s this system. The print-out of the computer results is presented in Table 1. It is further expected that this mathematical system will enable one to determine experimentally the A Computer Analysis Of Pressure And F!ow ! n A Stenotic Artery* puur !)r~NOSI~ • ~H;) lI10.c fll0' o • !:\v; \1 ~I E ~11 ~.lvhj0E j{)2 ,~ , 15100 C 02 • ~{"'Z0r.; 0£ l1,~50:IJt k12 (1,JL11{)~c: k12 ~.21Jl759'r: 03 ~ ~ • ? I :5288 <; E vj • ? 12 f).~ 1 ~1 t: vj.2/11316C ~ ~~ ~, ~, 21~'~174f: ~.26Ud6Y6t: 0S 0S 0.9b5£7~YI:: 0,97~7411:: 0~ 0.7J0838VE 03 It.l? v!t7/~l72It1E 03 ~,?b6627Ht: 0 ..~ 0~7/~16821~ ~3 v). 7/t1~?9.5E k:13 ~ , 3 ~ whit: ir32 0. ~H~0VlI:: 02 QPt:~CT QUUJ 0.2/4:'6~~E: ~~ 1I1.?/4~463l: ~) ~i ~t?'J41232t: ~.s 0~ ~3 0.1.00f.t0iO~t: 03 Vl.Y<}92213C: ..,2 ~', CJYH4\1l')Lic 02 0. 997144~'E v12 9 9 ~ .5 7 L1 :s I:: 02 0.992Y"l41t: 1112 0.9b909ti2t:: I-j? 'j . 4:>~H1c k:l2 "'.~Vl0~E [12 0,263~613E (13 1£l,9711w9SI:: 02 o • 9? 9 Y4 ~ ~~ t: vJ2 ~.~?1t0E /(j? VJ. 2'j9~3731:: ~S Vi.944!)~!;)8t: ~t6V:t01: ~ • 6~ila;1lt: 02 0.2~34776t: ~3 ~, 7~~0~!'t: ~2 ~2 0./~0~E: 02 2 4 ? 2 9 4 ~: f; . ~ ;5 e,2J3d121t: k13 r.2176922t: ~~~ k:l2 0.Y2321.57t: 02 o • b <; 3 4 ~J I b f; ~? 0.fi~15Hblt: 02 o ,7 <" 2 8 7 b .SE: 0? ~tlY518t3~t: kij 0,71091.581: ~2 o t 1642"'781:: ~3 0.~yo07~YI:: ~tj2?'~3571:: Il?~ e.446~9b3t: 02 02 0.6~222Y?t: "'~ rc ro t: ~2 0. v1 V:1!100IcH1t: 1i:1~ J. "'. tJv;v.1l't: k:,i £I '" , tj ~ i~ 0 t: 02 It:') • c; t~ Ir:1IfJt: i'2 1O,9"v..H1t: 162 '" , 1 '.L~hjt: ~3 ~j • 0. (1!lt1V'00iiHH: '" If' t 2A'8.~81 '1. 7/100~E PPI:~CT ~3 Vi. 7/~)~91jE ~3 , 7 I ~ 9 8 £ 4 E o~~ 0,7/k1968?E ~3 ~) ~', 7/0<}4 9~IE 03 o .1~0kH~0·0t: 03 0,9~921t!0t: ~2 o , 9 Y8 4 ~~ 1 9 t: "'~ 13,9971368(: 102 H,995361':St: ~2 iI.l,7/fc1<}226E 03 ~,9CJ29642t: ~~ ~,7/0fj866E L1 ,.98909061:: !(I,9iJ52737E 0,97927ic?2t: 0.9711k126t: eJ.9:>99.3(j7c 0. 944~'407t: o f 9232~~b6t: 0~ t1S o , 7 I ~, J 9 ~ ~~ E 03 0.710155~E 03 ~,769t3274E: ~3 vl .769J67 4 E 03 ~), 76M7216E "'3 "',7618199E k13 ~.766~787E 03 '1 • 7 0 4 <} '" 9 2 E 03 0. 7b27~~3.st: 0S o , 7o;? ~ "HcH:1 E ~3 ir.12 k:)t! 02 1112 1112 02 02 0.8?1~d46t: 02 0.792~688E 0£ "',71'19"'41t: k12 0,8Y339~21:: "'.~Y8fl}6681: 02 0,4462BYlt: 02 0.24847971:: 02 "', 01{J0lt1V-1~t!l: 00 Table ] - Tabulation of computer results of the mathematical model simulating the effect of stenosis upon blood flow and pressure through an artery. Note that with increasing stenosis there is practically no change in flow or pressure until the arterial cross-sectional area is reduced 75 per cent elastic properties of arterial walls under actual flow conditions by measurement of just flow and pressure. CONCLUSIONS Numerous determinations of arterial flow and pressure have been made in the human and in the dog in normal arteries and in arteries that have been subjected to stenosis, either by arteriosclerosis or by physical stenosis produced by a circumferential ligature about an artery. Data collected from this source have shown that. when a stenosis is imposed upon an artery, there is initially no change in pressure or flow within that artery, proximal to the stenosis, until a certain critical point is reached where arterial flow and pressure simultaneously fall precipitously. This point of critical arterial stenosis is different for different arteries. Drawing upon a large experimental background, a mathematical model has been developed to define the effect of a gradual and progressive arterial stenosis upon arterial flow and pressure. Having once defined the mathematical model, the computer model was developed. The computer results were shown to be identical with the actual measurements made on the human and on the dog. A recheck of the computer model results was then done on the dog in several arteries, and the results in the in vivo preparatiQn corroborated the computer results. A mathematical and computer model have been developed as an approach to the study of the effect upon arterial pressure and flow when that artery is subjected to a progressive stenosis. REFERENCES 2 3 4 5 6 F C MANN J F HERRICK HE ESSEX E J BALDES The effect on the blood flow of decreasing the lumen of a blood vessel Surgery 4:249-252 ] 938 T C GUPTA C J WIGGERS Basic hemodynamic changes produced by aortic coarctation of different degrees Circulation 3:] 7-3] ] 951 A G MAY J A DE WEESE C G ROB Hemodynamic effects of arterial stenosis Surgery 53:513-524 ] 963 A G MAY L VAN DE BERG J A DE WEESE CG ROB Critical arterial stenosis Surgery 54:250-259 1963 R B BIRD WE STEWART EN LIGHTFOOT Transport Phenomena John Wiley & Sons Chapter 8 New York ] 960 R B BIRD WE STEWART EN LIGHTFOOT Transport Phenomena John Wiley & Sons Chapter 8 New York ]960 Chairman's Introduction to the SJCC Session Security and prIvacy In computer systems by WILLIS H. WARE The RAND Corporation Santa Monica, California INTRODUCTION pionage attempts against resource-sharing systems. Rather, it is assumed that the problem exists, at least in principle if not in fact, and our papers will be devoted to discussing technological aspects of the problem and possible approaches to safeguards. First of all, clarification of terminology is in order. For the military or defense situation, the jargon is well established. We speak of "classified information," "military security," and "secure computer installations." There are rules and regulations governing the use and divulgence of military-classified information, and we need not dwell further on the issue. In the nonmilitary area, terminology is not established. The phrase "industrial security" includes such things as protecting proprietary designs and business information; but it also covers the physical protection of plants and facilities. For our purposes, the term is too broad. In most circles, the problem which will concern us is being called the "privacy problem." The words "private" and "privacy" are normally associated with an individual in a personal sense, but Webster's Third New International Dictionary also provides the following definitions: Private: ... intended for or restricted to the use of a particular person, or group, or class of persons; not freely available to the public Privacy:. .. isolation, seclusion, or freedom from unauthorized oversight or observation. We are talking about restricting information within a computer for the use of a specified group of persons; we do not want the information freely available to the public. W~ want to isolate the information from unauthorized observation. Hence, the terminology appears appropriate enough, although one might hope that new terms will be found that do not already have strongly established connotations. For our purposes today, "security" and "classified" I nformation leakage in a resource-sharing computer system With the advent of computer systems which share the resources of the configuration among several users or several problems, there is the risk that information from one user (or computer program) will be coupled to another user (or program). In many cases, the information in question will bear a military classification or be sensitive for some reason, and safeguards must be provided to guard against the leakage of information. This session is concerned with accidents or deliberate attempts which divulge computer-resident information to unauthorized parties. Espionage attempts to obtain military or defense information regularly appear in the news. Computer systems are now widely used in military and defense installations, and deliberate attempts to penetrate such computer systems must be anticipated. There can be no doubt that safeguards must be conceived which will protect the information in such computer systems. There is a corresponding situation in the industrial world. Much business information is company-confidential because it relates to proprietary processes or technology, or to the success, failure, or state-of-health of the company. One can imagine a circumstance in which it would be profitable for one company to mount an industrial espionage attack against the computer system of a competitor. Similarly, one can imagine scenarios in which confidential information on individuals which is kept within a computer is potentially profitable to a party not authorized to have the information. Hence, we can expect that penetrations will be attempted against computer systems which contain non-military information. This session will not debate the existence of es- 279 280 Spring Joint Computer Conf., 1967 RADIATION RADIATION RAD.IATION TAPS CROSSTALK CROSSTALK COMMUNICATION LI NES 1\W w/\ ~ ,., ,HAR~WARE ' •",,"'" • ~ 7, Copying Unauthorized access proper Ime / HARDWARE Failure 01 protection circuits Bounds registers Memory readlwrite protects Priveleged mode Etc. Contribute to soltware failures one having "ins" Reveal protective measures Provide private "ins" to system Reveal protective measures MAINTENANCE MAN ~ Failure 01 protection features Access control User iOentification Bounds control Etc. I fI, ( IA\ V~ SWITCHING CENTER PROCESSOR Theft f I RADI~TlON Disable hardware protective devices Use stand-alone utility programs to access files or to explore the system ~Q ____________REMOTE / ACCESS CONSOLES Attac""'iiiiieiiiOi recorders (~Iaten impressions, ink USE R ribbon, etc.1 -Bug planted by individual 01 Identification low authorization level Authentication Subtle modifications to soltware system Figure I - Typical configuration of resource-sharing computer system will refer to military or defense information or situations; "private" or "privacy," to the corresponding industrial, or non-military governmental situations. In each case, the individual authorized to receive the information will have "need to know" or "access authorization. " We will do the following in this session. In order to bring all of us to a common level of perspective on resource-sharing computer systems, I will briefly review the configuration of such systems and identify the major vulnerabilities to penetration and to leakage of information. The following paper by Mr. Peters will describe the security safeguards provided for a multi-programmed remote-access computer system. Then I will contrast the security and privacy situations, identifying similarities and differences. The final paper by Dr. Petersen and Dr. Turn will discuss technical aspects of security and privacy safeguards. Finally, we have 'a panel of three individuals who have faced the privacy problem in real-life systerns; each will describe his views toward the problem, and his approach to a solution. In the end, it will fall upon each of you to conceive and implement satisfactory safeguards for the situation which concerns you. A priori, we cannot be certain how dangerous a given vulnerability might be. Things which are serious for some computer systems may be only a nuisance for others. Let us take the point of view that we will not prejudge the risk associated with a given vulnerability or threat to privacy. Rather, let us try only to suggest some of the ways in which a computer system might divulge information to an unauthorized party in either the security or the privacy situation. We'll leave for discussion in the context of particular installations the question of how much protection we want to provide, what explicit safeguards must be provided, and how serious any particular vulnerability might be. The hardware configuration of a typical resourcesharing computer system is shown in Figure 1. There is a central processor to which are attached computer-based files and a communication network for linking to remote users via a switching center. We observe first of all that the files may contain information of different levels of sensitivity or military classification; therefore, access to these files by users must be controlled. Improper or unauthorized access to a file can divulge information to the wrong person. Certainly, the file can also be stolen - a rather drastic divulgence of information. On the other hand, an unauthorized copy of a file might be made using the computer itself, and the copy revealed to unauthorized persons. Security And Privacy In Computer Systems The central processor has both hardware and software components. So far as hardware is concerned, the circuits for such protections as bound registers, memory read-write protect, or privileged mode might fail and permit information to leak to improper destinations. A large variety of hardware failures might contribute to software failures which, in turn, lead to divulgence. Since the processor consists of high-speed electronic circuits, it can be expected that large quantities of electromagnetic energy will radiate; conceivably an eavesdropping third party might acquire sensitive information. Failure of the software may disable such protection features as access control, user identification, or memory bounds control, leading to improper routing of information. Intimately involved with the central computer are three types of personnel: operators, programmers, and maintenance engineers. The operator who is responsible for minute-by-minute functioning of the system might reveal information by doing such things as replacing the correct monitor with a non-protecting one of his own, or perhaps with a rigged monitor which has special "ins" for unauthorized parties. Also, he might reveal to unauthorized parties some of the protective measures which are designed into the system. A co-operative effort between a clever programmer and an engineer could "bug" a machine for their own gain in such a sophisticated manner that it might remain unnoticed for an extended period. ("Bug" as just used does not refer to an error in a program, but to some computer equivalent of the famous transmitter in a martini olive.) Bugging of a machine could very easily appear innocent and open. Operator-less machine systems are practical, and in principle one might conjecture that a machine could be bugged by an apparently casual passerby. There are subtle risks associated with the maintenance process. While attempting to diagnose a system failure, information could easily be generated which would reveal to the maintenance man how the software protections are coded. From that point, it might be easy to rewire the machine so that certain instructions appeared to behave normally, whereas in fact, the protective mechanisms could be bypassed. While some of the things that I've just proposed require deliberate acts, others could happen by accident. Thus, so far as the computing central itself is concerned, we have potential vulnerabilities in control of access to files; in radiation from the hardware; in hardware, software, or combined hardware-software failures; and in deliberate acts of penetration or accidental mistakes by the system personnel. 281 The communication links from the central processor to the switching center, and from the switching center to the remote consoles are similarly vulnerable. Any of the usual wiretapping methods might be employed to steal information from the lines. Since some communications will involve relatively high-frequency signals, electromagnetic radiation might be intercepted by an eavesdropper. Also, crosstalk between communication links might possibly reveal information to unauthorized individuals. Furthermore, the switching central itself might have a radiation or crosstalk vulnerability; it might fail to make the right connection and so link the machine to an incorrect user. A remote console might also have a radiation vulnerability. Moreover, there is the possibility that recording devices of various kinds might be attached to the console to pirate information. Consideration might have to be given to destroying the ribbon in the printing mechanism, or designing the platen so that impressions could not be read from it. Finally, there is the user of the system. Since his link to the computer is via a switching center, the central processor must make certain with whom it is conversing. Thus, there must be means for properly identifying the user; and this means must be proof against recording devices, pirating, unauthorized use, etc. Even after a user has satisfactorily established his identity, there remains the problem of verifying his right to have access to certain files, and possibly to certain components of the configuration. There must be a means for authenticating the requests which he will make of the system, and this means must be proof against bugging, recorders, pirating, unauthorized usage, etc. Finally, there is the ingenious user who skillfully invades the software system sufficiently to ascertain its structure, and to make changes which are not apparent to the operators or to the systems programmers, but which give him "ins" to normally unavailable information. To summarize, there are human vulnerabilities throughout; individual acts can accidentally or deliberately jeopardize the protection of information in a system. Hardware vulnerabilities are shared among the computer, the communications system, and the consoles. There are software vulnerabilities; and vulnerabilities in the system's organization, e.g., access control, user identification and authentication. How serious anyone of these might be depends on the sensitivity of the information being handled, the class of users, the operating environment, and certainly on the skill with which the network has been designed. In the most restrictive case, the network might have to be protected against all the types of 282 Spring Joint Computer Conf., 1967 invasions which have been suggested plus many readily conceivable. This discussion, although not an exhaustive consideration of all the ways in which a resource-sharing computer sysiem mighi be either accidentally or deliberately penetrated for the purposes of unauthor- ized acquisition of information, has attempted to outline some of the major vulnerabilities which exist in modern computing systems. Succeeding papers in this session will address themselves to a more detailed examination of these vulnerabilities and to a discussion of possibie soiutions. Security considerations in a multi-programmed computer system by BERNARD PETERS National Security Agency Fort Meade, Maryland tribute, the following principles must be followed: 1. The computer must operate under. a monitor approved by appropriate authority. This can provide the authority for the expenditures which security may require. The question of appropriate authority is one not easily answered. For the individual business concern it obviously is corporate management. F or contractors to the Armed Services it is a security officer of the service. Who can tell who is in charge in a University? INTRODUCTION Security can not be attained in the absolute sense. Every security system seeks to attain a probability of loss which is commensurate with the value returned by the operation being secured. For each activity .which exposes private, valuable, or classified information to possible loss, it is necessary that reasonable steps be taken to reduce the probability of loss. Further, any loss which might occur must be detected. There are several minimum requirements to establish an adequate security level for the software of a large multi-programmed system with remote terminals. The computer must operate under a monitor because the monitor acts as the overall guard to the system. It provides protection against the operators and the users at the remote terminals. The monitor has a set of rules by which it judges all requested actions. It obeys only those requests for action which conform to the security principles necessary for the particular operation. The management must be aware of the need for security safeguards. It must fully understand and be willing to support the cost of obtaining this security protection. I t must be technically competent to judge whether or· not a desired security level has been reached. It is important that the management understand that no software system can approach a zero risk of loss. It is necessary to reach an acceptable degree of risk. As any professional in the field of computers knows, whether or not managment is sufficiently aware of and willing to pay the cost of a given software feature is not easy to determine. The costs of security are not exorbitant provided security is needed. However, they are not trivial or negligible. It is very important that the management have an understanding of how the security is gained and what administrative steps must be taken to maintain and protect the security level which has been gained. This paper will not fully explore certain problems which affect security as, for example, physical security which is protection of a space against penetration, or communications security or personnel security. To obtain the security which software can con- The discussion of what makes up an appropriate monitor is rather involved. Therefore, a more complete discussion of the security aspects of a monitor will be given after a summary of the overall security principles. 2. The computer must have adequate memory protect and privileged instructions. These are needed to limit user programs which must be considered to be hostile. Memory protect must be sufficient so that any reference, read or write, outside of the area assigned to a given user program must be detected and stopped. There are several forms of memory protect on the market which guard against out-ofbounds write, thus protecting program integrity, but they do not guard against illegal read. Read protect is as important as write protect, from a security standpoint, if classified material is involved. The privileged instruction set must contain not only all Input/Output (I/O) commands but also every 283 284 Spring Joint Computer Conf., 1967 command which could change a memory bound or protection barrier. To have less would be to reduce the whole system to a mockery. There can be no exception to the restriction that only the monitor can operate these privileged instructions. 3. The computer must have appropriate physical security protection to prevent local override of the monitor. It includes the obvious requirement that the computer can not be mounted in a subway car, subject to public tampering. The computer must be in an appropriately secure environment and not subject to intrusion by random individuals. But this is not sufficient. Certain key switches, such as those which affect the continued running of the equipment and the maintenance panel, must have simple physical barriers to prevent undetected intrusion from occurring. The senior operator provides protection against local override, but he cannot be expected to watch every switch continuously. Simple key-locks provide protection to supplement his attention span. 4. Electrical separation of peripheral devices is not necessary, provided the monitor has been approved by an appropriate authority. This reduces the probability of failure by eliminating troublesome separation hardware. It has been proposed by people who are first inquiring into security, that the peripheral devices be separated from the computer. A properly designed monitor for a multi-programming system will provide sufficient logical separation of peripheral devices to make electrical separation unnecessary. If the monitor is insecure and beyond securing, the system should not be used with the expectation that security will be provided. 5. The computer may operate in a multi-programmed or a multi-processor mode provided the monitor has been approved for use under such modes. In fact, to provide proper security it seems that the computer must be designed for the multi-programmed mode. In the rare case, when only one program is running, it is multi-programming with a single program. Multi-processors, for the purposes of this paper, are assumed to be a variant of multi-programming. It is obvious that this isn't true; however, it is felt that simple, logical extensions will carry the mUlti-programming philosophy into the multiprocessor mode and still provide adequate protection. 6. Operating personnel must be cleared to appropriate levels. Trustworthy personnel must be available to enforce the rules against intrusion at the computer. This does not mean that every operator ill the installation need be cleared, but it does mean that on every shift there must be at least one individual who is fully aware of the requirements of the operating doctrine which is needed to protect the secure data. He must completely understand what it takes to utilize the system appropriately and securely in any circumstance. All other operators must understand that there exists a protection philosophy. They must be subject to some form of discipline, such as termination or suspension for failure to obey regulations. On the other hand, the operating doctrine must be made clear and precise so that it can be obeyed. Specification of the operating doctrine is a nontrivial problem and can be very difficult depending upon the complexity of the tasks assigned to the operator. In the interest of keeping the operating doctrine under control it is proposed that the operator be designed out of the operation as much as possible. 7. A log of all significant events should be maintained both by the computer and the operating personnel. The form and contents of these logs should be apprQved by appropriate authority. The log is the ultimate defense against penetration. The question of whether or not some data have gone astray must be answered by the log. The log ascertains who does what, and to what extent he has attempted to do something illegal. It also records the utilization of files. It indicates whether or not some security restriction is significantly interferring with the production of the system. The log will provide the review and feed-back which will make it possible to relax security where it is overly stringent and it will provide the factual basis for increasing security where it has failed to' prove a sufficient level of confidence. 8. Every user should be subject to common discipline and authority. He shall know and understand the conventions which are required of him to support the security system; it is particularly import"ant that everyone who has access to the more highly classified levels of material fully understand his part in the protection of the data and the system. The remote terminals must also be electrically identithe station by its permanent connection to a specific set of hubs in the machine. Station identification can not be dependent upon the action of the user unless this "action has been carefully considered for its security connotation. 9. It is possible that design considerations for the system require that an individual remote terminal change its particular security level upward at one time or another. It is necessary that this change be accomplished in a secure fashion. An acceptable method would be to issue the user of such a remote terminai a one-time list of five ietter groups. The Security Considerations In A Muiti-Programmed Computer System user would be required to use each group, in turn, once and only once. This would make observing of the particular procedure for raising the station security level valueless to an observer. It has the further effect that should an observer obtain and use the next available five letter group, such use would cause a conflict with the legitimate user's call. Thus there would be detection of illegal use. Let us now return to a discussion of the attributes of an acceptable monitor. The monitor is the key defense, ihe key securiiy eiement in the system. It must be properly designed. The cost of a properly designed monitor is probably not more than 10% greater than that of a monitor which is minimally acceptable for mUlti-programming. Monitors for mUlti-programming need a high degree of program and file integrity to be effective. Improvement of such a monitor to the point where it is acceptable for handling material in a secure fashion, is an achievable goal. The monitor must perform all input/output (I/O) without exception. No user program can be permitted to utilize any I/O device, except via a call to the monitor. It is very important that the monitor control all I/O which could provide large amounts of information to a penetrating program. The monitor must manage the system clocks and the main console. If the maintenance panel is beyond management by the monitor, it must be secured. The monitor must be carefully designed to limit the amount of critical coding. When an interrupt occurs, control is transferred to the monitor and the core is unprotected. The monitor must, as soon as reasonable, adjust the memory bounds to provide limits on even the monitor's own coding. This requires that the coding which receives interrupts be certified as error free for all possible inputs and timing. The greater portion of the coding of the monitor need not be certified error free to the same degree because it is operated under the same restraints as a user program. By keeping the amount of coding that can reference any part of core without restriction to a few well-tested units, confidence in the monitor can be established. The monitor must be adequately tested. I t is certainly necessary to adequately demonstrate the security capability to the governing authority. In addition to passing its initial acceptance the monitor must also test itself continuously. For instance, the memory bounds protection can be expected to fail with some probability. Every user program which conforms with the security safeguards will be expected to run without violating the memory bounds protection and therefore will not test such a feature. It is necessary, therefore, that some special program, 285 or some part of the monitor deliberately and periodically violate the memorYbouiidsproieCtlOn-io~v~rlff. that'the bounds protection checker is, in fact, working.:,. I t is extremely important that tests for all significant safeguards built into a monitor be periodically and deliberately verified. The confidence which management has in the security safeguards will, in part, rest on the evidence furnished by such self-tests. The monitor must keep the user programs bounded by memory protect while they are operating. The individual user program must be free to reference its assigned area of core, but nowhere else. All I/O action, and any out-of-area reference by user programs, must be via calls to the monitor. This will protect information concerning the security levels and authorized users, files, and outputs from access by the operating elements of the monitor, such as loaders and terminators to be treated as though they were individual user programs, thus reducing the amount of coding that is outside the safeguards. Authority to reference random access peripherals must be established by the monitor and all references must be checked for validity and authority. It is a small cost in a random access I/O routine to determine if a supplied address is legal and within bounds. What is the monitor to do if there is a violation? If there is a violation of the memory bounds or the use of a privileged instruction by a user program, the monitor must immediately suspend the offending program and must make log entries. !t"must also prohibit the further use of the offending program by..!.~~., user submitting ,t~e violating progr(l.m ~_I]_~~~ ~,p~~,~~icallyauthorizedby'~supervisor. -~~ ~" ,. The"~uspensfon 'o{'vloiating program requests must be thorou~~.E2.!!!£!~te. Ir~rfie·-taSknasl)een divided into multiple concurrent operating activities, all such activities must be terminated. If the task has resulted in a chain of requests, all such requests must be removed from the queue. Violation of security rules by any activity must result in a complete abort_, of all parts of that request. This is necessary to prevent a use{program from makmg ~~!tipre-'~Ies agaJ"~_st ._, -the secunty sysfem.' Se~ity"rldes cannot be suspended for debugging or program testing. It is clear that §~_~!lr!ty rul~s cannot, be suspended for debugging programs because the new program-is the one'''most lik~lytoviorate-s~cur"ty ~ "~ The debugging system"-mil"st" TIve-~w1ih-the"'seciI;fiY-' ~. restrictions although some concessions can be made for debugging. For example, one can flag a program that is in a debugging state. Then if a bounds violation occurs, the system could merely log it and send a dump of the program to the user rather than sounding a major alarm. 286 Spring Joint Computer Conf., 1967 Tests of security flags must be fail safe. If a flag, when it referenced, is inconsistent or ambiguous it must fail to qualify. Thus security flags must be adequate. As an example, onecolll~ .1l~_:._~~~~gl~~1ilt~but then an err,or cou!.~ c~.<:tl!g~ihls brt indicate adifferent but still valid combination; CLASSIFIED could to~ ~~sIly"-'~~come UNCLASsIFIED. Therefore, single bits are Jt()t C:l~c,~p!@J~_ anJi the question then becomes "How~-man)7 bits'...·shouid one utilize?" The specific configuration of bits is dependent upon the goals ~and requirements of the particular security system and the machine or bit handling capability of the individual machine. The author has used a 60 bit flag in a machine which has 30 bit words to with half word capability. This led to four 15 bit configurations which were complementary to give verification. Forty bits would have been sufficient for the particular application, so the next higher multiple of word size was chosen. Software security is derived by the proper application of a few sound principles which must be consistently applied in many small actions. With a proper understanding and careful review, software security can be maintained so long as physical and personnel security are assumed. The principles set forth in this paper have been generalized from the specific development of a specific system which dealt with multi-levels of classified information. Security and privacy: similarities and differences by WILLIS H. WARE The RAND Corporation Santa Monica, California F or the purposes of this paper we will use the term "security" when speaking about computer systems which handle classified defense information, and "privacy" in regard to those computer systems which handle non-defense information which nonetheless must be protected because it is in some respect sensitive. It should be noted at the outset that the context in which security must be considered is quite different from that which can be applied to the privacy question. With respect to classified military information there are federal regulations which establish authority, and discipline to govern the conduct of people who work with such information. Moreover, there is an established set of categories into which information is classified. Once information is classified Confidential, Secret, or Top Secret, there are well-defined requirements for its protection, for controlling access to it, and for transmitting it from place to place. In the privacy situation, analogous/conditions may exist only in part or not at all. There are indeed Federal and State statutes which protect the so-called "secrecy of communication." But it remains to be established that these laws can be extended to cover or interpreted as applicable to the unauthorized acquisition of information from computer equipment. There are also laws against thievery; and at least one case involving a programmer and theft of privileged information has been tried. The telephone companies have formulated regulations governing the conduct of employees (who are subject to "secrecy of communicatioll" laws) who may intrude on the privacy of individuals; perhaps this experience can be drawn upon by the computer field. Though there apparently exist fragments of law and some precedents bearing on the protection of information, nonetheless the privacy situation is not so neatly circumscribed and tidy as the security situation. Privacy simply is not so tightly controlled. Within computer networks serving many companies, organi- zations, or agencies, there may be no uniform governing authority; an incomplete legal framework; no established discipline, or perhaps not even a code of ethics among users. At present there is not even a commonly accepted set of categories to describe levels of sensitivity for private information. Great quantities of private information are being accumulated in computer files; and the incentives to penetrate the safeguards to privacy are bound to increase. Existing laws may prove inadequate, or may need more vigorous enforcement. There may be need for a monitoring and enforcement establishment analogous to that in the security situation. In any event, it can not be taken for granted that there now exist adequate legal and ethical umbrellas for the protection of private information. The privacy problem is really a spectrum of problems. At one end, it may be necessary to provide only a very low level of protection to the information for only a very short time; at the opposite end, it may be necessary to invoke the most sophisticated techniques to guarantee protection of information for extended periods of time. Federal regulations state explicitly what aspect of national defense will be compromised by unauthorized divulgence of each category of classified information. There is no corresponding particularization of the privacy situation; the potential damage from revealing private information is nowhere described in such absolute terms. I t may be that a small volume of information leaked from a private file may involve inconsequential risk. For example, the individual names of a company's employees is probably not even sensitive, whereas the complete file of employees could well be restricted. Certainly the "big brother" spectre raised by recent Congressional hearings on "invasion of privacy" via massive computer files is strongly related to the volume of information at risk. 287 288 Spring Joint Computer Conf., 1967 Because of the diverse spread in the privacy situation, the appearance of the problem may be quite different from its reality. One would argue on principle that maximum protection should be given to all information labeled private; but if privacy of information is not protected by law and authority, we can expect that the owner of sensitive information will require a system designed to guarantee protection only against the threat as he sees it. Thus, while we might imagine very sophisticated attacks against private files, the reality of the situation may be that much simpler levels of protection will be accepted by the owners of the information. In the end, an engineering trade-off question must be assessed. The value of private information to an outsider will determine the resources he is willing to expend to acquire it. In turn, the value of the information to its owner is related to what he is willing to pay to protect it. Perhaps this game-like situation can be played out to arrive at a rational basis for establishing the level of protection. Perhaps a company or governmental agency - or a group of companies or agencies, or the operating agent of a multi-access computer service - will have to establish its own set of regulations for handling private information. Further, a company or agency may have to establish penalties for infractions of these regulations, and perhaps even provide extra remuneration for those assuming the extraordinary responsibility of protecting private information. The security measures deemed necessary for a multi-processing remote terminal computer system operating in a military classified environment have been discussed in the volume. * This paper will compare the security situation with the privacy situation, and suggest issues to be considered when designing a computer system for guarding private information. Technology which can be applied against the design problem is described elsewhere. t First of all, note that the privacy problem is to some extent present whenever and wherever sharing of the structures of a computer system takes place. A time-sharing system slices time in such a way that each user gets a small amount of attention on some periodic basis. More than one user program is resident in the central storage at one time; and hence, there are obvious opportunities for leakage of information from one program to another, although the problem is alleviated to some extent in systems operating in an interpretive software mode. In a multi-programmed "'Peters, B., "Security Considerations in a Multi-Programmed Sysiem". tPetersen, H. E., and R. Turn, Systems Implications of Privacy." computer system it is also true that more than one user program is normally resident in the core store at a time. Usually, a given program is not executed without interruption; it must share the central storage and perhaps other levels of storage with other programs. Even in the traditional batch-operated system there can be a privacy problem. Although only one program is usually resident in storage at a time, parts of other programs reside on magnetic tape or discs; in principle, the currently executing program might accidentally reference others, or cause parts of previous programs contained on partially re-used magnetic tape to be outputed. Thus, unless a computer system is completely stripped of other programs - and this means clearing or removing access to all levels of storageprivacy infractions are possible and might permit divulgence of information from one program to another. Let us now reconsider the points raised in the Peters* paper and extend the discussion to include the privacy situation. (1) The problem of controlling user access to the resource-sharing computer system is similar in both the security and privacy situations. It has been suggested that one-time passwords are necessary to satisfactorily identify and authenticate the user in the security situation. In some university time-sharing systems, permanently assigned passwords are considered acceptable for user identification. Even though printing of a password at the console can be suppressed, it is easy to ascertain such a password by covert means; hence, repeatedly used passwords may prove unwise for the privacy situation. (2) The incentive to penetrate the system is present in both the security and privacy circumstances. Revelation of military information can degrade the country's defense capabilities. Likewise, divulgence of sensitive information can to some extent damage other parties or organizations. Private information will always have some value to an outside party, and it must be expected that penetrations will be attempted against computer systems handling such information. It is conceivable that the legal liability for unauthorized leaking of sensitive information may become as severe as for divulging classified material. (3) The computer hardware requirements appear to be the same for the privacy and security situations. Such features as memory read-write protection, bounds registers, privileged instructions, and a privileged mode of operation are required to protect *Peters, B., loe cit. Security And Privacy: Similarities And Differences information, be it classified or sensitive. Also, overall software requirements seem similar, although certain details may differ in the privacy situation because of communication matters or difference in user discipline. (4) The file access and protection problem is similar under both circumstances. Not all users of a shared computer-private system will be authorized access to all files in the system, just as not all users of a secure computer system will be authorized access to all files. Hence, there must be some combination of hardware and software features which controls access to the on-line classified files in conformance with security levels and need-to-know restrictions and in conformance with corresponding attributes in the privacy situation. As mentioned earlier, there may be a minor difference relative to volume. In classified files, denial of access must be absolute, whereas in private files access to a small quantity of sensitive information might be an acceptable risk. (5)"The philosophy of the overall system organization will probably have to be different in the privacy situation. In the classified defense environment, users are indoctrinated in security measures and their personal responsibility can be considered as part of the system design. Just as the individual who finds a classified document in a hallway is expected to return it, so the man who accidentally receives classified information at his console is expected to report it. The users in a classified system are subject to the regulations, authority, and discipline of a governmental agency. Similar restrictions may not prevail in a commercial or industrial resource-sharing computer network, nor in government agencies that do not operate within the framework of government classification. I n general, it would appear that one cannot exploit the good wiIJ of users as part of a privacy system's design. On the other hand, the co-operation of users may be part of the design philosophy if it proves possible to impose a uniform code of ethics, authority, and discipline within a multi-access system. Uniform rules of behavior might be possible if all users are members of the same organization, but quite difficult or impossible if the users are from many companies or agencies. (6) The certifying authority is certainly different in the two situations. I t is easy to demonstrate that the total number of internal states of a computer is so enormous that some of them will never prevail in the lifetime of the machine. It is equally easy to demonstrate that large computer programs have a huge number of internal paths, which implies the potential existence of error conditions which may appear rarely or even only once. Monitor programs 289 governing the internal scheduling and operation of mUlti-programmed, time-sharing or batch-operated machines are likely to be extensive and complex; and if security or privacy is to be guaranteed, some authority must certify that the monitor is properly programmed and checked out. Similarly, the hardware must also be certified to possess appropriate protective devices. In a security situation, a security officer is responsible for establishing and implementing measures for the control of classified information. Granted that he may have to take the word of computer experts or become a computer expert himself, and granted that of itself his presence does not solve the computer security problem, there is nonetheless at least an assigned, identifiable responsible authority. In the case of the commercial or industrial system, who is the authority? Must the businessman take the word of the computer manufacturer who supplied the software? If so, how does he assure himself that the manufacturer hasn't provided "ins" to the system that only he, the manufacturer, knows about? Must the businessman create his own analog of defense security practices? (7) Privacy and security situations are certainly similar in that deliberate penetrations must be anticipated, if not expected; but industrial espionage against computers may be less serious. On the other hand, industrial penetrations against computers could be very profitable and perhaps safer from a legal viewpoint. It would probably be difficult for a potential pene- trator to mount the magnitude of effort against an industrial resource-sharing computer system that foreign agents are presumed to mount against secrecy systems of other governments. To protect against large-scale efforts, an industry-established agency could keep track of major computing installations and know where penetration efforts requiring heavy computer support might originate. On the other hand, the resourceful and insightful individual can be as gn~~t a threat to the privacy of a system. If one can estimate the nature and extent of the penetration effort expected against an industrial system, perhaps it can be used as a design parameter to establish the level of protection for sensitive information. (8) The security and privacy situations are certainly similar in that each demands secure communication circuits. For the most part, methods for assuring the security of communication channels have been the exclusive domain of the military and government. What about the non-government user? Could the specifications levied on common carriers in their 290 Spring Joint Computer Conf., 1967 implied warranty of a private circuit be extended? Does the problem become one for the common carriers? Must they develop communication security equipment? If the problem is left to the users, does each do as he pleases? Might it be feasible to use the central computer itself to encode information prior to transmission? If so, the console will require special equipment for decoding the messages. (9) Levels of protection for communications are possibly different in the two situations. If one believes that a massive effort at penetration could not be mounted against a commercial private network, a relatively low-quality protection for communication would be sufficient. On the other hand, computer networks will inevitably go international. Then what? A foreign industry might find it advantageous to tap the traffic of U.S. companies operating an international and presumably private computer network. Might it be that for reasons of national interest we will someday find the professional cryptoanalytic effort of a foreign government focused on the privacyprotecting measures of a computer network? If control of international trade were to become an important instrument of government policy, then any international communications network involved with industrial or commercial computer-private systems will need the best protection that can be provided. This paper has attempted to identify and briefly discuss the differences and similarities between computer systems operating with classified military information and computer systems handling private or sensitive information. Similar hardware and software and systems precautions must be taken. In most respects, the differences between the two situations are only of degree. However, there are a few aspects in which the two situations genuinely differ in kind, and on these points designers of a system must take special note. The essential differences between the two situations appear to be the following: ( 1) Legal foundations for protecting classified information are well established, whereas in the privacy situation a uniform authority over users and a penalty structure for infractions are lacking. We may not be able to count on the good will and disciplined behavior of users as part of the protective measures. (2) While penetrations can be expected against both classified and sensitive information, the worth of the material at risk in the two situations can be quite different, not only to the owner of the data but also to other parties and to society. (3) The magnitude of the resources available for protection and for penetration are markedly smaller in the privacy situation. (4) While secure communications are required in both situations, there are significant differences in details. In the defense environment, protected communications are the responsibility of a government agency, appropriate equipment is available, and the importance of protection over-rides economic considerations. In the privacy circumstance, secure satisfactory communication equipment is generally not available, and the economics of protecting communications is likely to be more carefully assessed. (5) Some software detaiis have to be handled differently in the privacy situation to accommodate differences in the security of communications. It must be remembered that since the Federal authority and regulations for handling classified military information do not function for private or sensitive information, it does not automatically follow that a computer network designed to safely protect classified information will equally well protect sensitive information. The all important difference is that the users of a computer-private network may not be subject to a common authority and discipline. But even if they are, the strength of the authority may not be adequate to deter deliberate attempts at penetration. System implications of information privacy by H. 'E. PETERSEN and R. TURN The RA N D Corporation Santa Monica, California classified as either passive or active. Passive infiltration may be accomplished by wiretapping or by electromagnetic pickup of the traffic at any point in the system. Although considerable effort has been applied to counter such threats to defense communications, nongovernmental approaches to information privacy usually assume that communication lines are secure, when in fact they are the most vulnerable part of the system. Techniques for penetrating communication networks may be borrowed from the well-developed art of listening in on voice conversations. 5 ,6 (While the minimum investment is equipment is higher than that required to obtain a pair of headsets and a capacitor, it is still very low, since a one-hundred-dollar tape recorder and a code conversion table suffice.) Clearly, digital transmission of information does not provide any more privacy than, for example, Morse code. Nevertheless, some users seem willing to entrust to digital systems valuable information that they would not communicate over a telephone. A ctive infiltration - an attempt to enter the system to directly obtain or alter information in the files - can be overtly accomplished through normal access procedures by: • Using legitimate access to a part of the system to ask unauthorized questions (e.g., requesting payroll information or trying to associate an individual with certain data), or to "browse" in unauthorized files. • "Masquerading" as a legitimate user after having obtained proper identifications through wiretapping or other means. • Having access to the system by virtue of a position with the information center or the communication network but without a "need to know" (e.g., system programmer, operator, maintenance, and management personnel). INTRODUCTION Recent advances in computer time-sharing technology promise information systems which will permit simultaneous on-line access to many users at remotely located terminals. In such systems, the question naturally arises of protecting one user's stored programs and data against unauthorized access by others. Considerable work has already been done in providing protection against accidental access due to hardware malfunctions or undebugged programs. Protection against deliberate attempts to gain access to private information, although recently discussed from a philosophical point of view,1-4 has attracted only fragmentary technical attention. This paper presents a discussion of the threat to information privacy in non-military information systems, applicable countermeasures, and system implications of providing privacy protection. The discussion is based on the following model of an information system: a central processing facility of one or more processors and an associated memory hierarchy; a set of information files - some private, others shared by a number of users; a set of public or private query terminals at geographically remote locations; and a communication network of common carrier, leased, or private lines. This time-shared, on-line system is referred to throughout as "the system." Threats to information privacy Privacy of information in the system is lost either by accident or deliberately induced disclosure. The most common causes of accidental disclosures are failures of hardware and use of partially debugged programs. Improvements in hardware reliability and various memory protection schemes have been suggested as countermeasures. Deliberate efforts to infiltrate an on-line, time-shared system can be 291 292 Spring Joint Computer Conf., 1967 Or an active infiltrator may attempt to enter the system covertly i.e., avoiding the control and protection programs) by: • Using. entry points planted in the system by unscrupulous programmers or mamtenance engineers, or probing for and discovering "trap doors" which may exist by virtue of the combinatorial aspects of the many system control variables (similar to the search for "new and useful" operation codes - a favorite pastime of machine-language programmers of the early digital computers). • Employing special terminals tapped into communication channels to effect: - Hpiggy back" entry into the system by selective interception of communications between a user and the processor, and then reieasing these with modifications or substituting entirely new messages while returning an "error" message; - "between lines" entry to the system when a legitimate user is inactive but still holds the communication channel; -cancellation of the user's sign-off signals, so as to continue operating in his name. In all of these variations the legitimate user provides procedures for obtaining proper access. The infiltrator is limited, however, to the legitimate user's authorized files. More than an inexpensive tape recorder is required for active infiltration, since an appropriate terminal and entry into the communication link are essential. In fact, considerable equipment and know-how are required to launch sophisticated infiltration attempts. The objectives of infiltration attempts against information systems have been discussed by a number of authors 1-3. 7 from the point of view of potential payoff. We will merely indicate the types of activities that an infiltrator may wish to undertake: • Gaining access to desired information in the fiies, or discovering the information interests of a particular user. • Changing -information in the files (including destruction of entire files). • Obtaining free computing time or use of proprietary programs. Depending on the nature of the filed information, a penetration attempt may cause no more damage than satisfying the curiosity of a potentially larcenous programmer. Or it may cause great damage and result in great payoffs; e.g., illicit "change your dossier for a fee," or industrial espionage activities. (See Table I for a summary of threats to information privacy.) More sophisticated infiltration scenarios can be conceived as the stakes of penetration increase. The threat to information privacy should not be taken lightly or brushed aside by underestimating the resources and ingenuity of would-be infiltrators. Countermeasures The spectrum of threats discussed in the previous section can be countered by a number of techniques and procedures. Some of these were originally introduced into time-shared, multi-user systems to prevent users from inadvertently disturbing each other's programs,8 and then expanded to protect against accidental or deliberately induced disclosures TABLE L Summary of Threats to Information Privacy Nature of Infiltration Means Effects Accidental Computer malfunctioning; user errors; undebugged programs Privileged information dumped at wrong terminals, printouts, etc. Deliberate Passive Wiretapping, electromagnetic pickup, examining carbon papers, etc. User's interest in information revealed; content of communications revealed Deliberate Entering file s by: "Browsing" ; "Masquerading" ; "Between lines"; "Piggy-back" penetration Specific information revealed or modified as a result of infiltrator's actions Active System Implications Of Information Privacy of information. 8 ,9 Others found their beginning in requirements to protect privacy in communication networks. lO In the following discussion, we have organized the various countermeasures into several classes. Access management These techniques are aimed at preventing unauthorized users from obtaining services from the system or gaining access to its files. The procedures invoived are authorization, identification, and authentication. A uthorization is given for certain users to enter the system, gain access to certain files, and request certain types of information. For example, a researcher may be permitted to compile earnings statistics from payroll files but not to associate names with salaries. Any user attempting to enter the system must first identify himself and his location (i.e., the remote terminal he is using), and then authenticate his identification. The latter is essential if information files with limited access are requested; and is desirable to avoid mis-charging of the computing costs. The identification-authentication steps may be repeated any number of times (e.g., when particularly sensitive files are requested). Requirements for authentication may also arise in reverse, i.e., the processor identifie$ and authenticates itself to the user with suitable techniques. This may satisfy the user that he is not merely conversing with an infiltrator's console. Applied to certain messages from the processor to the user (e.g., error messages or requests for repetition) these could be authenticated as coming from the processor and not from a piggy-back penetrator. (Since various specific procedures are applied to different parts of the system, a detailed discussion of their structures and effectiveness is presented in Sec. IV.) Processing restrictions Although access control procedures can eliminate the simple threats from external sources, they cannot stop sophisticated efforts nor completely counter legitimate users or system personnel inclined to browse. An infiltrator, once in the system will attempt to extract, alter, or destroy information in the files. Therefore, some processing restrictions (in addition to the normal memory protection features) need to be inposed on files of sensitive information. For example, certain removable files may be mounted on drives with disabled circuits, and alterations of data performed only after requests are authenticated by the controller of each file. Copying complete files (or large parts of files) is another activity where processing control need to be imposed - again in the form of authentication or tile controllers. 293 In systems where very sensitive information is handled, processing restrictions could be imposed on specific users in instances of "suspicious" behavior. For example, total cancellation of any program attempting to enter unauthorized files may be an effective countermeasure against browsing. 9 Threat monitoring Threat monitoring concerns detection of attempted or actual penetrations of the system or files either to provide a reai-time response (e.g., invoking job cancellation, or starting tracing procedures) or to permit post facto analysis. Threat monitoring may include recording of all rejected attempts to enter the system or specific files, use of illegal access procedures, unusual activity involving a certain file, attempts to write into protected files, attempts to perform restricted operations such as copying files, excessively long periods of use, etc. Periodic reports to users on file activity may reveal possible misuse or tampering, and prompt stepped-up auditing along with a possible real-time response. Such reports may range from a page by page synopsis of activity during the user session, to a monthly analysis and summary. Privacy transformations Privacy transformations 10 ,11 are techniques for coding the data in user-processor communications or in files to conceal information. They could be directed against passive (e.g., wiretapping) as well as sophisticated active threats (e.g., sharing a user's identification and communication link by a "piggyback" infiltrator), and also afford protection to data in removable files against unauthorized access or physical loss. A privacy transformation consists of a set of reversible logical operations on the individual characters of an information record, or on sets of such records. Reversibility is required to permit recovery (decoding) of the original information from the encoded form. Classes of privacy transformations include: • Substitution -replacement of message characters with characters or groups of characters in the same or a different alphabet in a one-to-one manner (e.g., replacing alphanumeric characters with groups of binary numerals). • Transposition - rearrangement of the ordering of characters in a message. • Addition-using appropriate "algebra" to combine characters in the message with encoding sequences of characters (the "key';) supplied. by the user. Well-known among a number of privacy transfor- 294 Spring Joint Computer Conf., 1967 mations of the "additive" type l l are the "Vigenere cipher," where a short sequence of characters are repeatedly used to combine with the characters of the message, and the "Vernam system," where the user-provided sequence is at ieast as iong as the message. Successive applications of several transformations may be used to increase the complexity. In general, the user of a particular type of privacy transformation (say, the substitution of characters in the same alphabet has a very large number of choices of transformations in that class (e.g., there are 26 factorial- 4 x 1026 - possible substitution schemes of the 26 letters of the English alphabet). The identification of a particular transformation is the '"key" chosen by the user for encoding the message. Any infiltrator would naturaiiy attempt to discover the key - if necessary, by analyzing an intercepted encoded message. The effort required measures the "work factor" of the privacy transformation, and indicates the amount of protection provided, assuming the key cannot be stolen, etc. The work factor depends on the type of privacy transformations used, the statistical characteristics of the message language, the size of the key space, etc. A word of caution against depending too much on the large key space: Shannon 11 points out that about 3 x 10 12 years would be required, on the average, to discover the key used in the aforementioned substitution cipher with 26 letters by an exhaustive trial-and-error method (eliminating one possible key every microsecond). However, according to Shannon, repeatedly dividing the key space into two sets of roughly an equal number of keys and eliminating one set each trial (similar to coin-weighing problems) would require only 88 trials. The level of work factor which is critical for a given information system depends, of course, on an estimate of the magnitude of threats and of the value of the information. For example, an estimated work factor of one day of continuous computation to break a single key may be an adequate deterrent against a low-level threat. Other criteria which influence the selection of a class of privacy transformations are: l l • Length of the key - Keys require storage space, must be protected, have to be communicated to remote locations and entered into the system, and may even require memorization. Though generally a short key length seems desirable, better protection can be obtained by using a key as long as the message itself. • Size of the key space- The number of different privacy transformations available shouJd be as large as possible to discourage trial-and-error approaches, and to permit assignment of unique keys to large numbers of users and changing of keys at frequent intervals. • Complexity - Affects the cost of implementation of the privacy system by requiring more hardware or processing time, but may also improve the work factor. • Error sensitivity - The effect of transmission errors or processor malfunctioning may make decoding impossible. Other criteria are, of course, the cost of implementation and processing time requirements which depend, in part, on whether the communication channel or the files of the system are involved (see Sec. IV). Integrity management I mportant in providing privacy to an information system is verification that the system software and hardware perform as specified-including an exhaustive initial verification of the programs and hardware, and later, periodic checks. Between checks, strict controls should be placed on modifications of software and hardware. For example, the latter may be kept in locked cabinets equipped with alarm devices. Verification of the hardware integrity after each modification or repair should be a standard procedure, and inspection to detect changes of the emissive characteristics performed periodically. Integrity of the communication channel is a far more serious problem and, if common carrier connections are employed, it would be extremely difficult to guarantee absence of wiretaps. Personnel integrity (the essential element of privacy protection) poses some fundamental questions which are outside the scope of this paper. The assumptions must be made, in the interest of realism, that not everyone can be trusted. System privacy should depend on the integrity of as few people as possible. System aspects of information privacy As pointed out previously, not all parts of an information system are equally vulnerable to threats to information privacy, and different countermeasures may be required in each part to counter the same level of threat. The structure and functions of the information processor, the files, and the communication network with terminals are, in particular, sufficiently different to warrant separate discussion of information privacy in these subsystems. Communication lines and terminals Since terminals and communication channels are the principal user-to-processor links, privacy of System Implications Of Information Privacy information in this most vulnerable part of the system is essential. Wiretapping: Many users spread over a wide area provide many opportunities for wiretapping. Since the cost of physically protected cables is prohibitive, there are no practical means available to prevent this form of entry. As a result, only through protective techniques applied at the terminals and at the processor can the range of threats from simple eavesrtronnlna -- '-" r .1"' ........ 0 to ........... ,"onhl'"tlr~tprt .....r.&.& ............·_-.... _- pntrv _ .......... J throllah ........ -,0.'& .a .a ... - - ,"nprl~l __ .a_.a ..... y tpr_ .... _ ... minals be countered. While a properly designed password identification-authentication procedure is effective against some active threats, it does not provide any protection against the simplest threat - eavesdropping-nor against sophisticated "piggy-back" entry. The only broadly effective countermeasure is the use of privacy transformations. Radiation: In addition to the spectrum of threats arising from wiretapping, electromagnetic radiation from terminals must be considered. 12 Electromagnetic radiation characteristics will depend heavily on the type of terminal, and may in some cases pose serious shielding and electrical-filtering problems. More advanced terminals using cathode ray tubes for information display may create even greater problems in trying to prevent what has been called "tuning in the terminal on Channel 4. " Use of privacy transformations also· helps to reduce some of the problems of controlling radiation. In fact, applying the transformation as close to the electromechanical converters of the terminal as possible minimizes the volume that must be protected, and reduces the extent of vulnerable radiation characteristics. Obviously, the severity of these problems depends upon the physical security of the building or room in which the terminal is housed. Finally, proper handling and disposal of typewriter ribbons, carbon papers, etc., are essential. Operating modes: Whether it would be economical to combine both private and public modes of operation into a single standard terminal is yet to be determined; but it appears desirable or even essential to permit a private terminal to operate in the public mode, although the possibility of compromising the privacy system must be considered. For example, one can easily bypass any special purpose privacy hardware by throwing a switch manually or by computer, but these controls may become vulnerable to tampering. The engineering of the terminal must, therefore, assure reasonable physical, logical, and electrical integrity for a broad range of users and their privacy requirements. Terminal identification: An unambiguous and authenticated identification of a terminal is required 295 for log-in, billing, and to permit system initiated callback for restarting or for "hang-up and redial"13 access control procedures. The need for authentication mainly arises when the terminal is connected to the processor via the common-carrier communication lines, where tracing of connections through switching centers is difficult. If directly wired connections are used, neither authentication nor identification may be required, since (excluding wiretaps) on1v --"'-J onp. _ ....... - tp.rmln~1 hp - _ ...................... _ ... r~n - _ .............. - on _.&& ~ - l1np .&.& . . . . _ . Identification of a terminal could involve transmission of an internally (to the terminal) generated or user-entered code word consisting, for example, of two parts: one containing a description or name of the terminal; the other, a password (more about these later) which authenticates that the particular terminal is indeed the one claimed in the first part of the code word. Another method suggested for authenticating the identity of a terminal is to use computer hang-up and call-back procedures. 13 After terminal identification has been satisfactorily established, the processor may consult tables to determine the privacy level of the terminal; i.e., the users admitted to the terminal, the protection techniques required, etc. User identification: As with a terminal, identifying a user may require stating the user's name and account number, and then authenticating these with a password from a list, etc. If the security of this identification process is adequate, the normal terminal input mechanisms may be used; otherwise, special features will be required. F or example, hardware to accept and interpret coded cards might be employed, or sets of special dials or buttons provided. Procedures using the latter might consist of operating these devices in the correct sequence. In some instances, if physical access to a terminal is appropriately controlled, terminal identification may be substituted for user identification (and vice versa). Passwords: Clearly, a password authenticating a user or a terminal would not remain secure indefinitely. In fact, in an environment of potential wiretapping or radiative pickup, a password might be compromised by a single use. Employing lists of randomly selected passwords, in a "one-time-use" manner where a new word is taken from the list each time authentication is needed has been suggested as a countermeasure under such circumstances. 9 One copy of such a list would be stored in the processor, the other maintained in the terminal or carried by the user. After signing in, the user takes the next work on the list, transmits it to the processor and then crosses it off. The processor compares the received password with the next word in its own list and 296 Spring Joint Computer Conf., 1967 permits access only when the two agree. Such password lists could be stored in the terminal on punched paper tape, generated internally by special circuits, or printed on a strip of paper. The latter could be kept in a secure housing with only a single password visibie. A speciai key iock wouid be used to advance the list. Since this method of password storage precludes automatic reading, the password must be entered using an appropriate input mechanism. The protection provided by use of once-only passwords during sign-in procedures only is not adequate against more sophisticated "between lines" entry by an infiltrator who has attached a terminal to the legitimate user's line. Here the infiltrator can use his terminal to enter the system between communications from the legitimate user. I n this situation the use of once-only passwords must be extended to each message generated by the user. Automatic generation and inclusion of authenticating passwords by the terminal would now be essential for smoothness of operation; and lists in the processor may have to be replaced by program or hardware implemented password generators. Privacy transformations: The identification procedures discussed above do not provide protection against passive threats through wire-tapping, or against sophisticated "piggy-back" entry into the communication link. An infiltrator using the latter technique would simply intercept messages - password and all-and alter these or insert his own (e.g., after sending the user an error indication). Authentication of each message, however, will only prevent a "piggy-back" infiltrator from using the system after cancelling the sign-off statement of the legitimate user. Although it may be conceivable that directly wired connections could be secured against wiretapping, it would be nearly impossible to secure commoncarrier circuits. Therefore, the use of privacy transformations may be the only effectiv.e countermeasures against wire-tapping and "piggy-back" entry, as they are designed to render encoded messages unintelligible to all but holders of the correct key. Discovering the key, therefore, is essential for an infiltrator. The effort required to do this by analyzing intercepted encoded messages (rather than by trying to steal or buy the key) is the "work factor" of a privacy transformation. It depends greatly on the type of privacy transformations used, as well as on the knowledge and ingenuity of the infiltrator. The type of privacy transformation suitable for a particular communication network and terminals depends on the electrical nature of the communication links, restrictions on the character set, structure and vocabulary of the query language and data, and on the engineering aspects and cost of the terminals. For example, noisy communication links may rule out using "auto key" transformation 11 (e.e., those where the message itself is the key for encoding); and highly structured query languages may preciude direct substitution schemes, since their statistics would not be obscured by substitution and would permit easy discovery of the substitution rules. Effects of character-set restrictions on privacy transformations become evident where certain characters are reserved for control of the communication net, terminals, or the processor (e.g., "end of message," "carriage return," and other control characters). These characters should be sent in the clear and appear only in their proper locations in the message, hence imposing restrictions on the privacy transformation. A number of other implications of using privacy transformations arise. For example, in the private mode of terminal operation the system may provide an end-to-end (terminal-to-processor) privacy transformation with a given work factor, independently of the user's privacy requirements. If this work factor is not acceptable to a user, he should be permitted to introduce a preliminary privacy transformation using his own key in order to increase the combined work factor. If this capability is to be provided at the terminal, there shouid be provisions for inserting additional privacy-transformation circuitry. Another, possibly necessary feature, might allow the user to specify by appropriate statements whether privacy transforms are to be used or not. This would be part of a general set of "privacy instructions" provided in the information-system operating programs. Each change from private to public mode, especiaHy when initiated from the terminal, should be authenticated. Files While the above privacy-protection techniques and access-control procedures for external terminals and the communication network may greatly reduce the threat of infiltration by those with no legitimate access, they do not protect information against (1) legitimate users attempting to browse in unauthorized files, (2) access by operating and maintenance personnel, or (3) physical acquisition of files by infiltrators. A basic aspect of providing information privacy to files is the right of a user to total privacy of his files - even the system ntanager of the information center should not have access. Further, it should be possible to establish different levels of privacy in files. That is, it should be feasible to permit certain of a group of users to have access to all of the com- C" ......... 4- _ _ T ____ 1~ __ .L· ,.......1"' ..... ,. • _ ... ":>YMt:U1lIupucauons VI InIormatlon Pr.IVacy pany's files, while allowing others limited access to only some of these files. In this context certain standard file operationssuch as file copying - would seem inappropriate, if permitted in an uncontrolled manner, since it would be easy to prepare a copy of a sensitive file and maintain it under one's own control for purposes other than authorized. Similarly, writing into files should be adequately controlled. For example, additions and deletions to certain files should be authorized only after proper authentication. It may even be desirable to mount some files on drives with physically disabled writing circuits. Access control: Control of access to the files would be based on maintaining a list of authorized users for each file, where identification and authentication of identity (at the simplest), is established by the initial sign-in procedure. If additional protection is desired for a particular file, either another sign-in password or a specific file-access password is requested to reauthenticate the user's identity. The file-access passwords may be maintained in a separate list for each authorized user, or in a single list. If the latter, the system would ask the user for a password in a specific location in the list (e.g., the tenth password). Although a single list requires less storage and bookkeeping, it is inherently less secure. Protection of files is thus based on repeated use of the same requirements - identification and authentication - as for initial access to the system during signin. This protection may be inadequate, however, in systems where privacy transformations are not used in the communication net (i.e., "piggy-back" infiltration is still possible.) Physical vulnerability: An additional threat arises from possible physical access to files. In particular, the usual practice of maintaining backup files (copies of critical files for recovery from drastic system failures) compounds this problem. Storage, transport, and preparation of these files all represent points of vulnerability for copying, theft, or an off-line print out. Clearly, gossession of a reel of tape, for example, provides an interloper the opportunity to peruse the information at his leisure. Applicable countermeasures are careful storage and transport, maintaining the physical integrity of files throughout the system, and the use of privacy transformations. Privacy transformations: As at the terminals and in the communication network, privacy transfermations could be used to protect files against failure of normal access control or physical protection procedures. However, the engineering of privacy transformations for files differs considerably: • Both the activity level and record lengths are considerably greater in files; 297 • Many users, rather than one, may share a file; • Errors in file operations are more amenable to detection and control than those in communication links, and the uncorrected error rates are lower; • More processing capability is available for the files, .hence more sophisticated privacy transformations can be used; • Many of the files may be relatively permanent and sufficiently large, so that frequent changes of keys are impractical due to the large amount of processing required. Hence, transformations with higher work factors could be used and keys changed less frequently. It follows that the type of privacy transformation adequate for user-processor communications may be entirely unacceptable for the protection of files. The choice of privacy transformations for an information file depends heavily on the amount of file activity in response to a typical information request, size and structure of the file (e.g., short records, many entry points), structure of the data within the file, and on the number of different users. Since each of these factors may differ from file to file, design of a privacy system must take into account the relevant parameters. For example, a continuous key for en,. coding an entire file may be impractical, as entry at intermediate points would be impossible. If a complex privacy transformation is desired additional parallel hardware may be required, since direct implementation by programming may unreasonably increase the processing time. In order to provide the necessary control and integrity of the transformation system, and to meet the processing time requirements, a simple, securely housed processor similar to a common input-output control unit might be used to implement the entire file control and privacy system. The processor The processor and its associated random-access storage units contain the basic monitor program, system programs for various purposes, and programs and data of currently serviced users. The role of the monitor is to provide the main line of defense against infiltration attempts through the software system by maintaining absolute control over all basic system programs for input-output, file access, user scheduling, privacy protection, etc. It should also be able to do this under various contingencies such as system failures and recovery periods, debugging of system programs, during start-up or shut-down of parts of the system, etc. Clearly, the design of such a fail-safe monitor is a difficult problem. Peters 9 describes a number of principles for obtaining security through software. 298 Spring Joint Computer Conf., 1967 ------~-------------------------------------------- Penetration attempts against the monitor or other system programs attempt to weaken its control, bypass application of various countermeasures, or deteriorate its fail-safe properties. Since it is unlikely that such penetrations could be successfuHy attempted from outside the processor facility, protection relies mainly on adequate physical and personnel integrity. A first step is to keep the monitor in a read-only store, which can be altered only physically, housed under lock and key. In fact, it would be desirable to embed the monitor into the basic hardware logic of the processor, such that the processor can operate only under monitor control. Software integrity could be maintained by frequent comparisons of the current systems programs with carefully checked masters, both periodically and after each modification. Personnel integrity must, of course, be maintained at a very high level, and could be buttressed by team operation (forming a conspiracy involving several persons should be harder than undermining the loyalty of a single operator or programmer). Integrity management procedures must be augmented with measures for controlling the necessary accesses to the privacy-protection programs; or devices for insertion of passwords, keys, and authorization lists; or for maintenance. These may require the simultaneous identification and authentication of several of the information-center personnel (e.g., a system programmer and the center "privacy manager"), or the use of several combination locks for hardware-implemented privacy-protection devices. Hierarchy of privacy protection: Privacy protection requires a hierarchy of system-operating and privacy-protection programs, with the primary system supervisor at the top. Under this structure, or embedded in it, may exist a number of similar but independent hierarchies of individual users' privacyprotection programs. It is neither necessary nor desirable to permit someone who may be authorized to enter this hierarchy at a particular level to automatically enter any lower level. Access should be permitted only on the basis of an authenticated "need to know." For example, if privacy transformations are employed by a particular user, his privacy programs should be protected against access by any of the system management personnel. Time-sharing: Various modes of implementing time-sharing in the information system may affect the privacy of information in the processor. In particular, copying of residual information in the dynamic portions of the storage hierarchy during the following time-slice seems likely. Since erasing all affected storage areas after each time-slice could be exces- sively time consuming, a reasonable solution may be to "tag" pages of information and programs as "private," or to set aside certain areas of the core for private information and erase only those areas or pages after each time-slice. 'Only the private areas or pages would need to be erased as part of the s'vvapping operation. 14 Also important is the effect of privacy transformations on processing time. Sophisticated privacy transformations, for example, if applied by programmed algorithms, may require a significant fraction of each time-slice. It may be necessary, therefore, to use hardware implementation of privacy transformations by inciuding these in the hardware versions of the monitor or through the use of a separate parallel processor for all access-control and privacy-transformation operations. Hardware failures: With respect to integrity management, there is one aspect of hardware integrity which is the responsibility of the original equipment manufacturer, viz., a hardware failure should not be catastrophic in the sense that it would permit uncontrolled or even limited access to any part of the system normally protected. Whether this entails making the critical parts of the hardware super-reliable and infallible, or whether the system can be designed for a fail-safe form of graceful degradation is an open question. It is important to assure the user that the hardware has this basic characteristic. CONCLUDING REMARKS It should be emphasized again that the threat to information privacy in time-shared systems is credible, and that only modest resources suffice to launch a low-level infiltration effort. It appears possible, however, to counter any threat without unreasonable expenditures, provided that the integrity and competence of key personnel of the information center is not compromised. Trustworthy and competent operating personnel will establish and maintain the integrity of the system hardware and software which, in turn, permits use qf their protective techniques. A concise assessment of the effectiveness of these techniques in countering a variety of threats is presented in Table II. Privacy can be implemented in a number of ways ranging from system enforced "mandatory privacy," where available privacy techniques are automatically applied to all users with associated higher charges for processing time, to "optional privacy" where a user can specify what level of privacy he desires, when it should be applied, and perhaps implement it himself. The latter privacy regime appears more desirable, since the cost of privacy could be charged essentially to those users desiring protection. For System Implications Of Information Privacy example, if a user feels that simple passwords provide adequate protection, his privacy system can be implemented in that way, with probable savings in processing time and memory space. Implementation of "optional" privacy could be based on a set of "privacy instructions" provided by the programming and query languages of the system. Their proper execution (and safeguarding of the associated password lists and keys) would be guaranteed by the system. The cost of their use would reflect itself in higher rates for computing time. For example, the A UTHENTI CATE, K,M instruction requests the next password from list K which has been previously allocated to this user from the system's pool of password lists (or has been supplied by the user himself). The operating program now sends the corresponding message to the user who takes the correct password from his copy of the list K and sends it to the processor. If the comparison of the received password with that in the processor fails, the program transfers to location M where "WRITE LOG, A" instruction may be used to make a record of the failure to authenticate in audit log A. Further instructions could then be used to generate a real-time alarm at the processor site (or even at the site of the user's terminal), terminate the program, etc. Other privacy instructions would permit application of privacy transformations, processing restrictions, etc. The privacy protection provided by any system could, of course, be augmented by an individual user designing and implementing privacy protection schemes within his programs. For example, he may program his own authentication requests, augmenting the system-provided instructions for this purpose; and use his own schemes for applying privacy transformations to data in files or in the communication network. Since these additional protective schemes may be software implemented they would require considerable processing time, but would provide the desired extra level of security. Further work: This paper has explored a range of threats against information privacy and pointed out some of the systems implications of a set of feasible countermeasures. Considerable work is still needed to move from feasibility to practice, although several systems have already made concrete advances. Special attention must be devoted to establishing the economic and operational practicality of privacy transformations: determining applicable classes of transformations and establishing their work factors; designing economical devices for encoding and decoding; considering the effects of query language structure on work factors of privacy transformation; and determining their effects on processing time and storage requirements. 299 Large information systems with files of sensitive information are already emerging. The computer community has a responsibility to their users to insure that systems not be designed without considering the possible threats to privacy and providing for adequate countermeasures. To insure a proper economic balance between possible solutions and requirements, users must become aware of these considerations and be able to assign values to information entrusted to a system. This has been done in the past (e.g., industrial plant guards, "company confidential" documents, etc.), but technology has subtly changed accessibility. The same technology can provide protection, but we must know what level of protection is required by the user. REFERENCES The computer and invasion of privacy Hearings Before a Subcommittee on Government Operations House of Representatives July 26-28 1966 U S Government Printing Office Washington DC 1966 2 PBARAN Communications computers and people AFIPS Conference Proceedings Fall Joint Computer Conference Part 2 Vol 27 1965 3 S ROTHMAN Centralized government information systems arid privacy Report for the President's Crime Commission September 22 1966 4 E E DAVID R M FANO Some thoughts about the social implications of accessible computing AFIPS Conference Proceedings Fall Joint Computer Conference Part 1 Vol 27 pp 243-251 1965 5 S D PURSGLOVE The eavesdroppers: fallout from R&D Electronic Design Vol 14 No 15 pp 35-43 June 21 1966 6 S DASH R F SCHWARTZ R E KNOWLTON The eavesdroppers Rutgers University Press New Brunswick New Jersey 1959 7 WHWARE Security and privacy: similarities and differences presented at SJCC 67 Atlantic City New Jersey 8 R C DALEY P G NEUMANN A general-purpose file system for secondary storage AFIPS Conference Proceedings Fall Joint Computer Conference Part 1 Vol 27 p 213 1965 9 B PETERS Security considerations in a multi-programmed computer system presented at SJCC 67 Atlantic City New Jersey 10 P BARAN On distributed communications: IX. security, secrecy and tamper-free considerations RM-3765-PR The RAND Corporation Santa Monica California August 1964 l I e E SHANNON :;ommunications theory of secrecy systems Bell System Technical Journal Vol 28 No 4 pp 656 715 October 1949 12 R L DENNIS Security in computer environment 300 Spring Joint Computer Conf., 1967 mation systems AFIPS Conference Proceedings Fall Joint Computer Conference Vol 29 pp 403-411 1966 14 R L PATRICK Private communication SP 2440/000/01 System Development Corporation August 18 1966 13 D J DANTINE Communications needs of the user for management infor- Table II. SUMMARY OF COUNTERMEASURES TO THREAT TO INFORMATION PRIVACY ~ Access Conuol (p_wordl, audlendcatlon, authorization) Threat Good protection, ~ Uler error Privacy Transformations Procelling Restrictions (Rorage, protect, privUeged operat1ons) Threat Monitoring (audits, logs) Reduce susceptibility Not applicable Identifies the No protec'i"" if depend unless the error on password; ol:herwise. "accident prone"i produces correct ~ood provides ~.!!£!? protection Fa...,"'" integrity Management (hardware software, person",,1) knowledge of --::~:.=-. .-.-.. II·-=·:::=+I·~=:·.=:::,:,:-·ll--~~.--:~::~.~.:~+:~.-~,;~-. . tl-~:i~-i~i-Z~ -~ ~:i~ t~:s unless bypassed due to error I of communication system switching enors No protection I diagnosis or for accidents prov.de ~ facto knowledge i':- i Deliber.lIe, passive: Elecuomag""lic pick-up II Reduces susceptibility; ",ork raclor determines No protection I No protel'lion Reduces ,usceptibility _______ ..... __ .. ___________ ... _______ •_____ ...'~_~~~~~t_~.!'!~~~(~'!~_ No protection Reduces susceptibility; work factor determines ________________________________________t~_~~_~~t_~!'!~~_c_~~_ Wire ulIJ'ing No prote<' tion Not applicable Wute Basket Not applicable No pro"'ction If applied to communicalion eirC'uilS may _~"-d.~:e_ !~~,:._~t~~~I~ ry__ Not IppJicable Not applicable Proper disposal pro(~edures "Browsing" Good protection Reduce. ease to obtain (may make mas quer.ting nec." desired infOtmation Good protection Identifies unsuc- Aides ottwr ("ounter- cessful a!tempts; m~a5ur'tS may provide ~ kr.vwledgc: ~ suy) or operate rea)...... _ _ _ • t~~__a:~~~~ _ _ _ _ ... _ _ _ _ _ _ _ _ _ _ _ . . . . _ .. _ _ _ _ _ _ _ _ _ _ _ .. _ _ .. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ . . . . . . . . . _ _ _ _ _ _ _ _ .. _ _ _ _ _ _ w.w _ _ _ _ _ _ _ "Masquerading- MllIt know IU- Reduce. ease to obtain No protection if depends Identifie. uns""- !hentleatlng desired information on password; otherwise, l'ess(ul attempts, .uffieieR' may pro, ide passwords (work ~t 2 factor to obtain these) Good protection if P!'!\ ~~y tT-!Mfofm:uioo changed In less time than required by work Limits the infiltrator to t!¥e !2!"!1e ~!~!!~i!! as the UJer whose line unless use!! ft'1" every message he shares Makes hlrder to obtain information for masquerading; .ince time alarms masquerading i. deception, may inhibit browsers ~t~analy'is C()mmunicatlon nel'" of aC'f,vity may work integrity hel", knowledge or operate real- No -protection "Between lines· entry . ___ ............. _. ______ . . . ____ ._ . . provide knowledge of possible loss __ ............ ___ ............. _. . ____ J__ .......... _.............. _. . _. . ___ ....... ____ • ____ ...... __f~_l"!'!'.. ..... ______ ..... _....... _. __ ... __ . . _.. ______ ..... __ Good protection if ~t~analysis No protection Limits the infiltrator but reverse to the ",me potential privacy tran,fonnation of acti,·ity may (proceuor-to· as the user whose lill< changed in less time provide knowledge user) authentihe .hares than re4uired by work of possible loss __c_':t~'?'!_~~!'_~~~ ________________________f~~!'?~ ___________________________________ _ "Piggy-back" entry M., Entry by system penonnel Red uce sease of obtainlng desired information have to masquerade Communication network integrity hdps work factor, unless depend !2!! ~ analysis Key to the entire on' l'assword aod masquer ading is successful of acth ity may provide knowledge system pri .. &\,.,y proreC:llon -'?~_~~~I~_!?!'__ -Entry via -trap doors" I I No protection Probably no protection I Work factor, I unless access to key; obtalllcd I Possible alarms, 'I ~t!!s!= analy... Protection through mma! vennca!!on and sub"'quent mallltenance of hardware -·~::·:=:~·~:···t··~:-=:::- --:::~-~.:~:::~.~.~ . ::-~~:~~.~~ :~-·t·:~~~-:~:~:···t-:·::~~~'.,~ --:~-::::-·t·-:=:=:~··I··:~~::~~'···-· :::.::~,:~.~~k_t:_:::"'~·"·t-:~:::·~:::~:::-removable fliel I I I . Ieee'$! 10 keys obt;l1nt'd knowledge form tl\,f mt:ilSlJJd de\ices .lnd A brief description of privacy measures in the RUSH time-sharing system by J. D. BABCOCK Allen-Babcock Computing, Inc. Los Angeles, California INTRODUCTION The second area requiring protection is user program and data files. The object of a %LOAD/SA VE statement is 1 or 2 parameters: (NAME, KEY). The user supplies the name and can optionally add the KEY. The first four characters of the KEY are for 'read only' requests, and the full six characters must be supplied in order to write over the copy of NAME on the disk. All of the LOAD/SAVE area is under protection of the master account name. Since the LOAD/SAVE command cannot be executed in a computer loop, it is extremely difficult to ascertain the full KEY by trial-and-error. The third protection mechanism is embodied in the RJE (Remote Job Entry) mode. RJE allows the user to build a job stream for eventual compilation and execution in a separate partition of memory. I t scans all control cards and limits names of files to a very narrow range, i.e., the customer and his file names must agree in part with his master account number in the LOGIN statement. RJE allows execution of ABC approved catalogue procedures only. An RJ E user cannot read or write files other than his own. Finally, RUSH uses the full System/360 memoryprotection feature. Memory can be protected in blocks and only legal blocks for a particular active user may be processed by the Executive. Further, the Executive is operated under a key that disallows all "store" commands within itself; thus it cannot destroy itself. RUSH is fully interpretative, affording further protection for its users. Possible threats and what can be done RUSH has no defense agaIilst hardware penetrations such as wiretaps. However, attempted penetrations are logged after forcing a line disconnect. In the every near future users will have a "call-back" system for very sensitive files. When a file is opened by the program, OS/360 will check the header label for Briefsummary of the ABC time-sharing system Allen-Babcock's RUSH (Remote Users of Shared Hardware) comprises some 80 modules of processors operating in a time-sharing mode on an IBM SYSTEM/360, Model 50. The RUSH MonitorExecutive controls 60 simultaneous terminal users whose programs' reside in a large bulk store (2,097,152 bytes-directly addressable). RUSH co-exists with Operating System/360, option 2 (multi-programming, fixed tasks) and uses the file management schemes of this operating system. Each RUSH user converses with an IBM 2741 Selectric terminal or a Teletype Model 28, 32, 33, 35 or 37. RUSH supports both scientific and commercial applications, the latter characterized by problems needing general character manipulation and file management at the higher language level. The only conversational language offered by RUSH is a problem-oriented version of PL/I; and users range from the casual to the professional programmer. File security in RUSH An early design decision was to build "protection" software for the RUSH monitor, using the basic facilities of Data Management processors in OS/360, since IBM was not planning to implement their security options in early distributions. First, unauthorized access to RUSH during user Sign-on had to be blocked. The LOGIN statement contains three levels of protection: (1) Master Account Identification; (2) Sub-Account Identification; (3) Protection Key on (2). The second try at an invalid Master Account causes RUSH to disconnect the telephone line. Also, if both the Master Account and the Sub-Account pass, the protect key - if improperly returned - causes a disconnect. 301 302 Spring Joint Computer Conf., 1967 authorized access; if needed, the operator is informed and the user receives a message to telephone the password to the operator on a separate number. The operator then instructs the system to perform the open rator then instructs the system to perform the open or refuse. The legal user can alter the password hourly, daily, weekly, etc. by informing the DataCenter. An advantage of remote systems against penetration attempts is that the data-center room is sealed from on-site penetration, a feature not found in traditional batch shops. Remote systems do not allow the opportunity for unauthorized access to the central computer facility. Another advantage is the complete "READ" protection offered by System/360. The software for this feature is not difficult, but must be supported by each installation to its particular requirements. Thus, memory partitions can not be penetrated. A final means of protection is to use a system which is completely interpretative, such that any penetration can be detected; user-user, as well as user-monitoruser. This protection is now available in RUSH, and guarantees full security to time-sharing users, program, data, and program/data files. Further, RJE users are iimited to non-machine ianguage processors available in OS/360. SUMMARY Teletypewriters offer non-printable characters which can be used as passwords that are never printed. However, the deliberate leakage of one user's Master Account Identification to another is difficult to control. Protection for RUSH customers is achieved by changing this ID frequently. Graphic devices probably offer no more problems than do current typewriters. Passwords could be transmitted with no visual answer-back. RUSH has never "lost" any files inadvertently, attesting to its overall design and its local KEY system. Also, no deliberate penetrations have so far been detected. A brief description of privacy measures in the multics operating systel11* by EDWARD L. GLASER Massachusetts Institute of Technology Cambridge, Massachusetts INTRODUCTION The problem of maintaining information privacy in a multi-user, remote-access system is quite complex. Hopefully, without going into detail, some idea can be given of the mechanisms that have been used in the Multics operating system at MIT. The heart and soul of anyon-line system is the file subsystem, which is charged with the maintenance of all on-line data bases and with their safekeeping from accidental or malicious damage. The salient features of the Multics file system* are: (1) all references to data are by symbolic name and never by physical address; (2) associated with each file or substructure within the system is an access-control list that defines each authorized user and how he may gain access to the substructure or file. (User class identifiers may be employed as well as individual user names.) Because this file-system mechanism also safeguards much of the operating system itself, substructures of directories and files are used to store the system and the state of individual user programs during execution. There is no other special "swapping" on-line file structure. In order to make the file system effective, each user must carry an identification. This identification is made when he logs into the system, and is held as part pf the user data base during the logged time pe*Work reported herein was supported (in part) by Project MAC, an M.I.T. research program sponsored by the Advance Research Projects Agency, Department of Defense under Office of Naval Research Contract Number Nonr-4) 02(0). *The Multics file system is described by R. C. Daley and P. G. Neumann in "A General-Purpose File System for Secondary Storage," presented at the ) 965 Fall Joint Computer Conference (AFlPSConf. Proc., Vol. 27, Part I). riod. Determining that a user is who he says, is accomplished by means of a log-in routine which may include passwords, special log-in algorithms, etc. Even with the protection supplied by the file system, a central portion of the supervisor must be protected against accidental or overt tampering. A combination of hardware and software means to prevent gaining an unusual privilege is employed. In part, these safeguards include hardware locks that prevent execution, reading, or modification of certain key portions of the supervisor except when responding to a generated interrupt. (Locks that are more complex than can be explained in this short account are also employed.) Two basic principles are applied within this part of the supervisor: (1 ) Compartmentalization - functionally separating the various activities of the supervisor into program modules. Since it is assumed that there will be accidents, or that individuals may on occasion be able to thwart the supervisor, compartmentalization insures a minimum amount of damage or a minimum loss of privileged information. (2) A uditability - By properly identifying each module of the operating system, so that it is possible at any time to determine that the system currently running is the intended one. It is also possible to include the ability to determine whether a user has violated the system, and if he has, to observe his malpractice by means of a special high-privilege system function. The latter mechanism includes an additional set of safeguards that provide an audit trail indicating the observer, who was observed, and the date of observation. This aUditing information is recorded 303 304 Spring Joint Computer Conf., 1967 in such a way as to make it extremely difficult for one or two individuals to destroy it without being observed. The maintenance of privacy and informational integrity within systems that are still not fully comprehended is a large and intricate problem. The present discussion suggests only some key considerations. The influence of machine design on numerical algorithms* byW.J.CODY Argonne National Laboratory Argonne, Illinois fNTRODUCTION A great deal has been said and written recently about the poor arithmetic characteristics of computer designs/.2,3,4,5 largely because anomalies long present in the floating point arithmetic of binary computers have suddenly been magnified in importance by the appearance of base 16 arithmetic. This paper is not intended as an attempt to influence present or future machine design - we will leave that project to those who think they can influence such designs. Rather, it is written in the spirit of H. R. J. Grosch when he advised programmers "to go back to work; quit trying to remodel the hardware ... accept reality .... "6 It is our purpose to examine the "reality" of some of the most common design features of recent computers and how they affect the implementation of numerical algorithms. To do this we will consider the floating point arithmetic units on two commercial computers, the Control Data 3600 and the IBM System/360, used by the Applied Mathematics Division at Argonne National Laboratory. These two machines are conventional in design, yet offer great variety and contrast in those arithmetic design characteristics we wish to discuss. Both machines have built-in single and double precision floating point. The CDC machine, however, operates with exponent base 2 while the IBM machine uses exponent base 16. Of course, both machines treat the mantissa separately from the exponent in floating point operations, but the 3600 rounds the mantissa prior to a renormalization shift while the 360 truncates prior to renormalization in double precision and after renormalization in single precision. Renormalization shifts in the 3600 are in multiples of one bit while those in the 360 are in multiples of four bits. Thus, after multiplication of two normalized *Work performed under the auspices of the U. S. Atomic Energy Commission. 305 numbers the 3600 has at most a one bit shift for renormalization while the 360 shifts either zero or four bits. There are other aspects of these machines that are important in detailed numerical work but we will concern ourselves only with the availability of double precision, the effects of rounding (including number truncation) and the renormalization shift. Effect of renormalization One of the first things one must realize in detailed floating point numerical computation is that computers deal with a finite discrete subset of the real number system using arithmetic that does not always obey some of the usual rules; e.g., the associative and distributive laws may not hold. Most of the trouble occurs in the process of truncation or rounding of results coupled with possible renormalization shifts. As an indication of what can happen, let us show that three of the four possible modes of floating point arithmetic on the computers under discussion do not allow a multiplicative identity in the mathematical sense of the term. For illustrative purposes, assume the arithmetic is single precision as incorporated in the CDC 3600, but assume only four bits in the mantissa of a number. Let x = 1.] 25 and consider the product 1.0 X x. Then (the mantissas below will be expressed as binary fractions) x= 21 X .]00] X 1.0 = 21 X .1000 22 X .0100 ] The result mantissa is now rounded to give and then renormalized by a left shift of one unit with an appropriate adjustment of the exponent to give 21 X .]0]0= 1.250. 306 Spring Joint Computer Conf., 1967 Thus this commonly used rounding scheme when employed prior to the renormalization shift precludes the existence of a multiplicative identity. If the rounding process were replaced by simple truncation, but still empioyed prior to renormalization (as happens on the CDC machine if rounding is suppressed and on the IBM machine in double precision), the above result would be 21 X An-I = 16m + x/A n- 1 = 16m 16m X X X .1010 1011 0000 .1010 1010 1010 1.0101 0101 1010. The mantissa is now shifted right four places to give 16m +1 X. 000 1 0 10 1 0 101 10 10 and the last four bits are truncated. (There go the single precision guard bits!) Now multiplication by ~gives .1000 = 1.000. Again unity is not a true multiplicative identity. Only the IBM single precision mode with its four guard bits and truncation after renormalization guarantees that 16m+1 X .0001 0101 0101 X 1/2 = 160 X .100000000000 16m+! X .0000 1010 1010 1000 which becomes 1.0 x x = x 16m X .1010 0101 1000 for all x. The important point here is not the lack of a multiplicative identity in the mathematical sense, but that predictable arithmetic errors have occurred. A little thought will show that the same erroneous results can occur any time one of the factors is an exact power of 2. However, in the CDC machine the error is always limited to the last bit while it will involve the last four bits when it occurs on the system/360. The replacement of the expression 2.0 x x, for instance, by x + x saves on the average about !1 bit per operation on the CDC machine, but saves almost 2 bits per operation on the IBM machine in double precision. Thus the discrepancy present in most binary machines is magnified by the use of base 16 arithmetic. The use of four guard bits in the IBM single precision mode effectively corrects the problem of renormalization in multiplication. Note, however, that single and double precision arithmetic no longer obey the same rules, hence there may be Fortran programs, for example, in which conversion from one precision to another will alter the arithmetic behavior. Consider next the use of N ewton-Raphson iteration for the square root. Let A be the square root of x, let Ao be an initial estimate of A and use the usual iteration scheme n= 1,2, ... to obtain successively better estimates. This is known to be a convergent scheme with {An} approaching A monotonically from above for n > O. If the iteration is continued until two successive estimates are equal, no further improvement is theoretically possible and we have the best estimate of A. But let us follow the iteration in detail with System/360-type arithmetic (we will use only 12 bits in the mantissa) assuming we are near convergence and A n -1 has a mantissa greater than ~. Say upon renormalization if single precision is used, and 16m X .1010 1010 0000 if double precision is in use. Note that the last three bits are of necessity zero in single precision in spite of the existence of the guard gits. Not only are more accurate estimates of A possible, but it may be that A > An with this method, contrary to the theory. Rewriting the iteration in the form An = A n-1 + !1(x/An_1 - An-I) for at least the final iteration clears up the problem. The original iteration scheme works quite well on the CDC machine, since the normalization shift after the addition involves only one bit and the multiplication by ~ is accomplished with no error by an alteration of the exponent in the results. Truncation vs Rounding As we have already seen, the four guard bits in the System/360 single precision operations offer protection in the case of multiplication. They offer no protection, however, against the build-up of truncation errors, even in short computations. Although this phenomenon is well known the following example of its effect may be of some interest to those who have never before witnessed it. Consider the computation of ~lx/3 dx vO by means of trapezoidal quadrature using a mesh size h = l/n, n= 2,4,8, ... ,256. That is, approximate y by the computation y= n h ~" j~O (jXh)/3 The Influence of M~chine. Design where the double prime indicates only half of the first and last terms are to be considered. It will become obvious that one would never carry out this particular computation in the manner we will describe, nor for the large values of n we will use. The justifications for this example are that it is not far from being a practical problem (one need only change the integrand) and it is possible to almost completely isolate the effect of truncation. We will actually construct the (jXh)/3 for the various values of j and sum them. For the choices of h made here the quantities j X h can always be expressed exactly as machine numbers, eliminating one possible source of error. Theoretically trapezoidal quadrature should give an exact answer for a linear integrand, eliminating a second source of error. Finally, if the integrand is computed in double precision as needed and then converted to single precision, the only remaining sources of error are possible inaccuracies in conversion to single precision and the summation process itself. Table I lists the results of the computation carried out with Fortran codes in single precision arithmetic, with the exception noted above, on both machines. The results are listed in octal and hexadecimal format to avoid the error contamination involved in conversion to decimal form. Note that the results on the CDC machine never stray too far from the correct results even when n becomes fairly large, whereas the System/360 results become progressively worse as n increases. Repeating the experiment in c~mplete double precision, nullifying the possible effect of computation of the integrand in a higher precision, made no essential change in the low order bit patterns. TABLE I Trapezoidal Quadrature Applied to J~x/3 a! 2 4 8 16 32 64 128 256 Correct Value CDC 3600 1775525252525254 1775525252525254 1775525252525252 1775525252525254 1775525252525252 1775525252525254 1775525252525252 1775525252525252 1775525252525253 For this particular example·>t!be IBM arithmetic shows up quite badly. In view of the short word length (24 bit mantissa) in single precision it is particularly important to use an algorithm that will minimize the accumulation of truncation error. Examples can be concocted which show that rounding errors can also build up quite badly, but rounding is. a .much less biased operation than truncation and is therefore not as likely to cause serious deterioration of results. It is also the author's feeling that effective remedial action on the part of the programmer, e.g., the rearrangement of computations so as to minimize error build-up, is easier when the machine arithmetic uses rounding than it is when the arithmetic uses truncation. Double precision One feature of recent computers has simplified rather than complicated the work of a numerical analyst-the inclusion of inexpensive (timewise) double precision arithmetic. The advantage of double precision accumulation of inner products in certain matrix problems is well known, as is the use of double precision accumulation of the corrections to the dependent variable in certain methods tor the SOlUtIOn of differential equations. 7 But there is one rather important usage of double precision which has been neglected in the literature. Let us consider the design of a subroutine for the exponential function y=eX • We recognize at the start that an argument fed to this routine will probably be in error because it is a machine number of finite length. Let Ay be the absolute error in y, and 8y=Ay/y dx in Single Precision Floating Point on CDC 3600 and IBM System/360 No. Points 307 IBM Systeml360 402AAAAA 402AAAAA 402AAAA8 402AAAA8 402AAAA7 402AAAA6 402AAA9A 402AAA87 402AAAAA be the relative error. For the exponential function, 8y=x8x and a rounding error of Y2 unit in the least significant bit of x for x = 80 can be expected to lead to an error of 40 units in the least significant bit of y. Many exponential routines yield errors of this order of magnitude even when the value of x is exactly 80, i.e., even when 8x = O. The inaccuracy lies in the argument reduction scheme usually used. We will assume we are using the CDC machine with its base 2 arithmetic in what follows, although this assumption is not crucial. A typical exponential routine then proceeds somewhat as follows. Let n = [xl{> n 2 + Y2] 308 Spring Joint Computer Conf., 1967 where [a] denotes the "integer part of a," and let g = x- n .J. n 2. Then reducing the problem of computing any exponential to that of computing the exponential of a reduced argument g where Igl ~J n 2/2. This last can generally be done quite accurately provided g is accurate. The greatest loss in accuracy occurs in the subtraction involving the two nearly equal quantities x and n' n 2. When these quantities agree for the first m significant bits, g may be in error in the last m significant bits leading to a large value of og independently of whether 8x is zero or not. I t is precisely here that double precision operations can save the day. Assume ox = 0, hence x can be con- verted to a double precision number with no introduced error. Since.l n 2 is a constant known to any precision desired, the produce n·.tn 2 can be found in double precision and the value of g determined quite accurately at a total cost of one double precision mUltiplication and one double precision subtraction. The cost of converting the single precision variables x and n to double precision and of converting g back again is generally quite small when programming is done in assembly language. This last conversion could even be simple truncation of the mantissa. Since Igl < .7, an error of 1 unit in the last bit of g will propagate at most as .7 unit in the last bit of ego The payoff for this technique can be quite large. Table II compares the results of computations of eX for x = 80( 1) 100 with routines differing only in the argument reduction scheme. In a systems library the accuracy obtainable in this manner is of utmost importance. Not only do users regard systems routines as "black boxes" which return correct results, but other systems routines do as well. It is not at all uncommon for an exponential routine to be called by the system routines for complex trigonometric functions as well as by the power routine, i.e., the routine to evaluate the Fortran expression x**y. The basic CDC 3600 library developed at Argonne National Laboratory uses this argument reduction technique in almost all of the real and complex trigonometric routines as well as the power routine. Computations with these routines rival in accuracy computations made by converting the independent variable to double precision and using the appropriate double precision routine. It is generally even more accurate to evaluate x**I by converting I to floating point and using the floating point power routine than it is to use the integer power routine directly. Single precision floating point operations that produce double length results, as in the CDC machine, can also be quite useful. Consider the computation of erfc(x) = f V;x ~ e- t2dt Table II Error in units of least significant bit for computation of eX on a CDC 3600 in single precision floating point. AnError of -20 indicates the computed result was 20 10 units low x 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Error using standard argument reduction Error using modified argument reduction 0 0 -1 48 54 6 -16 -28 76 35 27 7 -16 -47 57 54 19 3 -13 85 87 39 27 0 0 1 0 -1 -1 -1 0 0 1 0 1 0 -1 0 -1 0 0 0 for large values of x by means of the asymptotic expansion (2m-I)!! 1 erfc(x) = V 7T where (2m-I)!! = x (2x2)m 1 1.3.5 ... (2m-l) for m > 0, for m=O. { 1 For x large enough the main source of error lies in the evaluation of e- x2 • Even if x is considered to be exact, i.e., oX = 0, the product x2 used as an argument for the single precision exponential routine has an error in the least significant bit due to rounding. Double The Influence of Machine Design precision argument reduction within the exponential routine cannot save the computation, but an analogous reduction before entry to the exponential routine can. The quantity x2 can be formed accurately to double precision by either converting x to double precision and squaring, or by squaring x in single precision while suppressing the rounding and renormalization of the double length product. Computation of the reduced argument g can then proceed as outlined above, and it is this reduced argument which is transmitted to the exponential routine. SUMMARY Through the use of some elementary examples we have shown that the design of the arithmetic unit of a computer can influence the design of accurate numerical subroutines. The author firmly believes that the design of an algorithm does not end with its presentation in an algebraic language, but that it must change in detail as it is implemented on various machines. REFERENCES ROBERT T GREGORY On the design of the arithmetic unit of a fixed word ienRth 309 computer from the standpoint of computational accuracy IEEE Transactions on Electronic Computers EC 15 p 255 1966 LEONARD J HARDING JR Idiosyncracies of system 360 floating point presented at SHARE XXVII Toronto Canada 1966 3 R WHAMMING W KAHAN H KUKI C L LAWSON Panel discussion on machine implementation of numerical algorithms Presented at SICNUM meeting Los Angeles California 2 1966 4 R MONTEROSSO Differenze nella rappresentazione e nella arithmetica floating tra Ie serie IBM 700 7000 E la serie 360 errori di arrotondamento nelle operazioni elementari floating point dei calcolatori della serie IBM 360 Report Eur 2777 i Comunita Europea Del'Energia Atomica Ispra Italy April 1966 5 JOHN H WELSCH Proposed floating point feature for IBM system 360 presented at SHARE XXVII Toronto Canada 1966 6 H RJ GROSCH Programmers: The industry's Cos a Nostra Datamation 12 p 202 1966 7 RICHARD KING Reduction of Roundoff Error in Gill Runge Kutta Integration Argonne National Laboratory Applied Mathematics Division Technical Memorandum No 22 Argonne Illinois June 1961 Base conversion mappings* by DA YID W. MATULA Washington University St. Louis, Missouri (2) is onto if and only if INTRODUCTION AND SUMMARY f3 n- 1 Most computers utilize either binary, octal or hexadecimal representation for internal storage of numbers, whereas decimal format is desired for most input, output and for the representation of constants in a user language such as FORTRAN or ALGOL. The conversion of a normalized number in one base to a normalized number in another base is beset with difficulties because of the incompatibility of exact representations of a number when only a limited number of digits are available in each base. Specifying conversion either by truncation (sometimes called chopping) or by rounding will define a function mapping the numbers representable with a fixed number of digits in one base into the numbers representable with some fixed number of digits in another base. Practical questions which immediately arise are: (1) Is the conversion mapping one to one, i.e., are distinct numbers always converted into distinct numbers? (2) Is the conversion mapping onto, i.e., is it possible to achieve every distinct number representable in the new base by the conversion of some number representable in the old base? Excluding the case where both bases are powers of some other base (e.g., octal and hexadecimal), we show that a conversion mapping, whether by truncation or rounding, can never be both one-to-one and onto. Specifically, our major result, the Base Conversion Theorem, says: Given a conversion mapping of the space of normalized n digit numbers to the base f3 into the space of normalized m digit numbers to the base v, where f3i =1= ,) for any non-zero integers i, j, the conversion mapping via truncation or rounding (I) is one-to-one if and only if vm - 1 ~ ~ vm-I The necessary condition for the existence of a one-to-one conversion intuitively appears overly severe, as the condition v m ~ f3n is sufficient to assure a one-to-one conversion of all integers from 1 to f3 n • However, there are essential difficulties of numerical representation to different bases not related to the nature of the conversion method which indeed make this more restrictive bound necessary. From a practical viewpoint these difficulties will often occur for numbers of a reasonable order of magnitude, i.e., well within the limitations on exponent size required for the normalized number stored in a computer word. For example, conversion of normalized four digit decimal numbers into pormalized four digit hexadecimal numbers is not one-to-one, and to see this consider the number 65,536 (i.e. 64K, which is certainly not considered too large by most computer users), and note that .100016X165 = 65,536<.6554XIOS< .6555xIOS<65,552 = .1001 16XI65 • Thus the two distinct four digit decimal numbers .6554 x 105 and .6555 x 105 will be converted by trucation into the same four digit hexadecimal number .] 00016 X 165 . The necessity of having five hexadecimal digits to distinguish .6554 x lOS from .6555 x 105 is surprising when it is observed that the four digit decimal integers 1000 through 4095 may all be converted exactly utilizing just three hexadecimal digits. The conditions of the Base Conversion Theorem assert the impossibility in general of a decimal to binary or binary to decimal mapping being both oneto-one and onto. Thus from a practical viewpoint, some compromise must be made when determining the number of significant digits allowable in the normalized decimal constants of a user language given a fixed size binary (or octal or hexadecimal) word available in some computer hardware. This problem is discussed in the final section. f3n-1 *This research was performed under USPHS Research Contract No. ES-OOI39-01. 311 312 Spring Joint Computer Conf., 1967 Significant spaces and normalized numbers The notion of normalized number relates to how a number may be represented. Care must be taken in forming a precise definition of a space of normalized numbers so that a number is not confused with the representation of the number; i.e., in defining the space of three digit normalized decimal numbers, we do not wish to include ".135" and at the same time exclude ".1350," as they indeed represent the same real number. Hence we wish to think of the "space of n digit normalized numbers to the base {3" not as a set of representations, but as a set of real numbers which may be given a specified form of representation. Definition: For the integers {3 ;::: 2, called the base, and n ;::: 1, called the significance, let Sn be the following set of real numbers S~ = {xlixi = ~ ",{l'-i, j, ai integers, o ,,; ai ,,; fl-) for ) ,,; i ,,; n} Definition: For x € sg, x#O, x' is the successor of x in S~ if and only if = min S~ Corollary 2: For x for any integer i S~ € and any integer i The relative difference between a number in S$ and its successor is a measure of the accuracy with which arbitraily chosen real numbers may be approximated in S~. It is desirable to have this relative difference depend on the magnitude of the numbers involved and not on their sign of course they must both have the same sign). Definition: The gap in S~ at y € S~ for y # °is de- noted by y~(y) where y~(y) = (y' - y)/y for y>O What we have called the significant space, S~, may be interpreted as the space of normalized {3 -ary numbers of n significant {3 -ary digits along with the number zero, since the elements of S~ other than zero are exactly those numbers which may be given a normalized n {3 -ary digit representation. We have tacitly assumed no bound on the exponent but the possible effects of bounding the exponent size are considered in the final section. U sing the natural ordering of the real numbers every number in S~ other than zero will have both a next smallest and next largest neighbor in S~. These numbers play an important part in the discussion of conversion, so that we introduce the following notation. XI Corollary I: In {y I y > x, Y E sg} To avoid ambiguity we occasionally use [x]' for x'. Examples: for y X<5 > X<6 >X <7 >X <6 >X <;) >X < 1) >X < 11) XC 12>, ~ UL L' Y<1)Y <8 >Y <9>Y<10>Y<11 >Y< 12> X(7) X X<=»X0, a j can be chosen such 0:::; ai :::; {3-J for 1 :::; i :::; n. Clearly y' - y = (3j-n, so that yn,B(Y) = (y' - y)/y = (3j-n/(aI{3j-I + a2{3j-2 + ... + a n{3j-n) + a2{3n-2 + ... + an) = 1/(aI {3n-l The minimum on the right occurs when ai = (3-1 for all i, and the maximum occurs when a I = 1, CX2 = lX3 5123'=5124 [-.18 X 10I5} = -.1799 X 10 15 9.999' = 10 70700' = 70710 = ... an=O. Thus' l/{3n-l :::; y3(Y) :::; 1/({31L-i) for all Y E S/1, y > 0, and since y8(-Y) = y~(y) the bounds hold for all Y E S~, Y # 0. Note that y~ and y~ ({3IL- i) ({3n-l) = 1i(fin_I) = 1//3n-I Base Conversion Mappings* Therefore both bounds are achieved and the lemma is proved. Definition: The minimum gap g(S~) and the maximum gap G(S~) are given by sg, Y ¥= o} g(S~) a < f3 i /vi < a = 11(j3fL-1) = ]If3 n - 1 It is sufficient to prove (*) for a ~ 1, since interchanging the roles of f3 and v will then verify (*) for a ::::; 1. Furthermore it is now shown that the validity of (*) for a = 1 implies the result for all a ~ 1. Given a ~ 1, E > 0, let E' =E/a and assume m, n > can be chosen such that Observe that for y E S~, Y ¥= 0, tht? difference y" - y' is either the same as y' - y or differs by a factor of f3, and that on a log-log scale all points of the graph of the gap function will lie on a saw tooth function. Figure 1 shows the saw tooth functions corresponding to Y~o(Y), Y~o(Y), Y~6(Y)' and y~5(y). Note that there are much bigger jumps in the gap function with a larger base, so that a binary system comes closest to having uniform precision. It is reasonable to expect that a sufficient condition for a base conversion mapping to be one-to-one is that the minimum gap in the old base be at least as large as the maximum gap in the new base. Figure 1 suggests that if this condition does not hold and if the gap function of the old base does not share some common period with the gap function of the new base, then there will exist some range of numbers where the gap function in the new base is larger than the gap function in the old base. If this region is sufficiently long, a conversion mapping of the old base into the new base could not be one-to-one over this region. To confirm these observations we begin by proving a number theoretic theorem which is of independent interest. A number theoretic result Theorem 1: If f3, v > 1 are integers such that f3i ¥= vi for any positive integers i, j, then the space of rational numbers of the form f3 i /vi, where i, j are positive integers, is dense in the positive real line. That is (*) for any a~ 0, E > 0, there exist ij > such that ~ 1 may be determined so that (f3 m l v n)k > a Therefore (f3 ml vn)k-l ::::; a a < (f3 ml v n)k < (f3 ml v n)k-l (1 + E') ::::; a( 1 + E') =a+E Hence with i = k·m, j = k·n a < f3 i /vi < a + E Thus to prove the theorem we need oi1ly show that Then k ° +E ° Thus from the Lemma G(S~) Proof: °: : ; g(S~) = min {Ye(Y) lYE S~, Y ¥= o} G(S~)= max {Y~(Y) lYE 313 (**) for any E > °there exist i, j, > ° such that I < f3 i /vi < 1 + E. Let 8 = inf {f3 i lvi I f3i ~ vi, ij>O} Assume 8 > 1. Then k ~ 1 may be determined to satisfy 8k ~ v 8k - 1 < v Since then 8k < v8, the definition of 8 assures the existence of m, n > and 8' ~ 8 where 8' =f3ml v n Thus (8')k < v 8 f3mklvnk+l = (8')kl v ~ 8klv ~ 1 ° and f3mklvnk+l = (8')kl v < 8 But this contradicts the definition of 8. Therefore 8 = 1. It is not possible to have i, j > for which the limit 8 = I = f3 i /vi is achieved, since f3i ¥= vj for i, j > by assumption in the theorem. Therefore (**) must hold, proving the theorem. For completeness we include the following Corollary: If 1f31, Ivl > 1 are integers such that If3P ¥= Ivl j for Figure I -Gap functions ° ° 314 Spring Joint Computer Conf., 1967 any non-zero integers i, j, and if either f3 or v or both are negative then the space of rational numbers of the form f3 i /-,), where i, j are positive integers, is dense in the real line. Proof: Apply theorem 1 to b = f32 and v = v2 to show density in the positive real line for the rationals bi/v j • Then either multiplication by f3 (or division by v) of the fractions bi/v j will show the density in the negative reals. Note that the conditions f3i =1= -,} for any non zero integers i, j, is equivalent to saying that f3 and v are not both powers of some common base. This condition is clearly necessary for theorem 1 to hold as otherwise we would only be able to generate powers of this common base. The fact that this theorem can hold even when f3 divides v (or when v divides f3) separates this result from a major portion of number theoretic results where a g.c.d. of unity is an essential condition. Conversion mappings Since the two spaces S~ and S~ are both sets of real numbers, elements of these spaces may be compared with each other by the natural ordering on the real numbers. Utilizing the successor function we now define the conversion mappings. Definition: The truncation conversion map of S8 into Sr:;, T: S~~ S~, is defined as follows: for x E S~ , YES,:] T(x) = y for x > 0, y ~ x < y' T(x) = y' for x < 0, y < x ~ y' T(O) = 0 Definition: The rounding conversion map of S8 into S~, R: S~ ~ S~, is defined by: for x E S~ , YES,:] R (x) = y' for x > O(y + y')/2 ~ x < (y' + y")/2 R(x) = y' for x < O(y + y')/2 < x ~ (y' + y")/2 R(O) =0 Note: The above definitions are for the usual truncation and rounding by magnitude with sign appended, so that T(-x) = - T(x) and R(-x) = -R(x) for all x E SZ. Assuming a truncation or rounding by algebraic size (for which the above symmetry does not hold) would not change the main body of our results, but would require more tedious proofs, i.e., conversion of negative numbers would have to be treated seperately in the proofs. With these" preliminaries we are now ready to state and prove the major result. Base Conversion Theorem The truncation (rounding) conversion map T: S~ ~ S~ (R: S8 ~ Sr:;), where f3i =1= -,) for any non-zero integers i, j, (1) is one-to-one if and only if vrn - 1 ~ f3n-l (2) ~s onto if and only if f3 n- 1 ~ vrn -l Proof: The theorem will be divided into eight parts. (i) (ii) (iii) (iv) (v) (vi) (vii) (viii) vm- 1 ;:::. vrn- 1 < vrn- 1 ;:::. vrn- 1 < W- 1 ;:::. {3" {3" {3" {3" -} -1 -1 -} vrn-} {3"-1 < vrn-} W- 1 > vrn-} {3"-1 < vrn-} =>T: =>T: => R: => R: =>T: =>T: => R: => R: S"1l ~ snll ~ smp sm" S"1l ~ sm" S"1l ~ sm" S"1l ~ sm" S"1l ~ smp S"1l ~ sm" S"1l ~ sm" is one to one is not one to one is one to one is not one to one is onto is not onto is onto is not onto For brevity we shall prove here only parts i, ii, and vi which are illustrative of the methods used. The complete proof is available in reference (1). vrn- 1 (i) ~ f3n -1 => T: S8 ~ S~ is one-to-one: Assume that vrn - 1 ~ f3n -1. Note that this is equivalent to saying that the minimum gap in S~ is greater than or equal to the maximum gap S~. g(S~ ?- G(S~) Given x, y E SR, x =1= y, we must show T(x) =1= T(y). If either x or y is zero or if x and yare of opposite sign the result is immediate. Furthermore if both x and yare negative and T(x) = T(y), then also T(-x) = T(-y). Hence it is sufficient to consider the case x > y > O. x ~ = y + {(x-y)/y} y T(y) + g(SZ) T(y) + G(S~) T(y) ~ T(y) + {{[T(Y)]' - ~ T(y) T(Y)}/T(Y)} T(y) = [T(y)]' Thus T(x) ~ [T(y)]' and T(x) =1= T(y). Base Conversion Mappings* This proves the sufficiency of the condition vm- 1 ~ {3n -1 for the mapping T to be one-to-one. (ii) vm- 1 Let T: < {3n -} => T: S~ ~ S~ ~ S~ is not one-to-one. sm and assume vm- 1 < {3n -1. Multiplying by (v 1 - m(3-n) < v1 - m_(3-rL.{3-n vl-m or 1 < (1-{3-n) (1+v 1 - m) so that 1/(l-{3-n) < (l+v 1- m) By theorem 1 there exists integers i, j > 0, such that 1/(l-{3-n) < {3i/,} < 1 +v 1 - m Thus ,} < {3i (l_{3-n) < ,} (l+v 1- m) (l_{3-n) < ,} (l+v 1- m ) and using corollary 1 of the definition of successor ° The inequalities above imply T(f3i (l_{3-n» = T ({3i), so that T: S~ ~ S~ is not one-to-one. (vi) (3n-l < v m -1 => T: S~ ~ S~ is not onto: Given g(S~) < G(S~), then by (ii) the truncation map of S~ into S~ is not one-to-one, so that for some y E S~, X E S~ (x,y>O may be assumed) where the successors are taken in the appropriate spaces. Now ify > x, then T: S~~ S~ is not onto. If y = x by theorem 1 we choose ij > °such that x'/y' > ,}/{3i > 1 and observing that {3i [x]' = [{3iX]', ,} [y]' = [,}y]', Hence ,}y E S~ is not covered and T is not onto. Observe that the one to one and onto conditions of the Base Conversion Theorem yield immediately the following: Corollary: The truncation (rounding) conversion map of S~ into S~ is onto if and oniy if the truncation (rounding) conversion map of S~ into Sn is one-toone. 315 CONCLUSIONS AND APPLICATIONS Base conversion introduces a form of error purely of numerical origin and not due to any uncertainty of measurement; the reality of this error, however, cannot be ignored. Just as it is preferable in reporting experimentally determined values to give a number of significant digits which reflect the accuracy of the measurement (no fewer digits, since useful information may be made unavailable to other researchers; no more digits, since the implication of additional precision is unfounded and may lead to spurious deductions), it is similarly desirable, after conversion of a number, to have the number of "significant" digits in the new base reflect the precision previously available with the number of digits used in the old base. Therefore, it is reasonable to require that the new base should have no fewer significant digits than the number necessary to allow the conversion mapping to be onto, nor more significant digits than is necessary for the conversion to be oneto-one. The Base Conversion Theorem has shown, in general, that these bounds on the number of digits must be different, and we now consider what the bounds are and how big are their respective differences. For the conversion of snj3 into a space with base v,we define both an onto number and a one to one number. Definition: The onto number, O(S~,v), and one-toone number, I(Sg,v), for the conversion mapping of S~ into a space with base v, are given by O(S~, v) = max {m I T: S~~ S~ is onto} I(S~, v) = min {m I T: S'1~ S~ is one-to-one} Note that R (rounding conversion) could have been used instead of T (truncation conversion) in the definition, and the same result would be obtained. From the Base Conversion Theorem we have: Corollary 1: If {3i =1= ,} for non-zero integers i, j, then (i) O(S~, v) = max {m I {3n-l ~ v m -1, m an integer} (ii) I(Sg, v) = min {m I vm- 1 ~ {3n -1, m an integer} (iii) I(S$, v) > O(S~, v) For computer applications the interesting conversions are between decimal and some variant of binary. Thus for "input" conversions, let {3 = 10, v = 2i, where i is 1 for binary, 3 for octal, and 4 for hexadecimal. Observe that the condition 10n- 1 ~ 2im -1 cannot be an equality for any n ~ 2, since the left hand side is then even and greater than zero whereas the right hand side is either odd or zero. 316 Spring Joint Computer Conf., 1967 Thus for n 2 and 1Qn-l ~ 2 im we have (n-l) m ~ -.-log2 10 linear functions of n with the same slope (log210)/i. Thus the difference between O(Sl~' 2i) and I(S1O, 2i) is essentially constant and does not grow with n, being equal to either [(log210)/i] +2 or [(log2 10)/i]+3. ~ I U sing the number theoretic function [x] for the greatest integer in x yields Corollary 2: For n O(Sl~' 2i ~ 2, i ~ Table I lists the cases of interest for conversion of decimal input to the commonly used variants of binary representation in computer hardware. For completeness note that the "output" conversions, {J=2i and v=10, can be derived by the above approach. Corollary 4: 1, = [n(log21 O)/i - (log21 O)/i] By reasoning as above with n ~ 1, 2i(m-l) implies that 2i(m-l) > Ion so that: ~ Ion - 1 O(S~, Corollary 3: For n ~ 1, i ~ I(S~, 9 1 Maximum Digits for Onto Conversion Minimum Digits for One-to-One Conversion I I 2 3 4 5 6 7 8 3 6 9 13 16 19 23 26 29 33 36 39 43 46 49 53 56 59 63 66 69 73 76 79 5 8 11 15 18 21 25 28 '7 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 TABLE I: 10) = [n(i log 2) + 2] for n 1, i ~ 1 ")1 J 1 35 38 41 45 48 51 55 58 61 65 68 71 75 78 81 85 ~ 2, i ~ 1 HEXADECIMAL OCTAL BINARY () ~ The criteria for a conversion map to be one-toone, is strictly speaking, the necessary condition for the whole space sn to be mapped into sm in a Note that both O(Sl&, 2i) and I(Sl~ 2i) are, except for the fact that they must take on integral values, NUMBER OF DECIMAL DIGITS 10) = [n(i log 2) - i(log2)] for n 21 1, Maximum Digits for Onto Conversion 0 1 2 3 4 5 6 7 8 9 I1 12 13 14 15 16 17 18 19 21 22 23 24 25 26 Minimum Digits for One-to-One Conversion 1 4 5 6 7 8 9 10 Maximum Digits for Onto Conversion 0 0 1 2 3 4 4 5 Minimum Digits for One-to-One Conversion 2 3 4 5 6 6 7 8 1 1 6 9 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 7 8 9 9 10 10 11 11 12 13 14 15 16 16 17 18 19 20 21 21 22 1 1 11 12 13 14 14 15 16 17 18 19 19 Bounds for Onto and One to One Conversions of Decimal to Binary. OClal, or Hexadecimal Systems Base Conversion Mappings * one-to-one fashion. Naturally certain ranges of values in sn may be mapped in a one-to-one fashion even though the criteria prn-l ~ f3n -1 is not satisfied. The computer hardware representation of a number places a limit on the size of the exponent as well as on the number of digits allowed. Thus only a given range of numbers in SD{3, say, e.g., between 10-40 and 1040 , need be mapped one-to-one in order to effect a one-to-one conversion. However, unless the decision criteria for a one-to-one conversion, ~/rn-l ~ f3n -1, is very close to being satisfied, there will almost certainly be a value x well within the range 10- 40 ~ X ~ 1040 such that x and x' are converted to the same number. For example, it may be verified that for decimal to hexadecimal conversion the number .0625 and its successor in sn 10 will both be truncated to the same value in S\6 (sn10,16)-1 for all n from 3 to 25 except n=5, 11, 17, 23. With decimal to octal conversion, 8 and its successor in sn 10 will both be truncated to the same value in S8' G=I(SlO, 8)-1), for n from 3 to 25 except n=10, 19, and an even more critical region for decimal to octal conversion is the neighborhood of .991 x 1028 . Our point is that the necessary bounds reported in Table I are not required because of pecularities with pathologically large or small numbers, but are generally applicable for the range of magnitude of floating point numbers handled in computer hardware. For the computer programmer utilizing decimal input, a one-to-one conversion into machine representation is desirable from the point of view of maintaining distinctness between two unequal decimal numbers. On the other hand an onto conversion map allows the programmer to achieve every distinct numerical machine word and, therefore, more fully utilize the machine hardware capabilities. Unfortunately decimal-binary conversion cannot be both one-to-one and onto, so some compromise must be made. There is one case, in this author's opinion, where '(6 ( 16 3I7 the decision in favor of a one-to-one conversion should be mandatory. That is in a more sophisticated implementation of a user language where the number of digits in a decimal constant is used to signal either "single precision" or "double precision" machine representation. Then the allowable constants which specify single precision should be in a range where conversion into machine representation is by a oneto-one mapping. This is necessary to prevent the anomally of having two distinct decimal constants become identical in the single precision machine representation when these same two decimal constants written with trailing zeros (forcing double precision representation) would receive distinct machine representations in double precision. For example in an implementation of FORTRAN where normalized decimal constants of 7 or less digits are converted by truncation (or by rounding for that matter) to 6 hexadecimal digit normalized numbers and where 8-16 digit decimal constants are converted to 14 hexadecimal digit normalized numbers, the logical expression 512.0625 .EQ. 512.0626 would be true whereas 512.06250 .EQ. 512.06260 would be false. This problem could and should be eliminated by specifying, according to our theorem, single precision only for constants of 6 or less decimal digits, and double precision for constants of 7 or more decimal digits. Alternatively a more refined test could be made by first determining if the number y E Sl~ falls in a range where Yl~ (y) > yto (y), and if so, then prescribe double precision representation for y. Figure 2 shows that those intervals where Y166 (y) exceeds Yl~ (y) are erratically spaced and cover a substantial portion, amounting to about 40% on the > Y7 10 --- -- - Figure 2 - Comparison of the gap functions 1'1;) (y) and 6 I'l~ (y). The subintervals where 1'1 6 > 1'1 0 are shown to comprise about 40% of the interval I ~ y ~ 1020 (measured on the log scale) 7 318 Spring Joint Computer Conf., 1967 log scale, of the interval 1 ~ y ~ 1020 • This agrees very well with the limiting frequency of the range where 1'166 (y) exceeds 'Yl~ (y), which is given by [log(l6- 5 /lO- 7)]!(2 log 16) = 40.68%. Utilizing the comparison of gap functions we can verify that a simple test allowing a one-to-one conversion mapping of S7 10 into either S6 16 or Sl\6 is to map a given number of S7 10 into S6 16 if the leading non-zero hexadecimal digit of the converted number is strictly greater than the leading non-zero digit of the original decimal number, and otherwise map into Sl\6· I n general, the practical relevance of the Base Conversion Theorem to digital computer data handling can be summarized by observing that if we were to postulate the goals of Table I I there is an essential incompatibility between the uniqueness of conversion goal and the optimal utilization of storage goal. Thus when a "systems" decision on the number of digits Goals of Machine Design Goals of Numerical Representation (1) Accuracy and Uniqueness of conversion (2) Accuracy of caicuiations ( I) Optimal use of available storage (2) Convenience of machine logic Table II allowable for decimal constants in the implementation of a user language is made, the user should become aware of where and why the compromise was made to avoid certain "unexpected" results. REFERENCE~ ~ V 'l.r 'II A.,.....' 11 A YY lVll"\.1 ULl"\. Base Conversion Mappings Report No AM-66-1 School of Engineering and Applied Science Washington University St Louis Mo Accurate solution of linear algebraic systems-a survey by CLEVE B. MOLER University of Michigan Ann Arbor, Michigan INTRODUCTION As it is usually practiced, Gaussian elimination begins by attaching the right hand side b to the matrix A as an additional column, al'D +1 == bl, i == 1, ... , n. Let us denote this initial rectangular array by a (~j) Then the forward elimination is performed by subtracting appropriate multiples of each row from the succeeding rows. The algorithm is for k == 1, . . . , n - 1, for i == k 1, . . . , n, mI,k == a(k)/a(k) i.k k.k Many problems encountered in computing involve the solution of the simultaneous linear equations (1) A x == b where A is a n-by-n matrix, _ A _ [~l'l 0 0 0 ~l,n 0 0 o 0 an,l 1 + an,n and b and x are vectors. Most people interested in computing are familiar with the basic concepts involved in solving. such a system, but there are several useful refinements and extensions that are not so well known. It is the purpose of this article to introduce the non-expert to these ideas. Several of the newer ideas, as well as clarifications of older ones, are due to J. H. Wilkinson and are summarized in his book. l Many people, including this writer, are indebted to G. E. Forsythe for their knowledge of this field. Forsythe's recent survey\! contains an extensive bibliography together with material on related topics. A forthcoming text3 contains most of the details we will omit here, as well as computer programs which implement the techniques. (2) + + for j == k 1,. . .. , n 1 a(k+ l ) == a(k) _ m a(k) 0 i.i ij i k This produces the triangular array a(l) all) a(1) a(1) • 1,1 1.2 1.3 a(2) a(2) 2,2 l,n a(2) a(1) l,n+1 a(2) 2,n 2.n+l a(n) n,n a(n) n.n+l 2.3 • 0 kj Letting YI == a ~I~ 1 i == 1, . . . n, this array represents a set of equations A(D) x == y j that is equivalent to the original one, but which is easily solved. The back substitution carries out this solution by using for i == n,n-l, ... , 1, (3) Gaussian elimination and triangular decomposition Xj == The numbers a(k) are called the pivots. If any of ,k them are zero, the corresponding division can not be done and the above algorithms break down. We will return to this point. The quantities mt,k are called the multipliers. Some applications require solution of equations involving the same matrix A, but several different right hand sides b, each of which depends upon the solution corresponding to a previous right hand side. To handle this situatio~, we observe the matrix A (D) need be The most common method for solving (1) is Gaussian elimination. Unless it is known that A has some special properties, such as being positive definite or having many zero elements, this method is also the most efficient in the sense that no other can involve fewer basic arithmetic operations. With this method, it is easy to solve a 150-by-150 system in a few minutes on many computers. Larger systems often involve special matrices that make other methods more appropriate. l ... 321 322 Spring Joint Computer Conf., 1967 computed only once and used with as many right hand sides as necessary. The algorithm for computing A(D) is (2), with j going only to n instead of n+1. This requires roughly ~ n 3 multiplicative operations. Once A (D) and the multipliers ml,k are available, a right hand side can be processed witli two simple steps requiring only n2 multiplicative operations. The first step is the j == n + 1 part of (2) which can be rewritten for i == 1, 2, . . . , n, i-I (4) Yi == b i - I ml,j Yj 0 j=1 The second step is the back substitution (3). This interpretation of Gaussian elimination is also important for other reasons. It may be summarized by using matrix, rather than component, notation. Let 1 m 2 ,1 1 L ( ~3'1 3 ,2 ~ ~mn'l n: m n ,2 mn,3 0 • mn,n-l and J Then it is not hard to show that A==LU. The matrices Land U together form a triangular or LV-decomposition of A. Note that the diagonal elements of U are the pivots. Since A == LU, the system of equations Ax == b becomes LUx == b which is actually the two easily solved triangular systems Ly == band Ux == y. In particular, this accounts for the similarity between (4) and (3). Several right hand sides could also be handled by first computing A-I, but this is less efficient and usually less accurate than using Land U. Pivoting and scaling We observed that (2) and (3) are impossible if any of the pivots are zero. Computing intuition consequently tells us that (2) and (3) may involve serious roundoff errors if any of the pivots are nearly zero. This can be confirmed by example. The solution of the system (1 ~ i) (::.) -4 = (~) rounded to 3 significant digits, is Xl == 1.00, Xz == 1.00. Naive application of (2) on a computer carrying 3 significant digits gives 1 ( - 4 _1101 ) (~:) = (}l D. ) g Following with (3), we obtain Xl == 0, Xz == 1.00 which is a terrible result. On the other hand, if we first interchange the two equations above, we obtain the correctiy rounded solution without difficulty. A key to the trouble is the fact that without the interchange the multiplier m2 ;1 is 10\ whereas with the interchange it is 10- 4 • It turns out in general that if the multipliers satisfy (5) !mi;k! L 1, then the computed solution can be proved to be accurate. Condition (5) can be insured by the use of partial pivoting: At the k-th step of the forward elimination, the pivot is taken to be the largest (in absolute value) element in the unreduced part of the k-th column, that is {a:.:), i = k., ... , n}. This can be implemented on a computer by either actually interchanging the appropriate rows in storage or by using a double indexing scheme involving references to ap(i),j in place of ai.j. The latter choice appears more efficient in most situations. For details, see reference 3. The use of complete pivoting involves finding the largest element in the entire unreduced submatrix. It has some rare advantages ([1], p. 97), but involves much more computer time. Experience indicates that partial pivoting is quite satisfactory in practice. If a row or column of A is multiplied by some scale factor, it is easy to make a compensating change in the computed x. Such scale factors are usually considered arbitrary in floating-point computation. However, they are intimately connected with pivoting and hence with accuracy. A common practice is to equilibrate the matrix beiorehand so that the maximum element In each row and column is between 1 and 10, say. However, consider the matrix 1 9 1 A = o 109 1 A column scaling yields 1 1 ) -J o ) (16 -i A.= cr whereas a row scaling yields Ar = ( ~1 -lb-9 16-0 10- 9 ) 9 While both Ae and Ar are equilibrated, Ac will be well behaved in any pivoting routine, but Ar will produce a singular submatrix. This shows that a matrix may have several equilibrated forms, some of which lead to excessive roundoff errors. The problem of finding better scaling criteria Linear Algebraic Systems is, as yet, unsolved. Fortunately, seriously scaling difficulties do not appear to be too common. Accuracy of the computed solution Let Xl denote the vector actually computed using (2), (4) and (3). Wilkinson1 has shown that there is a matrix dA and so that Xl exactly satisfies the equation (6) (A + dA) Xl == b. In other words, the computed solution Xl is the exact solution to a slightly different original equation. The matrix dA depends upon b and can be expressed, and actually computed if desired, in terms of the individual rounding errors at each step of the algorithm. It is possible to give an upper bound for the size of dA which does not involve b or the details of each step. In order to state the result, we define the norm of a vector to be IIzll == max Izd i and the corresponding norm of a matrix to be IIAII == max IIzil == II Az II 1 n L == max j Furthermore, let € denote the roundoff (or chopoff) level of the arithmetic being used. This is the largest number for which 1.0 € == 1.0. Finally, let + p== max i,j,k This is the size (relative to the original A) of the elements of the reduced submatrices. It can be computed during the elimination and is almost always less than one. With these definitions and Wilkinson's methods, it can be shown that /ldA11 L (n3 + 3n2 ) p € IIAII In practice the quantity /ldAII/"A!! is found to be considerably less than the indicated bound. It is easy to use (6) and (7) to derive a bound for the error in Xl. If X is the true solution to (1), then (7) llx~ -,xii Ilxlll L Iterative improvement If A and b are themselves subject to error of some kind, then (6) and (7) indicate ,that Xl may be as accurate an answer as is justified, in the sense that it is the exact answer to some system within the range of uncertainity of the given system. Frequently however, the components of A and b are assumed to be exact floating point numbers, and it is desired to compute the solution as accurately as possible. In this case, the error in Xl may be reduced by an iterative process. For m == 1, 2, . . . , the mth iteration involves three steps: (Sl) Compute the residuals, rm == b - Axm , (S2) Solve the system, Adm == rm, (S3) Add the correction, Xm + 1 == Xm + dm• The LU-decomposition of A used in finding the first approximation Xl may be used to solve the subsequent systems involved in (S2). Consequently, the complete iterative process usually requires only a fraction of the time originally required to compute Xl. The critical portion of the process is (Sl). It is necessary here to use an extended accumulated inner product which calculates the quantity n lai;j!. == 1 IIAII - "A-III - (n3 + 3n2 ) p € (8) The quantity IIAII- "A-III is the condition of A. It is a useful measure of the "nearness to singularity" of A. 323 bi - L a\',jXj j == 1 using multiplications which produce a high precIsIon product from working precision numbers and additions which retain the high precision. The final result is truncated to working precision for subsequent use. We say "working" and "high" rather than "single" and "double" because "working" may already be "double." For floating-point arithmetic, convergence of the process and the required relationship between high and working precision are investigated." This is an extension of the fixed-point analysis in [1]. To see the typical behavior of the process, let us say that for a particular matrix A and any right hand side, Gaussian elimination produces an answer with s correct significant figures. Then Xl will have s correct figures, d l will also have s correct figures, hence x" will have 28 correct figures, X3 will have 3s, and so on. The convergence is linear at a rate determined by the accuracy of (S2). If s == 0 then none of the Xm'S will have any accuracy and the complete Gaussian elimination would have to be done using higher precision. To be somewhat more precise, let X == A -lb be the true solution, and let k (A) == IIAII - IlA -111 be the condition of A and let €2 be the roundoff level of high precision addition. Then, ignoring less important terms, (9) IIx m - 'Ix/l xi! L [n3 p k(A) €r + € +nk(A)€2. 324 Spring Joint Computer Conf., 1967 The three terms on the right come from (S2), (S3) and (SI) respectively. A sufficient condition for convergence is that the quantity in brackets is less than 1, i.e. that A is not too badly conditioned. If this is satisfied, the error decreases until a limiting accuracy determined by the larger of the other two terms is reached. If it is also true that Ell L. ~, i.e. that high precision is at least twice working precision, then the limiting accuracy is E. Neither of these conditions is very restrictive and in almost all practical cases, Xa or X4 is found to be equal to the true solution, rounded to working precision. An example We conclude with a 2-by-2 example: A == (1 ~g~g~o :~~~~~), b == (~~j~~~). Using 5-digit, decimal floating-point arithmetic, we compute (no pivoting is necessary) L and == ~), (.9J118 X1 == U == (1.0g03 ~~~g~~) (1.2560, \1.2121) With a 10-digit accumulated inner product, we find .57000 • 10- 6 ) 1 ( r == .33715· 10- 4 . ' and then, using Land U, -.32210 • 10- 1 ) d 1 == ( .33502 - 10- 1 Continuing, .188-10- 5 ) 1.2238 ) X2 == ( 1.2456 , r2 == ( .900 - 10- 6 ( .2285 - 10- 3 ) I """.cr. 1.LVA-S ) •• \ - • ..c...JUJ (-.682 - 10- 5 == -.659 - 10- 5 .2717 - 10- 4 ) ( -.3315 - 10- 4 , 1.2240 ( 1.2454' r3 Xa ~ == Xs; ) , ds stop. Xa == A -lb to the 5 figures given. Note that Xl is accurate to only 2 figures. Since we used 5-figure arithmetic, this indicates that k(A) must be roughly 103 • In fact, k(A) == 3.97 • loa. Note also that ra is actually larger than r 2 , even though the error in Xa is less than that in XI. This phenomenon is typical, even in larger systems. It turns out that REFERENCES J. H. WILKINSON Rounding errors in algebraic processes H. M. Stat. Office and Prentice Hall 1963 2 GEORGE E. FORSYTHE Today's computational methods of linear algebra to appear in SIAM Review 3 GEORGE E. FORSYTHE and CLEVE B. MOLER Computer solution of linear algebraic systems Prentice Hall to appear 4 CLEVE B. MOLER Iterative refinement in floating point J. Assoc. Comput. Mach. vol. 14 1967 Recursive techniques in problem solving by A. JAY GOLDSTEIN Bell Telephone Laboratories, Incorporated Murray Hill, New Jersey results to his supervisor John N-1, who completes his task and reports his results to his supervisor John N-2, etc. Sometimes an intermediate supervisor, after receiving the result from his subordinate, may have to choose another subordinate in order to make a further call to program P. Thus, the chain of supervisors can oscillate in length before John 1 finally completes his task and reports the results to John. John is happy. The actual way in which a language with recursive facilities is implemented on a computer need not concern us here. However, the analogy gives the essence of how recursion works. INTRODUCTION Recursive methods have long been a standard tool of compiler writers. However, other kinds of computer users have not fully realized that recursion is a powerful technique for solving and programming problems. * Even when a language with recursive facilities is not available, an attack on a problem from a recursive point of view will often show how an iterative program can be written. . In this paper, three problems are approached usmg recursion: generation of permutations of N objects, evaluation of polynomials in several variables, and generation of all the spanning trees of a graph. These examples illustrate that, when applicable, recursive methods significantly reduce the difficulties of (1) formulating a solutio,n algorithm for the problem, (2) programming the algorithm, and (3) making the program readable. For those not familiar with recursive programming, the following anthropomorphic analogy may be instructive. John wishes to use a recursive program P which has within it a call to P. He makes a large number of printed copies of the program P and obtains the services of a large number of subordinates. To use the program P, John chooses a subordinate John 1, gives him a copy of P with a list of the arguments of P and tells him to follow the instructions in P and to report back when he is finished with his task. John 1 starts his task and finds in the process that he must call for program P with a new list of arguments. John 1 then chooses a subordinate, John 2, gives him a copy of P with the new list of arguments, and tells him to follow the instructions in P and to report back when he is finished with his task. John 2 starts his task and may have to choose a subordinate, John 3, who may have to choose a subordinate, John 4, etc. Eventually, a subordinate John N starts his task and finishes it without needing a subordinate. John N reports his Permutations The need to generate all the arrangements of N distinct objects often arises in combinatoric problems. Here is one such problem. In the layout of electrical packages, one often wants to place the packages on a frame so as to minimize the amount of wire needed to make the specified connections between packages. Sometimes the actual cost of wiring is crucial, but more often the desire is to minimize electromagnetic and electrostatic coupling between wires by minimizing the amount of wire. Consider the simple one-dimensional problem where the packages are all identical in shape and must be placed along a line. Let us simplify the problem further by assuming that the packages (N+2 of them) are points and are to be placed at the intege~ points 0, 1, ... ,N+ 1. The designer insists that two of the packages, the O-th and (N+ 1)st which are inputoutput packages, must be located at 0 and N+ 1. The interconnections are specified by C(I,J) - the number of connections between packages I and J. The location of package I is denoted by P(I) with P(O)=O and P(N+l) = N + 1. A naive approach to the minimization problem would be to compute the amount of wire ~ C(I,J) *Dynamic programming is one special form of recursion in use, but its area of applicability is limited. I 0 THEN RETURN (P(K) - 1 ELSE RETURN iP)K)j); END INTER; Polynomial evaluation Horner's method for evaluation polynomials: P=A(K) = A(K-l )*X + ... + A( 1)*X**(K-l) = ... (A(3) + (A(2) + A(1 )*X)*X)*X ... has the merit of requiring only 2(K-1) arithmetic operations. In this section we show how the computational advantage of Horner's method can be extended to polynomials in several variables. First, Horner's method is examined from a recursive point of view. Second, consideration is given the storage limitations due to the astronomical number of possible monomials in a polynomial in several variables. Clearly, we can store only the nonzero monomials. The effect of this mode of storage on the previous recursive method is then examined for the special case of polynomials in one variable and a new recursive method is given. Third, this recursive method is generalized to the case of many variables. Looking at polynomial evaluation from a recursive point of view, we note that P = A(K) + X*(A(K-1) + ... + A(1)*X**(K-2». That is, we can evaluate a polynomial with K terms if we can first evaluate a polynomial with K - 1 terms. This is the recursive step, and we can define a recursive program POLYVAL(A,X,K)=O =A(K) + X* for K,;:;O POL YV AL(A,X,K-l) for K~ 1. POLYVAL is just Horner's method. Before generalizing this to the several variable case, we should consider a storage problem. A polynomial in several variables can have (d 1+ 1) (d2+ 1) ... monomials where the i-th variable appears with maximal degree di . We cannot afford the storage for all these monomials and will store only the nonzero ones. The effect of this on Horner's method will be examined next, since, as is typical with recursive approaches, the special case is easily generalized. 327 Eliminating the nonzero monomials gives the polynomial A(K)*X**E(K) + ... + A( 1)*X**E( 1) with E(1) > E(2) > .... It can be expressed in the recursive form X**E(K)*(A(K) + (A(K-l )*X** (E(K-l }-E(K» + ... ». Thus, we can write the recursive procedure POL YV AL (A,E,X,K) = 0 = X**E(K)*(A(K)+ if K,;:;O POL YV AL (A,E-E(K),X,K-J» if K~ J Note that E - E(K) says: subtract E(K) from every element of E. The PL/I procedure below is an implementation of the recursion. In order that the fl.rray E of exponents not be modified and to avoid creating a temporary array, the procedure uses the device of saving E(K) in ELAST. POLYVAL:PROCEDURE (A,E,X,K) FOAT RECURSIVE; DECLARE (K,E(K), ELAST) FIXED,A(K),X) FLOAT; 1*ELAST IS THE EXPONENT OF THE PREVIOUS TERM. WE CANNOT USE E(K+ 1) SINCE IT DOES NOT EXIST ON THE FIRST INVOCATION OF POLYVAL.*/ ELAST = 0; GO TO START; P.V: ENTRY (A,E,X,K,ELAST)FLOAT; START: IF K = 0 THEN RETURN (0); IF E(K) = 0 THEN Y = 1.0; ELSE Y=X**(EK}-ELAST); RETURN (Y*(A(K) + PV(A,E,K-l,E(K») END POLYVAL; To generalize POLYVAL to several variables, we must change A(K) to a polynomial in several variables and modify the RETURN statement where A(K) appears. We assume that the polynomial in V AR variables is expressed as a sum of polynomials (called terms) each consisting of the product of a power of XCV AR) and a coefficient polynomial in the variables X( 1), ... , XCV AR-l). The coefficient polynomial has the same format. N ow we must specify the data structure for representing the polynomials. A PL/I structure for each 328 Spring Joint Computer Conf., 1967 of the terms of the polynomial will work very well. The structure must contain the exponent E; a pointer, COEF, to the polynomial which is the coefficient; a pointer, NEXT, to the next term in the polynomial; and a number VALUE which is the numerical value of the coefficient when the polynomial is a constant. We assume the exponent E in the NEXT term is larger than the present exponent. With this data format decided upon, the generalization of the previous procedure to the several variable case is not difficult. POLYVAL: PROCEDURE (P,X,VAR) FLOAT RECURSIVE; DECLARE P POINTER, /*A POINTER TO THE FIRST TERM IN THE POLYNOMIAL*/ VAR FIXED, /*THE NUMBER OF V ARIABLES*/ X(VAR) FLOAT, /*THE V ALUES OF THE V ARIABLES*/ ELAST FIXED, /*THE EXPONENT OF THE PREVIOUS TERM*/ 1 TERM CONTROLLED (P) 2 E FIXED, /*EXPONENT OF X(V AR) IN THIS TERM*/ 2 NEXT POINTER, I*POINTER TO THE NEXT TERM. ITS EXPONENT IS LARGER*/ 2 COEF POINTER, /* A POINTER TO THE FIRST TERM OF THE COEFFICIENT*/ 2 VALUE FLOAT; i*YALUE OF COEFFICIENT IF V AR = 0*/ PV: START: ELAST = 0; GO TO START; ENTRY (P, X, VAR, ELAST) FLOAT; IF P = NULL THEN RETURN (0); IF V AR = 0 THEN RETURN (VALUE); IF E = 0 THEN Y = 1.; ELSE Y = X(V AR)**(E-ELAST); RETURN (Y*(PV(COEF, X, VAR -1, 0) + PV(NEXT, X, V AR, E»; END POLYVAL; The McIlroy method for the generation of all spanning trees F or the analysis of electrical networks by topologi- cal methods, it is sometimes necessary to find all the spanning trees of a graph. M. Douglas McIlroy has developed an elegant recursive procedure for generating them [2]. In order to understand the algorithm we will first examine one that is less efficient but more transparent. The procedure is TREE1 (G,DE,T) where G is the graph, DE a set of edges deleted from G, and T is a tree of G which does not necessarily span G. For any T, the procedure grows all the spanning trees which contain T' as subtree. Each time a spanning tree is generated, it is handed to the user by calling his procedure JOB(T). JOB returns to the TREE! upon completion of its task and the next tree is generated. The process is initiated by ca11ing TREE 1 with DE and T empty. We describe TREEl in a dialect of PL/I. TREE!: Step 1. Step 2. Step 3. Step 4. Step 5. Procedure (G,DE,T) Recursive; If T is empty then T = any node of G; If T spans G then (call JOB(T); Return); Choose an edge e = (b,c) in G - DE with node b in T and node c not in T; If there are none, then return; /*We now grow all trees which contain T. These trees are divided into two disjoint kinds, namely, those which do not contain the edge e and those which do contain the edge e. */ Call TREEl (G,DE+e,T) Call TREEl (G,DE,T+e) Return; End TREE!; McIlroy's algorithm TREE is obtained from TREE! by making a crucial observation about step 3, At this step, an edge e, from node b in T to node c not in T, is chosen. At various other stages in the recursion, all the edges from c to other nodes in Tare considered, one by one. This set of edges is called an attachment set. McIlroy handles all these edges simultaneously by formalizing the notion of the attachment set of a node and introducing the notion of a family of trees. The attachment set ATCH(I) of a node I is a set of nodes which are adjacent to I and describes a set of iges at node I. A family of trees is described by the array of attachment sets A TCH( 1); ATCH(2), etc., one for each node of the graph G. A tree of the family is obtained by selecting for each I, one node NI from ATCH(I) and constructing the tree whose edges are {(l,N 1)}. Each possible set of selections gives a tree. As an example, consider the graph which is a square plus one diagonal. Its edges are (1,2) (2,3) Recursive Techniques (3,4) (4,1) (2,4). Then one family of trees is given by ATCH(l) = empty, ATCH(3) = {2,4}, ATCH(2) = {I}, ATCH(4) = {J,2}. This describes the family of trees 1. (2,1) (3,2) (4,1) 2. (2,1) (3,2) (4,2) 3. (2,1) (3,4) (4,1) 4. (2,1) (3,4) (4,2) The technique of generating the trees in families produces a tremendous increase in efficiep..cy. To facilitate the description of TREE, we use set notation. Let the graph G be described by giving for each node I, the set G(I), of nodes adjacent to I. Let NOD ES be the set of nodes of G and let TNODES be the set of nodes in the growing tree. Finally, let ATCH(I) be the attachment set at node I as above. The steps of TREE parallel those of TREE I except that the set of deleted edges DE is not used. Instead, the graph G is modified before making recursive calls and is restored before returnmg. TREE: Procedure (G, NODES, TNODES, ATCH) Recursive; Step 1. If TNODES is empty then add any node I to it; ATCH(I) = empty; Step 2. /*Does the family span G?*/ If TNODES = NODES then (call JOB (NODES, ATCH); Return;) Step 3. /*Construct a new attachment set.*/ Choose node I in NODES-TNODES which is adjacent to at least one node in TN 0 D ES; if there are none then return; TEMP = G(I) n TNODES; /*TEMP is the attachment set at 1*/ Step 4. /*Grow the family of trees which does not have edges from I to a node in TEM P. */ G G(I) = G(I) - TEMP; Call TREE (G, NODES, TNODES, ATCH); Step 5. /*Grow the family of trees which does have 329 edges from I to a node in TEMP.*/ G(I) = G(I) + TEMP; TNODES = TNODES U {I}; ATCH(I) = TEMP; Call TREE (G, NODES, TNODES, ATCH); Return; End TREE; REMARKS A recursive procedure sometimes runs more slowly than a corresponding iterative procedure. This phenomenon occurs in r.ecursive procedures which recompute the same quantity in different branches of the recursion. The wasteful recomputation can be eliminated by an exchange of storage for time. By allocating a table for intermediary results, with flags to indicate which entries have been computed, the procedure can retrieve previously computed values. U sing this technique, the recursive procedure, except for the cost of procedure calls, is just as fast as a corresponding iterative procedure. Moreover, the added storage is usually just that storage need to implement the corresponding iterative procedure. Some other problems which are ideal for a recursive approach are: adaptive integration,3 the towers of Hanoi game (also called the end of the world game), and determining if one multi variable polynomial divides another. REFERENCES S M JOHNSON Generation of Permutations by Adjacent Interchanges Math Comp 17 283-285 1963 2 M 0 MciLROY to be published 3 y.; M McKEEMAN Adaptive Numerical Integration by Simpson Rule Algorithm 145 CACM 5 604 1962 Statistical validation of mathematical computer routines by CARL HAMMER Ph.D. UNIVAC Division of Sperry Rand Corporation Washington, D. C. INTRODUCTION Increasing attention is being given to a host of problems associated with the use of the so-called mathematical subroutines in computational processes executed on digital computers. An assessment of the routines available today with most machines indicates a definite need for better validation procedures and for more carefully chosen terms in pertinent documentation. As a matter of fact, what is really required is simply greater adherence to "legal" documentation: to tell the truth, the whole truth, and nothing but the trust. certainly constant for O I DATA GATE I) Figure 16- Data gate logic associated with the transfer process below this module may communicate with the register. The dv process associated with the bottom input path initiates the dv process for the output path, thereby insuring that the dv process initiated by a lower module will propagate through this module and on to the register. The C element in the figure keeps the transfer sequence initiated by this module separate from transfer sequences initiated by lower modules. r-----, IDATA GATE~ 44----~1 ~14~----~'~---------- I I I t I I I I SD I Figure 14 - Data gate modules cascaded to allow data from three different sources to be transferred into a register module I ~I IL..- _ _ _ - 'I Figure 17 - Flow dia~.ram of the WE segment of a data gate module REGISTER DATA PATH ctlb I. I Figure 15 - Register logic associated with the transfer process Wordlengths of more than 12 bits are handled by laterally cascading data gate modules as described in the section on Wordlength Extension. The WE segment for a data gate is shown in Figure 17, and Figure 18 shows the assemblage of modules required for 36 bit transfers from three different sources. Jmplementation In present macromodular design, an initiation terminal accepts a binary input, a completion terminal produces a binary output, and a control signal is a change in value, either from 1 to 0 or from 0 to 1. The control elements are realized in asynchronous fundamental mode level logic form, and the state and output tables for each are given in Figure] 9. Logical Design Of Macromodules* 363 CKNOWLEDGMENT The authors wish to express their gratitude to A.Anne and Y.H. Chuang for their help in the development of the ideas presented here. REFERENCES W A CLARK Macromodular computer systems Proc SJCC 1967 2 S M ORNSTEIN M J STUCKI W A CLARK A functional description of macromodules Proc Sj CC 1967 Figure 18 - The assemblage of data gate modules required for transferring 36 bit words from three different data sources 364 Spring Joint Computer Conf., 1967 ___ __ __ ___ __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .a._........ _ _ (a) Lx DECISION ELEMENT 00 01 x (b) ~ 11':\1 I'!YI B c C © D A A ®® B D ®® XI 0 I 0 0 I I I 0 Z I~I - v A o v © o c Z RENDEZVOUS ELEMENT XI X 2 XI 00 01 A X2 B Z (d) I I MERGE ELEMENT X2 (C ) n u - I I 10 ZI Z2 B It";\A I "" II 10 Z ®® 8 ® A® ® ® 0 CALL ELEMENT XI X2 XI X2 Z3 00 01 X3 Z. X2 0 Z2 XI A I 0tllij I I 0 8 II 10 00 01 II 10 ®® - ®® 8 - D I AI® c - ®I® ® -II C - o A ©©© - C -18 @@ - Figure 19 - State and output tables for the control elements © D1 @® o Engineering design of macromodules* by ASHER __ ..-1 nTf""TT'" BLUM, THOMAS J. T\~"""" elIlU KI\.....flJ-\KU.I:'.,. F""t..T CHANEY ~"""""'T VL~Vl"'l Washington University St. Louis, Missouri INTRODUCTION Macromodules are intended for assembly into a wide variety of computer structures with as few restrains on the designers' choice of the geometry of the machine as it is practical to require. The goal of geometric flexibility makes the problem of reliably interconnecting the modules to communicate date more difficult than usual. The ad-hoc repair of transmission failures is precluded because such problems would simple relocate as the system structure is altered by its users, and the detection and repair of the faults would be necessary after each alteration. Thus, as a practical consideration, hardware designs which do not eliminate such failures limit the system flexibility. Consequently, a substantial proportion of the engineering effort has focused on the data communication problem. Because the power distribution system interconnects the modules, it represents a set of pathways over which undesired signals may propagate. Therefore, power distribution has been considered in relation to the communication problem as well as in relation to its more direct effects on the design of the hardware. Because many details of the system and hardware design remain to be specified and because of the complexity of useful systems, no detailed noise calculations on such systems have been undertaken. Instead where a choice is permitted, the most conservative designs have been adopted with some restraints with respect to complexity. When the first small systems are complete, these early decisions will be re-evaluated, and, hopefully, at that point less conservative and simpler hardware will replace the present designs. *This research was supported in part by the Advanced Research Projects Agency of the Department of Defense through contract SD-302 and by the Division of Research Facilities and Resources of the National Institutes of Health through grant FR-00218 A brief description of some typical characteristics of the modules helps in visualizing the design problems. As presently conceived, the macromodules will be selected from a set of 20 to 40 basic designs, and the bulk of the designs will range in logical complexity from as few as 50 to as many as 400 gate circuits. Current designs make use of emitter coupled integrated circuits having a typical rise time of six nanoseconds. It is anticipated that higher speed circuitry will be available in the near future and the hardware design is oriented toward the easy incorporation of this higher speed logic as it becomes available. The circuitry of a data gate module is shown in Figure 1 as a representative example of one of the smaller units. Architecture Two schemes of assembling the modules into a computing machine are under consideration. In the first scheme, the module cases mechanically interlock to form a rigid structure which is to be the whole of, or some portion of, the computer. The module case carries suitable sliding connectors which would permit adjacent modules to exchange digital information through the abutting sides. The front face of the module supports cable connectors through which information exchanged between non-adjacent modules travels, or for passing information between adjacent modules by means other than the sliding connector. Ground and power are distributed to the modules by a system of cables. A very simple system having these properties is shown in Figure 2. In the second scheme the modules are first mounted into a frame which has capacity for approximately 50 modules. The electrical paths provided by the sliding connector described above are replaced by a fixed array of wired interconnections between adjacent ports in 365 366 Spring Joint Computer Conf., 1967 ! .~. BU_'x_~O"_T_ "TT" I ' 130 t¥J ,,--rt~ ',-1--1,--', r-i t-1 . ljc !I ~: :--9 ~ :-~-i I I Ii!' ~ : j :' til ' : I I ilL -l - - t - - --J - - -~ - -+- ---+-~-....--+------+-+--+--+---= - r- - -t - - + - i---+---+-' ,-----: , --I---T--l---I-I I I I I I I I I I I I II II II II :L__ _ ijj --1-- -+----1-- I I I BUS 1'1 ~:~ffi n15~N I I CABLEI'I.----=:-:--~ • rn fl :- -~-1 CAsLq- J_-"~:ET I ___ I ~ I I r1 C OUTn l60 130 ~ t;.Ji60 1 !_Q_J 1-1-. .01uld~ ~13O I.. ~_ I I I I I I r-- - I I I II I I II I BUS' IN O I 1 _: L 4-+,+-______________--,130 VALIDATION ~REQUEST~ IOUT..--J t;.,j60 .Oluld 130 ~ {;J160 130 130 ~Olvfd PRESET IN FROM POWtRCAliLE I. TRANSFER OUT I. DUMMY OUT r- -- -, .~ liN -5.2V TEST POINT "8" ? t , I 1 -' DATA VALID iKANSrERiN RETURN IN DUMMY IN C IN Figure 1- A data gate circuit, illustrating the complexity of one of the simpler macro modules the frame. The front face of the module case supports a bank of connectors, and somewhat over half of the pins in the connector bank engage with connectors which are fixed to the frame and on which the wiring mentioned above terminates for the purpose of providing data paths between adjacent modules. The remaining pins on the module face engage the connectors of a "face plate." This plate, one of which is associated with each module, carries the cable connectors which permit communication between non- adjacent modules, and connects mechanically to the frame rather than to the module. Cabled data is funnelled back from the faceplate through pin connections between the module and the faceplate, into the module. The modules may be removed from the frame without disturbing the faceplate, and in this way the electronics may be removed without affecting the wired-in operational structure of the computer. An exploded figurative view of one frame section appears in Figure 3. Power and ground are distributed Engineering Design Of Macromodules* FRONT FACE Figure 2 - A simple system using mechanically interlocking macromodules on the back of the frame, with power provided by a supply, not shown in the figure, which is attached to the frame. A computer is likely to consist of several such frames, and although one need not do so, one may bolt a number of frames together to form a single larger frame. A figurative drawing of such a computer is shown in Figure 4. (For the purpose of simplifying the drawing, the capacity of the frame has been reduced to twelve modules.) Figure 3 - An exploded view of the frame, the associated modules and the faceplates SIGNAL CA8LE_ FRAME I REfERENCE GROUND CABlES Figure 4-A system of macromodules mounted in frames 367 Data transmission problems The electrical interconnections which carry digital information do so by carrying one of two d.c. levels separated by 0.8 volts. This low voltage swing together with a machine structure consisting of widely separated module assemblies cabled together and not enclosed in a single cabinet, suggest that unless unusual precautions are taken, noise will be a severe problem. The desirable mechanical flexibility conflicts with the compact, shielded type of structure which would be desirable from the point of view of noise. In the two modes of assembly described above, the noise problems differ only in detail. One may think of a frame holding modules as a module of increased complexity if, as is the case, the power and ground are distributed on a low impedance network. Noise may be divided according to whether it is' internally or externally generated. The externally generated noise is principally due to the electric and magnetic fields generated by equipment in the vicinity of the computer. To attenuate the effects of external fields, a shielding system has been constructed around the computing machine, and' this shielding reconfigures as the machine shape is changed. The shield system consists of the metallic module cases, and shielding which surrounds the signal leads, power cables, and ground cables. In the case of the frame supported system, the module case and the frame are electrically connected, so that the frame becomes part of the shielding. Where a lead or cable enter a module, the shield is terminated on the module case at the point of entry. The logic circuits are not grounded to their surrounding module cases. Thus, the shielding and cases form a low impedance path surrounding the whole system, but not electrically connected to it. It is anticipated that the shorted turns and low impedance paths to ground provided by the shielding will attenuate the noise generating effects of external electric and magnetic fields. The shielding of a small system is illustrated in Figure 6. Among the sources of internal noise are the current and voltage transients which accompany a change in signal at some point inside the system. This effect may be reduced by transmitting signals over twistedwire-pairs, shielded as described above, driven in a balanced mode. The twisted-wire-pair balanced mode couples very poorly with the surroundings. As a consequence, both the pickUp and the radiation of noise in this mode are low. The integrated circuit logic provides, in many of the available gate packages, complementary outputs which are a suitable balanced signal source, If at the receiving end, one' of the leads of the twisted-wire-pair is connected to the bias volt- 368 Spring Joint Computer Conf., 1967 MODULE CASE ......... SIGNAL I I I LOGIC CIRCUITRY I L __ INPUTS I I I ~ BIAS INPUT DHA!l Of GATE C!R( J!TS SIGNAL INPUT r-----, I LOGIC I I I I --1 Ik CIRCUITRY BIAS c::~ INPUT ___ _MODULE CASE -5.2v Figure 5 - Data transmission circuitry age input, the receiving circuit will behave as a differential amplifier. The sensitivity to balanced signals will be undiminished, but the ability to discriminate against unbalanced mode noise will be raised substantially. Since the unbalanced mode is reasonably well coupled to the surroundings, almost all noise appears in this mode. The above arrangement increases noise immunity in this mode from the 0.2 volts of the typical unbalanced arrangement to over 1.0 volt. A typical signal transmitting channel is shown in Figure 5. The output stage consists of an emitter coupled integrated circuit gate with complementary outputs; a bifilar, 100 p,h choke; a .01 p,fd capacitor; and several resistors. This network serves three purposes: (1) it provides a terminating impedance (at the driving end); (2) it acts as a voltage divider for the output signal, and (3) it provides a high output impedance to unbalanced currents. The 1K ohm resistors are provided to al10w the output to swing negative when the emitter follower output is cut off. The detailed view of the output gate illustrates the need for these 1K ohm resistors. The choke is made by cementing two wires in parallel and winding the pair on a low Q ferrite core. Balanced currents will have cancelling fields and couple poorly to the core. Thus, the choke will represent a low impedance to these currents. The cancellation will not occur in the case of unbalanced currents. The choke will represent a high impedance to unbalanced currents and thus prevent their flowing out of the module to disturb the rest of the system. The output impedance of the integrated circuit is about 240 and forms a voltage divider when combined with the 1300, and 1600 resistors. Although we have divided our driving voltage in half, the voltage differential at the receiving end is the same as in normal circuit usage. This is because the bias voltage input is not fixed as in· the usual manner of use, but instead is driven oppositely to the signal input. The receiving gate acts as a differential amplifier. The unbalanced noise margin is increased by attenuating the balanced signal voltages as shown. The three resistors at the receiving end serve two purposes: (1) they bias the gate to a known state when the cable is ~ot present; (2) they provide currents to cancel the 30 p,a drawn by the more positive input terminal. Often, even though an input is unused, the user would like to know that the input is tied to a known level, and the bias network serves this purpose. The impedances of the biasing sources are sufficiently high so that the driving source and cable see virtually an open circuit when attached to the input. They are easily able to override the biasing network and apply the proper signal to the input. The biasing network is also designed to be unbalanced in such a way as to cancel the input currents mentioned above. This prevents the Engineering Design Of Macromodules* need to return those currents through lne ground return. Power distribution A second source of noise that we classify as internal, although one might disagree with this classification, is the power line noise. Consider Figure 6. If the noise appearing at the transformer inputs is unbalanced in the sense that V nl and V n2 are equal and in phase, then a current wi!! circulate through the loop consisting of the transformers, the primary to secondary capacitances, and the grounding between the power supplies. Assume C1 and C2 equal C3 and C4 respectively. Then, if V n1 and V n2 are equal but out of phase, the problem is less serious and a sufficiently fast regulator response with a filter network having a sufficiently low pass characteristic will correct any problems. If C 1 and C2 do not respectively equal C3 and C 4 , then even if V nl and V n2 are equal and out of phase, current will flow in the ground reference. Power supplies that appear to be large enough to be useful imply a power transformer having substantial - - - - -, r::,-WGIC-' I, CIR~~!.fRY ~ MACROMOOULE I II '=' - L-_- _-s~ TO ANOTHER MACROMOOULE rlOGiC-1 C~~~IT~Y I I - --------- ----------- I ~V_J , I ~.-,2V : I I I I : I : : : I I I I I I " U , I SHIELD I '--l ov I r-...J I I -S.2V I I Lov l I : I I I I I 1 ,.~" I '="J I I I II ,-- I ~ ____ ..J I I I I r' INPUT NElWORK I I I ~,: I r - - - - -1 MACROMOOULE OUTPUT I NElWORK C, ' C3: POWER I;'~ L _ _ _ _ JSUPPLyll , C2 , ~~::: I iCJ.1 POWER 369 misinterpret the signal being transmitted. Thus, it would be desirable to keep the interwinding capacitances to a minimum and thus present the maximum impedance to power line noise generated currents. There are several other considerations which enter into the specification of the power supply. Power consumption by the power supplies themselves can represent a substantial portion of the power dissipated in the computer. If the power supply is to be located section of frame, the total equipment power consumption in the vicinity of the operating modules will depend, in large part, on the supply's efficiency. The power consumption is very likely to be the· factor which will limit the density of the system unless substantial liquid or forced air cooling is used. Because macromodules must be convenient to assemble, the additional complication of requiring cooling. seems undesirable. In addition to efficiency, if the power supply is to be mounted in the frame, size and weight become important factors. The preceding considerations lead to restrictions on transformer capacitance, power supply, size, weight, and efficiency. These restrictions suggest a supply in which the line voltage is rectified and filtered to give a high voltage at a low current and then converted, at a frequency which is high relative to the line frequency, to a low· voltage at a high current. A block diagram of such a supply is shown in Figure 7. The conversion is achieved with the usual dc to dc converter and the efficiency is kept high by achieving line regulation of the output voltage with a pulse width regulator rather than a series regulator. The inverter transformer is small relative to a 60 cycle transformer and the capacitances assigned to it are also relatively small. Transformer droop and filter voltage drop which vary with load are compensated by a current feedback path. L - _ _ _ _ .JSUPPLyI2 60 HI 11SV AC LOW VOLTAGE HIGH CURRENT DC DC ---~--~----~~~--------~--~~--- ---+------l Vn2 ~---------6-------- Figure 6 - A simple power supply scheme illustrating the effects of AC line noise interwinding capacitances. In Figure 6 the reliability of signal transmission between the two logic modules at the top of the figure depends upon how much noise is present in the ground reference. In spite of the precautions of balanced signal transmission. an excess of current in the ground reference may generate a voltage drop exceeding the unbalanced noise immunity with the result that the receiving module may Figure 7 - Power supply block diagram Studies on a 20 amp, 5.2 volt supply indicate that the following performance goals are practical: (1) an efficiency somewhat exceeding 70%; (2) a weight less than 10 pounds; (3) a volume of about 3~" x 4~" X 8"; and (4) less than 50 picofarads primary to secondary transformer capacitance. A supply having these characteristics would be used in parallel with three others to power the units in a frame. An alternative approach would involve a single, larger supply designed to provide power to one frame 370 Spring Joint Computer Conf., 196? section. In the method of assembly in which units are not mounted in a frame, but instead interlock as described earlier, the power supply design is less restricted and has not been considered in detail. Construction details The macromodule itself will consist of a metal case which surrounds several printed circuit boards to which integrated circuits are soldered. The board design allows 0.3 inch2 of board per can. A typical case size is 3" X 5" X 10" with a board size of 4" X 8". The printed circuit boards consist of four layers of circuitry separated by epoxy fiberglass as shown in Figure 8. The upper two layers provide signal interconnections between the integrated circuit cans. These two layers are separated by .006 inches of epoxy fiberglass insulation, and are in turn separated from the third laver bv .032 inches of insulation. The third layer provides a ground plane which acts to confine the electric and magnetic fields of the interconnecting leads to the region between the lead and the ground plane. The coupling both between the leads themselves and between the leads and external electrical fields will be appreciably reduced by the presence of the ground plane. The fourth layer is an interdigital pattern which carries power and bias voltage to the circuit cans. It is separated by only .006 inches from the ground plane, and its capac- itance to the ground plane provides some additional filtering of these d.c. volta2es. The ~learance hole method of making connections between the can leads and interior ]ayers~ and between leads of the two circuitry layers has been chosen; manufacturing simplicity was the main factor in this choice. Figure 8 - An exploded view of a multilayer board A macromodular systems simulator ( MS2) * by RICHARD A. DAMMKOEHLER Washington University St. Louis, Missouri INTRODUCTION The macro modular systems simulator is a control program and programming language implemented at Washington University to facilitate the design and subsequent realization of macro modular computer systems. The MS2 control program and language enable an engineer or programmer to describe macromodular systems and run programs on such systems simulated on. a conventional digital computer (IBM 360/50). Input to the simulator consists of a standard set of function definitions for the basic macromodules, a description of the organization of the target machine, the program to be executed by the target machine, and data required by that program. Output from the present version of MS2 is a level change map (a continuous trace of the internal control network of the target machine as it executes its program) and the results of computations performed by the target machine. A procedure for preparing wiring tables and diagrams has been developed and will be incorporated into an improved version of the simulator. The MS2 programming language The MS2 programming language is, to the user, a symbolic system similar to those designed for assembly language programming with conventional machines. This correspondence was purposely maintained in order to provide a simple transition from programming to systems design. There are seven classes of MS2 commands, including the pseudocommands which provide the capability necessary for external communication between the designer and his simulated macromodular machine. In the following discussion the Greek symbol a will be used to designate an alphabetic or alphanumeric name assigned by the programmer or designer to a data module. The symbol f3 will designate *This research was supported in part by the Advanced Research Projects Agency of the Department of Defense through contract SD-302 and by the Division of Research Facilities and Resources of the National Institutes of Health through grant FR-00218. a control module. Subscripts on either symbol indicate its position on an argument list. A single data module has 12 binary positions which may be represented by either of two conventions: (l) f3f3 f3<9> ... f3 f3 , where the subscripts correspond to the associated power of two, or (2) X X<2>X<3> ... X<11>X , where the subscripts correspond to the bit ordering from left to right. Register commands This class of commands defines operations usually performed on a register stack or between two register stacks. CLEAR,a : The contents of a are set to zero by this command. INDEX,a : This command causes the contents of register a to be increased by 1. COMP,a : This command replaces the contents of register a with its one's complement. : This command causes the contents of macromodule al to be transmitted to a2' : This command implies that the contents of al is added to a2 and the result placed in a2' Basic 2's complement arithmetic is used. SHFTRZ, a : The contents of a are shifted one bit to the right. A zero is inserted in the high order position and the low order bit is lost. : Reverse of SHFTRZ. SHFTLZ,a : The contents of a are shifted one SHFTRA,a place to the right. The low order bit of a is rotated around to the high order position. : Reverse of SHFTRA. SHFTLA,a : Same as SHFTRZ but a one SHFTRO,a 371 372 Spring Joint Computer Conf., 1967 is inserted in the high order position. SHFTLO, a : Reverse of SHFTRO. SHFTRC,a : One position right shift with original high order position held constant. SHFTLC, a : Reverse of SHFTRC. SHFTRD, aI' az : One position right shift with high order position of al replaced by the low order position of az, an attached data cable. az is unchanged. SHFTLD, ab az : Reverse of SHFTRD. The low order position of at is replaced by the high order position of az, an attached data cabie. JUNCTION defines a junction unit output a l with inputs from a2 and as where the X bits are from lX2 and the Y bits are from a3' An alternative specification using the power of 2 convention would be JUNCTION Junction units may be activated by inserting the name of a previously defined unit as the first argument of the G ATE command. For example, if T 1 is the name of a junction unit output, the statement GATE, Tl, ACC Storage access commands Two commands, READ and WRITE provide the facility for accessing the macro modular storage unit. Associated with each 4096 word bank of storage is a single 12-bit address register. The name of this register must appear as the second (az) operand of the storage access commands, as it specifies which memory bank is to be used. READ, ah az : This command causes the contents of the location specified by az to be placed in or on data module al' WRITE, ab a2 : The WRITE command causes the contents of al to be placed into storage at the location specified by a 2' will place the current value of Tl in or on data module ACC. Conditional commands Modules with settings or parameters defined previously may be interrogated by the following MS2 statements: where al = name of the module being detected az = name of previously defined detector f3I = control path for TRUE response f32 = control path for FALSE response A decoder may be interrogated by a statement such as Screwdriver commands Certain operations, normally performed manually, can be specified in the MS2 language. Switch settings on parameter units, and formats for the outputs of junction units are established through the use of the following commands. For example, the statement: PARAMETER * a, 001000110001 defines a parameter unit, a, with the setting shown as the second argument. If a parameter unit is to be used as a detector setting, X's may be inserted in the second argument to indicate the 'don't care' condition. An example is shown below: DETECTOR * a, XXXXI00IXXXI junction units have two 12-bit inputs and one 12-bit output which may be a composite of the inputs and pre-set constants supplied by the junction unit. For example: where al = bits to be decoded written in the form f3<11>f3 f3<9> or X X<2>X<3> a2 = name of the data module (note: this may not be a multiple length module) f30 = control path to be taken if the bit pattern (al) = 000 f31 = control path to be taken if the bit pattern (a l ) = 001 • • • An overflow condition on an adder may be detected by the statement ADDOV, a]o Bh {32 A Macromodular Systems Simulator (MS2)* where al is the name of the register stack containing the adder, f31 is the TRUE (OVERFLOW) return and f32, the FALSE (NO OVERFLOW) return. Use of the ADDOV command does not reset the overflov' indicator. The contents of two registers may be compared by attaching the data output cable of one register to the data terminal of a detector positioned on a second register. The following MS2 command is used for this operation: where al = name of register on which the detector is positioned a2 = name of the register providing detector input f31 = TRUE control branch f32 = FALSE control branch Logic function commands This class of commands specify operations performed in a register stack by the macro modular function unit. BITSET, a}, a2 : The bit pattern of register a2 is modified by the pattern of al using OR logic. Result in a2. BITCLR, a}, a2 : If the input bit from al is zero, the corresponding bit in a2 is unchanged. If the input bit from at is one, the corresponding bit in a2 is set to zero. BITCOMP, aI, a2 : If the input bit from al is zero, the corresponding bit in a2 is unchanged. If the input bit from al is one, the corresponding bit in a2 is complemented. AND, at, a2 : Perform an AND operation between at and a2 bit patterns. Control commands Additional commands for the control macromodules are : which implies the merging MERGE, f3t, of control at point f3t, and : where f3] is the point at at which a reentrant control string begins, and f32 is the point to which control will be passed following the execution of that control string. 373 If a reentrant control string contains more than one exit point, (e.g., at detector or other decision module) the decision call macromodule should be used. The simulator command format is DCALL, f31' f32, f33, : where as before f3t specifies the beginning of a control string, and f32 and f33 specify the true and false branch points. A control string may be spiit into two independent strings by the use of the simulator command SPLIT, f3l, f32, .: which specifies that two functions are to be initiated simultaneously; one at a module labeled f3t and the second at f32. Any two control strings can be re-joined using the macromodular rendezvous unit simulated by a command of the following form WAIT, f3b f32, : where f3t is the name of a particular rendezvous unit and f32 is the point to which control will pass after two control strings have been rejoined. Pseudo-commands Six pseudo-commands have been implemented in order to facilitate the use of MS2. They are: INPUT, a OUTPUT, a RETRN, a TRUE FALSE : The INPUT command causes the next octal value, delimited by an apostrophe, to be read from the input stream and placed in data module a. : The OUTPUT command prints the contents of data module a in octal format. : The RETRN command passes control from the target machine to the MS2 control program. The argument a specifies a data module (usually the instruction counter), the contents of which will be printed at the time the return is executed. : The TRUE command has no arguments as it is used as an argument for the DCALL command when a decision call unit is imbedded in a re-entrant control string caJled by other target machine strings. : A command used to identify the FALSE return from a decision 374 Spring Joint Computer Conf., 1967 call unit imbedded in are-entrant control string. LOCK, f3b f32' : The LOCK command is a pseudo command which marks the position of a priority selector. The selector module interlocks a control beginning at point f31 and the second argument f32 specifies the point to which control passes after the f31 string has been executed and the interlock released. Multiple length specification The user may define and use multiple length data modules by including a slash (/) in argument strings of the Register, Memory Access, Conditional, and Logic Function commands. For example, the MS2 statement: GATE,A 1/ A2/ A3,BX/BY /BZ specifies the gating of a 36-bit data module, with twelve bit sections AI, A2, and A3, to another 36bit data module, consisting of sections BX, BY, and BZ. Up to 9 twelve bit sections may be coupled with this convention. The user may 'assemble' multiple length detectors, junction units and parameter units defined by PARAMETER*Al,lOOOIIOOIIIO PARAMETER *A2, 10000000 III 0 to create a 24-bit parameter unit consisting of two I2-bit sections A 1 and A2. These sections may be used independently or as a single 24-bit unit as shown in the following example: TEST* COMPARE, A1,M, NEXT, NOT NEXT* COMPARE, A1/A2, ACCI/ACC2, GO, NOGO • • • The MS2 control program Implementation The simulator control program is implemented in TRAC,t a string processing language, selected because of the similarity between the macromodular control network and Mooers' concept of an active string. But using a combination of TRAC primitives, it is possible to exactly duplicate the functional characteristics of most of the present set of macromodules. The exceptions are the control branch, a macromodule used to initiate parallel controi net- works, and the interlock module which functions as a priority selector at the intersection of multiple control paths. As parallel operations must be simulated sequentially on a serial machine, the functions of these two modules are handled internally by the simulator control program. However, in order to preserve the validity of the level change map and wiring tables, both control branch and interlock macro modules can be included in the description of the target machine. Statements describing the internal organization of a computer to be simulated by MS2 are prepared in free-form format using an asterisk (*) as a delimiter for labels of unique control points (control paths) and the character ' (an apostrophe) to mark the end of each statement. They are read by the control program, analyzed syntactically, and converted to active TRAC strings prior to execution. Unlabelled statements are concatenated with the preceding labelled statement producing a sequential string corresponding to a single control path in the target machine. A complete machine definition consists of one or more such strings, existing as separate within primary core. Linkages between strings are completed at execution time by the control commands described in Section II-F. TRA C definitions of the basic macro modular functions are also stored internally as active strings as shown in Table l. A complete listing is given in Technical Report No. 18. 2 During execution, an active target machine string initiates requests for the macromodular functions in the sequence indicated by the MS2 machine description. Arguments contained in the target machine string replace the special characters ~i marking the position of the ith argument, and the resulting string is evaluated by the control program. An example of the 'evolution' of an active MS2 string from input through execution is shown in Table II. The current version of the control program was implemented in BAL, the basic assembly language for the IBM 360 series, and is run under a modified R.A.C.S. (Remote Acess Computing System) which provides for conversational interaction between the 360/50 and remote consoles. During MS2 runs, the remote console is used as the operator's console for the target machine, or alternatively as a readerl printer/punch station. Table l. Some simple TRAC definitions of macromodular functions #(DS,CLEAR, #(DS, ~bOOOO))) #(DS,GAT E,(#(DS'~2,##(CL'~1'») A Macromodular Systems Simulator (MS2)* #(DS,l N DEX,(#(DS, ~h#(AD,##(CL, ~1' 0001)) #(DS,ADD,(#(DS'~2,#(J\D,##(CL'~1')## (CL, ~2»») - #(DS,MERGE,(#(CL, ~1») #(DS,CALL,(#(CL, ~l(#(CL, ~2») #(DS,COM PARE,(#(CL,#(EQ,(#(CL, ~1»' for convenience, use the macro modular function definitions as well. Present control program commands are: INITIAL *a This command calls the initialization routine which edits and analyzes all MS2 statements. a is an arbitrary identification parameter. DEFINEBLOCK * This command defines a block f30 consisting of strings f31 through f3nn::o:;31 (#(CL'~2»'~3'~4»» #(DS,I N PUT,(#(DS, ~h##(RS»» #(DS,OUTPT,(#(PS,----##(CL, ~1»» Table I I. Evolution of an active MS2 string Structural form f3o,{3 1,···f331 Description #(DS,GATE,(#(DS, ~2'## TRAC definition of (CL, ~1»» the gate macromodule START*GATE,P,S' Input form of MS2 target machine de- I scription #(DS,ST ART,(#(CL, GATE,P,S») Internal form of MS2 statement #(CL,GATE,P,S) Result of initialization of target machine by #(CL,ST ART) #(DS,S,##(CL,P» Result of #(CL, GATE,P,S) STOREBLOCK * f3 This command stores block f3 in disk storage. FETCHBLOCK*f3 This command retrieves a block of strings f3 from the disk and re-establishes the definitions of its constituent strings f31 through f3n· 1\1AP* This command activates the mechanism for tracing the internal control of a target machine. a is an arbitrary identifier. Control program commands The MS2 control program commands are defined in terms of the TRAC primitives, and in some cases, a NOMAP* f3*a At the beginning of a simulation run approximately 180K bytes of storage are available for the target machine description. The remaining 76K bytes are used by the operating system (~72K) and the control program. The augmented TRAC system, an integral part of the control program, occupies less than twenty-five hundred bytes of core. Storage of target machine data, programs and results is managed by the control program in order to conserve core storage in the 360/50. Such information is stored in octal representation with 8 octal digits occupying 1 word (4 bytes) of 2 J-tsec core. Packing and unpacking are performed by two new primitives, rm and wm (read memory and write memory), added to the TRA C function set. 375 a a U seof this command deactivates the internal control mapping mechanism. A command of this form passes control to any previously defined string f3. DISCUSSION The simulator has been used to evaluate a number of macromodular realizations of specialized computer designs including a Valgol I I machine 3 and the compiler-compiler machine 4 presented in the following paper. Its principal advantages are related to the ease with which a programmer may describe the organization of his target machine, and the flexibility of implementation which allows additional macromodular functions to be specified as active TRAC strings within the existing MS2 environment. This latter capability has already been of proven value, in that it provided a mechanism for maintaining a correspondence between the evolving macro modular technology and concurrent efforts to develop software for target machines. 376 Spring Joint Computer Conf., 1967 Limited use of MS2 has been made in conjunction with computer design and programming courses offered by the department of Electrical Engineerin~ and the department of Applied Mathematics and Computer Science. In these instances, MS2 descriptions of commercially available machines were developed by the students, and used to obtain solutions for problems assigned in class. Although this ability to verify the results of programs written for a variety of conventional machines has in practice been a valuable. supplement to normal laboratory experience, it also demonstrates (indirectly) the design flexibility inherent in the macromodular concept, and the functional completeness of the existing set of processor modules. REFERENCES C N MOOERS L P DEUTSCH T RA C, a text handling language Association for Computin~ Machinery Proceedings of the 20th National Conference 229-246 1965 2 R A DAMMKOEHLER R A COOK A R RAWIZZA T RA C implementation of macromodular functions Technical Memorandum No 18 Computer Research Laboratory Washington University St Louis Missouri January 15 1967 3 A R RAWIZZA The valgolll machine Masters Thesis Sever Institute of Technology Washington University St Louis Missouri 1967 4 WEBALL A macromodular meta-II machine Proceedings of the Spring Joint Computer Conference 1967 A macromodular meta machine* by WILLIAM E. BALL Washington University St. Louis, Missouri INTRODUCTION The macromodular concept! makes it possible to easily change the hardware design of a computer. However, a change in computer design usually implies that any existing software will no longer function correctly. It appears, then, that a flexibility in the software, equivalent to that now available in the hardware, must somehow be obtained. One possible partial solution to this problem is to separate some of the software activities, such as the compiling function, from the main computational machine. This suggests that what is needed is to add a "compiler module" to the set of available macromodules. That is, a small fixed macromodular computer is needed which would accept as input a source language specification and a target machine specification. It would then input a source language program for compilation. Its final output would be a machine language program for direct execution in the target machine. This paper describes in detail the results of an effort to design such a computer, called the "meta machine." It also illustrates the relative ease with which a new computer may be designed when the macromodular system is used. The basic algorithm by which the meta machine is to operate must be both simple and flexible. The simplicity is required for the reduction of both expense and complexity. The flexibility is required for easy adaptation to source languages and target machines. One approach that seems to fit these requirements is described by Schorre. 2 His syntax oriented compiler writing language, along with specifications for the Meta I I machine, represents the type of system proposed for the compile module. The next section describes the extensions and modifications made to Schorre's Meta II language to adapt it to the present requirements. Following this syntax specification section, the meta machine organization *This research was supported in part by the Advanced Research Projects Agency of the Department of Defense through contract SD-302 and by the Division of Research Facilities and Resources of the National Institutes of Health through grant FR-00218. 377 is described. Finally, the implementation of the meta machine organization by macromodules is presented. Syntax specification Table 1 lists the complete basic compiler for the meta machine, written in its own input language for execution on the meta machine. The normal steps for the use of the overall system are illustrated in Figure 1. The basic compiler is used to generate a special purpose compiler in step 1. In step 2 the special purpose compiler is used to generate the final object code for the target computer. .l!!.i!!U. Step 1: Step 2: source language program - - - ~ Output basic compiler in the meta machine ---7 special purpose compiler in the meta machine - - -~ machine language special purpose compiler to run on the meta machine machine language program to run on the target machine Figure 1- Overall use of the meta machine Note that the source language specification includes both syntax and semantic rules. Any changes in the target machine can now be readily handled by changing the input specificiations to the basic compiler and then regenerating the appropria.te special purpose compiler. The input language for the basic compiler is essentially the Meta II language proposed by Schorre.2 This system represents a top down, no back up, type of syntax analysis algorithm. However, some of the ideas described by Oppenheim and Haggery,3 as incorporated in their Meta 5 language, have also been used. One significant difference is that the basic compiler of the meta machine is to generate machine language code directly, not assembly language code. The source language specification consists' of two parts: 1. Symbolic target machine instructions and their bit code equivalent. 378 Spring Joint Computer Conf., 1967 .DEFINE BE =1000; NO>=llOO; GNl 1110 ; = GN~=1l20; our = i 13:1 ; DTV=1140; STA =1150 ; ATl=1160; SAV =1170; SET= 1200; RE:'1'=121Oj END=1?20; ~or =1230; CCO=12'tO; CCi =1250; cos= 1260. BU. =1270; CLS=2000; Te =3000; CL.1=4000; B =5')00; BT =6000; SF =1000; PR:lGRl~t1 • SYNTAX P RO DE: G~ t A t-1=' • DE FINE ' = 10 '=1 $~ EF' • SYN TAX' 10 .OUT( >',<, 'C LL" .SAVE ; :JcrNUM SIO::DI:; .OUTI*51) i 5T 10 .LABEL '=' EXI ' ; ' .OUT(' RET' II ; EXI = EX2 $('1' .OUT(O: = ; This last line is repeated until all target machine instructions have been defined. The second input part has the form: .SYNTAX ; .END The statements actually define recursive subroutines. The identifier on the left side of the '=' defines the name of the corresponding subroutine. The use of a,n identifier on the right side of the '=' causes a call to that subroutine to be generated. The result of the subroutine is communicated back to the calling pro- gram by means of a true/false switch. A true return indicates that the syntactic unit described by the subroutine has been found in the input. A false return indicates that the syntactic unit has not been found. A literal string appearing in a syntax rule implies that the same string must appear in the input for the particular rule to apply. The semantic rules are described in two ways. First, by the expression .LABEL, to indicate that the next identifier is a label whose location is now defined. Second, by the expression .OUT, to generate target machine code. The function .OUT may have any number of arguments separated by either a I,' or a ,/'. The former causes the bit pattern of the preceding argument to be added into the output register. The latter also adds the argument bit pattern to the output register, but in addition causes the contents of the output register to be written out. As an example, A r-vfacromodular :Meta wiachine* .OUT (* 1,'BT' f'SET' f) will cause the target machine bit patterns for two instructions to be put out: BT*1 SET A number of additional codes are available in the basic compiler to make the necessary character and symbol manipulation possible: * Use the contents of the current symbol stack. * 1 If a label of type 1 has been generated on this recursion level, use it. Otherwise generate a new label of type 1. Put the label into both the current symbol stack and the output register. *2 Same as *1, only for a label of type 2. *3 Add the last recognized character to the output cell. *4 Add the last recognized character to the current symbol stack. *5 Shift and add the last recognized octal digit to the value part of the current symbol stack. $ Repeat the following syntactic unit 0 or more times . . BLANK Delete blanks from the input string. .SAVE Save the current symbol stack in the definition table . .QUOTE Test the input string for a string quote . .EMPTY A syntactic unit that is always true. The technique of label generation, the current symbol stack, the definition table, and the output register are explained in the next section. location 379 contents assigned locations input string buffer T} compiler N+1 recursion stack initial cell Zf } current symbol stack Z-l i} xi} f} symbol table definition table address table 7777 Figure 2 - Meta machine memory allocation M eta machine organization The memory module used by the meta machine contains 4096 words, each 12 bits in length. Figure 2 illustrates how the memory is allocated during an actual compilation rurt. All memory addresses in that figure and in the following discussion are expressed as octal numbers. Each word in the memory module normally contains either one machine instruction, one character, or one absolute machine address. Certain exceptions to this, however, will be noted later. Starting from the low end of memory, the first eight locations have definite assignments. As the compilation proceeds, the memory location currently being filled in the target program is recorded in location O. This location is initially set to what the first location address of the target program is to be. For the meta machine, all programs start at location 130. Locations 1 and 2 record the boundaries of the running program. For later reference, the last location used by the program in lower core is called "N." This is the value recorded in location 1. The program itself will occupy all of the space from 0 to N. A number of the machine instructions, in particular the transfer instructions, require an associated address table. The address table for the running program is stored in the upper part of memory starting in the last location, 7777. The address table then extends downward to some location which will be called "X." Location 2 records the value of X. These two locations are the only values that need to be set by whatever system is used to initially load the program. During the execution of the program two variable lengths of storage are required. The first, called the recursion stack, keeps track of subroutine entries and exits, and any generated labels. The recursion stack begins at the first free cell of lower memory (N+ 1), and extends upward as far as needed. The exact use of the stack is described under the instructions eLL and RET in Table 2. 380 Spring Joint Computer Conf., 1967 Table 2 - Meta machine instruction set instruction octal code operation BE 1000 Branch to the error routine if the switch register is set false. NOP GNI 1100 1110 GN2 1120 OUT 1130 Continue on to the next instruction. Test to see if a label of type 1 is available at the current recursion level. If not, a new label is generated and saved in the recursion stack. The available label is then looked up in the symbol table. The target address table index of the label is then added to the output cell. Exactly the same as G N I , only for a label of type 2. The target program instruction counter and the contents of the output cell are written out. The target machine address is incremented and the output cell is cleared. DTY 1140 The contents of the current symbol stack are looked up in the definition table. The value of the symbol is then added to the output cell. STA 1150 The contents of the current symbol stack are looked up in the symbol table. The address of symbol is then set to the value of the target machine instruction counter. ATI 1160 SAY 1170 SET RET 1200 1210 The contents of the current symbol stack are looked up in the symbol table. The target address table index of the symbol is then added to the output cell. Decrement by four the definition table and symbol table pointers (Y and Z). Set the switch register true. Save the current input string pointer in the past input string pointer cell. Return from a recursive subroutine. This pops three cells off of the recursion stack. The first two were ceiis to hold the generated labels of type 1 and 2. The third cell contains the actual machine address of the corresponding call instruction. END 1220 Write out the target machine address table and then terminate the program. QOT 1230 The input string is tested for the occurence of a string quote. The switch register is set true if it is found, and the input string pointer is advanced. The switch register is set false if a string quote is not found. CCO 1240 The current input character bit pattern is added to the output register. CCS 1250 The low order six bits of the input string character are copied into the next available character position of the current symbol stack, up to a maximum of five characters. Characters beyond the fifth are ignored. CDS 1260 The input string octal digit is copied into the value part of the current symbol stack in the symbol table. BLK 1270 The input string is tested for the occurence of a biank. if one is found, ihe inpui Siring pointer is advanced and the test repeated. CLS 2xxx The low order six bits of the literal character represented by the low order bits in the instruction are copied into the next available character position of the current symbol stack, up to a maximum of five characters. Additional entries beyond five characters are ignored. TC 3xxx If the switch register is false, continue on to the next instruction. If the switch register is true, test the input string for the occurence of the litera! character represented by the low order bits in the instruction. If it is found, advance the input string pointer. If it is not found, set the switch register false and restore the current input string pointer to the value saved in the past input string pointer cell. CLL 4yyy B 5yyy A recursive call of a subroutine. Three cells are pushed into the recursion stack. The first contains the current instruction counter. The next two contain zeros to allow for any label generation in the called routine. Control is then transferred to the location given by the address table index yyy. Control is transferred to the location given by the address table index yyy. BT 6yyy If the switch register is true, transfer control to the location given by the address table index yyy. If the switch register is false, continue on to the next instruction. BF 7yyy If the switch register is true, continue on to the next instruction. If the switch register is false, transfer control to the location given by the address table index yyy. The second variable block of storage is required to save symbols and identifiers as they are found by the compiler. They symbol and identifier storage area is divided into two parts. The first part, called the "definition table," starts immediately below (X -1) the end of the address table. I t is the purpose of the definition table to give the target machine bit pattern equivalent to any symbolic instruction that is generated by the compiler. Location 3 records the last location, called "Y," used by the definition table. Thus, the definition table extends from location X-I downward to location Y, where the extent is fixed by the number of defined symbolic instructions in the source language, By the requirements of the A Macromodular Meta Machine* compiler program, all defined symbols must come before the start of the actual syntax specifications of the source language, hence all defined symbols will be stored in the definition table before the first appearance of an identifier. As the syntax rules are processed by the running program, identifiers will be found or labels will be generated. A symbol table is used, starting immediately below the definition table, to record these identifiers as they are found. The symbol table extends from location Y -1 downware to location "Z." Location 4 in lower memory records Z, the last location used by the symbol table. Locations 5, 6, and 7 serve to hold values that are needed by the running program. Location 5 saves a previous value of the input string pointer. If the program checks for a given string in the input, and fails to find it, the input string pointer can be backed up by the use of this recorded value. Locations 6 and 7 are simply counters. They count the number of generated labels, of two distinct types, so that a new unique label may be provided whenever one is required. The input string being processed by the running program is stored in locations 10 to 127. These locations actually represent one word for each column of one punched card. The input string pointer is initially set to 10, the address corresponding to the first column of an input card. As the input string pointer is incremented, it scans the card until it reaches location 127 (card column 80). The next time the machine detects that the input string pointer is to be incremented, a new card is read instead. The input string pointer is then reset to location 10. This system requires that any quoted string in the input occur completely on a single card. Otherwise the input string back up mechanism would operate incorrectly when the input string fails to match the expected value. Location 130 contains the first instruction of the running program. All of the currently implemented instructions in the meta machine are defined in detail in Table 2. There are 23 instructions, grouped as follows: Control type instructions: B - branch BE - branch to error routine if false BF - branch if false BT - branch if true CLL - call subroutine END - end of program RET - return from subroutine SET - set switch true Character and stack manipulation instructions: A TI - find address table index 381 BLK - delete blanks CCO - copy character into output CCS - copy character into stack CDS - copy digit into stack CLS - copy literal into stack DTV - find definition table value QOT - test for quote SA V - save current symbol ST A - set symbol table address TC - test character Miscellaneous instructions: G N 1 - generate type 1 label G N 2 - generate type 2 label NO P - no operation OUT - output Table 3 illustrates the general nature of the entries that occur at the high end of memory, in both the definition table and symbol table. The entries always occur in groups of four words. The word with the highest memory address, the first word of the entry, contains two six bit fields. The first field contains a count of the number of characters· (letters or digits only) that the identifier contains, up to a maximum of seven. The second field contains the low order six bits of the eight bit pattern of the first character in the identifier. Words two and three of the entry contain, respectively, the code for characters two and three and characters four and five. Symbols of five characters or less thus have a unique entry. Identifiers that are longer than five characters, and match through the first five, must have different lengths to have unique entries in the table. The fourth word of the table entries may have any one of three different values. For a definition table entry, the fourth word will contain the tartet machine bit pattern corresponding to the instruction represented by the symbolic entry. For a symbol table entry, the fourth word will contain the target machine ifier that has appeared only in the form of a call or transfer operand. Once an identifier appears as a label, the fourth word is filled in with the value of the target machine instruction counter. This will eventually be the actual address table entry when the target program is executed. References to this address table entry are made by using its address table index. This index is defined to be its memory location in the address table minus 7000. If the address table index of any symbol is required for the completion of an instruction, it is found by: 1. Locate the desired symbol in the symbol table. Assume the fourth word of the entry is found at location L. 382 Spring Joint Computer Conf., 1967 2. Compute the address table index by: 1000 _ (Y-L) 4 Table 3 - Symbol table entries location contents L address or value of symbol (character 5) (character 4) (character 3) (character 2) (character I) (character count) L+I L+2 L+3 The entries in the definition and symbol tables are actually created in the current symbol stack. This stack always occupies the next four locations below the symbol table. \Vhen it is desired to locate a given symbol in the table, the symbol is created, as a standard table entry, in the current symbol stack. This entry in the current symbol stack is then compared, entry by entry, with all of the entries in the table. If a match is found, a pointer is set to point to the fourth word of the appropriate entry. If a match is not found, the end of table pointer is decremented by four, including what was the current symbol stack in the table. Thus, the entry that was being searched for is now found. Note that this also automatically displaces the current symbol stack downward in the memory by four locations. The next section describes how the meta machine was constructed by interconnecting standard macromodule units. M eta machine implementation The design of the meta machine was developed by programming the interconnections of the macromodule units using the MS2 simulation language. 4 By using this technique the machine could be tested, modified, and checked out, all by simulation, before any macromodule hardware had to be used. However, a knowledge of the hardware is necessary before the simulation can be discussed.! Besides the memory module mentioned in the last section, one of the most significant units is the register module. The basic module holds 12 bits. I t has provisions for clearing, indexing, and complementing its contents. It is also possible to add other important actions. For example, adding a data gate module allows a word to be entered into the register. Adding a detector module allows a test for a particular bit pattern to be made on the contents of the register. In all of these units, however, there is one central concept, the control path, that governs the action of the module. There are norma]]y two connections made to a macro module. One connection, for the control path, carries the information that tells the unit when it should perform its action. The other connection, for the data path, carries the information necessary for the module to operate, Table 4 contains a list of alI of the register modules used in the meta machine, with both their function and reference name. In designing a computer such as the meta machine one important decision concerns the number of registers to use. Quantities that are referenced frequently may be retained in registers or they may be retrieved from fixed memory positions when needed. The former choice offers faster operation, neater logic, and far more expense. The latter choice reduces the number of expensive macromodular units required (such as registers), while increasing the number of cheaper units (data gates and branches), The approach taken with the meta machine falls roughly midway between the two extremes. A generous supply of registers is used to make the wiring for most of the instructions reasonably simple. However, a number of necessary values are still retrieved from memory on demand. Thus, this particular design represents a compromise between an expensive, fast machine and a cheap, slow machine. Table 4 - Register Assignments Register Label RRA RRM RRI RR2 RR3 RR4 RR5 RR6 RR7 RR8 RR9 Function memory address register memory I/O register instruction counter switch register (O=true, =l= O=false) output.register recursive stack pointer input string pointer utility utility utility utility Another type of macromodule that is extremely useful is the call unit. This module makes it possible for more than one control path to activate one given control path, and yet retain its own identity. Thus it is possible to consider "hardware subroutines" that may be called by other parts of the computer at any time. For the cost of one call unit it is possible to avoid duplicating large blocks of modules. An extension of the call unit concept that includes the possibility of a branch in the control path is the decision call unit. This module allows two possible returns, as from a detector unit, while still maintaining the identity of the original activating control path. Figures 4 and 5, to be discussed in detail later, contain some A Macromodular Meta Machine* 383 schematic diagrams of registers, call units, control paths, and data paths. The conventions used in the diagrams are illustrated in Figure 3. (heavy line) data path (light line) control path [] data input port on a module () data output port on a module o 0 0 00 o 0 0 0 0 call unit 0 register D data gate 000 000 control path merge unit data path branch Figure 3 - Macromodular diagram conventions Labels on the various units and control paths are identical to the corresponding names used in the MS2 listing in Table 5. The MS2 simulator represents the possible conljlections between modules in different ways. Data path connections, from register to data gates, are written explicitly. For example, to gate the contents of register RR5 to register RRA requires the statement: GATE, RR5, RRA' This action will be performed when the control path reaches this statement. Normally this would be after the previous statement was activated. If the control path is not sequential, then the control path itself must be given a unique label. Thus if the control path labeled BLK calls a subroutine with initial control path labeled R5RD, and the control path labeled Bl is to be active after the return, the simulation statements would be: BLK* CALL, R5RD, BI: Bl* DETECT, RRM, DD5, B2, INTPl' R5RD* GATE, RR5, RRA' READ, RRM, RRA' These statements describe part of the connection diagram in Figure 5. A listing of the input to the MS2 simulator is presented in Table 5. This listing completely defines the meta machine since it specifies all of the data and control paths between the macromodule units. The initial active control path is labeled BEGIN. The main loop begins at INTP 1-, where the instruction counter is incremented by 1. The next instruction is then obtained from memory and decoded. Decoding causes a many-way branch in the control path, each branch leading to the execution of one of the machine instructions. Most of the instructions then terminate by merging the control path back to INTP 1. Figure 4 illustrates how this procedure is implemented using the actual macromodule units. The following description of Figure 4, however, may be easily followed in the simulation listing of Table 5. The initial control path, labeled INTPl, merges with another control path, labeled NIP, to allow for a no operator loop. The path then indexes the contents of the instruction counter register, RRI. Some of the instructions do not require indexing this instruction counter, hence the path now merges with an alternate entry path, INTPO. This combined control path activates, by means of a call unit, a hardware subroutine labeled R 1RD. This subroutine gates the contents of the instruction counter into the memory address register, and then calls the subroutine MTORM. This subroutine reads the contents of the memory location contained in RRA, and then gates it into register RRM. On return from the subroutine R 1RD, the control path 114 will be active. This path causes the decoding units to look at the instruction now contained in the register RRM. The first decoding unit looks at the initial three bits (numbered from left to right 1, 2, 3) of the instruction. A value of 0 or 2 through 7 causes the corresponding instruction control path to be activated. A value of 1, however, requires the second decoder to look at bits 4, 5, 6. Only three valid values may be found: 0 identifies the in- 384 Spring Joint Computer Conf., 1967 Table 5 The Meta }lachine Expressed In The NS2 Language OETECTOR* DEfECTOR* 001. 002, OET E: TO~ DD 3, * * DErECTOR:; 004, DET EC TJ~ DD 5, DErECTOR* 003, J U~ CT10\1 ';: ...1 J 1 ,R R t·" JUNCTION~JJ2,RRM, JU~ CT ION)~JJ3,RRM, JU~CTION*JJ4tRRM, JU~CTION*JJ5,RRM, JUNcrIO~*JJ6tRRMf * J U~ CTID N J J 1, RR 1, PA~A~ETER* PPO, PAtA~ETE~* PP1, PARAt~ETER* PP2, PAtAMETER* PP3, PAR Ar--1E TER* PP4, PAtA'1ETER* PP5, PARAMETER* PP6, PAt A~ETER* PP 1, PAR Ai..,E TE R* PP1 0, PAtAMETER* PP130, ATl* CALL, l5* :AlL, ~ 6* CALL, \7* ADD, COMP, 9* '10* , 1* .~ 2~ \3* ~ It * B* ) 17 * OOOOOOOJOOOO' 000001000000 t OOOOOOOJOOOO' 111 X X X< j 2), RR X< 4> X< 5 > X< 6 ) X< 7> X< 6 >)( <9 >X < 1:> ) X< 11> X< 1 2> Y< 1 0) Y:::: 11 > Y <12 > , ~ ~ Y<1>Y<2>Y<3>X<4>X<5>X<6>X(1)X(8>X<~>X<1)>~<11>X<12>,RR3' X<1>X<2>X<3>X<~>X<5>«6>f<7>i<8)Y<9)Y(10>Y(11>YC12>,~~S' 000 X<4 >~ <5 >X<6> X< 1> X< 8) X<9> X( 1 0 >X < 11> X<1 2> , 000000X<1>X<2>X<3>X(4)X<5>X<6>, NJlL' NU l L • 0000)03:>0000 • 000000000001' 0000000:>0010' 000000000011' 000000030100 • 000000000101' 0000000::>0110 • 000000000111' 000000001000 ' 000001 011 000 t LOOK, AS' : OMP6, A6' P3R.D, A 7' RR6, RRM' RRM' A9' LL, CALL, SiF TM, SHFTM, A 10' BITSET, MERGE, CA Ll, JJ6, RR3 ' INT? l' R6RD, A21 CALL, CA ll, CALL, S ET~ 3, PORD, WTR6, I NT Pl • GATE, JJl, RR1 ' C~ ~ 000000000000' 00:> 0:> 111110 1 ' 000000000000' A4 • I NT PI ' CAll, RIRD, B 11' GATE, RRM, RR1' MfRGE, INTPO' struction BE; 1 and 2 indicate further decoding, by inspecting bits 7, 8, 9 to be required. Thus the third and fourth decoding units complete the identification of the instruction and activate the corresponding control paths for execution. While it is a relatively straight forward task to transform .the complete simulator listing into an actual wiring diagram, the result tends to become too complex to read. Figure 5 presents a portion of the detailed wiring diagram illustrating the implementation of three instructions. Consider first BLK, the instruction that deletes blanks from the input string. The entry point from the decoders in Figure 4 is to the control line labled BLK. The first action is to merge with a return path to allow for multiple blanks. Then a call module is used to obtain the current input string character. Register 5 contains the address of this character, so the hardware subroutine R5 RD performs a function quite similar to the subroutine R 1RD previously described. The contents of RR5 A Macromodular Meta Machine* 385 CI, 2,3) C»-~......~ • o RRM • • : (on RRM) : • :(onRRM): 000 000 note: for detals of SET, ooT, BLK see flQure 5 f MEMORY RRl Figure 4 - Meta machine instruction decoding one gated into the memory address register RRA. The subroutine MTORM is then used to put the contents of the location contained in RRA into the register RRM. This set of functions is grouped as a hardware subroutine because a number of other instructions also need to obtain the current input character, and hence need to execute exactly the same sequence of steps. After the return from routine R5RD, the control pulse continues on the line labeled B 1. This line interrogates the detector unit on register RRM (labeled DD5) to see if the bit pattern of the current character matches the bit pattern for a blank. If the patterns do not match, control continues to line INTP 1 thus advancing on to the next instruction. If the bit patterns do match, then another hardware subroutine is called by control line B2. Subroutine I 13 increments the input string pointer register RR5. It also checks to see if the input string buffer is exhausted. If it is, a new card is read in and RR5 is reset to the initial buffer location. If it is not, RR5 is simply incremented by 1. On return from subroutine I 13, control is merged with the original entry line, BLK. Thus, as long as black characters are found in the input they will be skipped. Control is not passed on to the next instruction until a nonblank current character is found. Another entry in Figure 5 illustrates the connections for QOT. This instruction looks for a string quote in the input and sets the switch register to true if one is found. The first action is to use a call module to obtain the current input character. As in BLK, the hardware subroutine R5RD leaves the desired charac~er in register RRM. On return from this subroutine, the control pulse continues on the line 386 Spring Joint Computer Conf., 1967 labeled Q 1. This line uses a detector DD2 to determine if the input character bit pattern matches the bit pattern of a string quote. If a match is found, the control line Q2 causes the current input character to be saved by calling the hardv/are subroutine iNDX5. Subroutine Ii3 is then used to increment the input string pointer. The instruction SET is finally executed. to set the switch register to true. If a string quote was not found, then the control line labeled T3 is activated. The contents of location 5 are read and stored register RR5. This is done by putting the constant 5 into the memory address register, RRA, and then calling the MTORM subroutine. The result obtained in register RRM is then gated to register RR5. This restores the current input string pointer to a previously set value, allowing the input string to be scanned again. The control path then increments the switch register RR2, setting it to the value false. Merging with INTP 1 then passes control on to the next instruction. in The third entry in Figure 5 is for SET. This instruction has two functions. It first clears the switch register RR2, by using the subroutine CLR2, setting it to the value true. It then writes the current input string pointer (the contents of register RR5) into memory location 5. SET, then, establishes the initial reference point for scanning a string. A failure in recognizing the input string will cause the input string pointer to be reset to the value it had at the last execution of the instruction SET. The MS2 simulator was written to run on the IBM 360/50. As a matter of minor convenience, the bit patterns used for the characters in the meta machine are 8 bit EBCDIC, as used in the IBM 360 series computers. This particuiar meta machine design requires the use of the following macromodular units: 43 data gates 41 call units 33 data branches 1 memory 11 registers 12 detectors 5 decoders 1 adder plus a number of other miscellaneous units. It is quite interesting to note the interplay between the number of modules required and the length of program that must be executed. This machine design includes some rather powerful instructions, such as automatic table look up and push down stack operation. As a conseque!1ce, the entire basic compiler requires only 588 (decimal) locations. An alternative, a machine with less complex instructions, wouid obviously require fewer module units. However, the number of instructions would be increased as the balance between hardware and software shifted more towards the software side. By shifting the emphasis even more to the hardware side, the compiler could be reduced further in size. Perhaps the extreme in this direction would be to eliminate the compiler activity completely. This could be done by designing the computer to accept, as direct machine instructions, statements in an algebraic language. Machines such as described by Bashkow, Sasson, and Kronfeld5 could be implemented with macromodules. If this was done, a very interesting spectrum of machines, an based on a uniform hardware philosophy, would be available. All of the machines would be doing essentially the same job. Hardware complexity, however, would be a direct parameter effecting the ease, speed, economy, and general efficiency with which the machines would operate. Perhaps this approach would yield a more quantitative yardstick for evaluating new computer systems. The design of a special purpose computer, the meta machine, has been presented. The intent has b~en twofold: (1) to demonstrate the applicability of the macromodular system to a non-numeric problem, and (2) to demonstrate the relative simplicity of the design function when the macromodular approach is used. An additional benefit is in the ease with which a macro modular machine may be modified after it has been assembled. It was also found that the macromodular concept forms the basis for a powerful simulation technique that is quite useful in itself. REFERENCES S M ORNSTEIN M J STUCKI W A CLARK A FUllctional Description of Macro modules Proceedings of the 1967 Spring Joint Computer Conference. 2 DV SCHORRE Meta II A Syntax Oriented Compiler Writing Language Proceedings of the 19th National ACM Conference, 1964 3 D K OPPENHEIM D P HAGGERTY Meta 5: A Tool to Manipulate Strings of Data Proceedings of the 21 st National ACM Conference 1966 4 R A DAMMKOEH LER A Macromodular Systems Simulator MS2 Proceedings of the 1967 Spring Joint Computer Conference 5 T R BASHKOW A SASSON A KRONFELD Study of a Computer Directly Implementing an Algebraic Language Columbia University Department of Electrical Engineering Technical Report No 87 January 1966 A Macromodular Meta Machine* 387 000 00 I I I I - ..., - DD2 000 00 I cy J 10 I - o0 ~ ( ...., 0 ~ 6 113 ...- 0 0 ( B2 000 000 ..., DD5 ,.,. , I I I INTP1 ~ (fig. r 4) '-" RRM 000 000 ~ -t!] S14 [ B1 0- f-----., Q1 at, f--., \...:;..;;.... -+0 o () c R5RD ,---0 ( ~ ~o -. ..., 0::::' ~ '" ~a 0- ~ @II 04- I----' +-- MEMORY ... -- ~ "- +0 - 'V' ~o 0 000 000 .[@TI 0 MTORM ~ 0 crlv 0- ~ 0.- f--., 0- PP5 0 I -- fJ f-.----- - l...o ,.. "" fj~ ~? o 0 0 I o 0 i civ 0- r---, J ~ b GTP5RA i --+ ,... ~~ BlK '--- RRA '--r--- INTP1 ( fig. 4 ) ( "- "+0 ...., o 0 0 b RR5 ( ....... ~ RMTOM 000 ~ ~ (I ~ @ ~ ..., ( l 000 ... i c i @ t 0 000 INDX 5 a S6 RR2 coo- 000 000 i O ..... ~ ~-B Figure 5 - Diagram for the instructions BLK,QOT,SET ---- ....0 000 CLR2 ~ 000 SET 388 Spring Joint Computer Conf., 1967 BE~ BEG IN * DC I\Lt, : lE A.a f' PP13LJ, RRl, RRl' CALL. :A LL, CALLt :4lL, CALL, C ~ LL, CALL, :A LL, CALL, :hll, CALL, GATE, C/'LL, DeAlL, CALL, DETE:T, CALL, DCA Ll, CALL, :A LL, CALLt CA Lt, C'AlL. c.~ ILL" tALl,. DECODE ,. GATE, MERGE., CAll, GATE, MERGE, CA Ll, CALL, CA Ll, CALL, CA LL, CALL, :A LL, GATE, CA Ll, GATE, CA LL, CALL. CA tL, CALL, CA LL, CLR 2, : l R3, ~t·t rO.M P2 RD, B 10 • {)14 I GATE, RR8, GATE~ G4TE. 310* 314* 33* J4~ 3 5~:C 315* ~ 16 36* 3 13* 38* 39* * BF* BL«(t 3 1* 32* 8T* CCi.l* : 1* CCS* :2* 3~ :4* : 23* :5* : :13* :14* :6* C 15:(( : 16* : 11 * : 18* CDS * : etc :9* : 10* CLL* : : ; : : CL ~ 20~:C 11* 22* 12* 21';' 2.:(~ C lR 3l;~ Cl ~ 7 ClS ':; * I f\:T PI, DEl2., RRA • t-'1 ER GE? CLEAR, CL E/\R, CLEAR ., Cf\,lL t RRr~ , B3' t , R~1TorJi, 84' B 5' 815 ' GTP4RA, B16' GTP3~A ERR' RMTOr~t 86 58 t I 1. B13' PIRD, 89' I B8' RRM, RR4 ' JET2, I~NT PO' fNTP1, R5RO, B1' RRt-1, 005, B LK' St : 1• OUMP~ " 113, )E Tl, R,5RD, SE T R3, S' B2, I NT PI • I NT PIt T4 ' C2, I NT Pl • P4 RI) RA, C3' NEXrWD, C 4' I NO xr~, (23 ' RHTOM, C 5' X<1 0> X< 11 >X<1 2> t RR\' 7 ERR ,C 1 3 ,C 14, C 1 5, C 16, C11, TRUE, T~ UEt JJ2, RRM' ClS t N'EXT~-lD t C6' JJ5, C 18' RRM' N= XTWD, RAfv11, RAMl, RMTOf-1 J P4RDRA, RAM4, C13 • C 14' C15 ' TRUE • C8' C9' MTORt1, C10' JJ3, RR t1 RMTOrv1, 1 NTPl RRl t RR7' GT Rt4R8, C20' C'11' PUSH, : l R7, PUSH, PUS-i i C22 ' C 12 t C21' RRf-i' J sa RR? • RR3' RR1' GTRM~6 , CCS' A Macromodular Meta Machine* CD,'P!l* C 0\·] p/tl,~ : OtftP, car·j P, .Rf~A ' RRl;.1 C01 P6 COMP, CO;-'1P, Rr~ 7 ' ):~ C 0'., P7;:~ CR {tR r,,* DEr 2;:: D[r 9:~ DT/* ou" P R >;( * EN) E 9 >;: :: 2* E6 ,,'c :: 3* : Of"iPA RE , RRI.. , DETECT, RR2, DETE:T, RR9~ RRM, DO it 006 t All :: l.* E8* ERR ':: E5* GTP ORA* l~A::: CALL, :1\ Ll, CAll, C1\ LL, ClR7, P4 R0 R6, E·q1 P3RD, E 7' MTORf'~ , E3 ' OUTPUT, RR6 1 RRN' CO~1P AR RRRA, R A~~4~ RR6, R7 ~11 , E 6' EJ CALL, CALL, RETRN, CALL, ::tETRN, GATE, Gh TE, DUf·1PR, E 5' RRl' PPO, PPl, RRA • RRA' PP4, GTR t·1RAt,~ GATE, RRr-t, GTt M~6 GATE, RRt·1, RRA' RRA' RRA' RRAI RR6 ' GTRMR 7>:: GATE, RRH t RR71 GATE, RRr." RR 1, RR8' RRA' * * GTt 5,{A GTR 6R.A* GTt 6~ M GrR 7RA"r- GTt7~~1* GTR9RA* G'11 )~ ; 1 ::~ GN2 }:~ G2:({' ; 3!:c G4* ; 5::' G6;'t ; 7!;' G8* » 9:~ G 10 * E1' RRI • GATE, GATE, GTt4~1\* E 8, E4' RRA' GATE, GA TE, GATE, GATE, GA TE, GATE, GA TE, GA TF. , GATE, :" lL, GATE, GI\ TE , MERGE, RR7! RR8/RR9' E2 ' PP3, GTR4R6* FA LS E ' RRA/RR~/RRl 'RR2/RR3/RRlt/~~5!RR6' ~P2t GTR 1 RA':C FAl S E' TRUE, LOOK,. GATE, Gt\ TE , * GTt ~r{8 * FALSE' TRUE, CALL, GTP2RA* GT'3{A):: GTP'tRA* GT' 5RA * TRUE, JUTPUr, our PUT, E7 >;( Gr» RR6 • PP5, RR4, RRA' RR4, RR6' RR5, RRA' RR6, RRA' RR6, RRM' RRA' RRt~ I RR7 t RR7, RR9, RRA' GT Rlt R6, PPl, PP6, Gli RRS' RR9' CALL. G4' GTR4·RS , G2' :All, R6r·n G3' GATE, GA TE, PP2, RR8' PP7, RR9 t r.1 ERGE, CALL, OETECT, CAll, CALL, CALL, CALL, GA TE, G4' R6 RO R7. RR 7 • R9ROr..7, P-.! OX7, 003, J G5' G7' R7~'1 TR 9, G8' G9' R7 \1T~ 6 , RR8, G 10 • RR6 ' G6, GIO' 389 390 Spring Joint Computer Conf., 1967 G11* :; 12:.': !'l) Xl\ ::~ IN) XM* 1\1) X1t I N) X5~t * 12* J l3~}: 1 1 ):~ I 5* 'I 3* 14* I 6-1,. 1\J)X6* IN) X7* I~TP.l* l\JTPO* I 7* 114* I 8)!c I 11* i 12* LO)K* Ll* • il 1 ,:~ Ll7.* .. ,13* ~4 :.~ L 5* • 6 >!' • rl ~c U8>:C .9:;' L 1 o~~~ CALL, GA TE, CALL, Gf\TE, CALLy I NnE x t INDEX J INDEX, CALL, C 4 LL, C01-1PARE, GATE, GATF, MERGE, I NP UT, CA LL, CALL, COMPARE, INDEX, 1 NDEX, IN OEXt I NDE X t MERGE, Cl\ LL, CALL, DEC ODE, DECODE, DEC 0): , DECO DE, CA LL, CALL, COMPARE, CALL, :: LEA R, CALL t CA LL, CALL; : f\ ll; CA LL, CAll, : A Ll t DC ftLL t e2, RR7, e2, GIl' RR6' G 12' JJ7, RR6 1 e2, AT I ' RRA' RRM' RRlt I R5RO, ~ T RMR6, PP130, PPIO, PP 10 t RMTO~·', INOXA, PP130, CALL t Pl* CALL, »5 .." DC ALL, I 5' 11' DUMPR. y 114' X< 1 >X< 2 >X<3 >, RRM, ER R , 13 ,C LS , T : , : L L, B, BT, BF' X<4 >X <5>X <6 >t RR M, BE, I 1 1 , I 1 2, ER R, ER R t E~ ~ ,E ={ ~ t E ~ R ' X<1>X<8>X(9),RRM,I\lTPl,GN1,GN2,OJT,)TV, STA,ATI,ShV' X <7 >x <8 >x < 9 >, RR ~i, SET , RET, EN D, Q0 T , CCJ tee S ,C DS t f} L K = P2RDR6, li' P4RDR7 t lll' RR7, 53, RR6, l13 ' GTR 7RA , 59' RR9' TEST, TE ST, TEST~ I Nfl X7, I ND X7 t INDX7, R6Hl, DET9, RA~·11, CA LL, T~UE, INTP~1 RIRD, CALL, CA LL, OUTPUT, CA LL, CALL, OUT PUT, CALL, CA LL, PO) ):~ P 8* • 9 ,,< 13' 14' RRA, RRl' READ, 2)~ 16 t RR6' RR7' NE XT ~'1 0* J UT ~( ) 11, RR5 ' r1TJRn)~ o 3;~c RR5, RR5 1 RRA' I5' RRH' RRr~, D1* 12 I 113' PORD, RRN' I ND x~" Rr.1 TOt-' , l4' L5 1 L6' L11 LBt L9 ' LIO' LIZ, RRAt MT OR.M ' Lll' 01' 03' OZ' RR3 ' CLR3, G TR4RA, NTORH, :; T RM R7, P IRD, : R't Rt·1, 1 NT PI ' PS' PC) , Pl' P5 ' ERR, P4-' A Macromodular Meta Machine * P 4):( • 2 ~~ PUS H~:C »6,t; P7* PO~ 0* P1RD;;c P2t 0* P2RDR6* P 3~ D ~( P3RDR6* P 4t D~' P(tRDR~* 016';: P'tR 0 R 7~t QrJf P(t~ * Ql* ~ 2* RA\11* ~ 10 RA~4* * * t 11 R 12)~ t 13* * RET t 1* R2* t 3* R\'TOV. ~c RIRD~ ~ S{ D~( R6\' I}:..: R It~~ R6~ 1+* R l/i-'!c t 15 ~~ R 16~:: ~ 6< D t.' R6RUR 7:~ ~6t D"),8';c R6': T ~:~ R 6 \rj lP 3):~ R 6~ T p/t':' R-'~ Ii.: R 5~c R7t D'): R 7~ T ~:~ R7rIT{ 4 ::c R7/1 TR6* R 7~J T~ 9 R 9RD::: R 91 O~ 1 S f\.J ::' * * S 1* CALL, :A LL, CALL, : ALL, DCAlL, CA tl, CALL, CA tL, CALL, CA LL, CALL, CA LL, CALL, CA lL, CALL, CALL, DETECT, CA Ll t CALL, CA lL, CALL, C~ Ll, CALl t : " LL, CALL, CA Ll, CAll, GATE, MERGE, WRITE, CALL, CA Ll, CALL, CALL t C. f, Ll, CALL, :hlL, CALL, Cl\lL, CALL, C.A LL, CALL, CA Ll, CALL, r:: f\ L L, CAll, CALL" CALL, CA lL, CALL, CA LL, CALL, CA lL, CALL, CA Ll, P2' CO~1Plt , I NO Xl. f INDX4, COMP!t • P6 ' P7' ERR, P4RD, CR4RM, GTPORA, R7VJ TR4' MTOR~ I GTPl=tA, HT ORM' GT P2 RA, , GT R t-iR6' MTOR,,\' GTR MR6 j MTORr-1' GTR ~RA ' MTOR~ P2RD , GT P3 RA, P3RD, GTP4RA, P4RD, P4RD, G TRMR6' '" P4RD, GTR rl:R7 t Q1' R5 ROt RRM. 1 NDXS t COMPA, I ND XA, COMPA, I ND XA, INDXA, IND XA, POP, R13' RIO' Rl' POP, R2 ' R 3' RRl' POP, RR1, IN TP l' RRM, GTR IRh t GT R5 RA, CO~P6 , IN OX 6 l RRAt MT ORM' M TOR\l' R 4' C OM P6' RIft' :: Or-1P6, IN OX6 , I ND X6, INOX6 t GTR6RA, R6RO, R6RD, GTP3RA, GTP4RA, C O~·1P7, IN DX7 , GT R7 Rt\r , GT R4RA, GTR6RA, G T R9RA t GTR9RA, R9RD, Sf. , S5, R15' Rlb' R4' ,.., TOR'q I GTRMR7' G TRt1R8' GTR6R~1, GTR7Rr~ Q2, DD2, SET' RIO ' COMPA' R 11' RI21 '·n R Of4 • R6 vJT' R 6HT' R5' C OMP7 t MTOR'-1' R MT tJ~l' R7 wr' R 7WT ' R1 HT' Hr ORM I GTRMR7' S1' IN TPI t T3 t 391 392 Spring Joint Computer Conf., 1967 5* S 3* ) 7* CALL, : ALL, CALL, CA LL, CAll. 58* ;"A LLt ) CL EAR, CA LL, CALL, C ~ LL, CAll, CA Ll, CALL, ~4::t S2* ~ ,.. 9~t i 1 0* S 11* i 13* SEr S 6* 514* * SET R 3 * .. I J GATE" CALL, BITSET, P3RDR6, R6 HTP3' P4RDR6, 53' R6t~4, R6 HiP 4, 57 • S 8' GTRMRA, S9' RRM' S13, 513, RMTO"M' C LR2, GTP5RA, 56' S 14' RR5., RRM' RMTOM, RRM, RR3' SHFTRZ, CA Ll, RRr·p LOOK, Tel: DeALL, DET2, Tl* GATE, JJ6, CALL, R5RD, r 2* r 4* COH?~RE, CALL, CA LL, CALL. 14 T ES r * ~c r 6:~ T7 * r 8* T9* r 10* T 12.1; r 11 ~c rn~6),': GATE, INDEX, MERGE, CA Ll, CALL, DCA LL, CALL, CALL, CALL, C OMPl\ RE, IN DEX t ,.. 0\ ..... J-I, It LLJ 513 • RAH 1, STl\';C r 510' S 11 t 513. SH=TM* T3* r 13* S2' R6N4, I r-..IT PI ' A3 ' T t, I NTPl' RRM, RR7' T2t RR7, Tr.. INDX5, I NT PI • G T P5RA, T13' MTORM, RRM, T14' RR5 T 3' t RR2 • I NT PI • T6' R6r~11 , R7M 1, T 7' OET9, T8, R6RDR8, T9' R7RD, 110' T 12 I RRt1, OU~~PR , RRB, RR9' GTR6RA; OMTnv, ,. '-" I t".j T~UE' TRUE, r II' The CHASM: a macromodular computer for analyzing neuron models* h" "'J rJ.-l RI ---- ..... A.......... ~ R~ .-~- P .&....I • M()l R, _.&..J N . . , .A . ........... ... " .... ~PVPR() . . ....... -~ ~ Mi. .... ORNSTEIN and ANTHARVEDI ANNE Washington U n;vers;ty St. Louis, Missouri *This research was supported in part by the Advanced Research Projects Agency of the Department of Defense through contract SD-302 and by the Division of Research Facilities and Resources of the National Institutes of Health through grant FR-00218. INTRODUCTION The CHASM is a "fixed plus variable"l computer system composed of a specialized marcomodular,3 processor coupled to a LINC4. The CHASM is designed to carry out the analysis of a Markov process model for the time patterns of spike discharges of neurons. The fixed portion of the CHASM computes certain probabilities associated with the Markov process model. The LI N C provides input and output for the fixed portion and controls the execution of the calculations. The bulk of the calculations is efficiently carried out by the fixed portion. The more irregular operations, which occur less frequently, are carried out by the LI N C. The neuron model The neuron model which the CHASM is designed to analyze was constructed to interpret the temporal patterns of single neuron spike discharges, observed through a microelectrode in the cochlear nucleus of the cat,5 in terms of commonly accepted concepts of synaptic mechanisms. 6 Models similar to the present model have been used by various workers 7,8 to account for neural spike discharge patterns. The methods previously used to analyze these models have .;onsisted primarily of some form of Monte-Carlo simulation, although Stein8 has presented some analytical results. The method of solution used in the CHASM was first implemented in a less general form by means of a LINC program. Although the results obtained were satisfactory, the computing time was excessive for all but the simplest cases. A detailed description of the earlier form of the model, as well as the rationalization of its form and 393 some examples of its application to the cochlear nucleus, are given by Molnar.9 The generalizations incorporated in the present form of the model are direct extensions of the ideas in the earlier model. These generalizations permit us to calculate the response of the model to time-varying inputs, as well as steady-state inputs, and also make it possible to simulate more closely the known features of the neural mechanisms on which the model is based. We assume that the state of the model neuron is represented by a single continuous random variable which we shall call d, the depolarization of the neuron. The neuron receives inputs in the form of discrete events which occur at times given by a Poisson process with a specified time-dependent rate parameter, p (t).1 o The occurrence of an input event causes a discontinuous jump in the value of the depolarization with the jump size dependent upon the value of d. In the absence of input events, d undergoes a continuous change in value whose rate depends on the value of d. The generation of an output event by the model, which we take as analogous to the spike discharge of a real neuron, occurs' whenever the value of d exceeds a fixed threshold value T . I t can easily be seen that the random variable d is the state variable of a Markov process with a timedependent parameter p (t). Figure 1 illustrates a simple example of a Markov process of this type. In this example, the jumps are of uniform size and the continuous transition is a linear decay. We are particularly interested in obtaining two different results from this Markov process model. First, 394 Spring Joint Computer Conf., 1967 I ---L:____ EVENTS ",UTPUT I 1 - :_ _ _ _ _ _ _ T t---------r-.----NT""-~ I DEPOLARIZATION ~ _ __ ~ I ~ h.!":. ~ ~ l'\.! ~ ,,; ~ :N. i ~ i .N N . ~" To illustrate the meaning of the functions Urn and w rn , we consider the special case of the model which has received the most study. In this case, the jumps are of constant size R~x, where we shall take R as an integer; the decay of depolarization follo'vvs an exponential curve I• • • o t--~-------~--~~----~- in the absence of any jumps. For this case, TIME --. Figure 1 - An example of a Markov process with continuous and jump transitions we wish to obtain the first passage time for the depolarization from some initial condition to the first crossing of the threshold value T. Second, we are interested in the densIty of threshold crossings as a function of time. The first case is analogous to the spike interval histogram, and the second to the poststimulus time histogramY These two statistics are commonly used in the neurophysiological literature to represent experimental results from studies of neuron spike discharge patterns. The method used for the solution of the Markov process model is recursive calculation of the probability distribution of the depolarization at time t+~t from the previously calculated probability distribution for time t. Let us define F k(m) as the probability that the depolarization is less than (m+ 1)~x for t=k~t, where m is an integer 0, 1, 2 ... 1023, and k is an integer 0, 1, 2 ... We shall henceforth choose the value of ~x such that ~x = 1~2~ We will not discuss here in detail the errors that are introduced by making these discrete approximations to the original continuous problem, but it can be demonstrated that they are acceptably small for the purposes of the intended study. We thus wish to calculate the function F k+l (m) from the known function Fk(m). In order to do this, we must define two additional functions which characterize the continuous and jump transition mechanisms. The continuous transition mechanism, which may be regarded as decay of the depolarization towards zero, is described by the "backwards" function Urn. If the value of the depolarIzation at time (k+ 1)~t is m~x, and no jumps took place in the interval k~t:::;t«k+ 1)~t, then um~x is the value that the depolarization had at time k~t. Likewise, we define wmAX as the value that the depolarization had at time k~t, given that its value at time (k+ 1)~t is m~x, and one jump took place during the time intervai k6.t:::;i< (k+ l)~t. wm = m - R , m-R~O =0 ,m-R i+ 1] (3) Equations (2) and (3) give the values of Fk(u rn) and Fk (rn) needed to evaluate Equation (1). The evaluation of both Equation (2) and Equation (3) is carried out in the CHASM by the same subsequence, which we shall call the Interpolate subsequence. Figure 3 shows the complete data network of the CHASM, which identifies the registers, gates, data paths, adders, etc., that store, transfer and modify data. The two "accumulators", A and B, are each made up of two register macromodules coupled together to form one 24 bit register, and their gates, adders and shifters are likewise made up of coupled pairs of macromodules. The registers Sand Mare single macromodules used to store memory addressing information. We assume that the calculation of Fo(urn) is in progress, that bits 0 - 9 of S contain the current value of m, and that Sl1 = 1 and SlO = o. The flow diagram in Figure 4 shows the sequence of operations carried out by the Interpolate subsequence in evaluating Equation (2). To the right of the flow diagram, the result of each step is shown in the form that is used in Equation (2). Reference to the data network in Figure 3, and the memory map of Figure 2 should clarify the interpretation of the flow diagram. Calculation of Fo(wrn) is carried out if the subsequence is entered with Sl1 = 1 and SlO = 1. The value of Fo(urn) is left in register B at the conclusion of the subsequence. Step 5 of the flow diagram is not, strictly speaking, part of the calculation, but is needed to generate the proper memory address references to the tables containing F k(m). Examining the flow diagram, we note that some of the steps in the calculation of Fk(u rn ) can be realized directly by single operations with macromodules, but other steps do not correspond to primitive macromodules. Just as in writing programs for conventional 396 Spring Joint Computer Conf., 1967 To Accumulator Inputs 1_ 000 000 I It • - 000 000 F.U. 100 OlIO OlIO 000 - 000 000 F.U. 0 load left 00000 load Right 00000 0 J Accumulator Outputs s 000 000 - P-s M-S load t .,. xxx xxx DEl. ••• III MEMORY XD : II~ III DET. INTERFACE M e-MEM 000 000 CHASM Figure 3 - Data network and data interface stored-program computers, subsequences of primitive operations are used to realize these more complex steps. The operation MEM~A, which appears in steps (I) and (6), is composed of the three steps READ MEMORY, CLEAR A, and ADD MEMORY TO A. These three steps are realized by macromodular control connections shown in Figure 5(a). Similarly, the operation MEM-A~A is composed of the three primitive steps COMPLEMENT A, INDEX A, and ADD MEMORY TO A. The control cabling for this subsequence is shown in Figure 5(b). The mUltiplication required in step (11) of the flow diagram in Figure 4 uses register S to hold the multiplier, B to hold the multiplicand, and A to accumulate the product. The macro modular control connections for the multiplication subsequence are shown in Figure 5(c). The detector macromodule senses the value of bit So, and by-passes the addition step if So = O. Counting of the number of iterations of the adding and shifting process is carried out by a pair of call units. The complete macromodular implementation of the Interpolate subsequence is shown in Figure 6. The three subsequences, MEM~A, MEM-A~A, and S X A~B, each appear as subroutine within this subsequence. The first two are called twice within the Interpolate subsequence, and the S x A~B sub,. sequence has been arranged as a subroutine in anticipation of further use by other parts of CHASM. Figure 6 also shows, within the dotted line, some additional steps which are called the Normalize subsequence, and are always executed following the Interpolate SUbsequence. Their use will be explained later. The evaluation of Equation (1) is carried out with similar techniques whose development we shall not describe in detail. The use of the M register for sequencing and addressing, and the interface with the LINe, however, do require further discussion. The CHASM: A Macromodular Computer For Analyzing Neuton Models* (I) (2) (3) U m -B (4) (5) (6) (7) (8) (9) (10) (II) [1- (um)f J {FK ~um)i + IJ - FK (12) (13) ~Um)iJ} - B,A FK[lum)j+IJ - [t-(Um)fJ x {FK~Um)i+IJ - 397 Flow diagrams for these control sequences are shown in Figure 7. Following the completion of each sequence, a DONE signal is transmitted to the LINC, and the CHASM is inactive until another sequence of operations is initiated by the LINC. Each evaluation of Equation (1) for a given pair of values of k and m requires nine references to core memory. The generation of the proper memory addresses for these references, as well as the storage of the current value of ill, are functions of the M register. The sequence of memory references used is shown in Figure 8. Before beginning a set of calculations, register M is set to the value zero by the INITIALIZE sequence. The current value of m is retained in the right ten bits, MO- 9 , of the M register. Bit MlO is used to indicate whether the current value of k is odd or even, in the following way. The evaluation of Equation (1) is carried out for all 1024 possible values of m, beginning with m = 0 and ending with m = 17778 , Following each iteration of Equation (1), register M is indexed (incremented by one), and bits M O- 9 are examined. If they are all zero, a complete series of calculations for the given value of k has been completed, MO- 9 are zero for the beginning of the next series of calculations for the next value of k, and bit MlO has been complemented by the carry out of M9 • Thus, bit MlO changes FK[(Um)iJ}-S Figure 4 - Flow diagram of the interpolate subsequence MEM+ A .... A CLEAR The LINC interface contains two registers, which we have designated as P and L. Register P is a twelvebit register that is used to contain the current value of Pk' Register L is twenty-four bits in length, and is used to load information into the CHASM memory, such as the tabulated values of Urn and Wrn and the initial probability distribution F o(m). These registers are loaded by the LINC under the control of a program in the LINC. Information is transferred from the CHASM to the LINC via a twelve-bit parallel path from the left half of register B to the LINC accumulator. The gating here is also under the control of the LINC. The control interface between the LINC and the CHASM allows the LINC to initiate one of four sequences in the CHASM. The INITIALIZE and LOAD sequences are used to prepare CHASM for a series of calculations. The EXECUTE sequence is the major calculation sequence of the CHASM. The SHIf'T B RIGHT sequence is used to move the left twelve bits of B into the right half of B so that they can be read into the LINC accumulator by the available gates. A ------... READ MEMORY SHIFT S RIGHT ( b) '------' MEM-A-+A CLEAR B Figure 5 - Subroutines used by the interpolate subsequence 398 Spring Joint Computer Conf., 1967 EXIT 8-+A r SU;~:Q;E~CE --tI;-o'~lp : : I II "'4 I II OR 5 10 8 0-11 -+S J NO M IO =I YES (DET. ) MEM -A -+ A SUB SEQUENCE j MEM 12 -23-+ S r--T+----t--1 A+ 8-+ B -----4iW) L.......L+-_-+-' I I READ MEM. I I I \ ~'" CLR B NDX S "- "- -----------------~ 1 MEM-+A SUB SEQUENCE l L -+ 8 IJI I ---------- I SCALE ?I --~ : NO, i ENTER', S~~:T A I YES:: II NORMALIZE Figure 6- Macr~odUia_;:_cOntrolconneCtiOristorthe ffiierpOtale-- - - - - - - - normolize subroutine (l N S R) } N C The CHASM: A Macromoduiar Computer For Anaiyzing Neuron Modeis* DONE EXECUTE LOAD SHIFT ANSWER RIGHT 399 INITIALIZE Shift B RicJht Two', Complement } of S Store Portiol Result • GLOC Subroutine Store m' th Result Figure 7 - Flow diagram of major programs each time k changes, so that MlO = 0 signifies that k is even, and MlO = 1 signifies that k is odd. Bit Ml l , which changes every second time that k is increased, is not used. The subroutine G LOC sets S to the correct address for memory references number 4, 8 and 9 by copying Minto S and clearing S11' The correct addresses for references 2, 3, 6 and 7 are generated within the INTERPOLATE subsequence by the detector sensing MlO and the OR SlO operation. Note that bits SlO-11 are originally derived from the tabulated values of Urn and wrn , which contain zeros in those positions, and SlO may subsequently be set to the value 1 if MlO= O. The major program in the CHASM is the EXECUTE program, which carries out all of the operations needed to calculate F k+1 (m) from Fk(m). The result of this calculation that is of greatest interest is the value of F k+1 (1023), for the probability that the threshold was reached in the interval lillt~t<(k+l) ~t is given by {F k(1023) - F k+1(1023)} The value of F k+1(1023), it can be observed, remains in B following the completion of the EXECUTE program, where it can be read into the LINC. The remainder of the calculation of the probability of a threshold crossing is carried out by a LINC program. The LINC also chooses between calculation of the probability distribution of the interval between suc- 400 Spring Joint Computer Conf., 1967 REF. PURPOSE Obtain u m (I) (2) (3) ADDRESS I Obtain Obtain 4000 +m I r ] FK (um)i FK ~um)i + IJ (41 Store (I-PKI FK CUm] (5) Obtain wm (6) Obtain FK (7) (8) (9) Obtain ! (K odd) (um)i -~ +' (u ). + I iiii , - ,,,ell, '" I ( K odd) 2000+lu m )i+ 1 ( Keven) 2000+m (K odd) m ( Keven 1 6000+ m ~Wmli] FK[(Wm)i+ l] Recover (I-p~) F~[Um] Store Result F K ., em] I I tion was limited by the small amount of memory available for the simulated CHASM memory, several design errors were discovered and corrected through the use of the simulator, and the resulting design was verified. (wm)i 1 K odd) 2000+ IWm1i (K even) (wm)I+1 (K odd I 2000+(wm l l+1 ( Keven) 2000+m (K odd 1 m (K even) 2000+m 1 K odd) ,j( ev,n, Figure 8 - List of memory references and addresses cessive threshold crossings, and calculation of the density of threshold crossings. The first probability is analogous to the inter-spike interval histogram; the latter is analogous to the post-stimulus-time histogram. The former is simplest to calculate, as it is given by the values of successive differences between F k(1023) and F k+1(1023). The Markov process in this case is of the absorbing type, and the value of F k(1 023) approaches zero, in general, as k increases. To maintain maximum precision in this calculation, provision is made for the value of Fk(u m) and Fk(w m) to be doubled after they are calculated by the Interpolate subsequence. This is done under control of the LINC whenever the previous value of F k(1023) is less than one-half. The calculation of the density of threshold crossings is almost identical, except that we make the additional assumption that whenever the threshold is crossed the depolarization is reset to zero. This is represented in the calculation by adding a constant value, equal to {I - F k(1023)}, to each entry in the Fk(m) table. This value is calculated by the LINC, and loaded into the L register, from where it is added to the value of Fk(u m) and Fk(w m). Both of these steps are carried out by the Normalize subsequence. The Normalize subsequence directly follows the Interpolate subsequence; together they are identified and used as the Interpolate-Normalize Subroutine (lNSR). CHASM simulation The design of the CHASM has been simulated on a LINC by Mr. R. Ellis, using a LINC macromodule simulator program written by him and Miss Carol Frankford. Although the scope of this simula- CONCLUSION We anticipate that the CHASM will be a valuable tool for studies of spike discharge patterns of neurons in the cochlear nucleus of the cat. The increased speed of the CHASM over other available means of analyzing our model will permit us to explore a wider range of parameters of the model more fully than would otherwise be possible. Since the CHASM will be a relatively small and specialized computer, it should be feasible to use it intensively for periods of weeks to model results of particular animal experiments. Some preliminary estimates of the relative cost of carrying out our modeling with the CHASM, as compared with the' cost of using conventional computation center equipment and procedures, suggest that a cost advantage for the CHASM of an order of magnitude is possible if a large amount of calculation is to be carried out on this problem. This advantage is due to the relatively small cost of the equipment required for the CHASM as compared with the cost of the equipment which would be tied up during a similar calculation using a large machine. As the design of the CHASM took less than two weeks to complete, we believe that macro modular computer systems for numerical analysis of relatively simple problems requiring a large amount of computation can be realized with an amount of effort comparable to that needed to write a program for a more conventional computer. REFERENCES 2 3 4 5 G ESTRIN Organization of computer systems,' the fixed plus variable structure computer Proceedings of the Western Joint Computer Conference 1960 W A CLARK S M ORNSTEIN M J STUCKI A macromodular approach to computer design a preliminary report Technical Report No I Washington University Computer Research Laboratory February 1966 S M ORNSTEIN M J STUCKI W A CLARK A functional description of macromodules Proceedings of the Spring Joint Computer Conference Atlantic City April 1967 W A CLARK C E MOLNAR Computers in biomedical research B Waxman and R Stacy Editors Vol II chap 2 Academic Press N ew York 1965 R R PHEIFFER NY S KIANU Spike discharge patterns of spontaneous and continuously stimulated activity in the cochlear nucleus of anesthetized cats BiophysJ 5,301-3161966 The CHASM: A Macromodular Computer For Analyzing Neuron Models* 6 J C ECCLES The Physiology of Synapses Academic Press New York 1964 7 E E FETZ G L GERSTEIN An RC model for spontaneous activity of single neurons Quart Prog Report Mass Inst of Tech Research Lab Electron 71,249-257 1963 8 R B STEIN A theoretical analysis of neuron variability Biophys J 5 173-194 1965 9 C E MOLNAR Mode! for the convergence of inputs upon neurons in the cochlear nucleus ScD Thesis Dept of Electrical Engineering Mass Inst of Tech 1966 401 10 E PARZEN Stochastic processes Holden Day San Francisco 1962 11 G L GERSTEIN NY S KIANG An approach to the quantitative analysis of electrophysiological data from single neurons Biophysics J I 15-28 1960 12 W FELLER Zur theorie der stochastichen prozesse Math Annalen 113 1] 3-] 60 1936 Educational requirements for a student-subject matter interface by KENNETH H. WODTKE The Pennsylvania State University University Park, Pennsylvania devices such as two-way typewriter, cathode ray tube, slide projector, tape recorder, etc., through which the student interacts with the subject matter. The two major dimensions of the interface are its stimulus display capabilities and its response processing capabilities. * Stimulus display capability refers to the varieties of ways that a subject -matter can be displayed to a learner through the interface. Response processing refers to the variety of student responses which can be detected by the interface and processed by a computer. The present paper will examine several classes of educational variables which determine the characteristics of an effective interface. The four categories of educational variables which must be considered in the design of the interface are the characteristics of the subject matter, the characteristics of the learner, the nature of the instructional process, and the objectives of instruction. INTRODUCTION The problem of communicating knowledge, skills, and attitudes to students has concerned educators for centuries. Earlier debates centered around the use of lecture versus discussion methods, the use of the textbook, workbooks, etc. In general, these earlier "media" of instruction were passive display devices requiring relatively little response involvement on the part of the learner. Recent advances in communications technology have revived interest in the question of the media of instruction and have broadened the avenues through which the learner may come into contact with his subject. In general, the newer instructional display and response devices are "active" as opposed to earlier more passive media. They provide for the adaptation of the instructional materials to the characteristics of the individual learner as contrasted with earlier "static" display devices, and require active response involvement by the learner in the process of instruction. These devices allow the learner to interact overtly with his subject. Paralleling the recent technological developments in the area of computers and communications systems, there has been an emerging technology of learning and instruction. A new breed of educational psychologist has emerged which is dedicated to the proposition that education can and s·hould be a science and not an art. Armed with the tools of behaviorism and operationalism, he critically analyzes complex subject matters, behaviorally defines and evaluates instructional objectives, systematically arranges instructional experiences to optimize learning, and applies theoretical models to the process of instruction. It is not surprising that these investigators should also address themselves to the problem of the optimization of the modes of communication used in instruction. In computer-assisted instruction (CAl) the term "student-subject matter interface" describes the Subject matter chqracteristics Perhaps one of the more obvious factors affecting the capabilities which must be available in an interface is the subject to be taught. Different subjects require different interface characteristics. The most extensive study of the relationships between subject matter characteristics and interface requirements *The stimulus display and response processing capabilities of a CAl system are not solely dependent on the interface device. These capabilities are usually a joint function of both the interface, the computer, and the software. The lack of an important display or response processing feature may be due to a limitation in the interface device, the computer-, the software, or some combination of several of these factors. Regardless of the source of the deficiency the net effect on students is the same. The lack of an audio capability may be just as serious whether it results from an inadequate recording and playback system, a limitation of the central computer, or a lack of available software. The purpose of this paper is not to analyze how the various display and response processing capabilities may be implemented technologically. This would be a task for the engineer and computer scientist. The present paper will be concerned with the educational variables which must be considered in establishing specifications for a student-subject matter interface. 403 404 Spring Joint Computer Conf., 1967 has been made by Glaser, Ramage, and Lipson. l These investigators conducted an extensive analysis of the behaviors involved in learning three subjects: elementary mathematics, elementary reading, and eiementary science. The anaiysis was based on an actual survey of instructional programs and curricula used in the schools. From this task analysis Glaser and his associates were able to draw up a set of specifications for an instructional environment to teach each of the subjects. A summary of their findings is shown in Table 1. The table shows the wide variety of interface requirements for elementary mathematics, reading, and science subjects. Science appears to provide the greatest challenge to the development of an instructional environment. For example, science instruction often requires the visual display of natural phenomena and simulation pictures. One can't help but note the obvious advantages of a closed circuit television capability as part of the interrace for displaying scientific phenomena. Science instruction also appears to piace rather sizable demands on the interface; in the area of response proct?ssing, thus, there are times when the learner may need to manipulate controls, construct graphs and figures, etc. Some of the requirements listed in Table I are easier to implement than others. For example, our experience at the Penn State CAl Laboratory indicates that it is a reiatively simple matter to provide various types of manipulanda for the student at the Table I Stimulus and Response Requirements for the Instructional Environment in Elementary Mathematics, Reading, and Science MATHEMATICS Visual Stimulus *Numerals *Symbols *Drawings *Pictures *Words *Objects *Meaningful arrays *Pictures *Symbols *Letters *Words *Natural phenomena *Pictures and drawings *Simuluation pictures Audi tory Stimulus *Sound patterns *Words (for young students) *Words *Sounds for symbols *Sound phenomena Tactile Stimulus Objects for manipulation I:.etters (for young students Natural phenomenafriction, heat, textures, etc. Visual Di spl ay for Response *Numeral *Figures *Symbols *Objects *Letters and words *Sequential choice display *Letters *Pi ctures *Words Manipulative controls *Sequential choice display Auditory Response Detection Words (for young students) Phonemes Words Names of letters Words in context Words (for young students) Object Display and Manipulation Numbers of objects Patterns of objects Letters as objects (for young s tudents) Models and objects of science area Symbol and Figure Construction Geometric figures Sequential Stimuli *A,gorithm problems *Reading in context *Cycles *Natural sequences *Laboratory sequences Time Factor Presentati on *Patterns in time *Introduction of prompts with de 1ayed response *iime factor in natural phenomena *Graph construction *Figure construction From Glaser, R., Ramage, W. W., and Lipson, J. I. The Interface Between Student and Matter. Learning Research and Development Center, University of Plttsbu~ itts ur~., 1964. pp. 177. ~ubjebt *Instructional functions which probably can be implemented in a CAl system within the forseeable future. 405 instructional terminal. One course in audiology covering the anatomy of the ear provides the student with various plastic models of the ear and the skull. The student is taught to identify. the anatomical parts of the ear both by reference to slides depicting the various parts of the auditory system and the actual models. One conclusion seems evident from an examination of Table I. Existing interface capabilities cannot accommodate all of the requirements of these subjeci matters as they are presently taught in the schools. Furthermore, it is doubtful whether some of these capabilities (voice detection for example) will be feasible in the very near future. This observation is not surprising in view of the fact that most classroom instruction provides a wide variety of experiences for the learner. It must be remembered that Glaser's analysis represents the total spectrum of instructional experiences and few investigators expect CAl to reproduce all aspects of these experiences. The rather marked discrepancies between the requirements of Table I, and current interface capabilities reemphasizes the widely held view that.CAI must be supplementary to existing instructional techniques. MitzeJ2 has pointed out that one of the most important problems to be solved in the development of CAl is the determination of the appropriate "mix" between computer-mediated instruction and components of instruction which are mediated by the teacher or by still other means such as educational television. It is likely that the nature of the "mix" will be determined in part by the kinds of instructional experiences which can be efficiently and effectively . provided by the CAl interface. Those experiences which cannot be implemented via CAl must be provided by the teacher or by some other means. What are the instructional functions which can feasibly be provided within the next generation of CAl systems? I have indicated my own conjectures with regard to this question by marking with an asterisk those instructional functions listed in Table I which I think can be implemented within a CAl system in the foreseeable future. Work with high school and college level CAl courses at Penn State (Mitzel,3 Mitzel and Brandon 4,5,6) indicates that the level of the subject matter is also a critical variable in determining the requirements of the interface. Elementary mathematics presents one set of interface problems and higher mathematics another. The nature of responses in a mathematics program are often such that the course author is willing to accept as correct a range of answers. In the course of solving a complex mathematics problem rounding errors may result in minor variations' in the numerical answer. If the computer is programmed to require a perfect match of the student's answer with a prestored answer, answers which are essentially correct will be regarded as incorrect by the machine. As a solution to this problem, IBM7 has developed a "limit function" as part of their C oursewriter language. Limit function allows an author to program the computer to accept all responses within certain specified limits as correct responses. Another problem occurs in attempting to teach college mathematics using a typewriter terminal to display the course and process student responses. Mathematics frequently involves the display of relatively complex equations and symbolic configurations containing subscripts and superscripts. The typewriter is not efficient in dealing with such materials, and may actually interfere with learning when the student is confronted with the complex task of inputting symbolic material. The cathode ray tube display may alleviate this problem to some extent, but the problem of inputting symbolic material through a keyboard still remains. It is noteworthy that even the most experienced typists have difficulty in reproducing material containing many symbols and equations. IBM attempted to solve this problem by developing a mathematics typehead and a keyboard mask to aid the student in identifying the new character set. Our experience with this device at Penn State suggests that it is satisfactory for relatively short responses, but that it does not greatly simplify the inputting task for longer symbolic responses. IBM's discontinuation of the mathematics type head for its 1050 communications system suggests that they may have had similar misgivings concerning this procedure. Mathematics is not the only subject matter which presents special problems for the CAl interface. Several studies conducted at Penn State (Wodtke and Gilman,S Wodtke, Gilman, and Logan 9), demonstrate that the typewriter is an inefficient interface for highly verbal subjects at the college level. When identical instructional programs were administered on-terminal and off-terminal there was an increase in instructional time of 25 per cent in the on-terminal group with no commensurate increase in learning. In a second study employing a still more highly verbal program, the increase in instructional time was 75 per cent for the on-terminal group with no significant difference in learning when compared to the offterminal group. The largest portion of this time decrement is undoubtedly due to the slow type-out rate of the typewriter (approximately 120 words per minute) 406 Spring Joint Computer Conf., 1967, which is substantl~lly slower than the normal reading speed of the typical high school or college student. In an area of research where variations in instruction typically produce only small gains in student achievement, a time loss of 25 per cent represents a substantial decrement. The time could be used to give students more practice, instruction on new material, or practice on transfer problems. In addition to the gains in student learning which might accrue from a more efficient use of instructional time, there are also economic considerations in the cost of computer time, tie-lines, and other "hidden" costs involved in the preparation of courses. All other things being equal, by employing an interface which would decrease instructional time by 25 per cent without reducing the amount learned, four students could be taught for every three taught by means of a typewriter interface. From the college student's point of view, learning at a typewriter terminal is not self-paced instruction since he must slow down his normal rate of work. Pacing instruction below a student's optimal rate could produce boredom, negativism, and avoidance of CAl as an aid to learning. This is not an uncommon finding when the pace of classroom instruction by the lecture method is too slow for the brighter students. The advent of the cathode ray tube display device should speed up substantially the display of verbal information to students. The results obtained with the typewriter interface at Penn State are not consistent with the results reported in several other studie's. Grubb and Seifridge 10 compared the performance of college students taught descriptive statistics via CAl, conventional lectures, and programmed text. Those students taught via CAl took one-tenth as long and achieved twice as well on the final posttest as did the other two groups! These results are so spectacular that they demand replication by other investigators. Schurdak l l found that students who learned Fortran programming via CAl saved 10 per cent in instructional time, and performed 10 per cent better than stl!d~nts using a standard text or a programmed text. These somewhat more modest results conform more to expectations than the phenomenal results reported by Grubb and Selfridge. The nature of the subject matter is also an important determiner of the response processing requirements of an interface device. Relatively simple drill programs may not require very extensive response processing since most student responses are of the short answer .variety . College-level tutorial and problemsimulation programs will ordinarily require a CAl system with partial-answer processing capability. Partial answer processing refers to the capability of the computer to search a student's response for the essential elements of the correct answer; to disregard minor character mismatches, spelling, and typing errors, to regard or disregard word order in a student's response depending on the nature of the problem; etc. In one preliminary study, Wodtke 12 examined the relationship between student performance in a CAl mathematics course, and the number of times a student entered a correct answer at the terminal which was regarded as incorrect by the computer because of a minor character mismatch. The correlation between student achievement in the course, and the number of mismatched correct answers was-.80! Thus, it is quite clear that inadequacies in the computer's ability to detect correct answers seriously interferes with student learning. It should be noted that detection of correct responses is not solely an interface problem, but is also a software problem. The partial answer processing capability in the IBM CAl system is provided in the C oursewriter author language. Learner characteristics The second class of variables which must be considered in the design of an effective student-subject matter interface are individual differences among the students. The effects of some individual difference variables on the interface are obvious, for example, different interface capabilities are required for young children as compared to college students or adults. Whereas auditory stimulus display capability may be "supplementary" at the adult level, it is absolutely essential in instruction with very young children who are still nonreaders. Auditory communication would be the primary means of communication with nonreading youngsters. Glaser, Ramage, and Lipson l point out that auditory response detection would also be an essential requirement for an interface in teaching young students some aspects of mathematics, reading, and science. For example, in reviewing an elementary reading curriculum, Glaser and his associates point out that the student must acquire the following competencies involving an oral response: (1) In learning sound-symbol correspondence, the student is asked to pronounce the sounds of individual letters when written on the board or to circle or write the appropriate letter when its sound is presented, and (2) At all stages the student is asked to read aloud stories using the words he has learned. It is probable that some instructional functions such as oral reading which require oral response detection will have to be delegated to the teacher, with CAl incorporating those functions which are feasible within the present technology. · Educational Requirements For A Student-Subject Matter Interface Object manipulation is likely to be another important instructional experience for very young pupils, and for older students in some subject matters such as science. According to Piaget' s 13 stage theory of human development, children pass through several stages of development. Early developmental stages are characterized by sensorimotor development and the manipulation of concrete objects. Later stages are characterized by the ability to operate in more abstract terms. According to this view, the manipulation of concrete objects would be an indispensable part of instruction for elementary school children. Although there may be mechanical methods for providing experience in the manipulation of concrete objects (Glaser, Ramage, and Lipson l have described an electronic manipulation board which would be capable of detecting the identity and placement of objects located on its surface), within the present stage of technology, it would seem more efficient to delegate this function to the teacher. The CAl interface must provide a maximum of flexibility in adapting display and response modes to differences in student aptitude and past achievement. An author should have the capability of speeding up or slowing down the flow of information to a student depending on the student's aptitude or progress through the course. The variation in the rate of presentation of instruction requires a time-out feature (now available on most CAl systems) which enables the author to regain control of the terminal in the case of a student whose response latencies are excessively long. Without this terminal control, it is difficult for an author working through his computer program to alter the pace of instruction. The need for the interface to provide graphics and auditory display capabilities also depends on the past experiences and backgrounds of the students. The typical college undergraduate has high verbal ability. CAl for college students can rely heavily on communication by means of verbal material displayed via a typewriter or cathode ray tube. However, if one considers instruction for culturally disadvantaged students or students in vocational and technical education programs, much more reliance must be placed on relatively nonverbal media of instruction. Such students will probably require more graphic displays in the form of pictures, diagrams, and drawings depicting the concepts of the course. These students may have difficulty thinking in abstract verbal terms and may require much more actual manipulation of the objects of instruction. In addition, the relatively nonverbal student might show considerable improvement in learning when verbal instruction is supplemented with auditory communication. The 407 problem of how to communicate concepts to learners who are handicapped in verbal communication skills is an important problem for research with direct implications for the design of CAl display devices. One learner characteristic which has important implications for the determination of the appropriate "mix" between computer-mediated and teachermediated instruction is the student's need for affection, nurturance, and personal contact with a teacher. This variable would be particularly important during the early stages of learning with young children. It is well known that children vary considerably in their need for affection and contact with a teacher. The need seems to be partiCUlarly acute in less mature youngsters when they are initially confronted with the complexities of a difficult learning task. Increased teacher support and nurturance may be required during the early stages of the development of a complex skill such as learning to read. Children should be tested prior to instruction so that some decision can be made concerning their need for support and contact with a teacher. The instructional system must then provide the additional personal contact required by a given child. The branching and decision-making capabilities of the computer are the most unique and potentially important characteristics of a CAl system. To the writer's knowledge, all current CAl systems provide the ability to store information concerning the student's learning history, and the ability to make decisions to branch the student to instructional material which is appropriately suited to the particular learning history. The decision-making capability of most CAl systems is one technological capability which far exceeds our present knowledge of the process of learning and instruction. Unfortunately, psychologists are hard put to know which characteristics of the learner (immediate response history, pattern of aptitudes, response latencies, etc.) are optimum for branching decisions, and until we discover the instructional experiences which are optimal for a student with a particular learning history, the full power of CAl for individualizing instruction will not be realized. Characteristics of the instructional process The nature of the instructional process must also be considered in the design of a student-subject matter interface. It will not be possible in the present paper to consider all of the instructional variables which may effect the efficiency of an interface; however, some of the variables which may have special relevance to interface design will be considered. It is a commonly accepted principle in all theories of learning, that there must be contiguity of stimulus 408 Spring Joint Computer Conf., 1967 and response for learning to occur. In common parlance, the principle of contiguity simply means that in order for a response to become associated with a stimulus, the response must occur either implicitly or explicitly in the presence of the stimulus. If a student is to learn the English equivalent of a German word, he must reproduce the English word (explicitly or implicitly) while attending to the German word. Hence, attention to the stimulus word or instructional display is a critical factor in instruction. It is therefore important to determine the characteristics of displays which produce a high degree of attention on the part of students. Perhaps the most relevant research on this qu~stion has been conducted by Berlyne. 14 Berlyne found that attentio-n to a stimulus is heightened by the element of surprise, change, or novelty of the stimulus. When the same stimuli are presented in the same format over repeated presentations, attention to the task wanes, and motivation declines. The effects of novelty on behavior can be observed in any student working at a CAl terminal for the first time. The novelty of working with a machine which "talks back" has high attention holding value, at least during the early stages of instruction. The interface must be capable of providing enough variety of stimulation and novelty to sustain attention over an extended period of time. An interface which because of limited display and response processing capability provides for only very simple display and short answer response formats such as the mUltiple choice frame will soon lose interest for the learner. Travers 15 and his colleagues have recently conducted an extensive review and research on various aspects of audiovisual information transmission. Travers' studies and those of Glaser, Ramage and Lipson 1 must be considered among the primary references in the field of interface design. Travers has re-examined the traditional view that the primary advantage of audiovisual presentations is in the realism they provide. Contrary to this traditional view Travers argues that increased realism may actually interfere with learning by providing too many irrelevant cues, thus, a simple line drawing may be more effective in communicating essential concepts to learners than a more realistic picture. Travers concludes: First, the evidence points to the conclusion that simplification results in improved learning. This seems to be generally true regardless of the nature of the presentation - whether it is pictorial or verbai. This raises interesting problems, for the simplification of audiovisual materials is that they provide a degree of pictorial content will generally result in a less realistic presentation than a presentation which is close to the life situation. The argument which is commonly given in favor of realism which other procedures do not. The realism provided may not be entireiy an advantage and may interfere with the transmittal of information. The problem of simplifying realistic situations so that the situations retain information essential for permitting the learner to respond effectively at some later time to other realistic situations, is an important one!15 (pp.2.1 102.111). The limited capacity of a cathode ray tube for displaying a high degree of realism may not be such a deficiency after all. A more recent experiment suggests that the above generalization may have to be qualified in several respects. Although simplified displays may facilitate transmission of information they do not appear to facilitate transfer or application of what has been learned as well as more realistic displays. Overing and Travers 16 found that students who were taught the principle of refraction of light in water by means of realistic demonstrations were better able to apply the principle in attempting to hit an underwater target than students who were taught by means of simplified line drawings. This study suggests that the primary advantage of realistic displays may be in helping the student to apply what he has learned later on in realistic problem solving situations. Travers 15 and Van Mondfrans and Travers 17 have also conducted research on the relative efficiency of information transmission through the auditory or visual senses, or some combination of the two senses. In general, their results suggest that instruction involving the visual modality is superior to auditory instruction when the auditory presentation produces some ambiguity in the information transmitted. Thus, the auditory modality was distinctly inferior to all other modality combinations in the learning of a list of nonsense syllables, but no- differences between modalities were obtained when meaningful materials were learned. The auditory trans- mission of a nonsense term produces considerably more ambiguity of interpretation than the auditory transmission of a meaningful word. These results suggest that the use of the visual modality will be particularly effective when the task is to learn new associations such as in learning a forei~n language. Another relevant consideration in interface design is the capacity of the human being for processing information. Travers 15 favors a single channel theory of information processing. According to this view, Educational Requirements For A Student-Subject Matter Interface the human receiver is capable of processing information through only one sensory channel at a time, although the theory postulates a rapid switching mechanism through which the receiver can switch from one channel to another. Accordingly, it is possible to overload the human information processing system by sending messages through multiple sensory channels simultaneously. This condition might result in a loss of information processed by the multi-media CAl interface should be capable of keeping the multiple modalities distinct. This problem is also of concern to the CAl course author who in preparing his graphic and auditory displays must give attention to the information processing limitations of his student. Another stream of research in psychology has been concerned with the problem of imitation or observational learning. Bandura and Walters 18 have demonstrated that much learning results from the child's observation of the behavior of peers or adult models. Undoubtedly, much classroom learning results from the students' observation and imitation of the behavior of other students and the teacher who serve as effective models. Bandura and Walters have also demonstrated that observational learning occurs as readily from film-mediated models as from live models. These results strongly suggest that an effective instructional environment should provide opportunities for students to observe and imitate the performance of models. To provide adequate opportunities for imitative learning, a CAl interface would have to provide a video tape, closed circuit television, or film projection capability. Provisions for observational learning would seem to be most valuable in science instruction. In learning to use various pieces of scientific apparatus or measuring instruments, the student could watch a video taped demonstration by the teacher and then practice imitating the teacher's behavior. Ideally, such a system should have a playback feature so that students who require more than one demonstration caD have the demonstration repeated. Slow motion and stop action would also be of value in breaking down the components of a complex demonstration so that the stu.dent can observe the subtleties of the performance. Another important aspect of the instructional process is that of guidance or prompting of the desired response. The interface must be capable of providing hints or cues to the student when an unusually long respons~ latency indicates that the student is confused, or when the student makes an overt error. Hints may consist of highlighting the correct response in a display by increasing its brightness or 409 size relative to the other words in the display. IBM's Course writer provides a feedback function which enables an author to provide cues in the form of some of the letters in the correct response. Thus, a student who was unable to name the capital city of New York State could be prompted with the display: A----y. If the student is still unable to produce the correct response after the first prompt, he could be given still more information in the second prompt, such a~; A-b-ny. In addition to the guidance provided by prompting, it is also essential that the system provide for the gradual withdrawal of guidance or the "fading of prompts." A prompt should be gradually eliminated over a series of practice trials as the student becomes more certain of the correct response. Finally, the interface should be capable of providing various forms of positive reinforcement or "rewards" to students as they progress through the course. Reinforcement may often take the form of information to the student concerning his progress through the program. Reinforcement has the effect of sustaining motivation and consequently performance on instructional tasks. Perhaps the most potentially powerful source of reinforcement in C'AI is the degree of control which the student can exercise over the course of instruction, the extent to which the student can select his own menu of instruction, and the extent to which the student can query the computer for information. Recent research on problem simulation and economic games programmed for computer presentation (F eurzeig19 and Wing20) suggest that instruction involving conversational interaction and inquiry are highly reinforcing to students. Although these interactive programs place no unusual demands on the stimulus display requirements of the interface, they do extend considerably the requirements for response processing. The interface must be capable of accepting rather lengthy verbal inputs, and the computer must be able to detect key words in a wide variety of verbal responses. I nstructional objectives Instructional objectives play an important role in determining the interface characteristics required in instruction. It is no great surprise that one of the most successful early CAl projects involved instruction in arithmetic drill (Suppes, Jerman, and Groen 21 ). Arithmetic drill provides a relatively delimited class of instructional stimuli and responses. The presentation of arithmetic problems via the interface presents few serious display problems, and the responses are such that little complex response processing is required. As Suppes has demonstrated, elementary arithmetic skills can be easily taught by a relatively simple teletype interface, which pro- 410 Spring Joint Computer Conf., 1967 vides an important adjunct to regular classroom instruction. As one begins to include other instructional objectives such as diagnosis, remediation, application, transfer, problem solving skill, attitude formation and change, etc., one finds that the interface facilities must be broadened considerabiy to provide the enriched variety of experiences needed to accomplish these objectives. SUMMARY The primary purpose of this paper was to illustrate the effects of different subjects, different students, different learning objectives, and instructional processes on the functional requirements of the studentsubject matter interface. Although there is much diversity in the experiences which an instructional environment must provide to students, these experiences also have much in c_ommon. The questiort arises as to whether a single general purpose instructional interface can be developed to teach a wide variety of different subject areas. Glaser, Ramage, and Lipson 1 have addressed themselves to this question. In general, there seems to be some concensus that the next generation up-to-date operational CAl system will have the following capabilities; (1) Keyboard for response input (2) Cathode ray tube display with light pen response capability (3) Video tape or closed circuit television capability built into the CRT unit (4) Random access image projector with positive address (may be unnecessary if the system provides video tape capability) (5) Random access audio communication device with positive address. A CAl system with the above capabilities would be able to provide many of the educational experiences outlined in Table I. In analyzing elementary mathematics, reading, and science, Glaser, Ramage, and Lipson l have outlined some of the major deficiencies of the general purpose interface. These special educational functions may require special purpose interface devices which will be feasible only in experimental CAl systems in the near future. An operational instructional system may have to i provide these experiences through regular classroom instruction or special laboratory experiences. Major deficiencies of a general purpose studentsubject matter interface: ( 1) Mathe~atics - Object manipUlation to develop basic number concepts: the manipulation of three dimensional geometric figures, line drawings, bisection of angles, drawing perpendic- uiars, etc. as in geometry. The "Rand Tablet" which is currently operative on some experimentai CAl systems provides the graphic response capability required for teaching courses in mathematics, science; and handwriting. The Rand Tablet allows the student to make line drawings, graphs, and diagrams which are simultaneously displayed on a cathode ray tube screen, and evaluated for accuracy by the computer. The Rand Tablet may be operational in future CAl systems. (2) Reading - Oral response detection for very young children. (3) Science-The limitations of the general purpose interface in the area of science instruction depend upon the extent to which actual experiences with scientific phenomena can be simulated. Will student learning of scientific concepts be adequate in simulated laboratory experiences, or will direct experience with the actual phenomena be required? Although a number of investigators are presently engaged in the development of simulated science laboratory programs for CAl, these programs have not as yet been evaluated, thus, we must await an answer to the question of the value of simulated experiences in science. One recent doctoral dissertation completed at Penn State has some bearing on the issue of simulated versus actual experience with scientific phenomena. Brosius 22 compared the learning effects of watching films of the anatomy and dissection of the earthworm, crayfish, perch, and frog in biological science with the experience of having the student perform the actual dissections of t~e animals. Student achievement was measured In terms of achievement of factual information of the anatomy of th~ animals, skill in the performance of actual dissections, skill in the manipulation of scissors, scalpel, forceps, and probes, and attitude towards science. The filmed demonstrations were as effective as actual dissection on all measures, except the achievement of factual information in which the film method was actually superior to the method involving actual dissection. This study suggests that filmed demonstrations may be just as effective as direct experience in facilitating learning of some concepts in biological science. Although present technology may be inadequate to accommodate all instructional applications outlined in this paper, it is expected that improvements in the interface will emerge which will closely approximate the requirements of many educational tasks. Educational Requirements For A Student-Subject Matter Interface The writer's general position is that the interface should "ideally" provide as wide a latitude of stimulus display and response capabilities as possible to accommodate a variety of instructional problems. However, while we wait for the necessary technology to emerge much valuable work can be accomplished with relatively simple interface devices. As we work with first generation equipment we must be especially alert to its limitations in planning the objectives of instruction. Experiences which cannot be adequately provided via CIA must be provided by other "offline" methods, such as textbooks, workbooks, educational television, laboratories, teacher demonstrations, and maybe even a lecture or two. REFERENCES 2 3 4 5 6 7 8 R GLASER W W RAMAGE J I LIPSON The interface between student and subject matter Learning Research and Development Center, University of Pittsburgh Pittsburgh Pa pp 177 1964 '. HE MITZEL Five major barriers to the development of computer-assisted instruction Experimentation with Computer-Assisted Instruction in Technical Education Edited by H EMitzel and G L Brandon University Park Computer-Assisted Instruction Laboratory The Pennsylvania State University Semi-Annual Progress Report pp 13-19 December 1966 H E MITZEL The development and presentation of four college courses by computer teleprocessing University Park Computer-Assisted Instruction Laboratory The Pennsylvania State University pp 94 1966 H E MITZEL G L BRANDON Experimentation with computer-assisted instruction in technical education University Park Computer-Assisted Instruction Laboratory The Pennsylvania State University Semi-Annual Progress Report pp 88 December 1965 H E MITZEL G L BRANDON Experimentation with computer-assisted instruction in technical education University Park Computer-Assisted Instruction Laboratory The Pennsylvania State University Semi-Annual Progress Report pp 66 June 1966 H E MITZEL G L BRANDON Experimentation with computer-assisted instruction in technical education University Park Computer-Assisted Instruction Laboratory The Pennsylvania State University Semi-Annual Progress Report pp 127 December 1966 International Business Machines Corporation COllrsewriter manual Yorktown Heights New York Thomas J Watson Research Center 1966 K H WODTKE D A GILMAN Some comments on the efficiency of the typewriter interface in computer-assisted instruction at the high school and college levels Experimentation with computer assisted instruction in technical education Edited by H E Mitzel and G L Brandon University Park Computer-Assisted Instruction Laboratory Semi-Annual Progress Report pp 43-50 June 1966 411 9 K H WODTKE D A GILMAN T LOGAN Supplementary data on deficits in instructional time resulting from the typewriter interface Experimentation with computer assisted instruction in technical education Edited by H E Mitzel and G L Brandon University Park Computer-Assisted Instruction Laboratory Semi-Annual Progress Report pp 51-52 June 1966 10 R E GRUBB L D SELFRIDGE Computer tutoring in statistics Computers and automation 13 20-26 1964 11 J J SCHURDAK An approach to the use of computers in the instructional process and an evaluation Research Report RC 1432 Yorktown Heights N Y IBM Watson Research Center pp 38 1965 12 KHWODTKE Correlations among selected student variables reactions to CAl and CAl performance variables The development and presentation of four college courses by computer teleprocessing Edited by H E Mitzel University Park Computer-Assisted Instruction Laboratory pp 71-83 1966 13 J PIAGET The origins of Intelligence in Children New York W W .Norton and Co pp 419 1963 14 D EBERL YNE Conflict Arousal and Curiosity New York McGraw Hill 1960 15 R M W TRAVERS Research and theory ,related to audio visual information transmission Salt Lake City Utah University of Utah Bureau of Educational Research pp 477 1964 16 R L R OVERING R M W TRAVERS Effect upon transfer of variations in training conditions lournal of educational psychology 57 179-188 1966 17 A P VAN MONDFRANS R M W TRAVERS Paired associates learning within and across sense modalities and involving simultaneous and sequential presentations American Educational Research lournal 2 89-99 1965 18 A BANDURA R H WALTERS Social learning and personality development New York Holt Rinehart and Winston pp 329 1963 19 W FEURZEIG Conversational teaching machine Datamation 10 380-2 1964 20 R L WING Computer controlled economics games for the elementary school Audiovisual instruction 9681-682 1964 21 P SUPPES M JERMAN G GROEN Arithmetic drills and review on a computer based teletype Arithmetic teacher 12 303-309 1966 22 E J BROSIUS A comparison of two methods of laboratory instruction in tenth grade biology Unpublished doctoral dissertation The Pennsylvania State University pp 151 1965 Centralized vs. decentralized computer assisted instruction systems by M. GELMAN P hilco-Ford Corporation Willow Grove, Pennsylvania vide for installation of similar systems in additional schools. The collection of student terminals and associated equipment contained within a single school is referred to as a cluster. INTRODUCTION This discussion deals with a qualitative comparison of two configuration alternatives in the design and implementation of a Computer Assisted Instruction (CAl) System. With CAl in its infancy and in a necessarily experimental stage, there is little available data upon which to develop quantitative support for the opinions expressed herein. In this respect, CAl bears a definite kinship with "time~sharing" systems. It can in fact be strongly argued that CAl is essentially a special form of the "time-sharing" system. At this stage of CAl development we are still dealing with "guesstimates" of mass storage requirements for course material, quantity of course material required to reside "on-line" at a given time and tolerable response times in the interaction among student, student terminal, and terminal controllers. This discussion assumes that as a result of a procurement, CAl systems are to be installed in more than one school and that cost/capability tradeoffs are factors in addition to satisfaction of specification requirements. Two important advantages accrue to a "centralized system" as opposed to a "decentralized system": these are in the areas of mass storage facilities and in the flexibility and potential afforded by the "naturally" formed communications network. A centralized system (Figure 1) is one in which cluster operation is dependent to a lesser or greater degree, PERIPHERALS CENTRAL PROCESSOR HIGH SPEED COMMUNICATION LINE TO -NCLUSTER SYSTEMS Figure 1 - Centralized CAl system Assumptions and definitions The key assumption and defmitions for this discussion are now stated. It is assumed that a specification or requirement calls for the installation of one or more complexes of student terminals; i.e., installation in one or more geographically and/or physically separated schools. Further, if the specification calls for only one initial installation, then it is assumed that there exists a requirement for expansion capability of the system to pro- 413 but nevertheless dependent, upon hardware and software residing in central facilities not part of the cluster, but which are accessible to and shared by more than one cluster. In the centralized system, operation over extended time periods requires the availability of, and participation by, the central facility. A decentralized system (Figure 2) is one in which each cluster is autonomous and independent. All hardware and· software necessary for operation is available, and readily accessible from, within the cluster complex. In the decentralized system, operation over extended periods is dependent only upon the availability of resources which are part of the cluster comple~.. Succeeding discussion will reference such items as cluster, cluster processor, central, central processor and so forth. Such references mean, in accordance 414 Spring Joint Computer Conf., 1967 with the preceding definitions, the resources at a single school, the digital processor which is part of the cluster, etc. "Nil INDEPENDENT CLUSTER SYSTEMS ,------------. II I I II \ II.-----....J CLUSTER PROCESSOR \ \~______~ L--~~~ ee\ I I r---'------, I \ \ I~-'-----' ILL..--_-_-_-_......_ _ _ _ _ _ \ ..J I '----_ _---' Figure 2- Decentralized CAl system Functions In either configuration the primary functions to be performed include but are not limited to: presentation of instructional material to the student, testing of the students, reaction to student responses, presentation of remedial or enrichment material as a function of student response, construction and/or modification of curriculum by the curriculum generator, student monitoring, collection, correlation, and presentation of pertinent statistical data such as types of response, student response latency time, number of correct answers, and so on, to authorized personnel. Many of the functions, but especially the presentation of course material, require the use of mass storage facilities. Some of this storage must be rapid, random access in order to satisfy response time requirements as dicated by both student reaction time and the characteristics of CRT-type student terminals. The storage advantage in the centralized system The centralized system approach can lead to economies in the allocation of mass storage facilities especially when course material is common to more than one cluster. In a centralized system each cluster requires only that sufficient mass storage capacity be available at the cluster location to maintain its immediate needs of lesson presentation as dictated by student and student-terminal characteristics. The cluster calls for additional material to be transmitted from the central prior to actual need and in accordance with daily schedules prepared in advance. At the central facilities, sufficient storage is implemented through a combination of serial access type storage (tapes), and random access storage (drums, discs), to maintain the current curriculum library. At the cluster, the quantity of storage on-line is sufficient to supply course material to n terminals for one, two, or more hours. The course material may be stored as "lesson segments" of quarter hour, half hour or other duration for each terminal. An analysis leading to the allocation of storage facilities may consider the affects of employing a console usage discipline incorporating combinations of time ordering~ console ordering~ and student ordering. The designer has a choice varying between two extremes: (a) Complete freedom of access which permits any student to access any terminal at any time for any lesson in the curricula library. It is apparent that this maximizes both flexibility and local storage requirements. (b) Restricted access which requires students to access the terminals at a given time for a given lesson. This approach tends to minimize both local storage requirements and flexibility. It should be noted that in the centralized configuration we are not advocating the complete elimination of mass storage facilities at the cluster; to do so would place the cluster in a position of almost total dependence upon the central facility. The malfunction of the central or of the communication link from central to cluster would then be very shortly followed by a cluster's inability to support required operations. The capacity and type of storage to be located at the cluster becomes a function of central facility reliability and availability as determined by MTFs and MTRs and as bounded by a predetermined minimum capability required at the cluster. Complete decentralized operation, (independent and autonomous cluster operation), would require storage capacities, at each cluster location, capable of housing the entire curriculum library and data base through some combination of storage media; the cost for such capacity and capability is subject to muitipiication in the presence of n clusters. Similar cost multiplication might be incurred in the decentralized system for peripheral devices (printers, punches) which under the centralized system are shared by the clusters. What is suggested is a deliberate attempt to minimize the cost for storage while at the same time retaining capability for continuing operations at the cluster for a given length of time in the event of central unavailability. Expansion of system facilities The advantages of centralized shared storage facilities will become more pronounced as the number of clusters increase; the cost for the storage is now "shared" by a larger number of users. At some point, however, data transfer facilities, communication interfaces and central processor capabilities may become limited and the addition of clusters will require the expansion of central facilities resulting in a tem- Centralized V s. Decentralized porary increase of the shared cost until more clusters are added. In considering the centralized configuration, items not to be discounted, but not dwelled upon here, are floor space and power consumption advantages for the cluster with the former almost always at a premium in the modern school. The expansibility of a cluster operation from an "n" to an "n + m" terminal configuration is dependent upon "processor capacity" being expended in the operation of n terminals. If certain background programs (e.g. statistics, student records) are being run concurrently with terminal operation, then transfer of non-essential programs to the central processor allows the cluster processor function to approach pure student terminal operation. Thus, whatever the unused processor capacity is, virtually all of it can be devoted to terminal expansion subject to physical limits of hardware capability, storage, floor space and power. Some negative factors I t is apparent that this conservation of storage and corresponding cost savings does not come about completely free of "negative" factors. Part of the price for the centralized system and its attendant advantages is an expenditure not encountered with the "free standing" clusters of the decentralized system. There is the matter of recurring monthly charges for the highspeed data lines from the central to each of the clusters. These data lines will be required to operate in the 2400 bps range; they must be leased from a common carrier and they are not inexpensive. Further, the implementation of even a small amount of rapid, random access mass storage at the cluster carries a cost factor which is not linear with capacity: namely the cost of controllers and interface equipment can be inordinate when amortized over small storage capacities. Careful consideration must be given to actual requirements with respect to transfer rates, access times, formats, and response times. The centralized configuration introduces additional elements of complexity into the computer programs which are an integral part of the system. At the cluster the "executive" routine must now include provision for the communications between cluster and central; part of this routine must address itself to "check fu~ctio~s" to en~ure the validity and integrity of transmItted mformatIOn. The computer-to-computer interface calls for additional hardware. Both hardware and software must be incorporated in a manner which ensures timely transfer of data without degrading the primary function of the system; that is, the interaction between the student and his terminal. The incor- 415 po ration of the control and bookkeeping routines necessary for the cluster/central interplay must be programmed so that from his position at the terminal, the student, or the instructor, or the curriculum generator believes that the machine is his and his alone. Availability considerations While the presence of a central facility permits transfer of considerable functional responsibility (data processing, statistics, curriculum storage, etc.), from cluster to central, care must be taken to ensure that the cluster operation does not become totally dependent upon central availability. Sufficient hardware and software capability must be retained in the cluster in order to establish a satisfactorily high probability that the primary function of providing instruction to students can be carried on for a given minimum time interval subsequent to the loss of central availability. Based on reliability characteristic8 (MTBF, MTR, etc.), of the central facility and communications links, enough capability should be present at the cluster so that operations can be sustained for a period of time during which a central failure can be detected, isolated and corrected and the central again made available to the cluster before the cluster has run "dry"; that is, before the cluster has run out of useful material. Tradeoffs to be considered here include consideration of hardware redundancy at the central facility versus increased facilities at the cluster. In configuring the system and assigning functions, the designer must continually keep in mind that a failure at the central potentially affects all clusters. Again, the number of clusters becomes an influencing factor; any cost incurred at the cluster level is subject to multiplication. Other advantages The communications network The centralized system configuration presents additional, perhaps more subtle, important potential advantages which are derived from the fact that the presence of a central processor together with high-speed data links to and from the clusters provides the key elements of a real-time communications system among the clusters. The central processor may be viewed as the communications hub or message switch in this configuration. In this view, we are not thinking of the wholesale exchange of administrative type messages but a rather special communications net which carries "traffic" pertinent to the primary application. The potential thus exists, not present in the decentralized configuration, for a dynamic interaction among the clusters or schools. While the techniques of learning through 416 Spring Joint Computer Conf., 1967 intercluster dynamics are not yet defined, the future establishment of group learning sessions with participants in various separated locations communicating with each other will be facilitated by the existence of the communications network within the centralized configuration. As the requirements and techniques for group dynamics through cluster interaction are evolved and understood, implementation through the addition of necessary programs and equipment will be more easily accomplished. Additional advantages potentially available through the communications network include the following items which I will mention briefly. I believe that others meriting consideration will occur to you. • The central processor can return to each cluster the statistical results of curricula, presented at other clusters. Comparisons and correiations can be made immediately available to authorized personnel. An extension could include the presentation of identical curricula or tests to geographically separated groups on a "real-time" basis with immediate data collection and distribution of results. • The curriculum author at one location can "dry run" his material against an author or group at another location. Criticism, suggestions and unanticipated responses can be obtained and acted upon in a rapid and timely manner. This ability to present the material to a "different" audience and to monitor results in "real-time" could materially benefit and improve curriculum construction techniques. Variation in content or order of presentation for a particular course could be tried experimentally at remote locations with on-line monitoring of the activity. Experimental and controi groups couid be subjected to new situations by varying inputs and testing the efficiency of new approaches. I nstructor-to-instructor communication during presentation of material would permit presentation of "on-the-spot" reactions to content. • The essential equipment elements of a "timesharing" system are present in the centralized configuration. The availability of appropriate executive, monitoring and scheduling programs would permit the participating clusters to use the system in Hoff hours" for data processing and problem solving not necessarily associated with the CAl usage during the school day. A system in development General description The Philco-Ford Corporation is currently engineer- ing a "centralized" (by the earlier definition), CAl system for the School District of Philadelphia. At the risk of introducing a new term, the system design may be more properly described as one which features centralized curriculum control with decentralized automatic operations. A central processor with associated peripheral devices and storage facilities, controls and has available at its location the entire curriculum content which it transmits to each of four geographically separated clusters ("schools"). The transmission of course content, as required, is effected through high-speed data lines (2400 bps) dedicated to each of the clusters and will take place in accordance with scheduled daily requirements of each schooL At the cluster, sufficient disc storage is provided to house short-term quantities of curricuium for eight Student-Audio-Visuai Instruction (SA VI) terminals; sufficient capability is incorporated to expand each cluster to thirty-two SA Vis. The SA VIs are controlled by a Philco Model 102 stored program digital processor which communicates with the central processor. Operation at the cluster is "independent" of the central processor only in the sense that the cluster processor is completely capable of, and responsible for, driving the SA VI terminals. The latter capability at each cluster is the previously referenced "decentralized automatic operation." Communication with the central is primarily for replenishing the supply of curriculum content for subsequent presentation to the student at the SA V I. The central processor The central processor will be used to develop, produce, store and distribute the curricula to the clusters. It can also do problem solving, trends analysis, statistical and arithmetic functions. It communicates over data lines to the cluster processors and will accept on-line inputs from the clusters under program control. The peripherals which function with the central processor include tape device"s, high speed printers, punched card equipment and a keyboard entry device. The "clusters" (at each of four schools) The cluster functions are to automatically control the student terminals and to provide inputs to the central processor. Principal equipment elements are the cluster processor and the student terminals (SA Vis): The cluster processor controls, through stored program, all inputs and outputs generated at the cluster. Jnputs are accepted from the central processor and directed to appropriate memory or the terminal. The curricula, including display data, are stored on workable segments in the mass memory and are subse- Centralized V s. Decentralized quently directed to the SAVI terminals by the processor. The student terminals (SA VIs) provide integrated input-output capability for the student, produce displays and provide a communications link to the processor through its keyboard. An optional capability provides audio input-output utilizing the terminal's sound system which is also program controlled. The console comprises a cathode ray tube, a light pen, a keyboard device, and expansion capability to inciude audio. The software The programs, designed to meet the needs of computer assisted instruction, include: Functional software for the central processor: • Multi-station control programs • Lesson distribution programs • Data acquisition programs • Student status interrogation programs Functional software for the cluster processors: • Lesson control programs • Instructional monitoring programs • Activity recording programs • Data transmission programs Curriculum generation programs: • I nitial curriculum generation programs • Curriculum modification programs • Curriculum check-out programs • Master curriculum file protection programs Test and diagnostic software: • For the central processor • For the cluster processors • For the SA VI terminals. CONCLUSION I have attempted to highlight some advantages which are achievable by employing a centralized CAl configuration. These considerations have been made from a qualitative "narrowview" (many factors remain to be considered), which in simple terms means that at this time I have neither facts nor figures to support the viewpoint. It is anticipated that further investigations, analysis and experience will permit a quantification of the key parameters leading to a model for "tradeoff' evaluation. I t is intended that future reports will convey the results of our analysis. If this presentation serves to motivate some of our colleagues in the field of education to learn more about system design and implementation considerations of Computer Assisted Instruction, then the time has been, in my opinion, well spent. Hopefully, this discussion has suggested that there are many facets to 417 system requirements which should be defined before the specification - RFQ - aware-implementation cycle can properly take place. I n spite of the fact that systems engineers and designers always cry that they "need more information" there nevertheless exists a need for improved definition in CAl procurement specifications if industry is to be responsive. Only through better definition can the user make a true "apples-to-apples" comparison of the variety of systems, costs and capabiiiiies proposed. if statements of firm minimum requirements are not detailed, the educators may be in for a painful education; the system may meet the contractual requirements as determined by legal counsel but it may fall far short of the user's intent. The field is in its infancy and some of the needed improvement will evolve with experience; but frustration and disappointment in the interim can be minimized only through concentrated and deliberate effort. It has been said of industry, with justification, that "their ignorance of education is gargantuan. But they impress me. They'll sit down and learn it."* Similarly, educators have a need to be better informed about computer technology. The two fields have much to offer and teach each other. Only through the communication and understanding of the disciplines involved can educators and industry provide the effective and efficient CAl systems to help meet the demands for quality education in the face of an expanding population. Government at all levels, the nation's educators and industry are involved in the embryonic phases of a nationally significant joint venture. I n a keynote address at the 1966 FJCC, Ulric Neisser suggested the image of the computer expert awakening in the morning, looking into a mirror and smugly thinking, "I have social impact." True or false, through evolution or revolution, there should be no question that CAl will have social impact. It should be obvious that the great potential afforded by CA I also presents a significant technical challenge and awesome responsibility. It should be equally apparent to all concerned and to our industry in particular that any attention to the "rustle of the new money that is falling like autumn leaves on the educational ground"** must be transcended by an imaginative response to the technical challenge and by a mature fulfillment of the civic responsibility. *P. Suppes, quoted in The Computer as a Tutor, Life Magazine, January 27,1967. **The Computer 27,1967 liS {/ Tutor, Ezra Bowen, Life Magazine, January Reflections on the design of a CAl operating system by E. N. ADAMS IBM Watson Research Center Yorktown Heights, New York INTRODUCTION A time shared general purpose computer programmed to operate in conversational mode may be used as a vehicle for computer aided instruction (CAl). Although at present CAl is a relatively expensive medium the outlook is that as the efficiency of time sharing system increases, the cost per terminal of such a CAl system will decrease and CAl will become practical for more and more educational applications. As a result R&D activity in CAl has increased markedly in the last few years. Current R&D in CAl is being addressed to a number of important problem areas: system design and terminal capability, programming languages and procedures, pedagogical techniques in relation to various subject matter areas, problems of operational use. Most current CAl work is not especially concerned with cost effectiveness and operating efficiency, since in an R&D phase one is more concerned with feasibility and effectiveness than immediate practicability and efficiency. Nevertheless, we think a discussion of cost effectiveness and opt:rating efficiency is worthwhile as an avenue of insight into the wise use of CAl. Cost effectiveness of a CAl program is perhaps best approached conceptually in terms of the strategy of the instructional program and how well it makes use of both human time and system capabilities. In particular, since an information system is a high-cost medium one expects that where good cost effectiveness is achieved it will be through a well conceived exploitation of the system capabilities which are unique to a computer based system: • Means of input and display which permit flexible man-machine communication, • Capability to process and respond to messages written in natural language, 4i9 • Capability to rapidly evaluate complex mathematical functions, • Capability to record, analyze, and summarize student performance data, and • Capability to administer programs of instruction in which flow of control is contingent on a variety of program parameters and indices of performance. We cannot discuss operational efficiency of a CAl system in such general terms, but instead must consider how the physical configuration and the programming system conform to the pattern of instructional use of terminals and processor: an optimal system design for a program which primarily exploits the display capability would be quite different from that for a program which primarily exploits the processing power. We have looked at a number of CAl programs prepared for use with the IBM 1440, and IBM 70101440, and the IBM 1500 to see what generalizations about system design they might suggest. These programs were all designed to be used with a terminal which was either (a) a typewriter, (b) a CRT-keyboard station with light pen input coordinate sensing capability, or (c) either (a) or (b) supplemented by an A/V device which could display prestored output in the form of still pictures of audio records. (The authors of these programs did not have available, for example, a "Sketchpad-like" capability for graphics manipulation, a large simulator, or any other technical feature using truly large processing capability). We think that as a .sro,-!p these programs may be representative of a broad class of CAl programs which can be executed on a system of modest cost. The instructional programs we have examined exhibit several basically different structures: • A "scrambled book" structure, in which the 420 Spring Joint Computer Conf., 1967 program consists of small presentation-andtest units ordered in a defined sequence, but with an occasional "test and branch" unit to transfer control from one sequence to another as appropriate on the basis of student achievement. • A "drill and practice" structure, in which the program consists ofmodules,'each module containing a pool of similar exercises. Items within a given module need not be presented in a prescribed order but, may be drawn from the pool in a random way. Thus a student does not "go through" a module, but "practices within it" until he attains to some statistical criterion of mastery .. Within such a module the program is conveniently structured into a "text block" and a "control block.'~ Drill and practice programs present a wide spectrum of sysm requirements in the areas of terminal characteristics, system response rate, processor load. • A "diagnosis and decision" structure, in which the student is required to carry out a complex task consisting of a number of subtasks that are logically related and may have to be carried out either wholly or partly in a prescribed order. Such a program typically does not consist of a sequence through which the student must proceed, but of a network of program blocks and of logical trees. Examples of such programs are chemical analysis or medical diagnosis. • A "simulated laboratory" structure, in which the student "expreiments" with a mathematical model of a process or processes. Such a program may contain simulator blocks, request handling blocks, and tutorial blocks. It may make use of auxiliary equipment used either on or off line, and the student may exercise considerable initiative as to what part of the program has control at any moment. Business games represent a widely familiar example of simulation program. The quantitative technical requirements of these programs vary widely, so we are limited to qualitative conclusions in regard to what the system program ought to do. Combining these with some frequently expressed requirements of program authors and student users, we compile the following list (nonexhaustive) of system features which are important for design of the operating system. • System response usually should be "very fast," in the sense that the student should be working much more than he is waiting. Some users specify a system response time of a small fraction of a second; in many cases we think it may suffice to have the machine reply to a student in a tenth of the time it took him to frame a message. • Source language must provide a number of functional requirements, some of which will be listed below. The most difficult questions regarding source language involve how "easy" it is for various classes of users to avail themselves of various features. • For the source language compiler: capability to compile programs entered either "off line" or "on line," very fast compile service where small emendations are made to a program. • Transaction recording: capability to mark and specify content of transaction records which may include time data, contents of storage, text of messages; simple procedures to request automatic retrieval, analysis, and summary of data in records. • Recovery from malfunction: in addition to features generally desired on other time shared systems, special provisions to recover recent contents of working storage after system malfunction; also, especially in system configurations having remote terminals, a number of features to inform users of system or terminal status in event of malfunction. Of the performance requirements referred to above, one which is troublesome to realize quite generally is that of fast response times. CAl programs are commonly very long: the stored program to process a single student message may consist of hundreds to thousands of instructions of machine code. Moreover because each of the many users of a program will need his own working storage, a single tutorial program may require a very large amount of machine storage, usually peripheral storage. Thus a central problem in a design of the operating system is how to provide adequate working storage for an instructionai program and how to quickly get into core all the necessary program and information from peripheral storage at program execution time. In the disc oriented systems we have worked with, the preferred location of all programs not being currently executed is on disc. The core memory is partitioned into an area for the monitor program and areas for programs to be executed under the monitor. A "course" program to supervise a given student is normally brought into core only when his terminal indicates to the system that it has completed sending in a message; at that time an appropriate part of the course is copied into a core area allotted to his program. to his program. Core allocation tradeoffs to speed up terminal service are involved at several levels in our system designs. These tradeoffs are primarily concerned with making best use of available core storage by a proper Reflections On The Design Of A CAl Operating System allocation: • Among monitor, interpreter, and user programs. • For a given user, among course program, working storage, and routines needed to execute "functions. " • Among competing user programs. To facilitate making the tradeoffs between monitor, interpreter, and user programs we made a distinction between two kinds of routines which constitute our source language: common routines, (which are "operation codes"), and infrequently used or very lengthy routines, (which are "functions"). The two kinds of routine are compiled and executed in different manners. The "operation codes" are either compiled directly into machine language or translated at execute time by an interpreter which is always resident in core: in either case, the machine code necessary for execution is all in core at execution time. The "functions" on the other hand are left untranslated in the compiled program and are executed interpretively by special routines which are fetched at execution time, either from disc or, in special circumstances, from elsewhere in core. By making a routine a "function" rather than an "operation code" we trade off the extra delay incurred when it is necessary to fetch the routine from disc against the core space necessary to store and interpret it. In allocating core storage for a given user the "page" size of program is the natural parameter. In determining the page size one should consider not only the total number of instructions in the user program but also the number of these which must actually be executed in processing a typical student response. Thus it might be that to deal with the expected range of replies to a particular question the program would have to contain 1000 instructions, and yet that any of the replies most commonly given by students would be completely processed by the first 100 of these instructions. In all these common cases then, the remaining 900 instructions are not required in core. From such examples we are led to consider choosing the page size as small as possible, so long as the most commonly used answer processing strategies can be brought into core on one or two pages, even though an occasional slow system response will be experienced by the terminal user who has made an uncommon answer. A given user program will suffer incremental delays in execution (which contribute to the response delay) because of every reference to disc, whether for contents of previous working storage areas, for routines to interpret "functions," or for more program to execute, so in principle one should tradeoff all three of these delays in making core allocation. However, 42i in our system designs we have thus far always taken the approach of providing only a small amount of storage (of the order of 1000 bytes) for bit switches, numbers, buffers, etc., but making it all available in core at execution time. Thus our chief tradeoffs involved the "page size" of program brought in, against the average probability that the program to interpret a desired function would be in core, and both of these against the number of programs using ---- --- ...:-- Io-VI ~ ........ at Vll~ Ulll~. It may seem obvious, that if the processor must commonly make several references to disc in the course of processing a single student message there would be definite advantage in processing several terminal programs simultaneously, since during the many milliseconds the disc arm is in motion seeking more program to service one terminal, the processor could be processing program for another terminal. Clearly such multiprogramming would permit the system to avoid the situation that all users experience extremely long response delays whenever a single "problem" user requires an extremely long time to have his terminal serviced. However, when core is divided among many programs one pays a price for frequent interruption, competition of programs for disc arms, etc., and as the available core is divided among more and more user programs, and as the average amount of core available to each one goes down correspondingly, a point is reached beyond which the average user will get slower terminal service. This point is reached roughly speaking when every user requires on average multiple fetches of program from disc to service a single request. Thus the optimum number of programs to share core is a function of the amount of core to be shared; if there is very little core available altogether, multiprogramming may actually result in slower terminal service on average. The programs we have seen represent such a great variability of structure, that no single storage allocation could approach being optimal for all of them at once; the best allocation would clearly change from user to user, hence, from hour to hour as the courses loaded on the system change. It would be very desirable, therefore, for the monitor to provide means for the system operator to vary at will (a) the maximum number of user programs which will be simultaneously serviced, (b) the number (and if desired the identity) of functions which will be resident in core, and (c) the "page size" of the executable program. We may indicate the magnitudes involved here by means of an example. Our 7010 programs require that there be stored somewhere from 900 to 30,000 422 Spring Joint Computer Conf., 1967 characters of compiled machine code to process the answers to a single question. This code is on disc and is brought in a page at a time when an answer is being processed, our page being 900 characters at present. Many programs use several functions for each 900 characters of compiled code, each 7010 function itself consisting of 900 to 3,600 characters of code. Clearly in executing programs which use so many functions, more function code comes into core than program code. In seeking how to balance time spent in fetching functions with time spent in fetching new programs we concluded that for many of our programs on the 7010 10-20,000 characters of core for "recently used functions" would suffice to adequately limit the disc arm movements involved in the necessary fetches. The page size for correspondingly good program access rate would range between 1,800 and 4,500 characters. With the amount of core space we have for working storage we would have room for 2 to 4 user programs after optimizing the size of the page and the core block reserved for functions. We are still making system measurements to improve our understanding of these tradeoffs. We have not time on this program to explore any of the complex questions involved in source language specifications. We will merely enumerate some of the functional capabilities the programming system must provide: a. A convenient means of programming basic "question-and-answer" sequences is very important for all programs. A "question-answer" sequence commonly begins with a question, (i.e., a request for student input) which is followed by a series of program blocks, each consisting of a single strategy for reacting to the student's answer. An individual strategy typically begins with a test of the student answer and a branch on the outcome; if the test "succeeds" an associated sequence of statements is executed; if the test "fails" control passes immediately to the point in the program where the next strategy begins. b. Capability to edit, search, transform, and extract from student messages in a variety of ways. Such capabilities are essential so that the student can communicate in an other than monosyllabic way and in regard to a variety of tasks without cumbersome formatting and coding procedures. c. Working storage which can be addressed by the instructional programmer in which he can store various kinds of information: decimal numbers, clock readings to tenths (preferably hundredths) of a second, address locations, alphanumeric messages, logical conditions expressing "states" which have occurred in execution of the program. d. Means for the instructional program to test and branch on a variety of conditions involving stored information: bit switch values, numerical inequalities, alphabetical order. e. Capability for the instructional program to do arithmetical operations on stored data. f. Capability to execute as part of a source language program special routines written in lower level language and to add new routines to the source language at will. g. Capability to efficiently search, mark, and modify complex text structures. Our system users have had much experience with the entry of new program material, both on-line or by cards punched off-line. A number of users find that for the entry of original program material card entry is preferable. However, there is consensus that the combination of on-line entry and immediate instruction-by-instruction compiling (as in the IBM 1440 and 1500 Coursewriter systems) is very valuable when an author is revising a program, since a large number of minor program corrections must eventually be made, and one wishes to shorten the turn around time for proof and revision. For other problems of program preparation on-line compiling is not a panacea. The process of on-.1ine revision of a program commonly results in its being located in an undesirable pattern on disc (one for which response times will be long), and leaves the author without a simple documentation of the program. Thus it seems that an author must normally end up making complete recompiies of a program after significant revisions are complete and before normal use. Logging and analysis of transaction data is an especially important function of a CAl system. There are several different kinds of data request which seem to be important, corresponding to different functions for which a CAl system may be used: • Program requests for purposes of program control, e.g., to affect a student's progress through the next units of program. • Teacher requests concerned with class supervision; these may involve brief summaries of individual performance statistics and a report of the distribution of the class members within the program at a definite point of time. • Teacher requests concerned with student counseling or evaluation; these may involve a detailed record of performance statistics for an individual over a period of time. Reflections On The Design Of A CAl Operating System • Author requests aimed at item evaluation and improvement; these will involve actual texts of student messages and distributionaf data concerning the processing of the messages by various blocks of program. • Educational research requests; these may involve any of various kinds of data, and may be organized by item or by students, possibly with reports of correlations and summaries of correlation between particular data sets. For purposes of designing the logging and analysis system the most important difference between the various kinds of data requests is not in the nature of the data needed, but in the time at which requests are made and serviced in relation to the time that the data are taken. Roughly speaking there are three kinds of requests: • Requests to be processed as data is taken, such as those in current "course registers." • Requests which must be processed very quickly, such as weekly status reports. • Requests which may be processed on a convenience basis as the necessary files are made up, such as large data compilations for authors or researchers. Two kinds of files are required to service these requests: files which are always current in the system and files which are made up from transaction log tapes. Data summary request procedures will be different for the two kinds of files: the procedure for querying current files is via on-line author service programs or utilities, and request must be serviced when the CAl system is operating; the procedure for querying tape files is an "off-line" request probably via cards to a program which sorts and searches tape files. The file preparation and sort programs to make these data summaries convenient to get will be fairly elaborate. For greatest convenience of use the programs should provide for accepting requests having a fairly flexible request format and should produce data summaries which also provide for a range of formats. Unfortunately, our understanding of the design of these programs is still quite limited, and our present programs leave much to be desired. The problems of avoiding and recovering from malfunctions are big ones for all time shared systems, so it would be redundant to discuss most of them here. Probably the single most crucial recovery problem for CAl is that of reconstituting a memory area which a program was using for working storage at the time of malfunction. The situation of the student whose "terminal record area" is lost is not entirely 423 analogous to that of the user who loses his work area while doing computation. This latter person normally has many of the results he had previously obtained in the form of a printout at his terminal, so need only repeat certain portions of the work. The student, whose records are lost, by contrast, has no knowledge of or access to the memory areas which control his program, so has no choice but to repeat in detail a stale conversation. We consider that the aversive affect of having to repeat a long conversation is very great, so we feel it is essential to keep exact copies of the vital terminal status records somewhere in the system and to update them after each interchange between student and machine. Then when a system malfunction does occur it will be possible to restart the program at a point in time no more than a minute or so before the malfunction. While "cleanness" of recovery is the most crucial reliability requirement for CAl, rapidity of recovery is also very important. It is worthwhile spending considerable programming effort to arrange that minor malfunctions can be detected and corrected without operator intervention since then recovery can commonly take place in seconds and only one or a few users would ordinarily be aware that a malfunction occurred. Most malfunctions requiring operator intervention can still be recovered from in about one minute without serious inconvenience to users, if operator procedures are good and the operators have suitable utilities available for the purpose. However, malfunctions which require all users to reinitiate their programs are relatively much more annoying to the users, who may lose four or five minutes on account of the malfunction. We feel that a few of these per day, perhaps as many as one each hour, can be tolerated by the students if recovery is "clean." A certain number of malfunctions are going to occur which cannot be so quickly recovered from, especially in a project where there is experimental hardware or an active program to develop new features in the source language. In our 7010 operation we have experienced "big" troubles causing time losses of the order of an hour or more in a week about once in two months. Since experience indicates that addition of new "functions" to the source language will be a continuing need we should assume such troubles will occur on any system. I t is most desirable that whenever any observable malfunction occurs, the system gives the user information as to whether the delay will be a big one as soon as feasible. If, as is more than likely the case, the user is scheduled into a definite time slot of a halfhour or an hour, he would often prefer to just leave 424 Spring Joint Computer Conf., 1967 if the delay is going to be an extended one. For a user at a remote station it is desirable to have a status query capability in the system, so that the user can easiiy iearn the status of the system. On the rare but big malfunction which takes more than a few minutes for recovery, an "answering service" for status queries from terminals is also valuable. In conclusion I repeat our views of requirements have been developed in a certain framework of computer size, terminal capability, student population, and role of the computer in instruction; we are aware of a wide range of potential applications of CAl to which our experience is only partly applicable. Nature and detection of errors in production data collection* by WILLIAM A. SMITH,JR. Lehigh University Bethlehem, Pennsylvania electromechanical sources; control at central station; associated with process control. Data collection is appropriate when judgment or visual observation is necessary or when mechanized methods are impractical or too costly. In general, the human reports unusual events or vital normal events at his input station. Most equipment available will allow a variety of input media such as: (1) Time and date automatically from a clock. (2) Fixed identification codes automatically from input station. (3) Semi-fixed or pre-assigned data from plastic badges', punch cards, etc. (4) Variable data from levers, dials, keyboards, etc. The advantages of automated source data collection are normally considered to be increased accuracy in recording facts, more complete description of events, and reduced time in making data available for further processing. 3 Emphasis is placed upon capturing production data with a mjnimum lag between occurrence of the event and its report into the system. This process bypasses cinventional data processing and sUQervisory verification\ assuming that the advantages of immediate recording at point of action will nullify this loss. In general, automation of the process increases computer memory requirements, transfers error checking from manual to computer methods, and creates additional need to handle multiple inptlts. The hardware requirements are complicated by needs to transmit large volumes of data, to accept and adjust to unusual variations, and to provide feedback to the person generating the entry. F or this study, the data collected in three different production situations, one assembly shop and two job shops, were analyzed and the characteristics and quantity of errors were determined. The recording INTRODUCTION Improvements in data processing equipment, particularly large volume memory storage devices, have heightened interest in the advantages of the single recording of data at its point of-origin. Automated capturing of production data, its subsequent processing into information, and interrogation and display of that information have been recognized as a means of circumventing the restrictions of using historical data and of satisfying the feedback requirements to allow control of the dynamic, evolutionary production system. Historical data, generally unsatisfactory for control, can be characterized as: (1) Inaccessible from delays in processing, (2) Distorted from processing for accounting purposes, (3) Inaccurate because of error in recording (estimated at±5%),1 (4) Incomplete for some important variables, (5) Obtained under normal or conservative conditions, (6) Not representative of some short or long cycles in a process, and (7) Invalid because of subsequent changes. The automatic recording process must provide for relatively low speed transfer of data from multiple input stations to a central processing unit in machine usable forms. In general, the capturing or gathering functions have become classified as: 2 Data collection - mostly digital data from human sources; control at remote stations; associated with production control. Data acquisition-mostly analog data from varied *This paper is adapted from a thesis accepted by the facul~y of the Graduate Division of the School of Engineering and SCIence of New York University in partial fulfillment of the requirements for the degree of Doctor of Engineering Science. 425 426 Spring Joint Computer Conf., 1967 practices and terminal equipment varied among these shops. A controlled experiment was also conducted on thirty subjects recording messages to determine the generality of accuracy found in the production shops. Characteristics of errors Beyond the problem of achieving accurate, reliable input, however, is the issue of the effect of existing data inaccuracy upon the information system. Frequency of mistakes in digits entered into the system is important in evaluating and comparing similar collection devices, but digits presented to the information system can, and usually do, have different significance. For instance, a single digit mistake in a lot number or product identification code causes more consternation than a mistake in the number of defects of one kind found at inspection. A mistake in the least significant digit of a reported quantity causes less message reconstruction than an improperly entered code to identify the type of transaction. Thus, it is insufficient to determine the overall percentage of error entering the system. Mistakes must be categorized by their recognizable traits and by their relative cost to the information system. The errors found in data collected in field studies fell into three major categories which were used in analysis and classification of data accuracy. (1) A1 cssagc Format - Entries with wrong format that can be detected and screened from system input (wrong message length, illegal characters, equipment malfunction). (2) Message Content- Entries that have correct form, but can be detected as logically inconsistent (shop status contradictions, unusual quantities, corrections to good entries, wrong machine or operator designation). (3) Event Description- Entries that have correct form and are logically processable, but prove inconsistent after subsequent entries (omitted entries, extra ·entries, wrong sequence, late or early entries, failure to correct detected mistakes). Errors listed in the first category above are relatively inexpensive because they can be readily identified and transmission can be prevented or the need for correction can be signalled to the operator before he leaves the input device. When these mistakes occur in manual information systems, they are usually corrected by pencil and eraser. Attempts to record faulty format messages are easily screened. However, 100% inspection of entries is required in order to strip these mistakes from data entering the processing system. Entries that appear to be acceptable must be subjected to further editing to test the logic, or reasonableness, of the content of the message. Detecting inaccurate or inconsistent messages in this fashion also requires analysis of other entries. The costs of this checking are greater because each message must be analyzed and compared to shop status information and to expected ranges of values. This normally requires computer system time and compounds the queueing of entries by requiring more processing time for each entry. The degree of sophistication ological tests can be arbitrarily selected, but improper messages that are not detected and corrected at this stage necessitate special audits or remain undetected. The latter error entry is the most expensive to isolate because review of previous entrie~ or holding an entry in suspension for later confirmation is usually required. This kind of mistake not only requires additional processing time, but it can also cause false indications of illogical entries among subsequent messages processed. Memory requirements are increased, depending upon the volume of such mistakes and the length of time messages must be held. Failure to detect mistakes or to resolve in compatibilities cause bias in recorded production status. Entries that remain uncorrected or undetected after normal processing of data are defined as residual errors. Discussion The development of categories to characterize data collection errors occurring in actual factory conditions provided a consistent definition of error for a variety of production situations. Format mistakes, which were most prevalent, contributed substantially to the input load on the system accepting the entries, but were predominantly corrected. Content errors in messages included miscounts and misidentification as well as manipulative mistakes in entering intended digits. Faulty and omitted description of events, aHhough few in number, proved difficult to detect and correct, contributing about half of the residual errors and increasing processing time per entry. Many content and event description mistakes were not detected during normal processing and, even when detected, the majority was not properly corrected (See Figure 1). 50 - 40 - -7 -6 -5 % 30- -4 Total 20- - 3 Entries -2 % Erj;or Entries 100Type error· Format Content Event Hatched area indicates proportion of total errors which were residual. Figure I - Field study errors by category -I -0 Nature And Detection Of Errors In Production Data Collection The large proportion of errors which were detected and corrected at time of entry into the device suggests the desirability of immediate error checking while the worker is making an entry. A substantial reduction in system load can be achieved by screening detected format errors, including station calls with no message, from further processing at the time of entry. Although errors recognized during processing were a lesser proportion of entries, there was a tendency for more than half of them to escape detection and to be residual errors in the processed information. The further an error penetrated into the information system the more difficult it became to detect and correct. More attention must be directed to effective procedures for analyzing and correcting errors that escape detection by the worker or data collection device at the point of entry (See Figure 2). 70 - 10 - 60 - 9 8 50 - % Error 40- Entries 30- - 7 6 % Total 5 - 20- 4 Entries 3 2 100Entry Detected Hatched - I - 0 Process Undetected Detected indicates proportion of total errors which were residual Figure 2 - Field study errors by source of detection The residual error rate for those mistakes persisting after detection and correction procedures, was consistent at slightly more than 4% for production and inspection workers in situations intensively studied. 5 This was true although the distribution of total errors showed statistically significant differences between shifts and between different production situations. In the only test where the mean residual errors did show a significant difference, recording practices on two shifts were pronouncedly contrasted. Thus, it appears that the proportion of persistently wrong entries, consisting of residual uncorrected and undetected errors, is not dependent upon the differences between production environments for system operating in a steady state. The high efficiency in correcting errors detected at the time a message was recorded found in field studies was sufficiently universal that it was reproduced and confirmed under laboratory conditions. Table I Summary of Experiment Residual Errors U ntimed Timed 5508 5474 A. Entries 192 217 B. Errors 109 86 Entry detected II Uncorrected 131 83 Undetected Residual 84 142 Error Rate (%A) 1.5% 2.6% 427 Total 10,982 409 195 12 214 226 2.1 % Also, the relative contribution of format and content mistakes to residual error was similar to that shown in Figure 1 for the field studies. Because the experimental task involved copying rather than recording events, the opportunity for each category differed from that in field studies but did not alter the residual results except in the event category. Table II Contrihution of Kinds of Errors to Residual Total Residual Entries Errors Errors 409 226 Experiment: 10,982 118 Format 96 288 127 Content Event 3 3 Error Rate 2.1% 0.9% 1.2% Negligible The laboratory experiment allowed variation of message length and time restraints in a fashion that could not be achieved in the field studies. Manual entry of a 3 digit message was clearly preferable to manual entry of either 6 or 10 digit messages in considering both the load imposed on an information system by the total errors encountered and the inaccuracy caused by residual errors. Similarly, 19 digit manual messages resulted in insignificantly more total and residual errors than 6 digit messages did. Pressure of time in recording had a statistically significant effect upon residual errors but did not alter the total number of errors committed. As in field conditions, about half of all the mistakes in observed manual messages under laboratory conditions were caused by single digit substitution. Omission of a digit accounted for another twenty per cent. Transposition mistakes at 7% were more frequently encountered in the laboratory experiment, but they were a less important contributor to inaccurate data recording then generally assumed. 6 The variability in errors demonstrated by individual workers among different periods of one week in field studies was sufficient to produce standard deviations almost as large as the mean error rate. This masked the possible difference in performance among individuals and indicated sensitivity of data accuracy to subtle influences within a production environment. Temperature and humidity conditions, supervisory emphasis, personnel moves, changes of procedures, and alteration to equipment can be expected to affect 428 Spring Joint Computer Conf., 1967 accuracy of data collection. The differences in total error distribution between production shifts further confirms that supervision, or motivation, can have material effect on errors within an operating environment. The differences in kinds of errors between job shop and assembly line operations were not surprising after discerning shift effects within each situation. This investigation was unable to discern preference among situations with production workers recording at their own work stations, machine setters recording for groups of workers on like machines, and clerks recording at a central station. The argument for clerical workers has generally been based on familiarity with the recording process and resulting fewer mistakes in format or procedure. Since the study shows these mistakes to be a lesser contribution to residual error, it would appear that the most accurate data would be generated by persons directly responsible for and with a vested interest in accomplishing and reporting production events rather than those performing primarily data collection tasks. REFERENCES 2 3 4 5 6 R G CARLETON 0 W HILL P V WEBB Applying a data acquisition-computing system ISA Journal 10 7 57-60 1963 J A PEARCE Data collection systems their application and design Journal of the British Institution of Radio Engineers 6 489-496 1962 N P EDWARDS One the evaluation of the cost-effectiveness of command and control systems AFIPS conference proceedings 25 Spartan Books 211-8 Washington DC 1964 F J MINOR S L REVESMAN Evaluation of input devices for a data setting task Journal of Apped Psychology 46 5 332-336 1962 E T KLEMMER G R LOCKHEAD Production and errors in two keying tasks: A field study Journal of Applied Psychology 466401-8 1962 C CARLSON Predicting clerical error Datamation 9 2 34-6 1963 Serving the needs of the information retrieval user by C. ALLEN MERRITT I nternational Business Machines Yorktown Heights, New York INTRODUCTION During the last few years, there have been a large number of reports,papers and articles written on a variety of information retrieval systems. I believe that too much has been written on the needs of information retrieval systems, and not enough either researched or written on the needs of the user. Webster's Collegiate Dictionary states that "need" is a "necessary duty; obligation; or a condition requiring supply or relief." This clearly defines what we mean by the "needs" of the information retrieval user. Despite all the advances in the field of information retrieval, we may inadvertently be building limitations into many of our information systems, simply because we are not fully considering the user, his ne~ds, his reactions and his interactions with information retrieval. Within the IBM Corporation today, as with many other large organizations, the individual scientist or technical/professional person finds himself a part of large and complex technological endeavors. These endeavors reflect the rapid industrialization of science and the scientist. In this new environment, the scientist's information needs cannot be dismissed as a uniquely personal concern. Increasingly, they have become viewed as a responsibility his employer should share, most particularly with information services that conserve the ever more sought talents and ever more costly manhours of available technical manpower. This change 'in organizational philosophy has led to the appearance of the modern information retrieval system. We know that the scientist and the engineer are accepting this new philosophy, that is, the judgment of another in providing subject matter through a storage and retrieval mechanization that he does not ever expect to operate personally. We ail know that today the amount of information being generated and accumulated is growing at an alarming rate, and this is bound to continue. Specialization in all areas of human endeavor has increased, while at the same time, the former conventional boundaries between disciplines in science disciplines in science and technology have vanished. Our scientists and engineers need to have access to knowledge related to their particular interests, no matter where it might exist. In this paper, I will explain the establishment of the IBM Technical Information Retrieval Center as a centralized computer information retrieval and dissemination system which services the scientific and technical community of the IBM Corporation. I will emphasize the direct correlation of this organization to the needs of the user; in areas of dissemination, retrospective searching and micro-processing. Known as ITI RC, our system has two unique points differing from most other information retrieval systems. First, we use a normal text information retrieval technique for searching; that is, questions are expressed in terms of English words, phrases or sentences with logical ANDs, ORs, NOTs, adjacent words, imperatives and a minimum number of matches required to search the normal text. Second, we must really know our user-the engineerscientist. Knowing our user means that we must not only work closely with him in the formulation of a personal profile, accepting any search requests that he desires to have performed, but we must evaluate each response that he returns to us as a result of material that we have forwarded to him. Our goal is to supply the right information to the right person in the shortest possible time, and at the least possible cost. It is through this type of endeavor that the engineer-scientist can best combat the real problem of technical obsolescence. Our users know that they are living in a fast-moving environment, for today's research idea can be tomor429 430 Spring Joint Computer Conf., 1967 row's hardware. They know that information retrieval SYSlems can help them, but not only must they be educated to the values of such systems, but the system itself must establish a rapport with them, so that they, in turn, recognize that they have a certain reponsibiiity to an information retrieval system. Reflection on the participation of a user in an information retrieval system brings us to the analogy between information retrieval and education. An information retrieval system, like education, deals with communication of ideas and messages. It is imperative that a user be educated to the proper utilization of an information retrieval system. Likewise, the information retrievai system must be educated to the user and the users' needs. The IBM Technical Information Retrieval Center, henceforth referred to as ITIRC, was estabiished to serve the IBM scientists and engineers throughout the worldwide corporation with a distinct philosophy and approach toward 'serving the user needs. ITIRC was established in late 1964, after an intensive corporate management study which brought together from three separate IR activities within IBM the best in manpower, experience and systems knowledge available. At that time, a decision was made to use a normal text I R technique developed within IBM, and to establish this newly formed Center on Corporate staff, in order that it might serve the needs of the entire Corporation. The size of the Corporation, the diversification of geographical locations throughout the world, and the vast range of technical interests in research development, manufacturing, and sales provided an unsurpassed challenge to this newly formed group. Immediately upon formation of ITIRC, the decision was made that there would be four basic services established to fulfill the needs of the user. These were: retrieval, dissemination, announcement and microprocessing and hard copy. The data base for this expanded information retrieval operation included IBM technical reports - those reports prepared by the engineers and scientists as internal documents, IBM invention disclosures - novel ideas submitted as .inventions to solve specific engineering problems, IBM released publicationspapers or reports presented or published outside the IBM Corporation, non-IBM reports-here selected reports from the total scientific and technical community that are determined to be of general interest to the IBM Corporation are selected as input, and the IBM Research and Engineering project files - the official reporting' medium for all research and development activities within the Corporation. The retrieval or retrospective searching activity l--....,..,,~~. _ _~=.,.... ! is one of the most important functions of ITIRC. This is where a complete search of all current and historical files may be made tailored to a requester's needs. At the present time, this file contains well over 100,000 document abstracts. Search questions arrive daiiy from users throughout the world, as well as requests from the many local IBM libraries. Upon receipt, these search requests are directed to an IR specialist, who analyzes them and formulates one or more machine questions. Once submitted to the computer, 'the IR specialist can expect the results, or the answer output of abstracts back within twentyfour hours. He reviews these and sends them directly to the user. The user may find that he is satisfied with the answers, or he may request a deeper search, or he may ask for another search on related topics. At the time he receives his printout of answer abstracts, he receives with it a card on which he can indicate his reaction to that particular question, thus giving him an opportunity to fully express his reaction to his retrospective search answer. During 1966, we processed 3,943 search requests with an average relevance of 85 to 90 per cent. The most personalized user service that we have in ITIRC is our dissemination program called CIS (Current Information Selection). In this program, the individual engineer-scientist submits a textual description of his information needs and job-related responsibilities. There are three information retrieval specialists or profile experts who are extremely familiar with the sophisticated machine searching techniques that are used, as well as with the total specifications, and thus are able to construct a profile for entry into the system. During the construction of this profile, the IR specialist may, on several occasions, talk directly with the individuai user to beuer formulate his profile needs, or where telephone communication is not convenient, the specialist will correspond with the individual user to ferret out his more specific interests. I cannot overemphasize that the success of our Current Information Selection program is due primarily to the three individuals who keep in constant contact with the more than 1,700 profiled domestic CIS users throughout the Corporation. Once the profile is operating, it is compared several times a month with all of the current documents being processed in one of four basic data inputs - IBM documents, non-IBM documents, IBM invention disclosures, and selected non-IBM journals and trade publications. Whenever the text of a document abstract matches the profile, a printed abstract is automatically generated and sent to the user. Accompanying each printed abstract is a response card. Serving The Needs Of The Information Retrievai User This response card enables the user to communicate directly to ITI RC his reaction to that individual document notification. He may indicate that it was relevant to his needs. He may desire a copy of the document, or he may state that the abstract was not of interest. Our third basic source of information to the user is that of microfilm and hard copy. To all of us who have been exposed to information retrieval in its broader sense, it is a recognized fact that to tell an individual of the existence of a document, and not be able to provide the document when he needs it, is a meaningless type of information retrieval. We must provide the document to the user, either in its original hard copy form or in a suitable microform. Currently, we are putting on 16-mm microfilm all I BM reports, selected invention disclosures and as much of the external non-IBM material as a copyright and distribution restrictions will allow. All IBM library locations have complete files of microfilm going back for several years, and covering more than 35,000 documents. This microfilm is available in 16-mm cartridge or reel form. Thus, to satisfy the user needs, we can provide hard copy to him either through his local library's microfilm, or by his returning to us the response card denoting that he would like a copy of a document. We, in turn, forward to him within 48 hours a copy of the requested document. Where there is a delay in obtaining a copy of the document from an outside source, the user is so notified by correspondence or telephone call. The library is the natural contact point for the user in viewing and securing his documents, and as much as possible the hard copy needs are serviced by these local I BM librarians. It is obvious by now that ITIRC is essentially a back-up to the IBM libraries throughout the IBM Corporation. We are not only a service to the users, but just as important, we are a service to the libraries. The final source of information to our user that I wish to discuss, is that of announcement. To supplement our Current Information Selection program, we prepare and publish a series of announcement bulletins monthly. These bulletins cover all current monthly document input processed in the four major data bases previously described. These bulletins are available at all IBM library locations and report centers, as well as publishing groups and some selected individuals who do not have access to an IBM library. These bulletins contain abstracts of documents in accession order; this includes titles, authors, source codes, detailed abstracts and descriptive subject terms assigned by the IR specialist used in the formation of the subject index found in the back of each bulletin. At the beginning of each 431 bulletin, there is a category index with twenty-three broad category terms and easy cross reference by page number back to the abstract. The subject index is an alphabetical listing, including title, accession number and page reference. These indexes and abstracts may direct the reader to his local microfilm station where the complete text of the document is available for viewing. Monthly, we prepare supplemental indexes to these bulletins for library reference use only. These indexes are by aiphabeticai authors, original source code numbers and a sequential listing of the accession numbers. All these indexes are complete with titles. Any or all of the machine-produced indexes may be cumulated quarterly or as required. One of the unique factors in the ITI RC system is the computer logic used for retrospective searching and current dissemination. I t is a flexible technique for searching normal text data bases (it should be noted that the majority of our files are composed of author abstracts). The three experienced information retrieval specialists have achieved a high degree of precision with this search logic. As explained, the data base contains the language of the original document (normal text), and we can phrase search questions or user profiles in the same kind of normal English or accepted technical language. We use single terms, phrases, and adjacent or associated words. We scan not only the abstract, but the title, author, source information and subject terms associated with the document. Serving the needs of the information retrieval user and a complete description of the search logic may be found in the paper written and presented at the 1966 Spring Joint Computer Conference in Boston, Massachusetts, April 26 - 28, 1966. With this kind of logic, the human intervener is a critical link in the system. The search question or the user profile must be tailored to the individual user needs, and written to take advantage of changes in language and development of new technologies whose terms are common today, but were not used previously. The sophistication of this system design provides the information retrieval specialist with the necessary logical tools, so that he can devote his time to understanding the user's questions and preparing them for the computer. In regard to evaluating our system performance, our sole objective here is in terms of the users' satisfaction with the results they receive, both as Current I nformation Selection customers and as search request customers. With over 1,700 profiled domestic users in our Current I nformation Selection program, it was essential that we establish a mechanized feedback system. Therefore, accompanying 432 Spring Joint Computer Conf., 1967 each printed abstract sent to a user, is a matching Port-A-Punch response card. When he receives an abstract, he simply punches out the approprIate box and returns the card to us. He has a choice of the following reactions to a document: 1 Abstract of interest, document not needed ... 2 Send copy of document. .. 3 Abstract of interest, have seen document before ... 4 Abstract not relevant to my profile ... 5 Comments(Here the user may suggest changes to his profile, change of address, etc). These Port-A-Punch cards are run against a computer statistical program. This statistical program supplies a complete analysis of all returns for each individual user and for all users, with separate reports for each of the major data bases - ( 1) total notifications sent out, (2) number of response cards returned, (3) number of interest (with a breakdown into each of the three responses listed above), and (4) number and percentage not relevant. In addition, the program gives us several special listing: (5) users who receive no notifications in the current period, (6) any user who fails to return the response cards within a specified period, and (7) a list of users whose "not relev~nt" response exceeds a predetermined percentage. With the aid of the foregoing statistics, the IR specialist or profiJe specialist can readily identify those users who do not appear to be receiving satisfactory results from the system. ProfiJes can be reviewed and personal contacts made for necessary revisions and updates of profiles, It is the responsibility of these IR specialists working with profiles to monitor any changes they make, to be sure that the revisions are to the satisfaction of the user, and that he is receiving desired document notifications. CONCLUSION In conclusion, and with an eye to the future, we have learned that normal text searching has demonstrated itself to be economically feasible to continuing usage over the past two years. We'imaw that normal text searching is capable of accomplishing meaningful information retrieval searches, both in dissemination and retrospective search request programs. We are witnessing an ever-increasing data base, which means we must develop faster search times. With the concern of the user uppermost in our minds, we attempt to provide twenty-four hour service, with an emergency service when needed, for all search requests. Both within and outside the IBM Corporation, the field of information retrieval will continue to require constant study, research and development. We feel that for these activities, one of the best environments may well be within the framework of a live operating system that continually recognizes the needs of the individual user. The Ohio Bell business information system by E. K. McCOY The Ohio Bell Telephone Company Cleveland, Ohio INTRODUCTION This paper is a general description of the Ohio Bell Telephone Company's Business Information System with particular emphases on the handling of customer requests for service. The more common term used in our business for this is a customer's service order. The basic philosophy of the Business Information System is to have a central file of all service and equipment that is accessible by all persons having a need for this information. The system is designed this way so that it will be able to provide more information in a shorter period of time for our internal operations and as a result provide a much better grade of service to our customers The Business Information Sv~tem as viewed by Ohio Bell is designed not just for management but as as implement or tool for the clerk, analyst, service representative, information operator, plant installer and others. The Business Information System described here is an overall project of the Ohio Bell Telephone Company and is not designed to serve as an exact model for duplication by others. Every Business Information System must be created and tailored to meet the individual needs of those concerned. Shown on Chart No. 1 is a map of the state of Ohio and a map of the geographical area we call the N orthern Division of Ohio. This is essentially the city of Cleveland and contiguous communities. This area comprises approximately 600,000 telephone accounts and is forty-five miles long and ten miles wide. At the present time, it is anticipated that one system will be required for this area. Chart No. 2 gives the particular statistics for the city of Cleveland. As indicated in the previous paragraph, there are approximately 600,000 accounts with a total of 1,100,000 telephones. This is served by five administrative districts and approximately 8,000 telephone employees. There is an average of 2,100 customer requests per day and this ranges from a maxi- Til, 01110 B,II BI51.'55 l.tol1lallo. SY51.. " B ...... Poineevill. aEOCIIAPII'CAI. UUCOVEHIIIY TIlE otIiQ8USIIUSllfORMATIOISTSTEM. WITI PIITICIlIl EMPIIlSIS GIVE. TO TllEIIOITOE_DIVIS'OII. Chart I - The Ohio Bell business information system Map of Ohio mum of 3,500 on Monday to 1~500 on Friday. There are about 5,000,000 local calls per day and 116,000 long distance calls per day. The month has been divided into twenty billing periods and thus, we produce 30,000 customer bills per business day. Method of operation Chart No.3 shows the over-all general diagram of the Business Information System. To more readily 433 434 Spring Joint Computer Conf., 1967 STATISTICS - NORTHERN DIVISION ACCOUNTS -590,000 TOTAL TELEPHONES -/, 100, 000 ADMINISTRATIVE DISTRICTS- 5 TOTAL EMPLOYEES - ?, 680 AYERAGE NUNBEI? CUSTOHER REQUESTS PER BUS. DAY -2,100 LOCAL CAllS-AVERAGE PER BUS. DAY-5,12?,OOO LONG DISTANCE CALLS -AVERAGE PER BUS. DAY -1/6,000 BILLS ISSUED - .10,000 AVERAGE DAY Chart 2 - Statistics - northern division understand this system, I will trail a request by the customer through the many operations of our business. A customer may present his request for service to our business office service representative in person or by telephone. In either case, the request is then translated by the service representative to a coded format which is then sent via a model 35 teletypewriter directly into our computer. When this teletype message is entered into the central computer, the computer will edit this message for any input errors that it may detect and proceed based upon what it detects. If an error is detected on input, a message is sent back to the sending station indicating the type of error detected. If the incoming message has passed the input edit successfully, it will then be processed by assigning a telephone number, switching equipment, and cable pair for Outside Plant Distribution to this order. The necessary information needed by the Plant Department to make connection between our central switching system and the outside plant has been sent to them via a teletypewriter, The Traffic Department also receives information at this time to update their information records. (This is shown by the solid black line in the upper right hand portion of this chart.) At the same time the Plant and Traffic Departments are receiving this information, the computer is sending a message to the Dispatch Center (indicated by black line to the left of center) giving them the necessary information for the installer to perform the necessary work at the customer's premises. Upon compietion of this work, the installer will notify the Dispatch Center of his completion along with any additional information concerning the status of the installation. The Dispatch Center then notifies the computer again via a 35 teletypewriter (as shown by dotted line) that this service order has been completed either as submitted 'or as changed by the installer. Since a copy of the ~nitial order has been held by the computer in a Pending Order File, the Dispatch Center need only send to the computer that information required for completion of this order. When this OHIO BEll Business Information System Chart 3 - Ohio Bell business information system Generai description The Ohio Bell Business Information 435 tral office switching machines and provides the present means of measuring the load on our switching system. These data will be entered into our processing system and will be used as a basis for assigning new services in the proper central office unit. Chart No.4 shows in much more detail the schematic of the UN IV AC 491 system which is the heart of our Business Information System. The central processor (as shown in the center of the diagram) is a UNIVAC 491 with 32K core, 4 micro-second access time, memory guard and eight input/output channels. Starting at the top of the diagram, we have used one channel for the internal clock which provides the information for printing the military time of day on all input/output messages. The second channel is used for the console. The third channel is used for handling six model 6C tape drives. These tape drives are compatible with the IBM 729 tape drives which are on the IBM 7074 system. These tape drives become the interface between the two systems. The fourth channel is used for an output printer which can be either on-line or off-line. Presently, a UNIVAC 1004 card reader-printer is used on this channel. The fifth and sixth channels are used for the communications system. Presently, we are using only one of these, the other is reserved for communications net- notification is received by the computer, the computer will do all of the internal house keeping of the many files and provide the output required by the different departments served. The data associated with this order is removed from the Pending Order File at this time Since the complete flow of all service requests has been established, the system is now in a position to make the many summaries of items that come from the service request. (This is indicated by the symbol in the center of the Business Information System Chart.) The dotted line in the lower right hand area of the chart indicates output from the computer to the Directory Department for the information required for the Yellow and White Page updating, data required by the Data Processing Center for accounting purposes, data to the Plant Repair Center so that an up-to-date file is kept on each customer's equipment and facilities, and a hard copy is sent to the Commercial service representative so that she has a complete copy of the customer's service. There is also a magnetic tape output from this system which will have the complete summary of a day's activity in a format that can be used as an entry to our Customer Records and Billing System which is on an IBM 7074 machine. All of the files in the machine will be updated on a real-time basis via teletypewriter facilities. At the bottom of this chart is shown Traffic Usage Data. Presently, this data comes from our many cen- OHIO BEll Business Information System Schematic of UNIVAC 491 Configuration t\ Console I ~~ ~ ~' I 4---+~ r ~ I Tape Units V A C 4 r---------------------+~I 9 1 Key CTMC Communications Terminal Moqule Controller CTM Communications Terminal Module Sych Synchronizer Teletype lines Chart 4 - Schematic of UN IV AC 491 configuration 436 pring Joint Computer Conf., 1967 work growth. Our communications system, as indicated previously, is made up of model 35 type teletypewriters and has been designed so that we can go up to six teletypewriters per line with individual call directing codes. Each line is terminated on a communications module. These sixteen communication modules can serve up to sixty-four two-way lines. The communications terminal module controller is a polling system that polls each of the teletypewriters every six seconds. The communications terminal module controller is a polling system that polls each of the teletypewriters every six seconds. The seventh channel is used for the mass storage device which in this system is a Model II Fastrand. This is a drum unit with a capacity of 120 million characters and an average access time of 90 milli-seconds. We can add up to eight fastrands per channel but our estimate at this time indicates it will take four of these units to handle the 600,000 accounts. The eighth channel is used for two FH880 drums. Each of these drums have a capacity of four million characters and an average access time of 17 milliseconds. The fastrands are used to contain the master file of the customer's equipment, central office equipment and the outside plant facilities. We use the FH880 drums to contain our worker programs for the many different types of order processing. We also use these drums for queuing of input and output messages from the communications system. Messages are drawn from this queue on a predetermined priority level for processing. After processing has been completed, the messages are again queued for output to the communications system and again a priority level is used in this distribution. Chart No.5 shows a teletypewriter line to a remote n I I 1020 Bolivar Rd. I PATCH PANEL ClT/CMU 490 I R I I I I Fl nl I I I II I ! II H, III I I i ----.~ Chart 5 - Typical teletype circuit FUNCTIONS OF BELLCON·TELETYPE NETWORK 1. POLLING 2. EDITING 3. VALIDITY CHECKING 4. QUEUING 5. RECORD OF INVALID MESSAGES 6. RETAINED OUTPUT MESSAGES Chart 6 - Functions of Bellcon-teletype network TYPICAL TELETYPE CIRCUIT 750 Huron Rd. OHIO BELL BUSItESS INfORMATION SYSTEM 7. AUTOMATIC OUT-Of-ORDER CONDITION OHIO BEll BUSINESS INfORMATION SYSTEM Remotes machine which may be either a transmitter distributor machine which may be either a transmitter distributor, receive only, or automatic send and receive (ASR). These machines are served via a 43A carrier system from the downtown central office switching center at 750 Huron Road. From this point to our computer center which is at 1020 Bolivar Road, a distance of approximately 2,000 feet, we use DC lines for each teletypewriter circuit. These DC lines are terminated in a patch panel at the computer site. This patch panel is installed for ease of testing since we may test inward or outward from the computer or monitor a particular line for a service reason. This patch panel serves as the interface between the outside communications and the 491 computer terminals. The communications terminal module and communications terminal module controller is the first piece of computer gear contacted by the outside lines. From this point to the UNIVAC 491 there is a high speed channel (indicated on Chart No.4). Chart No.6 lists the functions of BELLCON for the communications system. 1. Controls the polling of different stations. This polling interval can be changed by a program change. 2. Performs an input edit for invalid characters. 3. Priority checks on the input to the computer are made by this program. As indicated in the schematic chart, the queuing of input messages is handled by this program. 4. A count of invalid messages is kept so that at the termination of a particular day the input station receives a count of messages transmitted. 5. A record of all messages is kept for one hour so that any operator can obtain a repeat message if it is required. 6. An automatic out-of-order message is sent to the communications center at the computer location The Ohio Bell Business Information if any input station has a problem. This message is received by the communications supervisor and a decision is made concerning repair action. OHIO Nil. IIIISINE$S INRJIi'HA7l()N GY.11TH FIlES FOR PHASE 11 \ A '1"7 -,"..JI ] BELLCON ~ I. SCREENS AND REBUIATES AI.l. WORKER PRfJ6RAN HARDWARE REQUESTS AND SUSHITS THESE REQUESTS TO THE HARDWARE HANDlERS IN THE REAL-TIME EXECUTIVE SYSTEM (REX). MAGNETIC TAPE SUBSYSTEM FASTRAND DRUMS FH-88D DRUMS Chart 8 - Belleon 7 Chart 7 - Files for Phase I I SELLCON Chart No. 7 shows a general schematic of our basic file design. This has been designed utilizing the philosophy of a Hub File. The Hub File in this system is called a Master Circuit File. On the left is shown a system entry key and adjacent the System Entry File. The Spotting File is a file of house addresses arranged in numerical order and the Cable Pair File is arranged by cable number and numerically by pairs in a particular cable. The Pending Order File is arranged in numerical order but the Customer Inventory Record (CIR), which we call the Customer File, is arranged in random order. This file is a summary of the customer's equipment, type of service, name, monthly rate, and many other items of information that make up our customer's record. The Universal Service Order Code (USOC) is a file that lists each type of equipment that a particular customerhas. One of the most important parts of this Real-Time Ranciom Access System is the control system required to maintain the many files and handle the input requests on a concurrent basis. The basic 491 system has a Real-Time Executive (REX) control program provided by the hardware vendor. This system is basically a hardware handler and requires approximately 5,000 words in core. This system has been supplemented by the BELLCON (Bell-Control) which has developed into a control system of 5,000 words. Thus, the total control program required is REX plus BELLCON which is 10,000 words. Charts Nos. 8 and 9 list some of the items in our control system: 1. Screens and regulates all worker program requests and submits these requests to the hardware handler in REX. This includes the magnetic tape system, FH880 drums where the worker programs are stored. \ L--~ fCllntinU«l) R. ClJNTR()I.S THE CtJNNUNICATI()NS NETWfJRK. 3. SETS UP AND Cf)NTRfJI.S THE ENYIRfJNIIENT WITHIN WHICH THE WIJRKER PR()(JIWIS PROCESS. ~ PRfJTEf:TS THE SYSTEN THROUGH THE CHECKS THAT IT MAKES DURING THE COURSE OF THE PROCESSING. Chart 9 - Belleon 2. As indicated in an earlier chart, this control system also handles the communications network. 3. It sets up and controls the environment within which the worker programs are processed: This includes the accessibility of the many files and restoring the files to their regular condition. 4. It also protects the overall system through the many checks that it makes during the course of processing. Again, one of the basic reasons for file protection is that they are complete and accurate. Implementation The system that has just been outlined is a very large undertaking from the standpoint of the overall development and programming, and also from the standpoint of implementation. A system of this magnitude is too large to implement all at one time so it was divided into logical implementation phases. These phases are shown in Chart Nos. 10, 11 and 12. Chart No. 10 shows the outline for Phases I and II. Phase I is basically made up of two large batch jobs that were written for this machine so that the savings that could be obtained from them would be realized 438 Spring Joint Computer Conf., 1967 r--OHIO BELL I ftft~~~~INESS INFORMATION SYSTEM PROPOSED PHASING OF THE PROJECT I PHASE 1 • PREPARATION OF DAILY INTERCEPT RECORD FROM PAPER TAPE. PREPARATION OF TRAFFIC USAGE REPORTS. COINCIDENT WITH THIS WILL BE CHAIN AND VOLUME TESTING OF PROGRAMS RELATED TO PHASES II AND III • • PHASE 2 • COMMUNICATIONS TO AND FROM THE COMPUTER . • INTRODUCTION OF A NEW SERVICE ORDER . • I SPOTTING. • II ESTABLISHMENT OF PENDING ORDER FlU, MASTER CIRCUIT RECORD, STREET ADDRESS GUIDE RECORD, TELEPHONE NUMBER LINKAGE. ESTABLISHMENT AND MAINTENANCE OF CUSTOMER FlU IN THE COMPUTER WHICH WILL PERMIT MINIMAL INPUT FROM COMMERCIAL. PROVIDE EQUIPMENT PRINT -OUTS FOR COMMERCIAL • PROVIDE COMPLETED SERVICE ORDER (SHOWING MONTHLY RATES) ON MAGNElK TAPE TO BILLING AND COLLECTING COMPUTER. •I I ·1 Chart 10- Proposed phasing of the project while the machine was being utilized to test later phases as they were programmed and available for testing and debugging. The first job was that of preparing the daily intercept record used by the Traffic operator in handling calls concerning changes in telephone numbers. The second project was the use of the large computer to summarize and analyze the usage report obtained from the central office switching system. Phase II is the first major step into the general Busi- ness Information System. This establishes a new service order format which includes the new Bell System Universal Service Order and at the same time established the 35 type teletypewriter communications network. The term "spotting" as used here means the selection of the outside plant distribution terminal that serves the particular address of the proposed customer. The rest of the items as shown on this chart pertain to the establishment of a basic record of the customer's equipment and his monthly rate for service. OHIO BELL BUSINESS INFORMATION SYSTEM PROPOSED PHASING OF THE PROJECT PHASE 3 ·1 I .1 TRAFFK ASSIGNING ·1 INTERCEPT FROM INTERNAL SERVICE ORDER PROCESSING (ELIMINATES PAPER TAPE INPUT) .1 ACCOUNTING STUDIES I PHASE 4 PLANT ASSIGNING (INCLUDING LEn·IN STATION INFORMATION AND FACILITIES) .LI__MA_R_KEl__IN_G_Sru_D_IE_S________________________ Chart 11 - Proposed phasing of the project ~ The Ohio BeB Business Information OHIO BELL BUSINESS INFORMATION SYSTEM PROPOSED PHASING OF THE PROJECT PHASE 5· FORCE ADMINISTRATION AND MISCELLANEOUS PLANT STUDIES • LEn IN FILE MAINTENANCE (LEn -IN SET CONTROL AND REPORTS) PHASE 6· FURNISH TO DIRECTORY SELECTED DATA FOR THE ALPHA AND CLASSIFIED DIRECTORIES. • FURNISH TO DIRECTORY A PRINTOUT TO BE USED FOR PREPARATION OF THE STREET ADDRESS DIRECTORY. • FURNISH DIRECTORY DELIVERY INFORMATION. • FURNISH MARKETING, PLANT, COMMERCIAL AND ACCOUNTING ADDITIONAL REPORTS THAT WOULD BE CREATED FROM THE CUSTOMER FILE. Chart 12 - Proposed phasing of the project Chart No. 11 shows Phases III and IV. Phase III includes the computer assignment of all outside plant facilities and the computer assigning of all central office switching equipment, mainly, line and terminal equipment. In Phase IV, the system is now in a position to make some of the many accounting and marketing studies that are required for the administration of the business from the flow of the customer's service request. The last Chart No. 12 shows Phases V and VI. In Phase V force administration data will be provided to the Plant Department giving that department the amount of work load building up for the days ahead. This work load can be arranged in any manner that the Plant Department requires. This phase also includes the file of left-in stations on subscribers premises. In general Phase VI provides the many summaries required by the Directory Department for the Alphabetical and Classified Directories. It is also antICIpated that this phase may become the input to PH 0T AC (Photographic, Typesetting and Composing). The complete implementation of these six phases for the Northern Division composed of 600,000 accounts will take approximately two and one-half years. Upon completion of this system, the many operating departments of our company will have access to all of the records contained in the machine and will have a tool that will enable them to provide the telephone service requested by the customer where he wants it, when he wants it, and the way he wants it. Programming by questionnaire by ALLEN S. GINSBERG The RAND Corporation Santa Monica, California and HARRY M. MARKOWITZ California Analysis Center, Incorporated Santa Monica, California and PAULA M. OLDFATHER The RAND Corporation Santa Monica, California the user with a list of the data he must supply to use the program. Of these, only the Editor is general-purpose; the other three are specific to a given area of application. An application area consists of a family of programs centered around a single basic model that has many variations. All relevant details of these variations are presented to the user in the form of a multiple-choice Questionnaire. By choosing from the options, written in English, a nonprogramming analyst can specify all the information necessary to construct his program. He then submits his choices to the Editor, along with the Statement List and the Decision Tables. The Editor constructs the program, and supplies instructions for its execution and specifications for the data required. The Job Shop Simulation Program Generator (JSSPG) was developed to demonstrate Programming by Questionnaire. The Questionnaire for the JSSPG consists of a booklet explaining] 47 options in some detail, and an answer sheet (see Figure I). These INTRODUCTION The programming burden has often impeded computer application, but programming time and cost have been considerably reduced by the development of advanced programming languages such as FORTRAN, COBOL, and SIMSCRIPT. The objective of the technique discussed here is to further reduce the time and effort required to produce large computer programs within specified areas. Programming by Questionnaire, or the Program Generator technique, is a method by which numerous programs in a given area can be constructed as quickly and easily as can a few large programs. This is done by bringing together the four components that form a Program Generator: I A Questionnaire, written in English, defining the scope and logic of all of the programs to be generated. 2 A Statement List containing all the computer commands needed to construct any of the many programs. 3 A set of Decision Tables specifying the commands required from the Statement List as a function of the Questionnaire choices. 4 The Editor Program for processing the Questionnaire, Statement List, and Decision Tables, thus building the desired program and providing CONDITION STUB CONDITIONS (Question Numbers) (Answers to Questions) ACTION STUB ACTIONS (Identification Numbers) (Selected Statements) Figure I - The JSSPG questionnaire answer sheet 441 442 Spring Joint Computer Conf., 1967 options concern arrivals, routing and process times of jobs, decision rules for job dispatch and resource selection, shift changes, absenteeism, etc. The user specifies which options apply to the model he wants to generate. His choices, when given to the Editor aiong with the Statement List and Decision Tables, are translated into a SIMSCRIPT computer program. Many different simulations can be generated in this manner. While there are not a full 2147 different models, since not every possible combination of answers is permissible, at least 230 models are possible - more than one billion. The work required to develop the JSSPG, however, was comparable to the effort required to build a few large models. General concepts The questionnaire The Questionnaire is the only part of a Program Generator the user sees. He does not need to know anything about the other components, but only to understand what he wishes to model, answer the Qvestionnaire, and supply input data. One important characteristic of the Generator concept is that the user must specify only the basic structure of his model and a few numerical data on the Questionnaire; he supplies the rest of the data when the Generated Program is executed. The Editor specifies the type and form of these data since they will vary from program to program, depending upon the options chosen on the Questionnaire. The only numbers required on the Questionnaire are those needed for storage allocation. The statement list The Statement List consists of all the commands, partial commands, groups of commands, and special instructions required to build any program that may be described on the Questionnaire. Since the Editor produces SIMSCRIPT programs, the Statement List also includes all the information peculiar to SIMSCRIPT, such as definitions of variables and initialization data, and special information required in the Generated Program. The commands in the Statement List could have been written in any computer language, from machine language to the higher languages such as COBOL and SIMSCRIPT. Since the effort involved in building a Program Generator depends largely on the length and complexity of the Statement List, a Generator is easier to build using a higher language because of its simplicity, flexibility, and ability to accomplish a task with fewer commands. If any language other than SIMSCRIPT were used, the Editor would require modifications whose extent would depend upon the complexity of the language and its similarity to SIMSCRIPT. The commands look exactly as they would in any other program, except for their Identification Numbers. If a command has no Identification Number, it is considered part of the preceding command that does have a Number, Thus; whole groups of commands can be called from the Statement List by simply selecting one Identification Number. A Statement List command may also differ from a normal command in that it may be only part of a complete command. For example, in constructing the Statement List for the JSSPG, it was found that a given phrase (such as FIND FIRST) could be controlled by a variety of control phrases (such as FOR EACH JOB), depending upon which options the user chose on the Questionnaire. Rather than repeat the phrase common to all options, it is convenient to give it an Identification Number and number each of its modifiers. The Editor then combines all parts into a single command. I n addition to commands, the Statement List contains other information. For the SIMSCRIPT language, this includes the definition cards that specify the program variables and the initialization cards that specify the array sizes in memory. Also, the user is told what data he must supply in order to use the Generated Program, and the computer is supplied with control cards for execution. All four of these components (the definition and initialization cards, the input data requirements and instructions for its format, and the control cards) are cards in the Statement List, just like the commands, and are selected, based on the user's answers to the Questionnaire, in the same manner as the commands. Decision tables The Editor employs the Decision Tables to decide. based on the responses to the Questionnaire, which cards in the Statement List to include in the Generated Program. I n building the Statement List, the programmer must have in mind the various combinations of commands needed to satisfy all the options that the user may select on the Questionnaire. The Decision Tables are merely a formal statement of the relationship between the Questionnaire choices and the programming statements. They give the Editor a set of rules, in a standardized manner, so that it can choose the right statements and handle them properly. Decision Tables are divided into four quadrants, usually named as in Figure 2. The entries in the Condition Stub are keyed to questions on the Questionnaire; those on the Action Stub correspond to Identification Numbers in the Statement List. Thus, the Decision Tables link the Questionnaire and the Statement List. Programming By Questionnaire DECISION 443 TABLE I j ~~ , I Number J J Ii S_t I.D. ACTIONS I 1\ T 1) 14 N D 10 . • ~ ~ 13 III Il:~ 8 I~ I~ 1'1 ~ 1.11 III - .x Iz , J )( 1 , 2 e \ I ) : "" '7/, Figure 2 - Decision table terminology The Conditions indicate the responses to the Questionnaire that are required for action to be taken. The Actions indicate which statements (whose Identification Numbers appear in the Action Stub) should be included in the Generated Program, given that certain questions or combinations of questions have been answered in a certain way. Figure 3 shows a sample Decision Table from the JSSPG. Each column in the Conditions field represents a single combination of feasible responses to the questions listed on the Condition Stub. For example, there are four allowable combinations of responses to the five questions shown in Figure 3, as the nature of the questions precludes any other combinations. The first column of two N's would apply if neither D 9 nor D lOon the Questionnaire was chosen, i.e., the user had, in effect, answered them both ((No." The second column indicates a "Yes" response to B 3 and apparent indifference to the other four questions. I n actuality, the second column would apply only if either D 9 or D 10 had been answered "Yes." The column order is significant in that the first column found to match the answers on the Question- naire, when scanning from left to right, will be the column that applies. Thus, the second column appears to imply indifference to D 9 and D 10, but it would only be chosen if both B 3 and either D 9 or D 10 were answered "Yes." Likewise the third column could be chosen only if either D 9 or D 10 was "Yes," B 3 was "No," and B 12 was "Yes." A similar statement could be made for the fourth column. When a column matches the answers on the Questionnaire, the actions to be taken are found in the same column in the Action portion of the Table, indicated there by X's. For example, if neither 0 9 nor 0 10 was selected, the Editor would include the statements with Identification Numbers 125 and 781 in the Generated Program. The minus in front of statement 781 tells the Editor that card 78 I is not a regular command, but rather is special information (in this case, a special definition card). The fifth column in the Conditions can be reached only if the Questionnaire answers are inconsistent; i.e., no feasible combination of answers to the questions has been realized, implying that the user has .,J::... .,J::... .,J::... en "0 '"1 S· ~ JSSPG EVERY WEEI( THE SAM! •••••• GENERAL ................ .. ESTIMU'ED TO ACroAL PROCESS TIME o SHEET S· .-+ (IIOTE: CC - Card Col.-.> (j ANSWER SHIFTS •••••••••••••••• '- QUESTIONNAIRE o 3 "0 c: .-+ ONE RESOUIlCE ........... .. EXOGENOUS ................ . twO RESOUIlCES .......... .. INPUT ....... . SECONDARY RESOUIlCE DUE-DATE INCREMENT 1lANIXII ..... .. INPUT ...... .. PRIMARY RESOUIlCE RANIlOt . . . . . .. DOLLAIl VALUE SAM! FORK ............... .. JOB STATISTICS .......... .. DIFFERENt FORMS .......... . RESOURCE UTILIZATION •••••• SIlI1KARY CONTENT EXOGENOUS .............. .. (D '"1 (j o QUEUE STATISTICS ••••••••••• SAM! FOIl·!f ............... .. ::s JOB STATISTICS ........... . F. ~ PROBABILITY DISTRIBUTIONS DISTRIBUTION \0 a-. TYPE -.....J LOtIGEST orKER EXOG I TYPE ................... .. INPUTS GENERAL PRIORITY RULI!S l~ROCESS TIME ..... . EARLIEST ARRIVAL ........ .. EARLIEST DUE-DATE ••••••••• RANIlOt TYPES ........... .. i.AlGEST VALUE ............ . QUANTITY, NO TYPES ....... RANIlOt . . . . . . . . . . . . . . . . . . . . ARRIVAL ONLY, NO TYPES ... USER'S FUNCTION ••••••••••• SAM! FORM, ~ANDCtI TYPES .. IINTER-ARRIVALI SAM! FORM ................ . SLACII: II:QUAL WEIGHTS ... .. RULES UNEQUAL WEIGHTS .. . DIFfERENT 11OItMS, ••••••••• .'UMBER C1l JOBS .... FIXED, NOT BY TYPE ••••••• IIOURS C1l WORK ••••• ENDOG ROUTING rIUD, BY 'l"'YPE ••••••••••• RANIlOt, NO'l.' BY TYPE .... .. RAND ON , BY TYPI ........ .. PROCESS TIMEILOT QUANTITIES SAM! FORM. 1;1 " " •• " ••••• " • " CC urrER-ARRIVAL TIMES IIr WEIGHTED SUM ••••••••• DIFFERENT I'ORMS ......... . FIRST AVAILABLE •••••• PRIMARY FOR SECONDARY FlCroR/ RESOURCE SET-UP TIME/LOT SAM! FORM ............... . PROCESS TlME/UNIT SAM! FORM ............... . GREATEST PRIORITY •••• DIFFERENT POIItMS •••••••••• WEIGHTED SUM ••••••••• § PRlKARY FIRST ...... .. ~ FACTOR/ RESOUIlCE If'n f'rUr SET -UP TIMIS / LOT PROCESS TIMIS / UNXT ~rYPE ,~u~ ~ i ~ § ~ . 15 ... ~ r !-~ ;: :~ ~ ~ !«lST AVAILABLE ••••••• SAME PORM •• """".,,"""""""" DIFFERENT FORMS ......... . QUANTITI~S DISTRIBUTION • DIFFERENT FORMS •••••••••• PROCESS TIMES / LOT SAM! FORM .............. .. EST.-ACT. I DUE-DATE INCREMENT I PROCESS TIMES DOLLAR VALUE NAM! OF IUTILITY FUNCTIONSI • CHA~ERISTIC I!«lST JOBS ........... . G. SECONDARY FIRST .... .. DISPOSALSHIFT I PRIIlARY FIRST ........ SECONDARY FIRST •••••• I INITIAL INPUT VALUES MAXIMUM DECKNAM! JOB NO. MAN 110. 11 213}41 16flTImT~ts116 s Figure 3 - Sample JSSPG decision table SHUTS/DAY DAY TYPES NUMBER WlEK TYPES OF SECOND Programming By Questionnaire made an error in completing the Questionnaire. The Editor, upon finding no Actions to be taken, rechecks the Conditions. If the Table indicates indifference to all questions, the Editor writes an error message, telling the user his responses are inconsistent. It also gives him a list of the questions involved and his responses to them. It is, however, permissible for there to be no Actions, or for there to be a final blank column reached in the Conditions by a process of elimination, thus implying apparent indifference to all questions, but not both. The editor In the broadest sense, the Editor is the computer program that translates the user's responses to the Questionnaire into a computer program. The Editor is written in SIMSCRIPT and is capable of producing only SIMSCRIPT programs of either a simulation or nonsimulation nature. Operation The Editor treats as input the other three parts of the Program Generator: the Questiormaire, the Statement List, and the Decision Tables. While their contents will differ with Program Generators written for different application areas, their logic and con.., struction will be the same. Thus, the current version of the Editor can be used for other Program Generators in any area of application, if the language used for the Statement List is SIMSCRIPT, and if the principal components are constructed as outlined here. The Editor has four functions: 1. To translate the answers to the Questionnaire into a computer program. 2. To check the answers to the Questionnaire for completeness and consistency. 3. To supply all control cards and dictionary information necessary to execute the Generated Program. 4. To provide a list of the names, meanings, and dimensions of the variables whose values the user must supply to the Generated Program during execution. Besides a printed listing of the program, the Editor can supply a corresponding deck of cards that contains all the required control cards if the Program Generator is in the operational phase and not the development stage. The user need only place the required input data at the back of this deck where indicated and submit it to the computer for compilation and. execution. 445 Other techniques In addition to the obvious savings of time and effort, at least two other important benefits accrue from the automatic preparation of computer programs. Since available features are frequently presented in tabular form, they can serve as a checklist to' remind the analyst of facets of his problem that he may have overlooked. Also, with a new or modified program readily obtainable at small cost, the analyst will frequently investigate less obvious alternative solutions that might not be considered if an existing program had to be modified. The desirability of these benefits has prompted many attempts at automatic program preparation. A number of different techniques have been developed. In one, called the "Modular" approach, the user builds a program by selecting and linking a number of pre-programmed subroutines. This approach is often unworkable; it is difficult to make the subroutines logically compatible and the method necessitates a large library of subroutines. The approach may prove feasible if the set of options presented to a user is relatively small, such as in a sort program generator. * Because the Pro~ram Generator uses decision tables and compiles programs from individual commands rather than from larger modules, it alleviates most of these difficulties, allowing the user a much wider range of options. The "Generalized Model" approach uses one large program containing all possible options; those to be executed in a given run are specified by parameter assignment in the input data. t The principal difficulty with this method is the inefficient use of computer time and memory space. The program must continually interrogate the parameters the user specified, using the results to decide which options are to be performed. If the options are very numerous, this process takes up a significant portion of the total running time. The Program Generator escapes this difficulty; it checks the options only once, at the time the program is generated. The Generalized Model uses computer memory space inefficiently because the memory must contain all the options and the logic for choosing among them during the program's execution. Memory size therefore limits the number of options available. Since a Program Generator constructs only the code necessary to execute the chosen options, the generality *See, for example, IBM 7090 Generalized Sorting System, IBM Systems Library, File No. 7090-33. fOne iHustration is: The Job Shop Simulator, Mathematics and Applications Department, Data Systems Division, IBM. 446 Spring Joint Computer Conf., 1967 of the approach is usually not limited by available memory space. Program generators are not new. An example of a previous generator is the GQS. t As a consequence of how the user specifies his desired mode! and of the method used to generate the program, however, the range of options that can be offered in anyone such compiler is very limit~d, as compared to the Questionnaire method. tGeorge W. Armerding, General Single-Server Queue-Simulation Compiler, Interim Technical Report No. 15, Fundamental Investigations in Methods of Operations Research, M.I.T., July 1960. In summary, the following features of Programming by Questionnaire distinguish it from other methods of program generation: 1 An English language questionnaire, requiring no speciai knowiedge of either detailed programming languages or format specifications. 2 Generation of computer programs that are as efficient as possible (given the limitations of both the language used for the Statement List and the person building the generator) in terms of computer memory space and computer time. 3 The ability to provide an almost unlimited range of options in anyone generator. Compiler generation using formal specification of procedure-oriented ~nif tn~('hlnp l~nall~ap" -~~-- ~~~--~~~~~- ~-~~b"""'b""iJ by PHILIP GILBERT Measurement Analysis Corporation Los Angeles, California and WILLIAM G. McLELLAN Rome Air Development Center Griffiss Air Force Base, New York tion; the meaning or intent of such operators is arbitrary insofar as the compilation transformation is concerned. The POL~BASE transformation may then be regarded as a machine-independent conversion, from a grammatically rich format to a simple linear format. INTRODUCTION This paper reports on a recently developed compiler generation system which is rigorously based, and which allows formal specification both of source (procedure-oriented) languages (POLs) and of machine languages (MLs). Concepts underlying the system are discussed, an example correlating source language specification with system operation is given, and the ,status and potentialities of the system are discussed. The crucial problem of compiler generation is the characterization of procedure-oriented languages; the process is of limited use unless such characterization allows machine-independent processing of programs in these languages (and hence allows invariance of the language itself from machine to machine). Our solution interposes between POL and ML a "buffer" or "intermediate" language, called BASE, thus reducing the required POL~ML transformation to two logically. independent subtransformations: (1) POL~BASE (called compilation) (2) BASE~ML (called translation) This arrangement isolates questions of POL characterization within the first transformation, and questions of ML characterization within the second transformation. BASE itself is an expandable set of nonmachine-specific operators, * declarators, etc., expressed in a uniform "functional" or "macro" nota- Theoretical basis Within our system, a POL is characterized principally by a grammar (i.e., set of syntactic productions), and the consequent processing of programs in the POL is syntax-driven. To assure adequacy with respect to completeness, ambiguity, and finiteness of analysis, our snytactic method is rigorously based. A grammatical model (the analytic grammar) was developed, which provides a rigorous description of syntactic analysis via formalization of the notion of a scan. Within this model, the selection process of a scanning procedure can be precisely stated, and thus made amenable to theoretical investigation. Some characteristics of this model are: • all analytic languages are recursive • all recursive sets are analytic languages • all phrase structure grammars are analytic grammars • there is a simple sufficient condition under which an analytic grammar provides unique analyses for all strings. *Each BASE operation, declarator, etc., consists of a three-letter operation code followed by n ;3 1 operand type specifier/operand pairs SiX;;e.g.,FFF(Se/Xe, ... ,Sn/Xn). The grammar in a POL specification permits certain abbreviations and orderings of productions (for convenience, brevity, and efficiency), but is never447 448 Spring Joint Computer Conf., 1967 theless equivalent to a grammar using the simple scan S4 of reference 8. (An equivalent grammar using S4 is obtainable via a simple construction» Contextsensitive productions may be used. Our method guarantees uniqueness of analysis - it is impossible to embed syntactic anbiguity in a language specification. A simple test ensures finite analyses of all strings. Such a grammar is at least as inclusive as the context-sensitive phrase structure grammar, and there does not appear to be any grammatical structure which cannot be accommodated (grammars of ALGOL, JOVIAL, and FORTRAN were obtained without difficulty). In fact, such grammars are sufficiently powerful to accommodate the notions of "definition" and "counting" (cf. 7 and the examples of8 ), but to actually do so is neither efficient nor expedient. Therefore, a POL characterization includes description of pertinent "internal operations" (see the example in this paper). e IV. PROCESSING t t ~ SPEC M t MACHINE 1 SPECIFICATION t 1 (MU ~SLA~; 1-.: GENERATION I PROGRAM t I 1 1 System overview An overview of the generation system is shown in Figure 1. Using this system, the transformation from a source language L to a machine language M is achieved as follows: A specification of L - an abstract description of the syntactic structure, "internal processing rules," and "output code" for L - is written. This specification is processed by the compiler generation system to produce a tape of L - a set of data tables corresponding to the specification. The compiler for L is then formed by conjunction of the tape of L with a compiler model program, a table-directed processor which acts simply as a machine for interpreting the tape of L. Similarly, a specification of M is written designating macro-expansions appropriate to M. This specification is processed by a translator generation system to produce a tape of M - data tables containing the specified macro-expansions. The transiator for M is then formed bv conjunction of this tape with a translator model program, which expands BASE operations to sequences of instructions in M as directed by the tape of M. Compilation system data base Processing of input strings (POL programs) by a generated compiler is intended to occur in two parts: (a) preliminary conversion of "raw" input symbols to yield a "syntactic" or "construct" string, which represents the raw input for all further processing, and then (b) step-by-step syntactic analysis, and (at each analysis step) performance of prescribed sets of internal operations, prescribed output of "code blocks," output of diagnostic messages, and (if desired) performance of additionai auxiliary processes. The internal operations in a POL specification assume a set of data entities (the "date base"), which are later manipulated as prescribed by a generated compiler. Each entry of the construct string (which represents the raw input during processing) contains a construct (or syntactic type or token) and an associated datum, which is originally derived from the raw input, but may be internally altered. The use of appropriate string handling routines allows effectively a construct string of unbounded length. Other data entities are: (a) a set of function registers Fj, for storage and manipulation of "temporary" numeric data (b) a set of symbol registers Sj, for manipulation of symbol strings (c) a property table of integer properties Pj(J), for storage and manipulation of numeric data (e.g., number of dimensions) associated with "variables" in the input string. "Names" (i.e., contents of symbol registers) can be "defined" to the table to reserve table entries for associated data, and the table can be "searched." Defined names are placed in a property table index. The Jth table entry consists of four properties Po(J), Pt(J), P2(J), P3(J)· By convention, Po(J) is the syntactic class of the corresponding defined name. See Figure 2 for further details. POL specification and compilation system operation The relation between a PO L specification and the consequent compilation system processing is best shown via an example. Figure 3 shows a specification* of the language LEMA2 (first exhibited in Lema 2,2 which consists of sentences having the form , AmBnAmBnCcc' where Xk signifies a sequence of k X's. Some sen- Compiler Generation 449 -x- TITLE (I»n-1A2) ~- SYMOOLS REWRITING OF k - - - - - - - - , CONSTRUCT STRING INTE~NAl AUXILIARY PROCESSOR: FUNCTIONS --------+1 1 ~I MANIPULATION OF DATA ENTITIES - - (A) (1) (B) (2) (C) (3) (0) (0) (0) (l)C (1) I (1) «EOC» ~- END SYMOOLS -x- SYNTAX ANALYSIS STEP PERFORMED P~OCESSOR: (1)A (l)B AUXILIARY PROCS AS DESIRED 001 SYMBOL REGiSiERS CODE PROCESSOR: ~~~=.:.-...--' OUTPUT CODE (B) (A) (A) (B) (A) (B) (B) (B) (K) (B)(Q)(B) (END)(A)(Q)(C)(C)(C)(END) (X) (B) (X) (K) 004 005 Figure 2 - Compiler model organization and system data entities 006 007 008 *The specification is shown in "reference" format, which differs trivially from the format used in machine processing of specifications. (NULL) (NULL) (A)(B)(K) 002 003 tences of LEMMA2 are ,AABBBAABBBCC' 'A A A A B B AAAAB B C C C' 'AAA B B B BAAAB B B B CCC' The specification contains five sections: (1) Symbols-specifies the preliminary conversion of input symbols and "reserved words" to construct string entires (2) Syntax - a set of syntactic productions for use in syntactic analysis (3) Internal Functions - the internal processing to be carried out at each analysis step (4) Code - the sequences of codes to be output at each analysis step (5) Diagnostic Messages-a set of messages for output The sections containing internal functions, codes and diagnostic messages are unnecessary in defining the language structure, but have been added to illustrate these mechanisms. The codes BEG, PWR, AAA and BBB appearing in the code section were invented expressly for this example; arbitrary BASE operation codes may be designated at will, since these codes are merely transmitted during compilation. The following discussion can be correlated with Figure 4, which shows the compilation analysis trace for a LEMMA2 program, together with resulting values of function registers and code output at each analysis step. The conversion specified in the Symbols section, of raw input symbols to construct string format, is performed specifically to eliminate dependency of processing on particular machine character sets and hollerith codes. A construct string entry containing a construct and an associated datum replaces each input symbol (or symbol sequence constituting a reserved word); Figure 5 illustrates this process. An arbitrary numeric or hollerith datum may be specified. Data (END) ==(B) =-=(B) (K) (A) "-(Q) =-(B) (X) (K) •• (Q) -==(Z) -==(K) (B) • .. (X) (B) --x- END SYNTAX * INTERNAL 003 '005 006 003 005 006 FUNCTIONS Rl'V F:3 -2 001 INC ASQ SET SET F:3 1 -3 F:3 F5 1 F6 2 PUT Sl VO( -1) SUF S1 VO(O) DEF Sl «A» ASO 0 FD SET PI(FD) 1 INC F5 1 MPY F6 2 PRN 1 Sl -x- END INTERNAL FUNCTIONS -x- CODE BEG (V/R(O) ) NR( C/F6) NR( C/F6 ) AAA ( C/R( -5) ) BBB(C/F5) END OJDE -x- DIAG NOSTI CS 0001 ~-X-)HHHH~ END OF SAMPLE ANALYSIS * END DIAGNOSTICS * END DATA ~- ~~H~X~~-X~,HHH~X Figure 3 - Specification of the LEMMA21anguage from the construct string may be used to construct symbol strings (names), but this usage is not dependent on the specific hollerith codes which are used. The syntactic productions in a specification's Syntax section are applied (as determined by the compiler model's scan) to "rewrite" the construct string, in a step-by-step fashion (see Figure 6). The succession of these rewritings constitutes the syntactic analysis of the construct string. In selective productions from the set of Figure 6, the compiler model uses the "leftmost" scan SI of [8], i.e., at each step the production chosen is the one whose "left side" occurs first (leftmost) in the construct string. Thus at the first analysis step, the substring chosen is BAA; 450 Spring Joint Computer Conf., 1967 SCAN POSITION I I (-2) (-1) ~PRODUCTION 002 I NUMBER B B I 12 2 (:> (0) ./CONSTRUCT KI Afv,DAruM I ------------,-lls-s-s-lA-lflflfccc-'-----------------------------------------------------------------------------------002 A S 1 II 2 II Z A It Z II II liZ 0 0 ZOO 0 0 0 000000 0 0 0 0 0 0 0 004 A A II II X It A I 4 0 0 0 0 0 0 0 0 0 ---------------l--------r-------z-------z--------1f------1-------1-------2-----0---0---0---0---0----0---0---0---0---0----- 008 A II II X II A II 8 0 0 0 0 0 0 0 0 0 0 ~C7 A A ! e K , I , 0 0 0 0 0 0 0 0 0 004 END I I I X II: I l 000 ADO 0 0 Q 0 0 0 0 0 0 0 0 0 0 0 Ii 001 A A II X II II A I 0 0 0 0 0 0 A A CO;) C NULL E~O ---------------I--------2-------z-------z--------1-------1-------2-------1-----b---o---g---o---1r--~-o---o---1f--cr---- 2 Z Z 0 ---------------o--------l------l-------;r--------z-------1r-------l-------~-----~--lr--1r--1r__,r--~-lr--lr--lr--lr---- 0 0 0 0 0 0 0 0 ---------------l-------lr------1f------;r--------z-------l-------~-------1r----~--lr--,r--1r--~_,r-_,r--lr--1r--~--- OOT END 001 NULL o It 1 II: Z IS 2 8 • 1 2 .----~=-{---~---------------------------------------------------- -----------------------003 PMIt C END o A • Z II 2 Z 0 I 1 2 IS Z G G 0000000000 A I II II A 0 0 0 2 -----------------1-------1-----o-------z----------Z-------y------y------r----1)-g---r-T C 1 0 0 2 0 0 0 b 0 0 0 0 b -rr-T-,s----- -------0 1 0 0 0 300000000 2 b b It -----0-05----1iii-C--E1fD------A-------l------Q-------l-------c--------l:-------l-o--~---T-,-~__r_rr-1r-lI----- 1 0 2 2 2 2 3 300000 -----;w-IfT--1I---------------------------------------------------------------------- 12 AlA C 181 C ••••••• END OF SAMPLE ANALYSIS ••••••••• 0 0 000 ---------• ••• 2 3 ---"01f6----Ml-1.1.----lrull:-liuU.----1I11.1.-----------1RJl1.---lIJl"L----1IJ1.1.--------y--u---lr--T--lr--T---r--cr--V---lI---1 111 011 1 000 0 Q 0 0 Ii 0 0 ----liJ"lT--",-n: t ------------------------------------------------------- ---- ----- - -- • Each step of the analysis trace shows the string in the vicinity of the scan position, after application of the production, performance of internal functions, and code output. • The code output for production p precedes the trace line for production p. • Values of the first 20 function registers are shown at each analysis step: on line with construct FO through F9, on line with datum FlO through F19. Figure 4-Compilation ofa LEMMA2 program at the second, ABK; and so on. To allow explicit reference to the data which accompany the constructs of the substring chosen, a scan position is defined (at each step) to occur at the last (rightmost) construct of the selected substring (see Figure 6). At each analysis step, internal operations associated with the selected production are performed: function registers or properties within the property table may be set, used, or arithmetically manipulated; character strings may be placed in, prefixed to, or suffixed to symbol registers, and so on. The Internal Functions section (see Figure 7) consists of sequences of internal functions operations. The first operation of each sequence has the label of the production for which action is taken. Thus the sequence RTV F3 -2, etc., is performed each time production 001 is selected. Care has been taken in formulating the internal operations to achieve economy of means - simple operations, a minimum of system daia entities, and a minimum of compiler model machinery. Such a formulation allows a simple compiler model program, while language complexities must be expressed within the language specltlcation. Some anomaiies of notation still remain from our earlier efforts, but it is planned to revise and clarify notation. Operation sequences pertaining to different productions are independent of each other, since there is no "GOTO" operation (a "skip forward" is sometimes permitted). Thus a finite sequence of operations is performed at any analysis step. Code may be output at any analysis step. Operation codes and operand type specifiers given in the Code section (see Figure 8) are merely transferred to the output, while operands are inserted as specified. The Diagnostic Message section contains a set of messages, which are output by PRN internal operations. The operation PRN 1 S 1, which is executed for production 006, prints message 001 and the contents of S 10 Translation and machine specification A translator for a given target machine (ML) pro- Compiier Generation 451 SYMBOLS SECT ION OF SPECIFICATION ••• ••• • TITLE' LEMMA21 • SYMBOLS ·RAW" INPUT SYMBOLS ARE CONVERTED TO CONSTRUCT STR ING ENTRIES cONSTRual END DATUM (1)A IU8 UI IB) (1)C 11)1 11) IC) I ENOl (NULL) (NULL) (IEOC)I I I A 0 1 1 CONSTRUCT STRING Figure S. II) III U) 10) (0) (0) • END SYMBOLS • • • • • • I Preliminary Symbol Conversion • The number in parentheses on the left indicates the number of characters comprising the reserved word. The symbols of the reserved word follow. • A construct (e. g., (END)) is specified for each symbol or reserved word. Use of the construct (NULL) specifies that no construct string entry is to be made; thus "blanks" are ignored above. • A datum is specified for each symbol or reserved word. Either a numeric datum (e. g., (3)) or a hollerith datum (e. g., ((h), where h is the desired hollerith datum)" may be specified. • The special notation ((EGC)) denotes the Ilend of card symbol", which in many languages is regarded as a punctuation mark. A representation of ( (EGC) ) must be given in every Symbols section. Figure 5 - Preliminary symbol conversion SYNTAX SECTION - A SET OF SYNTA CT I C PR 00 OCT Iof.fS• SYNTAX IAIlIUIIO 1811'HA) (J01'! 001 ··ISIIXIIK, IXIIB) IXICk) • END SYNTAX Figure 6 - Syntactic analysis •• 101 IBIIBIIKI IIOIOIIB) IE~D)IA1IQIIC)IC)lC)IEND) OOR "'(8) .·IB)fKICAI 18.IAII81 &a10) •• III .·lkIIB) ··(XI(S) 452 Spring Joint Computer Conf., 1967 duces, from an input program of BASE operations, an equivalent program in the target assembly language, in a format acceptable to the target assembler. The production of assembly language guarantees compatibili.. 'th. . th h'lne 's TTlnnitor ty o~f t h. ~e object program \VI~.& ".t. .. e maC .... system, and aHows the assumption in translation of system subroutines and macros. A BASE program contains generalized item declarators, array declarators, etc., and generalized computation operators (e.g., ADD, SUB). Since data definition is explicit, the BASE computation operators do not take account of the data types involved in the operations. Thus for each computation operation, there is an equivalent set of standard suboperations; e.g., corresponding to ADD are the standard suboperations "add a floating item to a fixed item" "add a fixed item to a floating item" and so on. Determination of the specific suboperation required for a given BASE operation, taking into account the data types involved, is performed within the translator. Translation thus occurs in two parts: (a) analysis of BASE operations by an analysis section, to derive equivalent sequences of standard suboperations, followed by (b) expansion of the standard suboperations by a macro-processor section, to produce assembly code. A machine specification defines expansion of the standard suboperations. In other words, it defines for each standard suboperation an equivalent sequence of assembly language instructions. Embedded in these expansions are format specifiers, which cause the appropriate format to be generated. A machine specification is processed by the translator generation system to produce corresponding data tables, which are combined with the translator model program to form the desired translator. These data tables direct the expansions performed by the translator's macro-processor. Parameters required by the expansions are furnished by the translator's analysis section via a communication table, from which they are retrieved as necessary by the macro-processor section. Within a machine specification, parameters are specified via position in this table. Our present machine specification notation is processor-oriented, and not easily readable; however, it is planned to formalize this notation. Some typicai macro definitions are shown in Figure 9, in a contemplated notation, as an illustration of the features provided in a machine specification. A ..... ..., ..... .t.fo..tL The translator modei program, except possibly for one output procedure, is machine-independent. The analysis of BASE operations is dependent only on the operator, accumulator data type, and operand data type involved, while macro expansion is table-driven. All dependency on the target machine is isolated within the data tables used to direct expansions. Assembly code is output in the form of 80 column card images, which are almost universally acceptable by target assemblers. Unusual cases might require simple modification of the output procedure. CONCLUSIONS U sing the syntactic modelS we have developed a system to formally characterize languages which are rich in grammatical structure, and to subsequently process strings in such languages. Such processing can produce linear code (BASE language). The BASE language contains computation and data declaration operations sufficient to accommodate the functions of ALGOL, FORTRAN and JOVIAL. BASE is expandable, so that more convenient or efficient operations may be introduced when these are desirable. We have shown the feasibility of formally characterizing machine (assembly) language, and of machine-independent translation (BASE~ ML). In sum, we have presented a rigorously based, machine-independent compiler generation system. A consequence of these results is that language invariance can be maintained from machine to machine. It is possible to have a standard version of each procedure-oriented language, rather than machine-dependent variants. The system is presently running on the CDC 1604 computer. Specifications of ALGOL, FORTRAN and JOVIAL have been written, as has machine specification for the CDC 1604. The ALGO and FORTRAN specifications have undergone tentative checkout and modification, as has the CDC 1604 specification. Preliminary comparisons of operating characteristics have been made. For a small number of short programs, our system produces object programs about the same size as do the manufacturer-supplied compilers, and requires between twice and three times the computer time. Since our system is a prototype, these results indicate that it may be possible to generate compilerltranslator systems which have competitive efficiencies. We contemplate major operational changes, without the sacrifice of theoretical rigor, which should increase system speed by a factor of between 3 and 5. The compiler (POL~BASE) portion of this system has other uses. The ability to formally characterize grammatically rich languages and to subsequently process strings in such languages is of importance wherever string-structure-dependent processing is required. Compiler Generation 453 • • • • • • • FUN tTl ON REGISTERS n 0 1 2 3 4 :1 pa • •• PI °1 S;} --~~~~~~~~=-~~~~ s2~1~__~~~~~I_·_··_I~~-L~ I·· ·1 SYMBOL REG I STER S • SET F5 1 places the value 1 in the function register F5 • PUT SI VO(-I) places the datum (regarded as hollerith) from construct string position (-1) - relative to the scan position - into the symbol register S1. All previous contents of 51 are deleted. • SUF SI VO(O) suffixes to the string in 51 the datum from construct string position O. • DEF 51 «A» "defines" the string in SI to the property table: a property table entry (say the nth) is reserved, the string in SI is entered into the property table index, together with the entry number n. The number representing the construct (A) is placed in PO(n), and n is placed in FO. • ASO 0 FO "associates" the value in FO with the construct in string position 0: the value FO is placed in the datum of position O. • SET PI (FO) 1 places the value 1 in Pl(FO), i. e., in Pl(n). Figure 7 - PeIformance of internal function 454 Spring Joint Computer Conf., 1967 CON STR UCT STR I NG B ••• 2 2 0 3 2 41-_ _-=-O_ _......~ 5 ~--_=___,..-c--~ 6~-_ _ _-~ PROPERTY TABLE • II II II I: II CODE OUTPUT FOR PROD 003 AT THI S TIME IS END CODE BEG (VI 1) PWR (C/2) Figure 8 - Output of a code sequence LOADING ACC AND MO WITH DOUBLE PRECISION OR COMPLEX NUMBER (FOR CDC 1604): TAB TO START OUTPUT O5O:::;fJ~~ittt ;;~P~;;..~3HLDo!P2!P1.~; ;1~~~) OUTPUT LITERAL "LDA" END OF RECORD: OUTPUT CARD & CLEAR IMAGE LOAD ACCUMULATOR (FOR IBM 7094 FAP): TEST PARAMETER 2 CONTINUE HERE MACRO [ /3HCLA/Pl,P3," P:~'f~::;2$C SUMMARY OF NOTATION ( BEGIN MACRO , OPTIONAL PUNCTUATION .' TAB TO START OF NEXT FIELD $ "END OF RECORD" MARK Pn PARAMETER n C(n,Kl CONDolTiONAL EXPANSION: SKiP K ., $" iF PARAMETER n NOT EMPTY. 1 END OF MACRO nH LITERAL STRING OF n CHARACTERS M(nl CALL ON MACRO n CONTINUE HERE IF PAR 2 NOT EMPTY END MACRO Figure 9 - Some typical macro definitions ACKNOWLEDGMENT The authors are indebted to Donald M. Gunn and Craig L. Schager, both for their significant contributions to this work and for their valuable suggestions regarding this paper. 4 5. 6. REFERENCES 2. 3. N CHOMSKY Syntactic Structures Mouton & Company The Hague 1957 N CHOMSKY On certain formal properties of grammars Inform Contr 2 137-167 1959 S GINSBURG and H G RICH Twofamities o/languages related to ALGOL JACM 9350-371 July 1962 7. 8. 9 PNAUR(Ed) Report on the algorithmic language ALGOL 60 Comm ACM 4 299-314 May 1960 E T IRONS A syntax-directed compiler for ALGOL 60 CommACM 5 51-55 Jan 1961 D G CANTOR On the ambiguity problem of Backus Systems JACM 9477-479 Oct 1962 A C DiFORINO Some remarks on the syntax of symbolic proRramminR languages Comm ACM 6456-460 Aug 1963 P GILBERT On the syntax of algorithmic languages JACM 13 90-107 Jan 1966 GILBERT, HOSLER and SCHAGER Automatic programming techniques Compiler Generation RADC-TDR-62-632 Final Report for contract AF30(602)2400 10 GILBERT, GUNN and SCHAGER Automatic programming techniques RADC-TR-66-54 Final Report for contract AF30(602)- 455 3330 11 GILBERT, GUNN, SCHAGER and TESTERMAN Automatic programming techniques RADC-TR-66-665 Supplemental Report for contract AF30 (602)-3330 An experimental general purpose compiler by RICHARD S. BANDAT and ROBERT L. WILKINS Western Union Telegraph Company Paramus, New Jersey However, it was noted that a very large matrix would be required for most useful languages because of their numerous syntactic types. In addition, it was also noted that there were two undesirable characteristics of this method; namely, large amounts of core were wasted because the matrix was sparse, and no efficient way could be devised to include transformational rules. The need for the latter. capability directed our efforts toward another table which was neither sparse nor lacking transformational characteristics, yet which was sufficiently analyzed so as to enable its usage to be understood. The result was a table based on a Turing Machine. 4 The first attempt towards a boot-strap compiler was made by filling in the Turing Table numerically by hand so that at least a rudimentary symbolic Metalanguage program could be read in as source statements. For testing purposes, the symbolic Metalanguage program described itself, or actually a Turing Table which would allow the syntax/solidus parser to read in its own meta-language. Naturally, the semantics routines were written so that their output would be the Turing Table for the language which was described by the meta-language. After "several" attempts a clean table was obtained which would read its description and generate an exact replica. This procedure was used to check out each version of the Meta-language, which then underwent continual revision in an attempt to increase its readability and raise its scope above the single input character level. The procedure then for using the program as a compiler consists of two steps; namely, to describe the programming language and to write for each operator in that language a routine to accomplish the task for the type of compiler being written, i.e. interpretive or batch. The overall size of this program, which is implemented in GE-235 Time Sharing FORTRAN, can be determined from the amount of code generated by its FORTRAN compiler. For the meta-compiler INTRODUCTION With the advent of numerous programming languages, both special and general purpose, much interest has been generated in developing newer and higher level programming languages. Two notable approaches 1 ,2 have been taken in the attempt to provide language processors for the development of new programming languages with a minimum investment in programmer time and effort. One method is to provide, in an existing programming language, facilities for list processing, stack maintenance, and character manipulation, which can then be used to write a compiler for the language under development. Another approach is the now classic "Meta-Compiler" method typified by the "Meta" series of programs by Val Schorre et al. In these programs, a description of the syntax of the source language is given, together with a paraform code which contains transformational rules. The output is the desired compiler. This paper describes a third approach which is sufficiently different so as not to be categorized as a subset of the above methods in design, but a union of their favorable characteristics. Its aim is to facilitate defining the syntax of new programming languages and to parse them so that there need be only one output routine for each operator in the new programming language. Discussion Our approach was as follows: First, implement a parsing program which would only require the hierarchal level of an item as input and yield an operator and its operands as output; second, design a generic method for determining the hierarchy and syntactic legality of each input character. The parsing program can be viewed as a modified stacker and is covered later in the paper. An initial solution for the remaining problem was a matrix similar to the type used in a table-driven compiler. 3 457 458 Spring Joint Computer Conf., 1967 version (i.e. semantics routines generating a Turning Table), 2.5K is used for instructions and about .5K minimum is required for all the tables. Coding the program in assembly language would surely reduce the figure by a significant amount. G I Detailed description The program consists of a small driver, Figure 1, three functional programs, and four utility routines, which include an internal symbol tabL~. The driver initializes the routines and passes information between the main routines and the symbol table. NO A• READ IN NEXT ~ INITIALIZE ROUTINES RETURN NEXT CHARACTER Figure 2 - Input fu net ion ERROR ROUTINES READ IN ALLOWABLE CHARACTERS AND THEIR CORRESPONDING CLASSES WHEN FOUND RETURN CORRESPONDING CHARACTER C Figure 1 - Driver Utility routines The Input Program, Figure 2, simply reads one character at a time from the input buffer, refilling the buffer as needed. The Classing Function, Figure 3, compares the input character with the table of legal input symbols and assigns to the character the class number which was assigned to it when the language was defined. Since our present computer is the GE-235 Time Sharing System, it has been convenient to have a pack WHEN FOUND RETURN CORRESPONDING CLASS RETURN) Figure 3 - Classing function routine, Figure 4, which packs up to three input characters per GE-235 computer word. Syntax The syntax routine, Figure 5, effects the syntax checking, controls parsing, and does whatever transformations may be required. The present implementation is a Turing Table 5 and ilS associated driver. 459 The table entries are quintuples of the following form (state, symbol, move, new symbol,. and new state). The state is determined by position rather than by name. A pointer to the next alternate state is provided to avoid table searches. Moves are presently restricted to "no move" and "move right," with "lookback" being delegated to the input routine. Table self-modification has been provided for, but use of this feature depends upon the meta-language. NO YES The meta-language FILL WORD WITH BLANKS, SET INCREHENT POINTER POINTER TO ONE Figure 4 - Pack routine NO YES ./ READ IN TURING TABLE SET POINTER TO FIRST STATE DIFFERENT .---_ _- m) the two mduced voltages, ----cit and d(cf> 'm) dt add at ~-~-------~ 36\ the input to the sense amplifier. However, the residual vertical component of the external field is practically uniform both loops and cancellation of the stray pick up is obtained. Thus, the inductance of these coils is minimized and they behave as strip transmission lines. A complete film assembly would be about 20 mils thick and such assemblies can be stacked at less than 100 mils centers resulting in a compact memory stack. 18~ oL----t-,-,t------+,---+-1--+-1o 4 5.4 7.2. 9.0 10 EASY AXIS FIELD Oe Figure 7 --< ~~rea of reliable f.:raetioning for a I~1C DTPL shift register DTPL Push Down List Memory 497 for reliable operation of the PUDL memory when using a single ±5% regulation of the currents in the selection circuitry. Figures 8 and 9 show the operation of a 26 bit shift register channel. Figure 8a depicts the strobed (top trace) and un strobed (bottom trace) signals in a condition of pushing down and pulling up "ones" and "zeros." The horizontal scale is 200 ns/cm. The vertical scale is 1.0 v/cm in the case of the strobed signal and 200 mv/em ih the ease of the unstrobed signal. Figure 3b shows the result of pushing down and pulling up more than 26 "ones." Since the capacity of these registers is 26 bits, only 26 "ones" are seen to return. Thereafter only "zeros" are read out. The gap seen following the return of the first "one" is a result of the programming sequence utilized. The cycle time is approximately 2 p.,sec. isters and then followed by more than 17 "ones." In pulling the information back up the register, only 17 "ones" are seen to return after the "zeros," again indicative of correct operation of the 26 bit register. (a) (a) (b) Figure 9 - Signal outputs from DTPL shift register (b) - Signal outputs from DTPL shift register Figure 9a shows the result of pushing down 12 "zeros" and 8 "ones" and then pulling them up. In Figure 9b, 9 "zeros" were introduced into the reg- CONCLUSION The conductor assembly described here is not the only possible implementation of the DTPL list selection. Actually, better line electrical characteristics could be obtained from the use of single inhibit line with mirror image return on the other side of the magnetic thin film instead of using separate keep and transfer lines. However, this conductor pattern would result in an increased selection circuitry since both the external applied fields through the flat coils and the inhibit lines would have to be selected with bipolar currents. Improvements of the readout method are also under study as the output from the sense line is presently in the 50 microvolt150 nanosecond range and requires two stages of integrated circuit sense amplifier amplification where 498 Spring Joint Computer Conf., 1967 the compensation of the input offset voltage becomes difficult to obtain over a large temperature range. More system application study is also required as it seems that the real economy of'the DTPL PUDL implementation lies in the use of a large number of lists of up to 200 words per list where only one list is accessed from the top at a time on a random access mode with 1 JLsec access time and cycle time. it is felt that such characteristics are quite desirable but have not been considered in reported programs or investigations probably because of lack of hardware implementation. ACKNOWLEDGMENT The authors are grateful to David Haratz, Lorenz M. Sarlo and David R. Hadden of Fort Monmouth for their contributions to the DTPL PUDL original concept. The authors also want to acknowledge the help of the staff of the Applied Research Department of the Electronics Division of Laboratory for Electronics, Inc. for the work reported here. Particularly valuable have been the contributions made by C. P. Battarel. REFERENCES A narrative description of the Burroughs B5500 Disk File Master Control Program~ Burroughs Corporation. 2 H J GRAY C KAPPS ET AL Interactions of computer language and machine design DOC Defense Supply Agency Clearinghouse AD 617 616 3 R J SPAIN Domain tip propagation iogic IEEE Trans on Magnetics vol MAG 2 no 3 September 1966 4 R J SPAIN H I JAUVTIS Controlled domain tip propagation J Appl Phys vol 37 no 7 June 1966 An integrated MOS transistor associative memory system with 100 ns cycle time by RYO IGARASHI and TORU Y AlTA Nippon Electric Company Ltd. Tokyo, Japan INTRODUCTION Since the announcement of the development of a technique for using MaS transistor integrated circuits as associative memory cells, 1 128 words of 48 bits per word associative memory has been experimented and engineered. This paper deals with characteristics of a fully integrated associative memory chip utilizing MaS transistor technology and a method of a multi match resolving in the associative memory system. The associative memory chip contains 4 associative memory cells encapsulated in a 14-lead flat package. This associative memory cell is designed so as to operate at a cycle time of 100 ns with standby power less than 100 JLw and power dissipation less than 1 mW (peak) during the interrogate operation. The advantage of using these associative cells is that they will provide economically practical cells with large scale integration and also they will be useful to realize a large capacity associative memory because of their small power dissipation. This report is composed of two sections. In the first section, theoretical analysis and experimental results of operating speed of an integrated MaS transistor associative cell are shown. The second section describes the circuit configuration and the method of multimatch resolving of an associative memory matrix. Associative memory cell A four bit fully integrated associative memory chip is shown schematically in Figure 1 and a photograph of the associative cell is also shown in Figure 2. The flip-flop is constructed with the MaS transistors Q1' Q2, Q3, and Q4' The MaS transistors Q5 and Q6 are used for read and write operations, and the MaS transistors Q7 and Qs for interrogate operation. MaS transistors Q3 and Q4 are used as load resistors of Q1 and Q2, and have characteristics "," interrogate line ward-sense line "0" interrClQClte line VCC(+I8V) substrate word line word-sense line word line "," digit line "0" digit line Figure 1- Schematic circuit of a fully integrated associative memory chip equivalent to resistance of about 3 MO. Q1 and Q2 have the highest mutual conductance. The operation of the associative cell will be described qualitatively at first. The "1" and "0" digit lines are usually held at +5V, the "1" and "0" interrogate lines and the work-sense line at + 18V, and the word line at + 15V. Then, if Q1 is on and Q2 is off (the flip-flop stores a "1 "), Q5 conducts when the voltage level at the word line is shifted from + 15V to -5V for reading, resulting in a digit sense current output at the "1" digit line and no output at the "0" digit line. On the other hand, if the flip-flop stores a "0", Q6 conducts resulting in a digit sense current output at the HO" digit line. Figure 3 shows the timing of waveforms during read and write cycles. During the write cycle the voltage level at the selected word line shifts from + 15V to -5V and at the same time the write information is given on the "1" or "0" digit lines as shown in Figure 3. For an interrogation of "0", the voltage level at the "0" interrogate line is shifted from + 18V to + 16 V. If the flip-flop stores a "0", it is so designed 499 500 Spring Joint Computer Conf., 1967 Figure 2 - Photograph of associative cell that Qs is off, therefore no current is supplied to the word-sense line. If the flip-flop stores a "1", a large output current appears on the word-sense line since Qs is on. For an interrogation of" 1", large output current is supplied to the word-sense line through Q7 when the flip-flop stores "0". In short words, this associative cell generates a signal on the word-sense line only when there is a mismatch between the state of the flip-flop and the interrogate information. And no signal appears when the associative cell is not interrogated (don't care). The feature of this associative cell is that the power dissipation at Q7 or Qs can be made small when mismatch signal appears in the interrogate operation. Namely, the characteristics of Q7 and Qs are chosen properly so as to give a small voltage between drain and source of Q7 or Qs and to give a large current to the word-sense line. The current detector composed of an N PN transistor in grounded base configuration is capable of detecting the current given to the word-sense line kept at + 18V. In the worst case, namely in case that a mismatch signal is given by one bit out of 48 bits in one word, the current given to the current detector is to be about half of the current generated at an associative cell. Another feature of this associative cell is that the mutual conductance of Ql and Q2 is chosen to be three or four times of that of Q5 and Q6. This relationship is the necessary condition to prevent from the disturbance of flip-flop in the read mode. Since Q3 and Q4 are actually equivalent to 3 MO resistor, as mentioned already, they give almost no effects on the switching characteristics. Highspeed write operation is realized by M OS transistors Q4 and Q6· Now provided Ql is off and Q2 is on, let us estimate the switching speed of this associative memory cell in the case of shifting the voltage of "1" digit line from +5V to +Va (+Va > +5V) and the voltage of word line from +15V to some value Vw, resulting in on state of Q5 and Q6. In order to make Ql on state, first Q2 is made off by increasing the voltage of node . A. When Q2 gets off state, Q6 conducts and hence the voltage of node B decreases. When the voltage of node B gets to some value, Ql becomes on state. Therefore, after Ql reaches sufficient on state, write operation of "1" is finished by restoring the voltage of "1" digit line from + Va to +5V and word line from Vm to + 15V. Estimation is made in two steps ; in the first step calculation is done for the time tl required to make Q2 off as a result of increasing the voltage of node A by Qs, and in the second step the time t2 required to make Ql on as a result of decreasing the voltage of node B by Q6 is calculated. In order to calculate tl and t2 the characteristics of P-channel MOS transistor are given by the following equations. 2 where id kp Vg VT vd : drain current : constant : gate voltage for source : absolute value of threshold voltage ': drain voltage for source Read cycle Write cycle 5OnS -D: Word. line +15V -!5V(Vw; +5V---- "I- digit line +5V----- "0. digit line "1- diQit sense out "I" ~ '''0'' Figure 3 - Timing of waveforms at read and write cycles An integrated MOS Transistor AssociatiVe Memory System The following gives the time t1 required to shift the voltage of node A from an initial value V 0' which is specified by the threshold voltage o( Q3, to the voltage V cc-V T to make Q2 off. dv 501 Vw =-5V 60 J 50 (f) t= t= ~ 2Kp(V w-Va+V T) +- (Vee-VT-Va){2(Vw+VT}-Va-Vo} ] [ 40 30 ---------- (Vo-Va){2(V w+V T)+V T-Va-V ee} Vee where symbols are as shown in Figure 1 and 3 and idS is the drain current of M OS transistor Qs, and C A is the total capacitance of node A. Vee is shown in Figure 1. Now the time t2 required to shift the voltage of node B from Vee to the initial value of node A is given by dv J = Va =+18V 20 10 5 10 15 20 Figure 4 - Switching characteristics of the associative memory and a mismatch signal is generated as shown in trace (t). Then the cell is interrogated by the "1" interro- 2Kp(VW+VT-Vb) [ (V,-Vo){2(V w+VT}--V,-Vcc } ] (V b-V ee ){2(V w+V T}-Vb-V o} where id6 is the drain current of M OS transistor Q6, and C B is the total capacitance of node B. Therefore switching time tw is given by Figure 4 shows the relation between tw and C A (=C B ), provided Kp = 0.05 mA/V2, V T = 5V. It is easily found from Figure 3 that tw becomes 30 ns in case V w = -5V, C A = 10 PF, and Vo =+7V and thus the switching time is fast enough to achieve a cycle time of 100 ns. Figure 5 shows the experimental results of measurement of this associative cell. Initially, an associative cell is placed in the "I" state by the coincidence of the first word pulse and the "1" write digit pulse, which are shown by traces (a) and (b), respectively. Then, the second word pulse to read the state of the cell follows. The trace (g) corresponding to the second word pulse shows the output for a "1" condition. The cell is next interrogated by the "0" interrogate pulse of trace (d), gate pulse of trace (e). There is no mismatch signal found in trace (t). The "0" write digit pulse of trace (c) and the third word pulse are used to change the cell from the "I" state to a "0". The cell is again interrogated by "I" and "0" interrogate pulses. Figure 5 shows a sequence of the above operations. To improve the characteristics in the read operation after the write operation, some investigation is being performed. One of the methods is that Q7 and Q8 are used for interrogate and read operations, while Q5 and Q6 are used for write operation only. With this modification, a certain improvement would be expected. Associative memory system As mentioned already, the integrated M OS transistor associative cell has low power dissipation characteristics in interrogate operation. Moreover, since word matching signals can be obtained from associative memory matrix during the entire interrogate operation, the interrogate operation and sequential read operation of matching words are simultaneously performed until the entire multi match resolving process is finished. Therefore, multimatch resolving can be done in high-speed by use of integrated MOS transistor associative cells and high speed peripheral circu~ts. Of course the most important function is to attain a high speed operation, low cost and simple multimatch resolver. 502 Spring Joint Computer Conf., 1967 (a) Word pulses at 10 MHz 10 V per cm ( b) "1" write digit pulses 10V per cm 0 " write digit pulse 10Vper em (cl 11 (d) 11 (e) 0 " interrogate pulses 2 V per cm 11111 interrogate pulses 2V per em (f> Word-sense output 2mA per cm (g) Sense output of "r digit circuit 2Vper cm Horizontal 100 ns per cm Figure 5 - Results of measurement Although some methods have been reported about multimatch resolving,3.4 this paper describes a different approach in the multi match resolving. As shown in Figure 6, general sequence of events taken place is that firstly an arbitrary interrogate information activates interrogate drivers and the interrogate information is compared with the stored information in an associative memory matrix. Signals indicating matching words are fed into the detector matrix for dividing X and Y components. These components are stored in the X and Y -multimatch resolvers and the priority is given to each resolver. Based on X and Y configurations, a specific word driver is activated for the selection. The process continues under the priority control until X and Ysinglematch detectors detect the end of current interrogation. The details in our system will be described below with an example. The associative memory matrix consists of 128 words of 48 bits per word with associative memory cells which are described in section 1. This memory matrix provides the matching signals on the wordsense lines corresponding to matching words to the detector matrix after receiving interrogate information. i AN_D_:_a_~_-_-~-~~~~~~~~~~i=~~~J L -_ _ _ _ _ _ _ _ _ _ _ _ _ ~:o. I :partial write Interfaee Figure 6 - General block diagram of M OS transistor associative memory An integrated MOS Transistor Associative Memory System x. 503 XI X set pulseo---++-_ _ _~+_---.J Y set pulse r-------- 9 ---I I I I I I I I I oR I I Y2 t--+-+----+~~__+--_f Matching signals Gate I I I I I Y-multimotch resolving circuits Figure 7 - Logical diagram of detector matrix The detector matrix shown in Figure 7 has an essential function for multimatch resolving. The matching signals generated by each word-sense line of 128 words are given to the 128 AND gates which are divided into 16 groups as shown in Figure 7. Each group has 8 AND gates. Logical diagrams of the Y -multimatch resolving circuits and X-multimatch resolving circuits are shown in Figure 8 and 9 respectively. Initially, flip-flop FY -J in Figure 8 will be set by some of word matching signals m1 through mg in the group 1 when Y set pulse shown in Figure 8 is enabled. Also at the same time flip-flops FY -2 through FY -16 will be set by some of the word matching signals in the group 2 through 16 respectively. Thus set state of FY -1 through FY -16 shows that at least one matching word exists in the corresponding group. The flip-flops FY -1 through FY -16 in Figure 8 and the flip-flops FX-l through FX-8 in Figure 9 are modified J-K flip-flops and consist of CML integrated circuits as shown in Figure 8. This flip-flop has the feature that it is set at the front edge of a set pulse given to S terminal and is reset at the trailing edge of a reset pulse given to R terminal. Y control shown in Figure 8 is normally in·" 1" state. Thus the priority in the order of Y 1, Y 2, Y 3, •.• , Y 16 is established by the Y control. It is assumed that, for example, at least one of matching signals in the group 2 and the group 11 are provided, and then FY-2 and FY -11 are set, but only 504 Spring Joint Computer Conf., 1967 Va 0------4 V4o--1U Ready Ys example T s I~r~~ II I 0------4 V" 0-----1 V7 D----- FIRST-IN CHARACTER is limited to several bytes, one loop of 35 milliampere wire may be sufficient. The number of transfer cycles required for addressing is log2N plus several house-keeping transfers, where N is the number of words in the array. The addressing speed can be improved by using a two-loop structure which permits readout of one byte to proceed simultaneously with the addressing of the next byte. It is possible to further increase the addressing speed by the use of address trees with codes other than the natural binary code used in Figure 12. One possibility is a 2-out-of-k code; for example, a 1024 wire system can be addressed with two slipped 9-strap fields (k = 9) in three transfer cycles. This compares with 10 cycles and 10 straps with the binary code. Conversion from a natural binary machine code to a non-algebraic 2-out-of-k is awkward and iimits the technique to special applications. Complex logic The basic logic operations were described earlier. More complex functions can be handled by a technique reminiscent of cellular logic. An illustrative function, using non-complementary transfers, will be described: f= XtX2X3X4+ XtX2X3+ XtX2 + X2X3X4 There are several ways to set up such a function in a bit steered array; the pattern of 1's and O's in Figure 16 indicates one possibility. The variables Xl through X4 enter the cellular array in two-rail input lines. Each plated wire is assigned to one of the four prime implicants; XIX2X3X4 will be formed on plated wire 1, and so forth. Since Xl appears uncomplemented in the first two p_rime impJicants-, binary 1's are stored on the strap pair assigned to Xl on wires 1 and 2. Since Xl is complemented in the third prime implicant, a 0 is stored on wire 3. Since Xl does not appear in the fourth prime implicant, it is necessary to treat Xl as an unconditional 1. A similar procedure is carried out for all four variables. The pattern of 1's and O's shown in Figure 16 can be treated as a perIl}anent pattern or if desired as a programmable pattern which is set up when required. The function can be evaluated by successively driving the strap pairs assigned to Xl through X4. If a variable has the Ro I 10 10 j14'8 Figure 15 - First-in first-out buffer 11 l' 10 1° d I I' cdc I I I 11 10 11 10 P I I I'!' I' I: I 1° I : I : I~ t~ I: 1 '~~~~l 2 DATA !N cdc I I I I' I' I: I: I: I: : FiRST-iN CHARACTER ALWAYS AVAILABLE d I X, fj·\I·\:!)c·:~)..11 X2 \1,'1':;-':),\1 X3 + \I.\:!\:~ X4 . \I).·:.! t \:.!x:I'~l Figure 16 - Complex logic array pattern f Plated Wire Bit Steering For Logic And Storage value 1 or 0, the d or c strap of its pair is driven, respectively. The prime implicants will be formed under strap P, which is initially set to 1. On each of 4 successive cycles a transfer from the appropriate x-strap in combination with the Ro strap is executed. At the end of 4 cycles if strap P contains at least one 1, f is 1, otherwise it is o. The cellular technique described can clearly handle any combinational technique and with straightforward extensions can hand1e sequentia1 functions. SUMMARY A promising magnetic logic-in-memory technique called bit steering has been described. The closed flux path and relatively thick film plated wire permit two source films to develop sufficiently large sense voltage to steer another film in a low impedance loop. Laboratory experiments have indicated basic technical feasibility. The inherent resistance and inductance of continuously plated wire optimized for conventional NDRO memories with a wire-write current of 25-35 milliamperes permit transfers over loops severai inches in length; plated wire of this type is particularly suited for multiloop configurations. Low steering' current wire (lOmilliamperes) is required for substantially longer loops. I t is not possible at this time to give firm estimates on near future design details and array yield. Steady progress in the development of uniform films on wire and in plane fabrication give encouragement that the tolerances required on the delta currents due to imperfect cancellation at the transmitting elements and on the other described aspects of design can be attained. Bit steering is inherently suited to parallel rather than general logic processing. The discussion in the paper has accordingly been limited to large scale memory-in-Iogic. It is expected that the complex interconnection patterns usually required in general purpose logic preclude the use of bit steering and such logic will be dominated by semiconductor technology. ACKNOWLEDGMENT The authors wish to express their appreciation to R. Tucker, R. McMahon and other members of the Research Operations at Blue Bell for fabricating experimental set-ups, to A. Turczyn for helpful discussions, and to W. M. Ovem, W. W. Davis, 515 R. A. White and others of Univac, St. Paul, for their formative work in bit steering. The authors are grateful for the interest shown in this work by Messers D. Haratz, A. Campi and B. Gray of the U. S. Army Electronics Command, Fort Monmouth, New Jersey. REFERENCES 2 3 4 5 6 7 8 9 10 II 12 W BJOHNSON Steering thin magnetic films Proceedings lntermag Con 6 2 2 i 963 M WGREEN High speed components for digital computers Final Engineering Report Part A SRI Project 2548 Prepared for Wright Air Development Division WPAFB Contract No AF 33 6165804 1959 J G EDWARDS Magnetic film logic Proceedings lEE 112 40 1965 WE PROEBSTER H J OGUEY High speed magnetic film logic Digest of Technical Papers International Solid States Circuits Conference 23 1960 G W DICK D W DOUGHTY A full binary adder using cylindrical thin film logic elements Digest of Technical Papers I nternational Solid State Circuits Conference 86 1963 G W DICK W D FARMER Plated wire magnetic logic using resistive coupling IEEE Trans on Magnetics MAG 2 343 1966 T R LONG Electrodeposited memory elements for a nondestructive memory J Appl Physics 31 1235 1960 J P McCALLISTER C F CHONG A 500 nanosecond main computer memory utilizing plated wire elements AFIPS Proceedings 29 FJCC 105 1966 T R FINCH S WAABEN High speed DRO plated wire memory system IEEE Trans on Magnetics MAG 2 529 1966 W J BARTIK C H CHONG A TURCZYN A 100 megabit random access plated wire memory Proceedings Intermag Conference 11 51 1965 I DANYLCHUK A J PERNESKI M W SAGAL Plated wire magnetic film memories Proceedings I ntermag Conference 5 4 1 1964 Originally proposed by A CAMPI B GRAY of US Army Electronics Command Fort Monmouth New Jersey See Chow W F Content addressable memory techniques First Quarterly Progress Report January 3 I 1966 Prepared under Contract DA 28 043 AMC 01305 E by the Univac Division of the Sperry Rand Corporation Blue Bell Penn A cryoelectronic distributed logic memory by B. A. CRANE and R. R. LAANE Bell Telephone Laboratories Whippany, New Jersey INTRODUCTION The thin-film cryotron's ability to combine memory and logic functions in large, highly integrated circuit arrays has led to investigations of its use in implementing associative or content addressable memories. I ,2,3,4 This paper describes the design and operation of a cryoelectronic associative memory, a version of Distributed Logic Memory5,6,7 consisting of 72, 8-bit associatively accessed cells and operating at around 0.4 million instructions per second. The memory array contains approximately 3400 cryotrons on four substrates. The substrates were fabricated by the General Electric Computer Laboratory, Sunnyvale, California, using their recently described hybrid technology;lS,lI and cIrcUlt desIgn, array assembly, testing and operation was done by Bell Telephone Laboratories. M, S, M2 S2 M8 S8 CELL I CELL 2 I I I I I I I I I I tM- CELL k Figure I-Linear DLM array A novel scheme for fault compensation was designed into the circuits so as to allow the use of substrates having faulty circuits or devices. AI517 though the number of faults per substrate was typically low, this scheme proved indispensable in the assembly and successful operation of the final 72 cell array. Distributed logic memory Although detailed descriptions of DLM appear elsewhere,5,6,7 a brief description here of the implemented version's organization will aid in following discussion. The implemented DLM is a linear array of cells such as sbown in Figure 1. Each cell contains eight data flip-flops, Xl' X 2, ... , Xs; two control flip-flops, A and B; and combinatorial logic used in operating on cell contents. The linear DLM array has all properties of a conventionally organized associative memory in that cell contents are operated on by MATCH, STORE, and READ commands. The MATCH command interrogates all cells simultaneously to find those containing the bit pattern specified on the match lines, M I , M2, ... , Ms. Each cell matching the input pattern is then marked as "active" by setting its A flip-flop to the "1" state. The STORE command writes a specified bit pattern into the cells via store lines SJ, S2' ... , Ss. Two options are possible: either all cells or all active cells are written into simultaneously. In both the MATCH and STORE commands any bit position or combination of bit positions can be specified as "don't care." The READ command operates only on active cells, and when more than one cell is active, an algorithm must be used to select only one active cell at a time. In the implemented version, the contents of a selected active cell are then read out serial-by-bit. The linear DLM array has the additional property that each cell communicates with its two nearest neighbors via its A and B flip-flops. This communication occurs in directional MATCH commands in which either the left or right neighbor of a matching cell is activated rather than the matching cell itself. Another, longer range form of communication 518 Spring J oint Computer Conf., 1967 is afforded by the PROPAGATE command which extends activity, beginning at an already active cell, continuing through left neighboring cells whose contents match the input pattern, and ending at the first mismatching ceil. Another added property of the linear DLM array is the ability to specify cell activity in the input pattern of the MATCH operation. These additional properties enable storing information in the form of strings of characters on a character per cell basis. Lee and Pau1l5 have shown how storing one binary coded alphanumeric character per cell gives an efficient means of storing and retrieving variable-length information strings, while Crane and Githens 7 have s'hown how storing binary coded numbers side-by-side in groups of cells on a bit per cell basis (each number being a string of binary characters) allows eftlcient arithmetic operations using MATCH and STORE commands. These same properties, however, place a more stringent requirement on correct circuit operation .since cells arc not independent of one another as in a more conventional associative memory. To paraphrase: a string is no stronger than its weakest cell. However, as shown later, the array's natural redundancy (at the cell level) allows faulty cells to be deleted without changing the array's function (only its capacity is changed). Of course, when a cell is deleted, communication between the A and B flipflops of the new neighbors must be established, and care must be taken to assure that drive line continuity is preserved. With proper layout and design, however, these tasks are easily accomplished. Figure 2-Schematic drawing oflinear DLM cells Cell design Figure 2 is a schematic drawing of three DLM cells, one interior cell and two end cells. The notation represents the cryotron gate as a semicircle and the cryotron control as a line crossing the gate. Note that most cryotrons have multiple control crossings. Only one of the eight identical data flip-flops is shown in each cell; and for clarity of description, one each of flip-flops A, B, and the data flip-flops are em- phasized by heavier lines. The B flip-flop, shown emphasized in cell k, is a loop stretching through the entire cell. Current supplied to all B flip-flops in series flows through either of the t\vo legs of each loop and can be switched from one leg to the other by driving cryotron gates resistive while leaving others superconductive. For example, pulsing signal line RB (reset B) will drive current from the left hand leg (the "1" side) into the right hand leg (the "0" side) where it will remain after termination of RB (due to conservation of magnetic flux through a superconductive loop). Applying SB (set B) will then drive the current back to the HI" leg. As wiii be seen iater, B must be in the" 1" state when performing STORE and MATCH operations, and the result of a mismatch is to drive the current back to the "0" leg. Current in the "1" leg also drives the output cryotron iesistive, thus registering an output. A data flip-flop, shown emphasized in cell n, is a similar two-legged loop in which a persistent current is stored that circulates in the loop in either of two directions: clockwise for a stored "1" and counterclockwise for a stored "0". A "1" is stored by having B in its "I" state and sending current in line Sj and taking it out through the return line. The right leg of the storage loop is driven resistive by the current in B and the store current is therefore diverted to the left leg of the storage loop, where it remains when RB is applied. Terminating the store current, now, will cause a persisting current to circulate in a clockwise direction in the storage loop. Its magnitude is one-half that of the store current since the inductances of both legs of the storage loop are equal. Storing a "0" is done in the same manner except the direction of the store current is reversed. To MATCH for a "0", B is set to "1" and a match current is applied to line Mi and removed through the return line. Because both legs of the storage loop have equal inductance, the match current will divide equally between them. If a "1" is stored, the match current in the left leg will combine with the persistent current to drive the" 1" side of the B flip-flop resistive, thereby resetting B to "0". If a "0" is stored, the two currents cancel in the left leg of the storage loop and B remains set to "I". Matching for "1" is done by reversing the match current, and a don't care is accomplished by using no match current. The A flip-flop, shown emphasized in cell 1, is similar to the B flip-flop. It is reset to "0", the left leg, by RA (reset A), and can be set to "1" by GO (gate down), G L (gate left), or G R (gate right) in conjunction with B being in the "1" state. The PROPAGATE command, setting A to "}" in cells A Cryoeiectronic Distributed Logic Memory having B in the "'1" state and being left neighbors of active cells, is accomplished with PL (propagate left). Cell activity is matched for by applying G B (gate B) rather than SB (set B) in preparation for the MATCH operation. Fabrication The cryotron circuits were fabricated by the General Electric Computer Laboratories using their recently described hybrid process. 8 •9 The circuits are formed from five film layers on a 3% by 4 inch glass substrate. Sn gates are deposited through a mask onto an insulated ground plane. SiO is then deposited through a mask to insulate the gates from a top layer of Pb at certain points. The layer of Pb is then deposited over the entire substrate, contacting those parts of the Sn gates not covered by SiO. The Pb layer is then etched away (using photoresist techniques) to form the desired connections and controls. A thin layer of photoresist is then put over the entire substrate to act as a protective coating. The 519 Sn gates are 18 mils wide and act either as the gate of an active cryotron (crossed by 1.6 mil wide Pb control lines) or as the underpass of. a passive, crossover cryotron (crossed by a Pb connection line at least 10 mils wide). The masks were made at Towne Laboratories, Somerville, N.J., from artwork made at BTL in accordance with GE's layout rules so as to assure compatibility with the fabrication process. Individual circuit parts (e.g., the Ph layer pattern of the data flip-flop) were cut on Mylar at 25 to 1 magnification and then reduced photographically. The final masters were then formed by step-and-repeat procedures. Figure 3 shown the top Pb layer pattern formed in this manner (the Pb remains in the white areas and is removed in the black). Figure 4 is a photograph showing a finished D LM substrate with attached interconnection Pb strip line. Each substrate contains 20, 8-bit DLM cells comprised of 2100 active crossings (to form 940 Figure 3 - Photo mask for top lead film layer 520 Spri~g Joint Computer Conf., 1967 Figure 4 - DLM substrate with attached interconnecting strip lines cryotrohs) and 2060 passIve crossmgs (forming crossovers). The substrate also contains 80 active and 40 passive crossings used for device characterization measurements. The Pb strip line (Pb strips, 1 mil thick Mylar insulation, Pb ground plane) is clamped to the substrate by beryllium copper clamps. Each substrate has 92 connections for the D LM circuits and another 30 for the test devices. Fault compensation With cryotron circuits of this size and complexity, the probability of making a perfect substrate is small (but not zero). Consider, for example, the total length of the cryotron controls. With 2100 controls, each about 26 mils long, there is a total of about 4.6 feet of 1.6 mil wide Pb lines on each substrate, and a few opens are bound to occur. Likewise, the area of super- imposed metal layers is roughly that of the substrate, making shorts quite probable. Therefore, in order to obtain reasonable yields, it is necessary to design the circuitry so as to be able to compensate for the faults that occur. The predominant kind of fault in the DLM circuits was found to be open control lines. Device characteristics were sufficiently uniform to allow ±25% margin in operating currents, and shorts thal occurred could almost always be eliminated by capacitive discharge techniques (this would sometimes create an open control, however). Because repairing a 1.6 mil wide control so that it will work again is very difficult, the tactic adopted was to disable the cell containing that control and to extend the neighboring cells' communication circuits over it. Open controls occurring in the drive lines must, of course, be jumpered to preserve continuity. The gate left, gate right, and propagate left circuits afford communication between cells, and, therefore,' are the circuits that must be modified whenever cells are deleted from the array. To facilitate this modification, these circuits are realized as ladders having legs of unequal inductance. In the gate left circuit, for example (see Figure 5), the right verticals and the rungs have low inductance and the left verticals have high inductance (due to the controls). Current into the ladder will split according to inductance, the majority flowing in the right vertical whenever that branch is not resistive. In a cell having the B flipflop in the " 1" state, however, the corresponding right vertical is resistive, forcing the current to the left vertical (through the two rungs) and driving a gate in the "0" leg of the A flip-flop of the left neighboring cell resistive (activating the neighbor). Suppose that cell 2 in Figure 5 is faulty. Then cell 1 can be made to communicate directly with cell 3 by first opening the rung between points Wand X. and second assuring that the gate between points X and Y will never be driven resistive. The latter can be accomplished by causing an opening somewhere in the "1" side of cell 2's B flip-flop. A third, optional, compensation is to place a jumper between points X and W. This improves the integrity of the newly created left vertical (controls being narrow are susceptible to opens) but upsets the inductance realtionship. In practice, however, the control inductance is high enough to allow two consecutive controls to be jumpered without causing a. harmful change in the inductance ratio. Jumpering, therefore, is in general advisable. The propagate left circuit is a compound ladder having three verticals per section but operates and is extended over faulty cells in a similar manner. Discontinuities in drive lines due to opens appearing in a control are repaired by placing a jumper between X and Y as shown in Figure 6. Compensation for the deletion of a defective cell from the array using this technique requires the formation of 6 opens, and for an 8-bit cell having all drive lines jumpered for purpose of integrity, 31 jumpers. Figure 7 shows how the jumpers are formed; the end tabs of the controls where the Pb film contacts the Sn films underneath are 26 x 31 mils and afford ample area for jumper placement. Two techniques for making these jumpers proved successful. One, done at GE, consisted of removing the photoresist overlayer and depositing all jumpers simultaneously through a special mask. The other, done "in the field" at BTL, consisted of scraping away the photoresist at points to be jumpered and melting a small piece of Cerro seal solder between them. It was found that the solder would wet the photoresist, giving adequate mechanical support, and it remained superconducting during circuit operation. Figure 8 shows how the circuits are laid GL ~ I A(O),CELL 2 B( I), CELL 2 A(O) ,CELL 3 B(I), CELL 3 A(O),CELL 4 B(I), CELL 4 Figure 5 - Gate left circuit RB ~ . . . . .__ x y Figure 6 - Drive lines 522 Spring Joint Computer Conf., 1967 "1" state at that particular point in the program (the proportionality appears non-linear in the scope trace due to amplifier non-linearities and variations in output gate resistance). INPUT DRIVE LINE I i CELL TO CELL COMMUNICATION NETWORK JUMPER FOR BROKEN CONTROL liNE BROKEN CONTROL LINE IIUI \ "'yPb III~ I Ul ~ I Sn Figure 7 -Jumpering of control lines to regain drive line continuity out so as to facilitate the creation of opens. There are 6 such points per cell, and the opens are made by scratching the film while viewing the circuit through a 20X microscope. The usefulness of this technique can be seen from a sample of seven, 20-cell substrates that were fault compensated and selected for assembly into a four substrate array. One substrate contained 19 working cells, three substrates had 18, two had 17, and one had 16. I Cnl... U.. .. ~ rF:'i II ~11Mr1 DISA 1B LED CELL I ,...... ,: . U· JUMPER FOR CONTROL UNE OPENED MECHANICALLY LINE SECTIONS ··ti·.· ·.·, . LJ~ . ..•:.~~ :.~' ..... ' f.-.,. '. ". Figure 8 - Circuit layout for mechanically creating opened circuit line sections A rray operation After a series of device characterization measurements, manually operated function tests, and electronically generated test programs, four substrates were selected for assembly to form a 71-cell D LM array (8 cells having been deleted by fault compensation). Figure 9 is a photograph showing the 72-cell array mounted in its holder. The array operates at 3.55°K using 300 rna. supply current. Twisted pairs are used to carry the input, control, and output signals. Figure 10 shows superimposed the "0" and "1" outputs from the B flip-flop of one cell (after amplification by 100). Figure 11 is an output waveform generated while exercising the 72-cell array with a program designed to test all circuit functions, To perform this program the cells are uniquely labeled U through 71, each cell storing its assigned number in data flipflops Xl through X 7 , and all Xs data flip-flops are reset to "0". The output waveform is from the "1" side of all B flip-flops in series so that its magnitude is proportional to the number of B flip-flops in the Figure 9-72 cell DLM array mounted in holder A detailed description of the program is given in the appendix. Steps a through g check the match circuits at each bit location by matching for binary 35 (the 36th cell), one bit at a time, starting with the least significant bit position. Next, all A and B flipflops are sequentially activated, first to the left of the matched cell location (by step h) and then to the right (by step i). This can be observed in Figure 11 as a A Cryoeiectronic Distributed Logic Memory GB RB 11," 110" ---- - - - ---- --- - --- Figure 10- Superimposed "0" and" 1" outputs from the B flip-flop of one cell, after amplification by 100 (vert. 0.5 volts/em.; horiz., O.5us/cm.) 72 o ~-r-i- - ' •i a-g J-O ' L--r--J L,-J L,-J p-r s,tu,v Figure 11 - Output from 72 cell array demonstrating all D LM circuit functions (horiz., 200jLs/cm.) X 7 = O. In steps p, q and r, Xs = 1 is stored into all cells activated by propagation, and then a match is performed (in steps sand t) to insure correct storing. Finally, Xs = 0 is stored back into matched cells (steps u and v), thereby completing the test cycle. This test program was run at a relatively slow rate so as to allow time for rippling activity through 72 cells. As an example of maximum execution rate, a program composed equally of MATCH (3.2/Ls) and STORE (L8JLs) instructions was run at around 0.4 million instructions per second. During a six-week period of testing and operation, this 72-cell array was cycled between room and liquid helium temperatures ten times. Although some of the original shorts would recur after a cycle, they could by removed by capacitive discharge and the array would show no degradation in performance. CONCLUSION This paper has described the design and operation of a 576-bit, cryoelectronic associative memory organized in the form of Distributed Logic Memory. Perhaps the most significant contribution of this work has been the demonstration of techniques for dealing with highly integrated circuit arrays containing faults. While these fault compensation techniques apply to a particular realization of a particular organization, it is suggested that the feasibility of applying some kind of fault compensation should be considered in evaluating organizations and technologies for implementation by large-scale integration techniques. ACKNOWLEDGMENTS --. ± ---~I- I I I I Figure 12-Cell-to-cell communication (horiz., 5jLs/cm.) voltage ramp increasing incrementally as new B flipflips are activated. An added time delay occurs when activity is transferred between substrates (because of added circuit inductance due to interconnecting strip lines). These delays can be observed as discontinuities in the voltage ramp and are shown in greater detail in Figure 12. Approximately 12/Ls are re,!uired for information transfer between substrates compared to 1.3/Ls on the substrate. The propagate left circuit is tested (steps j through 0) by Qrst matching and activating cell 1, and then starting with the active cell, propagating activity toward the l~ft as long as the cell to the left contains We acknowledge with great pleasure the work of Mr. C. E. Doyle and Mr. B. Wentworth in designing, constructing, and operating the apparatus used for testing and operating the DLM array. We are also indebted to the members of the General Electric Computer Laboratory for their cooperation and skill in fabricating the cryotron substrates. Finally, we are grateful to Mr. J. A. Githens for his comments and encouragement during the course of this work. APPENDIX Signal (a) SB,RA (b) MI = 1 (c) M2 = 1 (d) M3=0 Result B = 1, A = 0 in all cells B = 0 in cells where Xl =0 B = 0 in cells where X 2 =0 B = 0 in cells where X3 =1 524 Spring Joint Computer Conf., 1967 B = 0 in cells where =1 X4 REFERENCES A E SLADE H 0 McMAHON A cryotron catalog memory system Proc EJCC 120 1956 B = 0 in cells where X5 =1 (g) M6 = 1 B =0 _ in cells where XI) f\ -v (h) GL, GB A = 1, B = 1 in cells 37 GR, GB A = 1, B = 1 in cells 35 through 72 (i) (1) SB, RA (k) M 1 , M 2 , ••• ,M8 = 0 0) GB (m) SB (n) M7= 0 through 1 B = 1, A = 0 in all cells B = 0 in all cells except cell 1 A = 1 in ceH 1 B = 1 in all cells B = 0 in cells where X 7 =1 (0) PL (p) RB (q) GB, S8 = 1 (r) RB, S8 = 1 (s) SB, RA (t) M8 = 1 (u) GD, GB, S8 = 0 (v) RB, Ss = 0 2 V L NEWHOUSE R E FRUIN Data addressed memory using thin-film cryotro!!s Electronics 35-18 31 1962 3 J D BARNARD F A BEHNKE A B LINDQUIST R R SEEBER Structure of a cryogenic associative processor Proc IEEE 52 1182 1964 4 J P PRITCHARD JR Superconducting thin-film technology and applications IEEE Spectrum 3 46 1966 :5 C Y LEE M C PAULL A content addressable distributed logic memory with applications to information retrieval FlOC IEEE 51 924 1963 A = 1 in cells 1 through 64 B = 0 in all cells 6 RSGAINES CYLEE A n improved cell memory IEEE Trans on Electronic Computers 14 72 1965 X8 = 1 in cells 1 through 7 B A CRANE J A GITHENS Bulk processing in distributed logic memory IEEE Trans on Electronic Computers 14 186 1965 64 B = 1, A = 0 in all cells B = 0 in all cells where Xs=O Xs = 0 in cells 1 through 64 8 R E FRUIN A K OKA J W BREMER A hybrid cryotron technology part I - circuits and devices INTERMAG Abstracts 8.3 1966 9 C N ADAMS J W BREMER M L UMMEL A hybrid cryotron technology part II - fabrication INTERMAG Abstracts 8.4 1966 TRACE_Time-shared routines for analysis, classification and evaluation* by GERALD H. SHURE, ROBERT J. MEEKER and WILLIAM H. MOORE,JR. System Development Corporation Santa Monica, California *Research reported herein was conducted under SDC's independent research program and Contract No. DA 49-083 OSA-3124, Advanced Research Projects Agency, Department of Defense. INTRODUCTION Investigators often find it desirable to collect more data than are required to test preformulated hypotheses. Indeed, the experimenter with an empirical bent is reluctant to forgo the opportupity of collecting any data that might amplify or clarify his understanding. Particularly when anticipated relationships among variables fail to materialize (or, stated less elegantly, when predictions are not confirmed), he will wish to check various possibilities among supplementary data that may account for his negative results. The on-line use of the computer to run an experiment now provides the experimenter with the ability to include more details of experimental processes and to record finer gradations of response than hitherto possible. As a result, the computer seems to be both a curse and a blessing to the researcher: The value of the increased amount of information that can be generated and recorded is often outweighed by the burden of organizing, collating, and assessing it. Moreover, much of the trial-to-trial data from these experiments are hi~hlv redundant. or irrelevant. If these data are also hierarchical, sequence-ordered, and of variable length - and such experimental data often have these characteristicsthe problems of data management may become overwhelming. The brute-force attack, even with available statistical computer programs, is rarely a satisfactory way of exploring the abundant, computer-recorded data. In a typical experiment of our own, we have had as many as 1,000 items of information for each of hundreds of subjects. If we did nothing more than calculate intercorrelations for each of these items of data, without considering combined indices, we would generate approximately one-half million correlation coefficients or cross-tabulations. The resulting stacks of computer printouts for such analyses are not infrequently measured in lineal inches. Techniques such as factor analysis are not particularly effective for induci~g or discovering a fundamental order in the data, especially where reassessments frequently call for dividing the data in different ways, for omitting various subclasses of data from comparisons, for using different observational data or values in operational definitions, and, generally, for a great deal of data manipulation (recombining, regrouping, and recalculating) before new assessments can be made. Consider the task, then, of classifying, grouping, and summarizing these data so as to identify summary and configurational indices which attempt to satisfy the criteria of reliability, specificity, validity, and relevance. Since an interplay of intuition and trial and error is frequently required to identify and develop such indices, they can become exceedingly costly in time and effort; and the task of iteratively sharpening and improving variable definitions can become impossibly burdensome. Often, under such conditions, the experimenter must either spend an inordinate amount of time to produce a thorough 525 526 Spring Joint Computer Conf., 1967 analysis, or settle for the first few indices he develops (usually without attempting to assess the utility of these relative to a host of other possible indices). Yet he is aware that the insights for improving operational definitions of variables frequentiy are not forthcoming until one is well into the course of the analysis itself. The TRACE program l was developed as we attempted to solve these kinds of data analysis difficulties encountered in the context of our computer studie3 of bargaining and negotiation. For the most part, these manipulations of the data precede the use of standard statistical analyses. TRACE is intended to assist the investigator in exploring relationships that may obtain among complex sets of data, from a number of different and newly suggested points of view, untii he is satisfied that he has derived the optimal, or a satisfactory, operational definition. It also permits rapid checking of hypotheses about patterns and relationships for particular subsets of the data. Description To see how TRACE works, let's look for a moment at an abbreviated record of data from one of our own computer administered experiments in which, say, five hundred students play a game consisting of a sequence of five turns over a variable number of trials (see Figure 1). The computer keeps a complete, z 0 ;:: Q z 0 u .. '"~ .. ~ DERIVED MEASURES .. ~ ! '" ~ CO) ~ z z ~ z '"z 22 ~ 22 ~£ - .... 0( 0( CO) Z Z Z 0( .. Z 0( >- +--~H--+----lf-----1 I r ! I I 10- 1 I:-----H+---:'..!---+----''''r-+----I---~ I 10- 2 f----+--+++-*~A_-N+_IA__+__=_+fH___A-+__l 10- 2 f----+--+++--I-f".~A_-N+_IA_+_~fH4_++__l 10- 3 L......_ _ _...L...._ _ _....L.._ _ _-1.._ _ _---l_ _ _---J 10-3 L-_ _ _...L...._ _ _....L.._ _ _-L_ _ _--II...-_ _----l FREQ (CPS) FREQ (CPS) 1Or----,-----r---~---~._- q = 10- 2 RECOVERED I, " ,.. _\ / \/ \ POW~R ,.. SPECTRlj;,\ ,". : ..\ I" \ A- I'" ''''' \ 10-' 1,------\-\-+--4-.--.:L--+-----t--+-JH--1--=----t-,--1 \ , ,I \ \\ FREQ (CPS) Figure 8 (Conl'd) Degradation Analysis 10 l l_ _ _ _I 539 _ _ _ _~-----,------,----- 10-0 10- 0 t - - - - - - - - - - - l - 10- 1 IIO-ll----t-------:------+t~=-----___;;~~----J 10- 2 ~'" 1O-21----t-----+--::::;~....-~:..----==:.2!!.~~~--- 10- 3 f-----~ - -~---'- ~ 1O- 3r - - - - - l - - - -b '" ::> :::cE":"c,, i'"f i"- - -t- "'~', " -----1",,,,1 10-6 10- 5 10- 4 10- 3 10- 2 10"1 ERROR PROBABILITY (q) Figure 9--Sampling error versus channel error probability £----+-----+-------.J :::t=----r--!---+---+----t-~I i 10- 6 10- 5 10- 4 10- 3 ERROR PROBABILITY (q) 10- 2 Figure 10-Power spectrum error versus channel error probability 10- 1 Digital systems for array radar by GEORGE A. CHAMPINE UNIVAC Division, St. Paul, Minnesota Sperry Rand Corporation INTRODUCTION The purpose of this paper is to present the role and philosophy of digital techniques, and especially of general purpose digital computers, in array radar systems. Array radars and digital computers are extraordinarily well suited to each other. The flexibility and high data rate available from multibeam, multifunction array radars require an equally flexible, equally fast controller - a general purpose digital computer. The beam steering for many types of array radars is of a digital nature; and, of course, range, doppler frequency, and other quantities are inherently digital (after the information is extracted from the signal) just as in conventional radar. The characteristics of digital computers that make them useful in a radar system are: Perfect Memory: Digital memories can retain information with no loss in accuracy. Time-sharing: The digital equipment is time-shared among many functions. This reduces system complexity and cost. Decision-making ability: The logical design and digital nature of computers facilitates decision making. Precision: Precision can be obtained as a linear function of cost. Reliability: Digital computers can be among the most reliable subsystems of a radar. A fully integrated digital controller and data processor can be implemented using a general purpose digital computer, in which all controller functions time-share the computer. This places a severe speed and reliability requirement on the computer, but offthe-shelf equipment is available to satisfy many present radar system requirements. The functions of a large scale array radar which can be integrated into the computer are: • Radar control Search raster generation Beam steering Range gating Transmitter and receiver frequency 541 Transmitter and receiver beam width Transmitter and receiver pulse type control • Radar data processing Detection rules Track initiation Range and angle tracking Coasting Target identification Track-while-scan • Radar monitoring • Display processing • Console data processing • Logistics • Radar evaluation • Radar checkout Typical- system configuration An example of a digital system for an array radar is shown in block diagram form in Figure 1. This diagram and most of the following discussion are a hypothetical composite drawn from several projects in current development. In systems where great flexibility is required, and where events may be separated by time intervals shorter than the Input/Output transfer time, a Radar Instruction Buffer storage and timing unit has been used. The computer sends ordered instructions (for the radar to execute) to the Radar Instruction Buffer; each instruction has a time tag to specify its time of execution. These instructions might be: • Steer the transmitter to angular coordinates A and B. • Send Pulse PI at time Tim~. • Steer the track receiver beam to angular coordinates A and B. • Range gate the signal at time T 2. These instructions are held in the Radar Instruction Buffer, are decoded, and are gated to the proper equipment at the proper time to initiate the desired function~ The return signals are gathered by the receiver antenna and pass through the receiver, video con- 542 . Spring Joint C~mputer Conf., 1967 Functions controlled 1 1 TRANSMITTER (ANALOG) L.....-_ _ _ _ _..J -I RADAR INSTRUCTION ~_----.j BUFFER (DIGITAL) MONITORING (DIGITAL) The functions listed in Table I are typical of those functions which might be controlled in a large array radar. Table I - Functions controlled in a large array radar 3 Video Transmitter Receiver converter 2 1 O!G!T~ DATA PROCESSOR OPERATIONS CONTROL CONSOLE Figure 1 - Digital system for array radar functional block diagram verter, and the analog-to-digital converter where they are encoded in digital format. The various parameters of these equipments are controlled by digital commands from the Radar Instruction Buffer. The computer accesses test points in the radar via the monitoring equipment, and encodes the information for that test point in digital form for the computer. Provision is also made in the monitoring equipment for the computer to inject test signals when required for calibration and monitoring. Manual control information from the Operations Control console is sent to the computer which translates the control information into radar instructions, adds timing information, and sends the instructions to the Radar Instruction Buffer. The computer also processes and formats information for display, and it can change the displayed information at the request of the operator. Radar/computer interface Figure 2 is a block diagram of the Radar Instruction Buffer. This approach to the Radar/Computer Interface has been used on large systems. On simpler array radars this equipment is omitted, and the various radar subsystems are tied directly to computer I/O channels. Function Beam steering angles Beam width Frequency Pulse time, duration Pulse coding Range gate position duration Doppler filter range Coherent integration Calibration and monitoring X X 'X X X X X X X X X X X X X X X X Method of control The computer loads the Radar Instruction Buffer memory with a sequence of radar instructions. These instructions contain an address (equipment destination), time tag, and data. The instructions are loaded in time-ordered sequence. The Radar Instruction Buffer compares the time tag of the first instruction with its clock; when equality is reached, that instruction is sent to the designated address to initiate the function in real time. The next instruction is then loaded into the control EXTERNAL DEVICES Ip I CONTROL OUTPUT ADDRESS AND PRIORITY I TIMING CONTROL MEMORY , ... /'"n . ~_SW_I-.TCI'""H_IN_G---Jr T I I . __ CONTROL 'L' E_RR_O_R_...... I EXTERNAL DEVICES Figure 2 - Radar instmction buffer functional block diagram Digital Systems For Array Radar output section where it is held until time equality is again reached. The word length of instructions is determined by the number of events which must happen simultaneously, i.e., within the time to get one instruction from the Radar Instruction Buffer. For a multibeam tracking radar the word length must be quite large because of range gating and other signal processing requirements in the many beams. Many functions need not be critically timed except in very heavy target environments. The monitoring information is requested through the Radar Instruction Buffer because of timing requirements. Some measurements must be made during dead time, some during active time; some require test signal injection and then read out at precisely controlled times.' Radar data processing Radar data processing techniques for computercontrolled conventional radars have been thoroughly covered in the literature. The following discussion concerns the functions and the implementation rather than techniques. Functions The functions which have to be performed are: • Search pattern generation • Detection • Track initiation • Track-while-scan • Range and angle tracking, smoothing, and extrapolation • Automatic gain control • Noise, sidelobe, and clutter rejection • Video threshold determination • Target identification • Allocation of radar capacity With a multifunction radar, all of these functions may have to be performed concurrently. Implementation The implementation of the above functions in an array radar is complicated by the flexibility of the radar. The use of the available pulses, time slots, and other radar capacities in an efficient manner requires a scheduling program which allocates the resources according to the target environment. A record must be kept of the allocation of pulses to targets so that as the returns are received the information can be sorted out, correlated with the proper tracks, or otherwise suitably processed. The result of this is that although the conventional basic computing algorithms are used for radar data processing, they require considerable additional program control logic in the array radar environment. 543 One of the largest uses of computer speed in radar data processing is the. reduction of redundancy and randomness of radar signal tracking data, and this burden increases linearly with the tracking capacity of the system. The tasks which place the heaviest burden on the data processor are those done every cycle. Examples of these are: • Range and angle tracking • Pulse-to-pulse signal integration for detection • Automatic gain control • Noise and sidelobe rejection In a dense environment, even the fastest presently available stored-program computer may not have adequate speed. In this case, a wired-program processor may be used between the video converter and digital computer to perform the highly repetitive pulse-to-pulse correlation on the data. The correlation reduces the data rate (by reducing the redundancy) to a level where it can be handled by the storedprogram computer. Development work is now proceeding to design advanced stored-program computers that are fast enough to process data from target densities substantially above present capability. Radar monitoring The large numbers of electronic components in array radars require a departure from manual methods of fault detection and diagnosis. The many repetitious circuits, which can be easily accessed by a computer, lend themselves to automated sampling and checking. In an automated Radar Monitoring subsystem the computer would perform the following tasks: (1) The computer sequences through all tests, sampling each test point at its required rate. The output of a signal channel is sampled relatively often to determine if the overall channel alignment is within limits. The component parts of a channel are sampled less often to determine if two components are drifting in compensating directions toward failure. (2) The computer commands the appropriate test signals, if required, via the Radar Instruction Buffer during the proper part of the radar cycle. (3) The computer examines the results of the test and takes appropriate action. If analysis of the failure indicates that it can be remedied by computer action, the computer performs the programmed corrective measures. If not, the maintenance man is notified by a message output. If the failure cannot be localized to one least replaceable unit, further tests are performed, and the results are associatively processed to localize the failure to a least replaceable unit. 544 Spring Joint Computer Conf., 1967 (4) The computer supplies instructions to the maintenance personnel. The radar is so complex that available maintenance personnel will be limited in their ability to diagnose failures or to take proper corrective action. (5) The computer services maintenance personnel messages to the computer. These include: • A request for special test so the maintenance man can locally adjust components or diagnose failures with test equipment. • A notice that a failed component has been replaced or adjusted. • A list of all components likely to fail in the next time period. e A list of all components that exceed a certain margin. (6) The computer assists the maintenance personnel in preventive maintenance by notification when timely replacement of com'ponents is required, Qr failure is imminent. (7) The computer records component failure and replacement information for reliability and logistics purposes. The current failure information is used to estimate the degradation of radar performance; this information is provided to the Maintenance Console and Operations Control Console. Display and control Although computer-controlled radars are capable of fully automatic operation, displays are necessary for the radar operator to monitor the system operation. In addition, controls must be available to provide manual control of the radar. In conventional radars the received signals can be displayed directly on a cathode ray tube because the beam is moved in a regular pattern. In an array radar the time-sharing of the beam among many functions requires that display and control be carried out through the computer. In dense target environments the computer distributes the information to several operators according to task and work load. Since computer-driven displays are largely general-purpose, the equipment can be designed or obtained before its precise method of use has been decided. Computer-driven displays can provide summarized or derived quantities which are much more useful than raw data. Examples of these quantities are: • Bearing angle • Impact point • Distance of closest approach • Radar cross-section The following display and control description illustrates the requirements of an array radar system. Operations control console The Operations Control Console has two functions: (1) to display sufficient information to keep the operator informed of the radar operational status and performance, and (2) to enable the operator to control the radar to its fullest extent, where desired, through a complete set of controls. Input and output signals, with the exception of the raw video displays, are via the computer. Operation is automatic, and the operator need not intervene unless he wants to. 1. Displays The displays include: • A-scope • Azimuth vs. elevation digital CRT display • Alphanumeric digital CRT display • Azimuth vs. range digital CRT display • Special purpose status indications • Medium speed printer The A-scope is used to present targets in a beam, but not necessarily in track, and can be manually switched to any beam. The A-scope is triggered by the computer, but the trigger can be modified in position and velocity from the console. The azimuth vs. elevation scope has characters displayed on it by the computer to show the location and status of tracks. The azimuth vs. range scope similarly has characters displayed on it by the computer to show the location and status of tracks, The alphanumeric scope is used to display operational data (for any target designated by the operator) such as: • Track status • Position, velocity • Target identity • Altitude • Distance to nearest object • Signal to noise ratio It also displays information, for the radar as a whole, such as: • Number of objects in track-while-scan • Number of objects in precision track • Per cent of traffic capability being used 2. Controls The Operations Control Console has the following controls: • Mode control (auto, trim, manual) • Cursor/light gun for each CRT display • Range and range rate trim, scale adjustment, and beam selector on Ascope Digital Systems For Array Radar • Function designator - designate primary track, delete track, change to track-while-scan, change to precision track • Keyboard - for typing control·messages to computer • Special controls - false alarm rate, noise sample control, steering angle controls, range control • Search boundaries in range, azimuth, elevation 3. Operation The radar system has three modes of operation: automatic, trim, and manual. In automatic, the operator can request information and alternate procedures, but has no direct control over the radar. For example, the operator could request to have displayed numerically the position, velocity, time of arrival, radar cross section, and orbital parameters of a target. Examples of other requests he could make are: • To see video on a particular track. • That a particular target be put in precision track. • That the false alarm threshold be changed. • That the search boundaries be changed. I n the trim mode the operator has all functions of automatic mode, and in addition can manually modify the steering of the beam and the range gates. This mode is used to let the operator assist the radar in abnormal situations. In the manual mode the operator assumes complete control and must supply all parameters to the radar. The computer protects the radar from damage by operator error. This mode is used for checkout, special test, and diagnosis offaults. The cursor or light gun allows the operator to designate targets for action or information. Monitoring console The Monitoring console has two functions: (I) to display overall system status and summary information to the maintenance supervisor, and (2) to allow the request of special diagnostic and test programs and information on the equipment status of the radar. 1. Display The Monitoring Console will display information concerning the transmitter, receiver, and video converter. It will consist of: • General purpose CRT • Keyboard • Medium speed printer A high speed printer will be available for printing large amounts of data. 545 2. Operation The operator may request the following displays on the CRT and/or printer by ;typing in the appropriate message on the keyboard. I n the following, "component" refers to the smallest testable unit. • Display in their proper spatial relation all transmitting or receiving antenna elements that are out of tolerance. • Display (list) anyone of the items in Table I I. In addition, the operator win be abie to request special radar tests and results via the keyboard. Table I I - Displays for equipment monitoring Display quantity 3 1 2 Video Transm Receiver converter Per cent of channels out First moment of outages Peak power (sensitivity) available Function outages Redundant components out Estimated angular accuracy Estimated statistical sidelobe level All failed or out-oftolerance components Signal path with poorest performance Component with least margin or adjustment All signal channels within X of failing All components within X of failing Histograms of component tolerances Histograms of channel tolerances Histogram of percent adjusting remaining All failed channels and components All components requiring manual adjustment All components at limit of automatic adjustment X X X X X X X (X) X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Logistics A large scale array radar system may have spare parts inventories of several thousand items. Many of 546 Spring Joint Computer Conf., 1967 these items have long lead times and require that the reordering point be determined as a function of the usage rate and required lead time. The computer has most of the data required to maintain spare parts inventory records from the monitoring and parts replacement information. Since the computer is rarely in a full-load condition, the reserve computing capacity can be used to maintain logistics information on a low priority basis at little extra cost. The automating of this function will reduce the manpower requirements and cost for maintenance. Functions The following logistic functions would be performed: • Maintain spare parts inventory. Issue reorder requests based on lead time and usage rate for each item. Maintain reliability records for failure rate, drive rate, frequency of, adjustment required, mean time to failure, and mean time to repair. Implementation In normal monitoring operation, all manual adustments, failures, and parts replacement information are recorded on magnetic tape. New supplies from the manufacturer or repair depot are recorded on punched cards, and this information, together with the monitoring data, is used to update the spare parts inventory periodically. Where applicable, drift rates are computed from monitoring information and used to modify the reorder point and to predict end-of-life failures. The statistical summaries on drift rate, time to failure, time to adjustment for each component and the system are also derived from the monitorIng data. Simulation Real time simulation of operational situations can be performed by the central computer. The simulation can be done with artificial data generated within the computer, or it can be done by replaying digitally recorded data from real missions. This replay capability tS very important in post mission analysis where considerably more information is recorded than can be displayed in real time. During the simulation, the displays and various other equipment are activated, depending on the purpose. Simulations which involve the displays are used to train operators and to maintain their proficiency in situations encountered infrequently. It also simulates malfunctions to exercise maintenance personnel. Simuiations aiso provide realistic data to check and evaluate parts of the system equipment and programs. Checkout and evaluation The computer can be very useful in the checkout and evaluation of each subsystem before it goes into the radar, and of the entire radar system once it is operational. Any complex piece of equipment requires a formal checkout procedure to verify its correct operation. If these checkout procedures 'are implemented on a computer during the manufacture of the equipment, then the diagnosis and iocation of faults can be done quickly. These checkout programs are very similar to the usual fault detection and diagnosis programs that are supplied to maintain equipment, and .can often be obtained for 'little additional cost. CONCLUSION The preceding paragraphs have presented the role of general purpose digital computers in array systems. The topics discussed were: • Advantages of digital computers • Data processor system configuration • Control of radar • Radar data processing • Radar equipment monitoring • Radar-computer interface • Computer support for display and control • Computer support of logistics • Simulation of system operation • Program organization • Checkout and evaluation assisted by computer Computers have proven themselves to be highly useful members of array radar systems in performing the tasks assigned to them. As the capability of digital data systems equipment and programming continues to increase, it is reasonable to expect that the role of computers in array radars wi1l continue to increase. DIAMAG: a multi-access system for on-line Algol programming by L. BaLLIET, , A. AUROUX,, and J. BELLINO , Institut de Mathematiques Appliquees, Universite de Grenoble Saint-Martin-d'Heres, France INTRODUCTION On..line programming On-line programming is characterized by a complete man-machine interaction at the level of program construction as well as at the level of program evaluation. In other words, there should not be any difference between syntactic evaluation and semantic evaluation in on-line programming. The detection and correction of syntactic errors are performed as the source program is read and analyzed (syntactic evaluation phase). The user can make changes, deletions, and/or additions to his program easily, since he is able to communicate with his program at the source language level. The detection and the correction of semantic errors, which entails execution, must also be performed in much the same way; that is, by the use of source program symbolic references for the designation of quantities at execution time. This possibility gives the programmer a direct communication with the program being evaluated. He should be able to • read the value of a variable (dynamic reading); • change the value of a variable (dynamic assignment); • stop and restart the execution (dynamic control), and • restart the execution at a given point (dynamic "go to"). Conversational compilation and execution Conversational compilation and program construction There are two basic ways of constructing programs. (1) Recursive construction: construction of a program in a single phase starting from the outer block and proceeding to the inner blocks. This is the usual way and, so to say, the only way of writing Algol programs when using batch processing systems. (2) Iterative construction: construction of a program in as many phases as there are elementary blocks in the program. Each block is constructed, compiled and evaluated independently. The whole program can be built up with these elementary blocks. With conversational systems this method seems to be of great importance, since separately constructed and compiled blocks may be shared by several users. Both methods should be made available to the users of a multi-access system which combines to a significant extent conversational and batch processing compilation as well as complete compatibility of programs in either mode. Conversational compilation is characterized by • the use of special commands to erase, change, insert statements within the program being constructed, and • the use of incremental techniques. Conversational execution and program evaluation The same principles apply to program evaluation. (1) Recursive evaluation: evaluation in a single phase. This is also the only way of evaluating programs in a batch processing environment. (2) Iterative evaluation: After a small block of program has been constructed, it can be evaluated independently provided that values be given to nonlocal quantities. The result of the evaluation, i.e. the new values of non-local quantities, can be used later on for the evaluation of larger blocks. Again, in conversational systems both methods should be available to give a greater flexibility to the programmers. Conversational execution is characterized by • the use of special commands to ask for or to transmit information to the program being evalu547 548 Spring Joint Computer Conf., 1967 ated as mentioned before; • the use of the source symbolic references to designate the quantities. The use of incremental techniques in conversational systems The need for incremental compilation, i.e. independent and separate compilation of each program statement, is apparent for conversational systems. Since a large part of the task consists in erasing old statements, changing old statements into new ones and inserting new statements, incremental compilation avoids complete recompilation of the program so far constructed each time a change is made, either freely by the programmer or required by the system after error detection. In this system, incremental compilation is used at two different levels: (1) Statement level for recursive program construction; (2) Block level for iterative program construction and access to a common set of already constructed programs. The reason for these two levels is the following: Admittedly, there is no difference between block and statement from a syntactic point of view, but a block can be considered as a self-sufficient piece of program but not an ordinary statement. The block inclusion mechanism is described later on. Incremental compilation at the statement level does not differ from similar methods for Fortranl and Algol. 2 The program structure is represented as a list structure which mirrors the logical sequencing of statements (as opposed to the physical sequencing in the computer storage). Incremental compilation at the block level proceeds as follows: Blocks already constructed are stored both in source and object forms in a liststructured area within the filing system. When one of these blocks is to be inserted within a block being constructed, there is no physical insertion (i.e. recopying) but rather insertion of pointers to the enclosed block. The object code for blocks has to be reentrant since it can be used by more than one program at a time. Incremental compilation of blocks is thus achieved through independent compilation of inner blocks using the following features: (a) Program library capabilities. Any elementary block of.a program can be compiled and stored in the file system for later use. Such a block of program consists of a source text and an object text. (b) References to non-local quantities. If a block is to be compiled independently, means should be provided for referencing identifiers declared outside this block. (c) Block nesting and equivalence of references. In the process of iterative construction, larger blocks have to be built using smaller blocks already constructed. If a smaller block using non-local identifiers is to be incorporated into a larger block within which the non-local identifiers of the smaller block are local, means should be provided to establish an equivalence of identifiers. Concurrent use of conversational and batch processing modes In a multi-access system, batch processing and conversational processing are not to be considered as exclusive of each other since these modes are in fact complementary and are to be used concurrently at various stages of program construction and evaluation. The system described here is based on two important ieatures: (1) availability of two different compilers and interpreters for Algol; (2) compatibility between batch processing and conversational compliation and execution. Once a program has been constructed and debugged through conversational techniques, it has to be compiled and executed using batch processing techniques if it is to be run a number of times. However, the compatibility between the two processing modes is one-way: conversational toward batch, i.e. if the conversationai form of a program (both source and object forms) has been destroyed, it cannot be reconstructed from the batch processing form. The transformation mechanism is described below. System description and organization Programming language and command language The programming language used is Algol 60, augmented by a number of special instructions which constitute the command language itself. The command language is for execution of operations on quantities of the type file. A file is a sequence of elements of the four following types: bits, characters, machine-words, lines. (A line is a grouping in a given format of one or more of the following types: bit, character, machine-word.) In general, identifiers are used to designate files, and pointers (integer numbers), to indicate elements within these files. There are three basic operations on files: (1) Insertion-insert (element, pointer, file) ~hich allows insertion within "file" at the point defined by "pointer" of another file designated by "element." (2) Extraction - extract (pointer 1, pointer 2, file) for extracting within "file" the piece of file between "pointer 1" and "pointer 2." Diamag: A Multi-Access System For On-Line Algol Programming (3) Concatenation - concatenate (file 1, file 2) for the concatenation of the two files: "file 1" and "file 2." Utilization modes There are three modes (or levels) of utilization: • system mode, • compiler mode (with two submodes: conversational and batch), and • interpreter mode (with two submodes: program and desk calculator). The command language is defined syntactically as follows (EOC stands for End Of Command delimiter): : := I : :=begin EOC COMMON «password» EOC EOC end EOC : :=begin EOC NAME «user name>, Eoe end EOC : := I EOe ::=FILE «file-name» EOC I COMMON FILE «filename» EOe : := I EOC : := I I Access to the system is made through the begin command (log on command), and disconnection from the system, through the end command (log off command). The NAME command creates an activity labelled with the user's name. During an activity, a user can perform a sequence of jobs, each of them labelled with a which characterizes a particular job. commands, the system mode has a number of filing commands described as follows: ::= CONCAT «file-name» I INSERT «pointer>, , , , , , , , ), OUTFILE «file name list») Changes in common library files can only be made through a library activity, whereas normal operations (LIST, EXTRACT, COpy, EXEC) are carried out through user activity. The file-mode specification gives the utilization mode allowed for this file: RO (Read Only) and WR (Write and Read). The three commands ERASE, CONCAT and INSERT cannot be used with read only files as first operand. Within a library activity, only filing commands (except EXEC) can be used. The filing commands are for execution of elementary operations on files with the following rules: For unary operations: The operand and the result file have the same designation, defined as the filename of the corresponding job description. The five commands for unary operations are: LIST ERASE System mode and filing commands This mode has the highest hierarchy; that is, entry and exit from the Multi-Access System always take place at this level. In addition to the begin, end, NAME and FILE 549 STORE Listing of the part of the operand file between and . Deleting of the part of the operand file between and . The information which follows this command is considered as a file and stored in the system with the designation defined for the operand. 550 ~pring Joint Computer Conf., 1967 ESTORE Flags the end of the file which follows the STORE command. DELETE Deletes the operand file from the file system. The READ (WRiTE) operation permits direct input (output) of a file from (to) external media. F or binary operations: The first operand file and the result file have the same designation, defined as the file-name of the corresponding job description, except for the EXTRACT and COpy commands. The second operand file is defined as the last parameter of the related command. The commands for binary operations are: CON CAT The first operand file is concatenated with the parameter file. The parameter file is unchanged and the first operand fiie is modified. INSERT Inserts inside the first operand fiie, the parameter file from the point defined by . The parameter file is unchanged and the first operand file is modified. EXTRACT Extracts from the first operand file the part between and which becomes the parameter file. COpy A particular case of the EXTRACT command which allows duplication of the first operand file designated by which takes as name the parameter file. The following command has a variable number of operands: EXEC Allows the execution of a program whose name is defined in the corresponding job description and using as input files and output files the associated file-name lists. Compiler mode and compiling commands Compiling commands are defined as follows: ::= COMPILE «language name>, , ::= : I , : In the compiler mode, there are two submodes: • Batch processing mode • Conversational mode (a) Batch processing mode - The command will COMPILE «language name>, and written in the language defined by . The resuit of the compilation (object program) is the file defined in the corresponding job description. The three languages Algol B ("B" for Batch), Cobol and Fortran IV are available in the batch processing mode. The end of a compilation must be denoted by the ENDCOMP command. (b) Conversational mode - There is only one language, Algol C ("C" for Conversational), available in conversational mode. The source program is to be written just after the COMPILE command. I t will be stored in the file designated in the CO MPILE command. The object program is the file defined in the corresponding job description. The conversational· Algol compiler is organized as follows: The syntactic evaluation is performed with a sequential algorithm using a single stack (syntactic stack) and the object text is generated at the same time. Besides the source text and object text files, the following files are used during the compilation: • syntactic stack, • working storage for compiler state, and • symbolic references table. All the references to the symbolic quantities are made indirectly through a symbolic references table built for each block level. At the closing of a block, the part of the symbolic references table corresponding to this level is transferred into the object program. In this mode the compilation can be interrupted at any time. It is possible to save the current state of the compiler with the SAVECOMP command which puts away the files associated with the compilation. This state can be restored through the RESCO ~1 P command. Syntactic numbering and incremental compliation of statements In order to facilitate correction, a syntactic numbering of statements is perlormed while the program is being typed at the termina1. As the source program Diamag: A ~.1ulti-i\.ccess System For On-Line l~..lgol Programming is read, character by character, a syntactic analysis is carried out at the statement. level so as to determine the correct syntactic number of each statement. Since a statement in Algol is a recursively defined concept, this syntactic number is not a single integer but a sequence of integers separated by periods which reflects the structure of the statement. For instance, in the following program syntactic numbers are written in front of the corresponding statements. 1 begin 1.1 A:=B+C; 1.2 begin 1.2.1 X=Y+Z; 1.2.2 if I ::= INTER (INFILE «file-name list», OUTFILE «filename list») I INITIAL «namevalue pair list» I VALUE «variable list» I := I 552 Spring Joint Computer Conf., 1967 STOP I START I go to
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19 Producer : Adobe Acrobat 9.0 Paper Capture Plug-in Modify Date : 2008:11:17 12:49:31-08:00 Create Date : 2008:11:17 12:49:31-08:00 Metadata Date : 2008:11:17 12:49:31-08:00 Format : application/pdf Document ID : uuid:d5460bac-49c6-41f6-95b5-87ad701f35c0 Instance ID : uuid:7ad05cc3-2a31-4da9-831f-33e0c6a78947 Page Layout : SinglePage Page Mode : UseOutlines Page Count : 809EXIF Metadata provided by EXIF.tools