Patent GB-1267384-A (GB)
Title: Automatic context switching in a multi-programmed multi-processor system
Inventor: WATSON WILLIAM JOSEPH
IPC: G06F13/12
Filed: 1969-06-12
Abstract: 1,267,384. Data processor. TEXAS INSTRUMENTS Inc. 12 June, 1969 [9 July, 1968], No. 29855/69. Heading-G4A. The invention relates to a computer performing arithmetic operations on vectors. A computer has a central processing unit, a peripheral processing unit containing a-plurality of virtual processors coupled to a common arithmetic unit, several memory units including magnetic tape; disc and thin film, a card reader and punch, a line printer, cathode-ray tubes and keyboards. The CPU 10 executes user programmes which. require input/output services from the PPU 11. Programmes which can proceed without waiting for an I/O service to be provided request a system call and proceed SCP command on line 41 and the programme continues. Programmes which cannot proceed without the service wait and a new programme is selected. The PPU constantly analyses the programmes in CPU 10 not being executed and chooses which is to be executed next and sets a switch plug 44. When a SCW command appears from the CPU on line 42 the switch plug enables an AND gate 43 which resets the plug and causes an indication of the next programme to be executed to be fed to the CPU. This enables the next programme to be executed without delay caused by a dialogue between the CPU and the PPU. The computer operates on vectors (X 1 , X 2  ... X n ) and is arranged-to multiply matrices where  P C ij = #a ik b kj . To-produce the matrix c two  k=1. programme loops are-followed, an inner loop to produce-rows, e.g. C 11 C 12 C 13  and an outer loop changing the indices to allow the inner loop to produce the next row. The computer communicates at high speed with the arithmetic unit and is capable of looking at four succeeding operations-at the same time (Fig. 7) so that as the arithmetic unit is performing a calculation T 1  Store/Fetch and Control Unitsare preparing for the next operation T 2 , the index and instruction buffer units prepare for the following operation T 3  and the instruction Fetch Unit is obtaming the next instruction. Data to the AU is passed via buffers A<SP>1</SP>, A and B<SP>1</SP>, B and is returned via buffers C<SP>1</SP>, C a word being supplied per clock pulse and an arithmetical operation being performed in general during a clock pulse. A<SP>1</SP> generic vector instruction acquired in Unit 128 transfers data from a vector parameter file 125 to file 132 so that complex vector operations are specified at the machine language level. The file 132, use for multiplying vectors A and B to produce C defines the starting addresses in store of the three vectors, the number of elements in the operation, the number of turns in each loop and the address increments for each loop, and the file works in conjunction with file 133 holding the current address of the vectors and the vector and loop counts. The arithmetic unit is pipe-lined and has, several units performing different jobs and capable of being cross coupled indifferent ways. The virtual processors are selected by means of the unit shown in Fig. 13. As described 8 virtual processors are used and two registers between them holding as many four bit words as there are time sharing slots in a timing cycle are provided each four bit word feeding a set of four AND gates which sets are successively enabled by a counter 418 fed with clock pulses. Each AND gate of a set feeds a separate OR gate 450-453 which feeds a register coupled to a decoder 455. Each four bit word contains 3 bits identifying one of the eight processors and one bit enabling or inhibiting the decoder. The decoder supplies a signal coupling one of the processors and the arithmetic unit together. The registers allow any desired allocation of time to any processors and allow easy change of the allocation.