← Back to Patent Explorer
US5828894A Expired / Lapsed US ⏱️ 0.0 years remaining

Array processor having grouping of SIMD pickets

Assignee: International Business Machines Corp
•
Filing: 1996-09-30
•
Granted: 1998-10-27
•
Expires: 2016-09-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Array processors are made by assembling individual microcomputer elements into an array. Larger arrays are called massively parallel processors. Some can operate in SIMD, while others can operate in MIMD, or SIMD and MIMD in special configurations. In a SIMD array of processors, there is a need to partition the processors into groups related to the type of problem they contain. When the grouping is the result of a computation within the processing element, it is desirable that each processing element be capable of assigning itself to a group, or maybe several groups. This disclosure describes a means of assigning processing elements to groups as an array function conducted in parallel by all active processing elements in the array, and then using grouping to select certain processing elements for a computation that is unique to the group.

Inventors

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

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 19:09
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3885; G06F9/3889; G06F9/3891; G06F15/00; G06F15/16; G06F15/163; G06F15/173; G06F15/17337; G06F15/17343; G06F15/76; G06F15/78; G06F15/7839; G06F15/7842; G06F9/30003; G06F9/30007; G06F9/30036; G06F9/30145; G06F9/3802; G06F9/3824; G06F9/3834; G06F9/3836; G06F9/3851; G06F9/3887

Claims Analysis

