发明名称 Return address prediction
摘要 A data processing apparatus executes call instructions, and after a sequence of instructions executed in response to a call instruction a return instruction causes the program flow to return to a point in the program sequence associated with that call instruction. The data processing apparatus is configured to speculatively execute instructions in dependence on a predicted outcome of earlier instructions and a return address prediction unit is configured to store return addresses associated with unresolved call instructions. The return address prediction unit comprises: a stack portion onto which return addresses associated with unresolved call instructions are pushed, and from which a return address is popped when a return instruction is speculatively executed; and a buffer portion which stores an entry for each unresolved call instruction executed and for each return instruction which is speculatively executed.
申请公布号 US9361112(B2) 申请公布日期 2016.06.07
申请号 US201313865371 申请日期 2013.04.18
申请人 ARM Limited 发明人 Demongeot Clément Marc;Mouton Louis-Marie Vincent;Piry Frédéric Claude Marie;Jaubert Jocelyn Francois Orion;Tonnerre Albin Pierick
分类号 G06F9/30;G06F7/38;G06F9/38 主分类号 G06F9/30
代理机构 Nixon & Vanderhye P.C. 代理人 Nixon & Vanderhye P.C.
主权项 1. A data processing apparatus configured to perform data processing operations in response to an ordered sequence of program instructions, wherein said program instructions comprise call instructions, each said call instruction configured to cause said data processing apparatus to depart from said ordered sequence of program instructions and to execute a further sequence of instructions until a return instruction is encountered and said return instruction configured to cause said data processing apparatus to return to said ordered sequence of program instructions at a return address for said call instruction, said data processing apparatus comprising: an execution unit configured to execute said program instructions, wherein said execution unit is configured to speculatively execute later program instructions in said ordered sequence in dependence on a predicted outcome of earlier program instructions in said ordered sequence; and a return address prediction unit configured to store return addresses for unresolved call instructions, and wherein said predicted outcome is dependent on said return addresses, wherein said return address prediction unit comprises: a stack portion configured to maintain a stack of return addresses for said unresolved call instructions, wherein said stack portion is configured to push said return address onto said stack when said call instruction is speculatively executed and to pop a stacked return address off said stack when said return instruction is speculatively executed; and a buffer portion configured to maintain a buffered history for said unresolved call instructions, wherein said buffered history comprises entries for unresolved call instructions and entries for unresolved return instructions.
地址 Cambridge GB