Patent CH273583A successfully refreshed from Google Patents.
Patent US5805915A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5805915A Expired / Lapsed US ⏱️ 0.0 years remaining

SIMIMD array processing system

Assignee: International Business Machines Corp
•
Filing: 1997-06-27
•
Granted: 1998-09-08
•
Expires: 2017-06-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A conventional SIMD processor array architecture's functions are amplified by a SIMIMD architecture where more programmable flexibility would be useful. Decision making in general and specifically classification where decision trees are common, is a problem eased by SIMIMD. A SIMD array processor having a plurality of pickets in SIMIMD mode allows each picket to occasionally execute data-dependent instructions that are different from the instructions in other pickets to greatly improve execution efficiency in decision making areas. Every element in A SIMD array of processors receives a stream of commands from the array controller. Here several mechanisms allow an array machine with individual processing elements, called pickets, to interpret some of the SIMD commands in their own unique way, giving each picket a degree of local autonomy. A resulting capability allows the pickets to execute instructions in a mode called SIMIMD. Another resulting capability boosts the performance of executing floating-point instructions significantly. Yet another capability provides for GROUPING of pickets in various useful ways such that a combination of groups can be executing SIMD instructions while others are DOZING. There are other resulting capabilities. The SIMD machine is used alone or as part of multiprocessor parallel array processor computing systems and for parallel array processing with a simplified architecture adaptable to chip implementation in an air-cooled environment. The array provided is an N dimensional array of byte-wide processing units each coupled with an adequate segment of byte-wide memory and control logic. A partitionable section of the array containing several processing units are contained on a silicon chip arranged with "pickets", elements of the processing array, each preferably consisting of combined processing element with a local memory for processing bit parallel bytes of information in a clock cycle.

Inventors

  • 👤 Paul Amba Wilkinson
  • 👤 James Warren Dieffenderfer
  • 👤 Peter Michael Kogge

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 06:06
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3885; G06F15/00; G06F15/76; G06F15/80; G06F15/8007; G06F9/3887; G06F9/3889

Claims Analysis

