乱序处理器中的分支目标存储与检索制造技术

技术编号:9769873 阅读:83 留言:0更新日期:2014-03-16 05:17
一种处理器,配置为方便用于控制转移指令(CTI)的预测目标的传输与存储。在某些实施例中,处理器可以是多线程的并且支持用于多个线程的预测目标的存储。在有些实施例中,CTI分支目标可以由处理器的一个元件存储并且标签可以指示所存储目标的位置。标签可以与CTI关联,而不是把完整的目标地址与CTI关联。当CTI到达处理器的执行阶段时,标签可以用于检索预测目标地址。在利用标签检索预测目标的有些实施例中,来自不同处理器线程的CTI指令可以在不影响预测目标检索的情况下交错。

【技术实现步骤摘要】
【国外来华专利技术】乱序处理器中的分支目标存储与检索
本公开内容涉及处理器,并且更具体地说涉及在多线程处理器中存储和检索(retrieve)分支目标地址。
技术介绍
现代超标量微处理器通过并行并且不按程序次序地执行多条指令获得高性能。诸如在程序中非常普遍的分支、调用和返回之类的控制转移指令(CTI)会造成流水线式微处理器拖延(stall),因为要在给定控制转移指令之后执行的指令在执行该控制转移指令之前一直是未知的。这些拖延会导致显著的性能损失。现代微处理器采用分支预测技术来越过CTI推测性地提取(fetch)并执行指令。分支预测涉及预测CTI的方向与目标。如果由于方向预测或目标预测不正确而使得CTI预测错误,则越过CTI推测性提取出的所有指令都被扔掉(清洗),并且由指令提取单元(IFU)从正确的路径提取新的指令。并且,一旦检测到预测错误的CTI,分支预测器一般就利用CTI的实际结果来更新,以确保其未来预测的准确性。现代微处理器通常实现芯片级的多线程(CMT),以提高性能。在CMT处理器中,多个软件线程在处理器中同时处于活动状态,并且每个活动的线程都具有存储其状态的专用硬件资源。来自多个软件线程的指令的有效执行可能涉及预测来自不同线程的CTI的能力。多个线程在CMT处理器上的执行可能造成来自不同线程的CMT的执行交错。
技术实现思路
本公开内容涉及配置为执行控制转移指令(CTI)的处理器。在有些实施例中,公开了一种方便用于由处理器执行的控制转移指令的预测目标的有效传输和存储的机制。在某些实施例中,处理器可以是多线程的并且该机制可以支持对多个线程的预测目标的存储。在有些实施例中,预测的CTI目标地址可以由处理器的元件存储并且标签可以指示所存储的目标地址的位置。标签可以与CTI关联,而不是把完整的目标地址与CTI关联。当CTI到达执行阶段时,该标签可以用于检索预测目标地址。在有些实施例中,来自不同处理器线程的CTI指令可以交错并且不同线程可以共享相同的存储元件。在一种示例性实施例中,分支目标阵列(BTA)用于为CTI存储预测目标地址。在提取出CTI之后,分支预测单元为CTI预测目标地址和方向。预测目标地址存储在BTA中,并且对应于该目标地址在BTA中的位置的标签与CTI关联。标签连同CTI 一起通过执行流水线的阶段。当CTI与标签到达分支执行单元时,分支执行单元利用该标签从BTA检索预测目标地址。分支执行单元还为CTI计算实际目标地址,并且比较实际地址与预测的地址,以便解析分支目标。在有些实施例中,BTA和标签可以是用于预测目标的有效存储与传输机制。在其它实施例中,其它元件可以执行上述示例性实施例的一个或多个功能性。【附图说明】图1是多核处理器的一种实施例的框图。图2是处理器内核的一种实施例的框图。图3是包括分支单元在内的处理器内核的更具体实施例的框图。图4是分支目标阵列和分支执行单元的一种实施例的框图。图5是说明利用分支目标阵列来存储CTI预测目标的一种实施例的流程图。图6是说明利用分支目标阵列来存储CTI预测目标的更具体实施例的流程图。图7是说明示例性系统实施例的框图。具体实施例 本说明书包括对“一种实施例”和“一个实施例”的引用。短语“在一种实施例中”或“在一个实施例中”的出现不一定指相同的实施例。特定的特征、结构或特点可以按与本公开内容一致的任何合适方式组合。术语。以下段落提供了对本公开内容(包括所附权利要求在内)中可以找到的术语的定义和/或上下文:“包括”。这个术语是开放式的。如在所附权利要求中所使用的,这个术语不排除附加的结构或步骤。考虑陈述“一种包括一个或多个处理器单元的装置……”的权利要求。这种权利要求不排除该装置包括附加的组件(例如,网络接口单元、图形电路系统,等等)。“配置为”。各种单元、电路或其它组件可以描述或阐述成“配置为”执行一个任务或多个任务。在这种上下文中,“配置为”用于通过指示这些单元/电路/组件包括在操作过程中执行那些任务的结构(例如,电路结构)来暗示结构。照此,即使当规定的单元/电路/组件当前不可操作(例如,没有开启)时,这些单元/电路/组件也可以被说成配置为执行任务。与“配置为”语言一起使用的单元/电路/组件包括硬件——例如,存储可以为了实现操作而执行的程序指令的电路、存储器,等等。陈述一个单元/电路/组件“配置为”执行一个或多个任务是明确地玉要对那个单元/电路/组件引用美国法典第35章112条第6段。“基于”。如本文所使用的,这个术语用于描述影响决定的一个或多个因素。这个术语不排除可能影响一个决定的附加因素。即,一个决定可以仅仅基于那些因素或者至少部分地基于那些因素。考虑短语“基于B确定A”。虽然B可能是影响A的决定的一个因素,但是这个短语不排除A的决定还基于C。在其它情况下,A可以仅仅基于B来确定。“执行”。这个术语具有其在本领域中普通和被接受的意义,并且包括可以由处理器为了实现指令的完成而执行的所有动作,包括提取、解码、发布及实际计算指令的结果。当一个功能单元在本文中被描述为“执行”一条特定指令时,这个术语指计算该特定指令的结果(例如,计算两个寄存器的内容之和)。类似地,当一条指令被描述为到达一个处理器流水线的“执行阶段”时,这个术语指该指令到达用于计算该特定指令的结果的功能单元。“线程”。这个术语具有其在本领域中普通和被接受的意义,并且包括程序中可以由处理器执行的指令集合。例如,术语“线程”可以指作为“派生(fork)”或其它类似操作的结果在处理器上执行的一组指令。本文中描述为“处于”线程“中”的指令是用于一个线程的指令集合的一部分。“并发存储/同时存储”。如本文所使用的,这些短语指存储项目(例如,用于不同线程的分支目标信息)某个重叠的周期。应当指出,这些术语不一定暗示两个并发存储的项目的存储同时开始或者两个项目被存储相同的时间长度。介绍本公开内容描述了涉及方便控制转移指令的处理的电路系统的各种实施例。图1和2给出了其中可以包括这种电路系统的示例性多线程处理器的概述。图3和4给出了用于分支目标存储的处理器元件的示例性实施例。图5和6给出了用于分支目标存储的示例性方法。图7给出了其中可以使用这种处理器的计算机系统的概述。处理器概沭现在转向图1,示出了说明处理器10的一种实施例的框图。在某些实施例中,处理器10可以是多线程的。在所说明的实施例中,处理器10包括多个处理器内核100a-n,这些处理器内核也被指定为“内核0”至“内核n”。如本文所使用的,术语处理器可以指具有单个处理器内核的装置或者包括两个或多个处理器内核的装置。处理器10的各种实施例可以包括变化数量的内核100,例如8个、16个或者任何其它合适的数量。每个内核100都耦合到对应的L2高速缓存105a-n,L2高速缓存105a_n又经交叉开关110耦合到L3高速缓存120。内核100a-n和L2高速缓存105a_n可以总起来或者单独地分别一般性地被称为内核100和L2高速缓存105。经交叉开关110和L3高速缓存120,内核100可以耦合到可以位于处理器10外面的各种设备。在所说明的实施例中,一个或多个存储器接口 130可以配置为耦合到一排或多排系统存储器(未示出)。一个或多个一致性处理器接口 140可本文档来自技高网...

