Method and apparatus for performing multiple branch predictions per cycle
AssigneeSun Microsystems, Inc.
InventorsAdam R. Talcott, Ramesh K. Panwar, Rajasekhar Cherabuddi, Sanjay Patel
Life of this patent
Estimating the term…
Abstract
A method and apparatus for performing multiple branch predictions per cycle is disclosed. The method and apparatus according to the present invention determine, within one fetch cycle, which instructions in a plurality of fetch instructions are branches and whether such branches are taken or not taken thereby finding the oldest taken branch, which has a target address that is fetched within the same fetch cycle.
Claims19
A method for multiple branch prediction per fetch cycle, said method comprising:
- providing a current fetch bundle having a plurality of fetch instructions;
- determining which ones, if any, of said fetch instructions are branches;
- determining which ones, if any of said branch instructions are conditional branch instructions or unconditional branch instructions;
- predicting which ones, if any, of said conditional branch instructions are taken;
- and
- identifying the oldest taken branch of a plurality of conditional branch instructions in said fetch instructions.
A method for multiple branch prediction per fetch cycle, said method comprising:
- providing a current fetch bundle having a plurality of fetch instructions;
- determining which ones, if any, of said fetch instructions are branches;
- determining which ones of said branch instructions are conditional branch instructions or unconditional branch instructions;
- predicting which ones, if any, of said conditional branch instructions are taken;
- identifying the oldest taken branch from said conditional branch instructions and from said unconditional branch instructions.
A microprocessor for handling multiple branch predictions per fetch cycle, comprising:
- an instruction cache for supplying a plurality of fetch instructions;
- a predecode array for determining which ones, if any, of said fetch instructions are branches and for determining which instructions are conditional instructions and which instructions are unconditional instructions;
- a branch prediction table for predicting which ones, if any, of said branch instructions are taken;
- a branch logic that combines the information from said predecode array and the predictions from said branch prediction table to identify the oldest taken branch;
- and
- a next fetch address table that provides the target address corresponding to said identified oldest taken branch.
Dependencies are inferred from the claim text.