发明名称 SPECULATIVE BRANCH HANDLING FOR TRANSACTION ABORT
摘要 Embodiments relate to speculative branch handling for transaction abort. An aspect includes detecting a beginning of a current execution of a transaction. Another aspect includes, based on detecting the beginning of the transaction, disabling speculative execution based on branch prediction of an initial branch instruction of the transaction, wherein the initial branch instruction branches to two possible paths, and wherein a first path of the two possible paths comprises an abort handler. Another aspect includes disabling updating of a history table for the initial branch instruction.
申请公布号 US2016239310(A1) 申请公布日期 2016.08.18
申请号 US201615052090 申请日期 2016.02.24
申请人 International Business Machines Corporation 发明人 Billeci Michael;Bonanno James J.;Collura Adam B.;Jacobi Christian;Saporito Anthony;Slegel Timothy J.
分类号 G06F9/38 主分类号 G06F9/38
代理机构 代理人
主权项 1. A computer implemented method for branch handling for transaction abort, the method comprising: detecting a beginning of a current execution of a transaction, the transaction being one of a plurality of transactions in a lock elision transaction system; based on detecting the beginning of the transaction: disabling speculative execution based on branch prediction of an initial branch instruction of the transaction,determining whether the transaction is an out-of-line abort type transaction or an in-line abort type transaction,wherein the initial branch instruction branches to two paths, wherein the initial branch instruction comprises a mask branch instruction that is evaluated based on a condition code of the transaction, the condition code indicates whether the current execution of the transaction is a retry after abort, wherein a first path of the two paths comprises an abort handler, a second path of the two paths comprises a work section of the transaction, and wherein the abort handler sets a lock for the transaction,wherein based on the in-line abort type transaction being determined, the abort handler is executed if the mask branch instruction is not taken, and only speculatively executing the mask branch instruction based on the mask branch instruction being predicted taken to prevent a branch abort instruction from being speculatively executed,wherein based on an out-of-line abort type transaction being determined, the abort handler is executed based on the mask branch instruction being taken; disabling updating of a history table for the initial branch instruction based on the mask branch instruction being resolved as not taken; and updating the history table for the initial branch instruction based on the mask branch instruction being resolved as taken.
地址 Armonk NY US