Multi-processor having control over synchronization of processors in mind mode and method of operation
First Claim
1. A multi-processor system operable in either a single instruction multiple data (SIMD) mode, in a multiple instruction multiple data (MIMD) mode or in a synchronized multiple instruction multiple data (SMIMD) mode comprising:
- a synchronization bus having a plurality of bus lines;
a SIMD/MIMD mode register storing therein an indication of either the single instruction multiple data (SIMD) mode or the multiple instruction multiple data (MIMD) mode;
a plurality of processors, each processor havingan instruction port from which each processor fetches a next instruction,a synchronization register having a plurality of bits equal in number to the number of processors, each bit corresponding to a unique one of said plurality of processors, said synchronization register having stored therein an indication of which if any other of said processors are to be synchronized with said processor when in said multiple instruction multiple data (MIMD) mode thereby indicating said synchronized multiple instruction multiple data (SMIMD) mode,an okay to synchronize circuit connected to a corresponding line of said synchronization bus for generating an okay to synchronize signal on said corresponding line of said synchronization bus when said processor is ready to fetch a next instruction,a synchronization logic unit connected to said synchronization bus, said SIMD/MIMD mode register and said synchronization register for inhibiting the fetching the next instruction until each processor indicated as to be synchronized with said processor has transmitted said okay to synchronize signal via said synchronization bus when said SIMD/MIMD mode register indicates said multiple instruction multiple data (MIMD) mode and said synchronization register indicates said synchronized multiple instruction multiple data (SMIMD) mode, andan execution unit for executing fetched instructions;
plurality of instruction memories, an instruction memory corresponding to each of said processors;
a switch matrix connected to said SIMD/MIMD mode register, to each of said plurality of processors and each of said instruction memories, said switch matrix includinga set of first links connected to said memories,a second link having a plurality of sections equal number to the number of said processors, each section connected to said instruction port of a corresponding one said processors,a plurality of buffers connected to said SIMD/MIMD mode register and disposed between adjacent sections of said second link forming a serial chain from a first processor to a last processor, each buffer connecting said adjacent sections of said second link when said SIMD/MIMD mode register indicates the single instruction multiple data (SIMD) mode, and splitting said adjacent sections of said second link when said SIMD/MIMD mode register indicates the multiple instruction multiple data (MIMD) mode, anda plurality of crosspoints disposed at intersections between said first links and said sections of said second link, said crosspoints individually operating to connect said first links and said second link permitting said instruction port of a processor to receive an instruction from an instruction memory,said plurality of crosspoints including a first crosspoint disposed at the intersection of said section of said second link connected to said instruction more of a predetermined first processor and said first link connected to said corresponding instruction memory which is always enabled to permit connection,said plurality of crosspoints including a set of second crosspoints disposed at the intersection of each of said sections of said second link connected to said instruction port of processors other than said predetermined first processor and said respective first link connected to said corresponding instruction memories which are disabled to prohibit connection when said SIMD/MIMD register indicates the single instruction multiple data (SIMD) mode and enabled to permit connection when said SIMD/MIMD register indicates the multiple instruction multiple data (MIMD) mode.
0 Assignments
0 Petitions
Accused Products
Abstract
There is disclosed a multiprocessor system arranged, in one embodiment, as an image and graphics processor. The processor is structured with several individual processors all having communication links to several memories without restriction. A crossbar switch serves to establish the processor memory links. The entire image processor, including the individual processors, the crossbar switch and the memories are contained on a single silicon chip. Each processor can operate to execute the same instruction at the same time (SIMD mode) or different instructions at the same time (MIMD mode).
258 Citations
27 Claims
-
1. A multi-processor system operable in either a single instruction multiple data (SIMD) mode, in a multiple instruction multiple data (MIMD) mode or in a synchronized multiple instruction multiple data (SMIMD) mode comprising:
-
a synchronization bus having a plurality of bus lines; a SIMD/MIMD mode register storing therein an indication of either the single instruction multiple data (SIMD) mode or the multiple instruction multiple data (MIMD) mode; a plurality of processors, each processor having an instruction port from which each processor fetches a next instruction, a synchronization register having a plurality of bits equal in number to the number of processors, each bit corresponding to a unique one of said plurality of processors, said synchronization register having stored therein an indication of which if any other of said processors are to be synchronized with said processor when in said multiple instruction multiple data (MIMD) mode thereby indicating said synchronized multiple instruction multiple data (SMIMD) mode, an okay to synchronize circuit connected to a corresponding line of said synchronization bus for generating an okay to synchronize signal on said corresponding line of said synchronization bus when said processor is ready to fetch a next instruction, a synchronization logic unit connected to said synchronization bus, said SIMD/MIMD mode register and said synchronization register for inhibiting the fetching the next instruction until each processor indicated as to be synchronized with said processor has transmitted said okay to synchronize signal via said synchronization bus when said SIMD/MIMD mode register indicates said multiple instruction multiple data (MIMD) mode and said synchronization register indicates said synchronized multiple instruction multiple data (SMIMD) mode, and an execution unit for executing fetched instructions; plurality of instruction memories, an instruction memory corresponding to each of said processors; a switch matrix connected to said SIMD/MIMD mode register, to each of said plurality of processors and each of said instruction memories, said switch matrix including a set of first links connected to said memories, a second link having a plurality of sections equal number to the number of said processors, each section connected to said instruction port of a corresponding one said processors, a plurality of buffers connected to said SIMD/MIMD mode register and disposed between adjacent sections of said second link forming a serial chain from a first processor to a last processor, each buffer connecting said adjacent sections of said second link when said SIMD/MIMD mode register indicates the single instruction multiple data (SIMD) mode, and splitting said adjacent sections of said second link when said SIMD/MIMD mode register indicates the multiple instruction multiple data (MIMD) mode, and a plurality of crosspoints disposed at intersections between said first links and said sections of said second link, said crosspoints individually operating to connect said first links and said second link permitting said instruction port of a processor to receive an instruction from an instruction memory, said plurality of crosspoints including a first crosspoint disposed at the intersection of said section of said second link connected to said instruction more of a predetermined first processor and said first link connected to said corresponding instruction memory which is always enabled to permit connection, said plurality of crosspoints including a set of second crosspoints disposed at the intersection of each of said sections of said second link connected to said instruction port of processors other than said predetermined first processor and said respective first link connected to said corresponding instruction memories which are disabled to prohibit connection when said SIMD/MIMD register indicates the single instruction multiple data (SIMD) mode and enabled to permit connection when said SIMD/MIMD register indicates the multiple instruction multiple data (MIMD) mode. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A multi-processor system operable in either a single instruction multiple data (SIMD) mode or in a synchronized multiple instruction multiple data (SMIMD) mode comprising:
-
a synchronization bus having a plurality of bus lines; a SIMD/SMIMD mode register storing therein an indication of either the single instruction multiple data (SIMD) mode or the synchronized multiple instruction multiple data (SMIMD) mode; a plurality of processors, each processor having an instruction port from which each processor fetches a next instruction, an okay to synchronize circuit connected to a corresponding line of said synchronization bus for generating an okay to synchronize signal on said corresponding line of said synchronization bus when said processor is ready to fetch a next instruction, a synchronization logic unit connected to said synchronization bus and said SIMD/MIMD mode register for inhibiting the fetching the next instruction until each other processor has transmitted said okay to synchronize signal via said synchronization bus when in said synchronized multiple instruction multiple data (SMIMD) mode, and an execution unit for executing fetched instructions; a plurality of instruction memories, each instruction memory corresponding to each of said processors; a switch matrix connected to said SIMD/SMIMD mode register, to each of said plurality of processors and each of said plurality of memories, said switch matrix including a set of first links connected to said memories, a second link having a plurality of sections equal in number to the number of said processors, each section connected to said instruction port of a corresponding one of said processors, a plurality of buffers connected to said SIMD/MIMD mode register and disposed between adjacent sections of said second link forming a serial chain from a first processor to a last processor, each buffer connecting said adjacent sections of said second link when said SIMD/SMIMD mode register indicates the single instruction multiple data (SIMD) mode, and splitting said adjacent sections of said second link when said SIMD/SMIMD mode register indicates the synchronized multiple instruction multiple data (SMIMD) mode, and a plurality of crosspoints disposed at intersections between said first links and said sections of said second link, said crosspoints individually operating to connect said first links and said second link permitting said instruction port of a processor to receive an instruction from an instruction memory, said plurality of crosspoints including a first crosspoint disposed at the intersection of said section of said second link connected to said instruction port of a predetermined first processor and said first link connected to said corresponding instruction memory which is always enabled to permit connection, said plurality of crosspoints including a set of second crosspoints connected to said SIMD/MIMD mode register and disposed at the intersection of said section of said second link connected to said instruction port of processors other than said predetermined first processor and said respective first link connected to said corresponding instruction memories which are disabled to prohibit connection when said SIMD/SMIMD register indicates the single instruction multiple data (SIMD) mode and enabled to permit connection when said SIMD/SMIMD register indicates the synchronized multiple instruction multiple data (SMIMD) mode. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. The method of operating a computer system having a plurality of processors each having a corresponding instruction memory, the method comprising the steps of:
-
storing a first indication of either a single instruction multiple data (SIMD) mode or a multiple instruction multiple data (MIMD) mode for each processor; storing at each processor an indication of all other processors to which said processor is synchronized in a synchronized multiple instruction multiple data (SMIMD) mode; storing at each processor a second indication of either a synchronized multiple instruction multiple data (SMIMD) mode or an unsynchronized multiple instruction multiple data (MIMD) mode; generating at each processor a ready signal when said processor is ready to fetch an instruction; connecting an instruction port of a first of the processors to a corresponding instruction memory; connecting an instruction port of each processor in a serial chain of processors operating in the single instruction multiple data (SIMD) mode to an instruction memory corresponding to a first processor in the serial chain; connecting an instruction port of each processor in the multiple instruction multiple data (MIMD) mode to a corresponding instruction memory; inhibiting fetching an instruction at each processor in which said stored first indication indicates said multiple instruction multiple data (MIMD) mode and said second stored indication indicates said synchronized multiple instruction multiple data (SMIMD) mode until said processor receives said ready signal from all other processor or processors to which said processor is to be synchronized according to said stored indication; and executing fetched instructions at each processor. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
Specification