Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ IntroductionA. System overviewB. Program executionC. FilestoreD. GEORGE commandsE. Introduction to Multiple On-line Programming (MOP)F. Input of background jobsG. Editing filesI. Budgeting, scheduling and accountingJ. Monitoring filesL. FORTRANM. ALGOLN. Assemblers PLASYD, PLANP. ConsolidatorQ. LibrariesR. Data storage □ Sections S-Z unavailable □ S. Large program organisationT. User utilitiesV. Graphics packagesW. Other packagesX. Efficient use of the 1906AY. 1906A hardwareZ. Peripheral equipmentList of reference manualsIndex
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureICL 1906A manuals1906A Reference Manual
ACLLiteratureICL 1906A manuals1906A Reference Manual
ACL ACD C&A INF CCD CISD Archives
Further reading

IntroductionA. System overviewB. Program executionC. FilestoreD. GEORGE commandsE. Introduction to Multiple On-line Programming (MOP)F. Input of background jobsG. Editing filesI. Budgeting, scheduling and accountingJ. Monitoring filesL. FORTRANM. ALGOLN. Assemblers PLASYD, PLANP. ConsolidatorQ. LibrariesR. Data storage
Sections S-Z unavailable
S. Large program organisationT. User utilitiesV. Graphics packagesW. Other packagesX. Efficient use of the 1906AY. 1906A hardwareZ. Peripheral equipmentList of reference manualsIndex

A. System Overview

A.1 1906A HARDWARE

A.1.1 INTRODUCTION

The ICL 1906A is one of the largest machines in ICL's 1900 range of computers. The range incorporates machines having significantly different performances. At one end of the scale there are quite small processors like the 1901 which can have as little as 4K words of 6 οsec store while at the other end there is the 1906A which can have 512K words of 650 nanosec store. A word of store on the 1900 range is 24 bits in length (Y.1.1). This wide range of machines does impose certain restrictions on the architecture of the individual computers although these are minimised by allowing some variations through the range. The smaller machines do not have the complete hardware order code while the larger machines have additional orders and different addressing schemes. A full description of the 1906A hardware is given in Part Y.

A.1.2 CONFIGURATION

The main hardware units of the 1906A are:

CORE STORE IU Instruction Unit PPU Peripheral Processing Unit EPFPU Extended Precision Floating Point Unit SLOW Paper tape and card readers/punches. Lineprinters FAST Tape decks. Exchangeable Discs. HIGH SPEED Drums Channels 7903 RJE Stations Teletypes

The IU (Instruction Unit) decodes instructions and performs fixed point operations while the EPFPU (Extended Precision Floating Point Unit) performs all floating point operations. Input/output between the core store and peripherals is controlled by the PPU (Peripheral Processing Unit). Devices are connected to the PPU via different types of channel depending on the speed and characteristics of the device. Slow channels are used for the standard unit record peripherals, fast channels for tape decks and exchangeable discs and high speed channels for drums. The drums are mainly used for paging (A.1.3) and holding frequently-used parts of the svstem software. A complete description of the hardware available at ACL is given in the Users' Handbook.

Remote access to the 1906A is achieved by attaching remote devices to a small special purpose communications processor, the 7903, which is itself attached to a fast channel. It is more efficient to attach terminals and RJE stations in this way as it allows the 7903 to provide a number of housekeeping functions which would otherwise have to be done in the 1906A itself.

A.1.3 ACCUMULATORS

There are eight special purpose 24-bit accumulators, X0 to X7, which can be used to hold integer quantities. Instructions exist in the order code for performing logical and integer computations using the contents of these accumulators (A.2). Three of the set (X1, X2 and X3) are called modifiers and have the special property that their contents can be used to modify the address accessed in an instruction.

Floating point numbers are normally held in two 24-bit words and instructions using them are executed using the EPFPU. Smaller 1900 computers may not have floating point hardware, in which case the floating point operations are carried out by extracodes; obeying the 1900 floating point instruction causes a subroutine to be entered which performs the floating point operation using the integer accumulators. The EPFFU is a special hardware unit which performs the floating point operation directly. In addition to the standard 48-bit floating point numbers, the EPFPU can carry out double length floating point operations.

A.1.4 ADDRESSING

A 1900 instruction fits into a 24-bit word. A typical format for an instruction involving the contents of an integer accumulator is:

0 3 10 12 23 X F M N

The F field defines the operation to be performed and the X field gives the integer accumulator to be used in the computation. The two fields M and N between them usually define the address of the operand required in the instruction. A typical instruction loads the specified accumulator with the contents of the address given. If the M field is zero, the 12-bit N field is the address of the operand. If the M field is non-zero, the address consists of the contents of the modifier added to the N field.

Each individual program is compiled and loaded so that its addresses start from 0 upwards. Without special hardware this would mean that only a single program could be in store at any one time. Although this may be sensible on the smaller 1900 computers, it is inappropriate on the larger ones where there is a need to multiprogram several jobs and, therefore, a number of jobs need to be in core together ready for execution.

On ACL's paged 1906A, the core store is divided into a number of pages of 1K words (1024) each. The user's program is effectively broken into a number of pages of the same size which may reside anywhere in the core store. Special hardware ensures that the correct addresses are accessed each time. There is, in fact, no intrinsic need for all the pages associated with a particular program to be available in core store all the time. On the 1906A, the operating system, GEORGE 4, keeps copies of all pages being used on backing store. Pages are brought into core store as they are required. This effectively makes the backing store and core store look like a single level of storage (often called one-level store). As far as programs are concerned, the available store is now as large as the backing store set aside for this purpose. On the 1906A, an area of store on a fast drum is used as the swap area where pages are kept.

An additional advantage of paging is that the program need not be a continuous range of addresses. Programs may be defined as sparse in which case storage is only allocated for those pages which are used in a program. This can be useful when the program has arrays or stacks which may be of unpredictable length. The user may place his arrays so far apart in the address space that there is no danger of them overlapping without incurring the penalty of having pages allocated for all the intermediate addresses.

A.1.5 PROGRAM LAYOUT

As can be seen from the previous section, each program appears as though it is defined starting at location 0. Due to the small address field of 12 bits in the 1900 instruction formats (Y.2.2), it is only possible to access the first 4096 words of a program directly. Other operands have to be accessed using the modifier accumulators. The first 4096 locations of a program are called LOWER storage. If the program requires to access more operands than can be stored in LOWER, these must be allocated storage with higher addresses. These operands are said to reside in UPPER storage. The standard method of accessing the UPPER data area in 1900 software is to place in LOWER the base addresses for areas of UPPER not greater than 4096 locations in length. Accessing an operand in the UPPER data area is achieved by placing the displacement from the base in the address field of the instruction itself and modifying this by the contents of the LOWER location containing the base. To keep the number of LOWER store locations used in this way to a minimum, it is usual to divide the UPPER data area into sections as close to 4096 words in length as possible.

The standard layout of a 1900 program is as follows:

Accumulator X0 - X7 0 - 7 Reserved words 8 - 44 LOWER data area 45 - Program UPPER data area

The first 8 locations of a program are the accumulators X0 to X7. Therefore, it is possible to access these either by using the special accumulator instructions or as if they were standard core locations. The next area of store is a set of locations which have specialised system use. The upper limit is usually address 44.

Variables and constants defined in the LOWER data area are allocated space above the reserved words. It is usual to load the instructions of the program immediately after the LOWER variables and constants. The first location of the program code should, therefore, be less than or equal to 4096. Although not essential, it is usual to allocate space for UPPER variables and constants immediately after the program code.

A.2. EXECUTIVE AND GEORGE

A.2.1 EXECUTIVE

All 1900 series computers have an Executive program which, to some extent, can be thought of as an extension of the hardware. The aim is that Executive should provide a standard interface to user programs independent of the particular 1900 computer. On most 1900 computers, some instructions in the 1900 order code are not available in the hardware. Instead, these instructions are obeyed as extracodes by Executive. Attempting to execute such an instruction will cause an interrupt to occur which will be serviced by Executive. After checking that the instruction is sensible, Executive will call the relevant subroutine to interpret it. When control is finally returned to the original program, the result is the same as if the instruction had been executed by hardware.

On all 1900 computers, some instructions are executed as extracodes. In particular, all peripheral instructions are interpreted by Executive and GEORGE. In order to ensure that the hardware instructions capable of initiating peripheral transfers and determining their status are not available to all programs, the 1906A central processing unit can be in one of two modes. In normal mode it is impossible to obey certain privileged instructions. These are only available in a special Executive mode.

The Executive program can deal with all interrupts that may occur. It is quite possible to run jobs on a 1900 computer with Executive controlling the jobs. However, on all but the smallest 1900, ICL provide one of the GEORGE operating systems to control the flow of work through the computer. The operating system suitable for a paged 1906A is GEORGE 4. The larger unpaged 1900's tend to use the GEORGE 3 operating system which is very similar. As far as the user is concerned GEORGE 4 is the same as GEORGE 3 but with some additional facilities. In the remainder of this Manual, the term GEORGE will be used to refer to GEORGE 4.

A.2.2 GEORGE

If an operating system, such as GEORGE, is in use on a 1900 series computer, all programs run under its control. The principal function of Executive in this environment is to inform GEORGE of all events causing interrupts (operators engaging a peripheral, end of peripheral transfer, program failure, certain extracodes etc). The GEORGE operating system is a privileged program and has access to special Executive information by means of extracodes. To some extent, GEORGE can be thought of as a super-Executive in that it needs to have control of many basic facilities which are normally the preserve of Executive. The reason for having a sharp differentiation between Executive and GEORGE is mainly historical. To some extent, this distinction is becoming less precise as the operating system develops.

The main tasks carried out by GEORGE are:

  1. Job Scheduling to ensure that the total machine resources are used effectively.
  2. The provision of a filestore in which users may store programs and data for subsequent use. A system is provided to ensure that no information is either lost or accessed illegally.
  3. Automatic interpretation of operating commands which would otherwise have to be carried out by an operator.
  4. Spooling of input/output to files instead of programs being connected directly to peripherals.
  5. Facilities for accounting and budgeting.
  6. Running of jobs in both a batch and interactive mode.

It is possible for the operators to override some of the controls listed above.

A.2.3 FILESTORE

Both programs and data can be kept in the GEORGE filestore. Files are not held on any one particular storage medium. It is possible to configure the system so that files reside on drums, discs and magnetic tapes. The user need not know where a particular file is held at a particular time since he identifies files by the names he has assigned to them and not by their hardware position. Files are given names which are a maximum of 12 characters in length (for example, AFILENAME). Each file is owned by a specific user who is known to the system uniquely by his username (C.1.2). At ACL, all proper usernames, other than special system ones, consist of a colon followed by four alphabetic and two numeric characters (for example, :NTBE34). A username and filename uniquely define a file within the system. Facilities are provided for inputting, accessing, modifying and outputting files. The GEORGE operating system is completely file-oriented in the sense that virtually every function of the operating system involves some form of file manipulation.

Files can contain many different types of information. Files containing programs and data in their text form are widely used. However, compiled programs, binary data and other types of information may also reside in the filestore. A full description of the facilities available is given in Part C.

A.2.4 COMMAND LANGUAGE

Communication with the GEORGE operating system is achieved by using commands written in the GEORGE command language (D.1). For example running a job will normally require a set of GEORGE commands to be obeyed. Each command is written as the command name followed by parameters separated by commas (some of these may be optional). At least one space is required between the command name and its parameters. A full description of GEORGE commands and their meanings is given in Part D. The command language is similar in form to a simple high-level language having both labels and conditional jumps. Any command may be preceded by a label. It is possible for the execution of subsequent commands to depend on the results of earlier ones in a sequence.

One powerful feature of the command language is the macro facility which allows new commands with parameters to be defined in terms of existing ones. The basic set of commands is augmented by a set of system macros which are new commands produced using the macro facility. It is usual for a particular installation to add to the set of system macros a set of commands appropriate to its needs. Similarly, users may define their own macros (macro commands). A macro is defined by a macro definition file which contains the parameterised commands to be obeyed each time the macro is used.

A.2.5 JOBS

The unit of work submitted to GEORGE is called a job. The information necessary to run a job is input in the form of a job description comprising a series of commands from the GEORGE command language. There are three different ways in which a job can be presented to the 1906A:

(1) The job is submitted at a batch peripheral such as a card reader. The job description must be headed by a JOB command which defines a unique jobname for the job and gives the relevant username. The jobname consists of up to 12 characters. The JOB command must contain a JD parameter which gives the relevant scheduling information for the job. Scheduling depends on the time and store needed for the job and also its backing store requirements. The job description ends with an ENDJOB command followed by a line consisting of ****. An example is:

JOB MYFIRSTJOB,:NTBE34,JD(JT 30 SECS)
......
......        GEORGE commands
ENDJOB 
****

