Patent ID: 9244688
Filing Date: 2016-01-26
CPC Classification: G06F

Claim Text:
1. A computer-implemented method for using a branch target buffer preload table, the method comprising: receiving a search request to locate branch prediction information associated with a branch instruction; searching, by a computer, for an entry corresponding to the search request in a branch target buffer and a branch target buffer preload table in parallel, wherein a capacity of the branch target buffer preload table to store entries is less than a capacity of the branch target buffer to store entries thereby enabling the branch target buffer preload table to have higher read and write bandwidth in comparison to the branch target buffer, and the branch target buffer preload table comprises multiple ports to support installing new entries in parallel from multiple install sources, wherein the multiple install sources comprise a surprise install, a software preload install, a branch target buffer install from an other branch target buffer, and a victim install from the branch target buffer; based on locating a matching entry in the branch target buffer preload table corresponding to the search request and failing to locate the matching entry in the branch target buffer, selecting, by the computer, a victim entry to overwrite in the branch target buffer; receiving branch prediction information of the matching entry from the branch target buffer preload table at the branch target buffer; overwriting the victim entry in the branch target buffer with the branch prediction information of the matching entry; receiving the surprise install at a first port of the branch target buffer preload table, the surprise install based on a branch instruction that was not predicted and was taken; receiving the software preload install at a second port of the branch target buffer preload table; and installing new entries in the branch target buffer preload table based on receiving install requests as one or more of: the surprise install, the software preload install, the branch target buffer install from the other branch target buffer, and the victim install from the branch target buffer.