Patent ID: 9229723
Filing Date: 2016-01-05
CPC Classification: G06F

Claim Text:
1. A computer program product for pattern history table filtering, the computer program product comprising: a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising: receiving a search address associated with a branch prediction; receiving a prediction strength indicator and a tag from a pattern history table, the prediction strength indicator having a value of weak or strong defined relative to a pattern history table direction prediction of a corresponding branch as taken or not taken, wherein the prediction strength indicator transitions between weak and strong based on receiving a resolved branch indication of taken or not taken such that a combination of the prediction strength indicator and the pattern history table direction prediction supports transitions between a range of predictions comprising: strong not taken, weak not taken, weak taken, and strong taken; determining, by the processing circuit, whether a pattern history table match exists based on the tag matching the search address; based on determining that the pattern history table match exists and the prediction strength indicator is weak, comparing an accuracy counter to a comparison threshold to determine by the processing circuit whether the pattern history table direction prediction from the pattern history table is more likely accurate than a branch history table direction prediction from a branch history table; selecting, by the processing circuit, the pattern history table direction prediction as a direction prediction based on determining that the accuracy counter indicates that the pattern history table direction prediction is more likely accurate than the branch history table direction prediction, the pattern history table match exists, and the prediction strength indicator is weak; selecting, by the processing circuit, the branch history table direction prediction as the direction prediction based on determining that the accuracy counter indicates that the branch history table direction prediction is more likely accurate than the pattern history table direction prediction, the pattern history table match exists, and the prediction strength indicator is weak; selecting, by the processing circuit, the pattern history table direction prediction as the direction prediction based on determining that the pattern history table match exists and the prediction strength indicator is strong; and selecting, by the processing circuit, the branch history table direction prediction as the direction prediction based on determining that the pattern history table match does not exist.