摘要 |
Under the present invention, a branch target address corresponding to a target instruction to be pre-fetched is predicted based on two values. The first value is a "predictor value" that is known for the branch target address. The second value is the address of the branch instruction from which the target instruction is branched to within the program code. Once these two values are provided, they can be processed (e.g., hashed) to yield an index value, which is used to obtain a predicted branch target address from a cache. This technique is generally implemented for branch instructions such as switch statements or polymorphic calls. In the case of the former, the predictor value is a selector operand, while in the case of the latter the predictor value is a class object address (in JAVA) or a virtual function table address (in C++). |
申请人 |
INTERNATIONAL BUSINESS MACHINES CORPORATION;IBM UNITED KINGDOM LIMITED;ARCHAMBAULT, ROCH, GEORGES;HAY, ROBERT, WILLIAM;MCINNES, JAMES, LAWRENCE;STOODLEY, KEVIN, ALEXANDER |
发明人 |
ARCHAMBAULT, ROCH, GEORGES;HAY, ROBERT, WILLIAM;MCINNES, JAMES, LAWRENCE;STOODLEY, KEVIN, ALEXANDER |