CN104969182A - 高动态范围软件-透明异构计算元件处理器、方法及系统 - Google Patents
高动态范围软件-透明异构计算元件处理器、方法及系统 Download PDFInfo
- Publication number
- CN104969182A CN104969182A CN201380059052.XA CN201380059052A CN104969182A CN 104969182 A CN104969182 A CN 104969182A CN 201380059052 A CN201380059052 A CN 201380059052A CN 104969182 A CN104969182 A CN 104969182A
- Authority
- CN
- China
- Prior art keywords
- migration
- processor
- logic
- core
- working load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
Abstract
一个方面的处理器包括至少一个较低处理能力且较低功耗的物理计算元件和至少一个较高处理能力且较高功耗的物理计算元件。迁移性能受益评估逻辑将评估工作负荷从至少一个较低处理能力的计算元件向至少一个较高处理能力的计算元件的迁移的性能受益,并基于评估的性能受益,判断是否允许迁移。可用的能量和热预算评估逻辑将评估可用的能量和热预算,并如果迁移在可用的能量和热预算内,则判断允许迁移。当由迁移性能受益评估逻辑和可用的能量和热预算评估逻辑两者都允许时,工作负荷迁移逻辑将执行迁移。
Description
背景技术
技术领域
实施例涉及处理器。具体而言,各实施例涉及具有异构核或其他计算元件的处理器。
背景信息
异构核处理器架构可以提供优于同构核处理器架构的优点,因为有多于一种的核类型可用于执行计算任务。不同类型的核一般倾向于在执行不同的任务时比其他的更适合。例如,在执行任务X时,核类型A可能比核类型B更快,但是,在执行任务Y时,核类型A可能比核类型B较慢。结果,具有核类型A和核类型B两者的处理器在执行任务X和Y的组合时一般比只有核类型A或核类型B但没有两者的处理器更有效率。
尽管由异构核处理器架构提供的潜在优点,但是,当前几乎不存在这样架构的商业示例。通常,这样的架构需要软件(例如,操作系统)知道如何将任务调度到异构核,以便利用它们的不同的能力。然而,当前,来自诸如和Linux之类的操作系统的用于利用异构核的不同的能力的支持非常有限,乃至没有。此外,处理器以及它们的异构核随着时间而变化,通常修改操作系统以便它们与变化保持一致并能够利用由核的异构性所提供的优点往往是困难且昂贵的。
附图的若干视图的简要说明
通过参考用来说明本发明的实施例的以下描述和附图,可最好地理解本发明。在附图中:
图1是具有异构核处理器的实施例和动态范围扩展工作负荷迁移逻辑的实施例的计算系统的框图。
图2是具有异构计算元件的处理器的实施例和动态范围扩展工作负荷迁移逻辑的实施例的框图。
图3是动态范围扩展工作负荷迁移逻辑的详细示例实施例的框图。
图4是判断是否将工作负荷迁移到较高计算能力和较高功耗计算元件的方法的详细示例实施例的流程框图。
图5A是示出根据本发明的各实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。
图5B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。
图6A是根据本发明实施例的单处理器核连同其到管芯上互连网络的连接以及其2级(L2)高速缓存的本地子集的框图。
图6B是根据本发明的各实施例的图6A中的处理器核的一部分的展开图。
图7是根据本发明的实施例的可具有超过一个的核、可具有集成的存储器控制器、并且可具有集成图形的处理器的框图。
图8所示为根据本发明的一个实施例的系统的框图。
图9所示为根据本发明的实施例的第一更具体示例性系统的框图。
图10所示为根据本发明的一实施例的第二更具体示例性系统的框图。
图11所示为根据本发明的一实施例的SoC的框图。
图12是根据本发明的各实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。
具体实施方式
此处公开了可操作以使用异构计算元件来实现带有软件透明性的高动态范围的异构计算元件处理器、方法和系统。在以下描述中,阐述了大量具体细节(例如,异构计算元件的具体类型和数量、逻辑实现和微架构细节、逻辑分区/集成细节、功率/热预算准则、操作序列,系统组件的类型和相互关系,等等)。然而应理解,本发明的实施例在没有这些具体细节的情况下也可实践。在其它实例中,未详细示出公知的电路、结构以及技术,以免模糊对本描述的理解。
移动、电池供电的和/或小计算设备一般得益于在功耗和计算能力或性能方面具有高动态范围的能力。这样的设备的示例包括,但不仅限于,膝上型计算机、平板电脑、上网本、智能电话、蜂窝电话、手持式计算设备、媒体播放器,及其他移动,电池供电的和/或小计算设备。这样的设备越来越多地被设计成在不断降低的功率和热范围内操作。一方面,这样的设备常常由电池或其他有限的电源供电,这倾向于使节省电能很重要。其次,这样的设备中有许多常常采用小形状因子,这倾向于限制电池的大小和/或限制热范围。同时,这样的设备越来越多地用于从计算角度来看越来越密集的任务,并期待具有具有更好的性能(例如,由于更多的多媒体内容,更加复杂的应用,等等)。相应地,在这样的设备中,能够平衡功率、热以及计算性能相关的目标一般是有益的。
此处所公开的具有带有不同的功耗和计算能力的核或其他计算元件的异构计算元件处理器的各实施例,可以被用来提供在功耗和计算能力或性能方面的高动态范围,以便帮助平衡这些不同的目标。许多移动、电池供电的和/或小计算设备倾向于被通电,但是空闲相对长的时间,只在相对短的时间内需要用于大量计算和/或高性能。在某些实施例中,在不需要大量计算时的这样的长时间段内可以使用较低计算能力和较低功耗的计算元件,以便节省功率,而在可用的能量和热范围内,在大量计算有益的相对短时间内可以使用较高计算能力且较高功耗的计算元件。
图1是具有异构核处理器101的实施例的计算系统100的框图。在某些实施例中,异构核处理器可以是通用处理器(例如,用于台式机、膝上型计算机及类似计算机的类型的)。替换地,处理器可以是专用处理器。合适的专用处理器的示例包括但不限于,网络处理器、通信处理器、加密处理器、图形处理器、协处理器、嵌入式处理器、数字信号处理器(DSP)以及控制器(例如,微控制器),仅列举数例。
异构核处理器具有带有不同的计算特征并在某些情况下但不是所有情况下带有不同的功耗特征的异构物理核。具体而言,异构物理核包括一组一个或多个较低计算能力并在某些情况下较低功耗的物理核102,以及一组一个或多个较高计算能力并在某些情况下较高功耗的物理核103。如此处所使用的,术语“较低”和“较高”是相对于彼此的相对术语,不是绝对术语。例如,较低功率核比较高功率核等等使用较小功率。在示图中,不同大小的物理核用于指定逻辑和/或计算能力的相对量。
一般而言,如果一个核具有多个逻辑,那么,其计算能力倾向于较大,但是,其功耗也倾向于较大。相反,较小的核一般倾向于使用较小的功率,而且倾向于具有较小的计算能力。如此,较高计算能力且较高功耗的核可以表示“较大的”核,而较低计算能力且较低功耗的核可以表示“较小的”核。再次,术语“较大的”和“较小的”此处用作相对的而不是绝对术语。然而,不要求较高计算能力的计算元件需要比较低计算能力的计算元件具有更多逻辑和/或更高功耗。例如,在执行某些类型的任务时效率很高的专用或定制的逻辑能够以较高性能执行那些任务,而不一定需要具有更多的逻辑和/或较高功耗。例如,被设计为针对任务X(例如,网页浏览、视频解压缩等等)有效率的通用核在执行任务X时比另一种类型的通用核更有效率并且更快。可以向这样的较高计算能力计算元件迁移,以便扩展计算或性能动态范围,而不一定导致更大的功耗。在本描述中,常常使用较低计算能力且较低功耗的计算元件,以及较高计算能力且较高功耗的计算元件。然而,在其他实施例中,较高计算能力的计算元件可以具有与较低计算能力的计算元件相同或者甚至更低的功耗。
再次参考图1,在所示实施例中,较低计算能力且较低功耗的物理核102的组包括核LPC0到LPCN,较高计算能力且较高功耗的物理核103的组包括核HPC0到HPCM。数字N和M可以是特定实现所需的任何合适的数字。常常可以有从一个(例如,在媒体播放器或其他简单计算设备)到数百(例如,在膝上型计算机或其他复杂的计算设备中)间的任何数量的较低计算能力且较低功耗以及较高计算能力且较高功耗的物理核。
在一个特定示例中,可以有1到30之间的较低计算能力且较低功耗的核,1到30,1到10,或1到5之间的较高计算能力且较高功耗的核。在某些实施例中,较高计算能力且较高功耗的核可以比较低计算能力且较低功耗核少,虽然这不是必需的。在示图中,为简明起见,只示出了两种不同类型的异构核,虽然其他实施例可以具有三种或更多种不同类型的异构核(例如,那些所示出的,对于特定任务定制的计算元件之间的第三大小的核等等)。
异构核表示异构计算元件或处理元件的一个实施例。在其他实施例中,可以使用其他类型的异构计算元件或处理元件,代替核。异构计算元件或处理元件的其他合适的示例包括,但不仅限于,硬件加速器、固定功能加速器、图形处理单元、专业化处理单元、功能单元、执行单元、向量执行单元、等等,以及其组合。在本描述中,异构核常常作为异构计算元件或处理元件的示例实施例,虽然可以可另选地使用上文所描述的计算元件或处理元件的任何组合。
参考再次图示,处理器可以向软件调度器105呈现或暴露一组一个或多个虚拟核104。软件调度器常常可以是操作系统的一部分。在某些实施例中,虚拟核可以在软件调度器看起来是同构核,而不是异构核。在示图中,这通过暴露的虚拟核全部是相同大小来指定。向软件暴露虚拟同构核可以有效地对软件隐瞒物理核的异构本质。软件调度器可以调度线程、任务、软件进程或其他工作负荷106在暴露的同构虚拟核上执行(在图示中由箭头所示出的),如它将在真正的同构多核处理器或多处理器系统中那样。有利地,这可以帮助避免设计软件调度器和/或操作系统以利用由异构物理核所提供的好处的必要性。此外,这还可以帮助避免当处理器物理核或物理核随着时间而变化时修改软件调度器和/或操作系统的必要性。
在某些实施例中,在暴露的软件可见的虚拟核和较低计算能力且较低功耗的物理核之间可以有默认一对一映射。在示图中,这通过连接虚拟核与较低计算能力且较低功耗的物理核中的相应一个的箭头来示出。例如,VC0被默认映射到LPC0,VC1被默认映射到LPC1,依次类推。可另选地,可以替代地使用虚拟核和较低计算能力且较低功耗的物理核之间的其他类型的默认映射和/或动态映射。作为另一个示例,由于功率、存储器访问延迟或各种原因,对应关系可以是动态的(例如,虚拟核(例如,VC2)可以从一个物理核(例如,LPC2)重新映射到另一物理核(例如,LPC1)。相应地,虽然在所示实施例中,示出了静态的一对一的默认映射,但是,其他实施例可以使用虚拟核和较低计算能力且较低功耗的物理核之间的静态或者动态的映射,而不一定是一对一的映射。
再次参考图1,处理器包括动态范围扩展工作负荷迁移逻辑108的实施例。动态范围扩展工作负荷迁移逻辑可以以硬件(例如,集成电路、晶体管等等)和/或潜在地与某个软件相结合的处理器的固件(例如,存储在非易失性存储器中的微代码)来实现。动态范围扩展工作负荷迁移逻辑与异构物理核耦合,并逻辑地放置在软件暴露的虚拟核和异构物理核之间。动态范围扩展工作负荷迁移逻辑可以可操作,以平衡功耗和性能和/或扩展计算系统的动态范围。
较低计算能力且较低功耗的核(例如,较小核)和较高计算能力且较高功耗的核(例如,较大的核)在功耗和计算能力之间提供折衷。较小核功率效率比较高,但是,具有较低的计算能力,并提供较低的性能,而较大的核具有比较大的计算能力,并提供更好的性能(例如,较高的平均指令执行速率),但是消耗更大的功率(例如,每个执行的指令消耗的平均功率较高)。通过包括较低和较高计算能力和较高功耗的核(或其他计算元件)两者,动态范围扩展工作负荷迁移逻辑可以实现功耗和能量效率的好的平衡。
在各实施例中,动态范围扩展工作负荷迁移逻辑可以可操作,以在较低计算能力且较低功耗的物理核和较高计算能力且较高功耗的物理核之间迁移、移动或重新映射线程、任务、软件进程、其他工作负荷和/或虚拟核。例如,由软件调度器在虚拟核(例如,VC1)上调度的线程可以从较低计算能力且较低功耗的物理核(例如,LPC1)移动到较高计算能力且较高功耗的物理核(例如,HPC1)。例如,在某些实施例中,当不需要大量计算和/或高性能时,可以在比较长的时间段内使用较低计算能力且较低功耗的核,以便节省功率。有选择地,当大量计算和/或高性能是有益的或由用户希望时,可以在短时间段使用较高计算能力且较高功耗的核,只要能量和热范围允许即可。在其他实施例中,如上文所描述的,较高性能核不必一定具有更多逻辑和/或更大的功耗(例如,相反,它们可以在执行工作负荷时更有效率)。
为进一步示出工作负荷迁移如何在一个实施例中发生,考虑下列示例。处理器通常用于多任务情况下,该情况包括相对轻的并且连续的计算工作负荷连同相对重的并且猝发的计算工作负荷。例如,当用户在浏览网页的同时听音乐时,可能会发生这种情况。在媒体播放器应用上播放音乐一般特征在于与解码经压缩的音乐流相关联的相对连续的但是低的计算工作负荷。这样的工作负荷倾向于适合于较低计算能力且较低功耗的核,因为它们提供所需的性能级别,同时还在较长的时间段内提供较低功耗。另一方面,浏览器应用可能空闲,并且大部分时间具有低计算工作负荷,但是,有时会具有猝发的且高的计算工作负荷(例如,在用户发出提供网页内容的请求之后)。当浏览器应用程序变为活跃时,一般会有计算工作负荷的突然增大。在某些实施例中,当浏览器应用变为活跃时,对应的线程可以从较低迁移计算能力且较低功耗的核迁移较高计算能力且较高功耗的核,以便在能量/热预算准许的情况下,在短猝发时段内提供快速的性能增强。然后,在短猝发时段之后,或当能量/热预算不再可用时,浏览器应用的线程可以迁移回较低计算能力且较低功耗的核,以便节省功率。
有利地,异构架构处理器能够使用异构核或其他计算元件来扩展系统的动态范围。这可以对软件(例如,软件调度器、操作系统、虚拟机监视器、微内核等等)透明地完成。在常规系统中,任务和线程向核的分配由软件(例如,操作系统)执行。然而,在此处的某些实施例中,软件可能没有听说过异构计算元件(例如,它们可能是对软件不可见的),或至少不需要是将工作负荷移动到异构计算元件的实体。相反,旧式软件可能继续向由处理器暴露的同构虚拟计算元件调度任务和线程,而无需被修改以察觉到异构架构。为了改善动态范围,处理器可以动态地将这些工作负荷迁移、移动或重新映射到对软件不可见的较高计算能力计算元件(例如,当希望较高性能,并且较高性能在可用的能量/热预算内)。
图2是具有异构计算元件202、203的处理器201的实施例和动态范围扩展工作负荷迁移逻辑208的实施例的框图。异构计算元件包括至少一个较低处理能力,且在某些情况下,较低功耗的物理计算元件202(例如,较小核),以及至少一个较高处理能力,并且在某些情况下,较高功耗的物理计算元件203(例如,较大的核)。动态范围扩展工作负荷迁移逻辑可操作,以将工作负荷206从至少一个较低处理能力且较低功耗的物理计算元件迁移到至少一个较高处理能力且较高功耗的物理计算元件。在其他实施例中,较高计算能力计算元件不必一定是较大的或具有较高功耗。
动态范围扩展工作负荷迁移逻辑208包括性能受益评估逻辑210。迁移性能受益评估逻辑可操作,以评估工作负荷从至少一个较低处理能力且较低功耗的物理计算元件向至少一个较高处理能力且较高功耗的物理计算元件的迁移的性能好处。如图所示,在某些实施例中,评估可以基于一个或多个性能受益参数。这样的参数的示例包括,但不仅限于,软件(例如,操作系统)性能请求、计算元件利用率级别、工作负荷可缩放性参数,在每单位功率的性能(例如,每个瓦特的性能)方面的可缩放性,等等,以及其组合。工作负荷可缩放性参数可以被用来帮助量化在性能好处方面,工作负荷从较低计算能力计算元件向较高计算能力计算元件可缩放性如何。迁移性能受益评估逻辑可操作,以基于评估的性能好处,判断是否允许迁移。在某些实施例中,如果评估的性能好处足够高(例如,满足阈值),那么,可以允许迁移。否则,如果评估的性能好处不足够高(例如,不满足阈值),那么,可以不允许迁移。
动态范围扩展工作负荷迁移逻辑208还包括可用的能量和/或热预算评估逻辑212。可用的能量/热预算评估逻辑可操作,以评估处理器的可用的能量和/或热预算,如果迁移在可用的能量和/或热预算内,则判断允许迁移。如图所示,在某些实施例中,评估可以基于一个或多个能量和/或热参数。这样的参数的示例包括,但不仅限于,测量到的温度(例如,结、外壳等等)、测量到的能量和/或功耗、电流输送参数,功率输送参数,等等,以及其组合。如果迁移不在可用的能量/热预算内,则可以不允许迁移。
动态范围扩展工作负荷迁移逻辑208还包括工作负荷迁移逻辑214。工作负荷迁移逻辑可操作,以当迁移性能受益评估逻辑以及可用的能量和热预算评估逻辑两者允许时,执行工作负荷的迁移。在某些实施例中,工作负荷迁移逻辑可以对软件透明地迁移工作负荷。动态范围扩展工作负荷迁移逻辑还可以在适当的时候(例如,在能实现的性能好处和/或能量/热预算不再充足时)反向迁移工作负荷。
图3是动态范围扩展工作负荷迁移逻辑308的实施例的框图。在某些实施例中,图3中的逻辑可以被包括在图2中的处理器或图1的系统中。或者,图3的逻辑可以被包括在相似的或完全不同的处理器或系统中。此外,图2的处理器和图1的系统可包括与图3相同类似的或者完全不同的动态范围扩展工作负荷迁移逻辑。
动态范围扩展工作负荷迁移逻辑包括接收性能请求的性能请求接收逻辑318。在某些实施例中,性能请求接收逻辑可以从软件(例如,操作系统、用户模式管理者、管理的运行时等等)接收对于特定线程、任务、软件进程,或其他工作负荷(或对于处理那些工作负荷的计算元件)的性能请求。例如,操作系统可以发出对相对较高的或最高性能状态(例如,P0状态、Intel超频升高状态,其他高或最高性能状态,等等)的请求。在某些实施例中,任何这样的工作负荷或计算元件(接收到对于它们的这样的性能请求)可以被视为有资格由处理器逻辑考虑用于从较低计算能力计算元件向较高计算能力计算元件迁移的候选。在某些实施例中,只有在从操作系统收到这样的性能请求之后才由处理器逻辑评估这样的迁移。可另选地,在其他实施例中,处理器逻辑可以可操作,以自发地判断执行这样的迁移,无需从软件接收到这样的性能请求。
在某些实施例中,处理器逻辑不响应于从软件接收到性能请求自动地执行迁移。相反,在某些实施例中,处理器逻辑可以估计迁移的好处,并基于估计的好处,判断是否执行迁移(例如,如果估计的好处足够大,则判断执行迁移,否则,判断不执行迁移)。
即,迁移可以取决于是否预期实现足够的性能改善。在某些实施例中,如果接收到对于多个工作负荷的性能请求,则可以比较迁移每一个工作负荷的预期的好处,以确定用于迁移的相对较好的候选(例如,将从迁移受益最多的那些)。此外,在某些实施例中,处理器逻辑可以评估当前能量/热预算,并基于当前能量/热预算,判断是否执行迁移(例如,如果估计的好处足够大,并且有足够的能量/热预算适应迁移,则判断执行迁移)。
动态范围扩展工作负荷迁移逻辑308包括迁移性能受益评估逻辑310,该逻辑310可操作,以评估从较低计算能力且常常较低功耗的计算元件向较高计算能力且常常较高功耗的计算元件的迁移的性能好处。示出了迁移性能受益评估逻辑的特定详细示例,虽然本发明的范围不受限制。
迁移性能受益评估逻辑包括利用率评估逻辑320。利用率评估逻辑可操作,以评估接收到对于其的性能请求的核或其他计算元件的利用率。在某些实施例中,这还可以对于任何活跃的较高计算能力并且较高功耗计算元件执行。利用率基本上指出在最近一段时间核或其他计算元件的活动或使用的级别。在某些实施例中,利用率可以指出从系统软件(例如,操作系统)的角度来看核或其他计算元件的业务或活动的级别。例如,较高利用率可以指出来自操作系统的对性能的较高的需求。表达或量化利用率的各种不同的方式也是可以构想的。在某些实施例中,利用率可以被表达为未停止的时钟周期与总时钟周期的比率(即,未停止的总时钟周期的比例)。在其他实施例中,利用率可以用其他方式表示(例如,基于每单位时间引退的指令数量,指令执行速率,来自性能或工作负荷监测逻辑的信息等等)。
在某些实施例中,除核利用率之外,可缩放性也可以被包括在迁移受益评估中。核或其他计算元件的利用率级别是影响迁移的预期受益的一个因素,但是不是唯一因素。在某些情况下,如果带有最高利用率的核或其他计算元件将不会显著地得益于迁移(例如,如果它将不会得益于大核的资源),则带有最高利用率的核或其他计算元件可能不是对于迁移的最佳候选,尽管它非常活跃。例如,这可能是当该核或计算元件的工作负荷相对来说受存储器限制严重的情况。当从小核迁移到大核时,受存储器限制严重的工作负荷可能不会像其他类型的工作负荷(例如,高度向量化的多媒体工作负荷)那样表现出同样多的性能增强。相应地,在某些实施例中,有关工作负荷从较低计算能力且较低功耗的计算元件迁移到较高计算能力且较高功耗的计算元件的预期的加速或“可缩放性”的信息可以被包括在对迁移受益的评估中。
迁移性能受益评估逻辑包括可缩放性因素监测逻辑316和可缩放性评估逻辑322,它们可操作,以评估接收到的性能请求的可缩放性。在某些实施例中,这还可以对于任何活跃的较高计算能力计算元件执行。可缩放性因素监测逻辑可操作,以收集当前正在在较低计算能力计算元件上执行的工作负荷的信息,该信息对允许可缩放性评估逻辑322评估或估计工作负荷从较低计算能力计算元件迁移到较高计算能力计算元件的加速或可缩放性有用处。在某些实施例中,还可以在每单位功率的性能(例如,每瓦特性能)方面评估可缩放性。在不同的实施例中,这可以按不同的方式来完成。在各实施例中,这可以涉及计数或监测在工作负荷过程中事件的发生(例如,利用性能监测计数器),将工作负荷的类型分类为具有变化的加速/可缩放性级别的若干种预定的类型中的一种(例如,工作负荷类型1具有1级加速/可缩放性,工作负荷类型2具有2级加速/可缩放性,等等),访问保存的关于类似的类型的工作负荷(例如,线程的前一实例,类似的线程等等)的加速/可缩放性的历史信息,等等,或这样的方法的组合。
在一个特定示例实施例中,可缩放性因素监测逻辑316可以可操作,以监测和计数在工作负荷过程中与可缩放性相关的若干种不同类型的事件的发生,而可缩放性评估逻辑322可以可操作,以基于这些被监测的事件,并基于较低和较高计算能力计算元件之间的差异(例如,基于它们的不同的微架构的微架构标度),估计工作负荷的加速/可缩放性。在某些实施例中,流水线停止类型计数器(例如,存储器停止等等)、流水线吞吐量类型计数器(例如,发出的指令、引退的指令等等)、存储器带宽类型计数器(例如,缓存层次结构错过/命中计数器等等),等等,或这样的参数的组合,可以被用作可能倾向于影响可缩放性的因素的表示。
再次参考图3,迁移候选判断逻辑324与可缩放性评估逻辑322、性能请求接收逻辑318以及利用率评估逻辑320耦合。迁移候选判断逻辑可操作,以基于来自性能请求接收逻辑的接收到的性能请求、来自利用率评估逻辑的利用率信息以及来自可缩放性评估逻辑的可缩放性信息,确定考虑进一步用于迁移的一组零个或多个候选。在不同的实施例中,这可以按不同的方式来完成。在某些实施例中,带有相对来说比较高的利用率和相对来说比较高的可缩放性的候选可以进一步被考虑作为候选,而带有相对来说较低的利用率和/或相对来说较低的的可缩放性的候选可以不作为候选。例如,在一个实施例中,可以对于每一个候选,评估利用率(例如,未停止周期的比例)和可缩放性的乘积或其他组合,而可以将带有最高乘积或组合的一个或多个候选作为候选。被保留的候选的数量可能倾向于取决于要被准许的迁移的数量,该数量本身可以取决于处理器中的较高计算能力的计算元件的数量。相应地,迁移候选判断逻辑324可以选择它认为将从迁移受益最大的候选的子集。
在某些实施例中,可以可任选地包括利用率和阈值比较逻辑328,以消除带有不满足(例如,等于或超出)最小利用率阈值的利用率和/或不满足(例如,等于或超出)最小可缩放性阈值的可缩放性的任何候选。即,在某些实施例中,利用率和可缩放性中的每一个都可以被用作消除带有低利用率和/或低可缩放性的某些候选的单独的逻辑低通过滤器准则。此方法可以帮助确保利用率和可缩放性两者都高于对应的阈值。可另选地,可以基于利用率和可缩放性的乘积或其他组合,而并非基于单个阈值,来作出判断。换言之,尽管迁移候选判断逻辑324可能已经确定它所感觉到的作为用于迁移的最佳候选,但是,可以包括阈值比较逻辑328,以确保要被迁移的这些最佳候选中的任何一个都满足某些理想标准或阈值。判断要迁移哪些工作负荷的其他方式也是可以设想的。例如,尽管所示出的实施例包括逻辑324和逻辑328,但是,其他实施例可以使用单一逻辑来作出单一判断,而并非作出所描述的两阶段判断。
如图所示,在某些实施例中,迁移性能受益评估逻辑310可以可任选地包括线程性(threadedness)评估逻辑326,虽然这不是必需的。线程性评估逻辑可以可操作,以评估用于迁移的工作负荷候选的线程性特征。在某些实施例中,线程性评估逻辑可以执行这样的评估,以判断这些线程性特征是否指出候选工作负荷是否是用于迁移的好的候选。在某些实施例中,线程性评估逻辑可以执行这样的评估,以判断线程性特征是否指出候选工作负荷应该被映射到较高计算能力计算元件的特定方式。在不同的实施例中,这可以按不同的方式来完成。
在某些实施例中,线程性评估逻辑326可包括单一和/或占优势的线程检查逻辑。单一/占优势的线程检查逻辑可以可操作,以检查作为用于迁移的候选的工作负荷是单一线程,还是一组线程中的占优势线程。例如,这样的单一线程和/或占优势的线程检查逻辑可以在有单一较高计算能力单一线程的计算元件的各实施例中有用。在某些实施例中,向单一较高计算能力的计算元件的迁移可以主要用于单一线程或者多线程工作负荷的占优势线程。平均地使用多个核的工作负荷可以替代地在多个较低计算能力且较低功耗的计算元件上运行。此检查可以帮助确保要被迁移的线程将对系统性能和响应性有好处。当存在带有高度的并行性和/或相互关联性运行的多个线程,以致于在较高功率的计算元件上运行它们中的一个将不会提供实际性能的大量提升时,此检查可以帮助避免在较高功率的计算元件上操作的能源成本。例如,这可能是这样的情况:消费者线程消耗由生产者线程产生的数据以便消费者线程将一般不会大幅加速除非生产者线程也加速。
在不同的实施例中,这样的单一线程/占优势线程检查可以以不同的方式实现。在一个实施例中,这可以基于在在某一时间段内请求最高性能状态的同时活跃的线程的数量,并将其与可调的阈值组进行比较。例如,在一个特定实施例中,当一个核正在请求C0P0,且所有其他核都驻留在非C0P0状态(例如,CxP0或C0Px)时,计数器可以递增可配置的量,而当多个核正在请求C0P0时,递减另一可配置的量。为了更好地适应工作负荷行为的变化,计数器可以被实现为饱和的计数器。可以将计数器与阈值进行比较,如果较大,则单个线程或占优势线程的迁移可以被允许仍保持在向较高计算能力且较高功耗计算元件的迁移的考虑中。阈值可以帮助确保在某一时间段内线程在当前工作负荷中占优势。
在其他实施例中,线程性评估逻辑可以基于其线程性间(inter-threadedness)特征,评估多线程工作负荷线程的子集是否是迁移到多线程较高计算能力的计算元件和/或多个单或多线程较高计算能力的计算元件的好的候选例如,在其他实施例中,线程性评估逻辑可以考虑消费者-生产者关系。在其他实施例中,线程性评估逻辑可以基于其线程性特征,评估在换出迁移一个或多个较高计算能力计算元件上的第一组一个或多个线程和第二组一个或多个线程之间交替是否有益。
再次参考图3,动态范围扩展工作负荷迁移逻辑也包括能量和/或热预算评估逻辑312。能量/热预算评估逻辑包括能量和/或热预算估计逻辑338,能量和/或热预算估计逻辑338可操作,以基于一组一个或多个能量和/或热参数330,估计能量和/或热预算。可以考虑与特定实现相关的各种能量/热参数。如图所示,在某些实施例中,能量/热参数组可包括热结温度(Tj)332、外部底盘温度(Tskin)334,以及一个或多个功率/能源消耗和/或递送参数(例如,功耗、功率输送、电流输送等等)336。这些及其他能量/热参数的各种组合适合于不同的实施例。
在某些实施例中,能量/热预算阈值比较逻辑可以可操作,以检查估计的能量/热预算,并且如果处理器正在充分在能量/热预算内操作以允许一个或多个迁移,则允许一个或多个迁移。在某些实施例中,只有当能量/热预算在能量/热约束内时,才可以允许使用较高计算能力且较高功耗的计算元件。作为示例,如果测量到的温度、功率和/或能量等等,全部都充分低于预定的限制(例如,工厂配置的限制、规范限制、由软件、固件或用户所提供的限制等等),那么,处理器可以判断执行从一个或多个较低计算能力且较低功耗的计算元件向一个或多个较高计算能力且较高功耗的计算元件的迁移。在某些实施例中,判断可以基于在迁移之后工作负荷在较高计算能力且较高功耗的计算元件上的最小希望的停留时间,以便避免频繁的迁移和反向迁移,同时当能量/热预算准许时允许适当使用较高计算能力且较高功耗的计算元件。在一个特定实施例中,在较高计算能力且较高功耗的计算元件上的最小希望的停留时间可以大约数十毫秒,虽然这不是必需的。
在某些实施例中,可以对温度、电流消耗、功耗或其他能量/热预算相关的参数进行连续的或周期性的重复测量,以随时重新评估能量/热预算。当测量到的温度、电流消耗、功耗,等等中的一个或多个超出,或充分接近于超出预定的限制时,处理器可以判断将工作负荷迁移回到较低计算能力并且较低功耗计算元件。这可以帮助确保能量/热预算不被超出。可另选地,如果没有违犯能量/热预算,则工作负荷可以停留在较高计算能力且较高功耗的计算元件上,直到它们完成或直到它们的性能受益特征变化,以致于它们部署在较高计算能力计算元件上不再被处理器逻辑视为合适。
迁移逻辑314可操作,以接收迁移性能受益评估逻辑(例如,利用率和可缩放性阈值比较逻辑328以及逻辑326)和能量/热预算评估逻辑312的输出。如果迁移受益评估逻辑判断一个或多个工作负荷迁移是有益的,并且能量/热预算评估逻辑判断能量/热预算约束准许一个或多个迁移,那么,迁移逻辑可以执行一个或多个工作负荷迁移。例如,如果较高计算能力的计算元件不活跃,则可以激活它,并可以将与已迁移的工作负荷相关联的上下文(例如,寄存器的内容、执行状态等等)迁移到较高计算能力的计算元件。如果较高计算能力的计算元件已经具有将被替换为新迁移的工作负荷的工作负荷,那么,可以将较高计算能力的计算元件上的工作负荷的上下文迁移回较低计算能力的计算元件,并可以将新迁移的工作负荷的上下文从较低计算能力的计算元件迁移到较高计算能力的计算元件。
如果在某个点,工作负荷不满足前面所描述的迁移性能受益评估准则(例如,操作系统删除对工作负荷的P0请求,工作负荷的利用率降低到低于最小阈值以下,工作负荷的可缩放性降低到低于最小阈值以下,等等),则工作负荷可以从较高计算能力计算元件降级回较低计算能力的计算元件中的一个。在某些实施例中,这样的迁移回较低计算能力的计算元件的阈值可以不同于前向迁移到较高计算能力的计算元件的阈值,以便施加可以帮助防止在迁移和反向迁移之间的频繁的切换(该切换具有开销(例如,交换上下文,等等))的滞后。如果在某个点,另一工作负荷具有比较有利的迁移性能受益和/或该另一个工作负荷被视为在较高计算能力的计算元件上执行更好,则工作负荷还可以从较高计算能力的计算元件降级回较低计算能力的计算元件中的一个。如果没有足够的能量/热预算,则工作负荷还可以从较高计算能力且较高功耗的计算元件降级回较低计算能力且较低功耗的计算元件中的一个。
上文所描述的各实施例只是实现动态范围迁移逻辑的可能的以及设想的方式中的几个。其他实施例可以使用比较完善的方法(例如,包括额外因素),比较简单的方法(例如,省略某些考虑的因素),或者不同的方法,来判断是否执行迁移。例如,其他实施例可以基于利用率、可缩放性以及线程性考虑的子集。作为另一个示例,其他实施例可以基于其他因素(例如,来自工作负荷监视软件的输入,来自操作系统的额外的输入,等等)。作为再一个示例,其他实施例可以自主地或与来自操作系统的指示分开地(例如,不基于OS性能请求)作出判断。
图4是判断是否将工作负荷从较低计算能力且较低功耗的计算元件迁移到较高计算能力且较高功耗的计算元件的方法450的实施例的流程框图。在某些实施例中,图4的操作或方法可以由图1的系统、图2的处理器和/或图3的逻辑来执行可另选地,图4的操作或方法可以由类似的或完全不同的系统、处理器或逻辑来执行。此外,图1的系统、图2的处理器和/或图3的逻辑可以执行与图4的那些相同、类似的或完全不同的操作和方法。本文中针对装置(例如,系统、处理器或逻辑)所描述的组件、特征、以及具体的任选细节还任选地应用于此处所描述的在各实施例中可由该装置执行和/或利用该装置执行的操作和/或方法。
方法包括在框452,评估工作负荷的迁移的性能受益,并判断迁移工作负荷是否有足够的性能受益。如图所示,在某些实施例中,这可包括执行框454,456,458,460的操作。其他实施例可以执行这些操作的子集,或完全地执行其他操作,如前所述。
在框454,可以就对于工作负荷是否已经接收到性能请求的判断。例如,在某些实施例中,性能请求可以是对来自操作系统的高或最高性能状态的请求。如果已经接收到这样的性能请求(即,在框454,判断是“是”),那么,方法可以前进到框456。
在框456,可以就接收到对工作符合的性能请求的该工作负荷是否具有足够的利用率作出判断。例如,在某些实施例中,这可包括判断利用率是否最小阈值。如果工作负荷具有足够的利用率(即,在框456,判断是“是”),则方法可以前进到框458。
在框458,可以就接收到对工作符合的性能请求的该工作负荷是否具有足够的可缩放性作出判断。例如,在某些实施例中,这可包括判断可缩放性是否最小阈值。如果工作负荷具有足够的可缩放性(即,在框458,判断是“是”),则方法可以前进到框460。
在框460,可以评估工作负荷的线程性,并可以基于工作负荷的评估的线程性,就迁移一个或多个线程是否有益作出判断。如上文所提及的,在某些实施例中(例如,当存在单一较高计算能力计算元件时),这可包括判断工作负荷是否具有单一线程或占优势的线程。在其他实施例中,这可包括评估一组线程之间的相互关系(例如,消费者-生产者关系等等)。如果有益(即,在框460,判断是“是”),则方法可以前进到框462。
在框462,可以评估可用的能量和/或热预算,并可以就是否有可用的能量和/或热预算用于迁移作出判断。如果有可用的能量和/或热预算用于迁移(即,在框462,判断是“是”),那么,方法可以前进到框464。在框464,可以将工作负荷从较低计算能力且较低功耗的计算元件迁移到较高计算能力且较高功耗的计算元件。可另选地,如果在框454,456,458,460,或462中的任何一个中判断是“否”,那么,方法可以前进到框466,在那里,不迁移工作负荷。
为了避免混淆本描述,已示出和描述了相对简单的处理器。在其他实施例中,处理器可任选地包括其他组件,诸如举例而言,指令获取单元、指令调度单元、分支预测单元、指令和数据高速缓存、指令和数据转换后备缓冲器、预取缓冲器、微指令队列、微指令定序器、总线接口单元、第二或更高级高速缓存、引退单元、寄存器重命名单元、处理器中包括的其他组件、及其各种组合。实际上在处理器中存在组件的多种不同的组合和配置,并且各实施例不限于任何特定组合或配置。处理器可以表示集成电路或者一个或多个半导体管芯或芯片的集合(例如,单个管芯或芯片、或合并两个或更多个管芯或芯片的封装)。在某些实施例中,处理器可以表示片上系统(SOC)。
示例性核架构、处理器和计算机架构
处理器核可以用出于不同目的的不同方式在不同的处理器中实现。例如,这样的核的实现可以包括:1)旨在用于通用计算的通用有序核;2)预期用于通用计算的高性能通用无序核;3)旨在主要用于图形和/或科学(吞吐量)计算的专用核。不同处理器的实现可包括:1)包括旨在用于通用计算的一个或多个通用有序核和/或旨在用于通用计算的一个或多个通用无序核的CPU;以及2)包括旨在主要用于图形和/或科学(吞吐量)的一个或多个专用核的协处理器。这样的不同处理器导致不同的计算机系统架构,其可包括:1)在与CPU分开的芯片上的协处理器;2)在与CPU相同的封装中但分开的管芯上的协处理器;3)与CPU在相同管芯上的协处理器(在该情况下,这样的协处理器有时被称为诸如集成图形和/或科学(吞吐量)逻辑等专用逻辑,或被称为专用核);以及4)可以将所描述的CPU(有时被称为应用核或应用处理器)、以上描述的协处理器和附加功能包括在同一管芯上的芯片上系统。
接着描述示例性核架构,随后描述示例性处理器和计算机架构。
示例性核架构
有序和无序核框图
图5A是示出根据本发明的各实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。图5B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。图5A-B中的实线框示出了有序流水线和有序核,而可选增加的虚线框示出了寄存器重命名的、无序发布/执行流水线和核。给定有序方面是无序方面的子集的情况下,将描述无序方面。
在图5A中,处理器流水线500包括取出级502、长度解码级504、解码级506、分配级508、重命名级510、调度(也称为分派或发布)级512、寄存器读取/存储器读取级514、执行级516、写回/存储器写入级518、异常处理级522和提交级524。
图5B示出处理器核590,该核590包括耦合到执行引擎单元550的前端单元530,并且两者耦合到存储器单元570。核590可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或替代核类型。作为又一选项,核590可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形处理器单元(GPGPU)核、或图形核等等。
前端单元530包括耦合到指令高速缓存单元534的分支预测单元532,该指令高速缓存单元耦合到指令转换后备缓冲器(TLB)536,该指令转换后备缓冲器耦合到指令取出单元538,指令取出单元耦合到解码单元540。解码单元540(或解码器)可解码指令,并生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元540可使用各种不同的机制来实现。合适的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核590包括(例如,在解码单元540中或否则在前端单元530内的)微代码ROM或存储某些宏指令的微代码的其他介质。解码单元540耦合至执行引擎单元550中的重命名/分配器单元552。
执行引擎单元550包括重命名/分配器单元552,该重命名/分配器单元耦合至引退单元554和一个或多个调度器单元556的集合。调度器单元556表示任何数目的不同调度器,包括预留站、中央指令窗等。调度器单元556耦合到物理寄存器组单元558。每个物理寄存器组单元558表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一种或多种不同的数据类型,诸如标量整数、标量浮点、打包整数、打包浮点、向量整数、向量浮点、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器组单元558包括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单元558与引退单元554重叠以示出可以用来实现寄存器重命名和无序执行的各种方式(例如,使用重新排序缓冲器和引退寄存器组;使用将来的文件、历史缓冲器和引退寄存器组;使用寄存器映射和寄存器池等等)。引退单元554和物理寄存器组单元558耦合到执行群集560。执行群集560包括一个或多个执行单元562的集合和一个或多个存储器访问单元564的集合。执行单元562可以对各种类型的数据(例如,标量浮点、打包整数、打包浮点、向量整型、向量浮点)执行各种操作(例如,移位、加法、减法、乘法)。尽管一些实施例可以包括专用于特定功能或功能集合的多个执行单元,但其他实施例可包括全部执行所有功能的仅一个执行单元或多个执行单元。调度器单元556、物理寄存器组单元558、执行群集560被示出为可能是复数个,因为某些实施例为某些数据/操作类型创建了诸个单独流水线(例如,均具有各自调度器单元、物理寄存器组单元和/或执行群集的标量整数流水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线、和/或存储器访问流水线,以及在单独的存储器访问流水线的情况下特定实施例被实现为仅仅该流水线的执行群集具有存储器访问单元564)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以为无序发布/执行,并且其余流水线可以为有序发布/执行。
存储器访问单元564的集合耦合到存储器单元570,该存储器单元包括耦合到数据高速缓存单元574的数据TLB单元572,其中数据高速缓存单元耦合到二级(L2)高速缓存单元576。在一个示例性实施例中,存储器访问单元564可包括加载单元、存储地址单元和存储数据单元,其中的每一个均耦合至存储器单元570中的数据TLB单元572。指令高速缓存单元534还耦合到存储器单元570中的第二级(L2)高速缓存单元576。L2高速缓存单元576耦合到一个或多个其他级的高速缓存,并最终耦合到主存储器。
作为示例,示例性寄存器重命名的、无序发布/执行核架构可以如下实现流水线500:1)指令取出538执行取出和长度解码级502和504;2)解码单元540执行解码级506;3)重命名/分配器单元552执行分配级508和重命名级510;4)调度器单元556执行调度级512;5)物理寄存器组单元558和存储器单元570执行寄存器读取/存储器读取级514;执行群集560执行该执行级516;6)存储器单元570和物理寄存器组单元558执行写回/存储器写入级518;7)各单元可牵涉到异常处理级522;以及8)引退单元554和物理寄存器组单元558执行提交级524。
核590可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼州桑尼维尔市的ARM控股的ARM指令集(具有诸如NEON等可选附加扩展)),其中包括本文中描述的各指令。在一个实施例中,核590包括用于支持紧缩数据指令集扩展(例如SSE、AVX1、AVX2等等)的逻辑,由此允许许多多媒体应用所使用的操作利用紧缩数据来执行。
应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,此各种方式包括时分多线程化、同步多线程化(其中单个物理核为物理核正在同步多线程化的各线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后诸如用超线程化技术来同步多线程化)。
尽管在无序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存单元534/574以及共享L2高速缓存单元576,但替代实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如一级(L1)内部高速缓存或多个级别的内部高速缓存。在一些实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。或者,所有高速缓存都可以在核和/或处理器的外部。
具体的示例性有序核架构
图6A-B示出了更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块之一(包括相同类型和/或不同类型的其他核)。根据应用,这些逻辑块通过高带宽的互连网络(例如,环形网络)与一些固定的功能逻辑、存储器I/O接口和其它必要的I/O逻辑通信。
图6A是根据本发明的各实施例的单个处理器核以及它与管芯上互连网络602的连接及其二级(L2)高速缓存的本地子集604的框图。在一个实施例中,指令解码器600支持具有紧缩数据指令集扩展的x86指令集。L1高速缓存606允许对进入标量和向量单元中的高速缓存存储器的低等待时间访问。尽管在一个实施例中(为了简化设计),标量单元608和向量单元610使用分开的寄存器集合(分别为标量寄存器612和向量寄存器614),并且在这些寄存器之间转移的数据被写入到存储器并随后从一级(L1)高速缓存606读回,但是本发明的替代实施例可以使用不同的方法(例如使用单个寄存器集合或包括允许数据在这两个寄存器组之间传输而无需被写入和读回的通信路径)。
L2高速缓存的本地子集604是全局L2高速缓存的一部分,该全局L2高速缓存被划分成多个分开的本地子集,即每个处理器核一个本地子集。每个处理器核具有到其自己的L2高速缓存604的本地子集的直接访问路径。被处理器核读出的数据被存储在其L2高速缓存子集604中,并且可以与其它处理器核访问其自己的本地L2高速缓存子集并行地被快速访问。被处理器核写入的数据被存储在其自己的L2高速缓存子集604中,并在必要的情况下从其它子集清除。环形网络确保共享数据的一致性。环形网络是双向的,以允许诸如处理器核、L2高速缓存和其它逻辑块之类的代理在芯片内彼此通信。每个环形数据路径为每个方向1012位宽。
图6B是根据本发明的各实施例的图6A中的处理器核的一部分的展开图。图6B包括L1高速缓存604的L1数据高速缓存606A部分,以及关于向量单元610和向量寄存器614的更多细节。具体地说,向量单元610是16宽向量处理单元(VPU)(见16宽ALU 628),该单元执行整型、单精度浮点以及双精度浮点指令中的一个或多个。该VPU通过混合单元620支持对寄存器输入的混合、通过数值转换单元622A-B支持数值转换、并通过复制单元624支持对存储器输入的复制。写掩码寄存器626允许断言所得的向量写入。
具有集成存储器控制器和图形的处理器
图7是根据本发明的各实施例可能具有一个以上核、可能具有集成存储器控制器、以及可能具有集成图形器件的处理器700的框图。图7中的实线框示出具有单个核702A、系统代理710、一个或多个总线控制器单元716的集合的处理器700,而虚线框的可选附加示出具有多个核702A-N、系统代理单元710中的一个或多个集成存储器控制器单元714的集合以及专用逻辑708的替代处理器700。
因此,处理器700的不同实现可包括:1)CPU,其中专用逻辑708是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核702A-N是一个或多个通用核(例如,通用的有序核、通用的无序核、这两者的组合);2)协处理器,其中核702A-N是旨在主要用于图形和/或科学(吞吐量)的多个专用核;以及3)协处理器,其中核702A-N是多个通用有序核。因此,处理器700可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的集成众核(MIC)协处理器(包括30个或更多核)、或嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器700可以是一个或多个衬底的一部分,和/或可以使用诸如例如BiCMOS、CMOS或NMOS等的多个加工技术中的任何一个技术将处理器实现在一个或多个衬底上。
存储器层次结构包括在各核内的一个或多个级别的高速缓存、一个或多个共享高速缓存单元706的集合、以及耦合至集成存储器控制器单元714的集合的外部存储器(未示出)。该共享高速缓存单元706的集合可以包括一个或多个中间级高速缓存,诸如二级(L2)、三级(L3)、四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)、和/或其组合。尽管在一个实施例中,基于环的互连单元712将集成图形逻辑708、共享高速缓存单元706的集合以及系统代理单元710/集成存储器控制器单元714互连,但替代实施例可使用任何数量的公知技术来将这些单元互连。在一个实施例中,可以维护一个或多个高速缓存单元706和核702-A-N之间的一致性(coherency)。
在一些实施例中,核702A-N中的一个或多个核能够多线程化。
系统代理710包括协调和操作核702A-N的那些组件。系统代理单元710可包括例如功率控制单元(PCU)和显示单元。PCU可以是或包括用于调整核702A-N和集成图形逻辑708的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
核702A-N在架构指令集方面可以是同构的或异构的;即,这些核702A-N中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅子集或不同的指令集。
示例性计算机架构
图8-11是示例性计算机架构的框图。本领域已知的对膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般地,能够包含本文中所公开的处理器和/或其他执行逻辑的多个系统和电子设备一般都是合适的。
现在参见图8,所示为根据本发明的一个实施例的系统800的框图。系统800可以包括一个或多个处理器810、815,这些处理器耦合到控制器中枢820。在一个实施例中,控制器中枢820包括图形存储器控制器中枢(GMCH)890和输入/输出中枢(IOH)850(其可以在分开的芯片上);GMCH 890包括存储器和图形控制器,存储器840和协处理器845耦合到该存储器和图形控制器;IOH 850将输入/输出(I/O)设备860耦合到GMCH 890。或者,存储器和图形控制器中的一个或两者被集成在处理器内(如本文中所描述的),存储器840和协处理器845直接耦合到处理器810以及控制器中枢820,该控制器中枢820与IOH 850处于单个芯片中。
附加的处理器815的任选性在图8中通过虚线来表示。每一处理器810、815可包括本文中描述的处理核中的一个或多个,并且可以是处理器700的某一版本。
存储器840可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢820经由诸如前侧总线(FSB)之类的多点总线(multi-drop bus)、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接895与处理器810、815进行通信。
在一个实施例中,协处理器845是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢820可以包括集成图形加速器。
按照包括架构、微架构、热、功耗特征等等优点的度量谱,物理资源810、815之间存在各种差别。
在一个实施例中,处理器810执行控制一般类型的数据处理操作的指令。协处理器指令可嵌入在这些指令中。处理器810将这些协处理器指令识别为应当由附连的协处理器845执行的类型。因此,处理器810在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器845。协处理器845接受并执行所接收的协处理器指令。
现在参考图9,所示为根据本发明的一实施例的更具体的第一示例性系统900的框图。如图9所示,多处理器系统900是点对点互连系统,并包括经由点对点互连950耦合的第一处理器970和第二处理器980。处理器970和980中的每一个都可以是处理器700的某一版本。在本发明的一个实施例中,处理器970和980分别是处理器810和815,而协处理器938是协处理器845。在另一实施例中,处理器970和980分别是处理器810和协处理器845。
处理器970和980被示为分别包括集成存储器控制器(IMC)单元972和982。处理器970还包括作为其总线控制器单元的一部分的点对点(P-P)接口976和978;类似地,第二处理器980包括P-P接口986和988。处理器970、980可以使用点对点(P-P)接口电路978、988经由P-P接口950来交换信息。如图9所示,IMC 972和982将处理器耦合到相应的存储器,即存储器932和存储器934,这些存储器可以是本地附连到相应处理器的主存储器的部分。
处理器970、980可各自经由使用点对点接口电路976、994、986、998的各个P-P接口952、954与芯片组990交换信息。芯片组990可以可选地经由高性能接口939与协处理器938交换信息。在一个实施例中,协处理器938是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。
共享高速缓存(未示出)可以被包括在任一处理器之内,或被包括在两个处理器外部但仍经由P-P互连与这些处理器连接,从而如果将某处理器置于低功率模式时,可将任一处理器或两个处理器的本地高速缓存信息存储在该共享高速缓存中。
芯片组990可经由接口996耦合至第一总线916。在一个实施例中,第一总线916可以是外围组件互连(PCI)总线,或诸如PCI Express总线或其他第三代I/O互连总线之类的总线,但本发明的范围并不受此限制。
如图9所示,各种I/O设备914可连同总线桥918一起耦合到第一总线916,总线桥918将第一总线916耦合到第二总线920。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU的处理器、加速器(诸如例如图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列或任何其它处理器的一个或多个附加处理器915耦合到第一总线916。在一个实施例中,第二总线920可以是低引脚计数(LPC)总线。各种设备可以被耦合至第二总线920,在一个实施例中这些设备包括例如键盘/鼠标922、通信设备927以及诸如可包括指令/代码和数据930的盘驱动器或其他大容量存储设备的存储单元928。此外,音频I/O 924可以被耦合至第二总线920。注意,其他架构是可能的。例如,代替图9的点对点架构,系统可以实现多分支总线或其他这类架构。
现在参考图10,所示为根据本发明的实施例的更具体的第二示例性系统1000的框图。图9和10中的类似元件使用类似附图标记,且在图10中省略了图9的某些方面以避免混淆图10的其它方面。
图10示出了处理器970、980可以分别包括集成的存储器和I/O控制逻辑(“CL”)972和982。因此,CL 972、982包括集成存储器控制器单元并包括I/O控制逻辑。图10示出:不仅存储器932、934耦合至CL 972、982,I/O设备1014也耦合至控制逻辑972、982。传统I/O设备1015被耦合至芯片组990。
现在参照图11,所示出的是根据本发明一个实施例的SoC 1100的框图。图7中相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图11中,互连单元1102被耦合至:应用处理器1110,该应用处理器包括一个或多个核202A-N的集合以及共享高速缓存单元706;系统代理单元710;总线控制器单元716;集成存储器控制器单元714;一组或一个或多个协处理器1120,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1130;直接存储器存取(DMA)单元1132;以及用于耦合至一个或多个外部显示器的显示单元1140。在一个实施例中,协处理器1120包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码(诸如图9中示出的代码930)应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
可由存储在表示处理器内的各种逻辑的机器可读介质上的表示性指令来实现至少一个实施例的一个或多个方面,当机器读取这些指令时,这些指令使该机器制作用于执行本文所述的技术的逻辑。可将被称为“IP核”的此类表示存储在有形的机器可读介质上,并将其提供给各种客户或生产设施,以便将此类表示加载到实际制造该逻辑或处理器的制造机器中。
这样的机器可读存储介质可以包括但不限于通过机器或设备制造或形成的物品的非瞬态的有形安排,其包括存储介质,诸如:硬盘;任何其它类型的盘,包括软盘、光盘、紧致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)以及磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子指令的任何其它类型的介质。
因此,本发明的各实施例还包括非瞬态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特征。也可将此类实施例称为程序产品。
仿真(包括二进制变换、代码变形等)
在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其他方式将指令转换成将由核来处理的一个或多个其他指令。指令转换器可以用软件、硬件、固件、或其组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。
图12是根据本发明的各实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。在所示的实施例中,指令转换器是软件指令转换器,但作为替代,该指令转换器可以用软件、固件、硬件或其各种组合来实现。图12示出可以使用x86编译器1204来编译利用高级语言1202的程序,以生成可以由具有至少一个x86指令集核的处理器1216原生执行的x86二进制代码1206。具有至少一个x86指令集核的处理器1216表示能够通过兼容地执行或以其他方式处理下列各项来执行与具有至少一个x86指令集核的英特尔处理器基本相同的功能的任何处理器:1)英特尔x86指令集核的指令集的本质部分,或2)目标为在具有至少一个x86指令集核的英特尔处理器上运行以取得与具有至少一个x86指令集核的英特尔处理器基本相同的结果的应用或其他软件的目标代码版本。x86编译器1204表示用于生成x86二进制代码1206(例如,目标代码)的编译器,该二进制代码可通过或不通过附加的链接处理在具有至少一个x86指令集核的处理器1216上执行。类似地,图12示出可以使用替代的指令集编译器1208来编译利用高级语言1202的程序,以生成可以由不具有至少一个x86指令集核的处理器1214(例如具有执行加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集、和/或执行加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集的核的处理器)原生执行的替代指令集二进制代码1210。指令转换器1212被用来将x86二进制代码1206转换成可以由不具有x86指令集核的处理器1214原生执行的代码。该转换后的代码不大可能与替代性指令集二进制代码1210相同,因为能够这样做的指令转换器难以制造;然而,转换后的代码将完成一般操作并由来自替代指令集的指令构成。因此,指令转换器1212通过仿真、模拟或任何其他过程来表示允许不具有x86指令集处理器或核的处理器或其他电子设备执行x86二进制代码1206的软件、固件、硬件或其组合。
在说明书和权利要求书中,可能使用了术语“逻辑”。如本文中所使用的,术语“逻辑”可包括,但不仅限于,硬件、固件、软件或者其各种组合。逻辑的示例包括集成电路、专用集成电路、模拟电路、数字电路、编程逻辑设备、包括指令的存储器设备等。在某些实施例中,硬件设备可包括晶体管和/或门控,并潜在地包括其他电路组件。
在说明书和权利要求书中,可使用术语“耦合的”和“连接的”及其衍生词。应当理解,这些术语并不旨在作为彼此的同义词。相反,在具体实施例中,“连接的”用于指示两个或更多个要素彼此直接物理或电接触。“耦合的”可表示两个或更多个元件直接物理或电接触。然而,“耦合的”也可表示两个或更多个元件并未彼此直接接触,但是仍然彼此协作、彼此相互作用。在附图中,箭头表示耦合,双向箭头表示双向耦合。
术语“和/或”可能已被使用。如本文中所使用的,术语“和/或”意指一个或其他或两者(例如,A和/或B意指A或B或者A和B两者)。
在以上描述中,为解释起见,阐明了众多具体细节以提供对本发明的实施例的透彻理解。然而,将对本领域技术人员明显的是,没有这些具体细节中的一些也可实践一个或多个其他实施例。所描述的具体实施例不是为了限制本发明而是为了说明本发明。本发明的范围不是由所提供的具体示例确定,而是仅由所附权利要求确定。在附图中显示且在说明书中描述的关系的所有等效关系都被涵盖在本发明的实施例内。在其它实例中,以方框图形式而非以细节地示出了公知的电路、结构、设备和操作以避免使说明书的理解变得晦涩。在认为适宜之处,附图标记或附图标记的结尾部分在诸附图当中被重复以指示可选地具有类似特性或相同特征的对应或类似的要素,除非以其他方式来指定或显而易见。
已描述了各种操作和方法。已经以流程图方式以相对基础的方式对一些方法进行了描述,但这些操作可选择地被添加至这些方法和/或从这些方法中移去。另外,尽管流程图示出根据示例性实施例的操作的特定顺序,但要理解该特定顺序是示例性的。替代实施例可选择地以不同顺序执行操作、合并某些操作、重叠某些操作,等等。可对这些方法作出和构想出许多修正和调整。
还应当理解,贯穿说明书全文的对“一个实施例”、“一实施例”或“一个或多个实施例”的引用例如表示特定特征可包含在本发明实施例的实践中。类似地,应当理解,在本说明书中,为了使本公开变得流畅并帮助理解各个创新性方面,各个特征有时被一起编组在单个实施例、附图或其描述中。然而,该公开方法不应被解释成反映本发明需要比每项权利要求中所明确记载的更多特征的意图。相反,如随附的权利要求反映的,各创新性方面可体现于比单个所公开的实施例的全部特征更少的特征。因此,所附权利要求因此被明确纳入该说明书中,每一项权利要求独自作为本发明单独的实施例。
Claims (24)
1.一种处理器,包括:
至少一个较低处理能力且较低功耗物理计算元件;
至少一个较高处理能力且较高功耗物理计算元件;
所述处理器的迁移性能受益评估逻辑,用于评估工作负荷从所述至少一个较低处理能力且较低功耗的物理计算元件向至少一个较高处理能力且较高功耗的物理计算元件的迁移的性能受益,并基于所述评估的性能受益,判断是否允许所述迁移;
所述处理器的可用的能量和热预算评估逻辑,用于评估所述处理器的可用的能量和热预算,并且如果所述迁移在所述可用的能量和热预算内,则判断允许所述迁移,而如果所述迁移不在所述可用的能量和热预算内,则不允许所述迁移;以及
当由所述迁移性能受益评估逻辑和可用的能量和热预算评估逻辑两者都允许时,所述处理器的工作负荷迁移逻辑执行所述工作负荷的所述迁移。
2.如权利要求1所述的处理器,其特征在于,所述至少一个较低处理能力且较低功耗的物理计算元件包括较小的核,而所述至少一个较高处理能力且较高功耗的物理计算元件包括较大的核。
3.如权利要求1所述的处理器,其特征在于,所述工作负荷迁移逻辑将对调度从操作系统、虚拟机监视器以及微内核中选择的工作负荷的软件透明地迁移所述工作负荷。
4.如权利要求1所述的处理器,其特征在于,所述迁移性能受益评估逻辑将基于从软件接收到对所述工作负荷的最高性能状态的请求,评估所述迁移的所述性能受益。
5.如权利要求1所述的处理器,其特征在于,所述迁移性能受益评估逻辑包括可缩放性逻辑,用于评估所述工作负荷向所述较高处理能力且较高功耗的物理计算元件的迁移的可缩放性。
6.如权利要求5所述的处理器,其特征在于,所述可缩放性逻辑将至少部分地基于当在所述至少一个较低处理能力且较低功耗的物理计算元件上执行所述工作负荷时将发生的不同类型的事件的计数来评估所述可缩放性。
7.如权利要求1所述的处理器,其特征在于,所述迁移性能受益评估逻辑包括利用率评估逻辑,用于在执行所述工作负荷时评估所述至少一个较低处理能力且较低功耗的物理计算元件的利用率。
8.如权利要求1所述的处理器,其特征在于,所述可用的能量和热预算评估逻辑将评估在所述迁移之后所述处理器的所述可用的能量和热预算是否准许所述工作负荷在所述至少一个较高处理能力且较高功耗的物理计算元件上执行达最小停留时间。
9.如权利要求1所述的处理器,其特征在于,所述处理器将向软件暴露多个虚拟核,并对所述软件透明地将在所述虚拟核上调度的工作负荷重新映射到物理核。
10.如权利要求1所述的处理器,其特征在于,所述工作负荷迁移逻辑包括所述处理器的硬件和固件中的至少一个。
11.一种方法,包括:
评估工作负荷从至少一个较低处理能力且较低功耗的物理计算元件向至少一个较高处理能力且较高功耗的物理计算元件的迁移的性能受益;
评估所述工作负荷的所述迁移是否在可用的能量和热预算内;
基于所述评估的性能受益,判断允许所述迁移,并判断所述迁移在所述可用的能量和热预算内;
利用处理器的逻辑,将所述工作负荷从所述至少一个较低处理能力且较低功耗的物理计算元件向所述至少一个较高处理能力且较高功耗的物理计算元件迁移。
12.如权利要求11所述的方法,其特征在于,迁移包括将所述工作负荷从较小核迁移到较大的核。
13.如权利要求11所述的方法,其特征在于,迁移包括将对调度从操作系统、虚拟机监视器以及微内核中选择的工作负荷的软件透明地迁移所述工作负荷。
14.如权利要求11所述的方法,其特征在于,评估所述性能受益至少部分地基于从软件接收到对所述工作负荷的最高性能状态的请求。
15.如权利要求11所述的方法,其特征在于,评估所述性能受益至少部分地基于当执行所述工作负荷时所述至少一个较低处理能力且较低功耗的物理计算元件的利用率。
16.如权利要求11所述的方法,其特征在于,评估所述性能受益至少部分地基于评估所述工作负荷向所述较高处理能力且较高功耗的物理计算元件的所述迁移的可缩放性。
17.如权利要求16所述的方法,进一步包括当所述工作负荷在所述至少一个较低处理能力且较低功耗的物理计算元件上正在被执行时对发生的不同类型的事件进行计数,其中所述对所述可缩放性的评估至少部分地基于所述不同类型的事件的计数。
18.如权利要求11所述的方法,其特征在于,评估所述性能受益基于:从软件接收到对所述工作负荷的最高性能状态的请求;
当执行所述工作负荷时计算元件的利用率;以及
对所述工作负荷从所述较低处理能力的计算元件到所述较高处理能力的计算元件的可缩放性的估计。
19.如权利要求11所述的方法,其特征在于,评估所述迁移是否在所述可用的能量和热预算内包括评估在所述可用的能量和热预算内,在所述迁移之后所述工作负荷是否可以在所述至少一个较高处理能力且较高功耗的物理计算元件上执行达最小停留时间。
20.如权利要求11所述的方法,进一步包括由所述处理器向软件暴露多个虚拟核,其中迁移包括利用所述处理器的所述逻辑,将所述工作负荷从最初被映射到虚拟核的较小物理核重新映射到较大的物理核,由软件在所述虚拟核上调度所述工作负荷。
21.如权利要求11所述的方法,其特征在于,利用所述处理器的硬件和固件中的至少一个,执行所述迁移所述工作负荷。
22.一种系统,包括:
处理器,所述处理器包括:
至少一个较小核;
至少一个较大的核;
所述处理器的迁移性能受益评估逻辑,用于评估线程从所述至少一个较小核向至少一个较大的核迁移的性能受益,并基于所述评估的性能受益,判断是否允许所述迁移;
所述处理器的可用的能量和热预算评估逻辑,用于评估所述处理器的可用的能量和热预算,并且如果所述迁移在所述可用的能量和热预算内,则判断允许所述迁移;以及
当由所述迁移性能受益评估逻辑和可用的能量和热预算评估逻辑两者都允许时,所述处理器的迁移逻辑执行所述线程的所述迁移,其中所述迁移逻辑将对软件透明地迁移所述线程;以及
与所述处理器耦合的动态随机存取存储器。
23.如权利要求22所述的系统,其特征在于,所述迁移性能受益评估逻辑包括当执行所述工作负荷时评估所述至少一个较小核的利用率的利用率评估逻辑,以及,其中所述迁移逻辑包括所述处理器的硬件和固件中的至少一个。
24.如权利要求23所述的系统,其特征在于,所述迁移性能受益评估逻辑包括评估所述线程向所述较大的核的迁移的可缩放性的可缩放性逻辑。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/730,800 | 2012-12-28 | ||
US13/730,800 US10162687B2 (en) | 2012-12-28 | 2012-12-28 | Selective migration of workloads between heterogeneous compute elements based on evaluation of migration performance benefit and available energy and thermal budgets |
PCT/US2013/047706 WO2014105175A1 (en) | 2012-12-28 | 2013-06-25 | High dynamic range software-transparent heterogeneous computing element processors, methods, and systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104969182A true CN104969182A (zh) | 2015-10-07 |
Family
ID=51018682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380059052.XA Pending CN104969182A (zh) | 2012-12-28 | 2013-06-25 | 高动态范围软件-透明异构计算元件处理器、方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10162687B2 (zh) |
CN (1) | CN104969182A (zh) |
WO (1) | WO2014105175A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829512A (zh) * | 2018-05-09 | 2018-11-16 | 济南浪潮高新科技投资发展有限公司 | 一种云中心硬件加速计算力的分配方法、系统和云中心 |
CN110431528A (zh) * | 2017-03-23 | 2019-11-08 | 大众汽车有限公司 | 用于在输入集合与输出集合的联结中确定整数缩放的值的方法和计算机程序产品 |
CN110659067A (zh) * | 2017-06-20 | 2020-01-07 | 畅想芯科有限公司 | 非对称多核异构并行处理系统 |
CN111381945A (zh) * | 2018-12-29 | 2020-07-07 | 华为技术有限公司 | 任务迁移方法及电子设备 |
CN111831414A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 线程迁移方法、装置、存储介质及电子设备 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10162687B2 (en) | 2012-12-28 | 2018-12-25 | Intel Corporation | Selective migration of workloads between heterogeneous compute elements based on evaluation of migration performance benefit and available energy and thermal budgets |
US10423216B2 (en) * | 2013-03-26 | 2019-09-24 | Via Technologies, Inc. | Asymmetric multi-core processor with native switching mechanism |
US9342136B2 (en) * | 2013-12-28 | 2016-05-17 | Samsung Electronics Co., Ltd. | Dynamic thermal budget allocation for multi-processor systems |
US9652298B2 (en) * | 2014-01-29 | 2017-05-16 | Vmware, Inc. | Power-aware scheduling |
US10061233B2 (en) * | 2014-12-09 | 2018-08-28 | International Business Machines Corporation | Computer system backup performance optimization through performance analytics |
US9939834B2 (en) | 2014-12-24 | 2018-04-10 | Intel Corporation | Control of power consumption |
US20160187395A1 (en) * | 2014-12-24 | 2016-06-30 | Intel Corporation | Forecast for demand of energy |
US9588823B2 (en) | 2014-12-24 | 2017-03-07 | Intel Corporation | Adjustment of execution of tasks |
US20180217875A1 (en) * | 2016-02-17 | 2018-08-02 | Hitachi, Ltd. | Data processing system and data processing method |
KR20170102726A (ko) * | 2016-03-02 | 2017-09-12 | 한국전자통신연구원 | 이종 컴퓨팅 방법 |
US10996737B2 (en) | 2016-03-31 | 2021-05-04 | Intel Corporation | Method and apparatus to improve energy efficiency of parallel tasks |
JP2018092551A (ja) * | 2016-12-07 | 2018-06-14 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
US10282226B2 (en) | 2016-12-20 | 2019-05-07 | Vmware, Inc. | Optimizing host CPU usage based on virtual machine guest OS power and performance management |
US10235178B2 (en) * | 2017-06-02 | 2019-03-19 | Microsoft Technology Licensing, Llc | Performance scaling for binary translation |
US11586472B2 (en) * | 2019-12-10 | 2023-02-21 | Advanced Micro Devices, Inc. | Method of task transition between heterogenous processors |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101076770A (zh) * | 2004-09-28 | 2007-11-21 | 英特尔公司 | 根据可用并行数目改变每条指令能量的方法和设备 |
US20080222435A1 (en) * | 2007-03-05 | 2008-09-11 | Joseph Edward Bolan | Power management in a power-constrained processing system |
CN101464813A (zh) * | 2007-12-19 | 2009-06-24 | 国际商业机器公司 | 用于多核处理器上的自动工作量分配的系统和方法 |
US20100268912A1 (en) * | 2009-04-21 | 2010-10-21 | Thomas Martin Conte | Thread mapping in multi-core processors |
CN102387024A (zh) * | 2010-09-06 | 2012-03-21 | 联想(北京)有限公司 | 功耗控制方法、管理节点及数据处理中心 |
CN102695998A (zh) * | 2009-12-16 | 2012-09-26 | 高通股份有限公司 | 用于在虚拟化系统中控制中央处理单元功率的系统和方法 |
CN102770847A (zh) * | 2010-02-26 | 2012-11-07 | 国际商业机器公司 | 优化数据中心内的功耗 |
CN102782671A (zh) * | 2010-03-01 | 2012-11-14 | Arm有限公司 | 用于在第一和第二处理电路间切换工作量的数据处理装置和方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8374730B2 (en) * | 2005-08-25 | 2013-02-12 | Apple Inc. | Methods and apparatuses for dynamic thermal control |
US8028295B2 (en) * | 2005-09-30 | 2011-09-27 | Intel Corporation | Apparatus, system, and method for persistent user-level thread |
US8813080B2 (en) | 2007-06-28 | 2014-08-19 | Intel Corporation | System and method to optimize OS scheduling decisions for power savings based on temporal characteristics of the scheduled entity and system workload |
US8788986B2 (en) | 2010-11-22 | 2014-07-22 | Ca, Inc. | System and method for capacity planning for systems with multithreaded multicore multiprocessor resources |
US8284205B2 (en) * | 2007-10-24 | 2012-10-09 | Apple Inc. | Methods and apparatuses for load balancing between multiple processing units |
US7934108B2 (en) * | 2007-12-18 | 2011-04-26 | Dell Products, Lp | System and method to identify power savings |
KR20110007205A (ko) | 2008-04-21 | 2011-01-21 | 어댑티브 컴퓨팅 엔터프라이즈 인코포레이티드 | 컴퓨트 환경에서 에너지 소비를 관리하기 위한 시스템 및 방법 |
US20090271646A1 (en) * | 2008-04-24 | 2009-10-29 | Vanish Talwar | Power Management Using Clustering In A Multicore System |
US8214829B2 (en) * | 2009-01-15 | 2012-07-03 | International Business Machines Corporation | Techniques for placing applications in heterogeneous virtualized systems while minimizing power and migration cost |
US8276142B2 (en) * | 2009-10-09 | 2012-09-25 | Intel Corporation | Hardware support for thread scheduling on multi-core processors |
US8793686B2 (en) * | 2011-06-08 | 2014-07-29 | Microsoft Corporation | Operating system decoupled heterogeneous computing |
US8874941B2 (en) | 2011-06-14 | 2014-10-28 | Utah State University | Apparatus and method for designing an architecturally homogeneous power-performance heterogeneous multicore processor using simulated annealing optimization |
US20130160003A1 (en) * | 2011-12-19 | 2013-06-20 | Vmware, Inc. | Managing resource utilization within a cluster of computing devices |
US10162687B2 (en) | 2012-12-28 | 2018-12-25 | Intel Corporation | Selective migration of workloads between heterogeneous compute elements based on evaluation of migration performance benefit and available energy and thermal budgets |
US9329900B2 (en) | 2012-12-28 | 2016-05-03 | Intel Corporation | Hetergeneous processor apparatus and method |
-
2012
- 2012-12-28 US US13/730,800 patent/US10162687B2/en not_active Expired - Fee Related
-
2013
- 2013-06-25 CN CN201380059052.XA patent/CN104969182A/zh active Pending
- 2013-06-25 WO PCT/US2013/047706 patent/WO2014105175A1/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101076770A (zh) * | 2004-09-28 | 2007-11-21 | 英特尔公司 | 根据可用并行数目改变每条指令能量的方法和设备 |
US20080222435A1 (en) * | 2007-03-05 | 2008-09-11 | Joseph Edward Bolan | Power management in a power-constrained processing system |
CN101464813A (zh) * | 2007-12-19 | 2009-06-24 | 国际商业机器公司 | 用于多核处理器上的自动工作量分配的系统和方法 |
US20100268912A1 (en) * | 2009-04-21 | 2010-10-21 | Thomas Martin Conte | Thread mapping in multi-core processors |
CN102695998A (zh) * | 2009-12-16 | 2012-09-26 | 高通股份有限公司 | 用于在虚拟化系统中控制中央处理单元功率的系统和方法 |
CN102770847A (zh) * | 2010-02-26 | 2012-11-07 | 国际商业机器公司 | 优化数据中心内的功耗 |
CN102782671A (zh) * | 2010-03-01 | 2012-11-14 | Arm有限公司 | 用于在第一和第二处理电路间切换工作量的数据处理装置和方法 |
CN102387024A (zh) * | 2010-09-06 | 2012-03-21 | 联想(北京)有限公司 | 功耗控制方法、管理节点及数据处理中心 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110431528A (zh) * | 2017-03-23 | 2019-11-08 | 大众汽车有限公司 | 用于在输入集合与输出集合的联结中确定整数缩放的值的方法和计算机程序产品 |
CN110431528B (zh) * | 2017-03-23 | 2023-11-28 | 大众汽车有限公司 | 在输入集合与输出集合的联结中确定整数缩放的值的方法 |
CN110659067A (zh) * | 2017-06-20 | 2020-01-07 | 畅想芯科有限公司 | 非对称多核异构并行处理系统 |
CN108829512A (zh) * | 2018-05-09 | 2018-11-16 | 济南浪潮高新科技投资发展有限公司 | 一种云中心硬件加速计算力的分配方法、系统和云中心 |
CN108829512B (zh) * | 2018-05-09 | 2021-08-24 | 山东浪潮科学研究院有限公司 | 一种云中心硬件加速计算力的分配方法、系统和云中心 |
CN111381945A (zh) * | 2018-12-29 | 2020-07-07 | 华为技术有限公司 | 任务迁移方法及电子设备 |
CN111381945B (zh) * | 2018-12-29 | 2024-02-09 | 华为技术有限公司 | 任务迁移方法及电子设备 |
CN111831414A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 线程迁移方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US10162687B2 (en) | 2018-12-25 |
US20140189301A1 (en) | 2014-07-03 |
WO2014105175A1 (en) | 2014-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104969182A (zh) | 高动态范围软件-透明异构计算元件处理器、方法及系统 | |
US10963263B2 (en) | Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions | |
CN105144082A (zh) | 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择 | |
CN105051678B (zh) | 异构处理器装置和方法 | |
CN104115093B (zh) | 包括多个处理元件之间的功率和性能平衡的用于能效和节能的方法、装置和系统 | |
CN105103122B (zh) | 异构处理器装置和方法 | |
CN104011624B (zh) | 包括设备中自主的基于硬件的深度掉电的用于能效和节能的方法、装置和系统 | |
US20170286302A1 (en) | Hardware apparatuses and methods for memory performance monitoring | |
US11436118B2 (en) | Apparatus and method for adaptively scheduling work on heterogeneous processing resources | |
CN104937568B (zh) | 用于多页尺寸转换后备缓冲器(tlb)的装置和方法 | |
CN104011621A (zh) | 包括增强的基于温度的电压控制的用于能效和节能的方法、装置和系统 | |
CN104919432A (zh) | 用于将多个位向左移并将多个1拉入较低有效位的指令 | |
CN105027137B (zh) | 用于针对增强型安全检查的页走查扩展的装置和方法 | |
CN104969178A (zh) | 用于实现便笺式存储器的装置和方法 | |
CN104246694A (zh) | 聚集页错误信令和处理 | |
CN105264489A (zh) | 访问作为多个较小寄存器或组合的较大寄存器的寄存器组的处理器、方法和系统 | |
US11531562B2 (en) | Systems, methods, and apparatuses for resource monitoring | |
CN104246692A (zh) | 用于实时指令跟踪的系统和方法 | |
CN104025027A (zh) | 结构访问处理器、方法、系统和指令 | |
CN109661656A (zh) | 用于利用条件所有权请求的智能存储操作的方法和装置 | |
US11886918B2 (en) | Apparatus and method for dynamic control of microprocessor configuration | |
Wang et al. | Gpu register packing: Dynamically exploiting narrow-width operands to improve performance | |
EP3885921A1 (en) | Apparatuses, methods, and systems for dynamic bypassing of last level cache | |
Candel et al. | Improving GPU Cache Hierarchy Performance with a Fetch and Replacement Cache | |
Ahmed et al. | Multiprocessors and cache memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151007 |