This type of job is called a background job.

(2) The job is initiated from a terminal. The individual GEORGE commands will be executed as soon as they are input. Such a terminal is called a MOP (Multiple On-line Programming) terminal on the 1906A. The commands must be preceded by a LOGIN command which gives the jobname and username. The job is terminated by a LOGOUT command. For example:

LOGIN MYFIRSTMOP, :NTBE34
....
....
....
LOGOUT

In this mode of working, GEORGE responds to each command entered so that the user at the terminal knows when a command has been obeyed. One of the main features of the GEORGE operating system is that nearly the same set of commands is used for both terminal and batch jobs. This type of job is very different from the first type. Under many operating systems it would not be considered as a job at all but just a terminal session. Fuller details are given in Part E.

(3) For background jobs which are likely to be run more than once, it is possible to input the job description into a file (without the JOB command). This job can then be initiated by a RUNJOB comma which defines the jobname and username as well as the name of the file containing the job description. If the job description is stored in file JDFILE, the RUNJOB command could be:

RUNJOB MYFIRSTRJ,:NTBE34,JDFILE,JD(JT 40 SECS)

The JD parameter gives scheduling information for the job in the same form as that used in the JOB command. The RUNJOB can be entered directly at either a MOP terminal or a batch reader. Alternatively a modified form of the RUNJOB command can be used to start a job from within another job. This is particularly useful when a user is logged-in at a MOP terminal. In this case, the username is defined by the LOGIN command for the MOP job and can be omitted in the RUNJOB command. The term MOP job is sometimes used to refer to jobs of types (2) or (3) initiated from a MOP terminal. A convention at ACL is that MOP jobs should contain the characters MOP somewhere in the name of the job.

For each job run, GEORGE produces a monitoring file, which indicates the commands that have been obeyed and provides additional information about the job (Part J).

A.2.6 COMPILATION SYSTEM

The 1900 series compilation system is similar to that on other computers in that high level language programs are translated by a compiler into a relocatable internal form close to machine code. This internal form is called semicompiled (P.2). Programs or subroutines may be stored within the filestore in this semicompiled form. A program to be executed may well consist of a number of semicompiled segments together with some pre-compiled library routines already in semicompiled form. A loader, called a consolidator, will amalgamate a number of semicompiled segments, search libraries for relevant routines and produce a binary version of the program in the computer ready for execution. The consolidator can search more than one librarv. It is also possible for semicompiled segments produced from different high level languages to be consolidated into a single program. The binary version of the program may be saved for running at a future time.

A.2.7 INPUT/OUTPUT STREAMS

The main compilers on the 1906A have an inelegant method of assigning files to particular input/output streams in the program. This is necessary to maintain compatibility with earlier systems. Consider, for example, a typical FORTRAN program making I/O requests of the form:

      READ(1,900)I,J,K 
      WRITE(2,800)S,T

Such statements expect input to be provided on stream 1 while output from the program is directed to stream 2. The smaller 1900 computers allow the user to connect these streams to specific peripheral equipment. For example, input may be put in card reader number 2 and output is directed to lineprinter number 1. The main compilers assume that this will be the mode of working. To achieve these connections, programs in FORTRAN (and other languages) are required to have a program description at their head which makes these definitions. For example:

PROGRAM(PROG)
INPUT1=CR2
OUTPUT2=LP1
.......

There are standard mnemonics such as CR for card reader and LP for lineprinter. The PROGRAM statement defines a name for the FORTRAN program as a whole.

When using an operating system like GEORGE, users are not normally allowed to access card readers and lineprinters directly. Instead, it is likely that input will come from permanent filestore files and output is likely to be directed to temporary files which will be printed when the operating system has a lineprinter available. It is, therefore, necessary for the macro command which executes the FORTRAN program to define the files to be assigned as pseudo card readers and lineprinters. Without the earlier history of the 1900 series, it is likely that a system would have been defined which linked the FORTRAN stream numbers directly to filestore files. An introduction to running programs on the 1906A is given in Part B.

A.2.8 DUMMY FILENAMES

For historical reasons, some of the compilers and other standard ICL software packages require filenames to be specified, although they have no significance at ACL. In this case, the user is free to make up any name he chooses. The name A is often used, for example. In the subsequent sections of this manual, the term dummy filename will be used for such a filename.

⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site