|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 80768 (0x13b80) Types: TextFile Names: »D12«
└─⟦53be6501e⟧ Bits:30005867/disk02.imd Dokumenter (RCSL m.m.) └─⟦this⟧ »D12«
RC 8000 System Architecture Third Edition A/S REGNECENTRALEN April 1979 Information Department RCSL 42-i 1221\f F_ Tecnical Editor: Inge Borch Author: Henning Christensen Text Editor: David McLeod KEYWORDS: RC 8000, basic hardware structure, basic software structure, operating systems, programming languages, application programs, typical user systems. ABSTRACT:This manual describes the structure of the RC 8000 System, and gives an outline of some of the possible applications in data processing and data communications systems. Reservation Copyright A/S Regnecentralen, 1979 Printed by A/S Regnecentralen, Copenhagen\f Table of Contents 1 INTRODUCTIONPage 5 2 RC 8000 HARDWARE 6 2.1 Central Processing Unit 7 2.2 System Bus 10 2.3 Internal Store 11 2.4 Magnetic Disc Storage 12 2.5 General Device Controller 13 2.6 Basic Models 14 3 RC 8000 SYSTEMS SOFTWARE 16 3.1 The Monitor 17 3.2 The System Process >s> 19 3.3 BOSS Operating System 20 3.4 MIPS/TS Operating System 22 3.5 I/O System 24 4 RC 8000 PROGRAMMING LANGUAGES 26 4.1 ALGOL 26 4.2 FORTRAN 27 4.3 BASIC/COMAL28 4.4 SLANG 29 5 RC 8000 OPERATIONAL SOFTWARE 30 5.1 File Processor 30 5.2 Utility Programs 31 5.3 Data Management Systems 31 5.4 Various other Packages 33 6 RC 8000 APPLICATION SOFTWARE34 6.1 RC Financial Control 35 6.2 RC Payroll 35 6.3 RC Production and Inventory Control 36 6.4 RC System 80 36 6.5 RC NET 37 7 TYPICAL RC 8000 APPLICATIONS39 7.1 Small Financial and Production Control System 39 7.2 Service Center System 41 7.3 Telephone Directory Inquiry System 44\f 1 I_N_T_R_O_D_U_C_T_I_O_N_ The RC 8000 is a reliable and flexible computer system. Due to modular construction the RC 8000 System can be configured to co- ver the range from a minicomputer with only a few peripherals to a medium scale host computer serving a comprehensive set of ter- minals and satellite systems. An RC 8000 System can be expanded without extensive replacement of hardware and software just as well as already existing RC equipment can be utilized. For in- stance, an RC 3600 or an RC 6000 can be upgraded to an RC 8000 System. FOTO TYPICAL RC 8000 INSTALLATION An RC 8000 System is composed of both hardware and software. The hardware, utilizing MSI and LSI technology, supplies the relia- bility and simplicity of operation. The superimposed software supplies the flexibility and wide capability. The division of tasks between hardware and software assures the best performance for the lowest cost, with each component contri- buting those performance elements for which it is best suited. This manual describes how the hardware and software are combined into the RC 8000 System. \f 2 R_C_ _8_0_0_0_ _H_A_R_D_W_A_R_E_ An RC 8000 System has 4 major hardware components: the central processing unit, internal storage, the I/O device controller and the magnetic disc storage channel. A real system can contain one or more of each of these components. The units are interconnected by a databus, the RC 8000 System Bus, which effects all transmis- sion of data between the connected units. The data bus may be considered as an independent system component since none of the connected units have special priority to use the bus. TEGNING 1. The controllers perform all the routine tasks associated with the operation of peripheral devices. The central processor can thus spend more time on computing activity. As a result of this organization, the overall performance of an RC 8000 System is substantially higher than the nominal performance data of the central processor seems to indicate. \f The data bus architecture gives a general and flexible structure providing the possibility of expanding the system to comprise se- veral central units and several controllers, all connected to the same data bus. In the following sections, the individual hardware components will be described in more detail. The chapter is concluded with a view on the product structuring within the RC 8000 Systems. 2.1 C_e_n_t_r_a_l_ _P_r_o_c_e_s_s_i_n_g_ _U_n_i_t_ The RC 8000 Central Processing Unit executes program instructions which are fetched from the internal store at the time of process- ing. The unit contains registers and circuits for arithmetic lo- gic, general control and interrupt control. tegning An optimum of flexibility and speed is the result of combining general microprogramming capability with special hardware fea- tures such as instruction prefetch, i.e. fetching the next in- struction from the internal store while the former instruction is being executed. \f The processing functions are alike for all processing units, whereas the instruction execution times depend on the relation- ship between functions implemented by microprogramming and func- tions implemented by hardware features. A group of processors has been designed that are mainly micropro- grammed. These processors have typical instruction execution ti- mes of 3 to 20 usec. They are the bases of the compact models of RC 8000 Computers. Another group of processors has been designed that have more func- tions implemented by hardware features. These processors have typical instruction execution times of 1 to 3 usec. They are the bases of the larger models of RC 8000 Computers. All units have a 24-bit word single address instruction format with 64 basic instructions. Each instruction has a 12-bit dis- placement and 16 address modifications including relative, index- ed and indirect addressing modes. 12-bit half-words are the smallest data units which can be addressed directly. The RC 8000 Central Processing Units use 4 working registers, three of which also function as index registers. This means, that the full instruction set is available for immediate address mo- difications and the number of empty transfers of registers to the internal store is greatly reduced. The data formats comprise 12-bit half-words and 24-bit full- words for integer arithmetic. 48-bit double-words are used for floating point and extended range integer arithmetic. The instruction set is very versatile and includes facilities for half-word operations and word comparison which aids data manipulation. Logical operations permit setting and testing of single bits. Also included is an escape facility, which can cause programmed action on preselected types of instructions. This is a valuable tool for program debugging, emulation of special instruc- tions etc. The various addressing modes allow dynamic relocation of programs. This means, that programs can be executed in any part of the internal store and can thus be moved around in the store when that is needed. A program protection system combined with a real-time clock and a powerful interrupt system provides facilities for multiprogram- ming operation (see chapter 3). \f Program protection is obtained by means of limit registers and privileged instructions. Whenever the execution of an instruction implies a store access, the store address is checked against the limit registers to prevent interference between different pro- grams. Furthermore, some privileged instructions are reserved for supervisor programs. If an ordinary user program attempts to exe- cute a privileged instruction an interruption of the program occurs. The interrupt system has the capability of interrupting the pro- gram execution. Internal interrrupts, that is interrupts caused within the processor, have 8 levels while external interrupts from the peripherals have up to 248 levels on the larger models. The real time clock, which has a resolution of 0.1 msec, drives an interval timer, which causes the regular interrupts for the multiprogramming operation. foto CENTRAL PROCESSING UNIT AND INTERNAL STORE - module structure\f T_ 2.2 S_y_s_t_e_m_ _B_u_s_ The unified system bus is the backbone of the RC 8000 System. All &_ system units are connected to the same bus and communicate by a uniform communication protocol. This simplifies the interfacing between the various units, since each unit interfaces only to the data bus. Code conversions for specific peripherals are performed by the associated controllers and channels. TEGNING 6. T_ An asynchronous, fully interlocked request/acknowledge - hand- shake - communication technique is employed. A data bus transfer carrying one dataword and one address word in parallel is com- pleted in 0.3 usec. This means a data bus throughput of 3.3 mil- lion words per sec. The RC 8000 System Bus is an independent part of the system with an autonomous bus control unit. No unit connected to the bus, not even the central processor, has special priority. If a connected unit needs to use the bus, it sends a bus request. When the bus is ready, the requesting unit is granted bus control. The next unit to use the bus is selected immediately after, so that a new unit is ready when the current user is finished. \f The asynchronous transmission mode implies that data transfer between two units will be as fast as possible for any combina- tion of units. The actual speed of transmission is set by the maximum transfer rate for the slower of the two units. Thisalso means that internal store modules with different cycle times can T_ be used in the same RC 8000 System. The RC 8000 System Bus architecture just described secures a very efficient utilization of hardware resources and provides the flexible and modular basis, which guarantees the user an open-ended system adaptable to almost any foreseeable future application. For instance several independent central processors can be connected to one system bus and share all peripheral facilities. 2.3 Internal store The RC 8000 Internal Store is built of modules and the size can be from 64 Kwords to 4 million words depending on the model. TEGNING 6. &_ \f T_ The internal store is available in either semiconductor or magne- tic core memory, - or combinations of the two. The store access width is 1 word consisting of 24 data bits and 3 parity bits (or a 6-bit correction code) generated and checked by a dedicated store control unit. A single word in the store can be read in 0.55 (0.6) usec, whereas reading or writing a sequence of words requires 0.9 (0.7) usec per word corresponding to 1.1 (1.4) mill. words per second - the bracket values relating to semicon- ductor memory. 2.4 M_a_g_n_e_t_i_c_ _D_i_s_c_ _S_t_o_r_a_g_e_ The RC 8000 uses magnetic disc backing storage. Disc storage mo- dules are connected to the system bus by means of a "Disc Storage Channel". The central unit can initiate a channel program which is then exceuted by the disc storage channel. In this way it is possible to transfer data to and from the backing storage without engaging the central processor during the entire transmission. TEGNING \f Disc storage modules (disc drives) with capacities of 10, 21, 33, 66, 124 and 248 Mbytes are available. 4 disc modules can be daisy chained to one RC 8000 Disc Storage Channel and up to 4 channels can be connected to the system bus (depending on the model). Fully developed this means a total disc storage capacity of al- most 4000 Mbytes. The transmission rate to and from the disc sto- rage is 1.2 Mbytes per sec. The average access time depends on the actual disc drive, typically it is 30 to 40 msec. Data can be read or written on one disc per channel at a time whereas head positioning etc. can be performed in parallel on more than one disc. T_ 2.5 G_e_n_e_r_a_l_ _D_e_v_i_c_e_ _C_o_n_t_r_o_l_l_e_r_ All "slow" peripherals such as line printers, card readers, ter- minals and communication equipment are handled by an RC 8000 General Device Controller. It controls all the attached periphe- rals autonomously. For instance, a transfer of data from a stack of data cards to the backing storage will be initiated by the central processor. Thenthe device controller will take over and via the system bus complete the transfer without further engage- ment from the central unit. TEGNING \f In fact, the device controller is an RC 3600 Minicompouter with its own system software which enables it to perform code conver- sions, peripheral operation controls, terminal polling and so on. Although a "real" computer the device controller can not execute any user program, but is dedicated to mediate the contact between the RC 8000 System and the peripheral devices. One device control- ler is capable of handling an extensive set of peripherals, yet further controllers may be connected to the RC 8000 System (de- pending on model). The RC 8000 General Device Controller can transmit and receive data via the RC 8000 System Bus at a rate of 600 K bytes per se- cond. As an exception to the general structure, the RC 8000/15 (the smaller system) has its device controller connected by an arrangement which causes the transfer rate to be 10 K bytes per second. The device controller, being a specially equipped RC 3600 Mini- computer, is available with core or semiconductor memory. 2.6 Basic models The opportunities available with the hardware equipment have been structured in basic modelsof the RC 8000 Systems as a con- venient entry to decision making in the choice of modules. The concept of the basic models brings about a natural ranging of features while maintaining flexibility in configurating. Actually the basic configurations themselves are assembled from modules and provide the open-ended issue which was outlined in the description of the system bus structure. The main reason for the configuration of basic models is found in the effort to assure that any system configuration will perform as an entity, and meet throughput expectations as well. An uncritical urge for specific aspects without the care of matching and balancing the other system aspects accordingly might easily cause poor system utilization. Consequently each of the basic models features a certain range of ascepts which does not violate the system entity. The significant parting line follows differences of the central processing units, which sucessivly effects the range of internal store, the support of disc storage channels and general device controllers. \f Yet due to the modular structure supplementary modules can be added to any of the basic models and thereby yield an extensive range of aspects. For instance by adding a central processing unit equal to the current one, or, by replacing the current one with a more powerful central processing unit. Based on the description given in the privious sections, the basic models are characterized as follows: RC 8000 Model 15 35 35S 45 45S 55 55S CENTRAL RC 8002 8004 8005 8006 UNIT instruc. time usec.-average6.22.3 1.2 INTERNALsemi+ 0 + 0 + 0 + STOREcore + 0 + 0 + 0 size K words64 64 - 512 64 - 4096 DISC CHANNEL No. 11 - 4 DEVICENo.11 - 8 CONTROL- trans.rate LER K bytes/sec.10600 + = included; 0 = option With the hardware described above it is possible to perform va- rious data processing tasks, but with hardware alone those tasks will be complicated and subject to many limitations. The great flexibility and wide capability that characterizes the RC 8000 System is acheived when the hardware is supplemented by systems software. \f 3 R_C_ _8_0_0_0_ _S_Y_S_T_E_M_S_ _S_O_F_T_W_A_R_E_ The main goal of the RC 8000 Systems Software is to achieve the most efficient use of computer resources under any run-mode a- long with ease of operation. Regarding general efficiency in computers systems, one of the pri- mary factors is the utilization of the central processor. Usual- ly, the attention of the central processing unit is only required during a fraction of the total time spent for executing an ordi- nary program job. Most of the time the central processing unit is waiting for some input/output operations to be completed. Tegning This is evidently a poor utilization of the capacity of the cen- tral processing unit. A solution to this problem is to let the central unit switch its attention among a number of jobs. While some job is waiting for an I/O operation to be completed, the central unit may perform computations for other jobs. In order to perform in this way, a number of jobs must be present in the internal store simultaneously (or available on disc to be fechted into the internal store succesively). The central proces- sor will then appear as a number of processors. \f The users, all running jobs at the same time, will experience it as if they each had their own processor. This virtual multiproces- sing action is the principle behind the RC Multiprogramming Sys- tem. T_ 3.1 T_h_e_ _M_o_n_i_t_o_r_ The Monitor is the software element that implements the RC 8000 Multiprogramming System. The basic concept within the system is &_ the "process". A process is generally defined as an area in the internal store in which all computational activities pertaining to a certain job are performed. In the multiprogramming system, the attention of the central processor is shared equally among all present (or available) processes and they are therefore term- ed "parallel processes". In this environement, the supervisor program, the Monitor, controls the following functions: - Distribution of computing time among parallel processes. - Initiation, execution and termination of processes. - Communication between processes. - Reservation and initiation of sequential input/output data transfer. - Backing storage catalog handling. ILLUSTRATION7. &_ \f The Monitor program is permanently located in the internal store. When it is activated, it can not be interrupted by any other pro- gram. It can be regarded as an extension of the hardware facili- ties. By means of the interval timer and the interrupt system the Moni- tor allocates 25.6 msec of computing time to the processes in turn. But if a process is interrupted after say 10 msec in order to wait for a peripheral, the next process in the queue will be started. Each process has a process description containing a symbolic na- me, relationship to other processes, limits of process area in the internal store, status and other information necessary for the administration of computer resources. A maximum of 21 proces- ses can exist simultaneously and by means of a protection system it is guaranteed that no process inadvertently operates outside its boundaries. If communication between parallel processes is wanted, the Moni- tor is able to mediate the contact by means of five procedures called: send message, wait answer, wait message, send answer and wait event. Each process has a queue within the Monitor in which it can receive messages from other processes. Using the commu- nication procedures it is possible to transfer data from one process to another. Peripherals are also regarded as a kind of process as the hard- ware device to the central unit is represented by a driver, a con- trol program, - and they too are identified by a symbolic name. The communication procedures can then be used to initiate sequen- tial data transfer between processes and input/output devices or to establish a conversation with a terminal. Users can retain programs and data permanently on the disc back- ing storage which is organized as a collection of named data areas. A fixed part of each store is reserved for a catalog de- scribing the names and locations of the data areas. The catalog can be divided into an unlimited number of nested subcatalogs, each with a specific access restriction. This hierarchical structure combined with the program protection system secures privacy of files and at same time allows users to benefit from common program libraries etc. Data areas are allo- cated after a strategy that allows extensions and reductions to be performed when needed and makes reorganization superfluous. \f T_ 3.2 T_h_e_ _S_y_s_t_e_m_ _P_r_o_c_e_s_s_ _>_s_>_ The System Process >s> is the key to the dynamic operating system concept of RC 8000. &_ An operating system is a program that controls the execution of other programs, for instance, a batch processing system organiz- ing a sequential execution of programs, a time sharing system for simultaneous programming from a number of terminals or a real- time system for updating a database. Usually an operating system is made for one, and only one, mode of operation. In contrast to this, the Monitor of the RC 8000 has no built-in assumptions about program scheduling and resource allocation; it allows any program to initiate other programs in a hierarchical structure and to execute them according to any strategy desired. The functions of the Monitor described in the last section provi- de a general framework for different scheduling strategies. After the initial system load the System Process >s> owns all computer resources. Users can then, from an aribtrary terminal, reserve a storage area and start a program. >s> will then imme- diately create the process description for the Monitor and the process is established. Such a user process will then run in parallel with >s> whichacts as a primitive operating system for all the parallel processes A, B and C it has started itself. \f T_ The three processes A, B, and C can be termed "child" processes of >s>, they can now create their own child processes, D, E, F, G and H. The child processes can only be allocated a subset of the resources reserved by the parent. The parent acts as operat- ing system for the child processes; it can start, modify, stop and remove its child processes according to any desired strategy. This hierarchy of processes can be expanded in both depth and width. In the resulting family tree each parent has complete jurisdiction of its children. In the RC 8000, then, the operating system concept becomes varied and dynamic. Operating systems can be written in a suitable high level language, such as ALGOL 7, and implemented just like any other programs, they can be replac- ed dynamically enabling the system to switch between various mo- des of operation and several operating systems can be active simultaneously. T_ 3.3 B_O_S_S_ _O_p_e_r_a_t_i_n_g_ _S_y_s_t_e_m_ As a child process, >s> can load the more advanced BOSS operating system. BOSS performs a fast and reliable sequential execution of jobs and simultaneously allows users to perform editing and job entry from up to 50 terminals. All users are recorded in a &_ user catalog which also includes an accounting system, and each user has his own file catalog in order to secure privacy of fi- les. Jobs can be entered from terminals as well as from paper ta- pe and card readers. Output to terminals and printers is spooled on the backing storage. Tegning Boss core og BS \f BOSS administrates the job queue on the backing storage. The order of execution is chosen by a priority scheduling algorithm in such a way that the ratio between estimated run time and waiting time is the same for all jobs in the queue. Up to 20 jobs can be under execution simultaneously, but only the two jobs with the highest priority are present in the BOSS job area in the internal store. The rest of the jobs are temporarily suspended and swapped out on the backing storage. This dynamic system secures that small jobs are executed fast and any large job is guaranteed execution, but must expect longer waiting time. Output to terminals and printers is gathered in segments on the backing storage and transferred as an entity, when the job is finished. A typical terminal communication between a user and BOSS with login procedure, creation of a program etc. is shown below. Figur terminal conversation. \f 3.4 MIPS/TS Operating System As another opportunity one may choose the operating system MIPS/ TS. A powerful operating system aimed at interactive terminal work for multiuser on-line systems. The operating system performs transfers of application programs to and from backing storage (swap-area) according to need, en- abling different application programs to utilize the same inter- nal store area of the computer. Consequently the number of appli- cations which are accessible by the users is increased without increasing the size of the internal store. The strategy of job execution is implied by a priority scheduling algorithm dynamically updated for any application running in the system. Applications which are frequently accessed and capable of short processing times are given a higher priority than those less frequently accessed and requiring longer processing times. One batch-like processing job can be run simultaneously in order to utilize the time not used by interactive processing. This way the user is assured of the best possible service while making optium utilazation of the computer. TEGNING Terminals are treated groupwise with respect to the applications accessed. A user terminal connection may be established/removed dynamically with respect to any of the groupings. This structure \f prevents the programn executions from being impeded as the speed difference between data processing and peripheral operating can be equalized. Also the spool function acts towards eliminating speed differen- cies. The programs are enable quickly to write the data process- ing results on the disc storage. Consequently the programs can directly proceed in processing other jobs according to the prio- rity schedule. The results are then forwarded to the receiving units controlled by MIPS/TS at a speed which is acceptable to the unit in question. Using a large computer, several MIPS/TS operating systems may be established in parallel if desirable. A terminal communication between a user and MIPS/TS is shown below: \f T_ 3.5 I_/_O_ _S_y_s_t_e_m_ The I/O system is one of the keys to the high performance of the RC 8000 Systems. The intelligent peripheral controllers and the data bus structure is the basis for a standardized I/O programm- ing system with an efficient allocation of peripheral resources. Figur i/o system To a job process an input/output operation is a matter of sen- ding an I/O request to the Monitor stating the required periphe- ral device and the address at which data is to be read or writ- ten. The Monitor administrates an I/O request queue and when the required device is ready the Monitor initiates a data transfer on the data bus by activating a "channel" program. The channel pro- grams reside permanently in the internal store and they are exe- cuted by the device controller that controls the requested peri- pheral device. Once started, the device controller executes the channel program without further engagement from the central pro- cessor. The physical control of the peripherals and the necessary code conversions are performed autonomously by the controllers. \f T_ This structure with a main processor and separate peripheral pro- cessors can be regarded as a small network, and it is implemented as such. The RC 8000 General Device Controller Software includes a Network Control Program. This means that an RC 8000 System is prepared right from the start for connection to a data processing network in which the general device controller will act as a no- de. Terminal polling, peripheral operation, data transfer on the system and all the tasks of the general device controller are performed by a software system quite similar to that of the total RC 8000 System with its own Monitor and operating systems. Yet the general device controller is an integrated functional unit which cannot be accessed by users, although it possesses abili- ties equal to a "real" computer. The systems software described until now creates the multipro- gramming environment in which several users can operate inde- pendently. In the next chapters we will have a look at the soft- ware systems available to each user within job processing.\f T_ 4 P_R_O_G_R_A_M_M_I_N_G_ _L_A_N_G_U_A_G_E_S_ It is of course most convenient to do the programming for the RC 8000 System in a high level programming language. A number of pro- gramming languages, suitable for different purposes are available for the RC 8000 System. They are all widely known, but extended in order to fully utilize the possibilities outlined in the pre- ceeding chapters. 4.1 A_L_G_O_L_ _ The primary high level language for RC 8000 is ALGOL 7, which is an RC extension of the general purpose language ALGOL 60. &_ The most important extension is the implementation of a general input/output system. Users are free to choose whether they want to use standard high level input/output procedures or whether they want to manipulate the administration of data at the most basic level. The ALGOL 7 I/O system offers a file system on the backing storage with sequential access. A dynamic field descrip-\f tion feature is included in the language as a powerful tool for the management of records of different types within a single fi- le. The "context" facility makes it possible to program multi- terminal on-line systems in ALGOL 7. Coroutines are supported by this concept too. Other extensions include case expressions and case statements for multiple-condition branching, and pattern operators for bit ope- rations and efficient packing of information. The library proce- dures provide facilities for performing all the Monitor func- tions. This combined with the input/output system makes it pos- sible to program operating systems in ALGOL 7. The ALGOL 7 program source text can be entered from terminals, backing storage, paper tape, punched cards, magnetic tape, disc or a combination of these. Input from magnetic tape and discmust be represented in ISO 7-bit character code with 3 characters per word. Procedures can be compiled separately and included in the commom program library. Such a procedure can be called directly and a copy of the procecure code is copied into the object program during the compilation. The compiler requires 7 Kwords of internal store and a backing storage area large enough to hold the object program. An exten- sive syntax and type control is performed and all errors can be found in one compilation. After a basic time of 2 sec. the trans- lation speed is about 75 statements per sec. Several programs can be compiled simultaneously by copies of the compiler loaded into different parts of the internal store. The object program is transferred to the backing storage as a se- quence of relocatable segments of 256 words each. The program in- cludes an automatic administration of transfers of segments to the internal store at runtime. The execution time of a program depends on the size of the available storage area. Programs of arbitrary size can be executed in a storage area of 3500 words plus space for variables, but an area of 6000 words plus space for variables is recommended. Test output can be generated during the execution and erroneous programs are executed until the point of error is reached. 4.2 F_O_R_T_R_A_N_ RC FORTRAN is based on the ISO recommendation R 1539 (FORTRAN IV), it has however been extended to allow the use of the basic\f ALGOL 7 input/output system and as a result some of the terms de- fined in the ISO recommendation are not required. A "precompiler" for translating these nonexistent terms into RC FORTRAN is avail- able. Other extensions include mixed type arithmetics, backwards counting in DO statements, pattern operators, DATA initialization of common variables anywhere and multiple entries in procedures. Previously compiled FORTRAN or ALGOL procedures can be inserted during compilation. The checking of parameters in procedure calls and of labels in assigned GOTO statements is standard whereas the check against subscript bounds is optional. All other characteristics of the FORTRAN Compiler are equivalent to those of the ALGOL 7 Compiler described in section 4.1. 4.3 B_A_S_I_C_/_C_O_M_A_L_ RC BASIC/COMAL is a structured educational language; it is simple and comprehensive and yet sufficiently advanced to permit demon- stration of important programming principles. The original BASIC has several deficiencies regarding advanced programming. Recent proposals for new and better educational languages have been put forth, among them has been the develop- ment and implementation of COMAL (Common Algorithmic Language). COMAL possesses all the features that made BASIC popular, in fact COMAL includes almost all the facilities of BASIC plus a number of advantageous features. Incorporating COMAL and BASIC into RC BASIC/COMAL provides the following extensions compared to ordinary BASIC: IF-THEN-ELSE, REPEAT-UNTIL, WHILE-DO and CASE-OF-WHEN. Eight character variable names. Structured programming without GOTO line number. Interactive program execution. Batch mode program execution. File input/output. Matrix operations. String and string array manipulations. Output formatting. Desk calculator functions. \f With these features RC BASIC/COMAL covers the total educational range from the most introductory level to advanced production programming training. 4.4 S_L_A_N_G_ RC SLANG is the assembly language for RC 8000; it has the same block structure as ALGOL. SLANG is used by RC for coding of basic software and some times for coding critical procedures. SLANG programming gives a marginal increase in processing speed and a slight reduction in program size at the expense of readability and programming time. Furthermore procedures which violate the conventions of the high level languages can be coded in SLANG. The SLANG program source text can be entered from terminals, back- ing storage, paper tape, punched cards, magnetic tape or a com- bination of these. Input from magnetic tape and backing storage must be represented in ISO 7-bit character code with 3 charac- ters per word. Independent of the programming language, a number of tasks per- taining to the execution of a job are standard procedures, but they can be complicated and time consuming to code. For the con- venience of the user a number of program packages for tasks such as job control, data management, terminal communication etc. are available. This kind of software is termed "Operational Software" and it is dealt with in the following chapter.\f 5 R_C_ _8_0_0_0_ _O_P_E_R_A_T_I_O_N_A_L_ _S_O_F_T_W_A_R_E 5.1 F_i_l_e_ _P_r_o_c_e_s_s_o_r_. When a process is created, the operating system will load a small control program named the "File Processor" into the job area. This program is able to load and activate execution of programs according to the job file specifications made by the user. These programs may be user programs or compilers, editors and special utility programs. When a program is executed control is returned to the File Processor program which then loads the next program. When the job file is exhausted, control is retur- ned to the operating system. The example of section 3.3 appears below, commented in terms of program control. Figur terminal communication \f A library of support programs for job control such as conditio- nal execution of job steps or job-operation for communication is included in the Utility Program Library. T_ 5.2 U_t_i_l_i_t_y_ _P_r_o_g_r_a_m_s_. These programs, which can be utilized by any job, cover a number of tasks. According to their functions they can be divided in three main groups: catalog handling, data handling and job con- trol. Catalog handling programs are used for creating, changing and removing catalog entries on the backing storage as well as searching, sorting and listing of user file catalog entries. Data handling programs cover tasks such as: copying data from one storage media to another, simple formatting - headings and identification - of printer output and editing of text strings, for instance in program files. Job control programs provide facilities for action, such as: termination of a job, repeating one or several job steps, con- ditional execution of one or several job steps, communication between job and operator, e.g. mounting of magnetic tapes and printer control. Other utility programs for special purposes may be coded by the users and added to the library. 5.3 D_a_t_a_ _M_a_n_a_g_e_m_e_n_t_ _S_y_s_t_e_m_s_ Administration of files on the disc backing storage can be im- plemented in three levels. The first level is the ALGOL/FORTRAN standard input/output system (see section 4.1). The second level is provided by the "Backing Storage" program package which con- tains an indexed sequential file system. At the third level the "Data Base" package extends the facilities of the Backing Sto- rage package with a "Connected Files" data base system. T_ For data on magnetic tape, the "Magnetic Tape" package provides a set of procedures for handling labelled files on magnetic ta- pes in ALGOL and FORTRAN programs. The labels follow ISO stan- dards. \f The Backing Storage program package provides an indexed sequen- tial files system for random access storage media. Fast inspec- tion, updating or deletion of specific records are made possible by means of index tables in two levels. T_ File Catalog File 1 File 2 File 3 File 4 File Head Bucket table bucket 1 bucket 2 bucket 3 Block table block 1 block 2 block 3 block 4 &_ record 1 record 2 record 3 record 4 record 5 Each record is uniquely identified by a key. When a certain re- cord is to be found, the system will search for the key in the bucket table. This yields a part of the file, a bucket, in which to continue the search. Searching in the block table of this bucket will yield the block in which the record can be found. The system, which can be used with records of variable length, as well as records of arbitrary type, includes sorting procedu- res. The Connected Files Data Base system is based on two file types - master files and list files. The master file records contain data on entities such as products, production equipment, orders etc. The list files contain additional data relating to the en- tities and may, furthermore, express a relationship between the- se entities. figur production structure \f A situation, in which three machines are used to produce two dif- ferent products, could thus be represented in a data base by two master files and one list file. The master files are organized index sequentially. They can be accessed directly by keys or sequentially. A master file record can be the "mother" for a list. Master file records M1 M2 M3 P1 P1, M1 P1, M3 Chain P2 P2, M2 P2, M3 &_ List file records The list files are sequential access files, where the recordsare organized in chains. The records of a list file will always be "daughters" of a record in another file, which may be either a master file or a list file. Consequently, the access of a chain of list file records must always be preceded by an access of a mother record in a master file, or a list file. 5.4V_a_r_i_o_u_s_ _o_t_h_e_r_ _p_a_c_k_a_g_e_s_. The "Terminal" package contains a communication procedure for on- line input/output to terminals in ALGOL programs. The "MATH.-STAT." package is a collection of routines covering tasks such as: Solving of differential equations, linear equa- tions and matrices, Fourier transforms, descriptive statistics and many other standard mathematical problems. \f 6 R_C_ _8_0_0_0_ _A_P_P_L_I_C_A_T_I_O_N_ _S_O_F_T_W_A_R_E_ With the operational software and programming languages descri- bed in the preceding chapter, the users can create their own app- lication programs. This is, however, often a hard and time con- suming process. RC Application Software offers a line of systems covering a wide range of administrative problems within trade and industry. T_ SATELITE SERVICE SYSTEM CENTER RC NET PRODUCTION FINANCIAL RC 8000 AND INVENTORY CONTROL CONTROL PAY ROLL SYSTEM &_ In the light of many years of experience with service bureau activities RC has developed a line of reliable and flexible application software. The three main systems are: RC Financial Control System RC Payroll System RC Production and Inventory Control System All three systems are built from modules and are adjusted to suit individual requirements. Updating, inquiries and small re- ports are performed in real time from on-line terminals, while larger operations of computational or documentary nature are performed in batches. The system functions may also be divided between your installation and a service bureau. RC System 80 integrates the functions of the three above men- tioned systems into a total administrative data processing sys- tem. A number of function modules is chosen to fit the current needs of the organisation, but this is no restriction, the system can be modified as needed.\f RC NET is a data communication system, which enables the incorpo- ration of an RC 8000 as a host computer in a larger distributed network. Utilizing RC NET systems of various manufactorers can easily be linked to the organisation - and vice versa. In the following section the possibilities of the systems are de- scribed more thoroughly. But still, within the framework of each system, the structure and contents of the input and output can be adjusted to the current and future needs of the organisation. T_ 6.1 R_C_ _F_i_n_a_n_c_i_a_l_ _C_o_n_t_r_o_l_ _S_y_s_t_e_m_ RC Financial Control System contains modules for fast and reli- able performance of the following every day business transactions: order registration, invoicing, debtor and creditor accounting, financial accounting and inventory control. Only basic vouchers are used for updating the system and manual preparation is cut down to merely stating account numbers. The account plan of the company is kept in the finance module and account plans for specific groups, balances and budget analyses are printed periodically or on request. Each module can provide a number of statistics, surveys and analyses, which makes the RC Financial Control System a valuable tool for financial manage- ment. The debtor module for instance can work out customer ana- lysis and sales statistics for various combinations of products and customer groups. T_ 6.2 R_C_ _P_a_y_r_o_l_l_ _S_y_s_t_e_m_ RC Payroll System is the solution to problems such as: payroll computations, control of contract and bonus systems, statement of indirect payroll expenses, reports for taxation authorities, absentee statistics, holiday allowances and annual status. The system comprises the following modules: registration, com- putation, administration, and write out. This structure opens the possibility of making a number of registration runs with associated control output ahead of the final computation and administration run. \f T_ 6.3 R_C_ _P_r_o_d_u_c_t_i_o_n_ _a_n_d_ _I_n_v_e_n_t_o_r_y_ _C_o_n_t_r_o_l_ RC Production and Inventory Control System is a fast and effici- ent approach to the management of problems such as: product pur- chase scheduling, optimizing of stock, analysis of production loading, and product cost estimates and control. In a product network module the products and their composition are recorded. That is, a logical description of how all raw ma- terials and subassemblies are composed into the final products. In an inventory module all movements in the stock are recorded. A price calculation module offers fast and precise calculation of profitability for the products and finally the order module keeps track of the various kinds of orders flowing to and from the com- pany. All these modules can produce a variety of lists, surveys, ana- lyses and statistics on demand. The structure and contents of these output possibilities can be altered when the application demands it. T_ 6.4 R_C_ _S_Y_S_T_E_M_ _8_0_ Each of the three systems mentioned above works with its own da- ta base and each system provides facilities for financial ac- &_ counting. This means that if the same company runs two or all three of these systems a certain amount of redundant information is stored in the separate databases. Consequently, some events will require updating in more than one data base. RC System 80 integrates all three systems into one system with a single advanced data base to which all subsystems refer. RC System 80 is structured as a skeleton system of great flexi- bility. The system is composed of basic modules and function mo- dules. The basic modules which are used for input, register file updating, and output are common to all subsystems. Each applica- tion subsystem is built from function modules, which too can be common to several subsystems. For instance, the financial accoun- ting module will be utilized in the payroll system as well as in the debtor accounting system. The data base to which all subsys- tems refer is essentially independent of the applications. Which makes it simple to expand the system with new subsystems and\f function modules as required. Adjustments can be performed using a subset of the ALGOL programming language. T_ 6.5 R_C_ _N_E_T_ The introduction of large central computers made it possible to perform data processing tasks for several independent users si- multaneously. For remotely placed users terminal communication facilities were developed. A number of different communication protocols were the result but they all had in common that the central computer alone was monitoring the system. This hierarchi- cal sturcture has several drawbacks: The central computer is heavily loaded by the numerous communi- cation methods, the transmission lines are poorly utilized, and the users may need several types of terminals for different cen- tral computers. The way to solve these problems and at the same time gain a num- ber of advantageous facilities for the current systems with built in security for future extensions is to adopt the RC NET data net- work system. T_ HOST C HOST A Node 1 HOST B &_ Within the RC NET network concept an installation with data pro- cessing capacity is termed a "host". Associated to each host is a "node" and the nodes are interconnected by communication lines to form a network. \f RC NET is a packet switching network system by which the host computers can communicate. A message from one host to another is split up into a number of data packets, which are transmitted by the network. A main function of the nodes is to keep track of the hosts currently connected and their location in the network. The data packets are forwarded from node to node until the node con- nected to the recieving host is reached. The X 25 level 2 HDLC (High Level Data Link Control) protocol is used on the communication lines which connects the nodes, but other protocols can be adopted for certain lines if it is con- venient. A host in RC NET could for instance be an RC 8000 System, an IBM system or an RC 3600 Terminal Concentrator. In the RC 8000 Sys- tem the general device controller is inherently implemented as a node by means of the Network Control Program (NCP). This program resides partly in the internal store of the RC 8000 and partly in the device controller. When an IBM computer system or a terminal system is connected to RC NET the RC 3600 Minicomputer is used as the network interface.\f 7T_Y_P_I_C_A_L_ _R_C_ _8_0_0_0_ _A_P_P_L_I_C_A_T_I_O_N_S_ Up to this point the basic structure and comprehensive possibili- ties associated with the RC 8000 Computer System have been accoun- ted for. In order to get back to what it>s really all about, - getting things done quickly and reliably, - this paper is con- cluded with a description of a couple of typical user systems of varying size, purpose and capacity that are implemented by RC 8000 Systems. That will hopefully add a little substance to the maybe rather vague exposition in some of the preceding chapters. Although they are typical, the three examples below only show a fraction of the possible applications for the RC 8000 System *). RC 8000 has for instance also been succesfully used for on-line production control, technical computations and front-end systems for large computer centers. 7.1 S_m_a_l_l_ _F_i_n_a_n_c_i_a_l_ _a_n_d_ _P_r_o_d_u_c_t_i_o_n_ _C_o_n_t_r_o_l_ _S_y_s_t_e_m_ A medium size manufacturing company is expanding rapidly and con- sequently the company is faced with growing administrative pro- blems. Their sales are rather season dependent which calls for careful sales and production planning. An RC 8000 System is gradually taking over financial control, budgeting, payroll administration as well as production andin- ventory control. The application software - entirely delivered by RC - is based on the standard systems mentioned in chapter 6. A vital part of the financial system is the order control. 150- 200 telephonic orders a day are entered via terminals. Time of delivery is determined on basis of an end-product stock system with 4 different types of stock. The factory stock operates with a time horizon of 13 weeks regarding production plans, reserva- tion and actual stock. Acknowledgements and delivery notes are printed automatically. The invoice system records the actual deliveries and generates back orders if necessary - and the ap- propriate accounts and stock lists are updated. 2300 costumers are recorded in the debtor system. For each debtor an "open item" accounting system is used. The financial system has a three di- mensional account registration operating with account number, organisational unit, and project number as parameters. *) some of the products shown may at present have been substitu- ted by new products, as product improvements are continously ac- hieved.\f The budget system comprises rolling five quarter budgets andlong term annual budgets. The budgets are checked in the financial sy- stem and are the basis for the sales control system. The approx. 100 employees of the company are registered in theRC Payroll System. Besides ordinary payroll computations the system takes care of contract and bonus systems, reports for taxation authorities, and computation of indirect payroll expenses. The advanced order registration system implies a high degree of production control. This is obtained by means of the RC Produc- tion and Inventory Control System. All the raw materials and subassemblies which are joined into the 300 different end-pro- ducts are recorded here. The system is used for product purchase scheduling, optimizing of stock, analysis of production loading and product cost estimates and control. Konfiguration All these functions are performed by the configuration shown above. The system comprises an RC 8000/25 Central Processing\f Unit, 64 Kwords internal store, two RC 8223 33 Mbyte Disc Stora- ge Modules and an RC 8301 General Device Controller. Connected to the device controller are an RC 830 Operator Console, 4 RC 822 Display Terminals and an RC 3641 300 lpm Line Printer. T_ 7.2 S_e_r_v_i_c_e_ _C_e_n_t_e_r_ _S_y_s_t_e_m_ This next example shows an RC 8000 System where several users &_ can operate independently. It could be a large company with many divisions or as in this case, a service center which sells data processing services to a number of independent companies. The service offered is a subset of the financial control system namely on-line invoicing debtor, creditor, order and stock con- trol. Input to the system is entered from terminals placed at the users. Invoices are then generated immediately with automa- tic stock updating, credit limit control etc. Invoicing as well as inquiries on stock, debtors, order reservations etc., is per- formed in real time during the day, whereas the daily invoice journals and other surveys are processed in the batch mode du- ring the evening. The size and complexity of the terminal systems depends on the customers> needs. The most simple configuration is a single VDU terminal, such as an RC 822, which is used for input to the sys- tem. Paper output is gathered at the service center and forward- ed by mail. The next step is to have an RC 822 VDU Terminal and an RC 866 Matrix Printer on a single modem. For a higher throughput rate the two units can be connected to a modem each. Output can then be received continously, independent of the input activities, which is of course not possible with terminal and printer on the same line. One customer has two VDU terminals and a printer. One terminal is located at the order-booking office, the other terminal and the printer is placed in the stock building. Invoices are gene- rated from both terminals and written out by the printer. These simple terminal systems are connected to the service cent- re by modems; the transmission speed is usually 300 bps for the terminals and 1200 bps for the printers. The figure on the next page shows the range of terminal configurations mentioned in the text. \f Terminal konfiguration Some customers need several terminals and printers to cope with their sales activities. One of these customers has two RC 822VDU Terminals and an RC 3637 180 cps Printer connected to an RC 800/2 Terminal Concentrator. Another customer has an RC 800/3 Concen- trator with 4 VDU terminals and one printer. Both systems are linked to the service center by 2400 bps lines. One very large customer needs 10 terminals and 4 printers. These units are connected to an RC 800/22 Concentrator which is linked to the service center by a 9600 bps line. Last but not least an RC 3600 Minicomputer which acts as a node in an RC NET is used as concentrator for 5 different customers each having one VDU terminal and one printer. \f T_ A total of 24 customers having 41 VDU terminals and 25 printers are connected to this RC 8000 system. The total system comprises an RC Central Processor model 45, 128 Kwords of internal store, an RC Disc Storage Controller with 4 RC 8224 66 Mbytes Disc Sto- rage Modules and 2 RC 8301 Device Controllers. TEGNING11. &_ One device controller is used for 16 asynchronous transmission lines and the peripherals at the service center. These are an RC 830 Operator Console, 2 RC 3616 Magnetic Tape Units for logging purposes and an RC 3642 600 lpm Line Printer used for customer output. The second RC 8301 Device Controller has an RC 830 Operator Con- sole and handles 8 asynchronous and 4 synchronous transmission lines. This second unit is a node in the RC NET network, which enables the customers to utilize other service systems which are running on other computer systems at the service center. \f T_ 7.3 T_e_l_e_p_h_o_n_e_ _C_o_m_p_a_n_y_ _D_i_r_e_c_t_o_r_y_ _I_n_q_u_i_r_y_ _S_y_s_t_e_m_ This last example shows how an RC 8000 System for a special pur- pose can be integreted in a larger data processing framework. By means of the autonomous network - RC NET - several mainframe com- puters may be connected in such a way that individual tasks can be solved with a minimum of interaction with other systems and a maximum of safety. A telephone company, now covering 700,000 subscribers, introduc- ed data processing in 1967 by purchasing two RC-GIER Computers. They took care of processing accounts for subscribers, pay rolls for employees etc., in batch mode. Around 1970 planning began for an extended computing center which could handle all the company>s administrative data processing partly on-line and partly in batch mode. From one of the major mainframe manufacturers a large sys- tem was ordered. This system was expected to have enough capacity to handle a Directory Inquiry - DQ-System, too. For the on-line administrative system, clusters of VDU terminals and serial printers were required in each of the 4 administrativ regions. These were to be connected to the central site by a high speed star-form network which also should handle the DQ systems and other future systems. The network and terminal system was considered as a selfcontain- ed system, logically separated from the main frame systems. The RC NET network system was chosen for this part of the project. The Directory Inquiery System was developed in parallel with the administrative system. In 1974 the results from a pilot project were evaluated. 12-13% of the inquiries were answered erroneously or were not answered at all and the average response time was a- round 7 sec. It was realized that a full implemention of the DQ system, if pos- sible at all, would require the entire mainframe capacity. This mainframe, which also was intended to handle the administrative system, was simply not suited for an inquiry system. The reaction from the telephone company was to draw up specifica- tions for a separate DQ system and they invited tenders from a large number of suppliers. The best benchmark test results were producedby RC and a contract with RC was signed. In 1977 the\f tem was running with two RC 8000 Computers which cost one fifht of the mainframe originally purchased. Konfiguration One of the traditional requirements of telephone companies is an extremely high degree of reliability and although RC 8000 is a very reliable computer, a twin system was made to secure a sys- tem availability of 99%. Under normal circumstances one RC 8000 runs the DQ system while the other is updating the data bases. In case of a failure in the unit which runs the DQ system, the updating unit is cleared and the DQ system restarted on that unit within 5 min. \f Each RC 8000 has three 66 Mbytes disc storage modules. One modu- le is used for the software system and logging purposes, another is used for a complete subscriber database, and the third is used for a number of inverted databases where subscribers are arranged in accordance with the search parameters such as name, occupa- tion, etc. The main subscribers database contains very detailed information on the 700,000 subscribers. It contains not only telephone num- bers but also information like opening times, private addresses, mail addresses etc. The database is therefore well suited for computerized input to telephone book type-setting. The two RC 8000 Systems have two device controllers; one is dedi- cated to the network and acts as a node which routes data within the network as well as between the two RC 8000 Systems. The other device controller is used for peripheral facilities such as mag- netic tape, printer, paper tape reader/punch and a console. The total system, in fact, contains a third RC 8000 in parallel with the two others; the third unit is used for program development, computations, etc. The RC 8000 DQ System can seek information from any combination of first name, family name, occupation and exact or approximate address of the 700,000 subscribers. Various ways of spelling are also considered when the sample of subscribers fitting the given characteristics is found and presented to the terminal operators. The system has a busy-hour capacity of 12,000 inquiries per hour; the average response time is 0.7 sec. with only 2% exceeding 3 sec. and max. response time is 4.5 sec. The network is built of RC 3600 Minicomputers acting as terminal concentrators, network nodes and mainframe interfaces. At the central site the nodes are connected directly by I/O channels capable of transmitting at a rate of 5 Mbps. The four remote ad- ministrative centers are connected to the central site by means of a star-shaped network consisting of 5 48 Kbps transmission lines all driven by a single RC 3600. Århus is the largest urban area and consequently two 48 Kbps lines are used for this office. The interconnection between the two 3600s is made to secure system availability; if one of the transmission lines is down, all the traffic can be routed to the other line. The Åbenrå office, in fact, belongs to another com- pany, but to some extent the two companies have common admini- stration. The Åbenrå office is therefore connected by a 48 Kbps\f T_ TEGNING 13. & \f line to the Kolding office which then acts as a node in the net- work and routes the data towards the central site. CEMTRAL SITE Conversion Order Administration Development T_ Department & technical service 7 DQ 3 DQ 33 Adm. 23 Prog. NETWORK ÅrhusÅbenrå 27 DQ Ålborg Kolding9 Adm. Holstebro 2 Adm16 DQ 17 DQ 10 DQ 10 Prog.14 Adm. 12 Adm. 10 Adm. The two computer systems, the DQ and the administrative system, are served via the network from a total of nearly 200 terminals. DQ and Adm. terminals are VDU terminals with custom made key- boards for these two applications. 160 of these dedicated termi- nals, supplied by RC, are distributed over the 5 district offices and the central site. 7 DQ terminals at the central site aretem-\f porarily used for conversion from the former manual systems to the new terminal systems. The rest of the terminals named "Prog." are ordinary VDU terminals used for other applications under the time sharing system on the administrative system computer and the third RC 8000. These other applications include program develop- ment and maintenance, technical computations, budget simulation etc. Application reports are issued regularly by the RC company. These reports provide interesting and useful information of users appli- cations and equipment. To obtain reports on topics that may be of particular interest to you just ask your RC contact person. \f T_user input A_C_T_I_O_N_ Terminal "system output"C_O_M_M_E_N_T_S_ BOSS acknowledges LOGINlogin by returning PROCEDUREdate and time. We are now connected ALGOL source text. COMPOSAL Each line is pre- OF JOB ceeded by an identi- C_O_M_P_O_S_E_R_T_E_X_T_ Afication number. A missing line is EDITING inserted according to identification number. ENROLLMENT OF BOSS returns estima- JOB ted finishing time. JOB Output from ALGOL OUTPUTcompiler. Output from Object program END OF JOB BOSS returns run time and finishing time. &_ \f T_ Input by user A_C_T_I_O_N_ TERMINAL "Output" by system C_O_M_M_E_N_T_S_ LOGIN PROCEDURE Read and written by BOSS CALL OF ALGOLRead by File Proces- COMPILER sor ALGOL SOURCE Read by ALGOL PROGRAM compiler CALL OF OBJECT C_O_M_P_O_S_E_R_T_E_X_T_ B Read by File Proces- PROGRAM sor INPUT DATA Read by Object program END JOB Read by File Proces- sor START EXECUTION ESTIMATED FINISHING TIME OUTPUT FROM Read and ALGOL COMPILER written by BOSS OUTPUT FROM OBJECT PROGRAM JOB TERMINATED &_ T_ &_\f \f «eof»