Total Claims: 32
Claim 1
Independent Claim 187 words
An array processing system, comprising: data processing means including an array controller, a plurality of array processor elements each having a dedicated local memory, and means for execution within a plurality of said array processing elements for execution of instructions under cycle by cycle control of said array controller in a SIMIMD mode, each array processing element having a locally loaded address register and a locally loaded operation register, and wherein execution of multiple independent instruction sequences on multiple independent data streams located one per array processor element is controlled by a SIND instruction stream; wherein the array processing system provides a multi-processor memory system including a PME architecture multi-processor memory element on a single semiconductor substrate which functions as a system node, said multi-processor memory element including said plurality of processing memory elements, and means on said substrate for distributing interconnection and controls within the multi-processor memory system node enabling the system to perform SIMD/MIMD functions as a multi-processor memory system, wherein each dedicated local memory is independently accessible by the respectively coupled processor in both SIND and MIND modes exclusive of access by another processor.
Claim 2
Dependent Claim 187 words
An array processing system, comprising: data processing means including an array controller, a plurality of array processor elements each having a dedicated local memory, and means for execution within a plurality of said array processing elements for execution of instructions under cycle by cycle control of said array controller in a SIMIMD mode, each array processing element having a locally loaded address register and a locally loaded operation register, and wherein execution of multiple independent instruction sequences on multiple independent data streams located one per array processor element is controlled by a SIND instruction stream; wherein the array processing system provides a multi-processor memory system including a PME architecture multi-processor memory element on a single semiconductor substrate which functions as a system node, said multi-processor memory element including said plurality of processing memory elements, and means on said substrate for distributing interconnection and controls within the multi-processor memory system node enabling the system to perform SIMD/MIMD functions as a multi-processor memory system, wherein each dedicated local memory is independently accessible by the respectively coupled processor in both SIND and MIND modes exclusive of access by another processor.
Claim 3
Dependent Claim 56 words
An array processor according to claim 1 wherein every processor element in the plurality of array processor elements is a picket including a processor and local memory enabled for receiving and executing a command from the array controller on each clock cycle, some of which commands can be interpreted within each picket to create different operations.
Claim 4
Dependent Claim 27 words
An array processor according to claim 2 wherein said pickets provide unique functions within the processing elements which enable said processing elements to implement MIMD execution instructions.
Claim 5
Dependent Claim 28 words
An array processor according to claim 3 wherein said execution instructions include: ADD, SUB, AND, OR, XOR, NEG, NOP, STORE, and BRANCH ON CONDITION (sign, zero, carry, unconditional).
Claim 6
Dependent Claim 37 words
An array processor according to claim 3 wherein the processing elements in SIMIMD mode of instruction execution perform the functions: Get Instruction Address Instruction Fetch Operation Decode Instruction pointer update Data Fetch Instruction Execution Storing of result.
Claim 7
Dependent Claim 38 words
An array processor according to claim 3 wherein each picket includes an address register which can be loaded from said array controller and from data within picket dataflow under control of a SIMD command from said array controller.
Claim 8
Dependent Claim 31 words
An array processor according to claim 3 where each picket is provided with a picket operation register, said picket operation register being used in SIMIMD mode to provide alternative picket dataflow.
Claim 9
Dependent Claim 41 words
An array processor according to claim 7 wherein each picket includes an arithmetic logic unit (ALU) and a picket operation register and the operation of a picket ALU is determined from the picket operation register as directed by said array controller.
Claim 10
Dependent Claim 36 words
An array processor according to claim 7 wherein an address of a picket destination register is determined from a picket operation register under direction of said array controller and when so directed by said array controller.
Claim 11
Dependent Claim 190 words
An array processor comprising: an array of processors for execution of data in parallel with other processors of said array of processors, all processors of the array each respectively having data stream and coupled and dedicated local memory elements integrated as processing elements of the array, each processor of the array having a locally loaded address register and a locally loaded operation register, and wherein in the array all processors can be commanded from a single instruction stream to execute multiple independent instruction sequences on multiple independent data streams located one per processing element; wherein the array processor provides a multi-processor memory system including a PME architecture multi-processor memory element on a single semiconductor substrate which functions as a system node, said multi-processor memory element including said plurality of processing memory elements, and means on said substrate for distributing interconnection and controls within the multi-processor memory system node enabling the system to perform SIMD/MIMD functions as a multi-processor memory system, wherein each of the coupled and dedicated local memory elements is independently accessible by the respectively coupled processor in both SIMD and MIMD modes exclusive of access by another processor.
Claim 12
Dependent Claim 190 words
An array processor comprising: an array of processors for execution of data in parallel with other processors of said array of processors, all processors of the array each respectively having data stream and coupled and dedicated local memory elements integrated as processing elements of the array, each processor of the array having a locally loaded address register and a locally loaded operation register, and wherein in the array all processors can be commanded from a single instruction stream to execute multiple independent instruction sequences on multiple independent data streams located one per processing element; wherein the array processor provides a multi-processor memory system including a PME architecture multi-processor memory element on a single semiconductor substrate which functions as a system node, said multi-processor memory element including said plurality of processing memory elements, and means on said substrate for distributing interconnection and controls within the multi-processor memory system node enabling the system to perform SIMD/MIMD functions as a multi-processor memory system, wherein each of the coupled and dedicated local memory elements is independently accessible by the respectively coupled processor in both SIMD and MIMD modes exclusive of access by another processor.
Claim 13
Dependent Claim 41 words
An array processor according to claim 10 wherein each of said processing elements of an array comprise a picket including a processor and local memory, and individual pickets execute data-dependent operations within the picket as controlled by a SIMD instruction stream.
Claim 14
Dependent Claim 63 words
An array processor according to claim 10 wherein each of said array processors is coupled by an array controller to function as a SIMD machine provided with the ability to sequence multiple instruction steams, one per picket of an addressed array of pickets wherein each picket includes a processor and local memory, using a SIMD instruction stream to operate on multiple data streams.
Claim 15
Dependent Claim 27 words
An array processor according to claim 12 wherein said pickets provide unique functions within the processing elements which enable said processing elements to implement MIMD execution instructions.
Claim 16
Dependent Claim 28 words
An array processor according to claim 13 wherein said execution instructions include: ADD, SUB, AND, OR, XOR, NEG, NOP, STORE, and BRANCH ON CONDITION (sign, zero, carry, unconditional).
Claim 17
Dependent Claim 37 words
An array processor according to claim 13 wherein the processing elements in SIMIMD mode of instruction execution perform the functions: Get Instruction Address Instruction Fetch Operation Decode Instruction pointer update Data Fetch Instruction Execution Storing of result.
Claim 18
Dependent Claim 38 words
An array processor according to claim 13 wherein each picket includes an address register which can be loaded from said array controller and from data within picket dataflow under control of a SIMD command from said array controller.
Claim 19
Dependent Claim 46 words
An array processor according to claim 13 where each picket is provided with a picket operation register, said picket operation register being used in SIMIMD mode wherein data dependent operations within each picket are controlled by a SIMD instruction stream to provide alternative picket dataflow control.
Claim 20
Dependent Claim 41 words
An array processor according to claim 17 wherein each picket includes an arithmetic logic unit (ALU) and a picket operation register and the operation of a picket ALU is determined form the picket operation register as directed by said array controller.
Claim 21
Dependent Claim 36 words
An array processor according to claim 17 wherein an address of a picket destination register is determined from a picket operation register under direction of said array controller and when so directed by said array controller.
Claim 22
Dependent Claim 78 words
An array processor according to claim 17 wherein a picket is for processing SIMD with an array of processors and a plurality of array processing elements which are coupled for intercommunication of data and instructions as pickets are provided with plural mechanisms which permit each picket to have a variety of execution capabilities to permit a variety of modes to be obtained for execution of data within a picket and enabling interpretation of SIMD commands within the picket.
Claim 23
Dependent Claim 39 words
An array processor according to claim 20 wherein each picket has said plural mechanisms enabling it to operate in several modes where each processor of a SIMD array can and does perform a different operation based upon local conditions.
Claim 24
Dependent Claim 52 words
An array processor according to claim 20 wherein, in a SIMIMD array processor mode, at least one of a plurality of array processors operates in SIMIMD mode receiving and executing a command from a controller on each clock cycle, some of which commands are interpreted within each picket to create different operations.
Claim 25
Dependent Claim 32 words
An array processor according to claim 20 wherein an interpretation of a SIMD command within each picket can be controlled by one or several status latches or register bits within each picket.
Claim 26
Dependent Claim 27 words
An array processor according to claim 20 wherein a SIMD command within each picket can be controlled by data in a register or registers within the picket.
Claim 27
Dependent Claim 27 words
An array processor according to claim 20 wherein status conditions resulting from picket operations can be collected and directed to a controller of the array of processors.
Claim 28
Dependent Claim 50 words
An array processor according to claim 20 wherein a picket further includes a DOZE latch and when said DOZE latch is loaded with an appropriate value the picket can continue to read memory, do arithmetic, and to store into said DOZE latch but the picket does not write to memory.
Claim 29
Dependent Claim 87 words
An array processor according to claim 20 wherein floating-point calculations can be processed by an array of pickets for processing a range of possible floating-point numbers, and wherein the floating-point processing array includes a plurality of picket units, each picket unit having a bit parallel processing element combined with a local memory coupled to the processing element for the parallel processing of information in all picket units in such a way that each picket unit is adapted to perform one element of a process which utilizes memory.
Claim 30
Dependent Claim 26 words
An array processor according to claim 20 wherein a plurality of picket units arranged in an array have their memory arranged as a set associative memory.
Claim 31
Dependent Claim 47 words
An array processor according to claim 20 wherein said array processor is configurable as a SIMD and SIMIMD system, and groups of said plurality of array processing elements are assigned to a programmable configuration in which individual elements of the system have a degree of local autonomy.
Claim 32
Dependent Claim 55 words
An array processor according to claim 20 wherein a plurality of array processing elements have a local autonomy and test for zeros and put in status; and increment a counter if status is set; and provide data-dependent access to memory using a pointer value in a register of said array processor as a memory index.

