Patent EP0523337A2 successfully refreshed from Google Patents.
← Back to Patent Explorer
EP0523337A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Self-scheduling parallel computer system and method

Assignee: International Business Machines Corp
•
Filing: 1992-05-11
•
Granted: —
•
Expires: 2012-05-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An incremental method is described for distributing the instructions of an execution sequence among a plurality of processing elements for execution in parallel The distribution is based upon anticipated availability times of the needed input values for each instruction as well as the anticipated availability times of each processing element for handling each instruction. A self-parallelizing computer system and method are also described for asynchronously processing the distributed instructions in two modes of execution on a set of processing elements which communicate with each other.

Inventors

  • 👤 Rudolph Nathan Rechtschaffen
  • 👤 Kattamuri Ekanadham

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-07 19:34
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3808; G06F8/00; G06F8/40; G06F8/41; G06F8/45; G06F8/451; G06F9/3812; G06F9/3836; G06F9/3853; G06F9/3854; G06F9/3856; G06F9/3858

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 146 words
A method of distributing the instructions of an execution sequence among a plurality of processing elements for execution in parallel, comprising the steps of: creating a pseudo-schedule of said instructions, said pseudo-schedule having the same number of partitions as the number of said processing elements, each of said instructions having an assigned particular partition in said pseudo-schedule and each of said instructions having an assigned particular decode time, said decode times being based upon the anticipated availability times of needed input values for each said instruction, and said partition assignments being based upon the assigned decode time of each said instruction as well as the assigned decode times of all prior instructions in said execution sequence; and distributing instructions having the same assigned partition for execution on the same one of said processing elements, but without any of said decode times used to form said pseudo-schedule.
Claim 2
Dependent Claim 34 words
A method of distributing the instructions of an execution sequence as defined in Claim 1 wherein said decode times are based also upon the earliest available decode time in each partition of said pseudo-schedule.
Claim 3
Dependent Claim 47 words
A method of distributing the instructions of an execution sequence as defined in Claim 1 or 2 wherein each of said decode times is selected so as to minimize the difference between the assigned decode time and the anticipated latest availability time of a needed input value.
Claim 4
Independent Claim 354 words
A method of distributing the instructions of an execution sequence into a plurality of partitions for execution of each said partition on a separate one of a corresponding plurality of processing elements in parallel, comprising the steps of: (a) assigning the first instruction in said execution sequence to one of said processing elements; (b) establishing an arbitrary decode time for said first instruction for partitioning purposes with respect to which all other times are referenced for partitioning purposes; (c) determining the time when the output of said first instruction would be available for use as an input by other ones of said instructions if said first instruction were decoded by its assigned processing element at said arbitrary decode time and then executed by its assigned processing element; (d) for the next instruction in said execution sequence, determining the earliest decode time when decoding of said next instruction could begin and not wait for any input needed by said next instruction for decoding and execution; (e) determining an availability time for each processing element when said each processing element would be available to decode and execute said next instruction if each previously assigned instruction in said execution sequence were decoded by its assigned processing element at the later of either said determined earliest decode time for said previously assigned instruction or said determined availability time for its assigned processing element; (f) assigning said next instruction to one of said processing elements using a criterion which is a function of said availability times determined in step (e) and said decode time determined in step (d); (g) determining the time when the output of said next instruction would be available for use as an input by other ones of said instructions if said next instruction were decoded and then executed by its assigned processing element at the later of either its earliest decode time or the determined availability time for its assigned processing element; (h) repeating steps (d) through (g) for each successive instruction in said execution sequence of instructions, each collection of said instructions assigned to the same processing element being a partition of said instructions.
Claim 5
Dependent Claim 40 words
A method as defined in Claim 4 wherein said criterion results in scheduling said next instruction for execution by said processing element which has a determined availability time which is most closely equal to said time determined in step (c).
Claim 6
Dependent Claim 36 words
A method as defined in Claim 5 wherein a tie in applying said criterion is resolved in favor of scheduling said next instruction for execution on said processing element which has the earliest determined availability time.
Claim 7
Dependent Claim 36 words
A method as defined in Claim 5 wherein a tie in applying said criterion is resolved in favor of scheduling said next instruction for execution on said processing element in accordance with a predetermined priority order.
Claim 8
Dependent Claim 33 words
A method as defined in Claim 7 wherein a unique identification number is associated with each of said processing elements and said predetermined priority order is the numerical order of said identification numbers.
Claim 9
Independent Claim 136 words
A method as defined in one of Claims 4 to 8 and further comprising the steps of: identifying said processing element which corresponds to the earliest determined availability time and resolving ties in accordance with a predetermined priority order; identifying the latest availability time when one of said processing elements is expected to be available to decode an additional instruction; determining the number of processing elements having an availability time which is lagging said identified latest availability time by more than a predetermined amount; if said determined number of lagging processing elements is not greater than a predetermined number and the difference between said time determined in step (c) and said determined latest availability time is not greater than said predetermined amount, scheduling said next instruction on said identified processing element having the earliest availability time.
Claim 10
Dependent Claim 76 words
A method as defined in Claim 9 and further comprising the step of: if said determined number of lagging processing elements is greater than a predetermined number or the difference between said time determined in step (c) and said determined latest availability time is not greater than said predetermined amount, scheduling said next instruction on said processing element which has a determined availability time which is most closely equal to said time determined in step (c).
Claim 11
Dependent Claim 36 words
A method as defined in Claim 10 wherein a tie in applying said criterion is resolved in favor of scheduling said next instruction for execution on said processing element which has the earliest determined availability time.
Claim 12
Dependent Claim 214 words
In a computer system having a plurality of processing elements capable of decoding and executing instructions and which can access common information stored in a set of registers as input values for instructions and can store output values of instructions to said registers, apparatus for scheduling a sequential instruction stream for parallel execution on said processing elements, comprising: means for determining the availability times when each of said each processing elements is expected to be available to decode an additional instruction not already scheduled for execution on said processing element; means for determining which of said input values are needed for decoding and for executing the next sequential instruction in said instruction stream means for determining the times when each of said needed input values is expected to be available for use by said next instruction; means for determining the earliest time when said next instruction could be scheduled for decoding and still have all of said needed input values available when needed for decoding and executing said next instruction; and means responsive to said availability times determining means and to said earliest time determining means for scheduling said next instruction for execution on one of said processing elements using a criterion which is a function of said availability times and said earliest time.
Claim 13
Dependent Claim 77 words
Apparatus as defined in Claim 12 and further comprising: means for repeatedly inputting scheduling decisions from said scheduling means to said availability times determining means, said availability times determining means responding to each inputted scheduling decision by determining a new availability time when the processing element on which said next instruction has been scheduled for execution is expected to be available to decode an additional instruction, until all instructions in said sequential instruction stream have been scheduled.
Claim 14
Dependent Claim 47 words
Apparatus as defined in Claim 13 wherein said criterion results in scheduling said next instruction for execution on said processing element which has a time determined by laid availability time determine means which is most closely equal to the time determined by said earliest time determining means.
Claim 15
Dependent Claim 43 words
Apparatus as defined in Claim 14 wherein a tie in applying said criterion is resolved in favor of scheduling said next instruction for execution on said processing element which has the time determined by said availability time determining means which is the earliest.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag