Patent GB-1170285-A (GB)
Title: A Modular Multicomputing Data Processing System
IPC: G06F12/00
Filed: 1966-11-22
Abstract: 1,170,285. Data processing systems. BURROUGHS CORP. 22 Nov., 1966 [26 Nov., 1965], No. 52186/66. Heading G4A. A modular data-processing system comprises one or more central processor modules and one or more input/output control modules, all of which modules may make simultaneous accesses to a multiaccess modular main memory and each of the processor and control modules comprising means for concurrently processing a plurality of sequentially received programme steps. As shown (Fig. 10) the system may comprise up to 16 thin-film memory modules 10-710 and up to 16 central processor or computer modules 10-310 and input/output control modules 10-510. Each computer and control module is connected in common to each memory module by buses 10-312, 10-326 &c. for the transmission in either direction of 52-bit words (of which bits one is for parity). Central processor modules -Each processor module comprises a communication unit 10-314 for handling autonomously all fetch and writeto-memory operations, an ADVAST unit 10-318 for preprocessing of programme instructions on a look-ahead basis and a FINST unit 10-322 for final instruction execution. The preprocessing in ADVAST unit includes the unpacking of instruction syllables, the calculation of all absolute addresses from the contents of base registers, instruction address registers, and index registers and the fetching of operands to be used by FINST. Checks are made that calculated addresses fall within permitted bounds for the programme then being processed. Buffer queues are provided in each unit and an associative store is provided for storing frequently used data (e.g. programme reference data and indexing data) and data about to be stored in main memory. FINST performs all arithmetic and logic operations on data according to the Polish Notation using a last-in-first-out store. Provision is made for direct communication between the processor and control modules. This module is described in greater detail in Specification 1,164,475. I/O control module.-Each control module comprises an I/O processing unit 10-534 for communicating with processor and memory modules, a local thin-film memory unit 10-522, a data service unit 10-518 for communicating with the memory modules and up to 512 controller units (not shown) of peripheral equipment such as magnetic discs, card readers, magnetic tape units and telegraph terminals and a communication unit 10-514 for handling the communications with processor and memory modules. All units operate autonomously. Some or all of the peripheral equipment controllers may be shared by several control modules. Local memory 10-522 stores control words (of 104 bits each) for defining the type, direction, status &c. of all current I/O jobs. The data service unit 10-518 can handle transfers of different byte size and speed depending on the peripheral equipment involved, parts of the local memory unit being used as a buffer in the packing and unpacking of data. When a processor module requires I/O jobs to be preformed it transmits to an I/O module on lines 10-532 an address in main memory where it has stored a list of required jobs. The I/O processor of the control module then sets up descriptor control words in the local memory defining these jobs. The data service unit controls the actual transfers and informs the I/O processor when a job is completed, the I/O processor then interrupting the central processor module to inform it of this fact. This module is described in greater detail in Specification 46813/66. Main memory modules.-Each main memory module comprises a thin-film stock for storing 16384 words of 52 bits each and a communication unit which grants accesses on a firstcome-first-served basis and resolves conflicts on a priority basis. The memory, which is read destructively, has provision for handling four words in parallel in each read/write cycle. Transfers between a memory module and another module may comprise one word or four words sent serially by word. For writing a single word, for example, four words are read into memory output registers and the one new word temporarily stored in an appropriate one of four input registers together with the three old words are re-written. A parity check is made after each read cycle. Operating system.-The executive and scheduling programme and other programmes for compiling, I/O procedures &c. are also organized on a modular basis, each module or segment relating to a different function. Programme reference tables are provided containing information for controlling jumps, for checking address bounds, for indirect addressing and for calculating absolute addresses from base address data. Data sets are provided which may be unique to or shared by programme segments. Segments are held in main memory only whilst active and are transferred to disc when inactive. Tables are kept of the name, size and location of segments or files in main memory and on discs respectively. Provision is made for storing the contents of registers when a programme is interrupted. A count is kept of the use made of segments or files on the discs and little used segments are transferred to tape. The flow of jobs through the system is controlled by a number of programmes. Information relating to jobs to be processed may be fed to the system for example from cards or tape. A cold job table is prepared of jobs available for execution, said table including data indicating the priority, running time, required storage space and other programme files required for each job. A collector programme checks for example that required files are in the system and an input scheduler determines the order of jobs in the table. Jobs selected from the cold job table as and when storage space and peripherals permit are transferred to a hot job table of active programmes. Peripheral and output scheduler programmes maintain an efficient flow of data, information for printing being transferred to magnetic tape for instance if a backlog of information to be printed builds up.