Claims Analysis
Total Claims: 21
Claim 1
Independent Claim
368 words
A processor for processing information in response to an ordered sequence of instructions, the ordered sequence of instructions including a plurality of arithmetic instructions that control arithmetic operations on the information, said processor being capable of performing speculative, out-of-order execution of instructions contained within the ordered sequence of instructions for enhanced computational efficiency, said processor comprising: register means for storing information, said register means comprising an array of registers, each register having a unique register number; fetching means for fetching the ordered sequence of instructions from an instruction memory; shelving means coupled to said fetching means to receive fetched instructions and to store multiple such instructions in the order fetched, said shelving means comprising: means for storing an operation code associated with each of the instructions; associative means for storing a destination register number associated with each of the instructions; means for storing a result associated with each of the instructions; scheduling means coupled to said shelving means for continuously selecting instructions in said shelving means for which all information required for execution is available in one of said register means or said shelving means and for issuing those instructions for execution in an order independent of the order in which those instructions were fetched; multiple arithmetic means coupled to said scheduling means for simultaneously performing operations on information in one of said register means or said shelving means in response to operation codes associated with instructions supplied from said shelving means to generate execution results, said arithmetic means further coupled to said shelving means so that said shelving means receives the execution result and is capable of storing the execution result in said means for storing, said scheduling means being capable of simultaneously supplying each of several of said arithmetic means with different operation codes associated with arithmetic instructions from said shelving means, along with the information needed to execute each of said different arithmetic instructions stored in either said register means or said shelving means; and means for copying the results of execution of the oldest instruction in said shelving means into a register of said register means corresponding to the destination register number associated with that instruction and removing that instruction from said shelving means.
Claim 2
Dependent Claim
368 words
A processor for processing information in response to an ordered sequence of instructions, the ordered sequence of instructions including a plurality of arithmetic instructions that control arithmetic operations on the information, said processor being capable of performing speculative, out-of-order execution of instructions contained within the ordered sequence of instructions for enhanced computational efficiency, said processor comprising: register means for storing information, said register means comprising an array of registers, each register having a unique register number; fetching means for fetching the ordered sequence of instructions from an instruction memory; shelving means coupled to said fetching means to receive fetched instructions and to store multiple such instructions in the order fetched, said shelving means comprising: means for storing an operation code associated with each of the instructions; associative means for storing a destination register number associated with each of the instructions; means for storing a result associated with each of the instructions; scheduling means coupled to said shelving means for continuously selecting instructions in said shelving means for which all information required for execution is available in one of said register means or said shelving means and for issuing those instructions for execution in an order independent of the order in which those instructions were fetched; multiple arithmetic means coupled to said scheduling means for simultaneously performing operations on information in one of said register means or said shelving means in response to operation codes associated with instructions supplied from said shelving means to generate execution results, said arithmetic means further coupled to said shelving means so that said shelving means receives the execution result and is capable of storing the execution result in said means for storing, said scheduling means being capable of simultaneously supplying each of several of said arithmetic means with different operation codes associated with arithmetic instructions from said shelving means, along with the information needed to execute each of said different arithmetic instructions stored in either said register means or said shelving means; and means for copying the results of execution of the oldest instruction in said shelving means into a register of said register means corresponding to the destination register number associated with that instruction and removing that instruction from said shelving means.
Claim 3
Dependent Claim
36 words
The processor according to claim 1, wherein each instruction received by said shelving means is identified by a unique instruction identifier related to the order in which the fetched instructions are fetched by the fetching means.
Claim 4
Dependent Claim
35 words
The processor according to claim 2, said fetching means comprising an instruction cache coupled to said instruction memory for receiving said instructions from said instruction memory and for transferring said instructions to said shelving means.
Claim 5
Dependent Claim
25 words
The processor according to claim 2, said shelving means further comprising a means for storing said unique instruction identifier associated with each of the instructions.
Claim 6
Dependent Claim
105 words
The processor according to claim 4, wherein said shelving means further comprises a means for storing a first operand register number associated with each instruction, and wherein said processor comprises means for generating a first pointer associated with each instruction, said first pointer being set equal to the unique identifier associated with a prior instruction stored in the shelving means if (a) the destination register number corresponding to the prior instruction is equal to said first operand register number, and (b) that prior instruction is the youngest such instruction in the shelving means having its destination register number equal to said first operand register number.
Claim 7
Dependent Claim
106 words
The processor according to claim 5, wherein said shelving means further comprises a means for storing a second operand register number associated with each instruction, and wherein said processor comprises means for generating a second pointer associated with each instruction, said second pointer being set equal to the unique identifier associated with a prior instruction stored in the shelving means if (a) the destination register number corresponding to the prior instruction is equal to said second operand register number, and (b) that prior instruction is the youngest such instruction in the shelving means having its destination register number equal to the said second operand register number.
Claim 8
Dependent Claim
60 words
The processor according to claim 5, wherein if said first pointer is set to the unique identifier of that prior instruction, the instruction having its first pointer set equal to the unique identifier of that prior instruction is executed by sending the result of that prior instruction to a one of said multiple arithmetic means as a first operand value.
Claim 9
Dependent Claim
60 words
The processor according to claim 6, wherein if said second pointer is set to the unique identifier of that prior instruction, the instruction having its second pointer set equal to the unique identifier of that prior instruction is executed by sending the result of that prior instruction to a one of said multiple arithmetic means as a second operand value.
Claim 10
Dependent Claim
85 words
The processor according to claim 8, said shelving means comprising a completion tag field for storing a completion tag associated with each instruction, said completion tag being set to a first logic level if said instruction has not been executed, said completion tag being set to a second logic level said instruction has been executed, and wherein said result of said prior instruction is sent to the arithmetic means only if the completion tag associated with said prior instruction is at said second logic level.
Claim 11
Dependent Claim
23 words
A processor according to claim 9, wherein said multiple arithmetic means comprises: a floating point unit; and a plurality of integer arithmetic units.
Claim 12
Dependent Claim
436 words
A processor for processing information in response to an ordered sequence of instructions, the ordered sequence of instructions including a plurality of arithmetic instructions that control arithmetic operations on the information, said processor being capable of performing speculative, out-of-order execution of instructions contained within said ordered sequence of instructions for enhanced computational efficiency, said processor comprising: a register array comprising a plurality of registers, each register having a unique register number; an instruction fetcher for fetching the speculative sequence of instructions from an instruction memory; an instruction shelver coupled to said instruction fetcher for receiving fetched instructions and for storing multiple such instructions in the order fetched, said shelving means comprising: an operation code field for storing an operation code associated with each of said instructions; an associatively addressable destination register field for storing a destination register number associated with each of said instructions; a result field for storing a result associated with each of said instructions; an instruction scheduler coupled to said instruction shelver for continuously selecting instructions in said instruction shelver for which all information required for execution is available in said register array or said instruction shelver and for issuing those instructions for execution in an order independent of the order in which those instructions were fetched; a first arithmetic unit coupled to said instruction scheduler for performing operations on information in one of said register array or said instruction shelver in response to operation codes associated with instructions supplied from said instruction shelver to generate execution results, said first arithmetic unit further coupled to said instruction shelver so that said instruction shelver receives the execution result and is capable of storing the execution result in said result field; a second arithmetic unit coupled to said instruction scheduler for performing operations on information in one of said register array or said instruction shelver in response to operation codes associated with instructions supplied from said instruction shelver to generate execution results, said second arithmetic unit further coupled to said instruction shelver so that said instruction shelver receives the execution results and is capable of storing the execution results in said result field, wherein said instruction scheduler is capable of simultaneously supplying said first arithmetic unit and said second arithmetic unit with different operation codes corresponding to arithmetic instructions from said instruction shelver, along with the information needed to execute each of said different arithmetic instructions stored in either said register array or said instruction shelver; a retirement unit for retiring the results of execution of the oldest instruction in said instruction shelver into said register array and removing that instruction from said instruction shelver.
Claim 13
Dependent Claim
436 words
A processor for processing information in response to an ordered sequence of instructions, the ordered sequence of instructions including a plurality of arithmetic instructions that control arithmetic operations on the information, said processor being capable of performing speculative, out-of-order execution of instructions contained within said ordered sequence of instructions for enhanced computational efficiency, said processor comprising: a register array comprising a plurality of registers, each register having a unique register number; an instruction fetcher for fetching the speculative sequence of instructions from an instruction memory; an instruction shelver coupled to said instruction fetcher for receiving fetched instructions and for storing multiple such instructions in the order fetched, said shelving means comprising: an operation code field for storing an operation code associated with each of said instructions; an associatively addressable destination register field for storing a destination register number associated with each of said instructions; a result field for storing a result associated with each of said instructions; an instruction scheduler coupled to said instruction shelver for continuously selecting instructions in said instruction shelver for which all information required for execution is available in said register array or said instruction shelver and for issuing those instructions for execution in an order independent of the order in which those instructions were fetched; a first arithmetic unit coupled to said instruction scheduler for performing operations on information in one of said register array or said instruction shelver in response to operation codes associated with instructions supplied from said instruction shelver to generate execution results, said first arithmetic unit further coupled to said instruction shelver so that said instruction shelver receives the execution result and is capable of storing the execution result in said result field; a second arithmetic unit coupled to said instruction scheduler for performing operations on information in one of said register array or said instruction shelver in response to operation codes associated with instructions supplied from said instruction shelver to generate execution results, said second arithmetic unit further coupled to said instruction shelver so that said instruction shelver receives the execution results and is capable of storing the execution results in said result field, wherein said instruction scheduler is capable of simultaneously supplying said first arithmetic unit and said second arithmetic unit with different operation codes corresponding to arithmetic instructions from said instruction shelver, along with the information needed to execute each of said different arithmetic instructions stored in either said register array or said instruction shelver; a retirement unit for retiring the results of execution of the oldest instruction in said instruction shelver into said register array and removing that instruction from said instruction shelver.
Claim 14
Dependent Claim
36 words
The processor according to claim 11, wherein each instruction received by said instruction shelver is identified by a unique instruction identifier related to the order in which the fetched instructions are fetched by the instruction fetcher.
Claim 15
Dependent Claim
35 words
The processor according to claim 12, said instruction fetcher comprising an instruction cache coupled to said instruction memory for receiving said instructions from said instruction memory and for transferring said instructions to said instruction shelver.
Claim 16
Dependent Claim
21 words
The processor according to claim 12, said instruction shelver further comprising an instruction identifier field for storing said unique instruction identifiers.
Claim 17
Dependent Claim
110 words
The processor according to claim 14, wherein said instruction shelver further comprises a first operand register number field associated for storing a first operand register number associated with each instruction, and wherein said processor is capable of generating a first pointer associated with each instruction, said first pointer being set equal to the unique identifier associated with a prior instruction stored in the instruction shelver if (a) the destination register number corresponding to the prior instruction is equal to said first operand register number, and (b) that prior instruction is the youngest such instruction in the instruction shelver having its destination register number equal to said first operand register number.
Claim 18
Dependent Claim
110 words
The processor according to claim 15, wherein said instruction shelver further comprises a second operand register number field for storing a second operand register number associated with each instruction, and wherein said processor is capable of generating a second pointer associated with each instruction, said second pointer being set equal to the unique identifier associated with a prior instruction stored in the instruction shelver if (a) the destination register number corresponding to the prior instruction is equal to said second operand register number, and (b) that prior instruction is the youngest such instruction in the instruction shelver having its destination register number equal to the said second operand register number.
Claim 19
Dependent Claim
62 words
The processor according to claim 15, wherein if said first pointer is set to the unique identifier of that prior instruction, the instruction having its first pointer set equal to the unique identifier of that prior instruction is executed by sending the result of that prior instruction to a one of said first or second arithmetic units as a first operand value.
Claim 20
Dependent Claim
62 words
The processor according to claim 16, wherein if said second pointer is set to the unique identifier of that prior instruction, the instruction having its second pointer set equal to the unique identifier of that prior instruction is executed by sending the result of that prior instruction to a one of said first or second arithmetic units as a second operand value.
Claim 21
Dependent Claim
85 words
The processor according to claim 18, said instruction shelver comprising a completion tag field for storing a completion tag associated with each instruction, said completion tag being set to a first logic level if said instruction has not been executed, said completion tag being set to a second logic level said instruction has been executed, and wherein said result of said prior instruction is sent to said arithmetic unit only if the completion tag associated with said prior instruction is at said second logic level.