多核和功率的中断平衡的制作方法

文档序号:6468000阅读:178来源:国知局
专利名称:多核和功率的中断平衡的制作方法
技术领域
本发明涉及处理器领域,特定来说,涉及对优先处理单元提供品 质和服务。
背景l支术
半导体处理和逻辑设计中的进步使得存在于集成电路装置上的
逻辑的数量不断增加。结果,计算机系统配置^yv系统中的单个或多个 集成电路演变为存在于独立集成电路上的多个核和多个逻辑处理器。 处理器或集成电路通常包括单个处理器管芯,其中该处理器管芯可包 括任何数量的处理单元,例如核、线程、和/或逻辑处理器。
随着逻辑和功能性的增加,计算机系统中的管理功能变得更加普
遍。许多处理器利用诸如系统管理模式(SMM)的管理才莫式来处理诸 如联网、存储、和功率任务的管理任务。通常,请求管理的装置或源 启动或生成中断。随着中断的数量和中断因计算机系统中的功能性的 水平上升而增长,处理器执行这些管理任务的负担变得更加繁重。
传统上,甚至在多处理器系统中,通过单个引导处理器来对中断 提供服务。尽管因为多处理器系统中的其它处理器能够保持在低功率 模式,通过单个引导处理器来处理中断源可节省了功率,但是在高活 动期间,其它处理器仍保留在空闲状态而等待单个处理器对中断提供 服务。

发明内容
根据本发明一个方面,提供了一种包括程序代码的制造品,该程 序代码在由机器执行时使该机器执行如下操作确定一段时间内的中
断活动性的量;响应于该一段时间内中断活动性的量超过中断活动的阈值,选择中断处理的第一模式;以及响应于选择该第一模式,在该 机器中的多个集成电路之中分配多个中断。
根据本发明的另一方面,还提供了一种系统,包括多个集成电 路,每个集成电路包括由多个处理单元共享的高速緩存存储器;以及 用于存储程序代码的存储器,该程序代码在由该多个处理单元中的至 少一个处理单元执行时使得确定是否在省电模式中处理多个中断; 响应于确定在该省电才莫式中处理该多个中断,将对该多个中断的处理 分配给该多个集成电路中的第一集成电路;以及基于在该多个处理单 元之中公平分配该多个中断,将该多个中断中的选择的源中断分配给 包含在该第一集成电路中的处理单元。
根据本发明的又一方面,还提供了一种方法,包括响应于中断 活动性的量高于阈值,选择中断处理的性能模式;响应于选择该中断 处理的性能模式,在多个物理处理器之间分配多个中断源;在该多个 物理处理器中的第 一处理器的高速緩存域之间分配该多个中断源中 的第 一数量的中断源,其中该第 一数量的中断源曾被分配给该第一处 理器;以及将该第一数量的中断源中的选择的高速率中断源分配给该 第一处理器的处理单元。
本发明提供的这些方法、系统等,在处理中断方面提供了省电和 性能之间的平衡。


