Claims Analysis
Total Claims: 17
Claim 1
Independent Claim
456 words
A data processing system that performs operations responsive to a program including a plurality of instructions, the instructions including at least a first and second test instruction and at least a first and second branch instruction that determine an intended sequence of execution of the instructions within the program responsive to results of the first and second test instructions respectively, the system comprising: an operation unit that executes the instructions by performing operations responsive to the instructions; a branch prediction unit that speculates a first intended sequence of execution of the instructions responsive to the first branch instruction and speculates a second intended sequence of execution of the instructions responsive to the second branch instruction, the first and second intended sequences affecting sequence of execution of instructions by the operation unit; an instruction shelving unit; a fetching unit that continuously fetches instructions from an instruction memory responsive to said first and second intended sequences and that stores operations to be performed responsive to said instruction in said instruction shelving unit; an evaluation unit that determines, responsive to execution of the first test instruction by the operation unit, whether the branch prediction unit has speculated the first intended sequence correctly, wherein the branch prediction unit speculates the second intended sequence prior to execution of the first test instruction; a repair unit that, upon a determination by the evaluation unit that the branch unit has speculated either the first intended sequence or the second intended sequence incorrectly, nullifies the effects of instructions of the incorrectly speculated intended sequence; a temporary result storage unit that stores results of the operations performed responsive to the instructions, the results including the presence or absence of a trapping condition for a potentially-trapping operation, and wherein the repair unit nullifies an instruction by reversing any update of results to the result storage unit affected by the nullified instruction and preventing any further update of results to the result storage unit by any future performance of operations responsive to the nullified instruction; a register unit; and a retirement and flushing unit that retires instructions if the operations performed responsive to the instructions are not potentially trapping or their results are absent a trapping condition by updating the register unit with the results, and that flushes the performed operation and all following operations from the instruction shelving unit if the performed operation's result indicates the presence of a trapping condition by preventing the performance of these operations from updating the register unit, and that forces the fetching unit to re-fetch the instruction immediately following the instruction corresponding to the operation whose result indicates the presence of a trapping condition, the retiring and flushing unit disposing each instruction in the order of appearance in the sequence.
Claim 2
Dependent Claim
456 words
A data processing system that performs operations responsive to a program including a plurality of instructions, the instructions including at least a first and second test instruction and at least a first and second branch instruction that determine an intended sequence of execution of the instructions within the program responsive to results of the first and second test instructions respectively, the system comprising: an operation unit that executes the instructions by performing operations responsive to the instructions; a branch prediction unit that speculates a first intended sequence of execution of the instructions responsive to the first branch instruction and speculates a second intended sequence of execution of the instructions responsive to the second branch instruction, the first and second intended sequences affecting sequence of execution of instructions by the operation unit; an instruction shelving unit; a fetching unit that continuously fetches instructions from an instruction memory responsive to said first and second intended sequences and that stores operations to be performed responsive to said instruction in said instruction shelving unit; an evaluation unit that determines, responsive to execution of the first test instruction by the operation unit, whether the branch prediction unit has speculated the first intended sequence correctly, wherein the branch prediction unit speculates the second intended sequence prior to execution of the first test instruction; a repair unit that, upon a determination by the evaluation unit that the branch unit has speculated either the first intended sequence or the second intended sequence incorrectly, nullifies the effects of instructions of the incorrectly speculated intended sequence; a temporary result storage unit that stores results of the operations performed responsive to the instructions, the results including the presence or absence of a trapping condition for a potentially-trapping operation, and wherein the repair unit nullifies an instruction by reversing any update of results to the result storage unit affected by the nullified instruction and preventing any further update of results to the result storage unit by any future performance of operations responsive to the nullified instruction; a register unit; and a retirement and flushing unit that retires instructions if the operations performed responsive to the instructions are not potentially trapping or their results are absent a trapping condition by updating the register unit with the results, and that flushes the performed operation and all following operations from the instruction shelving unit if the performed operation's result indicates the presence of a trapping condition by preventing the performance of these operations from updating the register unit, and that forces the fetching unit to re-fetch the instruction immediately following the instruction corresponding to the operation whose result indicates the presence of a trapping condition, the retiring and flushing unit disposing each instruction in the order of appearance in the sequence.
Claim 3
Dependent Claim
27 words
The data processing system according to claim 1 wherein the operation unit is capable of executing instructions out of order in which they appear in the program.
Claim 4
Dependent Claim
35 words
The data processing system according to claim 1 further comprising a branch shelving unit that stores the first and second branch instructions when the branch predicting unit speculates the first and second intended sequences respectively.
Claim 5
Dependent Claim
42 words
The data processing system according to claim 3 wherein the repair unit removes the first branch instruction and the second branch instruction from the branch instruction shelving unit when the evaluation unit determines the first intended sequence to have been speculated incorrectly.
Claim 6
Dependent Claim
34 words
The data processing system according to claim 4 wherein the retirement unit retires the first branch instruction after the first intended sequence has been determined to have been correctly speculated by the predicting unit.
Claim 7
Dependent Claim
35 words
The data processing system according to claim 4 wherein the repair unit nullifies an arithmetic instruction by removing results of a result of an operation performed responsive to the instruction from the temporary storage unit.
Claim 8
Dependent Claim
61 words
The data processing system according to claim 6 wherein, when the evaluating unit determines the first intended sequence to have been speculated incorrectly, the repairing unit preserves results of operations performed responsive to instructions preceding the first branch instruction stored in the temporary storage unit and removes the results of operations performed responsive to instructions that follow the first branch instruction.
Claim 9
Dependent Claim
45 words
The data processing system according to claim 4 wherein each result identifier is associated with each operation performed responsive to an instruction in the first intended sequence such that the relative position of any two such operations can be determined from their associated result identifiers.
Claim 10
Dependent Claim
25 words
The data processing system according to claim 8 wherein one of the two operations corresponds to a branch instruction stored in the branch shelving unit.
Claim 11
Dependent Claim
23 words
The data processing system according to claim 8 wherein one of the two operations has a result stored in the temporary storage unit.
Claim 12
Dependent Claim
31 words
The data processing system according to claim 2 wherein the temporary storage unit further associates a result identifier with each operation performed responsive to an instruction in the first intended sequence.
Claim 13
Dependent Claim
46 words
The data processing system according to claim 11 wherein the repair unit repairs the first branch instruction even though there are results of operations performed responsive to instructions preceding the first branch instruction stored in the temporary storage unit not yet transferred to the register unit.
Claim 14
Dependent Claim
28 words
The data processing system according to claim 11 wherein the repair unit preserves the results in the temporary storage unit and nullifies instructions following the first branch instruction.
Claim 15
Dependent Claim
21 words
The data processing system according to claim 3 wherein the association between the result identifier and each operation performed is one-to-one.
Claim 16
Dependent Claim
16 words
The data processing system according to claim 14 wherein the number of result identifiers is finite.
Claim 17
Dependent Claim
58 words
The data processing system according to claim 11 wherein the repair unit determines the removal of an operation's result from the temporary storage unit based on the relationship between the operation's result identifier and the result identifier of the first branch instruction regardless of the temporal order in which operation results were placed into the temporary storage unit.