用于使过程返回序列加速的方法和系统技术方案

技术编号:5449874 阅读:220 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示一种用于当从管线处理器中的过程返回时从链接栈检索返回地址的方法。所述方法识别可操作以从软件栈检索返回地址的检索指令。所述方法进一步识别可操作以分支到所述返回地址的分支指令。所述方法响应于所述指令和所述分支指令两者被识别而从所述链接栈检索所述返回地址,并使用所述返回地址来提取指令。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术大体涉及计算机系统,且更明确地说涉及一种用于通过识别处理器内的上 托分支指令序列而使返回序列加速的方法和系统。
技术介绍
处理器执行的大多数程序包含子例程或过程。过程是通过过程调用序列存取的代 码的模块。一旦过程完成,指令执行就通过过程返回序列的执行而返回到调用程序。在一些处理器结构内,过程调用和返回序列可编译为指令的序列。举例来说,过程 调用序列可由推送(PUSH)指令之后是分支和链接指令组成。推送指令可将过程内的指令 使用的参数保存到软件栈上。在推送指令之后,处理器可执行分支和链接指令。分支和链 接指令促使在过程的开始地址处开始指令提取和执行,并将分支和链接指令之后的下一顺 序指令的地址(称为返回或链接地址)保存在链接寄存器中。链接寄存器可为特殊用途寄 存器或处理器使用的通用寄存器(GPR)之一。在过程内,通常将链接寄存器内容推送到软 件栈上,使得其值在在返回到原始调用程序之前调用另一过程的情况下不被覆写。在过程完成其功能之后,处理器执行过程返回序列以在链接地址(过程调用指令 之后的下一顺序指令地址)处继续进行指令执行。因为返回地址经常保存在软件栈上,所 以过程返回序列必须首先从软件栈检索返回地址以使用所述地址来确定待提取的下一指 令群组。过程返回序列可由一个或一个以上指令组成。在一些处理器结构中,过程返回序 列可以是单一指令,例如上托(POP)或加载指令,其可从软件栈读取下一返回地址并更新 程序计数器(PC)。或者,处理器可使用上托或加载指令将链接地址从软件栈读取到中间寄 存器(例如,GPR)中,之后将所述值移动到程序计数器以完成过程返回序列。在另一说明性 实例中,处理器可确定从过程的返回可能是将保存在链接寄存器(LR)中的值移动到PC中 的指令。当处理器在过程调用之后遇到这些过程返回序列中的任一者时,处理器使用从软 件栈检索的返回地址值跳回到过程调用指令之后的下一顺序指令。可将额外的逻辑添加到处理器的硬件以改进指令处理的效率。举例来说,可将链 接栈添加到处理器的提取逻辑以使指令提取加速。所属领域的技术人员了解,链接栈可含 有还可存在于软件栈上的返回地址。然而,链接栈独立于软件栈而操作。与链接栈相关联 的硬件逻辑识别过程调用和返回。当在执行之前识别过程调用指令时,将相关联的返回地 址加载到链接栈上。相反,当识别过程返回时,从链接栈检索相关联的返回地址并使用其来 继续进行指令提取。代替于等待指令执行和从软件栈检索返回地址,处理器可使用存储在 链接栈中的地址来推测性地提取指令。随着处理器的发展,过程返回序列继续变化。在一些处理器结构中,过程返回可包 括多个指令。如果支持链接栈的硬件逻辑不将这些指令辨认为过程返回序列,那么可能不 会从链接栈检索返回地址,且因此链接栈可能会变得与指令序列不同步。当链接栈变得不 同步时,链接栈可能会提供可导致多个地址误预测的错误的返回地址信息。
技术实现思路
因此,业内需要有将某些指令序列(更明确地说,上托(或加载)和分支指令序 列)辨认为过程返回序列的处理器电路。本专利技术认识到此需要并揭示一种具有在指令管线 中较早识别对应于过程返回的指令的电路的处理器。在识别过程返回之后,处理器通过使 用来自链接栈的下一返回地址而提取下一指令群组。通过将上托和分支指令序列辨认为程 序返回,处理器可基于从链接栈检索的正确地址来继续提取指令。揭示一种用于当从管线处理器中的过程返回时从链接栈检索返回地址的方法。所 述方法识别操作以从链接栈检索返回地址的检索指令。所述方法识别操作以分支到所述返 回地址的分支指令。所述方法响应于所述指令和所述分支指令两者被识别而从所述链接栈 检索所述返回地址。所述方法使用所述返回地址来提取后续指令。揭示一种管线处理器。所述管线处理器具有线缓冲器。线缓冲器耦合到指令高速 缓冲存储器。处理器还具有耦合到指令高速缓冲存储器的提取逻辑电路。提取逻辑电路具 有存储预测性返回地址的链接栈,其中指令从线缓冲器加载到指令高速缓冲存储器中。提 取逻辑电路从指令高速缓冲存储器检索指令。管线处理器还具有与线缓冲器通信的预解码 逻辑电路,其中预解码逻辑电路具有用于识别过程返回序列的检测逻辑电路。过程返回序 列识别为操作以从软件栈检索返回地址的检索指令,和分支到所检索的返回地址的分支指 令。管线处理器响应于对过程返回序列的识别而从链接栈检索所预测的返回地址。揭示一种管线处理器。所述管线处理器具有提取逻辑电路。提取逻辑电路具有存 储所预测的返回地址的链接栈。提取逻辑电路从指令高速缓冲存储器提取指令。管线处理 器还具有解码逻辑电路,所述解码逻辑电路耦合到提取逻辑电路,其中所提取的指令由解 码逻辑电路解码。解码逻辑电路进一步具有检测逻辑电路,其中所述检测逻辑电路识别过 程返回序列。过程返回序列是从软件栈检索地址的检索指令,和操作以分支到所检索的地 址的分支指令。管线处理器响应于对过程返回序列的识别而从链接栈检索所预测的返回地 址。管线处理器响应于对过程返回的识别而从链接栈检索所预测的返回地址。从以下详细描述和附图将了解对本专利技术的更完整理解以及本专利技术的更多特征和 优点。附图说明图1展示使用本专利技术的一实施例的处理器的高级逻辑硬件框图。图2展示由图1的处理器执行的示范性指令群组。图3显示根据本专利技术的一个实施例并入有检测逻辑电路的图1的CPU的上部和下 部管线的更详细框图。图4展示图3的提取逻辑电路的更详细视图。图5展示利用检测逻辑电路的上部和下部管线的替代实施例。图6展示说明由图1的处理器执行的指令处理流的流程图,所述处理器辨认程序 返回并使用链接栈来提取指令。图7展示说明由处理器使用图4的上部管线执行的替代指令处理流的流程图。具体实施例方式下文结合附图陈述的详细描述希望作为对本专利技术的各种实施例的描述,且不希望 表示其中可实践本专利技术的仅有实施例。详细描述包含特定细节以用于提供对本专利技术的彻底 理解。然而,所属领域的技术人员将了解,可在没有这些特定细节的情况下实践本专利技术。在 一些例子中,以框图形式展示众所周知的结构和组件以免混淆本专利技术的概念。可仅为了方 便和清楚而使用首字母缩写词和其它描述性术语,且其不希望限制本专利技术的范围。图1展示利用如下文描述的本专利技术的一个实施例的超标量处理器100的高级视 图。处理器100具有中央处理单元(CPU) 102,其经由控制信号104耦合到指令高速缓冲存 储器106。指令高速缓冲存储器106还耦合到线缓冲器107且通过通用总线110耦合到存 储器108。CPU 102控制经由线缓冲器107将指令从存储器108加载到指令高速缓冲存储 器106中。CPU 102具有耦合到下部管线160和165的上部管线150。在下部管线160和 165内是执行级220和225。在执行级220内是执行单元(EU) 130A,且在执行级225内是 EU 130B。如所属领域的技术人员了解,指令高速缓冲存储器106可以是经设计以弥合存储 器108与处理器100之间的速度差距的专用存储器。将从存储器108提取的指令放置在能 够以处理器时钟速度读取的较快指令高速缓冲存储器106中。如果指令不存在于指令高速 缓冲存储器106中,那么处理器100从存储器108检索指令。当从存储器108检索本文档来自技高网
...

