用于提高事件处理的涡轮加速性能的方法和装置的制作方法

文档序号:6428392阅读:131来源:国知局
专利名称:用于提高事件处理的涡轮加速性能的方法和装置的制作方法
技术领域
本发明的实施例涉及中断事件处理;更具体地,本发明的实施例涉及提高事件处理的性能。
背景技术
在多内核处理器中,控制处理内核以使用可用的功率余量来最大化性能是令人期望的。在不是所有的处理内核都必须用于处理特定的工作负荷的情况下,关闭空闲的内核并将功率引导到其他活动的内核。通常通过以更高的频率操作活动的内核来将活动的内核转换到涡轮加速模式(turbo mode)。多内核处理器中的任务和事件处理算法通常是伪随机的并且不考虑当内核操作于涡轮加速模式时的影响。因此,影响了系统的整体性能。


根据下面给出的详细描述以及本发明的各个实施例的附图可以更充分地理解本发明的实施例,然而,其不应被用于将本发明限制到特定的实施例,而只是用于解释和理解。图1示出了计算机系统的实施例,该计算机系统包括用于响应于中断事件来选择处理元件以执行任务的装置。图2是用于响应于中断事件来选择处理元件以执行任务的处理的一个实施例的流程图。图3说明了与本发明的一个实施例一起使用的计算机系统。图4说明了与本发明的一个实施例一起使用的点对点计算机系统。
具体实施例方式介绍了用于提高事件处理的性能的装置的实施例。在一个实施例中,装置包括多个处理元件和任务路由逻辑。如果处理元件中的至少一个处理元件处于涡轮加速模式,那么任务路由逻辑至少基于性能损失的比较来选择用于执行任务的处理元件。在以下描述中,阐述了大量细节以提供对本发明的实施例的更透彻的解释。然而, 对本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实施本发明的实施例。在其他示例中,以框图的形式而非细节的形式示出了公知的结构和设备,以避免模糊本发明的实施例。在其他示例中,没有详细地描述公知的部件或方法,例如,微处理器架构、虚拟机监视器、功率控制、时钟门控、以及已知逻辑的操作细节,以避免不必要地模糊本发明。
但是,应当牢记,所有这些以及类似的术语应与合适的物理量相关联,并且仅仅是应用到这些量的方便的标记。除非明确地声明,否则根据以下讨论显而易见的是,应该意识至IJ,贯穿本说明书的使用诸如“处理”或“计算”或“运算”或“确定”或“显示”等术语的讨论指代计算机系统或类似的电子计算设备的动作和处理过程,其对表示为计算机系统的寄存器和存储器内的物理(电子)量的数据进行操作,并将所述数据转换成类似地表示为计算机系统存储器或寄存器或其它这种信息存储、传输或显示设备内的物理量的其它数据。本发明的实施例还涉及用于执行本文中的操作的装置。可以针对需要的目的特别地构造一些装置,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。可以将这种计算机程序存储在计算机可读存储介质中,例如但不限于,任何类型的盘,其包括软盘、光盘、CD_R0M、DVD-R0M、以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、NVRAM、磁或光卡,或适合用于存储电子指令的任何类型的介质,并且每一个都耦合到计算机系统总线。本文描述的方法和装置用于选择用于事件处理的处理元件。更具体地说,参考多内核处理器计算机系统主要地讨论了选择用于事件处理的处理元件。然而,用于选择用于事件处理的处理元件的方法和装置并不限制于此,因为可以在任何集成电路设备或系统上或与任何集成电路设备或系统相关联地实现该方法和装置,所述集成电路设备或系统例如是蜂窝电话、个人数字助理、嵌入式控制器、移动平台、台式平台和服务器平台,以及结合任何类型的处理元件,例如内核、硬件线程、软件线程、或逻辑处理器、加速器内核、或其他处理资源。此外,选择用于事件处理的处理元件可以发生在任何硬件/软件环境中,例如操作系统或在硬件上执行的管理程序。MM介绍了用于提高事件处理的性能的装置的实施例。在一个实施例中,装置包括多个处理元件和任务路由逻辑。如果处理元件中的至少一个处理元件处于涡轮加速模式,那么任务路由逻辑至少基于性能损失的比较来选择用于执行任务的处理元件。图1示出了计算机系统的实施例,该计算机系统包括用于响应于事件来选择处理元件以执行任务的装置。没有示出许多相关的部件(例如总线和外围设备)以避免模糊本发明。参考图1,在一个实施例中,处理器160包括性能计算逻辑110、任务路由逻辑130、涡轮加速模式逻辑140、以及多个处理元件,例如处理元件131-134。在一个实施例中,性能计算逻辑还包括存储器111。在一个实施例中,处理元件包括线程、进程、上下文、逻辑处理器、硬件线程、内核、 加速器内核或共享对处理器160的其他共享资源(例如,预留单元、执行单元、更高层高速缓存、存储器等)的访问的任何处理元件。在一个实施例中,处理元件是线程单元,即,能够具有由软件线程独立地调度以用于执行的指令的元件。在一个实施例中,物理处理器是集成 电路,其包括任意数量的其他处理元件,例如内核或硬件线程。在一个实施例中,内核是位于集成电路上的能够针对另一个内核保持独立架构状态的逻辑。每一个独立地保持的架构状态与至少某些专用的执行资源相关联。在一个实施例中,硬件线程是位于集成电路上的能够针对另一个硬件线程保持独立架构状态的逻辑。 每一个独立地保持的硬件线程共享对执行资源的访问。在一些实施例中,可交换地使用内核和硬件线程。在一个实施例中,内核或硬件线程也被称为处理元件。
在一个实施例中,操作系统或管理软件将硬件线程、内核、或处理元件视为单独的逻辑处理器。软件程序能够在每一个逻辑处理器上单独地调度操作。此外,在一些实施例中,每一个内核包括用于执行多个软件线程的多个硬件线程。在一个实施例中,管 理程序(未示出)提供软件(例如,虚拟机)和硬件资源(例如,处理器160)之间的接口。在一个实施例中,管理程序对硬件进行抽象以使得多个虚拟机独立地并行运行。在一个实施例中,虚拟机提供程序的软件执行环境,所述程序例如是任务、用户级应用、客户机软件、操作系统、另一个虚拟机、虚拟机监视器、其他可执行代码、 或它们的任何组合。在一个实施例中,管理程序将硬件资源(例如,内核、硬件线程、处理元件)分配给不同的程序。在一个实施例中,计算机系统包括用于经由互连发送和接收信号的输入/输出 (I/O)缓冲器。互连的示例包括射电收发机逻辑(GTL) (Gunning Transceiver Logic)总线、GTL+总线、双倍数据速率(DDR)总线、泵式总线(pumped bus)、差分总线、高速缓存一致总线(cache coherent bus)、点对点总线、多点下传(multi-drop)总线或实现任何已知总线协议的其他已知互连。在一个实施例中,计算机系统(具体地说,处理器160)根据高级配置和电源接口 (ACPI)规范(参见,2006年10月10日发布的高级配置和电源接口规范3. Ob版)支持不同的功率状态(例如,C2-状态和C3-状态)。在一个实施例中,休眠状态(例如,C2-状态和C3-状态)也被称为空闲状态。在一个实施例中,处于空闲状态的处理元件被称为休眠内核、空闲内核或非活动内核。在一个实施例中,功率门控关闭对空闲处理元件的功率供应。 空闲处理元件必须被唤醒以便再次开始执行程序。在一个实施例中,涡轮加速模式逻辑140控制处理元件131-134以使得如果至少另一个处理元件保持空闲那么至少一个活动处理元件以更高的频率操作。因此,由活动处理元件使用可用的功率和热余量以增加或提高系统的整体性能。在一个实施例中,这种操作模式在本文中被称为涡轮加速模式。当处于涡轮加速模式时,涡轮加速模式逻辑140将一个或多个空闲处理元件的功率和热余量重新分配给一个或多个活动处理元件以增加一个或多个处于活动状态的处理元件的操作频率。在一个实施例中,使处理器转换到涡轮加速模式或从涡轮加速模式转换(例如, 转换到较高的性能水平或转换到较低性能水平)的因素在本文中被称为事件。在一个实施例中,事件是可重新路由到处理元件131-134的中断事件。在一个实施例中,处理器160响应于事件而执行一些对应的任务或服务。在一个实施例中,中断事件来自设备,例如,盘驱动器、网卡和输入/输出设备。在一个实施例中,性能计算逻辑110计算用于服务事件的性能损失。在一个实施例中,因为响应于处理事件而执行一个任务或若干任务,处理器160使用额外的时间来完成工作负荷。在一个实施例中,性能损失被表示为百分比。例如,如果工作负荷要花费IOms 来执行,那么10%的性能损失将使得工作负荷花费11. Ims (即,IOms/(1-0. 10))来完成。在一个实施例中,当处理器160处于涡轮加速模式时,任务路由逻辑130接收任务 101 (作为事件的结果)。例如,在一个实施例中,处理元件131处于涡轮加速模式,而处理元件132处于空闲模式。在一个实施例中,涡轮加速路由逻辑130基于与在不同的处理元件(无论是活动处理元件还是休眠处理元件)之间进行选择相关联的性能损失,来选择处理元件中的一个以完成任务101在一个实施例中,如果空闲处理元件被用来执行任务101,其性能损失在本文中被称为唤醒性能损失(WPL)。在一个实施例中,将活动处理元件(处于涡轮加速模式)转换到较低操作频率以使得功率被引导以唤醒休眠处理元件。在一个实施例中,性能计算逻辑基于与活动处理元件相关联的操作频率的降低和正由活动处理元件执行的程序的频率缩放因子,来确定WPL。普通技术人员将意识到,可以使用其他因子和组合来确定WPL。在一个实施例中,频率缩放因子是比率,其中,以该比率将频率增加(或降低)转换成针对特定工作负荷的性能增加(或降低)。例如,对于操作频率10%的增加导致性能 10%的增加的工作负荷,等价于缩放因子为1。例如,操作频率的降低导致0.75%的性能降低等价于缩放因子为0. 75。在一个实施例中,存储器111存储关于正在由活动处理元件执行的程序的频率缩放因子的信息。在一个实施例中,存储器111存储关于当活动处理元件从涡轮加速模式转变到其它模式时操作频率的降低的信息。在一个实施例中,这些信息由监视逻辑(未示出) 收集并且包括用于预测/估计当前值的平均历史值。在一个实施例中,如果活动处理元件被用来执行任务101,其性能损失在本文中被称为活动性能损失(APL)。在一个实施例中,性能计算逻辑110基于用于执行任务101(响应于事件)的处理时间的量和与正在由活动处理元件执行的程序相关联的使用值来确定 APL。在一个实施例中,基于用于服务事件的处理时间除以用于程序工作负荷的总的运行时间来确定APL。普通的技术人员将意识到,可以使用其他因子和组合来确定APL。在一个实施例中,存储器111存储关于用于处理事件的处理时间的量的信息。在一个实施例中,这些信息由监视逻辑(未示出)收集并且包括用于预测/估计当前值的平均历史值。在一个实施例中,监视逻辑还提供与正在由活动处理元件执行的程序相关联的使用值。在一个实施例中,如果处理器160处于涡轮加速模式,则任务路由逻辑130基于潜在的性能损失的比较来确定处理元件以服务事件。在一个实施例中,任务路由逻辑130基于来自涡轮加速模式逻辑140的信息来确定处理器160 (或处理元件131-134中的任意一个)是否处于涡轮加速模式中。在一个实施例中,如果WPL小于APL,那么任务路由逻辑130选择空闲处理元件来服务事件。否则,任务路由逻辑130将事件发送到活动处理元件(处于涡轮加速模式中)。在一个实施例中,处理元件可以操作于不同的休眠状态下,其中所述不同的休眠状态的范围从具有较短退出时延和适度功率节省的浅度C-状态(例如,ACPI Cl状态)到具有较长退出时延和较高功率节省的深度C-状态(例如,ACPI C3)。因此,取决于休眠内核所处的C-状态,包括WPL和APL的性能损失的确定是不同的。在一个实施例中,从深度 C-状态唤醒处理元件比唤醒处于浅度C-状态的处理元件代价更高(导致更高的性能损失)。图2是用于响应于中断事件来选择(处理器的)处理元件以执行任务的处理的一个实施例的流程图。由可以包括硬件(电路、专用逻辑等)、软件(例如在通用计算机系统或专用机器上运行的)、或上述二者的组合的处理逻辑来执行该处理。在一个实施例中,结合控制器(例如,参照图1的任务路由逻辑130)来执行该处理。在一个实施例中,由参照图3的计算机系统来执行该处理。参考图2,在一个实施例中,处理逻辑以接收可重新路由的事件(处理框200)作为开始。响应于该事件,处理逻辑执行任务或服务。

