发明名称 堆栈指针值预测
摘要 描述了用于预测堆栈指针值的方法和装置。在实施例中,当出现增大堆栈的指令时存储数据。所存储的信息包括尺寸参数,该尺寸参数表明了堆栈增大了多少以及以下中的一个或两个:当前保持有堆栈指针值的寄存器ID或当前堆栈指针值。当出现随后的用于缩小堆栈的指令时,在所存储的数据中搜索具有相对应尺寸参数的一个或多个条目。如果识别出这样的条目,则存储在该条目中的其它信息被用来预测堆栈指针值,而非使用指令来计算新的堆栈指针值。在使用了寄存器重命名的情况下,条目中的信息用于将堆栈指针重映射到不同的物理寄存器。
申请公布号 CN104793920A 申请公布日期 2015.07.22
申请号 CN201510023224.9 申请日期 2015.01.16
申请人 想象力科技有限公司 发明人 H·杰克逊
分类号 G06F9/38(2006.01)I 主分类号 G06F9/38(2006.01)I
代理机构 永新专利商标代理有限公司 72002 代理人 邬少俊;王英
主权项 一种用于预测处理器中的堆栈的堆栈指针值的方法,所述堆栈具有相关联的堆栈指针,并且所述方法包括:响应于检测到增大所述堆栈的指令(102),在数据结构中存储数据条目,所述数据条目包含有对应于该指令增大所述堆栈的量的尺寸值以及以下中的至少一个:存储有在该指令增大所述堆栈之前的所述堆栈指针值的物理寄存器的寄存器ID(104);以及在该指令增大所述堆栈之前的所述堆栈指针值(1104);并且响应于随后检测到缩小所述堆栈的指令(106),将对应于该指令缩小所述堆栈的量的尺寸值与所述数据结构中一个或多个所存储的尺寸值进行比较(108);响应于检测到对应于该指令缩小所述堆栈的量的尺寸值与一个或多个所存储的尺寸值之间的对应,基于包含有在所述比较中使用的所述一个或多个所存储的尺寸值的数据条目来更新所述堆栈指针(110,1110),并且从所述数据结构中移除包含有在所述比较中使用的所述一个或多个所存储的尺寸值的所述数据条目(112);并且响应于未检测到对应于该指令缩小所述堆栈的量的尺寸值与所述一个或多个所存储的尺寸值之间的对应,从所述数据结构中移除所有条目(114)。
地址 英国赫特福德郡