发明名称 |
Branch history with polymorphic indirect branch information |
摘要 |
A system and method for efficient improvement of branch prediction in a microprocessor with negligible impact on die-area, power consumption, and clock cycle period. It is determined if a program counter (PC) register contains a polymorphic indirect unconditional branch (PIUB) instruction. One determination may be searching a table with a portion or all of a PC of past PIUB instructions. If a hit occurs in this table, the global shift register (GSR) is updated by shifting a portion of the branch target address into the GSR, rather than updating the GSR with a taken/not-taken prediction bit. The stored value in the GSR is input into a hashing function along with the PC in order to index prediction tables such as a pattern history table (PHT), a branch target buffer (BTB), an indirect target array, or other. The updated value due to the PIUB instruction improves the accuracy of the prediction tables. |
申请公布号 |
US8782384(B2) |
申请公布日期 |
2014.07.15 |
申请号 |
US200711961511 |
申请日期 |
2007.12.20 |
申请人 |
Advanced Micro Devices, Inc. |
发明人 |
Suggs David;Bhargava Ravindra N. |
分类号 |
G06F7/38;G06F9/00;G06F9/44;G06F15/00 |
主分类号 |
G06F7/38 |
代理机构 |
Meyertons, Hood, Kivlin & Goetzel, P.C. |
代理人 |
Rankin Rory D.;Meyertons, Hood, Kivlin & Goetzel, P.C. |
主权项 |
1. A control flow prediction unit comprising:
a global history shift register (GSR); update logic, wherein in response to determining:
a branch instruction has more than two targets, is indirect, and unconditional, the update logic is configured to derive a value for storage in the GSR based on one or more bits of a branch target address of the branch instruction, wherein said value replaces selected bits of the GSR without performing a shift operation; andthe branch instruction is direct, conditional, or has fewer than three targets, said value comprises a taken/not-taken prediction bit to be shifted into the GSR for the branch instruction. |
地址 |
Sunnyvale CA US |