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

Instruction dependency chain indentifier

Assignee: Micron Technology Inc
•
Filing: 1995-09-06
•
Granted: 1998-01-20
•
Expires: 2015-09-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for identifying a sequence of instructions that generate data used by an instruction in a programmed flow of instructions includes a bit array of i lines, where i is an integer, each line representing an instruction in an ordered sequence of instructions. A line in the bit array is made up of a string of bits in which a bit position is set corresponding to a preceding instruction that the instruction is dependent upon. Logic coupled to the bit array generates the string of bits for the next instruction by setting bit positions which correspond to directly dependent instructions and additional bit positions corresponding to the predecessor instructions.

Inventors

  • 👤 Gad S. Sheaffer
  • 👤 Robert Valentine

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 03:29
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3838; G06F9/384

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 199 words
Apparatus for identifying instruction dependencies comprising: a bit array of i lines, where i is an integer, each line representing an instruction in a sequence of instructions and comprising a string of bits in which a bit position is set corresponding to a preceding instruction on which the instruction is dependent, and wherein the bit array is triangular with a first line having a single bit position in the ith line having l bit positions; logic means coupled to the bit array for generating the string of bits for a next instruction stored in the ith line of the bit array, the logic means shifting the string of bits in each line of the bit array by one line and by one bit position, and generating the string of bits for the next instruction by setting bit positions which correspond to directly dependent instructions as well as additional bit positions corresponding to indirectly dependent instructions, the logic means including means for performing a logical bitwise OR operation between the string of bits of the lines corresponding to the directly dependent instructions, a result of the logical bitwise OR operation being written to corresponding bit positions of the ith line.
Claim 2
Dependent Claim 199 words
Apparatus for identifying instruction dependencies comprising: a bit array of i lines, where i is an integer, each line representing an instruction in a sequence of instructions and comprising a string of bits in which a bit position is set corresponding to a preceding instruction on which the instruction is dependent, and wherein the bit array is triangular with a first line having a single bit position in the ith line having l bit positions; logic means coupled to the bit array for generating the string of bits for a next instruction stored in the ith line of the bit array, the logic means shifting the string of bits in each line of the bit array by one line and by one bit position, and generating the string of bits for the next instruction by setting bit positions which correspond to directly dependent instructions as well as additional bit positions corresponding to indirectly dependent instructions, the logic means including means for performing a logical bitwise OR operation between the string of bits of the lines corresponding to the directly dependent instructions, a result of the logical bitwise OR operation being written to corresponding bit positions of the ith line.
Claim 3
Dependent Claim 20 words
The apparatus of claim 1 wherein the means for performing the logical bitwise OR operation comprises an AND/OR logic structure.
Claim 4
Dependent Claim 275 words
In an out-of-order computing system, a method of operation comprising the steps of: (a) decoding an in-order sequence of instructions; (b) checking data dependencies for each instruction of the in-order sequence; (c) generating an instruction dependency matrix which identifies both direct and indirect dependencies for a set of instructions of the in-order sequence, the set of instructions including l instructions and where the matrix includes a triangular storage structure having l lines, an ith line corresponding to an ith instruction of the in-order sequence, the ith line having l bit positions in which a jth bit position is set corresponding to the jth instruction on which the ith instruction is dependent, where l and j are integers, for an ith instruction of the in-order sequence, the generating step further including the steps of: shifting the bit positions in each line of the matrix up by one line, and to the left by one bit position, thereby vacating the ith line; setting, in the ith line, bit positions corresponding to instructions on which the ith instruction is directly dependent, thereby producing a first string of bits for the ith line; performing a logical bitwise OR operation on the lines that correspond to the directly dependent instructions to produce a second string of bits; performing a logical bitwise OR operation on the first and second string of bits, the results for each bit position being stored in the corresponding bit position of the ith line; (d) scheduling execution of each instruction of the sequence in an optimum order based, at least in part, on the instruction dependency matrix wherein the optimum order differs from the in-order sequence.
Claim 5
Dependent Claim 275 words
In an out-of-order computing system, a method of operation comprising the steps of: (a) decoding an in-order sequence of instructions; (b) checking data dependencies for each instruction of the in-order sequence; (c) generating an instruction dependency matrix which identifies both direct and indirect dependencies for a set of instructions of the in-order sequence, the set of instructions including l instructions and where the matrix includes a triangular storage structure having l lines, an ith line corresponding to an ith instruction of the in-order sequence, the ith line having l bit positions in which a jth bit position is set corresponding to the jth instruction on which the ith instruction is dependent, where l and j are integers, for an ith instruction of the in-order sequence, the generating step further including the steps of: shifting the bit positions in each line of the matrix up by one line, and to the left by one bit position, thereby vacating the ith line; setting, in the ith line, bit positions corresponding to instructions on which the ith instruction is directly dependent, thereby producing a first string of bits for the ith line; performing a logical bitwise OR operation on the lines that correspond to the directly dependent instructions to produce a second string of bits; performing a logical bitwise OR operation on the first and second string of bits, the results for each bit position being stored in the corresponding bit position of the ith line; (d) scheduling execution of each instruction of the sequence in an optimum order based, at least in part, on the instruction dependency matrix wherein the optimum order differs from the in-order sequence.
Claim 6
Dependent Claim 17 words
The method of claim 3 wherein the set of instructions includes all instructions in the in-order sequence.
Claim 7
Dependent Claim 17 words
The method of claim 3 wherein the set of instructions comprises a subset of the in-order sequence.
Claim 8
Independent Claim 100 words
A method of identifying instruction dependencies for an ordered set of instructions comprising the steps of: (a) setting bit positions for a jth instruction of the sequence in an ith line of a storage structure having i bits, where i and j are integers, the bit positions corresponding to instructions upon which the ith instruction directly depends; (b) setting additional bit positions in the ith line corresponding to instructions upon which the ith instruction indirectly depends by performing a logical bitwise OR operation of lines in the storage structure corresponding to the instructions upon which the ith instruction directly depends.
Claim 9
Independent Claim 100 words
A method of identifying instruction dependencies for an ordered set of instructions comprising the steps of: (a) setting bit positions for a jth instruction of the sequence in an ith line of a storage structure having i bits, where i and j are integers, the bit positions corresponding to instructions upon which the ith instruction directly depends; (b) setting additional bit positions in the ith line corresponding to instructions upon which the ith instruction indirectly depends by performing a logical bitwise OR operation of lines in the storage structure corresponding to the instructions upon which the ith instruction directly depends.
Claim 10
Dependent Claim 29 words
The method of claim 6 wherein the storage structure has i lines, a kth line having k bit positions where k is an integer ranging from 1 to i.
Claim 11
Dependent Claim 30 words
The method of claim 7 wherein the ith line is at the bottom of the storage structure and the jth bit in the ith line corresponds to the (j-1)th instruction.
Claim 12
Independent Claim 57 words
The method of claims 6, 7 or 8 further comprising the steps for a (j+1)th instruction in the sequence of: shifting each line in the storage structure up by one line, and to the left by one bit position, thereby vacating the ith line; repeating steps (a) and (b) substituting the (j+1)th instruction for the jth instruction.

References Cited (Backward Citations)

US5201057A Cited
US4969117A Cited
US5539911A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag