CN101539798A - 多核和功率的中断平衡 - Google Patents

多核和功率的中断平衡 Download PDF

Info

Publication number
CN101539798A
CN101539798A CN200810176926A CN200810176926A CN101539798A CN 101539798 A CN101539798 A CN 101539798A CN 200810176926 A CN200810176926 A CN 200810176926A CN 200810176926 A CN200810176926 A CN 200810176926A CN 101539798 A CN101539798 A CN 101539798A
Authority
CN
China
Prior art keywords
interrupt
processor
interruptions
integrated circuit
activity
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.)
Granted
Application number
CN200810176926A
Other languages
English (en)
Other versions
CN101539798B (zh
Inventor
A·范德文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN101539798A publication Critical patent/CN101539798A/zh
Application granted granted Critical
Publication of CN101539798B publication Critical patent/CN101539798B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明名称为多核和功率的中断平衡。这里说明一种用于在处理中断方面平衡省电和性能的方法和设备。当中断活动性的量超过阈值时,选择中断处理的性能模式。在性能模式期间,在多个物理套接口之中,即在多个物理处理器之中,分配中断和/或中断源。但是,如果对于一定数量的时间段中断活动低于阈值,这表示低中断活动性,那么选择省电模式。这里,将中断和/或源首先分配给单个处理器,以使其它物理处理器可以省电。而且,在将中断分配给物理处理器之后,还可进一步在该处理器的高速缓存域之中分配中断。此外,还可进一步将高活动等级、中断源、中断、或类别分配给特定的处理单元以提供服务。

Description

多核和功率的中断平衡
技术领域
本发明涉及处理器领域,特定来说,涉及对优先处理单元提供品质和服务。
背景技术
半导体处理和逻辑设计中的进步使得存在于集成电路装置上的逻辑的数量不断增加。结果,计算机系统配置从系统中的单个或多个集成电路演变为存在于独立集成电路上的多个核和多个逻辑处理器。处理器或集成电路通常包括单个处理器管芯,其中该处理器管芯可包括任何数量的处理单元,例如核、线程、和/或逻辑处理器。
随着逻辑和功能性的增加,计算机系统中的管理功能变得更加普遍。许多处理器利用诸如系统管理模式(SMM)的管理模式来处理诸如联网、存储、和功率任务的管理任务。通常,请求管理的装置或源启动或生成中断。随着中断的数量和中断因计算机系统中的功能性的水平上升而增长,处理器执行这些管理任务的负担变得更加繁重。
传统上,甚至在多处理器系统中,通过单个引导处理器来对中断提供服务。尽管因为多处理器系统中的其它处理器能够保持在低功率模式,通过单个引导处理器来处理中断源可节省了功率,但是在高活动期间,其它处理器仍保留在空闲状态而等待单个处理器对中断提供服务。
发明内容
根据本发明一个方面,提供了一种包括程序代码的制造品,该程序代码在由机器执行时使该机器执行如下操作:确定一段时间内的中断活动性的量;响应于该一段时间内中断活动性的量超过中断活动的阈值,选择中断处理的第一模式;以及响应于选择该第一模式,在该机器中的多个集成电路之中分配多个中断。
根据本发明的另一方面,还提供了一种系统,包括:多个集成电路,每个集成电路包括由多个处理单元共享的高速缓存存储器;以及用于存储程序代码的存储器,该程序代码在由该多个处理单元中的至少一个处理单元执行时使得:确定是否在省电模式中处理多个中断;响应于确定在该省电模式中处理该多个中断,将对该多个中断的处理分配给该多个集成电路中的第一集成电路;以及基于在该多个处理单元之中公平分配该多个中断,将该多个中断中的选择的源中断分配给包含在该第一集成电路中的处理单元。
根据本发明的又一方面,还提供了一种方法,包括:响应于中断活动性的量高于阈值,选择中断处理的性能模式;响应于选择该中断处理的性能模式,在多个物理处理器之间分配多个中断源;在该多个物理处理器中的第一处理器的高速缓存域之间分配该多个中断源中的第一数量的中断源,其中该第一数量的中断源曾被分配给该第一处理器;以及将该第一数量的中断源中的选择的高速率中断源分配给该第一处理器的处理单元。
本发明提供的这些方法、系统等,在处理中断方面提供了省电和性能之间的平衡。
附图说明
附图中的各图举例说明本发明,但本发明不是要局限于附图中的各图。
图1示出能够在处理单元中间公平分配中断的多处理单元处理器的实施例。
图2示出能够在操作的性能模式期间在多个处理器之中公平分配中断的多处理器系统的实施例。
图3示出用于平衡处理器、高速缓存域、和处理单元之中的中断分配的方法的流程图的实施例。
具体实施方式
在以下说明中,阐述了大量具体细节,例如具体的多处理器配置的实例、中断源的类型、以及实现细节等,以便提供对本发明的充分理解。然而,对本领域的技术人员显而易见的是,不需要采用这些具体细节也可实施本发明。在其它情况下,没有详细说明说明公知的组件或方法,例如不同类型的处理器、中断、代码实现和微处理器的具体操作细节,以免不必要地使本发明不清楚。
本文说明的方法和设备用于平衡中断处理的功率和性能。具体地,主要参照其中每个处理器具有多个核的多处理器计算机系统来说明功率和性能的平衡。但是,用于平衡功率和性能的方法和设备不限于此,它们可以在诸如蜂窝电话、个人数字助理、嵌入式控制器、移动平台、桌面型平台、以及服务器平台等的任何集成电路装置或系统上实现或是与该任何集成电路装置或系统联合实现,以及可以结合任何数量(例如一个)的处理器来实现,其中处理器具有任何数量的诸如核、硬件线程、软件线程、逻辑处理器、或其它处理单元等的处理单元。
参考图1,示出能够在处理单元之中分配中断的多核处理器的实施例。处理单元是指线程、程序、上下文、逻辑处理器、硬件线程、核、和/或任何处理单元,这些处理单元共享对诸如预约单元、执行单元、流水线、以及较高级的高速缓存/存储器等处理器资源的访问。物理处理器通常是指可包括任何数量的其它诸如核或硬件线程等的处理单元的集成电路。
核通常是指位于集成电路上的能够维持独立架构状态的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核不同,硬件线程通常是指位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如图1所示,物理处理器100包括两个核,即核101和102,它们共享对较高级的高速缓存110的访问。此外,核101包括两个硬件线程101a和101b,而核102包括两个硬件线程102a和102b。因此,当处理器100能够执行四个软件线程时,例如操作系统等的软件实体可将处理器100视为是4个单独的处理器。
可见,当某些资源被共享而其它资源专用于架构状态时,所谓的硬件线程和核之间的线路重叠。然而,通常,核和硬件线程被操作系统视为是独立的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。也就是说,软件将物理处理器上的两个核或线程视为是两个独立的处理器。此外,每个核可包括用于执行多个软件线程的多个硬件线程。因此,处理单元包括能够维持上下文的任何诸如核、线程、硬件线程、虚拟机、或其它资源等的前述单元。
在一个实施例中,处理器100是能够并行地执行多个线程的多核处理器。这里,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程与架构状态寄存器102a相关联,而第四线程与架构状态寄存器102b相关联。在一个实施例中,提到处理器100中的处理单元时包括提到核101和102以及线程101a、101b、102a和102b。在另一个实施例中,处理单元是指位于处理域的分级结构中的相同级别上的单元。例如,核101和102在相同的域级别中,而线程101a、101b、102a和102b在相同的域级别中,因为它们都包含在核的域中。
虽然处理器100可包含不对称核,即,具有不同配置、功能单元、和/或逻辑的核,但是图中示出对称核。因此,不再详细论述图示与核101等同的核102,以免使说明不清楚。
如图所示,架构状态寄存器101a是从架构状态寄存器101b中复制的,因此能够为逻辑处理器101a和逻辑处理器101b存储独立的架构状态/上下文。还可为线程101a和101b复制其它的诸如指令指针和在重命名分配器逻辑130中的重命名逻辑等的较小资源。诸如重排序/引退单元135中的重排序缓冲器、ILTB 120、载入/存储缓冲器、以及队列等的一些资源可通过分区来共享。诸如通用内部寄存器、页表基址寄存器、较低级数据高速缓存和数据-TLB(D-Cache and D-TLB)150、执行单元140、以及乱序单元135等的其它资源可完全共享。
总线接口模块105用于与外设于处理器100的装置进行通信,这些装置如系统存储器175、芯片组、北桥或其它集成电路。存储器175可专用于处理器100或与系统中的其它装置共享。存储器175的实例包括动态随机存取存储器(DRAM)、静态RAM(SRAM)、非易失性存储器(NV存储器)、以及长期存储设备。
通常,总线接口单元105包括用于传送和接收互连170上的总线信号的输入/输出(I/O)缓冲器。互连170的实例包括射电收发逻辑(GTL)总线、GTL+总线、双倍数据速率(DDR)总线、并发总线、差分总线、高速缓存相干总线、点对点总线、多点总线或其它已知的用于实现任何已知的总线协议的互连。所示的总线接口单元105还与较高级的高速缓存110通信。
较高级或更远离的高速缓存110用于缓存最近提取和/或操作的元素。注意,较高级或更远离是指提高或者进一步远离执行单元的高速缓存级。在一个实施例中,较高级的高速缓存110是二级数据高速缓存。但是,较高级的高速缓存110不限于此,它可以是或包含指令高速缓存(又可称为踪迹高速缓存)。踪迹高速缓存可以改为耦合在解码器125之后以存储最近的解码踪迹。模块120还可包含用于预测将要被执行/被采用的分支的分支目标缓冲器以及用于存储指令的地址转换条目的指令-转换缓冲器(I-TLB)。这里,能够进行推测性执行的处理器可预取并且推测性地执行所预测的分支。
解码模块125耦合到提取单元120以解码所提取的元素。在一个实施例中,处理器100与定义/指定可在处理器100上执行的指令的指令集架构(ISA)关联。这里,由ISA辨识的机器代码指令通常包括被称为操作码的指令的部分,其引用/指定要执行的指令或操作。
在一个实例中,分配器和重命名器块130包括分配器以用于预约例如用于存储指令处理结果的寄存器文件的资源。然而,线程101a和101b可能够乱序执行,其中分配器和重命名器块130还预约其它资源,如用于追踪指令结果的重排序缓冲器。单元130还可以包括寄存器重命名器以用来将程序/指令引用寄存器重命名为位于处理器100内部的其它寄存器。重排序/引退单元135包括用于支持乱序执行以及稍后对乱序执行的指令有序引退的组件,如上文提到的重排序缓冲器、载入缓冲器、以及存储缓冲器。
在一个实施例中,调度器和执行单元块140包括用于在执行单元上调度指令/操作的调度器单元。实际上,在执行单元上根据它们的类型可用性可调度指令/操作。例如,在具有可用的浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器文件以用于存储信息指令处理结果。示例的执行单元包括浮点执行单元、整数执行单元、跳转执行单元、载入执行单元、存储执行单元、以及其它已知的执行单元。
较低级的数据高速缓存和数据转换缓冲器(D-TLB)150耦合到执行单元140。数据高速缓存用于存储最近使用/操作的元素,如数据操作数,其可以诸如修改的、独占的、共享的、以及无效(MESI)的状态等的存储器一致状态保存。D-TLB用于存储最近的虚拟/线性-物理地址转换。之前,D-TLB条目包括虚拟地址、物理地址、以及例如偏移等的其它信息,以便为最近使用的虚拟存储器地址提供低廉的转换。
在图1中,处理器100图示为是一个物理微处理器,其具有两个核以及四个硬件线程。但是,处理器100并不限于此。事实上,如下面将更详细地说明,在一个实施例中,不论是只将中断源的部分分配给处理器100还是将所有中断源都分配给处理器100,处理器100内的第一级分配在高速缓存域级别上进行。高速缓存域包括共享对高速缓存访问的任何处理单元。如上文所论述,在高速缓存域上的划分可在任何处理单元级别上进行。例如,核101和核102共享对高速缓存110的访问。结果,可在核之间分配中断源。此外,在分配给核之后,还可进一步在本地线程之中分配中断。在另一个实施例中,在线程101a、101b、102a和102b之间进行分配。
因此,处理器100可包括任何数量的处理单元以及高速缓存域。例如,处理器100可包括四个核,其中第一的两个核共享对第一级别的两个数据高速缓存(即,第一高速缓存域)的访问,而其它两个核共享对第二级别的两个数据高速缓存(即,第二高速缓存域)的访问。虽然对物理存储器100的说明集中于微处理器,但是处理器100可以包括具有任何数量的多核/线程的诸如嵌入式处理器、单元处理器、微处理器、或其它已知的处理器等的任何物理处理设备。
另外,还为处理器100示出乱序处理器的过于简单化的图示的微架构。但是,处理器100中示出的任何模块/单元可以以不同的顺序/方式进行配置,可以互不包含,以及可以相互重叠包括驻留在多个模块中的组件部分。例如,可在处理器100中分布预约单元,该预约单元包括处理器100的不同模块中的多个小型预约表。
转到图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和220可以是具有类似组件的对称处理器或具有不同处理单元的非对称处理器。
在一个实施例中,系统200能够确定一段时间内的中断活动性的量。例如,通过软件周期性地轮询系统以确定活动性的量。说明如下:代码在系统200中的处理器上执行时每10秒钟计算上一个10秒钟在中断处理上所花的时间量。在另一个实施例中,中断活动性的量包括在一段时间内的中断事件和/或源的数量。例如,如果有大量的装置/源生成中断或单个装置生成大量中断,则可优选性能模式。此外,处理器或诸如操作系统的其它软件可跟踪中断统计/信息,以用于确定中断活动性的量。
因此,在一个实施例中,当中断活动性的量超过阈值量时,选择中断处理的第一模式。这里,因为中断活动性超过阈值,这表示更大的中断活动性,则第一模式是性能模式。注意,阈值可以变化和/或预先确定以便为中断处理提供性能和功率之间的最优平衡。事实上,在上述实例中,在任何单个时间段内,如果中断活动性超过阈值,那么选择性能模式。但是,在更保守的实施例中,在一定数量的时间段或连续时间段内中断活动性的量超过阈值时使得选择性能模式。
性能模式是指这样一种操作模式,其中在多个处理装置/单元之中分配中断和/或中断源以高效地对多个中断和/或源提供服务。在一个实施例中,性能模式包括在多个集成电路或诸如处理器205、210、215和220等的物理处理器之中分配多个中断。以前,会将中断分配给单个物理引导处理器来处理。虽然这使得其它处理器能够进入省电模式,但是会在处理大量中断上花费大量的时间,其可对其它软件实体的执行造成不利的影响。因此,当活动性的量超过阈值时,可在多个处理器之中分配/分配中断以便更快速地处理多个中断。
在一个实施例中,在多个集成电路或诸如处理器205、210、215和220等的物理处理器之中分配中断是基于在这些物理处理器之中公平分配中断和/或中断源来进行的。例如,如果有四个中断要处理,并且系统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,确定中断活动性的量。在一个实施例中,中断活动性的量的确定包括确定在一段时间内用于处理中断所花的时间量。类似地,中断活动性的量可包括在一段时间内的中断事件和/或源的数量。但是,中断活动数量的确定可以通过用于追踪中断、处理时间或其它中断度量的已知方法来进行。
接下来,在流程310中,确定活动数量是否大于阈值。注意,可改为确定活动数量是否小于阈值。阈值可以是预定值或其它系统/用户设置的值。如果活动性的量大于阈值,那么在流程320中选择性能模式。相反,如果中断活动性的量小于阈值,那么在流程315中选择功率模式。或者,维持选择性能模式,直到对于多个时间段其活动性的量小于阈值为止。作为说明性实例,对于三个连续时间段,其数量小于阈值。这里,在流程310中,可利用变量来追踪有多少个连读的其中断活动性的量小于阈值的时间段的数量。如果该变量表示并没有三个连续时间段低于阈值,那么流程返回到流程305以等待下一个时间段,而仍选择性能模式。当该变量表示有三个连续时间段低于阈值,那么在流程315中选择功率模式。
在一个实施例中,不论是处于性能模式还是处于功率模式,可将中断源按照类别和/或等级分组。例如,可将中断源分组成以太网、联网、存储、定时、功率、杂类别或其它类别。此外,可为这些类别指定等级或优先级。在另一个实施例中,只在性能模式中才将中断源分组以用于分配。但是,对中断源进行分组是可选择的,并且可以不在将中断分配或分配给处理器之前进行。
如果选择性能模式,那么在流程335中,在这些物理处理器之中分配中断源和/或中断。在一个实施例中,在这些物理处理器之中分配是基于公平分配。这里,可将源或成类别的源分配给不同的物理处理器,但是每个处理器的中断和/或源的总数量是大致相等的。此外,分配也可基于中断源与物理处理器的接近度(即,numa亲近度)、以及对物理处理器的先前分配/映射来进行。在一个实施例中,利用奖励方法来基于上述因素使分配具有倾向性。例如,可指定奖励以用于保持以太网中断与在接近度上接近生成中断的以太网装置的第一物理处理器/套接口的关联。
相反,如果对于一定数量的时间段,中断活动性的量低于阈值,那么将中断源首先分配/分配给单个物理处理器。注意,由于设计实现,时间段的数量可以是任何正整数个时间段。例如,它们可以是:时间段的百分比,例如过去三个时间段中的两个时间段;以及连续时间段,例如两个连续时间段或三个连续时间段低于阈值。
在具有一个以上的物理处理器的处理器系统中,在省电模式分配有中断源的单个处理器可能在任一模式中接收中断源。因此,在一个实施例中,流程340-350对于接收中断的物理处理器来说是相同的,跟模式无关。但是,在另一个实施例中,可在性能模式而不是功率模式中将中断源分配给高速缓存域和处理单元。
在流程340中,在处理器的高速缓存域之中分配已分配或分发给物理处理器的中断。在一个实施例中,高速缓存域是由多个处理单元共享的最低级的高速缓存。例如,可将中断分配给由核共享的二级数据高速缓存的高速缓存域。在另一个实施例中,高速缓存域包括由线程共享的一级数据高速缓存。与在性能模式中在物理处理器之间进行分配类似,在高速缓存域中间分配也可基于先前的映射/关联、numa亲近度、以及在高速缓存域上的公平分配。
在流程350中,将选择的高速率或多个高速率/活动性中断源进一步分配给特定的如核或线程的处理单元。如上所述,每个等级或类别可与不同的用于确定高活动性的阈值相关联。例如,以太网类别可与比存储类别高的阈值关联。响应于确定中断为高速率、高数量、和/或高活动性,可将它们分配给特定的处理单元。注意,当分配选择的高速率中断源时,也可考虑numa亲近度、先前的映射/关联、以及公平分配。
如上所述,可注意到通过使用双模式的中断处理的好处。在低活动性时间段期间,利用省电模式以允许其它物理处理器进入低功率状态,而首先由单个处理器来处理中断。然而,在高中断活动性时间段期间,选择性能模式,以在多个物理处理器之中分配中断。这种分配允许在多个物理处理器上并行地处理中断,从而产生较快速的服务时间以及较快速地返回到正常执行。此外,可将中断和源分组并分配给高速缓存域并最终分配给特定处理单元,以进一步提供高效的中断处理。
上述方法、软件、固件或代码的实施例可通过存储在机器可访问或机器可读介质上的可由处理单元执行的指令或代码来实现。机器可访问/可读介质包括用于以可由诸如计算机或电子系统的机器可读的形式提供(即,存储和/或传送)信息的任何机构。例如,机器可访问介质包括:随机存取存储器(RAM),如静态RAM(SRAM)或动态RAM(DRAM);只读存储器(ROM);磁或光存储介质;以及闪存装置。又如,机器可访问/可读介质包括用于接收、复制、存储、传送或以其它方式操纵包括上述方法、软件、固件或代码的实施例的电、光、声或其它形式的传播信号(如载波、红外信号、数字信号)等的任何机构。
整篇说明书中提到“一个实施例”或者“实施例”时表示,结合该实施例说明的特定特征、结构或特性包含在本发明的一个实施例中,并且不需要存在于所说明的所有实施例中。因此,整篇说明书中的各个位置出现短语“在一个实施例中”或者“在实施例中”时不一定都指相同的实施例。此外,可在一个或多个实施例中以任何适合的方式组合这些特定的特征、结构或特性。
在前述说明中,参照特定的示例性实施例给出了详细的说明。但是,很显然,在不偏离如随附权利要求所述的本发明的宽广精神和范围的情况下,可以对此做出各种修改和改变。因此,应将说明和附图视为是说明性而不是限制性意义的。此外,前述对实施例和其它示例性语言的使用并不一定都指相同的实施例或相同的实例,而是可以指不同的区别的实施例,也可指相同的实施例。

Claims (23)

1.一种包括程序代码的制造品,所述程序代码在由机器执行时使所述机器执行如下操作:
确定一段时间内的中断活动性的量;
响应于所述一段时间内中断活动性的量超过中断活动性的阈值,选择中断处理的第一模式;以及
响应于选择所述第一模式,在所述机器中的多个集成电路之中分配多个中断。
2.如权利要求1所述的制造品,其中确定一段时间内的中断活动性的量包括确定在所述一段时间内花费在处理中断上的大致的时间量。
3.如权利要求1所述的制造品,其中确定一段时间内的中断活动性的量包括确定在所述一段时间内的中断事件的数量。
4.如权利要求2所述的制造品,其中所述一段时间包括一定数量的连续周期性时间段。
5.如权利要求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所述的方法,其中在所述多个物理处理器中曾被分配过所述第一数量的中断源的第一处理器的高速缓存域之间分配所述多个中断源中第一数量的中断源,倾向于保持所述第一数量的中断源与所述第一处理器中先前被分配的高速缓存域之间的关联,并且其中将所述第一数量的中断源中选择的高速率中断源分配给所述第一处理器的处理单元倾向于保持所述选择的高速率中断源与所述第一处理器中的先前被分配的处理单元关联。
CN200810176926.0A 2007-09-28 2008-09-28 多核和功率的中断平衡 Expired - Fee Related CN101539798B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/863,715 US7962679B2 (en) 2007-09-28 2007-09-28 Interrupt balancing for multi-core and power
US11/863715 2007-09-28

Publications (2)

Publication Number Publication Date
CN101539798A true CN101539798A (zh) 2009-09-23
CN101539798B CN101539798B (zh) 2014-04-23

Family

ID=40509660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810176926.0A Expired - Fee Related CN101539798B (zh) 2007-09-28 2008-09-28 多核和功率的中断平衡

Country Status (2)

Country Link
US (1) US7962679B2 (zh)
CN (1) CN101539798B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360311A (zh) * 2010-05-12 2012-02-22 瑞萨电子株式会社 计算机系统
CN103631655A (zh) * 2012-08-21 2014-03-12 联想(新加坡)私人有限公司 大核和小核中的任务调度
CN103765409A (zh) * 2011-09-06 2014-04-30 英特尔公司 有功率效率的处理器体系结构
CN106484526A (zh) * 2015-08-25 2017-03-08 柯尼卡美能达株式会社 图像处理装置以及控制任务的分配方法
CN106663072A (zh) * 2014-09-26 2017-05-10 英特尔公司 用于配置中断的集合的装置和方法
WO2022247198A1 (zh) * 2021-05-28 2022-12-01 上海阵量智能科技有限公司 中断分发器、数据处理芯片、中断分发及数据处理方法

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783811B2 (en) * 2007-12-17 2010-08-24 Microsoft Corporation Efficient interrupt message definition
CN101546276B (zh) * 2008-03-26 2012-12-19 国际商业机器公司 多核环境下实现中断调度的方法及多核处理器
US7793025B2 (en) * 2008-03-28 2010-09-07 Freescale Semiconductor, Inc. Hardware managed context sensitive interrupt priority level control
CN101354664B (zh) * 2008-08-19 2011-12-28 中兴通讯股份有限公司 多核处理器中断负载均衡方法和装置
US8321614B2 (en) * 2009-04-24 2012-11-27 Empire Technology Development Llc Dynamic scheduling interrupt controller for multiprocessors
US8260996B2 (en) * 2009-04-24 2012-09-04 Empire Technology Development Llc Interrupt optimization for multiprocessors
KR101610828B1 (ko) * 2009-09-23 2016-04-08 삼성전자주식회사 멀티코어 프로세서의 인터럽트 온/오프 관리 장치와 방법
US8234431B2 (en) * 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors
US9081621B2 (en) * 2009-11-25 2015-07-14 Microsoft Technology Licensing, Llc Efficient input/output-aware multi-processor virtual machine scheduling
US8832483B1 (en) 2009-12-16 2014-09-09 Applied Micro Cicuits Corporation System-on-chip with power-save mode processor
US8607083B2 (en) * 2010-04-01 2013-12-10 Intel Corporation Method and apparatus for interrupt power management
US8352685B2 (en) 2010-08-20 2013-01-08 Apple Inc. Combining write buffer with dynamically adjustable flush metrics
US8478923B2 (en) * 2010-09-25 2013-07-02 International Business Machines Corporation Interrupt suppression by processing just first interrupt of a same type
KR101717494B1 (ko) * 2010-10-08 2017-03-28 삼성전자주식회사 인터럽트 처리 장치 및 방법
US8959270B2 (en) 2010-12-07 2015-02-17 Apple Inc. Interrupt distribution scheme
US8458386B2 (en) 2010-12-07 2013-06-04 Apple Inc. Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements
US8601194B2 (en) * 2011-02-08 2013-12-03 Red Hat Israel, Ltd. On-demand interrupt vector allocation based on activity detection
US9003094B2 (en) * 2011-08-30 2015-04-07 Red Hat Israel, Ltd. Optimistic interrupt affinity for devices
WO2013069159A1 (ja) * 2011-11-11 2013-05-16 富士通株式会社 電子計算機及び割り込み制御方法
CN102520782A (zh) * 2011-12-15 2012-06-27 江苏中科梦兰电子科技有限公司 基于处理器核数自动调节的电源管理方法
JP5981020B2 (ja) * 2012-04-24 2016-08-31 インテル コーポレイション 効率的な消費電力管理のための動的インタラプト再コンフィグレーション
US8862828B2 (en) * 2012-06-28 2014-10-14 Intel Corporation Sub-numa clustering
KR102060431B1 (ko) * 2012-08-24 2020-02-11 삼성전자주식회사 멀티 코어 시스템의 전력 관리 장치 및 방법
US9183144B2 (en) * 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9678564B2 (en) * 2012-12-21 2017-06-13 Nxp B.V. Multiprocessor system with interrupt distributor
US10073779B2 (en) 2012-12-28 2018-09-11 Intel Corporation Processors having virtually clustered cores and cache slices
US9164935B2 (en) * 2013-01-04 2015-10-20 International Business Machines Corporation Determining when to throttle interrupts to limit interrupt processing to an interrupt processing time period
US9836418B2 (en) 2013-03-13 2017-12-05 Dornerworks, Ltd. System and method for deterministic time partitioning of asynchronous tasks in a computing environment
US9424212B2 (en) 2013-06-13 2016-08-23 Microsoft Technology Licensing, Llc Operating system-managed interrupt steering in multiprocessor systems
US9690706B2 (en) 2015-03-25 2017-06-27 Intel Corporation Changing cache ownership in clustered multiprocessor
US10089265B2 (en) 2015-08-07 2018-10-02 Mediatek Inc. Methods and systems for handling interrupt requests
US11054884B2 (en) 2016-12-12 2021-07-06 Intel Corporation Using network interface controller (NIC) queue depth for power state management
US10540300B2 (en) * 2017-02-16 2020-01-21 Qualcomm Incorporated Optimizing network driver performance and power consumption in multi-core processor-based systems
US10761592B2 (en) * 2018-02-23 2020-09-01 Dell Products L.P. Power subsystem-monitoring-based graphics processing system
US10728167B2 (en) 2018-08-10 2020-07-28 Oracle International Corporation Interrupt distribution of a single flow across multiple processors

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
US6738847B1 (en) * 2000-11-10 2004-05-18 Unisys Corporation Method for assigning a multiplicity of interrupt vectors in a symmetric multi-processor computing environment
US7444639B2 (en) * 2001-12-20 2008-10-28 Texas Insturments Incorporated Load balanced interrupt handling in an embedded symmetric multiprocessor system
US7028302B2 (en) * 2002-04-24 2006-04-11 Hewlett-Packard Development Company, L.P. System and method for automatically tuning a multiprocessor computer system
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7543306B2 (en) * 2003-07-02 2009-06-02 Intel Corporation Method, system, and program for handling device interrupts in a multi-processor environment
US7362705B2 (en) * 2004-05-13 2008-04-22 International Business Machines Corporation Dynamic load-based credit distribution
US7170310B2 (en) * 2004-09-08 2007-01-30 International Business Machines Corporation System and method using locally heated island for integrated circuit testing
US20060095624A1 (en) * 2004-11-03 2006-05-04 Ashok Raj Retargeting device interrupt destinations
US7457922B2 (en) * 2004-11-20 2008-11-25 International Business Machines Corporation Cache line placement prediction for multiprocessor non-uniform cache architecture systems
US20060112208A1 (en) * 2004-11-22 2006-05-25 International Business Machines Corporation Interrupt thresholding for SMT and multi processor systems
US7281074B2 (en) * 2005-06-29 2007-10-09 Intel Corporation Method and apparatus to quiesce USB activities using interrupt descriptor caching and asynchronous notifications
US8463971B2 (en) * 2005-08-22 2013-06-11 Oracle America Inc. Approach for distributing interrupts from high-interrupt load devices
US7610425B2 (en) * 2005-08-22 2009-10-27 Sun Microsystems, Inc. Approach for managing interrupt load distribution
US7644293B2 (en) * 2006-06-29 2010-01-05 Intel Corporation Method and apparatus for dynamically controlling power management in a distributed system
US20080140895A1 (en) * 2006-12-09 2008-06-12 International Business Machines Corporation Systems and Arrangements for Interrupt Management in a Processing Environment

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360311B (zh) * 2010-05-12 2015-09-23 瑞萨电子株式会社 计算机系统
CN102360311A (zh) * 2010-05-12 2012-02-22 瑞萨电子株式会社 计算机系统
US9870047B2 (en) 2011-09-06 2018-01-16 Intel Corporation Power efficient processor architecture
US10048743B2 (en) 2011-09-06 2018-08-14 Intel Corporation Power efficient processor architecture
US9360927B2 (en) 2011-09-06 2016-06-07 Intel Corporation Power efficient processor architecture
US10664039B2 (en) 2011-09-06 2020-05-26 Intel Corporation Power efficient processor architecture
CN103765409A (zh) * 2011-09-06 2014-04-30 英特尔公司 有功率效率的处理器体系结构
US9864427B2 (en) 2011-09-06 2018-01-09 Intel Corporation Power efficient processor architecture
CN103631655A (zh) * 2012-08-21 2014-03-12 联想(新加坡)私人有限公司 大核和小核中的任务调度
CN106663072A (zh) * 2014-09-26 2017-05-10 英特尔公司 用于配置中断的集合的装置和方法
CN106663072B (zh) * 2014-09-26 2020-11-17 英特尔公司 用于配置中断的集合的装置和方法
US10936313B2 (en) 2014-09-26 2021-03-02 Intel Corporation Apparatus and method for configuring sets of interrupts
CN112698928A (zh) * 2014-09-26 2021-04-23 英特尔公司 用于配置中断的集合的装置和方法
US11500633B2 (en) 2014-09-26 2022-11-15 Intel Corporation Apparatus and method for configuring sets of interrupts
US11740902B2 (en) 2014-09-26 2023-08-29 Intel Corporation Apparatus and method for configuring sets of interrupts
CN106484526A (zh) * 2015-08-25 2017-03-08 柯尼卡美能达株式会社 图像处理装置以及控制任务的分配方法
WO2022247198A1 (zh) * 2021-05-28 2022-12-01 上海阵量智能科技有限公司 中断分发器、数据处理芯片、中断分发及数据处理方法

Also Published As

Publication number Publication date
US7962679B2 (en) 2011-06-14
US20090089470A1 (en) 2009-04-02
CN101539798B (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
CN101539798B (zh) 多核和功率的中断平衡
US7761720B2 (en) Mechanism for processor power state aware distribution of lowest priority interrupts
US6205508B1 (en) Method for distributing interrupts in a multi-processor system
CN104115093B (zh) 包括多个处理元件之间的功率和性能平衡的用于能效和节能的方法、装置和系统
US6295573B1 (en) Point-to-point interrupt messaging within a multiprocessing computer system
US9575895B2 (en) Providing common caching agent for core and integrated input/output (IO) module
US6038651A (en) SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum
CN104781756B (zh) 管理处理器的功率状态
US8489904B2 (en) Allocating computing system power levels responsive to service level agreements
CN102033738B (zh) 超线程微处理器中经线程优先级提供服务质量
CN109154924A (zh) 多个上行链路端口设备
KR101814412B1 (ko) 데이터 버퍼와 연관된 스누프 필터링의 제공
TW201734758A (zh) 使用硬體佇列裝置的多核心通訊加速
US9465741B2 (en) Multi processor multi domain conversion bridge with out of order return buffering
US9552308B2 (en) Early wake-warn for clock gating control
US10338974B2 (en) Virtual retry queue
JP6984022B2 (ja) マルチノードシステムの低電力管理
CN101946235A (zh) 用于在共享处理器分区环境中移动线程的方法及装置
KR20100053593A (ko) 컴퓨터 시스템에서 다른 프로세서들에 대한 시스템 관리 인터럽트들을 방송하기 위한 메커니즘
CN112925736A (zh) 流式传输交换结构接口
US7958510B2 (en) Device, system and method of managing a resource request

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140423

Termination date: 20180928

CF01 Termination of patent right due to non-payment of annual fee