在一个实施例中,处理逻辑确定是否有任何(处理器的)处理元件操作于涡轮加速模式中(处理框210)。在一个实施例中,如果没有处理元件操作于涡轮加速模式中,则处理逻辑选择任何处理元件以服务该事件(处理框241)。在另一个实施例中,如果没有处理元件操作于涡轮加速模式中,则处理逻辑选择处于功率节省模式的处理元件,例如休眠内核,以服务该事件。否则,在一个实施例中,如果任何处理元件处于涡轮加速模式中,则处理逻辑确定潜在的性能损失。在一个实施例中,处理逻辑确定在空闲处理元件被用来执行任务时的唤醒性能损失(WPL)(处理框220)。在一个实施例中,处理逻辑基于与活动处理元件相关联的操作频率的降低和正在由活动处理元件执行的程序的频率缩放因子来确定WPL。在一个实施例中,处理逻辑确定在活动处理元件被用来执行任务时的活动性能损失(APL)(处理框221)。在一个实施例中,处理逻辑基于用于执行该任务的处理时间的量和与正在由活动处理元件执行的程序相关联的使用值来确定APL。在一个实施例中,处理逻辑将WPL与APL进行比较(处理框230)。在一个实施例中,如果WPL小于APL,那么处理逻辑选择空闲处理元件来执行该任务(处理框242)。否则, 处理逻辑选择处于涡轮加速模式的活动处理元件来执行该任务(处理框243)。可以在各种电子设备和逻辑电路中实现本发明的实施例。此外,包括本发明的实施例的设备或电路可以被包括在各种计算机系统内。本发明的实施例还可以被包括在其他计算机系统拓扑和架构中。例如,图3说明了结合本发明的一个实施例的计算机系统。处理器705访问来自 1级(Li)高速缓冲存储器706、2级(L2)高速缓冲存储器710、以及主存储器715的数据。 在本发明的其他实施例中,高速缓冲存储器706可以是多级高速缓冲存储器,其由Ll高速缓冲存储器以及计算机系统存储器分层中的诸如L2高速缓冲存储器的其他存储器组成, 并且高速缓冲存储器710是随后的更低级高速缓冲存储器,例如L3高速缓冲存储器或更多级高速缓冲存储器。此外,在其他实施例中,计算机系统可以具有作为不止一个处理器内核的共享高速缓冲存储器的高速缓冲存储器710。处理器705可以具有任意数量的处理内核。然而,可以用硬件、软件、或它们的一些组合在系统内的其他设备中或者在分布于整个系统的其他设备中实现本发明的其他实施例。在一个实施例中,处理器705包括类似于部件的逻辑,例如,参照图1的任务路由逻辑 130。可以在各种存储器源中,例如,动态随机存取存储器(DRAM)、硬盘驱动器 (HDD) 720、基于NVRAM技术的固态盘725,或者包含各种存储设备和技术的、经由网络接口 730或经由无线接口 740位于远离计算机系统的存储器源,实现主存储器715。高速缓冲存储器可以位于处理器内或在与处理器接近的位置,例如在处理器的本地总线707上。此外, 高速缓冲存储器可以包含相对快的存储器单元,例如六晶体管(6T)单元、或具有大约相等或更快的访问速度的其他存储器单元。
然而,本发明的其他实施 例可以存在于图3的系统中的其他电路、逻辑单元、或设备中。此外,本发明的其他实施例可以分布于图3中说明的整个若干电路、逻辑单元、或设备中。类似地,至少一个实施例可以实现在点对点计算机系统中。例如,图4说明了在点对点(PtP)配置中安排的计算机系统。特别地,图4示出了在其中通过多个点对点接口使处理器、存储器和输入/输出设备互连的系统。图4的系统还可以包括若干处理器,为了清楚起见只示出了其中的两个处理器 870、880。处理器870、880中的每一个可以包括本地存储器控制器中心(MCH)811、821以与存储器850、851连接。处理器870、880可以使用PtP接口电路812、822经由点对点(PtP) 接口 853交换数据。处理器870、880中的每一个可以使用点对点接口电路813、823、860、 861经由各自的PtP接口 830、831与芯片组890交换数据。芯片组890也可以经由高性能图形接口 862与高性能图形电路852交换数据。本发明的实施例可以耦合到计算机总线 (834或835)、或在芯片组890中、或耦合到数据存储设备875、或耦合到图4的存储器850。然而,本发明的其他实施例可以存在于图4的系统中的其他电路、逻辑单元或设备中。此外,本发明的其他实施例可以分布于图4中说明的整个若干电路、逻辑单元或设备中。本发明并不限于所描述的实施例,并且可以在所附权利要求的精神和范围内使用修改和改变来进行实施。例如,应当意识到,本发明可适于与所有类型的半导体集成电路 (“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组部件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等。此外,应当意识到,可以给出示例性的尺寸 /模型/值/范围,尽管本发明的实施例并不限定为是相同的。由于制造技术(例如,光刻术)随着时间变得成熟,所以可以预期能够制造出更小尺寸的设备。虽然对于本领域的普通技术人员来说,在读完上述描述之后本发明的实施例的许多改变和修改将毋庸置疑地变得显而易见,但是可以理解,以说明的方式描述和示出的任何特定实施例决不旨在被认为是限制性的。所以,提到的各个实施例的细节并不旨在限制权利要求的范围,其中所述权利要求只在其本身中陈述被认为对本发明是必不可少的那些特征。
权利要求
1.一种处理器,包括包括第一内核和第二内核的多个内核;以及涡轮加速模式逻辑,用于如果所述第一内核处于空闲状态则增加所述第二内核的操作频率,其中,增加所述第二内核的操作频率以使用由于处于空闲状态的所述第一内核而产生的所述第一内核的可用功率容量;耦合到所述第一内核的第一高速缓存和耦合到所述第二内核的第二高速缓存;耦合到所述第一内核和所述第二内核的存储器接口逻辑;耦合到所述第一内核和所述第二内核的总线接口逻辑。
2.根据权利要求1所述的处理器,其中,所述涡轮加速模式逻辑用于通过增加所述第二内核的操作频率以使用由于处于空闲状态的所述第一内核而产生的所述第一内核的可用功率容量,来提高系统的整体性能,其中,所述处理器是所述系统的一部分。
3.根据权利要求1所述的处理器,其中,所述涡轮加速模式逻辑用于响应于事件的发生将处于空闲状态的所述第一内核的可用功率重新分配给所述第二内核。
4.根据权利要求1所述的处理器,其中,所述涡轮加速模式逻辑用于如果所述第一内核处于空闲状态则增加所述第二内核的操作频率,其中,增加所述第二内核的操作频率以使用由于处于空闲状态的所述第一内核而产生的所述第一内核的热余量。
5.根据权利要求1所述的处理器,其中,所述涡轮加速模式逻辑用于响应于事件的发生将处于空闲状态的所述第一内核的热余量重新分配给所述第二内核。
6.根据权利要求1所述的处理器,其中,当所述第二内核由于所述第一内核处于空闲状态而接收到更多的功率时,所述第二内核操作在比正常模式的操作频率更高的操作频率。
7.根据权利要求1所述的处理器,其中,所述第一内核的空闲状态是由高级配置和电源接口(ACPI)规范定义的休眠状态中的一种。
全文摘要
介绍了用于提高事件处理的性能的装置的实施例。在一个实施例中,该装置包括多个处理元件和任务路由逻辑。如果处理元件中的至少一个处理元件处于涡轮加速模式,那么任务路由逻辑至少基于性能损失的比较来选择用于执行任务的处理元件。
文档编号G06F15/16GK102306111SQ20111019365
公开日2012年1月4日 申请日期2010年9月26日 优先权日2009年12月3日
发明者(已故) J·P·阿拉雷, O·法利克, R·D·韦尔斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1