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

Method for conditional branch execution in SIMD vector processors

Assignee: International Business Machines Corp
•
Filing: 1982-08-13
•
Granted: 1984-03-06
•
Expires: 2002-08-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Flow graph related program segments having cyclic paths therethrough are efficiently processed on a SIMD machine by priority ordering the segments, selectively inserting ELSE/JOIN instructions as steps prior to enforcing the ordering when the network of program segments is executed on a SIMD machine.

Inventors

  • 👤 Raymond A. Lorie
  • 👤 Hovey R. Strong, Jr.

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 14:39
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/30076; G06F9/3009; G06F15/00; G06F15/76; G06F15/80; G06F15/8007; G06F9/38; G06F9/3836; G06F9/3851; G06F9/3885; G06F9/3887; G06F9/3888; G06F8/00; G06F8/40; G06F8/41

Claims Analysis

Total Claims: 4
Claim 1
Independent Claim 435 words
A two-phase method for controlling the execution of a program consisting of a single entrance, single exit (SESE) program instruction sequences on a single instruction, multiple datastream (SIMD) machine during a second phase, which SESE instruction sequences were previously conditioned from an ordinary program instruction sequence on a single instruction, single datastream (SISD) machine during a first phase, said SIMD machine includes an array of parallel processors; means for applying independent datastreams to counterpart processors, each processor having an activity mask (active, inactive); and a control unit for applying the program to the processors to interact with the data and for regulating the activity state of each processor by altering its activity mask contents, wherein: during the first phase, the steps of: (a) compiling an ordinary program and decomposing it into SESE instruction sequences, the last instruction in each sequence being either an unconditional or conditional branch; (b) priority ordering the sequences according to a depth ordering convention and assigning sequence label numbers thereto linearly; and (c) inserting either a ELSE or JOIN instruction at the beginning of sequences selected according to a first predetermined convention; and during the second phase, the steps of: (d) causing a SESE sequence processed during the first phase to be executed on one or more processors of an SIMD machine in parallel; and causing the designation of the next executable SESE sequence as a function of the matching or mismatching of the SESE sequence targets of the branches of the sequence currently being executed on one or more processors according to a second predetermined convention; (e) upon occurrence of a branch instruction, ascertaining the targets and, if there does not exist a target to a successful conditional branch, transferring control to the unique target, otherwise transferring control to the target of the successful conditional branch and masking off as inactive the processors corresponding to the target of the unsuccessful conditional branch; (f) upon the occurrence of an ELSE instruction in said current SESE sequence as applied to the SIMD machine, ascertaining the next SESE target sequence having the lowest priority order number; masking on into an active state each inactive processor awaiting execution of the ascertained target SESE sequence; and masking off into an inactive state all other processors waiting to execute other SESE sequences; or (g) upon the occurrence of a JOIN instruction in said current SESE sequence as applied to the SIMD machine, masking on into an active state those inactive processors waiting to execute SESE sequences having a priority order number the same as that of the SESE sequence currently being executed by the SIMD machine.
Claim 2
Dependent Claim 435 words
A two-phase method for controlling the execution of a program consisting of a single entrance, single exit (SESE) program instruction sequences on a single instruction, multiple datastream (SIMD) machine during a second phase, which SESE instruction sequences were previously conditioned from an ordinary program instruction sequence on a single instruction, single datastream (SISD) machine during a first phase, said SIMD machine includes an array of parallel processors; means for applying independent datastreams to counterpart processors, each processor having an activity mask (active, inactive); and a control unit for applying the program to the processors to interact with the data and for regulating the activity state of each processor by altering its activity mask contents, wherein: during the first phase, the steps of: (a) compiling an ordinary program and decomposing it into SESE instruction sequences, the last instruction in each sequence being either an unconditional or conditional branch; (b) priority ordering the sequences according to a depth ordering convention and assigning sequence label numbers thereto linearly; and (c) inserting either a ELSE or JOIN instruction at the beginning of sequences selected according to a first predetermined convention; and during the second phase, the steps of: (d) causing a SESE sequence processed during the first phase to be executed on one or more processors of an SIMD machine in parallel; and causing the designation of the next executable SESE sequence as a function of the matching or mismatching of the SESE sequence targets of the branches of the sequence currently being executed on one or more processors according to a second predetermined convention; (e) upon occurrence of a branch instruction, ascertaining the targets and, if there does not exist a target to a successful conditional branch, transferring control to the unique target, otherwise transferring control to the target of the successful conditional branch and masking off as inactive the processors corresponding to the target of the unsuccessful conditional branch; (f) upon the occurrence of an ELSE instruction in said current SESE sequence as applied to the SIMD machine, ascertaining the next SESE target sequence having the lowest priority order number; masking on into an active state each inactive processor awaiting execution of the ascertained target SESE sequence; and masking off into an inactive state all other processors waiting to execute other SESE sequences; or (g) upon the occurrence of a JOIN instruction in said current SESE sequence as applied to the SIMD machine, masking on into an active state those inactive processors waiting to execute SESE sequences having a priority order number the same as that of the SESE sequence currently being executed by the SIMD machine.
Claim 3
Dependent Claim 62 words
A method according to claim 1, wherein step (c) includes the steps of: inserting a JOIN instruction at the beginning of each target SESE sequence of a left branch; and inserting an ELSE instruction at the beginning of each target of an SESE sequence of a right branch for which the corresponding left branch SESE sequence has a lower priority order number.
Claim 4
Dependent Claim 18 words
A method according to claim 1, wherein the priority order number is the argument of a DATUM instruction.

References Cited (Backward Citations)

US3537074A Cited
US3643227A Cited
US4025901A Cited
US4047161A Cited
US4074353A Cited
US4181934A Cited
US4101960A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1987-03-06 1987-09-05 1988-03-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1991-03-06 1991-09-05 1992-03-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1995-03-06 1995-09-05 1996-03-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag