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

Apparatus and method for collective branching in a multiple instruction stream multiprocessor where any of the parallel processors is scheduled to evaluate the branching condition

Assignee: Philips North America LLC
•
Filing: 1989-06-15
•
Granted: 1992-06-30
•
Expires: 2009-06-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A Multiple Instruction Stream Multiple Data Stream (MIMD) parallel processing apparatus and compiling method for effectuating collective branching of execution by the processors includes specialized branch and fuzzy barrier units which operate with respect to special instructions scheduled in unshaded regions of the instruction streams of the processors involved in a collective branch. A special compare instruction is scheduled in a first unshaded region of only one of the processors while a special jump instruction is scheduled in the next unshaded region of the instruction stream of the other involved processors. By the special jump instruction, the other processors use the special compare result which is simultaneously passed to each of them by the branch unit for determining the execution branch. The barrier unit provides fuzzy barrier synchronization assuring that the correct compare result is used in this determination.

Inventors

  • 👤 Rajiv Gupta
  • 👤 Michael A. Epstein

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 05:11
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/45; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3842

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 202 words
A digital processing apparatus for executing in parallel first and second streams of ordered instructions which streams may include instructions for conditional branching of execution of said streams from related conditional regular and special jump instructions respectively in said first and second streams to respective next instructions not immediately following said related regular and special jump instructions in said respective streams comprising a special compare instruction in said first stream preceding said regular jump instruction for evaluation of a condition, as a special compare result, determinitive of whether a branching in execution is to be taken at said related regular and special jump instructions in executing both said first and second streams, said apparatus comprising: first and second processors for respectively executing said first and second streams of instructions; said first processor comprising means for executing a special compare instruction in order to produce a special compare result; data exchange means coupled to said first and second processors for making the special compare result from the first processor available to the second processor; and said second processor comprising means for executing a special jump instruction, if encountered in the second stream dependent on the special compare result available to said second processor.
Claim 2
Dependent Claim 202 words
A digital processing apparatus for executing in parallel first and second streams of ordered instructions which streams may include instructions for conditional branching of execution of said streams from related conditional regular and special jump instructions respectively in said first and second streams to respective next instructions not immediately following said related regular and special jump instructions in said respective streams comprising a special compare instruction in said first stream preceding said regular jump instruction for evaluation of a condition, as a special compare result, determinitive of whether a branching in execution is to be taken at said related regular and special jump instructions in executing both said first and second streams, said apparatus comprising: first and second processors for respectively executing said first and second streams of instructions; said first processor comprising means for executing a special compare instruction in order to produce a special compare result; data exchange means coupled to said first and second processors for making the special compare result from the first processor available to the second processor; and said second processor comprising means for executing a special jump instruction, if encountered in the second stream dependent on the special compare result available to said second processor.
Claim 3
Dependent Claim 39 words
The apparatus of claim 1 wherein said first processor further comprises means for executing a regular jump instruction in said first stream related to said special jump instruction in said second second stream dependent on the special compare result.
Claim 4
Dependent Claim 42 words
The apparatus of claim 1 further comprising means for synchronizing said first and second processors to assure that said second processor does not execute a special jump instruction until after the special compare result has been made available by the first processor.
Claim 5
Dependent Claim 78 words
The apparatus of claim 1 wherein said apparatus is for executing a third stream of instructions in parallel with said first and second streams, which third stream may include a special jump instruction related to said special compare instruction, and wherein said apparatus further comprises a third processor for executing said third stream of instructions; said third processor comprising means for executing a special jump instruction, if encountered in the third stream, dependent on the special compare result.
Claim 6
Dependent Claim 39 words
The apparatus of claim 4 wherein said data exchange means is coupled between said first, second and third processors and is for passing said special compare result from said first processor substantially simultaneously to said second and third processors.
Claim 7
Dependent Claim 45 words
The apparatus of claim 5 further comprising synchronizing means for synchronizing said first, second and third processors to assure that neither said second nor said third processor executes a special jump instruction until after the special compare result has been passed by the first processor.
Claim 8
Dependent Claim 40 words
The apparatus of claim 3 wherein said synchronizing means comprises a communication means coupled between said first and second processors for communicating a signal indication from said first processor to said second processor that said first processor wants to synchronize.
Claim 9
Dependent Claim 112 words
The apparatus of claim 3 wherein said first and second streams of instructions each may comprise a related sequence of three regions: a first unshaded region, a shaded region, and a second unshaded region, said special compare instruction being in the first unshaded region of the first stream and the special jump instruction being in the second unshaded region of the second stream and wherein said synchronizing means comprises means in said second processor for identifying shaded and unshaded regions in the second instruction stream and means for stalling execution of said second processor at the end of said shaded region if said first processor has not yet entered the shaded region.
Claim 10
Dependent Claim 37 words
The apparatus of claim 8 further comprising a communication means coupled between said first and second processors for communicating a signal indication from said first processor to said second processor that said first processor wants to synchronize.
Claim 11
Dependent Claim 272 words
A digital processing apparatus for executing in parallel a plurality of streams of instructions which streams may be divided into corresponding shaded and unshaded regions, said shaded regions containing instructions which do not use data generated from instructions in other streams and said unshaded regions containing instructions which do use data generated by instructions in other streams, and which streams may include instructions for branching of execution of said streams comprising a special compare instruction in a first unshaded region in any one of said streams for evaluation of a condition, as a special compare result, determinitive of whether a branching in execution of said streams is to be taken and a related conditional special jump instruction in a second unshaded region in other of said streams for determination, based on said special compare result, whether execution will branch to a next instruction not immediately following said special jump instruction, there being a shaded region intermediate said first and second unshaded regions, said apparatus comprising: a plurality of processors for respectively executing said plurality of streams of instruction; each processor comprising means for executing a special compare instruction in order to produce a special compare result; means coupled between said plurality of processors for passing a special compare result from said any one of said processors to the other of said processors; each processor comprising means for executing a special jump instruction dependent on a related special compare result passed; and means for regionwise synchronizing said plurality of processors to ensure that instructions in said second unshaded region are not executed until all processors have at least reached their respective shaded regions.
Claim 12
Dependent Claim 272 words
A digital processing apparatus for executing in parallel a plurality of streams of instructions which streams may be divided into corresponding shaded and unshaded regions, said shaded regions containing instructions which do not use data generated from instructions in other streams and said unshaded regions containing instructions which do use data generated by instructions in other streams, and which streams may include instructions for branching of execution of said streams comprising a special compare instruction in a first unshaded region in any one of said streams for evaluation of a condition, as a special compare result, determinitive of whether a branching in execution of said streams is to be taken and a related conditional special jump instruction in a second unshaded region in other of said streams for determination, based on said special compare result, whether execution will branch to a next instruction not immediately following said special jump instruction, there being a shaded region intermediate said first and second unshaded regions, said apparatus comprising: a plurality of processors for respectively executing said plurality of streams of instruction; each processor comprising means for executing a special compare instruction in order to produce a special compare result; means coupled between said plurality of processors for passing a special compare result from said any one of said processors to the other of said processors; each processor comprising means for executing a special jump instruction dependent on a related special compare result passed; and means for regionwise synchronizing said plurality of processors to ensure that instructions in said second unshaded region are not executed until all processors have at least reached their respective shaded regions.
Claim 13
Dependent Claim 100 words
The apparatus of claim 10 wherein said means for regionwise synchronizing said processors comprises: means in each processor for identifying whether said processor is currently operating in a shaded or unshaded region; means in each processor for receiving -- want in signal from each of said other processors indicative of when said other processors want to synchronize; and controlling means responsive to said region of operation identification and to said want -- in signals for selectively generating a want -- out signal for transmission to said other processors and for selectively stalling execution of the instruction stream for said processor.
Claim 14
Dependent Claim 118 words
The apparatus of claim 11 wherein said means for regionwise synchronizing said processors comprises a state machine in each processor having the following four states: a) a first state during which the processor executes instructions in an unshaded region; b) a second state during which the processor executes instructions in the shaded region while waiting for other processors to reach their respective shaded regions; c) a third state during which the processor executes instructions in the shaded region when the other processors have reached their respective shaded regions; and d) a fourth state during which the processor stalls having reached and end of the shaded region, and waits for the other processors to reach their respective shaded regions.
Claim 15
Dependent Claim 225 words
A digital processing apparatus for executing in parallel first and second streams of ordered instructions which streams may include instructions for conditional branching of execution of said streams from related conditional regular and special jump instructions respectively in said streams to respective next instructions not immediately following said related regular and special jump instructions in said respective streams comprising a special compare instruction in either of said streams preceding said regular jump instruction for evaluation of a condition, as a special compare result, determinitive of whether a branching in execution is to be taken at said related regular and special jump instructions in executing both said streams, said apparatus comprising: first and second processors for respectively executing said first and second streams of instructions; each of said first and second processors comprising means for executing a special compare instruction, if present in the instruction in the instruction stream of said processor, in order to produce a special compare result; data exchange means coupled to said first and second processors for making the special compare result from either of said processors available to the other; and each of said first and second processors comprising means for executing a special jump instruction, if encountered in its respective stream, dependent on the special compare result available to from the other of said processors via said data exchange means.
Claim 16
Dependent Claim 225 words
A digital processing apparatus for executing in parallel first and second streams of ordered instructions which streams may include instructions for conditional branching of execution of said streams from related conditional regular and special jump instructions respectively in said streams to respective next instructions not immediately following said related regular and special jump instructions in said respective streams comprising a special compare instruction in either of said streams preceding said regular jump instruction for evaluation of a condition, as a special compare result, determinitive of whether a branching in execution is to be taken at said related regular and special jump instructions in executing both said streams, said apparatus comprising: first and second processors for respectively executing said first and second streams of instructions; each of said first and second processors comprising means for executing a special compare instruction, if present in the instruction in the instruction stream of said processor, in order to produce a special compare result; data exchange means coupled to said first and second processors for making the special compare result from either of said processors available to the other; and each of said first and second processors comprising means for executing a special jump instruction, if encountered in its respective stream, dependent on the special compare result available to from the other of said processors via said data exchange means.

References Cited (Backward Citations)

US4365292A Cited
US4412303A Cited
US4344134A Cited
US4807115A Cited
US4870614A Cited
US4837676A Cited
US4847755A Cited
US4891787A Cited
US5050070A Cited
US5050068A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1995-06-30 1995-12-30 1996-06-30 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1999-06-30 1999-12-30 2000-06-30 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2003-06-30 2003-12-30 2004-06-30 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag