Synthetic dynamic branch prediction
First Claim
Patent Images
1. A compiler, comprising:
- (A) a branch statistics data analyzer that analyzes branch statistics data of a branch instruction to construct a branch predictor function for the branch instruction, wherein the branch statistics data includes branch profile information and register dump information;
(B) a branch prediction instruction generator coupled to the branch statistics data analyzer to generate at least one prediction instruction to implement the branch predictor function;
(C) a main compiling engine coupled to the branch prediction instruction generator to insert the prediction instruction before the branch instruction.
4 Assignments
0 Petitions
Accused Products
Abstract
A compiler includes a branch statistics data analyzer to analyze branch statistics data of a branch instruction to construct a branch predictor function for the branch instruction. A branch prediction instruction generator is coupled to the branch statistics data analyzer to generate at least one prediction instruction to implement the branch predictor function. A main compiling engine is coupled to the branch prediction instruction generator to insert the prediction instruction before the branch instruction. A method of dynamically predicting a branch instruction of a program is also described.
116 Citations
19 Claims
-
1. A compiler, comprising:
-
(A) a branch statistics data analyzer that analyzes branch statistics data of a branch instruction to construct a branch predictor function for the branch instruction, wherein the branch statistics data includes branch profile information and register dump information; (B) a branch prediction instruction generator coupled to the branch statistics data analyzer to generate at least one prediction instruction to implement the branch predictor function; (C) a main compiling engine coupled to the branch prediction instruction generator to insert the prediction instruction before the branch instruction. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of dynamically predicting a branch instruction of a program, comprising the steps of:
-
analyzing branch statistics data of the branch instruction to construct a branch predictor function for the branch instruction, wherein the branch statistics data includes branch profile information and register dump information; (B) generating at least one prediction instruction to implement the branch predictor function; (C) a inserting the prediction instruction before the branch instruction. - View Dependent Claims (8, 9, 10, 11)
-
-
12. An apparatus, comprising:
-
(A) a storage medium; (B) a computer executable compiler program stored in the storage medium that dynamically predicts a branch instruction of a program, the computer executable compiler program further comprising (a) a first set of instructions that analyze branch statistics data of the branch instruction to obtain a branch predictor function for the branch instruction, wherein the branch statistics data includes branch profile information and register dump information; (b) a second set of instructions that generate at least one prediction instruction to implement the branch predictor function; (c) a third set of instructions that insert the prediction instruction before the branch instruction when compiling a source code containing the branch instruction into a machine code. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A runtime branch prediction synthesizer, comprising:
-
(A) a branch statistics data analyzer that analyzes branch statistics data of a branch instruction to construct a branch predictor function for the branch instruction, wherein the branch statistics data includes branch profile information and register dump information, wherein the branch statistics data analyzer constructs the branch predictor function by analyzing the branch profile information and the register dump information to identify correlations between branch directions and register contents; (B) a branch prediction instruction generator coupled to the branch statistics data analyzer to generate at least one prediction instruction to implement the branch predictor function; (C) a runtime code manager coupled to the branch prediction instruction generator to insert the prediction instruction before the branch instruction. - View Dependent Claims (19)
-
Specification