US2011047357A1PendingUtilityA1

Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions

46
Assignee: QUALCOMM INCPriority: Aug 19, 2009Filed: Aug 19, 2009Published: Feb 24, 2011
Est. expiryAug 19, 2029(~3.1 yrs left)· nominal 20-yr term from priority
G06F 9/3832G06F 9/3861G06F 9/30072G06F 9/3844
46
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Efficient techniques are described for not executing an issued conditional non-branch instruction. A conditional non-branch instruction is identified as being eligible for a prediction, the prediction indicating that the eligible conditional non-branch (ECNB) instruction would not execute. The ECNB instruction executes as a no operation (NOP) instruction in response to the prediction that the ECNB instruction would not execute. A source operand required for the ECNB instruction to execute is not fetched in response to the prediction to not execute.

Claims

exact text as granted — not AI-modified
1 . A method for not executing an issued conditional non-branch instruction, the method comprising:
 identifying a conditional non-branch instruction as being eligible for a prediction, the prediction indicating that the eligible conditional non-branch (ECNB) instruction would not execute; and   executing the ECNB instruction as a no operation (NOP) instruction in response to the prediction that the ECNB instruction would not execute.   
     
     
         2 . The method of  claim 1 , wherein a source operand required for the ECNB instruction to execute is not fetched in response to the prediction. 
     
     
         3 . The method of  claim 1 , wherein a register in a general purpose register file is not reserved to contain the result of the ECNB instruction in response to the prediction. 
     
     
         4 . The method of  claim 1 , further comprising:
 predicting that the ECNB instruction does not execute in response to a disable prediction flag that indicates no prior successful executions of the ECNB instruction occurred during an eligible period on which the prediction was based.   
     
     
         5 . The method of  claim 1 , further comprising:
 recording in a history register whether the ECNB instruction did or did not execute; and   predicting that the next ECNB instruction does not execute in response to the history register indicating at least one prior attempted execution of the ECNB instruction did not execute.   
     
     
         6 . The method of  claim 5 , wherein the at least one prior attempted execution of the ECNB instruction was encountered in a software loop. 
     
     
         7 . The method of  claim 5 , wherein the at least one prior attempted execution of the ECNB instruction was encountered in a pre-specified address range. 
     
     
         8 . The method of  claim 5 , wherein the at least one prior attempted execution of the ECNB instruction was encountered within an identified number of processor cycles. 
     
     
         9 . The method of  claim 1 , further comprising:
 comparing an evaluation criterion with a count value output of an ECNB instruction execution status counter to generate the prediction, wherein the ECNB instruction execution status counter saturates at a first count value indicative of a history of prior attempted executions of the ECNB instruction being strongly not executed.   
     
     
         10 . The method of  claim 9 , further comprising:
 updating the ECNB instruction execution status counter in a first direction to indicate a prior attempted execution of the ECNB instruction conditionally executed; and   updating the ECNB instruction execution status counter in a second direction that is opposite to the first direction to indicate a prior attempted execution of the ECNB instruction conditionally did not execute.   
     
     
         11 . The method of  claim 9 , wherein the evaluation criterion is the first count value. 
     
     
         12 . The method of  claim 9 , wherein the prior attempted executions of the ECNB instruction were encountered in a software loop. 
     
     
         13 . An apparatus for predicting a conditional non-branch instruction would not execute, the apparatus comprising:
 a first circuit for identifying a conditional non-branch instruction as being eligible for a prediction; and   a second circuit for predicting whether or not the eligible conditional non-branch (ECNB) instruction would not execute in response to meeting an evaluation criterion.   
     
     
         14 . The apparatus of  claim 13 , further comprises:
 an operand fetch circuit which does not fetch an operand required for the ECNB instruction to execute in response to the prediction to not execute.   
     
     
         15 . The apparatus of  claim 13 , further comprises:
 a pipeline tracking circuit to track the prediction in pipeline stages following a pipeline stage for predicting; and   an ECNB instruction execution stage circuit which does not execute the ECNB instruction in response to the prediction to not execute.   
     
     
         16 . The apparatus of  claim 13 , further comprising:
 an ECNB instruction execution status counter with a count value output that is compared to the evaluation criterion, wherein the count value is updated in a first direction to indicate an ECNB instruction conditionally executed and saturates at a first count value indicative of a strongly executed history and is updated in a second direction to indicate an ECNB instruction did not execute and saturates at a second count value indicative of a strongly not executed history.   
     
     
         17 . The apparatus of  claim 16 , wherein the evaluation criterion is the second count value. 
     
     
         18 . The apparatus of  claim 13 , wherein the evaluation criterion is a disable prediction flag in an non-active state, wherein the non-active state of the disable prediction flag indicates prediction is enabled, wherein the disable prediction flag is set to a disable state if the ECNB instruction is ever determined to have conditionally executed in a software loop associated with the ECNB instruction. 
     
     
         19 . A method for predicting a conditional non-branch instruction would not execute, the method comprising:
 identifying a conditional non-branch instruction that is eligible for predicting whether it will or will not execute; and   predicting that the eligible conditional non-branch (ECNB) instruction will not execute in response to meeting an evaluation criterion.   
     
     
         20 . The method of  claim 19 , wherein a source operand required for the ECNB instruction to execute is not fetched in response to meeting the evaluation criterion. 
     
     
         21 . The method of  claim 19 , wherein the ECNB instruction is executed as a no operation (NOP) instruction in response to meeting the evaluation criterion. 
     
     
         22 . The method of  claim 19 , wherein meeting the evaluation criterion comprises:
 recording a history of execution status of previous attempted executions of the ECNB instructions encountered within a software loop; and   comparing the history with the evaluation criterion to indicate whether the evaluation criterion has been met.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.