[发明专利]提高处理器中返回分支指令的执行速度的方法有效
申请号: | 201480013935.1 | 申请日: | 2014-03-14 |
公开(公告)号: | CN105144084B | 公开(公告)日: | 2018-03-20 |
发明(设计)人: | 罗德尼·韦恩·史密斯;杰弗里·M·斯科特米勒;迈克尔·斯科特·麦克勒瓦伊内;布莱恩·迈克尔·斯坦普尔;梅林达·J·布朗;达朗·尤金·施特雷特 | 申请(专利权)人: | 高通股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 北京律盟知识产权代理有限责任公司11287 | 代理人: | 宋献涛 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 提高 处理器 返回 分支 指令 执行 速度 方法 | ||
技术领域
本发明的实施例是针对微处理器。
背景技术
调用分支指令允许程序控制分支到实施子例程(函数)的一部分代码。举例来说,当调用分支指令执行时,程序计数器中的地址递增而且加载到随后回顾的链接寄存器,而且被调用子例程中的初次代码行的地址加载到程序计数器,这样使得程序控制分支到表示被调用子例程的部分代码。在所述部分代码末端的返回分支指令使得程序控制以返回到存储在所述链接寄存器中的地址,借此返回到按程序排序的调用子例程的调用分支指令之后的下一指令。
为了执行嵌套式或递归的子例程(函数),也就是说,当一个子例程调用另一个子例程(可以是自身)时,软件可利用存储器中的堆栈。举例来说,如果地址由于第一次子例程调用已经加载到链接寄存器,而且如果第二次子例程调用到表示第一子例程的代码内,那么当第一子例程被调用时,加载到链接寄存器的地址按软件惯例推送到存储器中的堆栈顶端之上,而且表示按程序排序在第二分支指令之后的下一指令的地址加载到链接寄存器。当执行用于第二次被调用的子例程的返回分支指令时,存储在链接寄存器中的地址加载到程序计数器,而且在堆栈顶端的地址随后弹出而且加载到链接寄存器,这样使得程序控制可返回到当第一子例程完成时立刻遵循(按程序排序)第一分支指令的指令。
发明内容
本发明的实施例是针对用以减少用于利用链接寄存器堆栈执行返回分支指令的处理器周期的次数的系统和方法。
在一个实施例中,方法包含响应于处理器解码除调用分支指令以外的链接寄存器操控指令,设定状态机到初始状态;而且自从处理器解码除调用分支指令以外的链接寄存器操控指令且其中所述处理器尚未解码相对应的返回分支指令,响应于解码调用分支指令或返回分支指令,改变状态机到指示由处理器解码的多个调用分支指令的状态。假如自从处理器解码除调用分支指令以外的链接寄存器操控指令,而且其中一个相对应的返回分支指令尚未解码,所述状态机的状态表明至少一个调用分支指令已经解码,所述方法进一步包含响应于处理器提取并解码返回分支指令,从链接寄存器堆栈取出目标地址而且使用所述目标地址作为提取下一指令的地址,并且完成所述返回分支指令的执行无需检查所述目标地址的正确性。
在另一个实施例中,一种方法包含响应于处理器解码除调用分支指令以外的链接寄存器操控指令,设定计数器到初始值;响应于处理器解码调用分支指令,将所述计数器递增第一常数;而且响应于处理器解码返回分支指令,将所述计数器递增第二常数。所述方法进一步包含响应于处理器确定所述计数器的值不等于初始值并且响应于处理器解码返回分支指令,从链接寄存器堆栈取出用于返回分支指令的目标地址,并且完成返回分支指令的执行,无需检查所述目标地址的正确性。
在另一个实施例中,设备包含链接寄存器、分支计数器及处理器,所述设备响应于解码除写入到链接寄存器的调用分支指令以外的指令,用以设定分支计数器到初始值;响应于解码调用分支指令,将所述分支计数器递增第一常数;并且响应于解码返回分支指令,将所述分支计数器递增第二常数。所述设备进一步包含链接寄存器堆栈,其中响应于确定所述计数器的值不等于初始值并且响应于解码返回分支指令,处理器从链接寄存器堆栈取出用于返回分支指令的目标地址,并且完成执行以及收回所述返回分支指令,无需检查所述目标地址的正确性。
在另一个实施例中,处理器包含分支计数器、链接寄存器堆栈、用于设定计数器的装置(所述装置用于响应于处理器解码除调用分支指令以外的链接寄存器操控指令,设定计数器以设定所述分支计数器到初始值)、用于增加计数器的装置(所述装置用于响应于处理器解码调用分支指令,增加计数器以将所述分支计数器递增第一常数,并且响应于处理器解码返回分支指令,以将所述分支计数器递增第二常数)。所述处理器进一步包含用于取出链接寄存器堆栈的装置,所述装置用于响应于所述处理器确定分支计数器的值不等于初始值并且响应于所述处理器解码返回分支指令,取出链接寄存器堆栈以从所述链接寄存器堆栈取出用于返回分支指令的目标地址;并且所述处理器为了完成执行并收回所述返回分支指令,无需检查所述目标地址的正确性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于高通股份有限公司,未经高通股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480013935.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:信息处理系统、信息处理方法和程序
- 下一篇:三级减速无刷电机壳体总成