【技术保护点】
一种用于当从管线处理器中的过程返回时从链接栈检索返回地址的方法,其包括:识别可操作以从软件栈检索返回地址的检索指令;识别可操作以分支到所述返回地址的分支指令;响应于所述指令和所述分支指令两者被识别而从所述链接栈检索所述返回地址;以及使用所述返回地址来提取后续指令。

【技术特征摘要】
【国外来华专利技术】US 2007-11-2 11/934,264一种用于当从管线处理器中的过程返回时从链接栈检索返回地址的方法,其包括识别可操作以从软件栈检索返回地址的检索指令;识别可操作以分支到所述返回地址的分支指令;响应于所述指令和所述分支指令两者被识别而从所述链接栈检索所述返回地址;以及使用所述返回地址来提取后续指令。2.根据权利要求1所述的方法,其中所述检索指令是上托指令。3.根据权利要求1所述的方法,其中所述检索指令是加载指令。4.根据权利要求1所述的方法,其中所述分支指令是BX指令。5.根据权利要求1所述的方法,其中所述分支指令是MOV指令。6.根据权利要求1所述的方法,其中所述识别所述检索指令进一步包括识别含有所述 返回地址的寄存器。7.根据权利要求1所述的方法,其中识别所述检索指令进一步包括维持寄存器列表, 其中所述寄存器列表具有多个寄存器,其中所述多个寄存器中的至少一个寄存器含有所述 返回地址。8.根据权利要求7所述的方法,其中维持所述寄存器列表包括在所述多个寄存器中的 任一者由后续指令覆写的情况下从所述寄存器列表移除寄存器。9.根据权利要求1所述的方法,其中由检测逻辑电路执行识别所述分支指令。10.根据权利要求9所述的方法,其中预解码逻辑电路中包含所述检测逻辑电路。11.根据权利要求9所述的方法,其中解码逻辑电路中包含所述检测逻辑电路。12.根据权利要求1所述的方法,其中识别所述分支指令进一步包括在指令高速缓冲 存储器中以旗标标记所述分支指令。13.一种管线处理器,其包括线缓冲器,所述线缓冲器耦合到指令高速缓冲存储器,提取逻辑电路,其耦合到所述指令高速缓冲存储器,所述提取逻辑电路具有存储预测 性返回地址的链接栈,其中指令从所述线缓冲器加载到所述指令高速缓冲存储器中,所述 提取逻辑电路从所述指令高速缓冲存储器检索指令,预解码逻辑电路,其与所述线缓冲器通信,其中所述预解码逻辑电路进一步包括用于 识别过程返回序列的...

【专利技术属性】
技术研发人员:迈克尔威廉莫罗詹姆斯诺里斯迪芬德尔费尔
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1