异构多处理器计算平台中的应用调度的制作方法

文档序号:6361847阅读:183来源:国知局
专利名称:异构多处理器计算平台中的应用调度的制作方法
技术领域
本公开总体上涉及电子学领域。更特别地,本发明的一个实施例涉及用于调度异构多处理器计算平台中的应用的技术。
背景技术
为了改进性能,一些计算系统包括多个处理器。然而,多处理器计算系统的缩放受到功率约束限制。即,随着更多处理器被添加至系统,功率消耗增加。此外,附加功率消耗生成更多热。因此,热和功率要求可能限制多处理器计算系统的缩放。


参照附图来提供详细描述。在附图中,附图标记的最左侧的(一个或多个)数字标识该附图标记首次出现的图。在不同图中使用相同附图标记指示相似或相同的项目。图1、5和6示出可以被利用以实施本文讨论的各种实施例的计算系统的实施例的框图。图2示出根据一个实施例的计算系统的处理器核心和其他部件的部分的框图。图3-4示出根据一些实施例的流程图。
具体实施例方式在下列描述中,阐述了许多特定细节以便提供对各种实施例的透彻理解。然而,可以在没有这些特定细节的情况下实践本发明的各种实施例。在其他实例中,公知的方法、过程、部件和电路未被详细地描述以免模糊本发明的特定实施例。此外,可以使用各种手段(例如集成半导体电路(“硬件”)、被组织成一个或多个程序的计算机可读指令(“软件”)、或者硬件和软件的某种组合)来执行本发明的实施例的各种方面。为了本公开的目的,对“逻辑”的引用应当是指硬件、软件、或其某种组合。此外,如本文所讨论的,对“指令”和“微操作”(UOP)的使用是可互换的。随着芯片多处理器(CMP)系统变得普遍(例如对于服务器和客户端平台来说),异构CMP开始赢得势头。例如,较小处理器核心可以提供更好的性能/功率优势。因此,将较小处理器核心与较大处理器核心一起添加可以是有吸引力的。如本文所讨论的,异构CMP包含在性能、面积和/或功率耗散方面不同的核心的集合。这种平台提供下述机会:即允许计算资源与各种应用的更好映射,使得在一些实施例中可以同时实现性能和功率效率。然而,在异构CMP平台设计中的关键挑战之一是对性能和/或功率效率进行优化的应用调度(即,将应用映射至多个处理器核心)。为此,一个实施例涉及动态地调度异构核心当中的应用(例如在单个集成电路(IC)芯片/管芯上)。在一个实施例中,可以使用两个部件来调度应用。第一,可以提供处理器核心建模预测启发式法。第二,可以使用调度逻辑以基于所述核心建模预测启发式法来调度用于异构处理器核心的应用。可以在具有性能状态设置的任一类型的处理器(例如参照图1和5-6讨论的处理器)中使用本文讨论的技术。更特别地,图1示出根据本发明的一个实施例的计算系统100的框图。系统100可以包括一个或多个处理器102-1至102-N (本文总体上称为“多个处理器102”或“处理器102”)。多个处理器102可以经由互连网络或总线104进行通信。每个处理器可以包括各种部件,为了清楚,仅参照处理器102-1讨论这些部件中的一些。因此,剩余处理器102-2至102-N中的每一个可以包括参照处理器102-1讨论的相同或相似部件。在一个实施例中,处理器102-1可以包括一个或多个处理器核心106-1至106-M(本文称为“多个核心106”或者更一般地称为“核心106”)、共享高速缓存108、和/或路由器110。可以在单个集成电路(IC)芯片上实施多个处理器核心106。此外,该芯片可以包括一个或多个共享和/或专用高速缓存(例如高速缓存108)、总线或互连(例如总线或互连网络112)、存储控制器(例如参照图5和6讨论的那些存储控制器)、或者其他部件。此外,多个核心106可以是异构的(例如具有不同的大小、性能特性、功率消耗特性等等,如本文所讨论的)。在一个实施例中,路由器110可以被用来在处理器102-1和/或系统100的各种部件之间通信。此外,处理器102-1可以包括多于一个路由器110。此外,大量路由器(110)可以进行通信以实现在处理器102-1内部或外部的各种部件之间的数据路由。共享高速缓存108可以存储由处理器102-1的一个或多个部件(例如多个核心106)利用的数据(例如包括指令)。例如,共享高速缓存108可以在逻辑上对在存储器114中存储的数据进行高速缓存,以供处理器102的部件更快速访问。在一个实施例中,高速缓存108可以包括中级高速缓存(例如2级(L2)、3级(L3)、4级(L4)、或高速缓存的其他级)、最后一级高速缓存(LLC)、和/或其组合。此外,处理器102-1的各种部件可以直接地、通过总线(例如总线112)和/或存储控制器或集线器来与共享高速缓存108通信。如图1中所示,在一些实施例中,多个核心106中的一个或多个可以包括I级(LI)和/或2级(L2)高速缓存(116-1)(本文总体上称为“L1/L2高速缓存116”)。LI和/或L2高速缓存116在各种实施例中可以是专用的或共享的。在一个实施例中,如下面将参照图2-4进一步讨论的,多个核心中的每一个可以包括帮助将应用分配给系统中的各种处理器核心的逻辑120。例如,可以基于在(一个或多个)计数器122 (例如指示系统中的一个或多个其他核心的性能的(一个或多个)性能计数器)中存储的信息来(例如由操作系统(OS))分配应用。还可以基于可以被用来编索引至表(例如性能历史表(PHT) 124-1)中的进程标识符(ID)来(例如由OS)分配应用。该表可以被存储在共享存储器(例如存储器114和/或共享高速缓存108)中或者被存储在处理器102或核心106中的专用存储设备(例如专用高速缓存(例如L1/L2高速缓存116))中(例如PHT124-1)。该表可以在调度应用时将信息/提示提供给操作系统(OS),例如如下面将参照图2-4进一步讨论的。在一些实施例中,OS和应用可以被存储在存储器114 (或者图5的存储器512和图6的610/612)中。图2示出根据本发明的一个实施例的计算系统的处理器核心106和其他部件的部分的框图。在一个实施例中,图2中所示的箭头示出在整个核心106中指令的流向。可以在单个集成电路芯片(或管芯)上实施一个或多个处理器核心(例如处理器核心106),例如参照图1所讨论的。此外,芯片可以包括一个或多个共享和/或专用高速缓存(例如图1的高速缓存106和108)、互连(例如图1的互连104和/或112)、逻辑120、(一个或多个)计数器122、存储控制器、或其他部件。如图2中所示,处理器核心106可以包括取指令(包括具有条件分支的指令)以用于由核心106执行的取单元202。可以从任何存储设备(例如存储器114和/或参照图4和5讨论的存储器设备)中取指令。核心106还可以包括对所取的指令进行解码的解码单元204。例如,解码单元204可以将所取的指令解码成多个uop (微操作)。另外,核心106可以包括调度单元206。调度单元206可以执行与存储经解码的指令(例如从解码单元204接收的)相关联的各种操作,直到指令为分派做好准备,例如直到经解码的指令的所有源值变得可用。在一个实施例中,调度单元206可以将经解码的指令调度和/或发出(issue)(或分派)至执行单元208以供执行。在指令被解码(例如由解码单元204)和分派(例如由调度单元206)之后,执行单元208可以执行所分派的指令。在一个实施例中,执行单元208可以包括多于一个执行单元。执行单元208还可以执行各种算术运算(例如加法、减法、乘法、和/或除法),并且可以包括一个或多个算术逻辑单元(ALU)。在一个实施例中,协处理器(未示出)可以结合执行单元208来执行各种算术运算。此外,执行单元208可以乱序执行指令。因此,在一个实施例中处理器核心106可以是乱序处理器核心。核心106还可以包括引退(retirement)单元210。在所执行的指令被提交之后,引退单元210可以引退所执行的指令。在一个实施例中,所执行的指令的引退可以导致从指令的执行中提交处理器状态、解除分配由指令所使用的物理寄存器等等。核心106还可以包括经由一个或多个总线(例如总线104和/或112)实现处理器核心106的部件与其他部件(例如参照图1讨论的部件)之间的通信的总线单元214。核心106还可以包括存储由核心106的各种部件(包括逻辑120,如参照图1和3-4所讨论的)访问的数据的一个或多个计数器122。此外,在一些实施例中,逻辑120不仅跟踪应用的性能,而且预测在应用要是在系统中的另一核心上执行的情况下应用的执行和/或功率消耗性能(例如基于计数器122中存储的值)。可以将该信息 提供给OS,该OS可以基于各种阈值(例如功率、性能、能量、其组合等等)来执行调度。例如,OS和/或逻辑120可以将所考虑的多个处理器核心的各种执行或功率消耗性能数据进行比较,并且关于哪个核心将提供更好的执行或功率消耗性能进行确定(基于本文讨论的各种阈值)。根据一个实施例,可以使用基于签名的方法。例如,可以在系统中的一个或多个核心上执行每个应用,并且可以将应用性能统计存储在性能历史表(PHT)中。性能统计可以包括CPI (每指令周期)、MPI (每指令缺失(miss))等等。例如,如样本表I中所示,每个表条目可以具有三个或更多个字段。第一个字段指示进程ID,第二个字段用于存储应用在大的核心上执行时的CPI,以及最后一个字段存储应用在小的核心上执行时的性能。每当应用被上下文切换至其他核心时,逻辑120都可以获得新信息并更新PHT 124。
_ID|大的核心CPI I小的核心CPI
101107981.35—
101207731.44—
2013 |l.19|l.31—
表1-样本性能历史表(PHT)。PHT 124的大小可以相当小。例如,如果仅使用CPI,则每条目12字节是存储历史信息所需的存储器。每当应用被调度以运行时,还可以将PHT 124存储在应用的进程控制块(PCB)中和/或可以将PHT 124加载至另一存储器(例如PHT 124、高速缓存106、存储器114、高速缓存108等等)中。该方法可以被扩展至进程之外,并且可以被用于进程内的各种执占。一旦设置了 PHT,每当应用被调度以运行时,逻辑120都从PHT中读取信息,并基于预定义度量(例如功率/性能等等)、针对最优调度策略将提示提供给OS,如图3中所示。参照图3,根据一个实施例,示出基于签名的核心建模预测启发式方法的流程图。在一些实施例中,可以利用参照图1-2和5-6讨论的各种部件来执行参照图3讨论的操作中的一个或多个。参照图1-3,在操作302处,在上下文切换时,加载应用(例如从进程控制块或另一位置,如本文所讨论的)。在操作304处,逻辑120从PHT中读取信息。在操作306处,基于PHT信息来确定进程对大的或小的处理器核心来说是否最优(例如出于性能或功率消耗目的)。然后,在操作308处,将该信息发送至OS(例如,在一个实施例中基于如由逻辑120确定的功率消耗和/或性能考虑)。在操作310处,逻辑120收集另外的历史信息(例如基于在操作306处的最近确定)并更新PHT信息。参照图4,根据一个实施例,示出基于性能的核心建模预测启发式方法的流程图。在一些实施例中,可以利用参照图1-2和5-6讨论的各种部件来执行参照图4讨论的操作中的一个或多个。参照图1-2和4,在操作402处,在上下文切换时,加载应用(例如从进程控制块或另一位置,如本文所讨论的)。在操作404处,逻辑120读取在性能计数器(例如计数器122)中存储的值。在操作406处,基于性能计数器信息来确定进程对大的或小的处理器核心来说是否最优(例如出于性能或功率消耗目的)。然后,在操作408处,将该信息发送至OS (例如,在一个实施例中基于如由逻辑120确定的功率消耗和/或性能考虑)。在操作410处,逻辑120收集另外的历史信息(例如基于在操作406处的最近确定)并更新性能计数器(例如计数器122)。在基于性能计数器的方法中,根据一些实施例,可以使用动态模型,该动态模型可以有效地预测小的核心上的应用在大的核心上执行时的性能,以及反之亦然。该方法使用性能计数器(例如计数器122),并基于下列等式来预测性能:
小的核心中的周期=((大的核心中的周期-大的核心上的暂停(stall)周期)*小的核心的发出宽度/大的核心的发出宽度*倍增因子)+ (大的核心中的LI缺失*小的核心的LI缺失损失)+ (大的核心中的L2缺失*小的核心的L2缺失损失)。在一个实施例中,可以基于L2缺失和加载/存储指令的数目来凭经验导出倍增因子。在一些实施例中,大的核心可以具有与小的核心相比两倍的加载/存储单元数目。此夕卜,在一些实施中,由于缺少在一些工作负荷中观察到的存储级并行性,显著L2缺失应用可能不通过大的核心的乱序特性而受益。大的核心中的周期=((小的核心中的周期-小的核心上的暂停周期)*大的核心的发出宽度/小的核心的发出宽度)/(1 -暂停因子)。可以通过在大的核心上运行应用一次并收集暂停周期和总周期性能数据来导出暂停因子。此外,一些平台可以包括标识由于长延迟操作而引起的暂停(例如高速缓存缺失、浮点暂停等等)的各种性能计数器。当在逻辑120中使用时与其他计数器(例如引退的加载/存储指令、L2缺失等等)组合的这些暂停可以有助于预测应用在要是在另一核心上运行的情况下的性能。即使在平台中不具有特定存储暂停计数器,也可以使用平台中的其他暂停计数器来估计暂停。关于调度,一些实施例可以如下基于由逻辑120提供的性能信息将各种应用映射至大的和小的核心:(I)对于单个应用,如果大的与小的核心的性能比大于可编程值,那么在大的核心上调度应用;否则在小的核心上调度应用。该可编程值可以驻留在核心中,并且可以是基于各种功率/性能度量、使用MSR (机器状态寄存器)来写入的;(2)对于多个应用(例如需要调度的N个应用),基于其大的与小的核心的性能比来对应用进行排序。将顶部N/2个应用(例如具有最大增益的应用)调度至大的核心上,并且在小的核心上调度底部N/2个应用。在一些实施例中,可以使用下列计数器中的一个或多个(例如对于计数器122):
(1)核心时钟周期:该计数器对核心主动执行指令的周期的数目进行计数;
(2)引退的指令:该计数器对核心在给定时间样本期间引退的指令的数目进行计数;
(3)L2缺失:该计数器对缺失了 L2的存储器引用的数目进行计数;
(4)调度器暂停:该计数器对小的核心不能调度指令的周期的数目进行计数(该计数还可以基于小的核心中的L2缺失和L2缺失延迟的乘积而导出);
(5)资源暂停:该计数器对大的核心由于资源的不可用性而暂停(例如保留站、长延迟缺失等等)的周期的数目进行计数;和/或
(6)分支暂停:该计数器对由于分支误预测而丢失的周期的总数进行计数。图5示出根据本发明的一个实施例的计算系统500的框图。计算系统500可以包括经由互连网络(或总线)504进行通信的一个或多个中央处理单元(CPU) 502或处理器。多个处理器502可以包括通用处理器、网络处理器(其处理通过计算机网络503传送的数据)、或者其他类型的处理器(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC))。此外,多个处理器502可以具有单或多核心设计。具有多核心设计的多个处理器502可以将不同类型的处理器核心集成在相同集成电路(IC)管芯上。此外,具有多核心设计的多个处理器502可以被实施为对称或非对称多处理器。在一个实施例中,多个处理器502中的一个或多个可以与图1的多个处理器102相同或相似。例如,多个处理器502中的一个或多个可以包括参照图1-4讨论的多个核心106。此外,参照图1-4讨论的操作可以由系统500的一个或多个部件执行。芯片组506还可以与互连网络504进行通信。芯片组506可以包括存储控制集线器(MCH)508。MCH 508可以包括与存储器512 (其可以与图1的存储器114相同或相似)进行通信的存储控制器510。存储器512可以存储数据,包括可以由CPU 502或者在计算系统500中包括的任何其他设备执行的指令的序列。在本发明的一个实施例中,存储器512可以包括一个或多个易失性存储(或存储器)设备,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM (SDRAM)、静态RAM (SRAM)、或其他类型的存储设备。还可以利用非易失性存储器,例如硬盘。附加设备可以经由互连网络504进行通信,例如多个CPU和/或多个系统存储器。MCH 508还可以包括与显示设备516进行通信的图形接口 514。在本发明的一个实施例中,图形接口 514可以经由加速图形端口(AGP)来与显示设备516进行通信。在本发明的一个实施例中,显示器516 (例如平板显示器)可以通过例如信号转换器来与图形接口 514进行通信,所述信号转换器将存储设备(例如视频存储器或系统存储器)中存储的图像的数字表示转换成由显示器516解释并显示的显示信号。由显示设备产生的显示信号可以在被显示器516解释以及随后在显示器516上显示之前经过各种控制设备。集线器接口 518可以允许MCH 508和输入/输出控制集线器(ICH)520进行通信。ICH 520可以提供到与计算系统500进行通信的(一个或多个)1/0设备的接口。ICH 520可以通过外围桥(或控制器)524 (例如外围部件互连(PCI)桥、通用串行总线(USB)控制器、或者其他类型的外围桥或控制器)来与总线522进行通信。桥524可以提供CPU 502与外围设备之间的数据路径。可以利用其他类型的拓扑。此外,多个总线可以与ICH 520进行通信,例如通过多个桥或控制器。此外,在本发明的各种实施例中,与ICH 520进行通信的其他外围设备可以包括集成驱动电子器件(IDE)或(一个或多个)小型计算机系统接口(SCSI)硬盘驱动器、(一个或多个)USB端口、键盘、鼠标、(一个或多个)并行端口、(一个或多个)串行端口、(一个或多个)软盘驱动器、数字输出支持(例如数字视频接口(DVI ))、或者其他设备。总线522可以与音频设备526、一个或多个盘驱动器528、以及网络接口设备530(其与计算机网络503进行通信)进行通信。其他设备可以经由总线522进行通信。此外,在本发明的一些实施例中,各种部件(例如网络接口设备530)可以与MCH 508进行通信。另夕卜,可以将处理器502和MCH 508进行组合以形成单个芯片。此外,在本发明的其他实施例中可以将图形加速器516包括在MCH 508内。此外,计算系统500可以包括易失性和/或非易失性存储器(或存储装置)。例如,非易失性存储器可以包括下列中的一个或多个:只读存储器(ROM)、可编程ROM (PR0M)、可擦除 PROM (EPROM)、电 EPROM (EEPR0M)、盘驱动器(例如 528)、软盘、光盘 ROM (CD-ROM)、数字通用盘(DVD)、闪速存储器、磁光盘、或者能够存储电子数据(例如包括指令)的其他类型的非易失性机器可读介质。图6示出根据本发明的一个实施例的以点对点(PtP)配置来布置的计算系统600。特别地,图6示出下述系统,即在所述系统中处理器、存储器和输入/输出设备由多个点对点接口互连。参照图1-5讨论的操作可以由系统600的一个或多个部件执行。如图6中所示,系统600可以包括几个处理器,为了清楚,仅示出其中两个处理器602和604。处理器602和604中的每一个可以包括实现与存储器610和612的通信的本地存储控制器集线器(MCH)606和608。存储器610和/或612可以存储各种数据,例如参照图5的存储器512讨论的那些数据。在一个实施例中,处理器602和604可以是参照图5讨论的多个处理器502之一。处理器602和604可以分别使用PtP接口电路616和618、经由点对点(PtP)接口 614来交换数据。此外,处理器602和604中的每一个可以使用点对点接口电路626、628、630和632、经由各个PtP接口 622和624来与芯片组620交换数据。芯片组620还可以例如使用PtP接口电路637、经由图形接口 636来与图形电路634交换数据。可以在处理器602和604内提供本发明的至少一个实施例。例如,图1_5的核心106可以位于处理器602和604内。然而,本发明的其他实施例可以存在于图6的系统600内的其他电路、逻辑单元或设备中。此外,本发明的其他实施例可以分布在图6中所示的整个几个电路、逻辑单元或设备中。芯片组620可以使用PtP接口电路641来与总线640进行通信。总线640可以与一个或多个设备(例如总线桥642和I/O设备643)进行通信。经由总线644,总线桥642可以与诸如键盘/鼠标645、通信设备646 (例如调制解调器、网络接口设备、或者可以与计算机网络503进行通信的其他通信设备)、音频I/O设备647、和/或数据存储设备648之类的其他设备进行通信。数据存储设备648可以存储可以由处理器602和/或604执行的代码649。在本发明的各种实施例中,本文讨论的操作(例如参照图1-6)可以被实施为硬件(例如逻辑电路)、软件、固件、或其组合,其可以作为计算机程序产品而被提供,所述计算机程序产品例如包括其上存储有用来对计算机进行编程以执行本文讨论的进程的指令(或软件过程)的(例如非瞬时)机器可读或计算机可读介质。机器可读介质可以包括存储设备,例如参照图1-6讨论的那些存储设备。另外,这种计算机可读介质可以作为计算机程序产品而被下载,其中可以经由通信链路(例如总线、调制解调器或网络连接)、通过包含在载波或其他传播介质中的数据信号来将程序从远程计算机(例如服务器)传送至请求计算机(例如客户端)。在说明书中对“一个实施例”、“一个实施例”或“一些实施例”的引用意味着:结合所述(一个或多个)实施例描述的特定的特征、结构或特性可以被包括在至少一个实施中。说明书中各处出现的短语“在一个实施例中”可以都指代或者可以不都指代相同实施例。此外,在说明书和权利要求书中,可以使用术语“耦合”和“连接”及其派生词。在本发明的一些实施例中,“连接”可以被用来指示,两个或更多个元件彼此直接物理或电接触。“耦合”可能意味着,两个或更多个元件直接物理或电接触。然而,“耦合”还可能意味着,两个或更多个元件可以不彼此直接接触,但是仍然可以彼此协作或交互。因此,尽管已经以特定于结构特征和/或方法动作的语言描述了本发明的实施例,但是应当理解,所要求保护的主题可以不限于所描述的特定特征或动作。更确切地说,特定特征和动作被公开为实施所要求保护的主题的样本形式。
权利要求
1.一种处理器,包括: 存储单元,所述存储单元存储对应于所述处理器的多个处理器核心的性能的信息;以及 逻辑,所述逻辑基于所存储的信息来确定所述多个处理器核心中的第一处理器核心以执行应用,以及使得在所述第一处理器核心上针对执行而调度所述应用; 其中所述逻辑将数据传送至操作系统以使得在所述第一处理器核心上调度所述应用。
2.根据权利要求1所述的处理器,其中,响应于对上下文切换的检测,所述逻辑将数据传送至所述操作系统以使得在所述第一处理器核心上调度所述应用。
3.根据权利要求1所述的处理器,其中,所存储的对应于所述处理器的所述多个处理器核心的性能的信息包括执行性能数据或功率消耗性能数据。
4.根据权利要求1所述的处理器,其中,所述逻辑基于所收集的信息来更新所存储的信息。
5.根据权利要求1所述的处 理器,其中,所述逻辑预测所述应用在所述多个处理器核心中的至少一些上的执行或功率消耗性能。
6.根据权利要求1所述的处理器,其中,所述多个处理器核心是异构的。
7.根据权利要求1所述的处理器,其中,所述存储单元包括:共享存储器、专用高速缓存、共享高速缓存、或专用存储器。
8.根据权利要求1所述的处理器,其中,所存储的信息被存储在所述应用的进程控制块中。
9.根据权利要求1所述的处理器,其中,所述存储单元存储性能历史表(PHT)。
10.根据权利要求9所述的处理器,其中,所述PHT中的每个条目至少存储进程标识符以及对应于所述多个处理器核心的每指令多个周期。
11.根据权利要求1所述的处理器,其中,所述存储单元存储一个或多个性能计数器。
12.根据权利要求11所述的处理器,其中,所述一个或多个性能计数器包括:核心时钟周期、引退的指令、2级高速缓存缺失、调度器暂停、资源暂停、或分支暂停。
13.—种方法,包括: 存储对应于处理器的多个异构处理器核心的性能的信息; 基于所存储的信息来确定所述多个处理器核心中的第一处理器核心以执行应用;以及 响应于对应于所述第一处理器核心的数据向操作系统的传输,在所述第一处理器核心上针对执行而调度所述应用。
14.根据权利要求13所述的方法,其中,数据的所述传输响应于对上下文切换的检测。
15.根据权利要求13所述的方法,其中,所存储的对应于所述处理器的所述多个处理器核心的性能的信息包括执行性能数据或功率消耗性能数据。
16.根据权利要求13所述的方法,还包括:基于所收集的信息来更新所存储的信息。
17.根据权利要求13所述的方法,还包括:预测所述应用在所述多个处理器核心中的至少一些上的执行或功率消耗性能。
18.根据权利要求13所述的方法,其中,存储所述信息是在所述应用的进程控制块中。
19.根据权利要求13所述的方法,其中,所存储的信息被存储在下述中: 性能历史表(PHT),其中所述PHT中的每个条目至少存储进程标识符以及对应于所述多个处理器核心的每指令多个周期;或者 一个或多个性能计数器,其中所述一个或多个性能计数器包括:核心时钟周期、引退的指令、2级高速缓存缺失、调度器暂停、资源暂停、或分支暂停。
20.一种计算系统,包括: 处理器,所述处理器包括多个处理器核心;以及 存储单元,所述存储单元存储对应于所述处理器的所述多个处理器核心的性能的信息,其中所述多个处理器核心中的至少一个包括逻辑,所述逻辑基于所存储的信息来确定所述多个处理器核心中的第一处理器核心以执行应用,以及使得在所述第一处理器核心上针对执行而调度所述应用,其中响应于对上下文切换的检测,所述逻辑将数据传送至操作系统以使得在所述第一处理器核心上调度所述应用。
21.根据权利要求20所述的系统,其中,所存储的对应于所述处理器的所述多个处理器核心的性能的信息包括执行性能数据或功率消耗性能数据。
22.根据权利要求20所述的系统,其中,所述逻辑预测所述应用在所述多个处理器核心中的至少一些上的执行或功率消 耗性能。
23.根据权利要求20所述的系统,其中,所述多个处理器核心是异构的。
24.根据权利要求20所述的系统,其中,所述存储单元存储性能历史表(PHT),其中所述PHT中的每个条目至少存储进程标识符以及对应于所述多个处理器核心的每指令多个周期。
25.根据权利要求20所述的系统,其中,所述存储单元存储一个或多个性能计数器,其中所述一个或多个性能计数器包括:核心时钟周期、引退的指令、2级高速缓存缺失、调度器暂停、资源暂停、或分支暂停。
26.根据权利要求20所述的系统,还包括与处理器核心耦合的音频设备。
27.一种存储指令的计算机可读介质,所述指令在被处理器执行时使进程执行下述操作: 存储对应于处理器的多个异构处理器核心的性能的信息; 基于所存储的信息来确定所述多个处理器核心中的第一处理器核心以执行应用;以及 响应于对应于所述第一处理器核心的数据向操作系统的传输,在所述第一处理器核心上针对执行而调度所述应用。
28.根据权利要求27所述的计算机可读介质,其中,所述指令使得所述处理器响应于对上下文切换的检测而使得传输数据。
29.根据权利要求27所述的计算机可读介质,其中,所存储的对应于所述处理器的所述多个处理器核心的性能的信息包括执行性能数据或功率消耗性能数据。
30.根据权利要求27所述的计算机可读介质,其中,所述指令使得所述处理器预测所述应用在所述多个处理器核心中的至少一些上的执行或功率消耗性能。
全文摘要
调度在异构多处理器计算平台中的应用的方法和设备被描述。在一个实施例中,将与处理器的多个处理器核心的性能(例如执行性能和/或功率消耗性能)有关的信息存储在计数器和/或表中(并对该信息进行跟踪)。处理器中的逻辑基于所存储的信息来确定哪个处理器核心应当执行应用。还要求保护并公开了其他实施例。
文档编号G06F15/76GK103119580SQ201180046075
公开日2013年5月22日 申请日期2011年9月24日 优先权日2010年9月25日
发明者R.艾尔, S.斯里尼瓦桑, L.赵, R.G.伊利卡尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1