Patent GB-1150110-A (GB)
Title: Multi-Processor Computing System
IPC: G06F13/374
Filed: 1967-12-27
Abstract: 1,150,110. Multi-processor computers. INTERNATIONAL BUSINESS MACHINES CORP. 27 Dec., 1967 [3 Jan., 1967], No. 58602/67. Heading G4A. In a multi-processor computing system, each processor is connected to an associated controller which can request an instruction sequence in another such controller, the controllers communicating directly with each other over a bus. The processors (some of which may be input/ output controllers or channels) share a common memory. Each processor communicates directly with a respective interaction controller, the interaction controllers communicating directly with each other over a common bus. Each interaction controller contains a readonly store holding instruction sequences which can be executed by the controller concurrently with instruction execution in the processors and in other interaction controllers. The sequence may be a " P-sequence " executed at the request of the associated processor, or an " R-sequence" executed at the request of another interaction controller. A request for a P-sequence will only be granted if the interaction controller is not currently working on either a P-sequence or an R-sequence. A request for an R-sequence, which always originates in a P-sequence being executed by another interaction controller, will be granted only if the requested interaction controller is not currently working on an R-sequence. If it is so working, the requesting P-sequence is held up until the R-sequence can be performed. If the requested interaction controller is merely working on a P-sequence, this is interrupted to perform the R-sequence, the read-only store address reached in the P-sequence being saved to permit resumption after the R-sequence has finished. The first read-only store address of a P-sequence is supplied by the processor and that of an R-sequence is supplied from the read-only store of the requesting interaction controller. Each instruction from the readonly store specifies the address of the next instruction (as well as providing signals to be decoded to perform the required operations) until the end of the sequence. Access to the bus is given to all the interaction controllers in turn. The controller which has access uses it to request one or more R-sequences if required, by applying in each case an " enter " code to the bus followed by either the identifier of the desired interaction controller or all-ones meaning all other interaction controllers are desired. The (or each of the) desired interaction controller(s) recognizes its own identifier (which it is holding in a register) or the all-ones, and responds as above. When the R-sequences required (if any) have been executed, the controller having access relinquishes it by applying a " take-over " command to the bus followed by a " next controller " identifier from a register. The identifier is recognized by one of the other interaction controllers by comparison with its own (held in a register-see above), this controller thus acquiring access to the bus. The order in which the interaction controllers acquire access may be altered by changing the stored identifiers. An R-sequence instruction may cause comparison of data on the bus from the interaction controller which requested the R- sequence, with data in a register for equality, the answer being sent over the bus to the interaction controller which requested the R- sequence.