通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块制造技术

技术编号:9622127 阅读:160 留言:0更新日期:2014-01-30 12:16
一种用于使用用于处理器的多个虚拟核来执行指令的方法。该方法包括:使用全局前端调度器来接收传入指令序列;并且将传入指令序列分割成指令的多个代码块。该方法还包括:生成描述在代码块的指令之间的相互依赖性的多个继承性矢量;并且向处理器的多个虚拟核分配代码块,其中每个虚拟核包括多个可分割引擎的资源的相应子集。根据虚拟核模式并且根据相应的继承性矢量通过使用可分割引擎来执行代码块。

Block code for instruction sequences by using a virtual kernel instantiated by a segmented engine

A method for executing instructions using a plurality of virtual cores for a processor. The method comprises the following steps: receiving a sequence of incoming instructions by using a global front-end scheduler; and dividing the incoming instruction sequence into a plurality of code blocks of an instruction. The method also includes: generating vector description of multiple inheritance interdependencies between the code block; and a plurality of virtual nuclear distribution code block processor, the corresponding subset of each virtual core includes a plurality of segmentation engine resources. A block of code is executed by using a separable engine based on the virtual kernel pattern and in accordance with the corresponding inheritance vector.

【技术实现步骤摘要】
【国外来华专利技术】通过使用由可分割弓I擎实例化的虚拟核来执行指令序列代码块本申请要求对Mohammad A.Abdallah于2011年3月25日提交的、名称为EXECUTING INSTRUCTION SEQUENCE ⑶DE BLOCKS BY USING VIRTUAL ⑶RESINSTANTIATED BY PARTITIONABLE ENGINES的、共同未决、共同转让的美国临时专利申请第61/467,944号的权益,并且其全部内容并入于此。有关串请的交叉引用本申请与Mohammad A.Abdallah于2007年4月12日提交的、名称为APPARATUSAND METHOD FOR PROCESSING AN INSTRUCTION MATRIX SPECIFYING PARALLEL INDEPENDENT OPERATIONS的、共同未决、共同转让的美国专利申请公开第2009/0113170号有关,并且其全部内容并入于此。本申请与MohammadA.Abdallah 于 2007年 11 月 14 日提交的、名称为APPARATUSAND METHOD FOR PROCESSING COMPLEX INSTRUCTION FORMATS IN A MULTITHREADEDARCHITECTURE SUPPORTING VARIOUS CONTEXT SWITCH MODES AND VIRTUALIZATIONSCHEMES的、共同未决、共同转让的美国专利申请公开第2010/0161948号有关,并且其全部内容并入于此。
本专利技术总体上涉及数字计算机系统、更具体地涉及用于选择包括指令序列的指令的系统和方法。
技术介绍
处理器被要求处置依赖或者全独立的多个任务。这样的处理器的内部状态通常由可以在每个特定程序执行的实例保持不同值的寄存器构成。在每个程序执行的实例,内部状态映像被称为处理器的架构状态。如果将代码执行进行切换以运行另一功能(例如另一线程、进程或者程序),则必须保存机器/处理器的状态,从而新功能可以利用内部寄存器以构建它的新状态。一旦终止新功能,则可以丢弃它的状态,并且将还原先前上下文的状态而且执行恢复。这样的切换过程被称为上下文切换并且尤其对于运用大量寄存器(例如64、128、256个)和/或无序执行的现代架构通常包括数十或者数百个周期。在线程感知硬件架构中,硬件通常针对有限数目的由硬件支持的线程而支持多个上下文状态。在这一情况下,硬件针对每个支持的线程重复所有架构状态单元。这消除了在执行新线程时对于上下文切换的需要。然而这仍然具有多个缺点、即针对硬件中支持的每个附加线程重复所有架构状态单元(即寄存器)的面积、功率和复杂性。此外,如果软件线程的数目超过显式支持的硬件线程的数目,则仍然必须执行上下文切换。这随着在要求大量线程的细粒度基础上需要并行性而变得常见。具有重复上下文状态硬件存储的硬件线程感知架构无助于非线程式软件代码而仅针对线程化的软件减少上下文切换数目。然而那些线程通常是针对粗粒度并行性而构造的并且导致用于发起和同步的繁重软件开销,从而让细粒度并行性、比如功能调用和循环并行执行而没有高效线程化发起/自动生成。如此描述的开销伴随有难以使用用于非显式/容易并行化/线程化的软件代码的现有技术编译器或者用户并行化技术来自动地并行化这样的代码。
技术实现思路
在一个实施例中,将本专利技术实施为一种用于使用用于处理器的多个虚拟核来执行指令的方法。该方法包括:使用全局前端调度器来接收传入指令序列;并且将传入指令序列分割成指令的多个代码块。该方法还包括:生成描述在所述代码块的指令之间的相互依赖性的多个继承性矢量;并且向处理器的多个虚拟核分配所述代码块,其中每个虚拟核包括多个可分割引擎的资源的相应子集。根据虚拟核模式并且根据相应的所述继承性矢量通过使用可分割弓I擎来执行代码块。本专利技术的其它实施例利用公共调度器、公共寄存器文件和公共存储器子系统以实施用于处理器的多个可分割引擎的片段式地址空间。可分割引擎可以用来实施多个虚拟核。片段通过允许附加虚拟核以协同地执行指令序列来实现微处理器性能升级。片段分级可以跨越每个高速缓存分级(例如LI高速缓存、L2高速缓存和公共寄存器文件)相同。片段分级可以使用地址位将地址空间划分成片段,其中使用地址位使得片段在高速缓存线边界以上并且在页面边界以下。每个片段可以被配置为利用多端口存储体结构用于存储。前文是
技术实现思路
、因此必然包含细节的简化、概括和省略;因而本领域技术人员将理解,
技术实现思路
仅为示例而并非旨在于以任何方式进行限制。如仅由权利要求限定的本专利技术的其它方面、专利技术特征和优点将在下文阐述的非限制具体描述中变得清楚。【附图说明】在附图的各图中通过示例而非通过限制举例说明本专利技术,并且在附图中,相似标号指代相似单元。图1A示出全局前端生成代码块和继承性矢量以支持在代码序列的相应可分割引擎上执行代码序列的方式的概况。图1B示出根据本专利技术的一个实施例的可分割引擎及其部件的概况图,这些部件包括用于多核处理器的分段式调度器和寄存器文件、全局互连以及分段式存储器子系统。图2示出根据本专利技术的一个实施例的调度器流程图。图3示出根据本专利技术的一个实施例的示例硬件电路的图,该图示出存储具有互连的操作数和结果的分段式寄存器文件。图4示出根据本专利技术的一个实施例的描绘全局前端提取和调度器的图。图5示出根据本专利技术的一个实施例的跨越许多虚拟核的指令分布的备选实现方式。图6示出根据本专利技术的一个实施例的具有对应多个寄存器文件以及操作数和结果缓冲器的多个寄存器段。图7示出根据本专利技术的一个实施例的用于多核处理器的片段式存储器子系统的更具体图。图8示出描绘根据本专利技术的一个实施例的通过地址生成如何使用地址的位以枚举片段的图。图9示出本专利技术的实施例的如何处置加载和存储的图。图10示出根据本专利技术的一个实施例的可以将片段拆分成两个或者更多域的方式。图11示出根据本专利技术的一个实施例的处理器的操作模式,在该操作模式中虚拟核被配置作为在执行应用中与逻辑核对应的物理核。图12示出根据本专利技术的一个实施例的处理器的操作模式,在该操作模式中虚拟核被配置作为在执行应用中与逻辑核对应的软核。图13示出根据本专利技术的一个实施例的处理器的操作模式,在该操作模式中虚拟核被配置作为在执行应用中与单个逻辑核对应的软核。图14示出根据本专利技术的一个实施例的用来支持逻辑核和虚拟核功能的片段分割的示例性实现方式。图15示出根据本专利技术的一个实施例的实施多物理到多逻辑模式的示例性四片段处理器的片段存储器。图16示出根据本专利技术的一个备选实施例的实施多物理到多逻辑模式的示例性四片段处理器的片段存储器。图17示出根据本专利技术的一个实施例的实施多软核到多逻辑核模式的示例性四片段处理器的片段存储器。图18示出根据本专利技术的一个实施例的实施多软核到一个逻辑核模式的示例性四片段处理器的片段存储器。图19示出根据本专利技术的一个实施例的实施物理到逻辑模式的示例性四片段处理器的地址计算和执行单元、操作数/结果缓冲器、线程式寄存器文件以及公共分割调度器。图20示出根据本专利技术的一个实施例的用来实施多物理到多逻辑模式的示例性四片段处理器的地址计算和执行单元、操作数/结果缓冲器本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201280024012.html" title="通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块原文来自X技术">通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块</a>

