发明名称 Block-based branch prediction using a target finder array storing target sub-addresses
摘要 A target finder array in the instruction cache contains a lower portion of the target address and a block encoding indicating if the target address is within the same 2K-byte block that the branch instruction is in, or if the target address is in the next or previous 2K-byte block. The upper portion of the target address, its block number, which corresponds to the starting address of a 2K block, is generated from the target finder simply by taking the upper portion or block number of the branch instruction and incrementing and decrementing it, and using the block encoding in the finder to select either the unmodified block number of the branch instruction, or the incremented or decremented block number of the branch instruction. The lower portion of the target address that was stored in the finder is concatenated with the selected block number to get the predicted target address. The target address can be predicted in parallel with reading an instruction out of the cache, making the target available at the same time the branch instruction is available, eliminating pipeline stalls for correctly predicted branches. The initially predicted target address in the finder is generated by a quick decode of the instruction and is written when the cache is loaded from memory. The initial prediction does not have to be accurate because branch resolution logic will update the finder on each branch resolution. Register indirect branches and exceptions may also be predicted. Two instruction sets may be accommodated by different block encodings to indicate the instruction set. By using the block encoding, the finder array is small and inexpensive.
申请公布号 US5608886(A) 申请公布日期 1997.03.04
申请号 US19940298778 申请日期 1994.08.31
申请人 EXPONENTIAL TECHNOLOGY, INC. 发明人 BLOMGREN, JAMES S.;COHEN, EARL T.;BAIRD, BRIAN R.
分类号 G06F9/318;G06F9/38;(IPC1-7):G06F9/30 主分类号 G06F9/318
代理机构 代理人
主权项
地址