Patent GB-1408011-A (GB)
Title: Stored programme multi-processor computer
IPC: G06F15/16
Filed: 1972-09-07
Abstract: 1408011 Multiprocessinging systems- TEXAS INSTRUMENTS Inc 7 Sept 1972 [7 Sept 1971] 41670/72 Heading G4A A control system provides control, scheduling, and resources necessary for the orderly and efficient flow of stored computer programs for multiprogramming. It comprises a hierarchy of four stored program controllers with each controller exercising control over a given level of work. Each of the controllers is responsible for servicing certain computer resources and makes scheduling decisions within its respective area of responsibility. The four stored program controllers, which operate in different virtual processors within the computing system, are the Master Controller, the Command Controller, the Task Controller, and the Disk I/O Controller. Each controller has one or more input and output queues which are configured in doubly linkedlist fashion which provides for communication necessary between controllers, e.g. the output of one controller is positioned into the input queue of another controller.  The Master Controller is at the top of the controller hierarchy and communicates with all processors and devices through an array of communication registers. Several of the registers are partitioned into bit fields which represent the request status of processors and devices which are monitored frequently by the Master Controller to determine when certain functions are to be performed. The Master Controller acknowledges requests by changing the bit status in the communication registers and passes the request to the command controller. The Master Controller has the ultimate scheduling authority for all hardware in the computer system and may force a processor to yield if a high priority resource requests service. The command controller is responsible for scheduling the sets of computer instruction groups, called commands, each of which performs a function with a predetermined and reverse resource. The controller constructs the sequence of commands in a queue necessaary to define a process. The execution of the command queue resulting from the operation of the command controller is controlled by the next level of the control hierarchy, the Task Controller. To obtain the optimum efficioncy of the virtual processors, it is desirable to time share their processing power among small program units. The commands in the queue constructed by the Command Controller are broken down into small program units called tasks. Each task has memory and execution time limits such that no system command will monopolize a processor in an unproductive manner. The Task Controller is next in the controller hierarchy and has the function of scheduling each task, monitoring task linkage, managing transient system central memory, and ensuring completion of commands as directed by the Command Controller. The task controller also has the responsibility of servicing requests for data transfers between memory and secondary peripheral storage devices. Task requests for disc processing are the responsibility of the Disc Controller. The Task Controller constructs lists of disc input/output requests and Disc Controller reorders the requests so that the use of the data channel associated with the discs is optimized. The system (Figs. 1 and 2, not shown), comprises a CPU, a peripheral processing unit PPU, a card reader/puncher, a printer, a twin CRT monitor console for hardware/software checking and interrupt, a memory control unit 20 for gating, mapping and memory protection, and five levels of memory namely, the CPU store, main memory units 12-19, a bulk memory extension, disc units and tape units. The PPU contains eight virtual processors P 0 -P 7  including program counters which may be programmed to operate various peripherals as required. The processors P 0 -P 7  take instructions from the memory units 12-19 and time share arithmetic unit 400. The time allocation between the processors is variable, (Fig. 3, not shown), each processor has a buffer 420-427 which may hold memory requests which are handled on a priority basis, a diode read only memory 430 holds a bootstrap program and control programs for the peripherals, and communication registers 431 are provided, two of them being used for time allocation between processors P 0 -P 7  (Fig. 6, not shown). The PPU can provide program lookahead for the CPU (Figs. 7 and 8, not shown).