[发明专利]改进的返回堆栈缓存有效
申请号: | 201510050188.5 | 申请日: | 2015-01-30 |
公开(公告)号: | CN104820580B | 公开(公告)日: | 2018-10-16 |
发明(设计)人: | 马努克·瓦坦·马努基安;休·杰克逊 | 申请(专利权)人: | 美普思技术有限责任公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F12/0853 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 周靖;郑霞 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 改进 返回 堆栈 缓存 | ||
1.一种操作处理器的方法,所述方法包括:
响应于函数调用(212),将跟随所述函数调用的地址存储在查询表中的条目中(214),并且将所述条目的索引压入到返回堆栈缓存中(216);以及
响应于函数返回(222),将存储在所述返回堆栈缓存中的顶部条目中的索引从所述返回堆栈缓存中移除(224),并且访问所述查询表中存储在所移除的索引处的地址(226)。
2.根据权利要求1所述的方法,其中,相比于地址,索引包括数量少的位。
3.根据权利要求1所述的方法,其中所述方法还包括:
每次在所述处理器中做出预测(232)时,存储整个所述返回堆栈缓存的副本和指向所述返回堆栈缓存的顶部的指针(234)。
4.根据权利要求1所述的方法,其中所述方法还包括:
每次在所述处理器中做出预测(232)时,存储所述返回堆栈缓存的子集和指向所述返回堆栈缓存的顶部的指针(236)。
5.根据权利要求3所述的方法,还包括:
响应于识别到误预测(431),使用在做出所述预测时存储的数据来恢复所述返回堆栈缓存(432),所述数据至少包括返回堆栈缓存的子集和指向所述返回堆栈缓存的顶部的指针。
6.根据权利要求5所述的方法,还包括,响应于识别到误预测:
移除或无效所述查询表中没有被在所恢复的返回堆栈缓存中引用的每个条目(433)。
7.根据权利要求1所述的方法,还包括,响应于函数调用,并且在存储跟随所述函数调用的所述地址之前,执行以下操作:
确定所述查询表是否是满的(421);以及
响应于确定所述查询表是满的,使用替换算法移除或无效所述查询表中的条目(422)。
8.根据权利要求7所述的方法,其中所述替换算法在所述查询表中选择最近最少使用的条目。
9.根据权利要求1所述的方法,还包括:
响应于函数返回指令被提交(441),从所述查询表中移除或无效对应于该函数返回指令的条目(442)。
10.根据前述权利要求中任一项所述的方法,其中所述处理器是无序处理器。
11.一种处理器(100),包括:
取指级(102);以及
资源(114),所述资源(114)被布置以存储返回堆栈缓存(311)和查询表(312),
其中所述取指级被布置为:
响应于函数调用,将跟随所述函数调用的地址存储在所述查询表中的条目中,并且将所述条目的索引压入到所述返回堆栈缓存中;以及
响应于函数返回,从所述返回堆栈缓存中移除存储在所述返回堆栈缓存中的顶部条目中的索引,并且访问所述查询表中存储在所移除的索引处的地址。
12.根据权利要求11所述的处理器,其中,相比于地址,索引包括数量少的位。
13.根据权利要求11所述的处理器,其中在所述返回堆栈缓存中的每个条目具有相关联的有效位,以指示在所述返回堆栈缓存中的所述条目是有效的还是无效的。
14.根据权利要求11所述的处理器,其中所述处理器还包括分支预测器(110),并且其中所述取指级被布置为每次在所述处理器中做出预测时,存储整个所述返回堆栈缓存的副本和指向所述返回堆栈缓存的顶部的指针。
15.根据权利要求11所述的处理器,其中所述处理器还包括分支预测器(110),并且其中所述取指级被布置为每次在所述处理器中做出预测时,存储所述返回堆栈缓存的子集和指向所述返回堆栈缓存的顶部的指针。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于美普思技术有限责任公司,未经美普思技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510050188.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种航天器嵌入式软件在轨维护方法
- 下一篇:一种输入方法和电子设备