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.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.