^L I B R.AR.Y OF THE UNIVERSITY or ILLINOIS 510.84 no. 140-147 copoS CENTRAL CrRCULATION BOOKSTACKS The person charging this material is re- sponsible for its renewal or its return to the library from which it was borrowed on or before the Latest Date stamped below. You may be charged a minimum fee of $75.00 for each lost book. Tfieft, mutilation, and underlining of books are reasons for disciplinary action and may result In dismissal from the University. TO RENEW CALL TELEPHONE CENTER, 333-8400 UNIVERSITY OF ILLINOIS LIBRARY AT URBANA-CHAMPAIGN OCT 5 NOV 2 139 When renewing by phone, write new due date below previous due date. L162 Digitized by the Internet Archive in 2013 http://archive.org/details/proposalformulti140gill 5/0 84- /yy REPORT NO. 1^0 PROPOSAL FOR A MULTIPLE CONSOLE SYSTEM FOR ILLIAC II by Donald B. Gillies July 12, 1963 This work was supported in part by the Atomic Energy Commission under Contract No. At(11-1)-415 \q(t' //^ Eresent Capa.bility of Illla.c II ^gf)^' ^ 1.1 The Central Processing Unit During the past decade, the effective speed of large-scale electronic digital computers has increased "by about two orders of magnitude. Illia.c II is in the forefront of such computers. Toeing 100 tim.es as fast as Illiac I or four times as fast as an IBM 7090. Since the speed of the main random-access memories has not increased by a factor 100, considerable logical complexity has gone into minimxizing the number of references to the main memory, and over- lapping references for future orders and future operands and past results. This has been successful in the sense that for typical programs, one core memory operating at 1.8 [asec cycle time is not quite saturated- -the time for the calculation is approximately equal to trie time for the floating point arithjnetic involved, and changes by perhaps 5^ when the core m.emory cycle time is increased to 2.3 M-sec. A second core memory will be installed in the near future, and then even memory locations will be situated in one core mem.ory and odd memory locations will be in the other. This will make a slight difference to the speed at which programs are run since closely-spaced references to alternate memories will be obeyed faster. More im_portant to system, performance will be the fact that the pair of memories will be idle more than 50^ of the time, and can be used at a very high rate (up to 500,000 references per second) for other time -shared activities without significantly reducing the running time of the arithmetic calculation in progress. 1.2 Interplay Since the speed of input-output and back-up memory equipment has also not increased in speed to a corresponding degree, it has become necessary to operate as many such devices as possible concurrent with each other and with arithmetic calculation. Interplay time shares the m.emory between Advanced Control (responsible for the main calculation) and up to 32 concurrently operating data channels, 12 of which have already been assigned. These include a 65 K, 7'8M-sec/word drum, a lUoi, four 729 mk . VI tape channels, two I3OI disc file channels, and four -1- channels connecting Illlac II to Illiac III. The drum and 1^01 channels have already been built^ and most of these channels should be built and operating by the end of the year. When this equipment is all installed, the central computer will have fast access to about 12 million words on disc files plus the contents of six magnetic tape units on-line to Illiac II. (A further four magnetic tape units are normally on-line to the l401 a,nd are less immediately useful to Illiac II although two of these are machine switchable between the two computers and the other two can communicate via the lUoi direct connection.) 1.3 Interrupt and Special Registers Since input, computation, and output, are activities which occur in different proportions in different problems (jobs) and occur sequentially in time for any one problem, a.n efficient time-shared system must handle the output from past problems and the input for future problems concurrent with present calculation. That is, a system program must exist which is entered for brief periods interrupting the calculation in progress, and must have reserved to it a portion of the core memory and part of the hierarchy of back-up memories and input-output devices,, Data resident in these areas of the several memories must be protected absolutely from inadvertent references by the running program, and, so far as possible, should also be protected from the effects of computer malfunctions. The scheduling of transfers between the core memory and the hierarchy of back-up memories is a. formidable problem for at least the following reasons: (a) The assignment of magnetic tape driA^es and of space on drums and disc files must be made at run time, and sometimes during the run itself. It cannot be made in all cases at compile timie. (b) The most efficient order of giving the sequences of block transfer commands to drums, disc files, and magnetic tape units, which may be in different positions of rotation, track switching or rewind, is an extremely complicated problem which should not be made the concern of most programmers , -2- (c) When a device such as a magnetic tape unit makes a transfer error, this is of concern not only to the programmer who wishes the transfer repeated until it is successful or until it becomes clear that the error is uncorrectable, but is the concern also of the operating system which should log a,ll errors and at times decide that som.e device must be taken out of service and repaired. (d) In theory, a program can give different answers on different runs if data is referred to before a block transfer is complete. The timie for the completion of a block transfer depends on the instantaneous position of the drum or disc file at the time the transfer command is giA^en, and will vary from, run to run. For these reasons, a fairly elaborate system of protection and interruption equipment has been Installed in Illiac II and will now be briefly described, (1) A console switch, called Disable Interrupt, may be thrown to nullify the effect of protection equipmient. This is of use for a few of the very largest programs which may be run, for which the use of memories has been hand-optim.ized. It is also useful for diagnostics and for checking out system programs. (2) The 8192 -word core memory is divided into 32 blocks of 256 words each. Any combination of these blocks mxay be locked out for normal use, but remain available to Interplay and to the system program which opera.tes in the Interrupt miode only. Reference from the running prograjn to a locked-out block causes read only (no write) and a.n Interrupt immedia.tely following the illegal memory reference, A block is locked out by the system if it contains system program, if it is involved in a current block transfer, or if it is part of another program, in a m.ulti- programming situation. -3- (3) Input-output and tlock transfer commands^ and orders -which lock out or unlock blocks of core memory are illegal and null except in the Interrupt mode. If any of these orders is attempted by the running program.^ an iimnediate interrupt occurs. (k) A group of 6k 13-blt special registers accessible to the system program in the Interrupt mode is used for such purposes as the following s (a) Giving commands and displaying status info3rmation for the Interplay channels. (b) Showing the cause (or causes) of Program Interruption such as timed interrupt, completion of a block trans fer^ an Illegal order, an illegal memory reference, a memory malfunction, an Interplay device malfunction, console tape reader, punch, typewriter or switch requesting attention, or imminent power failure. (c) A real-time clock counting at 60 cycles per second and a further register and coincidence unit so interruption can be made to occur at any pre- as signed future tim,eo (d) A mask register so that many of the causes of program interruption can be made optional under the control of the system program. (e) Information regarding the position in memory and type of the last order, obeyed to simplify the return from Interrupt and the de termination of the cause of the interruption. (f) Provision for four or more two-way typewriters to be operated concurrently with everything else, but with an interruption between each character input or output <, -k. In summary, Illiac II is a very high-speed computer with large hack-up memory, a powerful system for information transfer concurrent with arithmetic using the main core m.emory as a buffer, and a very general system of memory and input-output protection with timed interrupt, error ala,rms, and provision already for a small number of remote typewriters. l,k Further Equipm.ent Required From the viewpoint of multiple console operation regarded as a general mult i -programming environment with a premium on short response time as well as system efficiency, Illiac II is ideal in all but three respects, each of which can and should be remedied. (1) It is necessary to design one or more types of remxote console and a commiunication and switching network in order to connect these to the computer, preferably many consoles per Interplay channel . (2) During the running of a modera.te-sized problem, its program will enter and leave the core memory a number of times, and since such transfers will generally be done concurrently with other calculation, the program will normally occupy physically different locations in core memory in successive intervals of computing time ("quanta") assigned to that program. Since programs can modify themselves in memory, dynamic reassignment of addresses cannot be done, in general, by changing the program itself unless all addressing is Indirect. A much more efficient method of address reassignment is to change the significance of the block n-umber (the first five bits of each Advanced Control core memory address) on the way to core memory or to Interplay, It will be shown that this has a number of other advantages besides this one. -5- (3) While an 8l92-'W"ord core memory is adequate to handle one program and a minimum, part of the system program^ provided that large programs refer to back-up mem.ories in an efficient manner, it will be shown that it is very definitely not adequate for a multiple console operation. A way will be described in which a miuch larger core memory (32 K recommended, 65 K possible inside the order code) can be installed and used efficiently. 1.5 Status of Programming An efficient m.ultiple console operating system is as much a system programming (or "software") problem, as it is a hardware problem. Effort presently under way in the system program area can be readily adapted to multiple console operation. At present a very general assembly program is written and nearly checked out, and input-output conversion routines and Interplay time-sharing routines and the first version of a monitor routine are nearing completion. Planning of an Algol compiler is nearly complete and the actual programming is about to begin. It is planned to have a Fortran -to -Algol translator available at about the same time as the Algol eom.piler. The great debate over the relative miorits of Algol and Fortran need not be resolved here. It is clear that an ideal computer installation should have both compilers (and others besides as time and effort permit). Since Algol is the more general language, it is a relatively easy m.atter to write a Fortran-to -Algol translator, and nearly Impossible to go the other way, so the aim of having both compilers available at the earliest possible date is best served by first t/Triting an Algol translator. While it may m.ake a good deal of sense for an industrial installation to standardize on one compiler or the other, a university comiputing laboratory has a responsibility to its users to attempt to provide, where conveniently possible, programming aids similar to those they may have used elsewhere, and it has a, responsibility to its students to provide alternative programm.ing systems. -6- 2. The Console Problem 2.1 Preliminary Remarks on Consoles Computer use from remote consoles is now in its infancy^ and when implemented on a large scale will have the effect of enlarging the class of users and the ni;imber of jobs per day (hence decreasing the a,verage size of each job) and of increasing the class of problem.s put on the computer o Since a university has a very diverse class of users^, it is expected that the cla.ss of problems solved will increase rapidly provided that a sufficient number of consoles is provided o There is^ at present^ an immediate need for the order of 50 such consoles just to handle the students who are learning to program or who are using the computer to do their homework. For these students^ and regular users who are code-checking scientific problems^ a console language consisting of the user's choice of Algol or Fortran, supplemented by an editing language with which the user can request changes in his program or dumps at either the source language or machine language level_j will be sufficient for the immediate future. Such two-wa,y communication between the user and the computer can be implem.ented quite satisfactorily with a simple typexvriter used by both the computer and the user^ provided: (1) Users programs in a partially or fully checked out state are held on the disc files for weeks or months. (2) Programs originating at consoles ma.y use the lUoi for large printing or card input-output jobs, and may use one or more magnetic tapes for intermediate storage and also long-term, storage. Since the number of miagnetic tapes is limited and tape units are intrinsically less reliable than disc files, the use of files should be encours^ged by provision of substantial areas of temporary storage on disc files, and the use of magnetic tapes should be discouraged by penalties either in system response tim^e or in the policy of charging for computer use. It is proposed that the disc files should be m,odified experimentally to read or write five heads at once instead of just one. If this m.odif ication is successful, the disc files will present a further advantage to the user, namely a word rate of 20 \j,sec as well as a maximi;im time of I50 milli- seconds for head motion. -7- (3) Provision is made for the typist to interrupt the computer ■while it is printing information he no longer requires, and for the computer to interrupt the typist at any time. The first objective in extending Illiac II to multiple console operation is to adapt a teletypewriter, flexowrlter or electric type't»'riter in- such a way that the add-on cost per additional typewriter on-line is as low as possible, and preferably under $2,000, because there is a clear need for a very large number of such devices. As distinct from the above limited objective, a longer-term requirement for information retrieval, automated design, teaching, etc, em.ploying graphical input-output is best achieved by designing and installing a few such consoles on an experimental basis and studying specific problems for which they can be used. 2o2 Estimation of the Number of Consoles Required The n-omber of consoles required and the size of the core mem-ory required to hold the programs running or in preparation depend strongly on the nianber of users and the job mix, each of which will be affected by the existence of consoles. One could proceed in either of two \m.yst Ao Build a limited number (say ten) of such consoles and study their use before proceeding to a larger installation „ Bo Go directly to a large installation, saving time and realizing economies on unit costo It will be shown that a reasonable estimate of the number of consoles required is 100 units, so there is good reason to adopt plan B above » In the future, the normal use of large-scale computers such as Illia.c II will be via remote consoles. Arguffi,ents in their favor are, in our view, conclusive „ At the present tim-e no significant advantage is to be gained by a delay in going to a large installation » At the present time^ the Digital Computer La.boratory staff teach computer programming each semester to 350 sophomore engineering students. This number ■will soon increase to about 500 „ Such students remain undergraduates for tvo additional years, during which time homework is assigned requiring use the the computer. It will be characteristic of console operation, particularly by students, that programs will be tried with superficial checking and numerous typing errors . The system will experience user loads peaking a. day or two before each problem is due. On the other hand, consoles are a nearly ideal teaching aid for prograjmning; their successful introduction will allow more problems to be assigned per course. In addition, instructors can assign more difficult problems. (The present system, using an IBM "JO^k computer has a class problem turn-around time which is rarely less than 2k hours. ¥e shall show that this turn-around time can probably be reduced to a few seconds on Illiac II.) In this llght^ the following estimates have been m.ade for utilization by engineering student undergraduates; (a) number of students taking 13 -week programming course = ^00 (b) number of problems per semester a,verage number of times console used per program average time at console num.ber of upper classm.en who have taken the course number of problems per semester average number of console uses per program average time at console -. 10 -- 5 1/2 hour =2000 = h -- 3 1/2 hour Total n-Lm-iber of console hours in 13-week semester = 2^,500 Number of consoles required (assuirdng each operates io of a ^0-hour week = ^7 -9" It should "be noted that the a,bove does not Include any estimate of time lost due to computer repairs^ console repairs^ console idleness (particularly if the consoles exist at several remote places so some groups of consoles might ha,ve user queues while others were idle)^ nor does it include any provision for peak load problems or for any class of user other than engineering undergraduates. An independent estimate can be obtained by ass'jming that console use am.ourits to the equivalent of a three -hour laboratory session once a week for student programmers, and once every four weeks for graduates of the prograrmning course. In this case, the num-ber of consoles required would be 75 « Considering the needs of other undergraduates, graduate students and faculty, the 100 consoles is a, minimum requirement, particularly if the unit price is so low tha^t one can tolerate a 70^ utilization fa.ctor in order that the average user will be able to get access to a free console nearly any time he chooses „ A further advantage of building with a margin of safe":.y is that it will not generally be necessary for the system program to require a user to vaca,te a console after some arbitrary period of time has elapsed. This is an example of the sort of a.rbltrary restriction which can be avoided in a sufficiently accessible multiple console operation, but which cannot at present be avoided with just one input -output cha^nnel to the com,puter, paternalistlcally guarded. by the system program, 2,3 Input-Output Capability of 100 Consoles Since it has been observed at several installations tnat two 1401 printers approximately satisfy the output requirements of a 7090, it is interesting to compare the combined output rate of 100 typevnr-iters with one 1401, The output rate will be 10 to 15 characters per second for each typewr-iter or 60,000 to 90,000 characters per minute, compared to 79^200 characters per minute for a 1^01, Since a good deal of production as well as cod.e checking will be initiated from consoles, an average output rate of five characters per console per second is probably a reasonable estimate, which am.ount3 to less than half of the printing rate of one 1401. -10- It is pro'ba.ble that a lot of data will be entered directly from consoles Instead of via punched cards^ and in this case one might estimate the storage requirements for data entered from 25 consoles in an eight-hour day^, assuming a typing rate of five characters per second and assuming that characters are packed at eight per 52 -hit computer word. This amounts to 25 x 25 x 3600 x 8 4- 8 = ^50^000 words, or 3.75'^ of the disc file capacity. Much of this data would be processed and consumed during the day, and the rest could be added to users magnetic ta,pes on a daily or perhaps even a weekly basis, 2.k Disc File Maintenance Disc file maintenance is a fairly severe problem, even with 12 million words on file. Tentatively, suppose that 50^ of the file space, or six million words, is assigned as a temporary storage area for problems which are active in the sense that their owners are now sitting at consoles. Of the remaining six million words, three million might be assigned for programs checked out or partially checked out, and three million for systemi use (system programs, indexes, computer log, buffer areas for input-output and for multiprogramjning, etc.). The three million words for program storage might be allocated 1000 words to each of 1000 users, 10,000 words to each of 100 users, and 100,000 words to each of 10 users, with activity at least once per week required from, the 100,000 word users and from undergra.dua.te students. Inactive programs would be stored on magnetic tape for a period of two years and could be reactivated from a console since the system program could request the operator to mount the correct tape. Once a week the contents of the disc files should be copied onto magnetic tape, and during the following week a magnetic tape record should be made of the combined input from all consoles in case a computer m.alf unction caused disc file inform.ation to be lost. There would appear to be ample long-term disc file storage space for programs, but not for data. An interesting possibility is that when a user vacates a console for the day, his data is stored on part of a magnetic tape, so the system shares this magnetic tape with several users. This could apply to problems small enough that the calculations can be carried out using the file alone, i,e., having an upper limit on the number of data of perhaps 500,000 or a million words. ■11- ^^/V/.f^^ 3. Input -Output From Multiple Consoles 3.1 Input Buffering and Rearrangement In order to estimate core memory requirements, it is necessary to describe in detail how the system might operate. Each console typewriter is provided with a one -character buffer, together with indicators telling whether this character has not yet been transmitted to the computer or has not yet been printed. It is sometimes argued that more buffering, such as full line at a time, is preferable because an erroneous line can be cancelled before it is sent to the computer, and because fewer computer interrupts are necessary. Since lines are set off by carriage returns, an erase symbol preceding the carriage return can cause the program which scans the list of characters to ignore the whole line, so there is no advantage to be gained by full-line buffering for the correction of typing errors. Illiac II will not need to interrupt to process partial messages from consoles --as will be shown, a single Interplay channel can handle the collective input from all consoles simultaneously, and a. second Interplay channel can distribute the output to all consoles simultaneously. Studies are presently under way to determine the most satisfactory way of communicating with a multiplicity of consoles as much as a, few miles a,way from Illiac II. One advantage enjoyed by the University of Illinois is that it owns all the land between the computer and the potential console sites, and it also owns the electrical power system serving all buildings on campus. Therefore, running direct cables or broadcasting over the power system are alternatives to leased telephone wires or microwave links to specific buildings. In any case, the switching network will have the effect of checking each console 10 or 1^ times per second- -at the fastest typing rate --and sending or receiving a character or doing nothing at each console. Characters sent from consoles are encoded, two per word, in the order received (13 bits for the serial n\;miber of the console, and 13 bits permitted for the character) and stored in consecutive words in the core memory by the Interplay console -input channel. Similarly, the Interplay console - output channel takes consecutive words from a block in core memory and sends characters to be printed to the indicated consoles. ■12- A timed interrupt^ roughly once per second^ is used to halt the input "block transfer and initiate another input tra,nsfer to a second core memory input block, (if the input "buffer block became full before one second had elapsed, the interrupt would occur at that earlier time,) A single scan of the list of half- words input is used to chain together all characters from, the same console --the console name is replaced by the address in the list of the next character from the sajT-e console, and the resulting interleaved set of lists is stored, one 256-word block at a time, on dr^jm or disc file. A second scan is made by order of consoles over the newly arrived characters to determine whether any console now requires attention. If so, the various blocks containing characters input fromi that console are brought into core memory one by one and the chara.cters are extracted and inserted into a consecutively ordered list in preparation for compilation or processing. As the common character list becomes more and more depleted, a point is rea.ched (indicated by the total count of remaining characters) at which a "garbage collector" should scan the list, deleting characters already processed, and produce a more comipact list. Similarly, if the tally by consoles of the number of characters found indicates that several consoles have an abnormally large number of c'haracters each (characteristic of data input), the garbage collector can extract the data from these consoles and store it in an auxiliary listo The file operations just described are fairly complex but are not time- consuming. The total computing time should average no more than 100 [j,sec per character, and the rate of character input might average two per console per second, so about 2.$ of computer time would be spent on this activity, which is timte-shared on an interrupt basis with whatever program, or program.s are currently rur^ning. One advantage of this very frequent updating is that the system recognizes within one second when a console requires attention and prepares to give it attention. The alternative of providing a. buffer computer does not seem, to offer any particuls.r advantages --the same operations including the two types of garbage collection described above would be necessary for a buffer computer, and for a 100 console operation the data storage would be expected to exceed even a 32 K core memory, so the buffer computer would still have to resort to the use of back-up memory . ■13- The techniques for distributing output to the various consoles also reflects the desire to begin printing on a console within about one second of the output data becoming available. Assume that on the average 50 consoles are printing results at any one time and have an average backlog of two printed pages at 3600 characters per page. Note that this is a time average, so a console receiving a very small print -out, such as a list of format errors detected by the compiler, would be in the output phase a very small percentage of the time, and so would have only a slight effect upon the above average. The total backlog would be about 360,000 characters or from ^5^000 to 90^000 words, depending on whether they were packed eight or four per word. These would require a minimum of 180 or 360 blocks of storage, preferably on the disc file. Once every 30 seconds, about 60 of these blocks would be referred to in order to collect together the approximately 15,000 characters to be printed during the next 30 -second time inter^/al. Using a six -block buffer area in core memory and a 32 -block buffer area on the drum, these characters can be rearranged into 32 blocks of characters, four per word, in console order (successive quarter-words are either empty or refer to successive consoles). A total of 6k dr\im block transfers would be required. During r^he 30 seconds required to print these blocks via the Interplay console output channel, some of the programs would produce output dest-ined to consoles not yet printing, and that portion of the output which could be printed during the remainder of the 30-second time Interval would be detached and held in the core m.em.ory insT^ead of being sent to the disc file. Prior to each console- output block transfer comjnand, the output block would be updated by Insertion of cnaracters for these newly actlA/e consoles. Since the format of the output block leaves an empty space for each inactive console, new characters can be Inserted directly in these spaces, and no rearrangement of other characters in the block is needed. If a two-block (512 word) cere memory area were reserved for these new characters, t:hen a minimum of seven or an average of 30 consoles could start printing during a 30-second time interval with a delay of, at most, one second in each case. .Ik. The output activities descriloed above are time -shared with the running program on an interrupt basis, and would probably require about 30 |isec processing time per character printed or about 1.5^ of the total computing time. Some programs might develop a printing backlog much in excess of two pages, and in this case the excess would be stored in an overflow file, and the system would urge the user to take his output on the 1^01 printer or reduce its amount. To reduce the amount of core memory space required, the activities of garbage collection, output preparation once every 30 seconds, and collection of the input from a console requiring attention, can be made mutually exclusive in tijne--that is, at most one of these activities may be assumed to be taking place at any instant of time. We estimate the core memory requirements for the activities so far described? (1) (2) (3) (^) (5) (6) (7) (8) System programs Console input buffer area Console output buffer area List of newly arrived characters for printing 512 Status Information for all consoles Working space for garbage collection, etc. Double buffer blocks for each of four magnetic tape channels Single buffer- blocks for each of four Illiac III channels Total : 4096 words 768 words 512 words 512 words 102i^ words 2048 words 2048 words 1024 words 12,032 words ■15- To this total must be added memory space for the program currently active and either the last program obeyed or the next program to be obeyed^, each assumed to be of maxiiTium size, namely 8192 core memory words each. This brings the core memory required to 28, ^l6 words or just under 32 K. ThuS;, efficient multiple console operation requires that the core m_emory be extended to 32 K. Since programs wxdtten by compilers are more lengthy than hand-written ones, the 8192 word estimate is a reasonable one. The problem of addressing a 32 K core memory using a 13-bit address can be solved in the following way: The first five bits of the address represent 7 a block number in core memory and a 32 K memory has 2 such blocks. Whenever an address is sent to Interplay or core memory, its block number is replaced by a 7"'^i't block number--the contents of one of 32 7-bit registers called Block Address Registers. The order FBF (free block flipflop) will have the effect of copying the rightmost seven digits of the address into the Block Address Register defined by the leftmost five digits of the address, as well as unlocking the block by clearing a flipflop in the Block Checker, The introduction of this equipment will have the following consequences: (1) Interplay can perform block transfers to all parts of the 32 K memory at any time. (2) For large programs, only one block of memory needs to be locked out to protect the system. Other protected blocks are accessible after Interrupt by the use of the FBF order. (3) The effective memory useable by a single running program can easily exceed 8192 words, because results being transferred to back-up m.emory, and future data coming in from back-up m-emory need not occupy space among the progranmier' s active blocks. A memory block becomes active when a Block Address Register is set equal to that block number . ■16- (k) A program may be brought in to any available set of memory blocks^ and subsequently executed as if it occupied consecutive memory locations beginning^ say^ witli location zero. (5) The programmer is never concerned with the addressing of additional memory- -most of it is used for Interplay transfers by the system. If he has previously initiated a block transfer^ giving as the address one of his blocks, he may then request a swap, if the block transfer is com.pleted. Example ; 1. Give input transfer request for block 7^5 (System starts transfer to block ^3)<. 2. Compute with previous contents of block #5. 3. Give output transfer request for results in block 7^5 • This causes block #5 "to become locked out, k. Request input swap of block #5» System checks and if the transfer into block #93 is complete, it sets #5 Block Addr-ess Register equal to 93- The programmer is unaware of the number "93." (6) If a 65 K core m.emory were required, the Block Address Registers could be extended to eight bits each. -17- k. Priority Assignment and Time-Sharing System handling of very large programs -will depend strongly on whether the proposed speed-up of the disc file transfer rate to 20 [isec per word instead of 100 fisec per word is successful. It is proposed that the maximum area in core memory and drum- assigned to the running of any one program in this time-shared mode be 8 K arid 32 K respectively;, i.e.; a total of kO K words. At 20 |j.sec per word; this would require .8 seconds to transfer to or from the disc file. In that case^ the following priority system is proposed. (1) Programs initiated by people who have now vacated their consoles have priority equal to production problems coming in from the l^^Ol. These are run on a first-in^ first-out basis at those times when no console activity is called for. (2) Console programs with a backlog of 30 minutes of printing already become inactive until the backlog has dropped to five minutes . (3) Console prograrn.s with under 10 K words of core and drum- storage are run on a round-robin basis with l/2 -second quanta , {k) Console programs with 10 to 20 K words of core and drum storage are run for one second every second time round. (5) Console programs with 20 to ^0 K words of core and drum storage are run for two seconds every fourth timie round. (6) Consoles requiring attention are given top priority to begin unlimited compilation followed by up to l/2 second of computation. -18- The compiler should be written in such a way that is is fast at compilation and need not recompile the whole program when a change is made in one statement in the source language. In this case, most programs will be compiled once (an operation which might take several seconds for a large program) and updated very rapidly as corrections are inserted. The reason for the long time (1/2 second) allowed for initial calculation is to dispose of as many short problems as possible and give turn-around time for such problems of about five seconds unless there is a queue of consoles each requiring full compilation. Idle time can be reduced if round-robin ordering is not strictly adhered to --particularly if three or four programs, each under 1000 words are held on the drum, and one of these is run whenever the machine would otherwise be idle . In the discussion so far, it has been shown that if the core memory size is increased to 32 K, multiple console operation is feasible even for large-sized problems, and if the proposed disc file speed-up is successful, then nearly all processing can be carried out using core memory, drum, and disc files only-- magnetic tape units would be used primarily for input -output and long-term storage of data. If it is not feasible to speed up the disc files, then the background system activity can still be handled in a highly efficient manner, but the data rates for input -output to core and drum memories for the last and next problems would need to be augm.ented by using one or two magnetic tape channels in addition to the disc file, with two tape units each, to swap problems requiring 5OOO or more words of core and drum„ In this case, the unit calculation tim_e for these problems would increase to around four seconds each eighth time round the round- robin unless the job mix permitted a number of small problems to be interspersed between these larger ones . It should be noted that 32 K words on the very high-speed drum have been reserved for system activities. These include storage for much of the system programs, recent data input from consoles, the compiler, the editing language interpreter and its associated operating routines, and some general buffer storage. -19- A ^096 word area in core memory can be loaded from the druim in .035 seconds ;, so small problems such as very simple requests from, consoles can be disposed of in a time very m.uch less than the l/2 second of calculation normally allocated to a console requiring attention^ arid nearly all of this tim.e is overlapped with the program currently running. Illiac II has a 52 -bit word and holds from two to four instructions per word^ so a unit of system, program occupies a relatively sm.all amount of mem_ory space a.nd can be moved in rapidly from the drum when required. Since we have allocated a full 8192 words to buffer the next job to be done^, if the next job is a system, activity like compilation^ the input-output time to the core miemory is input only - -it is not necessary to copy the program back onto drum, after it is done^, since a copy still exists there, 5o Conclusions There exists an urgent need for 100 consoles connected to Illiac II » These should appear to the user as two-way type"writers with a m.inim.um of special features^ and can be used to input Algol and Fortran programs as well as machine language programs^ and to alter and debug these programiS using an editing language to communicate with the operating system, » The present system of back-up mem.ories is adequate for this task regardless of problem mix^ but could be further imiproved by a disc file speed-up o The core mem„ory must l-e extended to 32 K words, and these words can be addressed effectively using a system of variable block names defined by Block Address Registers. A brief survey has been given of the system^ prograjnming problems, together with suggested ways of solving som.e of these. It is important to reason early decisions on the detailed properties of these consoles, establish a time-table, and devote very considerable system programming effort to these problemiS as soon as possible. -20" m 2 1969