Early conditional selection of an operand
First Claim
1. A method of pipeline operation, comprising:
- detecting an instruction that specifies at least one operand to be selected from a group of at least two operands at least one of which may be in flight in the pipeline;
determining an operand selection criterion as specified by the instruction;
evaluating the operand selection criterion to select at least one operand from the group of at least two operands; and
committing the instruction for execution once the at least one selected operand is available without waiting for a non-selected operand to become available.
1 Assignment
0 Petitions
Accused Products
Abstract
Delays due to waiting for operands that will not be used by a select operand instruction, are alleviated based on an early recognition that such operand data is not required in order to complete the processing of the select operand instruction. At appropriate points prior to execution, determinations are made regarding a selection criterion or criteria specified by the select operand instruction, conditions that affect the selection criteria, and the availability of operands. A hold circuit uses the determinations to control the activation and release of a hold signal that controls processor pipeline stalls. A stall required to wait for operand data is skipped or a stall is terminated early, if the selected operand is available even though the other operand, that will not be used, is not available. A stall due to waiting for operands is maintained until the selection criteria is met and the selected operand is fetched and made available.
15 Citations
20 Claims
-
1. A method of pipeline operation, comprising:
-
detecting an instruction that specifies at least one operand to be selected from a group of at least two operands at least one of which may be in flight in the pipeline;
determining an operand selection criterion as specified by the instruction;
evaluating the operand selection criterion to select at least one operand from the group of at least two operands; and
committing the instruction for execution once the at least one selected operand is available without waiting for a non-selected operand to become available. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of processing a select operand instruction in a processor pipeline, the method comprising:
-
decoding a selection criteria specified in the select operand instruction in a decode stage of the processor pipeline;
analyzing condition flags specified by the selection criteria; and
if the analysis of the condition flags indicates that at least one operand of a group of at least two operands specified in the select operand instruction is to be selected, terminating any wait that may be in effect for a non-selected operand; and
executing the select operand instruction with the at least one selected operand. - View Dependent Claims (11, 12, 13)
-
-
14. A pipelined processor for processing instructions, the pipelined processor comprising:
-
an execution stage for executing instructions using input operand data required by each instruction of a plurality of instructions;
a hold circuit for generating a hold for each of the plurality of instructions in turn, prior to execution thereof by the execution stage, until completion of receiving the input operand data for each instruction; and
means for determining, prior to completion of receiving the input operand data, an operand data to select and terminating the hold with respect to a selection criteria specified in an instruction in execution upon determining the selected operand data is available. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification