当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于乱序集群化解码中的负载平衡的系统和方法技术方案

技术编号:21176264 阅读:23 留言:0更新日期:2019-05-22 12:04
处理器包括用于执行经解码指令的后端以及前端。前端包括两个解码集群以及用于以下操作的电路:接收按程序顺序的表示未解码指令的数据元素,并且将数据元素的子集引导到解码集群。IP生成器将数据元素的一个子集引导到第一集群,检测指示负载平衡动作应该被采取的条件,并且取决于所采取的动作将按程序顺序紧跟着第一子集的数据元素的子集引导到第一或第二解码集群。该动作可以包括注释BTB条目、在BTB中插入假分支、强制集群切换、或抑制集群切换。所检测的条件可以是预测的所采用分支或其注释,或基于队列状态、uop的计数、或等待时间值的启发方法。

A Load Balancing System and Its Application in Unordered Clustering Decoding

The processor includes a back end and a front end for executing decoded instructions. The front-end consists of two decoding clusters and circuits for receiving data elements representing uncoded instructions in programmatic order and guiding a subset of data elements to the decoding cluster. The IP generator guides a subset of data elements to the first cluster, detects the conditions indicating that the load balancing action should be taken, and depends on the action taken, guides the subset of data elements of the first subset to the first or second decoding cluster in a programmatic order. This action may include annotating BTB entries, inserting false branches into BTB, forcing cluster handover, or suppressing cluster handover. The detected conditions can be predicted branches or annotations, or heuristic methods based on queue status, UOP counting, or waiting time values.

【技术实现步骤摘要】
【国外来华专利技术】用于乱序集群化解码中的负载平衡的系统和方法相关申请的交叉引用本申请要求2016年9月29日提交的题为“用于乱序集群化解码中的负载平衡的系统和方法”(“SYSTEMANDMETHODFORLOADBALANCINGINOUT-OF-ORDERCLUSTEREDDECODING”)的美国非临时专利申请No.15/280,460的优先权权益,该美国非临时专利申请通过引用整体结合于此。
本公开涉及处理逻辑、微处理器以及相关联的指令集架构领域,当由处理器或其他处理逻辑执行该指令集架构时,该指令集架构执行逻辑、数学或其他功能性操作。相关技术的描述多处理器系统正变得越来越普遍。多处理器系统的应用包括动态域分区一直到桌面计算。为了利用多处理器系统,要被执行的代码可被分成多个线程以供各种处理实体执行。每个线程可以彼此并行地执行。可以在系统中实现应用的流水线操作以便更高效地执行应用。可以将如在处理器上所接收的指令解码为原生的或更原生的术语或指令字以供在处理器上执行。处理器可以实现在芯片上系统中。附图说明在附图中的诸个图中通过示例而非限制地示出各个实施例:图1A是根据本公开的实施例的示例性计算机系统的框图,该计算机系统被形成为具有可以包括用于执行指令的执行单元的处理器;图1B示出了根据本公开的实施例的数据处理系统;图1C示出了用于执行文本串比较操作的数据处理系统的其他实施例;图2是根据本公开的实施例的处理器的微架构的框图,处理器可以包括用于执行指令的逻辑电路;图3A示出了根据本公开的实施例的多媒体寄存器中的各种紧缩数据类型表示;图3B示出了根据本公开的实施例的可能的寄存器内数据存储格式;图3C示出了根据本公开的实施例的多媒体寄存器中的各种有符号和无符号紧缩数据类型表示;图3D示出了操作编码格式的实施例;图3E示出了根据本公开的实施例的具有四十位或更多位的另一可能的操作编码格式;图3F示出了根据本公开的实施例的又一可能的操作编码格式;图4A是示出根据本公开的实施例的有序流水线以及寄存器重命名级、乱序发布/执行流水线的框图;图4B是示出根据本公开的实施例的、要被包括在处理器中的有序架构核以及寄存器重命名逻辑、乱序发布/执行逻辑的框图;图5A是根据本公开的实施例的处理器的框图;图5B是根据本公开的实施例的核的示例实现的框图;图6是根据本公开的实施例的系统的框图;图7是根据本公开的实施例的第二系统的框图;图8是根据本公开的实施例的第三系统的框图;图9是根据本公开的实施例的芯片上系统的框图;图10示出了根据本公开的实施例的处理器,包括中央处理单元和图形处理单元,该处理器可执行至少一条指令;图11是示出根据本公开的实施例的IP核开发的框图;图12示出了根据本公开的实施例的不同类型的处理器可以如何仿真第一类型的指令;图13示出了根据本公开的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图;图14是根据本公开的实施例的处理器的指令集架构的框图;图15是根据本公开的实施例的处理器的指令集架构的更具体的框图;图16是根据本公开的实施例的用于处理器的指令集架构的执行流水线的框图;图17是根据本公开的实施例的用于利用处理器的电子设备的框图;图18是根据本公开的实施例的用于乱序集群化解码的示例系统的示图;图19是根据本公开的实施例的用于执行乱序集群化解码的方法的示图;图20是根据本公开的实施例的具有前端的示例处理器核的示图,该前端包括多个两宽度解码集群;图21是根据本公开的实施例的用于将负载平衡应用于乱序集群化解码的方法的示图;图22是根据本公开的实施例的用于将负载平衡应用于乱序集群化解码的示例处理器核的示图;图23是根据本公开的实施例的用于生成乱序集群化解码的负载平衡触发条件的方法的示图;图24是根据本公开的实施例的用于取决于负载平衡触发条件来执行乱序集群化解码的方法的示图;图25是根据本公开的实施例的示例分支目标缓冲器的示图,其中条目利用可用于触发解码集群之间的负载平衡动作的信息来注释;图26是根据本公开的实施例的用于聚集指令相关的数据元素以用于并行解码的方法的示图;图27是根据本公开的实施例的用于对指令相关的数据元素的乱序子集解码并且合并结果以将有序的uop的集合提供给处理器核后端的执行集群以供执行的方法的示图;以及图28A-28D示出根据本公开的实施例的利用负载平衡的乱序集群化解码的应用的示例。具体实施方式以下描述描述了用于乱序集群化解码中的负载平衡的处理装置和处理逻辑。此类处理装置可以包括乱序处理器。在以下描述中,陈述了诸如处理逻辑、处理器类型、微架构状况、事件、启用机制等众多特定细节,以提供对本公开的实施例的更透彻理解。然而,本领域技术人员将领会,没有这些具体细节也可实施实施例。此外,没有详细示出一些公知的结构、电路等,以避免不必要地使本公开的多个实施例模糊。虽然参照处理器来描述下列各实施例,但是,其他实施例也适用于其他类型的集成电路和逻辑器件。本公开的实施例的类似技术和教导可应用于可受益于更高的流水线吞吐量和改善的性能的其他类型的电路或半导体器件。本公开的诸个实施例的教导适用于执行数据操纵的任何处理器或机器。然而,实施例不限于执行512位、256位、128位、64位、32位或16位数据操作的处理器或机器,并可以应用于其中可以执行对数据的操纵或管理的任何处理器和机器。另外,下列描述提供了示例,并且为了进行说明,所附附图示出各种示例。然而,这些示例不应当以限制性意义来解释,因为它们仅仅旨在提供本公开的诸个实施例的示例,而并非对本公开的实施例的所有可能实现方式进行穷举。虽然下述的示例是在执行单元和逻辑电路情境下描述指令处理和分配,但本公开的其他实施例也可通过存储在机器可读有形介质上的数据和/或指令来完成,这些数据和/或指令在被机器执行时使得机器执行与本公开至少一个实施例相一致的功能。在一个实施例中,与本公开的实施例相关联的功能被具体化在机器可执行指令中。这些指令可用来使可以通过这些指令而被编程的通用处理器或专用处理器执行本公开的操作。本公开的一些实施例也可以作为计算机程序产品或软件来提供,该计算机程序产品或软件可包括其上存储有指令的机器或计算机可读介质,这些指令可被用来对计算机(或其他电子设备)进行编程来执行根据本公开的实施例的一个或多个操作。此外,本公开的多个实施例的多个操作可由包含用于执行这些操作的固定功能逻辑的专用硬件组件来执行,或由经编程的计算机组件以及固定功能硬件组件的任何组合来执行。被用于对逻辑进行编程以执行本公开的诸个实施例的指令可被存储在系统的存储器(诸如,DRAM、高速缓存、闪存、或其他存储器)中。此外,指令可经由网络或通过其他计算机可读介质来分配。因此,机器可读介质可包括用于以机器(诸如,计算机)可读形式存储或发送信息的任何机制,但不限于:软盘、光盘、紧凑盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或在经由互联网通过电、光、声、或其他形式的传播信号(诸如,载波、红外信号、数字信号等)发送信息中所用的有形机器可读存储器。因本文档来自技高网...

