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

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


根据下面给出的详细描述以及本发明的各个实施例的附图可以更充分地理解本 发明的实施例,然而,其不应被用于将本发明限制到特定的实施例,而只是用于解释和理解。图1示出了计算机系统的实施例,该计算机系统包括用于响应于中断事件来选择 处理元件以执行任务的装置。图2是用于响应于中断事件来选择处理元件以执行任务的处理的一个实施例的 流程图。图3说明了与本发明的一个实施例一起使用的计算机系统。图4说明了与本发明的一个实施例一起使用的点对点计算机系统。
具体实施例方式介绍了用于提高事件处理的性能的装置的实施例。在一个实施例中,装置包括多 个处理元件和任务路由逻辑。如果处理元件中的至少一个处理元件处于涡轮加速模式,那 么任务路由逻辑至少基于性能损失的比较来选择用于执行任务的处理元件。在以下描述中,阐述了大量细节以提供对本发明的实施例的更透彻的解释。然而, 对本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实施本发明的实施 例。在其他示例中,以框图的形式而非细节的形式示出了公知的结构和设备,以避免模糊本 发明的实施例。在其他示例中,没有详细地描述公知的部件或方法,例如,微处理器架构、虚拟机 监视器、功率控制、时钟门控、以及已知逻辑的操作细节,以避免不必要地模糊本发明。但是,应当牢记,所有这些以及类似的术语应与合适的物理量相关联,并且仅仅是 应用到这些量的方便的标记。除非明确地声明,否则根据以下讨论显而易见的是,应该意识 到,贯穿本说明书的使用诸如“处理”或“计算”或“运算”或“确定”或“显示”等术语的讨论指代计算机系统或类似的电子计算设备的动作和处理过程,其对表示为计算机系统的寄 存器和存储器内的物理(电子)量的数据进行操作,并将所述数据转换成类似地表示为计 算机系统存储器或寄存器或其它这种信息存储、传输或显示设备内的物理量的其它数据。本发明的实施例还涉及用于执行本文中的操作的装置。可以针对需要的目的特别 地构造一些装置,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配 置的通用计算机。可以将这种计算机程序存储在计算机可读存储介质中,例如但不限于,任 何类型的盘,其包括软盘、光盘、CD_R0M、DVD-R0M、以及磁光盘、只读存储器(ROM)、随机存取 存储器(RAM)、EPROM、EEPROM、NVRAM、磁或光卡,或适合用于存储电子指令的任何类型的介 质,并且每一个都耦合到计算机系统总线。本文描述的方法和装置用于选择用于事件处理的处理元件。更具体地说,参考多 内核处理器计算机系统主要地讨论了选择用于事件处理的处理元件。然而,用于选择用于 事件处理的处理元件的方法和装置并不限制于此,因为可以在任何集成电路设备或系统上 或与任何集成电路设备或系统相关联地实现该方法和装置,所述集成电路设备或系统例如 是蜂窝电话、个人数字助理、嵌入式控制器、移动平台、台式平台和服务器平台,以及结合任 何类型的处理元件,例如内核、硬件线程、软件线程、或逻辑处理器、加速器内核、或其他处 理资源。此外,选择用于事件处理的处理元件可以发生在任何硬件/软件环境中,例如操作 系统或在硬件上执行的管理程序。概述介绍了用于提高事件处理的性能的装置的实施例。在一个实施例中,装置包括多 个处理元件和任务路由逻辑。如果处理元件中的至少一个处理元件处于涡轮加速模式,那 么任务路由逻辑至少基于性能损失的比较来选择用于执行任务的处理元件。图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)。在一个实施例中,如果没有处理元件操作于涡轮加速模式中,则处 理逻辑选择任何处理元件以服务该事件(处理框Ml)。在另一个实施例中,如果没有处理 元件操作于涡轮加速模式中,则处理逻辑选择处于功率节省模式的处理元件,例如休眠内 核,以服务该事件。否则,在一个实施例中,如果任何处理元件处于涡轮加速模式中,则处理逻辑确定 潜在的性能损失。在一个实施例中,处理逻辑确定在空闲处理元件被用来执行任务时的唤醒性能损 失(WPL)(处理框220)。在一个实施例中,处理逻辑基于与活动处理元件相关联的操作频率 的降低和正在由活动处理元件执行的程序的频率缩放因子来确定WPL。在一个实施例中,处理逻辑确定在活动处理元件被用来执行任务时的活动性能损 失(APL)(处理框221)。在一个实施例中,处理逻辑基于用于执行该任务的处理时间的量和 与正在由活动处理元件执行的程序相关联的使用值来确定APL。在一个实施例中,处理逻辑将WPL与APL进行比较(处理框230)。在一个实施例 中,如果WPL小于APL,那么处理逻辑选择空闲处理元件来执行该任务(处理框对幻。否则, 处理逻辑选择处于涡轮加速模式的活动处理元件来执行该任务(处理框M3)。可以在各种电子设备和逻辑电路中实现本发明的实施例。此外,包括本发明的实 施例的设备或电路可以被包括在各种计算机系统内。本发明的实施例还可以被包括在其他 计算机系统拓扑和架构中。例如,图3说明了结合本发明的一个实施例的计算机系统。处理器705访问来自 1级(Li)高速缓冲存储器706、2级(U)高速缓冲存储器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,880o处理器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或83 、或在芯片组890中、或耦合到数据存储设备875、或耦合到图4的存储器850。然而,本发明的其他实施例可以存在于图4的系统中的其他电路、逻辑单元或设 备中。此外,本发明的其他实施例可以分布于图4中说明的整个若干电路、逻辑单元或设备 中。本发明并不限于所描述的实施例,并且可以在所附权利要求的精神和范围内使用 修改和改变来进行实施。例如,应当意识到,本发明可适于与所有类型的半导体集成电路 (“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组部件、可 编程逻辑阵列(PLA)、存储器芯片、网络芯片等。此外,应当意识到,可以给出示例性的尺寸 /模型/值/范围,尽管本发明的实施例并不限定为是相同的。由于制造技术(例如,光刻 术)随着时间变得成熟,所以可以预期能够制造出更小尺寸的设备。虽然对于本领域的普通技术人员来说,在读完上述描述之后本发明的实施例的许 多改变和修改将毋庸置疑地变得显而易见,但是可以理解,以说明的方式描述和示出的任 何特定实施例决不旨在被认为是限制性的。所以,提到的各个实施例的细节并不旨在限制 权利要求的范围,其中所述权利要求只在其本身中陈述被认为对本发明是必不可少的那些 特征。
权利要求
1.一种装置,包括第一处理元件;第二处理元件;以及任务路由逻辑,其用于如果所述处理元件中的至少一个处理元件处于涡轮加速模式, 则至少基于性能损失的比较,在所述第一处理元件和所述第二处理元件之间进行选择以执 行任务。
2.根据权利要求1所述的装置,还包括耦合到所述任务路由逻辑的存储器,其用于保 存关于正在由所述第一处理元件执行的程序的频率缩放因子的信息。
3.根据权利要求1所述的装置,还包括性能计算逻辑,其用于基于与所述第一处理元 件相关联的操作频率的降低和正在由所述第一处理元件执行的程序的频率缩放因子来确 定性能损失。
4.根据权利要求1所述的装置,还包括性能计算逻辑,其用于基于执行所述任务的时 间段和与正在由所述第一处理元件执行的程序相关联的使用值来确定性能损失。
5.根据权利要求1所述的装置,任务路由逻辑用于在分别与选择所述第一处理元件和 选择第二处理元件相关联的第一性能损失和第二性能损失之间选择较小的性能损失。
6.根据权利要求1所述的装置,其中,如果所述第二处理元件是空闲的并且所述第二 处理元件被选择来执行所述任务,那么所述第一处理元件的操作频率将降低。
7.根据权利要求1所述的装置,其中,当由于所述第二处理元件是空闲的而使得所述 第一处理元件接收更多的功率时,处于所述涡轮加速模式的所述第一处理元件以比正常模 式的频率更高的频率操作。
8.根据权利要求1所述的装置,其中,所述任务是可重新路由的事件,该事件可由所述 第一处理元件或所述第二处理元件执行。
9.一种系统,包括多个处理元件,其包括第一处理元件和第二处理元件;任务路由逻辑,其用于如果所述处理元件中的至少一个处理元件处于涡轮加速模式, 则在所述第一处理元件和所述第二处理元件之间进行选择以执行任务;以及耦合到所述任务路由逻辑的存储器,其用于保存要由所述多个处理元件执行的程序。
10.根据权利要求9所述的系统,还包括性能计算逻辑,其用于基于与所述第一处理元 件相关联的操作频率的降低和正在由所述第一处理元件执行的程序的频率缩放因子来确 定性能损失。
11.根据权利要求9所述的系统,还包括性能计算逻辑,其用于基于执行所述任务的时 间段和与正在由所述第一处理元件执行的程序相关联的使用值来确定性能损失。
12.根据权利要求9所述的系统,任务路由逻辑用于在分别与选择所述第一处理元件 和选择第二处理元件相关联的第一性能损失和第二性能损失之间选择较小的性能损失。
13.一种方法,包括确定多个处理元件中的任何一个是否操作于涡轮加速模式;以及如果所述处理元件中的至少一个处理元件操作于所述涡轮加速模式,则至少基于性能 损失的比较,选择第一处理元件以执行任务。
14.根据权利要求13所述的方法,还包括基于与所述第一处理元件相关联的操作频率的降低和正在由所述第一处理元件执行的程序的频率缩放因子来确定性能损失。
15.根据权利要求13所述的方法,还包括基于执行所述任务的平均时间段和与正在 由所述第一处理元件执行的程序相关联的使用值来确定性能损失。
16.根据权利要求13所述的方法,还包括如果与选择作为活动处理元件的所述第一 处理元件相关联的第一性能损失低于与唤醒处于休眠状态的第二处理元件相关联的第二 性能损失,则选择所述第一处理元件以执行所述任务。
全文摘要
介绍了用于提高事件处理的性能的装置的实施例。在一个实施例中,该装置包括多个处理元件和任务路由逻辑。如果处理元件中的至少一个处理元件处于涡轮加速模式,那么任务路由逻辑至少基于性能损失的比较来选择用于执行任务的处理元件。
文档编号G06F9/48GK102087619SQ20101029332
公开日2011年6月8日 申请日期2010年9月26日 优先权日2009年12月3日
发明者J·P·阿拉雷, O·法利克, R·D·韦尔斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1