[发明专利]用于堆栈指针值预测的方法和装置有效
申请号: | 201910109821.1 | 申请日: | 2015-01-16 |
公开(公告)号: | CN109871341B | 公开(公告)日: | 2023-10-27 |
发明(设计)人: | H·杰克逊 | 申请(专利权)人: | 美普思技术有限责任公司 |
主分类号: | G06F13/24 | 分类号: | G06F13/24;G06F9/30;G06F9/38;G06F9/448 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 周靖;杨明钊 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 堆栈 指针 预测 方法 装置 | ||
1.一种用于预测处理器中的堆栈的堆栈指针值的方法,所述堆栈具有相关联的堆栈指针,并且所述方法包括,在所述处理器中的加载-存储单元中:
检测堆栈指针的变化;
响应于检测到所述堆栈指针的变化,将存储有所述堆栈指针的值的物理寄存器的寄存器ID以及所述堆栈指针的所述值进行存储;并且
响应于接收到使用对应于所存储的寄存器ID的物理寄存器来加载/存储的指令,使用与所存储的寄存器ID相关联的所述堆栈指针的所存储的所述值来计算用于加载/存储的地址。
2.根据权利要求1所述的方法,其中,将存储有所述堆栈指针的值的物理寄存器的寄存器ID以及所述堆栈指针的所述值进行存储包括:
将存储有所述堆栈指针在所述变化之前的值的物理寄存器的寄存器ID以及所述堆栈指针在所述变化之前的所述值进行存储。
3.根据权利要求1所述的方法,其中,将存储有所述堆栈指针的值的物理寄存器的寄存器ID以及所述堆栈指针的所述值进行存储包括:
将存储有所述堆栈指针在所述变化之后的值的物理寄存器的寄存器ID以及所述堆栈指针在所述变化之后的所述值进行存储。
4.根据权利要求1所述的方法,其中,检测堆栈指针的变化包括:
从所述处理器中的解码和重命名平台接收堆栈指针的变化的通知。
5.根据权利要求1所述的方法,其中,存储有所述堆栈指针的所述值的所述物理寄存器的所述寄存器ID以及所述堆栈指针的所述值被存储在堆栈指针缓存中。
6.根据权利要求5所述的方法,其中,所述堆栈指针缓存的大小是有限的。
7.根据权利要求6所述的方法,其中,存储有所述堆栈指针的所述值的所述物理寄存器的所述寄存器ID以及所述堆栈指针的所述值包括一值对,并且所述方法进一步包括:
在对存储有所述堆栈指针的所述值的所述物理寄存器的所述寄存器ID以及所述堆栈指针的所述值进行存储之前并且响应于确定所述堆栈指针缓存是满的,丢弃所述堆栈指针缓存中所存储的最老的值对。
8.根据权利要求5所述的方法,进一步包括:
响应于物理寄存器ID被移到空闲寄存器列表,从所述堆栈指针缓存移除对应的条目。
9.一种处理器,包括:
加载-存储单元,其中所述加载-存储单元被配置为:
检测堆栈指针的变化;
响应于检测到所述堆栈指针的变化,将存储有所述堆栈指针的值的物理寄存器的寄存器ID以及所述堆栈指针的所述值进行存储;并且
响应于接收到使用对应于所存储的寄存器ID的物理寄存器来加载/存储的指令,使用与所存储的寄存器ID相关联的所述堆栈指针的所存储的所述值来计算用于加载/存储的地址。
10.根据权利要求9所述的处理器,其中,所述处理器进一步被配置为响应于检测到中断,从数据结构中移除所有条目。
11.根据权利要求9所述的处理器,其中,所述处理器是乱序处理器。
12.一种预测处理器中的与可逆函数相关联的数据值的方法,所述方法包括:
检测被预测为可逆的指令;
响应于检测到被预测为可逆的指令,将存储有与所述可逆函数相关联的值的物理寄存器的寄存器ID以及所述物理寄存器中存储的所述值存储在数据结构中;以及
响应于先前检测到的可逆函数的逆转,在所述数据结构中查看对应条目,并且使用通过所存储的所述寄存器ID和/或所述对应条目中所存储的值所识别的寄存器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于美普思技术有限责任公司,未经美普思技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910109821.1/1.html,转载请声明来源钻瓜专利网。