Total Claims: 29
Claim 1
Independent Claim 261 words
An array processor comprising, an array controller and a plurality of array processing elements functioning in a SIMD mode of operation; each of said array processing elements comprising a Picket (PE) including an arithmetic processing element, registers, local memory, and interconnection to other processing elements of the array, each of said Pickets being intercoupled during an operation of the array processor, and each processing element having means for dynamically assigning and reassigning itself to one or more of a plurality of processing groups of Pickets of an array for processing of data in the Pickets of a group and wherein the array controller does not maintain in real-time which Pickets belong in which of said plurality of processing groups; wherein every processing element in the processor array receives and executes a command from the controller on each clock cycle; wherein a memory is provided in each Picket having a memory element corresponding to each group, the status of the memory element indicating participation of a particular Picket in the group; and wherein said 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 the plurality of Pickets, 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 said local memory is independently accessible by the respectively coupled processing element in both SIMD and MIMD modes exclusive of access by another processing element.
Claim 2
Dependent Claim 261 words
An array processor comprising, an array controller and a plurality of array processing elements functioning in a SIMD mode of operation; each of said array processing elements comprising a Picket (PE) including an arithmetic processing element, registers, local memory, and interconnection to other processing elements of the array, each of said Pickets being intercoupled during an operation of the array processor, and each processing element having means for dynamically assigning and reassigning itself to one or more of a plurality of processing groups of Pickets of an array for processing of data in the Pickets of a group and wherein the array controller does not maintain in real-time which Pickets belong in which of said plurality of processing groups; wherein every processing element in the processor array receives and executes a command from the controller on each clock cycle; wherein a memory is provided in each Picket having a memory element corresponding to each group, the status of the memory element indicating participation of a particular Picket in the group; and wherein said 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 the plurality of Pickets, 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 said local memory is independently accessible by the respectively coupled processing element in both SIMD and MIMD modes exclusive of access by another processing element.
Claim 3
Dependent Claim 51 words
An array processor according to claim 1 where every processing element in the processor array receives and executes a command from the controller on each clock cycle, some which can be interpreted within each Picket to create different operations, and every processing element during such operation operating in a SIMIMD mode.
Claim 4
Dependent Claim 44 words
An array processor according to claim 2 wherein a unique function within a picket enables that picket to participate in a SIMD instruction stream or disables that picket from participating in the stream as the result of a SIMD command from the array controller.
Claim 5
Dependent Claim 35 words
An array processor according to claim 3 wherein the array processor has doze mode means for preserving the internal state of a Picket and said doze mode means includes a doze latch in the Picket.
Claim 6
Dependent Claim 23 words
An array processor according to claim 4 wherein a processing element doze latch is changed by the result of computation within a Picket.
Claim 7
Dependent Claim 58 words
An array processor according to claim 4 wherein Picket status is preserved by not permitting storing to the memory within the Picket, and allowing other operations including reading memory and arithmetic calculations within a Picket to continue, such that only the results of calculations that cause an effect on Picket status are loaded into said a doze latch.
Claim 8
Dependent Claim 29 words
An array processor according to claim 3 wherein each picket of the processor has doze mode means for preserving the internal state of a picket, and a doze latch.
Claim 9
Dependent Claim 24 words
An array processor according to claim 7 wherein a Picket computation that can change the doze latch includes a LOAD, SET, OR RESET instruction.
Claim 10
Dependent Claim 53 words
An array processor according to claim 1 wherein within said array processor groups of array processing elements are enabled to be partitioned according to the type of problem they contain, and each picket has means for enabling it to assign itself to a group, or a plurality of groups working on a problem.
Claim 11
Dependent Claim 49 words
An array processor according to claim 1 further including means for assigning pickets to groups as an array function conducted in parallel by all active processing elements of an array, and means for using grouping to select certain pickets for a computation that is unique to a group problem.
Claim 12
Dependent Claim 325 words
A processing element in an array processor having a controller and a plurality of array processing elements functioning in a SIMD mode of operation; the processing element comprising an arithmetic processing element, registers, local memory, and interconnection to other elements of the array, said processing element having I/O capability for being intercoupled to other processing elements in an array having groups of processing elements during an operation of said array processor, and said processing element having means for dynamically assigning itself to one or more of a plurality of processing groups of processing elements of an array for processing of data in the processing elements of a group; wherein every processing element in the processor array receives and executes a command from the controller on each clock cycle; and wherein a memory is provided having a memory element corresponding to each group, the status of the memory element indicating participation of a particular Picket in the group; wherein said 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 the plurality of processing 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 said local memory is independently accessible by the respectively coupled processing element in both SIMD and MIMD modes exclusive of access by another processing element; and wherein each processing element of the processor has doze mode means for preserving the internal state of the processing element and a doze latch and wherein processing element status is preserved by not permitting storing to the memory within the processing element, and other computations including reading memory and arithmetic calculations within a processing element may continue, such that only the results that cause an effect are those that are moved into said doze latch.
Claim 13
Dependent Claim 325 words
A processing element in an array processor having a controller and a plurality of array processing elements functioning in a SIMD mode of operation; the processing element comprising an arithmetic processing element, registers, local memory, and interconnection to other elements of the array, said processing element having I/O capability for being intercoupled to other processing elements in an array having groups of processing elements during an operation of said array processor, and said processing element having means for dynamically assigning itself to one or more of a plurality of processing groups of processing elements of an array for processing of data in the processing elements of a group; wherein every processing element in the processor array receives and executes a command from the controller on each clock cycle; and wherein a memory is provided having a memory element corresponding to each group, the status of the memory element indicating participation of a particular Picket in the group; wherein said 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 the plurality of processing 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 said local memory is independently accessible by the respectively coupled processing element in both SIMD and MIMD modes exclusive of access by another processing element; and wherein each processing element of the processor has doze mode means for preserving the internal state of the processing element and a doze latch and wherein processing element status is preserved by not permitting storing to the memory within the processing element, and other computations including reading memory and arithmetic calculations within a processing element may continue, such that only the results that cause an effect are those that are moved into said doze latch.
Claim 14
Dependent Claim 69 words
A processing element according to claim 11 where said processing element is coupled to other processing elements in an array processor and the processor array has a controller, and said processing element receives and executes a command from the controller on each clock cycle, some which can be interpreted within each processing element to create different operations, and every processing element during such operation operating in a SIMIMD mode.
Claim 15
Dependent Claim 51 words
A processing element according to claim 12 wherein a unique function within a processing element enables that processing element to participate in an array processor SIMD instruction stream or disables that processing element from participating in the stream as the result of a SIMD command from a controller of the array.
Claim 16
Dependent Claim 28 words
A processing element according to claim 13 wherein the array processor has doze mode means for preserving the internal state of a processing element, and a doze latch.
Claim 17
Dependent Claim 56 words
A processing element according to claim 12 wherein within said array processor has groups of coupled processing elements which are enabled to be partitioned according to the type of problem they contain, and each processing element has means for enabling it to assign itself to a group, or a plurality of groups working on a problem.
Claim 18
Dependent Claim 37 words
A processing element according to claim 11 wherein said doze latch can be changed by the result of computation within a processing element of an array of processing elements of an array processor, including said processor element.
Claim 19
Dependent Claim 25 words
A processing element according to claim 16 wherein a processing element computation that can change the doze latch includes a LOAD, SET, OR RESET instruction.
Claim 20
Dependent Claim 58 words
A processing element according to claim 11 further including means for assigning said processing element to groups of processing elements in an array as an array function conducted in parallel by all active processing elements of an array, and means for using grouping to select certain processing elements for a computation that is unique to a group problem.
Claim 21
Dependent Claim 252 words
A massively parallel processor comprising, an array processor having a plurality of processing elements arranged in an array, an array controller for controlling said array of processing elements, means for providing each processing element with controls for dynamically assigning and reassigning itself at a processing point to one or more of a plurality of processing groups of Pickets of an array for processing of data in the processing element of a group and wherein the array controller does not maintain in real-time which Pickets belong in which of said plurality of processing groups; wherein every processing element in the processor array receives and executes a command from the controller on each clock cycle; wherein a memory is provided in each Picket having a memory element corresponding to each group, the status of the memory element indicating participation of a particular Picket in the group; and wherein said massively parallel 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 the plurality of processing memory elements, each of said processing memory elements having a processor coupled with a dedicated local memory, 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 SIMD and MIMD modes exclusive of access by another processor.
Claim 22
Dependent Claim 252 words
A massively parallel processor comprising, an array processor having a plurality of processing elements arranged in an array, an array controller for controlling said array of processing elements, means for providing each processing element with controls for dynamically assigning and reassigning itself at a processing point to one or more of a plurality of processing groups of Pickets of an array for processing of data in the processing element of a group and wherein the array controller does not maintain in real-time which Pickets belong in which of said plurality of processing groups; wherein every processing element in the processor array receives and executes a command from the controller on each clock cycle; wherein a memory is provided in each Picket having a memory element corresponding to each group, the status of the memory element indicating participation of a particular Picket in the group; and wherein said massively parallel 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 the plurality of processing memory elements, each of said processing memory elements having a processor coupled with a dedicated local memory, 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 SIMD and MIMD modes exclusive of access by another processor.
Claim 23
Dependent Claim 60 words
A massively parallel processor according to claim 19 further including means for causing every processing element in a processor array to receive and execute a command from the array controller at a controller specified event, at a designated clock cycle or during each clock cycle, some of commands which can be interpreted within each processor element to create different operations.
Claim 24
Dependent Claim 24 words
A massively parallel processor according to claim 19 further providing means for causing processors during a group operation to operate in a SIMIMD mode.
Claim 25
Dependent Claim 55 words
A massively parallel processor according to claim 19 further providing means for causing processors during a group operation to execute a function within a processing element for enabling participation in a SIMD instruction stream or for disabling the processing element from participating in the instruction stream as the result of an external SIMD control command.
Claim 26
Dependent Claim 23 words
A massively parallel processor according to claim 19 further providing means for causing local processing element autonomy for independence from a SIMD operation.
Claim 27
Dependent Claim 39 words
A massively parallel processor according to claim 19 including local autonomy means for causing independence of operation from a program group control command having a doze mode for preserving the internal state of the picket, and a doze latch.
Claim 28
Dependent Claim 32 words
A massively parallel processor according to claim 19 further providing a doze latch for processing elements of said array which can be changed by the result of computation within a processing element.
Claim 29
Dependent Claim 35 words
A massively parallel processor according to claim 19 further providing a control means for a processing element computation that can change a participation mode of a processing element, including a LOAD, SET, OR RESET instruction.

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
EP0132926B1 Cited
US4598400A Cited
US5008815A Cited
US5146608A Cited
US5212773A 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
US5021945A Cited
US4847755A Cited
US4907148A Cited
US4736291A Cited
US4852048A Cited
US4831519A Cited
US4835729A Cited
US4916657A Cited
US4783782A Cited
US4748585A Cited
US4925311A Cited
US5297260A Cited
US4783738A Cited
US4814980A Cited
US4809169A Cited
US4780873A Cited
US4809347A Cited
US4849882A Cited
US5038386A Cited
US4860201A Cited
US4910665A 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-10-26 2002-04-27 2002-10-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-10-26 2006-04-27 2006-10-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-10-26 2010-04-27 2010-10-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag