Abstract—Branch instructions have been the biggest
contributor of reducing parallelism in pipe-lined computers.
Branch prediction had improved the predictability of branch
conditions. But the branch targets for indirect branches are still
hard to predict as a single branch instruction can branch to
different targets in case of indirect branches. Using a BTB will
only improve performance of indirect branches that branch to
the same target address.
In this paper, we propose a modified indexing of BTB, that would allow, first, multiple entries for a single branch instruction to improve prediction of branches with multiple targets and second, use of the offset that the branch instruction would use as part of the index to improve the indexing of BTB. We achieve this by caching the values produced by most recently executed instructions and identifying the instruction that produced the offset value used by the branch instruction as an offset source for that branch. When the source instruction is executed the next time, the value produced is taken as the predicted offset and used along with branch instruction PC as an index into the BTB. Updating the BTB after the completion of branch instruction is also done with the same index. Using the predicted offset to augment the BTB index allows for better prediction of indirect branches.
Index Terms—Branch prediction, BTB, dynamic indexing, indirect jump, offset prediction.
Vidhya C is with CMR Institute of Technology, Bangalore, KA 560037,
Manimozhi I is with the Department of Computer Science, CMR Institute of Technology, Bangalore, KA 560037, India (e-mail: email@example.com).
Jithendranath Mungara is with the Department of Computer Science, CMR Institute of Technology, Bangalore, KA 560037, India (e-mail: firstname.lastname@example.org).
Cite: Vidhya C., Manimozhi I., and Jithendranath Mungara, "Dynamic BTB Indexing Using Jump Offset Prediction," International Journal of Information and Education Technology vol. 2, no. 5, pp. 486-489, 2012.