References Cited (Backward Citations)

US3537074A Cited
US3544973A Cited
US4942516A Cited
US3970993A Cited
US4107773A Cited
US4101960A Cited
US4270170A Cited
US4380046A Cited
US4412303A Cited
US4314349A Cited
US4338675A Cited
US4435758A Cited
US4467422A Cited
US4956772A Cited
US5006978A Cited
US4394726A Cited
US4468727A Cited
US4622650A Cited
US4498133A Cited
US4523273A Cited
US4825359A Cited
US4809159A Cited
US4739474A Cited
US4598400A Cited
US5146608A Cited
EP0132926B1 Cited
US5212773A Cited
US5008815A Cited
US4621339A Cited
US4604695A Cited
US4905143A Cited
US4855903A Cited
US4901224A Cited
US5113523A Cited
US4805091A Cited
US4967340A Cited
US5045995A Cited
EP0208497B1 Cited
US5047917A Cited
US4706191A Cited
US4739476A Cited
US4763321A Cited
US5016163A Cited
US4720780A Cited
US4922408A Cited
US4847755A Cited
US5021945A Cited
US4907148A Cited
US4736291A Cited
US4852048A Cited
US4783782A Cited
US4835729A Cited
US4831519A Cited
US4916657A Cited
US4748585A Cited
US4925311A Cited
US5297260A Cited
US4783738A Cited
US4814980A Cited
US4809169A Cited
US4780873A Cited
US4809347A Cited
US4849882A Cited
US5038386A Cited
US4910665A Cited
US4860201A Cited
US5170484A Cited
US4985832A Cited
US5230079A Cited
US4975834A Cited
US4841476A Cited
US5010477A Cited
US4992933A Cited
US5175865A Cited
US5165023A Cited
US4873626A Cited
US4891787A Cited
US4903260A Cited
US4858110A Cited
US4964032A Cited
US4933846A Cited
US4933895A Cited
US5170482A Cited
US5008882A Cited
US4958273A Cited
US4916652A Cited
US4942517A Cited
US4943912A Cited
US4872133A Cited
US4896265A Cited
US4992926A Cited
US5121498A Cited
US5038282A Cited
US5056000A Cited
US5005120A Cited
GB2223867A Cited
US4920484A Cited
US5041971A Cited
US5189665A Cited
US5020059A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-09-07 2002-03-09 2002-09-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-09-07 2006-03-09 2006-09-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-09-07 2010-03-09 2010-09-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag