Claims Analysis
Total Claims: 19
Claim 1
Independent Claim
264 words
A data processing system for executing a program comprising an instruction sequence including a plurality of instructions in an ordered sequence, said ordered sequence having a beginning and said ordered sequence including a plurality of branch instructions, each said branch instruction causing said data processing system to execute an instruction specified by a target address if a specified condition is satisfied, said data processing system including a branch processor comprising: means for storing information specifying a plurality of said branch instructions, said information including a target address corresponding to each said branch instruction and the location of said branch instruction in said ordered sequence relative to said beginning of said ordered sequence; means for receiving a prepare to branch instruction, said prepare to branch instruction including information specifying a target address and a location corresponding to one of said branch instructions and for causing said information to be stored in said storing means; compare result means for receiving information indicating that said condition related to one of said branch instructions has been satisfied; means for receiving an execute branch command, said execute branch command identifying one of said branch instructions having information stored in said storing means; and control means, responsive to receiving said execute branch command, for causing said data processing system to execute said instruction specified by said target address corresponding to said identified branch instruction if said condition related to said identified branch instruction was satisfied and no said condition related to a branch instruction located closer to the beginning of said ordered sequence than said identified branch instruction was satisfied.
Claim 2
Dependent Claim
264 words
A data processing system for executing a program comprising an instruction sequence including a plurality of instructions in an ordered sequence, said ordered sequence having a beginning and said ordered sequence including a plurality of branch instructions, each said branch instruction causing said data processing system to execute an instruction specified by a target address if a specified condition is satisfied, said data processing system including a branch processor comprising: means for storing information specifying a plurality of said branch instructions, said information including a target address corresponding to each said branch instruction and the location of said branch instruction in said ordered sequence relative to said beginning of said ordered sequence; means for receiving a prepare to branch instruction, said prepare to branch instruction including information specifying a target address and a location corresponding to one of said branch instructions and for causing said information to be stored in said storing means; compare result means for receiving information indicating that said condition related to one of said branch instructions has been satisfied; means for receiving an execute branch command, said execute branch command identifying one of said branch instructions having information stored in said storing means; and control means, responsive to receiving said execute branch command, for causing said data processing system to execute said instruction specified by said target address corresponding to said identified branch instruction if said condition related to said identified branch instruction was satisfied and no said condition related to a branch instruction located closer to the beginning of said ordered sequence than said identified branch instruction was satisfied.
Claim 3
Dependent Claim
37 words
The data processing system of claim 1 wherein said compare result means comprises a register for storing the identity of said branch instruction closest to the beginning of said ordered sequence for which said condition was satisfied.
Claim 4
Dependent Claim
80 words
The data processing system of claim 2 wherein said execute branch command includes information specifying a plurality of branch instructions and wherein said control means includes means for determining if any of said branch instructions specified in said execute branch command is said branch instruction whose identity is stored in said register and for causing said data processing system to execute said instruction identified by said target address corresponding to said branch instruction whose identity is stored in said register.
Claim 5
Dependent Claim
122 words
The data processing system of claim 1 further comprising cache memory means for storing data normally stored in a main memory and for providing said data directly to a central processing unit, said cache memory means comprising means for receiving a prefetch instruction including a data address in said main memory and means, responsive to the receipt of said prefetch instruction for causing the data stored at said data address to be copied to said cache memory if a copy of said data is not already in said cache memory, wherein said control means in said branch processor further comprises means for sending one of said prefetch instructions having a data address matching one of said target addresses to said cache memory.
Claim 6
Dependent Claim
38 words
The data processing system of claim 4 wherein said storing means in said branch processor further comprises means for storing information specifying an initial order in which said prefetch instructions are to be sent to said cache memory.
Claim 7
Dependent Claim
84 words
The data processing system of claim 5 wherein said compare result means comprises a register for storing the identity of said branch instruction closest to the beginning of said ordered sequence for which said condition was satisfied and wherein said control means further comprises means for preventing initiation or termination of said prefetch instructions from being sent for any target address having a corresponding branch instruction that is farther from the beginning of said instruction sequence than said branch instruction identified by said register.
Claim 8
Dependent Claim
65 words
The data processing system of claim 5 wherein said compare results means further comprises means for receiving information specifying that said condition related to one said branch instructions was not satisfied; and said control means further comprises means for preventing initiation or termination of said prefetch instruction having a data address equal to said target address of said branch instruction whose condition was not satisfied.
Claim 9
Independent Claim
194 words
A method of operating a data processing system to process branch operations having conditions and being associated with an ordered sequence of instructions wherein a branch operation has associated therewith a location in the ordered sequence, the data processing system having a plurality of storage locations for storing branch information, comprising the steps of: in response to a prepare to branch instruction corresponding to a branch operation, wherein a prepare to branch instruction specifies the location of the corresponding branch operation, loading branch information including the location into one of the storage locations; in response to a compare instruction associated with a branch operation, computing the condition for the branch operation; computing a target address for a branch operation having information stored in a storage location and storing the target address in the storage location for the branch operation; in response to an execute branch instruction specifying a branch operation stored in one of the storage locations, changing the program counter to the target address for the branch operation unless the condition of a branch instruction located closer to the beginning of the ordered sequence of instructions to which the branch belongs was satisfied.
Claim 10
Independent Claim
194 words
A method of operating a data processing system to process branch operations having conditions and being associated with an ordered sequence of instructions wherein a branch operation has associated therewith a location in the ordered sequence, the data processing system having a plurality of storage locations for storing branch information, comprising the steps of: in response to a prepare to branch instruction corresponding to a branch operation, wherein a prepare to branch instruction specifies the location of the corresponding branch operation, loading branch information including the location into one of the storage locations; in response to a compare instruction associated with a branch operation, computing the condition for the branch operation; computing a target address for a branch operation having information stored in a storage location and storing the target address in the storage location for the branch operation; in response to an execute branch instruction specifying a branch operation stored in one of the storage locations, changing the program counter to the target address for the branch operation unless the condition of a branch instruction located closer to the beginning of the ordered sequence of instructions to which the branch belongs was satisfied.
Claim 11
Dependent Claim
49 words
The method of processing branch operations according to claim 8, wherein in processing the instructions of the ordered sequence of instructions, for each branch operation in the ordered sequence of instructions, dividing the branch operation into a prepare to branch instruction, a compare instruction, and an execute branch instruction.
Claim 12
Dependent Claim
27 words
The method of processing branch operations according to claim 9, wherein a plurality of prepare to branch instructions are processed prior to executing any execute branch instructions.
Claim 13
Dependent Claim
24 words
The method of processing branch operations according to claim 9, wherein all prepare to branch instructions are executed prior to executing any compare instructions.
Claim 14
Dependent Claim
29 words
The method of processing branch operations according to claim 9, wherein all prepare to branch instructions and all compare instructions are executed prior to executing any execute branch instructions.
Claim 15
Dependent Claim
53 words
The method of processing branch operations according to claim 9, further comprising the step of: in response to results from the compare instructions, updating a register containing the identity of the branch position for the branch closest to the beginning of the superblock for which the condition for the branch operation was satisfied.
Claim 16
Dependent Claim
77 words
The method of processing branch operations according to claim 8, wherein each execute branch instruction may correspond to a plurality of branch operations and wherein the execute branch instruction includes a mask for indicating to which branch operations the execute branch instruction corresponds, and wherein the step of changing the program counter further comprises the step of changing the program counter to the highest branch enabled provided that branch is not masked in the execute branch instruction.
Claim 17
Dependent Claim
30 words
The method of processing branch operations according to claim 8, further comprising the step of: subsequent to computing the target address for a branch, prefetching instructions corresponding to the branch.
Claim 18
Dependent Claim
42 words
The method of processing branch operations according to claim 15, further comprising the step of if the compare instruction corresponding to a branch indicates that the branch will not be taken, the prefetch operation includes avoiding prefetching instructions corresponding to the branch.
Claim 19
Dependent Claim
41 words
The method of processing branch operations according to claim 8, further comprising the step of prefetching instructions corresponding to a plurality of branch operations in an order specified by the prepare to branch instructions corresponding to the plurality of branch operations.