Patent GB-1271928-A (GB)
Title: Data processing system
IPC: G06F9/46
Filed: 1970-06-04
Abstract: 1,271,928. Data processing. INTERNATIONAL BUSINESS MACHINES CORP. 4 June, 1970 [10 June, 1969], No. 26958/70. Heading G4A. A data processing system includes a plurality of processors each adapted to be switched between a normal mode and a vector mode, and means whereby a "vector mode initiating" instruction in a programme that a processor is currently executing designates that processor as the originating processor for the vector mode of operation and causes one or more other processors to be placed in the vector mode and to store the states of their current tasks to permit subsequent resumption after the last instruction of the vector mode of operation. As disclosed, the initiating instruction specifies the number of processors required and the address of the first instruction of the vector task, and causes an availability and priority table to be loaded from memory (common to all the processors) into an array of flip-flops. This table contains the identifying numbers of all the processors in order of increasing priority, each tagged to indicate if it is available or not for a vector mode operation. The processor locates its own number in the table, this being marked to effectively exclude it from the table, then the available processors in the table are counted to see if there are enough, and if so, the required number of processors are taken (starting at the low priority end) from the table, their identification numbers being decoded to set respective flip-flops in an "other processors" register and to signal the respective processors. These processors register the current value of an index quantity, produced in the originating processor by incrementing a counter each time a processor is selected from the table, and they also save their current (normal mode) tasks. In the vector mode, the processors involved each obey the same instructions obtained from memory by the originating processor and supplied by it to the other processors, but use respective parts of a data vector, the parts being selected by the index quantities respective to the processors. After the last vector instruction, an "end vector mode" instruction causes the processors involved to revert to normal mode. The processors communicate with each other via respective interaction controllers and a common bus, and obtain operands and instructions from a common multi-module memory. Modifications.-Two sets of memory modules may be provided, one for instructions and the other for operands, or if there are two vector tasks running concurrently, the processors on one task could get their operands from the first set and their instructions from the second, and the processors on the other task could get their operands from the second set and their instructions from the first. Each processor could have a local store for receiving vector task instructions either direct from the memory in every case, or from the originating processor in the case of non-originating processors involved and from the memory in the case of the originating processor. If the local stores are not large enough to contain a whole vector task, this may be partitioned between the local stores, the role of instruction accessing (from local store) being passed to the respective processors in turn. The initiating instruction may not specify a number of processors, in which case all available are used, or it may specify an upper or lower bound for the number required. Of the processors selected to participate in a vector mode task, each could select the next instead of the originating processor selecting them all. The processors could communicate via memory, or via a common bus, or via common operand and instruction buses. The originating processor could cause the memory output to be supplied directly to all the processors involved in a vector task.