Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
First Claim
1. A multi-processor system operable in either a single instruction multiple data (SIMD) mode or in a multiple instruction multiple data (MIMD) mode comprising:
- 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 processors having a data port and an instruction port and operating from instructions provided to said instruction port for controlling a process including movement of data to and from said data port;
a plurality of memories, said plurality of memories including at least one data memory corresponding to each of said processors and 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 plurality of memories, said switch matrix includinga set of first links connected to said memories,a set of second links connected to said data ports of said processors,a third 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 disposed between adjacent sections of said third link connecting said adjacent sections of said third link when said SIMD/MIMD mode register indicates the single instruction multiple data (SIMD) mode, and splitting said adjacent sections of said third 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 second links and at intersections between said first links and said sections of said third link, said crosspoints individually operating to connect said first and second links permitting said data port of a processors to access a memory, and to connect said first links and said third 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 third 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 disposed at the intersection of said section of said first 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;
whereby said instruction port of each processor is connected to said instruction memory corresponding to said predetermined first processor in the single instruction multiple data (SIMD) mode via said first crosspoint, said sections of said third link and said buffers, and said instruction port of each processor is connected to said corresponding instruction memory in the multiple instruction multiple data (MIMD) mode via said corresponding second crosspoint and said corresponding section of said third link.
2 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).
519 Citations
16 Claims
-
1. A multi-processor system operable in either a single instruction multiple data (SIMD) mode or in a multiple instruction multiple data (MIMD) mode comprising:
-
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 processors having a data port and an instruction port and operating from instructions provided to said instruction port for controlling a process including movement of data to and from said data port; a plurality of memories, said plurality of memories including at least one data memory corresponding to each of said processors and 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 plurality of memories, said switch matrix including a set of first links connected to said memories, a set of second links connected to said data ports of said processors, a third 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 disposed between adjacent sections of said third link connecting said adjacent sections of said third link when said SIMD/MIMD mode register indicates the single instruction multiple data (SIMD) mode, and splitting said adjacent sections of said third 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 second links and at intersections between said first links and said sections of said third link, said crosspoints individually operating to connect said first and second links permitting said data port of a processors to access a memory, and to connect said first links and said third 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 third 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 disposed at the intersection of said section of said first 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; whereby said instruction port of each processor is connected to said instruction memory corresponding to said predetermined first processor in the single instruction multiple data (SIMD) mode via said first crosspoint, said sections of said third link and said buffers, and said instruction port of each processor is connected to said corresponding instruction memory in the multiple instruction multiple data (MIMD) mode via said corresponding second crosspoint and said corresponding section of said third link. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A multi-processor system operable in either a single instruction multiple data (SIMD) mode or in a multiple instruction multiple instruction multiple data (MIMD) mode for each of said plurality of processors:
-
a SIMD/MIMD mode register storing therein an indication of either the single instruction multiple data (SIMD) mode of the multiple instruction multiple data (MIMD) mode for each of said plurality of processors; a plurality of processors, each processors having a data port and an instruction port and operating from instructions provided to said instruction port for controlling a process including movement of data to and from said data port; a plurality of memories, said plurality of memories including at least one data memory corresponding to each of said processors and 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 plurality of memories, said switch matrix including a set of first links connected to said memories, a set of second links connected to said data ports of said processors, a third 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 disposed between adjacent sections of said third link forming a serial chain from a first processor to a last processor, each buffer connecting said adjacent sections of said third link when said SIMD/MIMD mode register indicates the single instruction multiple data (SIMD) mode for a corresponding processor, and splitting said adjacent sections of said third link when said SIMD/MIMD mode register indicates the multiple instruction multiple data (MIMD) mode for the corresponding processor, and a plurality of crosspoints disposed at intersections between said first links and said second links and at intersections between said first links and said sections of said third link, said crosspoints individually operating to connect said first and second links permitting said data port of a processors to access a memory, and to connect said first links and said third 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 third 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 disposed at the intersection of said section of said first 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, said plurality of crosspoints including a set of third crosspoints disposed at the intersection of said first links connected to said instruction memories and said second links connected to said data ports of said plurality of processors, said set of third crosspoints disabled to prohibit connection when said SIMD/MIND 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 (MIND) mode;
whereby said instruction port of each processor is connected to said instruction memory corresponding to a first processor in a serial chain in the single instruction multiple data (SIMD) mode, said instruction port of each processor in the multiple instruction multiple data (MIMD) mode is connected to said corresponding instruction memory, and access to said instruction memories via said data ports of said plurality of processors is prohibited when the corresponding processor is in the single instruction multiple data (SIMD) mode and permitted when the corresponding processor is in the multiple instruction multiple data (MIMD) mode. - View Dependent Claims (12, 13, 14, 15, 16)
-
Specification