【技术保护点】
一种装置,包括:指令提取单元,配置为提取包括第一控制转移指令(CTI)的指令;及具有多个条目的分支目标阵列,其中分支目标阵列配置为接收用于第一控制转移指令的预测目标地址,其中分支目标阵列配置为在所述多个条目中的一个条目中存储预测目标地址,并且其中,分支目标阵列是可利用与第一控制转移指令的执行关联的标签访问以检索预测目标地址的。

【技术特征摘要】
【国外来华专利技术】2011.05.13 US 61/485,905;2011.09.08 US 13/228,3471.一种装置,包括: 指令提取单元,配置为提取包括第一控制转移指令(CTI)的指令;及 具有多个条目的分支目标阵列,其中分支目标阵列配置为接收用于第一控制转移指令的预测目标地址,其中分支目标阵列配置为在所述多个条目中的一个条目中存储预测目标地址,并且其中,分支目标阵列是可利用与第一控制转移指令的执行关联的标签访问以检索预测目标地址的。2.如权利要求1所述的装置,其中该装置配置为生成预测目标地址,使分支目标阵列中的条目被分配,并且将标签与第一控制转移指令关联。3.如权利要求1所述的装置,其中该装置配置为,当在执行第二控制转移指令前明确确定了第二控制转移指令的目标地址时,不存储第二控制转移指令的预测目标地址。4.如权利要求1所述的装置,还包括分支执行单元,分支执行单元配置为: 计算第一控制转移指令的实际目标地址; 利用标签从分支目标阵列检索预测目标地址;及 比较实际目标地址与预测目标地址,以便确定第一控制转移指令的目标地址是否被正确预测。5.如权利要求1所述的装置,其中该装置配置为支持指令的乱序执行,并且其中该装置配置为支持多个线程。6.如权利要求5所述的`装置,其中该装置配置为对所述多个线程中的任意一个分配所述多个条目中的任意一个。7.如权利要求5所述的装置,其中该装置配置为对所述多个线程中的一个或多个静态分配所述多个条目的至少一部分。8.如权利要求1所述的装置,其中预测目标地址是具有至少32位的虚拟地址,并且其中分支目标阵列具有2至128个条目。9.如权利要求1所述的装置,其中预测目标地址跨页面边界。10.一种装置,包括: 分支执行单元,配置为接收控制转移指令和标签,其中标签指示控制转移指令的预测目标地址的位置;并且 其中分支执行单...

【专利技术属性】
技术研发人员:C·H·奥尔森M·K·沙
申请(专利权)人:甲骨文国际公司
类型:
国别省市:

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

1