【技术保护点】
1.一种用于执行指令的处理器,包括:执行集群,包括一个或多个执行单元,用于执行经解码指令;第一和第二解码集群,各自包括一个或多个解码器;用于以下操作的电路:接收多个数据元素,所述多个数据元素各自用于表示按程序顺序的程序的未解码指令的有序序列中的未解码指令;将所述多个数据元素的第一子集引导到所述第一解码集群,数据元素的第一子集中的数据元素将按程序顺序,并且所述第一解码集群包括用于解码数据元素的第一子集以生成经解码指令的第一子集的电路;检测指示特定集群负载平衡动作将被采取的条件;采取所述特定集群负载平衡动作;取决于所采取的特定集群负载平衡动作,确定按程序顺序紧跟着数据元素的第一子集的所述多个数据元素的第二子集将被引导到所述第一解码集群还是所述第二解码集群;将数据元素的第二子集引导到所述第一和第二解码集群中的所确定的一个,数据元素的第二子集中的数据元素将按程序顺序,并且所述解码集群中的所确定的一个包括用于解码数据元素的第二子集以生成经解码指令的第二子集的电路;按程序顺序将经解码指令的第一和第二子集提供给所述执行集群以供执行。

【技术特征摘要】
【国外来华专利技术】2016.09.29 US 15/280,4601.一种用于执行指令的处理器,包括:执行集群,包括一个或多个执行单元,用于执行经解码指令;第一和第二解码集群,各自包括一个或多个解码器;用于以下操作的电路:接收多个数据元素,所述多个数据元素各自用于表示按程序顺序的程序的未解码指令的有序序列中的未解码指令;将所述多个数据元素的第一子集引导到所述第一解码集群,数据元素的第一子集中的数据元素将按程序顺序,并且所述第一解码集群包括用于解码数据元素的第一子集以生成经解码指令的第一子集的电路;检测指示特定集群负载平衡动作将被采取的条件;采取所述特定集群负载平衡动作;取决于所采取的特定集群负载平衡动作,确定按程序顺序紧跟着数据元素的第一子集的所述多个数据元素的第二子集将被引导到所述第一解码集群还是所述第二解码集群;将数据元素的第二子集引导到所述第一和第二解码集群中的所确定的一个,数据元素的第二子集中的数据元素将按程序顺序,并且所述解码集群中的所确定的一个包括用于解码数据元素的第二子集以生成经解码指令的第二子集的电路;按程序顺序将经解码指令的第一和第二子集提供给所述执行集群以供执行。2.如权利要求1所述的处理器,其特征在于:所述处理器进一步包括分支目标缓冲器;为了检测指示特定集群负载平衡动作将被采取的条件,所述处理器进一步包括用于以下操作的电路:检测所述分支目标缓冲器中的与数据元素的第一子集相关联的条目包括其值指示负载平衡触发条件的注释。3.如权利要求2所述的处理器,其特征在于:所述注释表示负载平衡权重值,所述负载平衡权重值将取决于由所述第一解码集群或所述第二解码集群生成的经解码指令的计数,或者对所述第一解码集群或所述第二解码集群观察到的解码等待时间;为了检测指示特定集群负载平衡动作将被采取的条件,所述处理器进一步包括用于以下操作的电路:确定所述负载平衡权重值超过用于触发所述特定集群负载平衡动作的执行的阈值。4.如权利要求2所述的处理器,其特征在于:所述分支目标缓冲器中的与数据元素的第一子集相关联的所述条目是表示被插入到所述分支目标缓冲器中的假的预测的所采用分支的条目;所述注释包括所述条目表示假的预测的所采用分支而不是实际的预测的所采用分支的指示。5.如权利要求1所述的处理器,其特征在于:所述处理器进一步包括分支目标缓冲器;所述特定集群负载平衡动作包括用于将表示假的预测的所采用分支的条目插入到所述分支目标缓冲器中的操作。6.如权利要求1所述的处理器,其特征在于:所述特定集群负载平衡动作包括用于强制集群切换的操作;所述处理器进一步包括用于以下操作的电路:响应于用于强制集群切换的操作的执行,将数据元素的第二子集引导到所述第二解码集群。7.如权利要求1所述的处理器,其特征在于:所述特定集群负载平衡动作包括用于抑制集群切换的操作;所述处理器进一步包括用于以下操作的电路:响应于用于抑制集群切换的操作的执行,将数据元素的第二子集引导到所述第一解码集群。8.如权利要求1所述的处理器,其特征在于:所述处理器进一步包括:第一队列,与所述第一解码集群相关联,所述第一队列用于保存表示将由所述第一解码集群解码的未解码指令或由所述第一解码器生成的经解码指令的数据;第二队列,与所述第二解码集群相关联,所述第二队列用于保存表示将由所述第二解码集群解码的未解码指令或由所述第二解码器生成的经解码指令的数据;为了检测指示特定集群负载平衡动作将被采取的条件,所述处理器进一步包括用于以下操作的电路:从所述第一队列接收指示所述第一队列的状态的数据;从所述第二队列接收指示所述第二队列的状态的数据;以及将所述第一队列的状态与所述第二队列的状态进行比较。9.如权利要求1所述的处理器,其特征在于:所述处理器进一步包括:第一输出队列,与所述第一解码集群相关联;以及第二输出队列,与所述第二解码集群相关联;所述第一解码集群进一步包括用于以下操作的电路:将经解码指令的第一子集存储在所述第一输出队列中;所述第二解码集群包括用于以下操作的电路:解码数据元素的第二子集以生成经解码指令的第二子集;以及将经解码指令的第二子集存储在所述第二输出队列中;为了按程序顺序将经解码指令的第一和第二子集提供给所述执行集群以供执行,所述处理器进一步包括用于以下操作的电路:合并存储在所述第一输出队列中的经解码指令的至少子集和存储在所述第二输出队列中的经解码指令的至少子集以生成按程序顺序的经解码指令序列。10.一种用于执行指令的方法,包括,在处理器中:接收多个数据元素,所述多个数据元素各自表示按程序顺序的程序的未解码指令的有序序列中的未解码指令;将数据元素的第一子集引导到所述处理器中的第一解码集群;从数据元素的第一子集生成经解码指令的第一子集;检测特定集群负载平衡动作的触发条件;采取所述特定集群负载平衡动作;取决于所采取的动作,确定按程序顺序紧跟着数据元素的第一子集的数据元素的第二子集将被引导到所述处理器中的所述第一解码集群还是第二解码集群;将数据元素的第二子集引导到所确定的解码集群;从数据元素的第二子集生成经解码指令的第二子集;按程序顺序将经解码指令的第一和第二子集提供给所述处理器的执行集群以供执行。11.如权利要求10所述的方法,其特征在于:数据元素的第一子集中的数据元素按程序顺序;数据元素的第二子集中的数据元素按程序顺序。12.如权利要求10所述的方法,其特征在于:从数据元素的第一子集生成经解码指令的第一子集包括:由所述第一解码集群解码数据元素的第一子集以生成经解码指令的第一子集;从数据元素的第二子集生成经解码指令的第二子集包括:由所确定的解码集群解码数据元素的第二子集以生成经解码指令的第二子集...

【专利技术属性】
技术研发人员:J·D·库姆斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1