【技术保护点】
一种用于使用用于处理器的多个虚拟核来执行指令的方法,所述方法包括:使用全局前端调度器来接收传入指令序列;将所述传入指令序列分割成指令的多个代码块;生成描述在所述代码块的指令之间的相互依赖性的多个继承性矢量;向所述处理器的多个虚拟核分配所述代码块,其中每个虚拟核包括多个可分割引擎的资源的相应子集;以及根据虚拟核模式并且根据相应的所述继承性矢量通过使用所述可分割引擎来执行所述代码块。

【技术特征摘要】
【国外来华专利技术】2011.03.25 US 61/467,9441.一种用于使用用于处理器的多个虚拟核来执行指令的方法,所述方法包括: 使用全局前端调度器来接收传入指令序列; 将所述传入指令序列分割成指令的多个代码块; 生成描述在所述代码块的指令之间的相互依赖性的多个继承性矢量; 向所述处理器的多个虚拟核分配所述代码块,其中每个虚拟核包括多个可分割引擎的资源的相应子集;以及 根据虚拟核模式并且根据相应的所述继承性矢量通过使用所述可分割引擎来执行所述代码块。2.根据权利要求1所述的方法,其中每个可分割引擎还包括段、存储器片段和多个执行单元。3.根据权利要求1所述的方法,其中每个可分割引擎段还包括公共分割提取和调度器。4.根据权利要求1所述的方法,其中每个段还包括寄存器文件。5.根据权利要求1所述的方法,其中每个可分割引擎还包括LI高速缓存片段和L2高速缓存片段以及加载存储缓冲器。6.根据权利要求1所述的方法,其中所述多个虚拟核实施执行模式,其中分配每个可分割引擎的物理资源的子集以支持逻辑核的单个逻辑线程的执行。7.根据权利要求6所述的方法,所述多个虚拟核实施多个逻辑核。8.根据权利要求1所述的方法,其中所述多个虚拟核实施执行模式,其中根据可调节阈值来动态分配每个可分割引擎的物理资源以支持单个逻辑核的单个逻辑线程的执行。9.根据权利要求8所述的方法,所述多个虚拟核实施多个逻辑核。10.根据权利要求1所述的方法,其中所述多个虚拟核实施执行模式,其中根据可调节阈值来分配每个可分割引擎的物理资源的所述子集以支持单个逻辑线程的执行。11.一种用于使用用于处理器的多个虚拟核来执行指令的系统,所述系统包括: 全局前端调度器,用于接收传入指令序列,其中所述全局前端调度器将所述传入指令序列分割成指令的多个代码块并且生成描述在所述代码块的指令之间的相互依赖性的多个继承性矢量;以及 所述处理器的多个虚拟核,被耦合用于接收由所述全局前端调度器分配的代码块,其中每个虚拟核包括多个可分割引擎的资源的相应子集,其中根据虚拟核模式并且根据相应的所述继承性矢量通过使用所述可分割引擎来执行所述代码块。12.根据权利要求11所述的系统,其中每个可分割引擎还包括段、存储器片段和多个执行单元。13.根据权利要求11所述的系统,其中每个可分割引擎段还包括公共分割提取和调度器。14.根据权利要求11所述的系统,其中每个段还包括寄存器文件。15.根据权利要求11所述的系统,其中每个可分割引擎还包括LI高速缓存片段和L2高速缓存片段以及加载存储缓冲器。16.根据权利要求11所述的系统,其中所述多个虚拟核实施执行模式,其中分配每个可分割引擎的物理资源的子集以支持逻辑核的单个逻辑线程的执行。17.根据权利要求16所述的系统,所述多个虚拟核实施多个逻辑核。18.根据权利要求11所述的系统,其中所述多个虚拟核实施执行模式,其中根据可调节阈值来动态分配每个可分割引擎的物理资源以支持单个逻辑...

【专利技术属性】
技术研发人员:M·阿布达拉
申请(专利权)人:索夫特机械公司
类型:
国别省市:

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

1