Patent GB-1481609-A (GB)
Title: Apparatus arranged to process a plurality of discrete computing tasks
IPC: G06F12/06
Filed: 1974-12-30
Abstract: 1481609 Data processing system CONTROL DATA CORP 30 Dec 1974 [21 Jan 1974] 56060/74 Heading G4A In a multiprocessor data processing system including a main memory storing a plurality of tasks and a task description table containing, for each task, an entry specifying data necessary for the execution of that task status flag, each processor is arranged during the execution of a task and in response to a "call task instruction" to store in the description table a corresponding task entry including a status flag indicating "ready", and in response to an "end task instruction", terminating the current task, to search the task description table for an entry whose status flag indicates ready and in response to the location of such an entry to change the corresponding status flag to "execute" and to load the corresponding task from the main memory into its local memory from where it is executed. As described eight processors are provided each being generally similar to the others except that one has certain overall control functions, e.g. monitoring for faults. Initially a start-up program, which may be hard wired in the control processor or read in from a peripheral, is executed to load common executive routines (shown in Fig. 5) in specified areas of the local memory of each processor. The executive routine starts at point A and causes the processor to search the task description table in the main store, interlocks being provided to ensure that only one processor at a time has access to the table. Each processor is coupled by a pair of data channels to a main store access unit which includes three buffer stores and other interface equipment, each buffer acting to accumulate 480 bit words for the main memory from 12 bit words supplied by the processors and vice versa. The processor words include address signals and read/write function codes &c. When a table entry showing "ready" status and indicating that the corresponding task is suitable for execution by the searching processor is located the status flag is changed from "ready" to "execute" and the task is copied from main memory into the processor local store for execution, there being suitable routines for acquiring the appropriate data, specified by the table entry, to allow the task to be executed. To allow tasks to co-operate certain tasks include "call task", "set flag", and "test flag" instructions. In response to a "call task" instruction the processor establishes an appropriate task entry with its status flag at "ready" and stores it in the main memory from where it is subsequently accessed by any one of the processors. When one task requires data collected by another, the first task performs a "test flag" routine to test a flag which is stored in a flag table by the other task when the data is available. If the "test flag" routine detects that the flag is not set the requesting task status in the description table is changed to "wait" and a search is instituted through the table entries for another task to execute. When a task is suspended, e.g. after a "test flag" routine, a save procedure enables data relating to the task to be stored and subsequently retrieved when the task is resumed. The "set flag" routine establishes a flag in the appropriate entry and sets the flag to the appropriate state or merely sets the flag if it already exists. The "set flag instruction" also changes the status of all tasks waiting for the flag, determined by corresponding references in the flag table, from "wait" to "ready". In response to an "end task" instruction indicating that the current task is complete the status flag in the appropriate description table entry is set to "terminate" and a procedure is followed to examine the the entries of all related tasks, i.e. tasks called by the terminated task and tasks which called the terminated task. The appropirate entries in the description table are then deleted if appropriate, e.g. the entry of the terminated task is deleted if no other active tasks were called by it. The system is described in some detail with each processor having up to eight associated peripherals, e.g. card readers, punches, magnetic tape devices, CRT, &c.