附图中的各图举例说明本发明,但本发明不是要局限于附图中的 各图。
图1示出能够在处理单元中间公平分配中断的多处理单元处理器 的实施例。
图2示出能够在操作的性能模式期间在多个处理器之中公平分配 中断的多处理器系统的实施例。
图3示出用于平衡处理器、高速緩存域、和处理单元之中的中断分配的方法的流程图的实施例。
具体实施例方式
在以下说明中,阐述了大量具体细节,例如具体的多处理器配置 的实例、中断源的类型、以及实现细节等,以便提供对本发明的充分 理解。然而,对本领域的技术人员显而易见的是,不需要采用这些具 体细节也可实施本发明。在其它情况下,没有详细说明说明公知的组 件或方法,例如不同类型的处理器、中断、代码实现和微处理器的具 体操作细节,以免不必要地使本发明不清楚。
本文说明的方法和设备用于平衡中断处理的功率和性能。具体 地,主要参照其中每个处理器具有多个核的多处理器计算机系统来说 明功率和性能的平衡。但是,用于平衡功率和性能的方法和设备不限 于此,它们可以在诸如蜂窝电话、个人数字助理、嵌入式控制器、移 动平台、桌面型平台、以及服务器平台等的任何集成电路装置或系统 上实现或是与该任何集成电路装置或系统联合实现,以及可以结合任 何数量(例如一个)的处理器来实现,其中处理器具有任何数量的诸 如核、硬件线程、软件线程、逻辑处理器、或其它处理单元等的处理 单元。
参考图1,示出能够在处理单元之中分配中断的多核处理器的实 施例。处理单元是指线程、程序、上下文、逻辑处理器、硬件线程、 核、和/或任何处理单元,这些处理单元共享对诸如预约单元、执行单 元、流水线、以及丰支高级的高速緩存/存储器等处理器资源的访问。物 理处理器通常是指可包括任何数量的其它诸如核或硬件线程等的处 理单元的集成电路。
核通常是指位于集成电路上的能够维持独立架构状态的逻辑,其 中每个独立维持的架构状态与至少一些专用执行资源相关联。与核不 同,硬件线程通常是指位于集成电路上的能够维持独立架构状态的任 何逻辑,其中独立维持的架构状态共享对执行资源的访问。如图l所
8示,物理处理器100包括两个核,即核101和102,它们共享对较高 级的高速緩存110的访问。此外,核101包括两个硬件线程101a和 101b,而核102包括两个硬件线程102a和102b。因此,当处理器100 能够执行四个软件线程时,例如操作系统等的软件实体可将处理器 100视为是4个单独的处理器。
可见,当某些资源被共享而其它资源专用于架构状态时,所谓的 硬件线程和核之间的线路重叠。然而,通常,核和硬件线程被操作系 统视为是独立的逻辑处理器,其中操作系统能够单独地调度每个逻辑 处理器上的操作。也就是说,软件将物理处理器上的两个核或线程视 为是两个独立的处理器。此外,每个核可包括用于执行多个软件线程 的多个硬件线程。因此,处理单元包括能够维持上下文的任何诸如核、 线程、硬件线程、虚拟机、或其它资源等的前述单元。
在一个实施例中,处理器IOO是能够并行地执行多个线程的多核 处理器。这里,第一线程与架构状态寄存器101a相关联,第二线程与 架构状态寄存器101b相关联,第三线程与架构状态寄存器102a相关 联,而第四线程与架构状态寄存器102b相关联。在一个实施例中, 提到处理器100中的处理单元时包括提到核101和102以及线程101a、 101b、 102a和lQ2b。在另一个实施例中,处理单元是指位于处理域的 分级结构中的相同级别上的单元。例如,核101和102在相同的域级 别中,而线程101a、 101b、 102a和102b在相同的域级别中,因为它 们都包含在核的域中。
虽然处理器IOO可包含不对称核,即,具有不同配置、功能单元、 和/或逻辑的核,但是图中示出对称核。因此,不再详细论述图示与核 101等同的核102,以免使说明不清楚。
如图所示,架构状态寄存器101a是从架构状态寄存器101b中复 制的,因此能够为逻辑处理器101a和逻辑处理器101b存储独立的架 构状态/上下文。还可为线程101a和101b复制其它的诸如指令指针和 在重命名分配器逻辑130中的重命名逻辑等的较小资源。诸如重排序
9/引退单元135中的重排序緩冲器、ILTB 120、载入/存储緩冲器、以 及队列等的一些资源可通过分区来共享。诸如通用内部寄存器、页表 基址寄存器、较低级数据高速緩存和数据-TLB (D-CacheandD-TLB) 150、执行单元140、以及乱序单元135等的其它资源可完全共享。
总线接口模块105用于与外设于处理器100的装置进行通信,这 些装置如系统存储器175、芯片组、北桥或其它集成电路。存储器175 可专用于处理器IOO或与系统中的其它装置共享。存储器175的实例 包括动态随机存取存储器(DRAM)、静态RAM (SRAM)、非易失 性存储器(NV存储器)、以及长期存储设备。
通常,总线接口单元105包括用于传送和接收互连170上的总线 信号的输入/输出(I/O)緩沖器。互连170的实例包括射电收发逻辑 (GTL)总线、GTL+总线、双倍数据速率(DDR)总线、并发总线、 差分总线、高速緩存相干总线、点对点总线、多点总线或其它已知的 用于实现任何已知的总线协议的互连。所示的总线接口单元105还与 较高级的高速緩存110通信。
较高级或更远离的高速緩存110用于緩存最近提取和/或操作的 元素。注意,较高级或更远离是指提高或者进一步远离执行单元的高 速緩存级。在一个实施例中,较高级的高速緩存IIO是二级数据高速 緩存。但是,较高级的高速緩存IIO不限于此,它可以是或包含指令 高速緩存(又可称为踪迹高速緩存)。踪迹高速緩存可以改为耦合在 解码器125之后以存储最近的解码踪迹。模块120还可包含用于预测
址转换条目的指令-转换緩冲器(I-TLB)。这里,能够进行推测性执 行的处理器可预取并且推测性地执行所预测的分支。
解码模块125耦合到提取单元120以解码所提取的元素。在一个 实施例中,处理器100与定义/指定可在处理器100上执4亍的指令的指 令集架构(ISA)关联。这里,由ISA辨识的机器代码指令通常包括 被称为操作码的指令的部分,其引用/指定要执行的指令或操作。在一个实例中,分配器和重命名器块130包括分配器以用于预约 例如用于存储指令处理结果的寄存器文件的资源。然而,线程101a 和101b可能够乱序执行,其中分配器和重命名器块130还预约其它 资源,如用于追踪指令结果的重排序緩冲器。单元130还可以包括寄 存器重命名器以用来将程序/指令引用寄存器重命名为位于处理器100 内部的其它寄存器。重排序/引退单元135包括用于支持乱序执行以及 稍后对乱序执行的指令有序引退的组件,如上文提到的重排序緩冲 器、载入緩冲器、以及存储緩沖器。
在一个实施例中,调度器和执行单元块140包括用于在执行单元 上调度指令/操作的调度器单元。实际上,在执行单元上根据它们的类 型可用性可调度指令/操作。例如,在具有可用的浮点执行单元的执行 单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器文件 以用于存储信息指令处理结果。示例的执行单元包括浮点执行单元、 整数执行单元、跳转执行单元、载入执行单元、存储执行单元、以及 其它已知的执行单元。
较低级的数据高速緩存和数据转换緩冲器(D-TLB) 150耦合到 执行单元140。数据高速緩存用于存储最近使用/操作的元素,如数据 操作数,其可以诸如修改的、独占的、共享的、以及无效(MESI)的 状态等的存储器一致状态保存。D-TLB用于存储最近的虛拟/线性-物 理地址转换。之前,D-TLB条目包括虛拟地址、物理地址、以及例如 偏移等的其它信息,以便为最近使用的虚拟存储器地址提供低廉的转 换。
在图1中,处理器100图示为是一个物理微处理器,其具有两个 核以及四个硬件线程。但是,处理器100并不限于此。事实上,如下 面将更详细地说明,在一个实施例中,不论是只将中断源的部分分配 给处理器IOO还是将所有中断源都分配给处理器100,处理器100内 的第 一级分配在高速緩存域级别上进行。高速緩存域包括共享对高速 緩存访问的任何处理单元。如上文所论述,在高速緩存域上的划分可
ii在任何处理单元级别上进行。例如,核101和核102共享对高速緩存 IIO的访问。结果,可在核之间分配中断源。此外,在分配给核之后, 还可进一步在本地线程之中分配中断。在另一个实施例中,在线程 101a、 101b、 102a和102b之间进行分配。
因此,处理器IOO可包括任何数量的处理单元以及高速緩存域。 例如,处理器IOO可包括四个核,其中第一的两个核共享对第一级别 的两个数据高速i爰存(即,第一高速緩存域)的访问,而其它两个核 共享对第二级别的两个数据高速緩存(即,第二高速緩存域)的访问。
虽然对物理存储器100的说明集中于微处理器,但是处理器100可以 包括具有任何数量的多核/线程的诸如嵌入式处理器、单元处理器、微 处理器、或其它已知的处理器等的任何物理处理设备。
另外,还为处理器IOO示出乱序处理器的过于简单化的图示的微 架构。但是,处理器100中示出的任何模块/单元可以以不同的顺序/ 方式进行配置,可以互不包含,以及可以相互重叠包括驻留在多个模 块中的组件部分。例如,可在处理器100中分布预约单元,该预约单 元包括处理器IOO的不同模块中的多个小型预约表。
转到图2,示出能够分配中断的系统的实施例。系统200包括四 个物理处理装置,即处理器205、 210、 215和220。物理处理器205、 210、 215和220通过控制器集线器225耦合到系统存储器230。例如, 控制器集线器225是芯片组装置,其包括耦合到互连控制器集线器的 存储器控制器集线器。在另一个实施例中,控制器集线器225包括集 成在处理器205、 210、 215和220中以与存储器230进行通信的逻辑。
在另一个实施例中,处理器205、 210、 215、 220通过诸如CSI 或快速路径接口的直接接口耦合到控制器集线器225。这里,处理器 205、 210、 215和220以及控制器集线器225包括分层协议栈以提供 装置之间的通信。虽然上文说明了在系统中配置多个处理器的说明性 实例,但是可以采用用于在系统中包括多个物理处理器的任何配置。
如图所示,每个处理器包括四个处理单元。例如,处理器205包括处理单元(PE) 206-209。在一个实施例中,PE 206-209是核。在 另一个实施例中,PE 206-209包括线程。注意,处理器210、 215和
处理器。
在一个实施例中,系统200能够确定一段时间内的中断活动性的 量。例如,通过软件周期性地轮询系统以确定活动性的量。说明如下 代码在系统200中的处理器上执行时每10秒钟计算上一个10秒钟在 中断处理上所花的时间量。在另一个实施例中,中断活动性的量包括 在一段时间内的中断事件和/或源的数量。例如,如果有大量的装置/ 源生成中断或单个装置生成大量中断,则可优选性能^t式。此外,处 理器或诸如操作系统的其它软件可跟踪中断统计/信息,以用于确定中 断活动性的量。
因此,在一个实施例中,当中断活动性的量超过阈值量时,选择 中断处理的第一模式。这里,因为中断活动性超过阈值,这表示更大 的中断活动性,则第一模式是性能模式。注意,阈值可以变化和/或预 先确定以便为中断处理提供性能和功率之间的最优平衡。事实上,在 上述实例中,在任何单个时间段内,如果中断活动性超过阈值,那么 选择性能模式。但是,在更保守的实施例中,在一定数量的时间段或 连续时间段内中断活动性的量超过阈值时使得选择性能模式。
性能模式是指这样一种操作模式,其中在多个处理装置/单元之中 分配中断和/或中断源以高效地对多个中断和/或源提供服务。在一个 实施例中,性能模式包括在多个集成电路或诸如处理器205、 210、 215 和220等的物理处理器之中分配多个中断。以前,会将中断分配给单 个物理引导处理器来处理。虽然这使得其它处理器能够进入省电模 式,但是会在处理大量中断上花费大量的时间,其可对其它软件实体 的执行造成不利的影响。因此,当活动性的量超过阈值时,可在多个 处理器之中分配/分配中断以便更快速地处理多个中断。
在一个实施例中,在多个集成电路或诸如处理器205、 210、 215
13平分配中断和/或中断源来进行的。例如,如果有四个中断要处理,并
且系统200处于性能模式,那么可相应地给处理器205、 210、 215和 220分配一个中断。在另一个实施例中,可在处理器205、 210、 215 和220之中公平地分配中断源。这里,可给处理器205、 210、 215和 220分配成等级或类别的中断。例如,将联网中断分配给处理器205, 将基于功率的中断分配给处理器210,将存储中断分配给处理器215, 而将传统中断分配给处理器220。
在另一个实施例中,可基于numa亲近度(即,中断或中断源与 集成电路的接近度)来分配中断。例如,来自在物理上较接近于处理 器220的装置的中断可倾向于分配/分配给处理器220,以提供较短的 距离而在装置和处理器220之间实现更高效的通信。关于中断分配的 另外的因素包括对处理器205、 210、 215和220进行的中断源和/或中 断的先前分配。例如,如果处理器205曾经对网络^接口控制器(NIC) 生成的中断提供过服务,那么由该NIC生成的另外的中断可倾向于分 配给处理器205,因为信息还存在着以更快速地处理中断。
因此,上述因素和其它因素的任意的組合可用于分配中断。在一 个实施例中,实现奖励体系以基于多个因素使分配具有倾向性。这里, 分配基于公平分配,即,大致平均数量的中断和/或中断源。此外,当 将一个中断或源分配给该源之前被分配给的相同的处理器时,或者如 果将中断源分配给在接近度上比其它处理器更接近的处理器,那么可 为该中断或源分配一个奖励。注意,奖励体系可分等级。例如,给最 接近于中断源的处理器分配最大的分配奖励,而对在接近度上远离中 断源的每个处理器分配较小的奖励。相反地,可以类似地利用惩罚体
系来倾向于保持处理器分配、处理器接近度以及先前的处理器分配。
但是,在较低活动性的中断处理期间,将中断限制为首先分配给 一个处理器(例如引导处理器)是可有利的,这样其它处理器便可以 进入低功率状态。因此,在一个实施例中,当在一段时间内中断活动性的量低于阈值时,则选择中断处理的第二模式,如省电模式。在另 一个实施例中,为了避免模式间的反复,在一定数量的连续的中断活 动性低于阈值的时间段之后,选择第二功率模式。例如,假设每10
秒钟确定先前10秒钟内的中断活动性的量。结果,如果在一段时间
内活动数量超过阈值,那么选择性能模式。但是,直到有三个连续的 时间段中断活动性低于阈值时才选择省电模式。
上述功率模式是指这样一种中断处理模式,其中将中断首先分配
给一个处理器,例如处理器205。说明如下假设有三个连续的时间 段中断活动性低于阔值;因此,选择省电模式。在省电模式期间,将 中断首先分配给处理器205来处理。因此,处理器210、 215和220 可进入诸如睡眠状态等的低功率模式,而处理器205对中断提供服务。 在一个实施例中,中断能够从处理器205溢出到处理器210。如 前所述,基于先前的中断活动性的量来选择功率或性能模式。因此, 当前模式可以是功率模式,但是生成/接收大量的中断。这里,如果中 断和/或中断源的数量超过阈值,那么超出阈值的数量溢出到处理器 210。在这个实例中,只在需要处理大量中断时才使用处理器210、 215 和220。
在一个实施例中,不论是根据性能模式期间的公平分配还是根据 功率模式期间的首先分配来将中断分配给诸如物理处理器205的集成 电路,都高速緩存域之中分配中断和/或源。为了说明如下假定PE 206 和207共享对第一高速緩存域的访问,而PE 208和209共享对第二高 速緩存域的访问。这里,在第一和第二高速緩存域之中分配分配/分配 给处理器205的中断。如同上文参照在集成电路之中的分配,在高速 緩存域之中的分配也可基于诸如下列的分配因素在高速緩存域之间 的公平分配,numa亲近度,高速緩存域接近度,先前分配的高速緩 存域,以及其它中断分配因素等。
此外,还可将分配给高速緩存域的选择的数量的中断进一步分配 或分配给特定的处理单元。在一个实施例中,选择高速率或高活动性的中断/中断源以将它们进一步分配给特定的处理单元。在一个实施例 中,高速率中断包括诸如高优先级中断类的中断等级或类别。高优先
级中断类的实例可包括联网、定时、或可影响用户体验的特定装置中 断。但是,也可将任何中断等级或类别确定为是高速率或高优先级类。 在另 一个实施例中,高活动性中断包括超过阈值量的中断活动性。
说明如下在性能模式期间,可将中断源按照类别和/或等级分组, 例如传统、存储、定时、以太网等。根据中断活动性的量的公平分酉己、 numa亲近度、以及先前的分配来将这些类别分配给处理器205、 210、 215和220。结果,假定在性能模式期间,将以太网中断分配给处理 器205,将存储和传统中断分配给处理器210,将定时中断分配给处 理器215,并将其它中断分配给处理器220。处理器205进一步在它 的高速緩存域之中分配以太网/联网中断,这里包括共享一个数据高速 緩存的PE 206和207的第 一 高速緩存域以及共享第二数据高速緩存的 PE 208和209的第二高速緩存域。
此时,可对所有中断提供服务。但是,在另一个实施例中,当以 太网中断活动性的量超过以太网阈值时,那么相应地将选择的以太网 中断进一步特定分配给PE 206-209。注意,每个中断类型、等级或类 别可具有它自己的定义的活动阈值。因此,在处理器210上,传统中 断可具有比存储中断低的阈值。结果,较小数量的传统中断可能会超 过传统阈值,而较大数量的存储中断并不会超过存储阈值。因此,将 传统中断进一步分配给处理器210中的处理单元,而存储中断仍保留 在处理器210的高速緩存域级别上。
转向图3,示出为中断处理平衡性能和功率的方法的流程图的实 施例。虽然图中将所说明的方法作为通常以顺序方式示出操:作/流程的 流程图来说明,但是其中许多操作可并行或同时执行。此外,所示的 操作顺序可重新排列。
在流程305,确定中断活动性的量。在一个实施例中,中断活动 性的量的确定包括确定在一段时间内用于处理中断所花的时间量。类
16似地,中断活动性的量可包括在一段时间内的中断事件和/或源的数 量。4旦是,中断活动数量的确定可以通过用于追踪中断、处理时间或 其它中断度量的已知方法来进行。
接下来,在流程310中,确定活动数量是否大于阈值。注意,可 改为确定活动数量是否小于阈值。阈值可以是预定值或其它系统/用户 设置的值。如果活动性的量大于阈值,那么在流程320中选择性能模 式。相反,如果中断活动性的量小于阈值,那么在流程315中选择功 率模式。或者,维持选择性能模式,直到对于多个时间段其活动性的 量小于阈值为止。作为说明性实例,对于三个连续时间段,其数量小 于阈值。这里,在流程310中,可利用变量来追踪有多少个连读的其 中断活动性的量小于阈值的时间段的数量。如果该变量表示并没有三 个连续时间段低于阈值,那么流程返回到流程305以等待下一个时间 段,而仍选择性能模式。当该变量表示有三个连续时间段低于阈值, 那么在流程315中选择功率模式。
在一个实施例中,不论是处于性能模式还是处于功率模式,可将 中断源按照类别和/或等级分组。例如,可将中断源分组成以太网、联 网、存储、定时、功率、杂类别或其它类别。此外,可为这些类别指 定等级或优先级。在另一个实施例中,只在性能模式中才将中断源分 组以用于分配。但是,对中断源进行分组是可选择的,并且可以不在 将中断分配或分配给处理器之前进行。
如果选择性能模式,那么在流程335中,在这些物理处理器之中 分配中断源和/或中断。在一个实施例中,在这些物理处理器之中分配 是基于公平分配。这里,可将源或成类别的源分配给不同的物理处理 器,但是每个处理器的中断和/或源的总数量是大致相等的。此外,分 配也可基于中断源与物理处理器的接近度(即,numa亲近度)、以 及对物理处理器的先前分配/映射来进行。在一个实施例中,利用奖励 方法来基于上述因素使分配具有倾向性。例如,可指定奖励以用于保 持以太网中断与在接近度上接近生成中断的以太网装置的第一物理处理器/套接口的关联。
相反,如果对于一定数量的时间段,中断活动性的量低于阈值, 那么将中断源首先分配/分配给单个物理处理器。注意,由于设计实现,
时间段的数量可以是任何正整数个时间段。例如,它们可以是时间 段的百分比,例如过去三个时间段中的两个时间段;以及连续时间段, 例如两个连续时间段或三个连续时间段低于阈值。
在具有一个以上的物理处理器的处理器系统中,在省电模式分配 有中断源的单个处理器可能在任一模式中接收中断源。因此,在一个 实施例中,流程340-350对于接收中断的物理处理器来说是相同的, 跟模式无关。但是,在另一个实施例中,可在性能模式而不是功率模 式中将中断源分配给高速緩存域和处理单元。
在流程340中,在处理器的高速緩存域之中分配已分配或分发给 物理处理器的中断。在一个实施例中,高速緩存域是由多个处理单元 共享的最低级的高速緩存。例如,可将中断分配给由核共享的二级数 据高速緩存的高速緩存域。在另一个实施例中,高速緩存域包括由线 程共享的一级数据高速緩存。与在性能模式中在物理处理器之间进行 分配类似,在高速緩存域中间分配也可基于先前的映射/关联、numa 亲近度、以及在高速緩存域上的公平分配。
在流程350中,将选择的高速率或多个高速率/活动性中断源进一 步分配给特定的如核或线程的处理单元。如上所述,每个等级或类别 可与不同的用于确定高活动性的阈值相关联。例如,以太网类别可与 比存储类别高的阈值关联。响应于确定中断为高速率、高数量、和/ 或高活动性,可将它们分配给特定的处理单元。注意,当分配选择的 高速率中断源时,也可考虑numa亲近度、先前的映射/关联、以及公 平分配。
如上所述,可注意到通过使用双模式的中断处理的好处。在低活 动性时间段期间,利用省电模式以允许其它物理处理器进入低功率状 态,而首先由单个处理器来处理中断。然而,在高中断活动性时间賴:
18期间,选择性能模式,以在多个物理处理器之中分配中断。这种分配 允许在多个物理处理器上并行地处理中断,从而产生较快速的服务时 间以及较快速地返回到正常执行。此外,可将中断和源分组并分配给 高速緩存域并最终分配给特定处理单元,以进一步提供高效的中断处 理。
上述方法、软件、固件或代码的实施例可通过存储在^l器可访问 或机器可读介质上的可由处理单元执行的指令或代码来实现。机器可 访问/可读介质包括用于以可由诸如计算机或电子系统的机器可读的 形式提供(即,存储和/或传送)信息的任何机构。例如,机器可访问
介质包括随机存取存储器(RAM),如静态RAM (SRAM)或动 态RAM (DRAM);只读存储器(ROM);磁或光存^f渚介质;以及 闪存装置。又如,机器可访问/可读介质包括用于接收、复制、存储、 传送或以其它方式操纵包括上述方法、软件、固件或代码的实施例的 电、光、声或其它形式的传播信号(如载波、红外信号、数字信号) 等的任何机构。
整篇说明书中提到"一个实施例"或者"实施例"时表示,结合 该实施例说明的特定特征、结构或特性包含在本发明的一个实施例 中,并且不需要存在于所说明的所有实施例中。因此,整篇说明书中 的各个位置出现短语"在一个实施例中"或者"在实施例中"时不一 定都指相同的实施例。此外,可在一个或多个实施例中以任何适合的 方式组合这些特定的特征、结构或特性。
在前述说明中,参照特定的示例性实施例给出了详细的说明。但 是,很显然,在不偏离如随附权利要求所述的本发明的宽广精神和范 围的情况下,可以对此做出各种修改和改变。因此,应将说明和附图 -现为是说明性而不是限制性意义的。此外,前述对实施例和其它示例 性语言的使用并不一定都指相同的实施例或相同的实例,而是可以指 不同的区别的实施例,也可指相同的实施例。
19
权利要求
1.一种包括程序代码的制造品,所述程序代码在由机器执行时使所述机器执行如下操作确定一段时间内的中断活动性的量;响应于所述一段时间内中断活动性的量超过中断活动性的阈值,选择中断处理的第一模式;以及响应于选择所述第一模式,在所述机器中的多个集成电路之中分配多个中断。
2. 如权利要求1所述的制造品,其中确定一段时间内的中断活 动性的量包括确定在所述一段时间内花费在处理中断上的大致的时 间量。
3. 如权利要求1所述的制造品,其中确定一段时间内的中断活 动性的量包括确定在所述一段时间内的中断事件的数量。
4. 如权利要求2所述的制造品,其中所述一段时间包括一定数 量的连续周期性时间段。
5. 如权利要求4所述的制造品,还包括响应于对于所述数量 的连续周期性时间段中断活动性的量低于中断活动性的阈值,选择中 断处理的第二4莫式。
6. 如权利要求5所述的制造品,其中所述中断处理的第一模式 为中断处理的性能模式,以及所述中断处理的第二模式为中断处理的 省电模式。
7. 如权利要求5所述的制造品,还包括响应于选择所述第二 模式,将所述多个中断首先分配给所述机器中的多个集成电路之一。
8. 如权利要求7所述的制造品,还包括响应于所述多个中断 超过中断的阈值数量,将所述多个中断中的至少 一个中断溢出到所述 机器中的多个集成电路中的第二集成电路。
9. 如权利要求1所述的制造品,其中在多个集成电路之中分配多个中断基于中断处理因素,所述中断处理因素选自由以下项组成的组所述多个中断的公平分配,中断源与所述多个集成电路中的集成 电路的接近度,以及对所述多个集成电路中的集成电路的先前的中断 源分配。
10. 如权利要求9所述的制造品,其中所述多个集成电路包括多 个物理处理器,并且其中基于在多个物理处理器之中公平分配多个中 断,在所述多个物理处理器中间分配所述多个中断包括在与所述多个物理处理器中的每个关联的多个高速緩存域之中, 基于在所述多个高速緩存域之中公平分配所述多个中断,来分配所述 多个中断;以及基于在所述物理处理器的核之中公平分配所述多个中断中选择 的数量的中断,来进一步将所述多个中断中选择的数量的中断分配给 所述物理处理器的核。
11. 一种系统,包括多个集成电路,每个集成电路包括由多个处理单元共享的高速緩 存存储器;以及用于存储程序代码的存储器,所述程序代码在由所述多个处理单 元中的至少 一个处理单元执行时使得确定是否在省电模式中处理多个中断; 响应于确定在所述省电模式中处理所述多个中断,将对所述 多个中断的处理分配给所述多个集成电路中的第一集成电路;以及基于在所述多个处理单元之中公平分配所述多个中断,将所 述多个中断中的选择的源中断分配给包含在所述第 一集成电路中的 处理单元。
12. 如权利要求11所述的系统,其中确定是否在省电模式中处 理多个中断包括确定第一数量的时间段内的中断活动性的量;以及响应于对于所述第 一数量的时间段中每个时间段内中断活动性的量低于中断活动性的阈值,确定在省电^^式中处理所述多个中断。
13. 如权利要求12所述的系统,其中所述程序代码在由所述多 个处理单元中的至少一个处理单元执行时还使得响应于对于所述第 一数量的时间段中任何时间段内中断活动性 的量大于所述中断活动性的阈值,确定在性能模式中处理所述多个中 断;以及基于在所述多个集成电路之中平均分配所述多个中断,将对所述 多个中断的处理分配给所述多个集成电路。
14. 如权利要求13所述的系统,其中所述程序代码在由所述多 个处理单元中的至少一个处理单元执行时还使得将分配给所述多个集成电路中的第一集成电路的所述多个中断 中的一定数量的中断分配给所述第一集成电路的第一高速緩存域,其 中所选择的源中断包含在所述数量的中断中。
15. 如权利要求14所述的系统,其中所述多个集成电路是物理 处理器,所述多个处理单元是所述多个物理处理器的核,并且所述第 一高速緩存域包括由包含在所述第一物理处理器中的多个核共享的 高速緩存存储器。
16. —种方法,包括响应于中断活动性的量高于阔值,选择中断处理的性能模式; 响应于选择所述中断处理的性能模式,在多个物理处理器之间分 配多个中断源;在所述多个物理处理器中的第一处理器的高速緩存域之间分配 所述多个中断源中的第 一数量的中断源,其中所述第 一数量的中断源 曾被分配给所述第一处理器;以及将所述第 一数量的中断源中选择的高速率中断源分配给所述第 一处理器的处理单元。
17. 如权利要求16所述的方法,还包括响应于对于一定数量的连续时间段中断活动性的量低于阈值,选择中断处理的省电模式;以及响应于选择所述中断处理的省电模式,将所述多个中断源分配给 所述第一物理处理器。
18. 如权利要求17所述的方法,还包括在分配所述多个中断 源之前,将所述多个中断源分成多个中断源組。
19. 如权利要求18所述的方法,其中所述多个组基于中断源的 类别。
20. 如权利要求18所述的方法,其中所述多个组基于中断源的 活动等级。
21. 如权利要求16所述的方法,其中响应于选择所述中断处理 的性能模式,在多个物理处理器之间分配多个中断源基于如下公平 分配所述多个中断源,所述多个中断源的numa亲近度,以及所述多 个中断源的现有映射。
22. 如权利要求16所述的方法,其中响应于选择所述中断处理 的性能模式,在多个物理处理器之间分配多个中断源倾向于保持所述 多个中断源与所述多个物理处理器中先前被分配的物理处理器之间 的关联。
23. 如权利要求22所述的方法,其中在所述多个物理处理器中 曾被分配过所述第 一数量的中断源的第 一处理器的高速緩存域之间 分配所述多个中断源中第一数量的中断源,倾向于保持所述第一数量 的中断源与所述第 一处理器中先前被分配的高速緩存域之间的关联, 并且其中将所述第一数量的中断源中选择的高速率中断源分配给所 述第一处理器的处理单元倾向于保持所述选择的高速率中断源与所 述第一处理器中的先前被分配的处理单元关联。
全文摘要
本发明名称为多核和功率的中断平衡。这里说明一种用于在处理中断方面平衡省电和性能的方法和设备。当中断活动性的量超过阈值时,选择中断处理的性能模式。在性能模式期间,在多个物理套接口之中,即在多个物理处理器之中,分配中断和/或中断源。但是,如果对于一定数量的时间段中断活动低于阈值,这表示低中断活动性,那么选择省电模式。这里,将中断和/或源首先分配给单个处理器,以使其它物理处理器可以省电。而且,在将中断分配给物理处理器之后,还可进一步在该处理器的高速缓存域之中分配中断。此外,还可进一步将高活动等级、中断源、中断、或类别分配给特定的处理单元以提供服务。
文档编号G06F1/32GK101539798SQ20081017692
公开日2009年9月23日 申请日期2008年9月28日 优先权日2007年9月28日
发明者A·范德文 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1