用于有效功率管理的动态中断重新配置的制作方法

文档序号:6498328阅读:159来源:国知局
用于有效功率管理的动态中断重新配置的制作方法
【专利摘要】用于通过中断的动态重新配置来促进有效功率管理的方法、装置和系统。中断向量被映射到多核处理器中的各种处理器核,并且,监视处理器核上的中断工作量。当给定处理器核的中断工作量被检测为下降到低于阈值时,通过将当前被映射到处理器核的中断向量重新映射到至少一个其他处理器核来动态地重新配置中断向量,使得在重新配置之后不存在被映射到该处理器核的中断向量。然后,使核能够被放在较深的空闲状态中。可以将类似的操作应用于附加处理器核,从而实现中断向量收缩到更少的处理器核上。响应于检测到从空闲状态显现的核,可以执行中断向量的重新配置以通过将向量的部分重新映射到那些核来跨活动核重新平衡向量的指派。
【专利说明】用于有效功率管理的动态中断重新配置

【技术领域】
[0001]本发明的领域总体涉及计算机系统,并且更具体但不排他地涉及在多核处理器中减少功率消耗。

【背景技术】
[0002]中断是从设备到CPU (中央处理单元,即处理器)的硬件信号,向CPU通知设备需要注意,并发信号通知CPU应该停止当前处理且对设备做出响应。如果CPU正在执行具有比中断的优先级低的优先级的任务,则CPU中止其当前线程。CPU然后调用针对发送中断信号的设备的干扰处理机。中断处理机服务于设备,并且当中断处理机返回时,CPU重新开始其在中断发生之前正在进行的处理。
[0003]在旧的总线技术中,中断被称为“遗留的(legacy)”或“基于线的”中断。在这些技术的情况下,通过使用从总线的主线分离地布线的一个或多个外部引脚来发信号通知中断,这是被称为“带外”的进程。诸如PCIe (快速外围部件互连)之类的较新的总线技术通过经由带内机制模仿遗留中断来维持软件兼容性。这些模仿的中断被主机操作系统视为遗留中断。如PCI标准所定义的基于线的中断被限于仅四条线,并且由于多个设备而经常被共享,从而引起增加的等待时间。
[0004]PCI 2.2 规范引入了 MSI (消息信号通知的中断,Message-Signaled Interrupt),作为对传统的基于线的中断的替代。取代使用专用引脚来触发中断,MSI使设备能够通过将具体值写到特定地址来触发中断。消息目的地地址和消息数据被称为MSI “向量”。PCI
3.0定义了被称为MS1-X的MSI的扩展形式,其解决了 MSI的限制特征。例如,虽然MSI具有每适配器功能32个MSI消息的限制,但是MS1-X将消息的数量增加到2048。另一示例是,MSI提供仅单个MSI地址值,使得全部消息以处理器的相同组为目标。MS1-X通过针对每个消息提供唯一地址和数据对来克服该问题。
[0005]高级可编程中断控制器(APIC)由Intel?在1997年引入,且最初以在采用对称多处理器(SMP)架构的系统中对中断的管理为目标。Microsoft注意到APIC对SMP系统的益处,并将在单处理器系统上针对APIC的支持设计到其操作系统中。现今,在基本上全部基于x86的计算机中采用APICJtS CPU内部的部件和/或外部1芯片中的部件。
[0006]功率管理是包括计算机的电子设备的特征,所述计算机试图在存在非活动时“关断”设备的某些或所有部分或者将设备的某些或所有部分置于某较低功率状态中。管理由微处理器消耗的能量延长了电池寿命、降低了冷却需求、减少了电噪声并减少了操作成本。因为移动计算正变得更普遍存在,所以在诸如膝上型计算机、蜂窝电话和个人数字助理之类的移动电设备中,功率管理正变得更重要。功率管理针对服务器部署(例如服务器场和数据中心)以及针对台式计算机也是有利的。
[0007]—种用于针对微处理器和计算机系统的功率管理的标准是高级配置和功率接口(ACPI),其是由 Hewlett-Packard?、Intel?、Microsoft?、Phoenix? 和 Toshiba? 共同开发的开放工业规范。ACPI建立了实现移动、台式和服务器平台的OS导向的配置、功率管理和热管理的工业标准接口。当在1996年首次公布时,ACPI将功率管理B1S代码、高级功率管理(APM)应用编程接口(API)、PNPB1S API和多处理器规范(MPS)表格的现有集合演进成完好定义的功率管理和配置接口规范。ACPI规范使新的功率管理技术能够在操作系统和硬件中独立地演进,同时确保它们继续一起工作。

【专利附图】

【附图说明】
[0008]随着本发明的上述方面和许多伴随的优势通过参考在结合附图做出时的以下详细描述而变得更好理解,这些方面和优势将变得更容易被意识到,在附图中,贯穿各种视图,相似的附图标记指代相似的部分,除非另有指明:
图1是根据一个实施例的,被配置成支持用于有效功率管理的中断的动态重新配置的计算机系统的示意框图;
图2是描绘了根据一个实施例的,用于实现动态中断配置和中断请求平衡的选择性软件部件的框图;
图3是图示了根据一个实施例的,用于实施用于有效功率管理的中断的动态重新配置的操作和逻辑的流程图;
图4a-4c图示了在其下中断向量被重新映射离开第一处理器核的中断向量的动态重新配置的第一示例;
图5a_5c图示了在其下中断向量被重新映射离开第一处理器核的中断向量的动态重新配置的第二示例;
图6a_6c图示了在其下第一核被返回到活动状态并且中断向量被重新映射以实现跨全部活动核的负载平衡的中断向量的动态重新配置的第三示例;
图7a_7c图示了在其下第一核被返回到活动状态并且中断向量被重新映射以实现跨全部活动核的负载平衡的中断向量的动态重新配置的第四示例;
图8a_8c图示了在其下中断向量被收缩到更少的核上以使核能够被放到空闲状态中的对应于中断扇入(fan in)序列的中断向量的动态重新配置的第五示例;以及
图9a-9c图示了在其下随着那些核被从空闲状态返回到活动状态,中断向量被重新映射到新近可用的处理器核的对应于中断扇出(fan out)序列的中断向量的动态重新配置的第六示例。

【具体实施方式】
[0009]本文描述了用于实施用于有效功率管理的动态中断重新配置的方法、装置和系统的实施例。在下文的描述中,阐述了许多具体细节(诸如,PCIe和MSI向量的使用)来提供本发明的实施例的彻底理解。然而,本领域技术人员将认识到,可以在没有具体细节中的一个或多个的情况下或者在具有其他方法、部件、材料等等的情况下实行本发明。在其他实例中,未示出或详细描述众所周知的结构、材料或操作来避免使本发明的方面模糊不清。
[0010]贯穿本说明书对“一个实施例”或“一实施例”的引用意味着:结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书的各种位置中短语“在一个实施例中”或“在一实施例中”的出现未必全部指代相同的实施例。此夕卜,在一个或多个实施例中可以以任何适合的方式组合特定特征、结构或特性。
[0011]为了清楚,本文的图中的各个部件也可以由它们在图中的标记指代,而不是由特定的附图标记指代。附加地,指代特定类型的部件(如与特定部件相对)的附图标记可以是以由意指“典型”的“(TYP)”跟随的附图标记示出的。应理解,这些部件的配置将是可存在但为了简单和清楚而未在图中示出的类似部件的典型。
[0012]图1示出了图示根据一个实施例的用于实施用于有效功率管理的动态中断重新配置的示例性部件的框级图。操作系统(OS)以及各种应用和OS服务被运行在包括标记为核1-η的多个处理器核102的CPU 100上。一般地,核η的数量可以从2向上变动,包括但不限于 2、4、6、8、10、12、16、20、24、48、64、128 等等。CPU 100 还包括 APIC 104 和功率控制单元(P⑶)105。朝向图的中间是NIC (网络接口控制器)106,其包括物理端口对108和110以及多个逻辑端口 112-1 — 112-m,其中在一个实施例中m是2048或更小。每个逻辑端口具有一个或多个关联的输入队列114和输出队列115。NIC 106经由一个或多个PCIe链路与CPU 100通信地链接,出于说明性目的,该一个或多个PCIe链路被示为单个宽双向箭头116。根据当前和未来PCIe规范,该一个或多个PCIe链路可以具有可变的巷宽(lanewidth),诸如但不限于 lx、2x、4x、8x、16x 和 32x。
[0013]在操作期间,各种应用和服务与远程主机118建立连接,所述远程主机118经由NIC 116且通过通信链路122和124与网络120通信地链接。一般地,网络120表示各种类型的网络,包括LAN、WAN、互联网、内联网。通信链路122和124表示有线和无线链路两者,包括但不限于以太网、802.1lx、WiMax和移动数据载体链路(例如通过GSM、UMTS、CDMA、WCDMA, LTE等运行的数据服务)。
[0014]在运行时操作期间,各种应用和OS服务可以出于诸如连接到主机118中的一个之类的各种目的建立网络连接。例如,诸如Web浏览器之类的应用可以打开与包括Web服务器的主机118的HTTP连接。到主机的每个连接将通过物理链路和端口以及关联的基础结构。然而,为了支持多个并发的通信链路,NIC 106以及关联的固件和软件资源支持虚拟端口和队列的动态分配,使得每个物理链路实例与对应的虚拟端口以及对应的输入和输出队列相关联。这是部分地通过PCIe的使用来促进的,所述PCIe采用使用包括源和目的地地址以及有效载荷数据的各种分组配置的基于分组的消息收发。此外,为了支持涉及NIC 106的服务请求和异步操作,PCIe采用MSI向量来调用对应的处理器中断,如由在图1中标记为MSI Vl-m的MSI向量126描绘的那样。每个MSI向量包括PCIe消息,其包括将其标识为MSI向量的可应用的地址信息和报头标记。
[0015]由OS与APIC 104以及关联的数据结构和驱动器协调地管理用于将MSI向量映射到适当处理资源的协调。OS负责将处理线程分配到CPU资源,所述CPU资源在运行在CPU硬件上的情况下物理地包括CPU核,或者在运行在由运行在CPU硬件上的虚拟机管理器(VMM)等托管的虚拟机上的情况下可以包括虚拟核或处理器。在某些实例中,物理核被暴露于OS作为逻辑核,诸如如果CPU采用多线程核(例如Intel? CPU支持的Hyperthreading?)。为了清楚和简单,本文描述了物理核的分配;然而,本领域技术人员将认识到,可以以逻辑核和VMM实施来实施类似的技术。
[0016]现代操作系统采用多线程架构,其中一个或多个执行线程被分配到每个应用或服务且被指派到相应的处理器资源。线程是使用时间分片方案在处理器核上执行的,其中分配给定的线程以针对对应时间切片而执行,之后是上下文切换和在后续时间切片期间另一线程的执行。这是在持续的基础上继续的。
[0017]许多年来,处理器采用了单个处理器核,并且因此,多线程OS的线程将仅被分配到该单个处理器核。某些架构也支持使用中断引脚的硬件的基于信号的中断(以及诸如MSI和MS1-x之类的更新近的中断方案),在其下,通过在物理CPU引脚上电信号的使用来调用中断信号,并且CPU硬件通过以独立于OS的方式经由硬件设施调度中断的服务来对中断做出响应(或者如果中断是不可屏蔽中断(匪I),则立即服务于该中断)。
[0018]多核处理器、APIC和MSI/MS1-X的出现引入了用于处理中断的新范式。首先,取代将执行线程分配到单个处理器核,通常使用循环分配方案等等来跨多个处理器核分配线程。这确保了处理器核使用是负载平衡的,从而最大化了 CPU的处理吞吐量。然而,既然存在多个执行单元(即,处理器核),就存在可被中断以服务于中断的多于单个的执行单元。因此,采用了一种用于将中断请求映射到处理器核的机制。该机制经由APIC的使用而实现,所述APIC包含将每个MSI向量映射到对应处理器核的向量映射信息,如图1中的APIC向量映射128所图示的那样。在持续的操作期间,通过IRQ平衡器130的使用来动态地更新向量映射数据,如下文进一步详细地解释的那样。
[0019]以下面的方式服务于MSI/MS1-X中断请求(IRQ)。首先,在中断源设备的PCIe接口处生成PCIe消息,所述中断源设备在本示例中是NIC 106。更特别地,PCIe消息被配置为包含可应用的地址信息以及数据有效载荷的MSI向量,该数据有效载荷包含与对中断的服务相关联的数据。地址信息被用于标识MSI向量,MSI向量继而被用于将IRQ映射到适当的核以用于服务。
[0020]除了映射IRQ外,APIC还提供了用于针对每个处理器核将IRQ排队和按优先级排序的设施。随着IRQ被APIC 104接收,它们被映射到适当的处理器核,且被以优先级为基础而排队,使得每个核具有其自身的队列并关于针对其他处理核的IRQ异步地对IRQ做出响应。
[0021]多核处理器的显著优势是提高的处理器性能。在多核处理器的引入之前,由于使用可用的制造技术的减小的线宽的可用性已基本上达到终点,并且通过较高时钟率提高性能呈现出诸如超过信号偏斜限制(skew limit)和热限制之类的物理限制,所以CPU架构撞到了性能壁垒。多个核的使用使处理器吞吐量能够在不减小线宽或增加时钟率的情况下被缩放。然而,因为当处于典型CPU工作量下时,较大部分的处理器电路是活动的,所以多核处理器比它们的单核对应物消耗更多功率且产生更多热量。因此,经常以更低的时钟频率(当与使用类似制造技术的单核处理器相比时)操作多核处理器来降低核和CPU管芯的温度。
[0022]多核方面还提出了一种通过将一个或多个核放到降低功率或“空闲”状态中来降低功率的机会。通常,多核CPU将包括用于实现每个核的功率管理状态的功率管理逻辑。取决于操作模式的积极性,可以选择性地“停放(park)”核或者以其他方式将核放在降低功率状态中来降低总体CPU功率消耗(同时也减少热量生成且降低管芯温度)。
[0023]Intel?处理器支持针对它们的微处理器、CPU包装和总体系统的四个功率管理状态。表I提供了各种功率管理状态名称连同简要描述。
丽I描述
P状态微处理器性能
@态|微处理器节流
@态I微处理器和
S状态I系统睡眠状态—
表I。
[0024]微处理器性能状态(P状态)是频率和电压组合的预定义集合,在其处,当CPU活动时,微处理器可以操作。微处理器利用动态频率缩放(DFS)和动态电压缩放(DVS)来实施由微处理器支持的各种P状态。DFS和DVS是基于当前操作条件动态地改变微处理器核的操作频率和操作电压的技术。由操作系统确定微处理器的当前P状态。从一个P状态改变到另一 P状态所需的时间相对短。当操作系统动态地改变P状态时,操作系统考虑该时间。OS管理由微处理器进行的功率消耗与微处理器的性能之间的折衷。
[0025]C状态被定义为空闲状态。当没有执行有用的操作时,微处理器的各种部分可以被下电来节约能量。存在C状态的三个分类:线程(逻辑)C状态、微处理器核C状态和微处理器包装C状态。C状态的全部三个类别的某些方面是类似的,因为它们全部表示处理器线程、处理器核或处理器包装的某种形式的空闲状态。然而,C状态也以实质的方式不同。
[0026]线程(逻辑)C状态表示操作系统在线程级处对微处理器当前C状态的考量。当应用要求处理器的核C状态时,该应用接收“逻辑核”的C状态。逻辑核是应用的个体线程察觉为核的事物,因为线程察觉为具有特定核的完全所有权。作为示例,对于每物理核采用两个逻辑核的CPU(诸如Intel? CPU支持的Hyperthreading?),逻辑核0(在核O上执行的线程O)可以处于具体空闲状态中,而逻辑核I (核O上的线程I)可以处于另一空闲状态中。操作系统可以针对给定线程请求任何C状态。
[0027]核C状态是硬件专用C状态。在一个实施例下,驻留在CPU包装上的多核CPU的任何核可以处于具体C状态中。因此,不是所有核都需要处于相同的C状态中。核C状态是每核互斥的空闲状态。
[0028]包装C状态是适用于CPU包装中的全部核的空闲状态。CPU的包装C状态涉及各个核C状态。仅当全部核准备好进入该相同核C状态时,CPU才可以进入低功率包装C状态。因此,当全部核准备好进入相同的较低功率核C状态时,那么,包装可以安全地转移到等同的较低功率包装C状态中。
[0029]在一个实施例中,存在四个C状态(空闲状态),包括空闲状态CO、空闲状态Cl、空闲状态C3和空闲状态C6。C状态越高,则空闲的级别越高,并且功率节约越大,以空闲状态CO开始,其对应于针对核的正常活动操作状态。例如,当处于空闲状态C6中时,核PLL (锁相环)被关断,核高速缓存被刷新,并且核状态被保存到末级高速缓存(LLC)。功率选通晶体管被激活以将对特定核的功率消耗降低到大约零瓦特。处于空闲状态C6中的核被认为是非活动核。处于空闲状态C6中的核的唤醒时间是最长的。响应于唤醒事件,核状态从LLC恢复,核PLL被重新锁定,功率选通必须被去激活,并且核时钟被开启回来。
[0030]因为C6是最深的C状态,所以到和从该状态的转移的能量成本最高。进和出深C状态的频繁转移可能导致净能量损失。为了避免这一点,某些实施例包括自动降级(auto-demote )能力,该能力使用智能启发法来确定何时空闲时段节约表明转移到深C状态中且然后转移回到CO的能量成本合理。如果不存在足够的理由来转移到C6,则功率管理逻辑将OS C状态请求降级到C3。
[0031 ] 在当前方法下,使OS能够与使用操作系统导向的配置和功率管理(OSPM)的CPU的功率管理设施对接,该设施描述实施ACPI的系统且因此将设备管理移除离开系统B1S,并将其置于操作系统的控制下。这使OS能够(在较大程度上)控制多核处理器中的核的C状态。此外,因为OS具有针对执行线程到核的分配的控制,所以OS具有针对更大功率节约将执行线程合并到更少的核上的能力。
[0032]如上文讨论的那样,从C状态(特别是空闲状态C-3和C-6)唤醒核导致了显著的能量消耗。使核唤醒的一个操作是处理IRQ。因此,当采用核以服务于IRQ时,该核不能保持在低空闲状态中,且因此消耗更多功率,即使其仅间歇性地服务于IRQ。
[0033]根据本文公开的实施例,通过新部件和数据结构的使用来解决该问题,所述新部件和数据结构使中断向量能够通过将它们重新映射离开空闲核(或者作为进入空闲状态的候选的核)而被动态地重新配置,由此防止空闲核必须服务于IRQ并使它们能够在没有中断的情况下保持在较深的空闲状态中。这导致了针对显著功率节约的潜力。
[0034]在一个实施例中,经由IRQ平衡器130的使用来实现中断向量重新映射。在系统操作期间,IRQ平衡器与OS驱动器结合操作为OS和APIC 104之间的桥,从而使OS (或另一软件实体)能够通过对OS来说可用的文件或其他数据结构中的对应数据来实现针对向量映射128的改变。还实施了 IRQ平衡器中的逻辑来支持IRQ平衡,以及实现了中断向量的智能重新映射来支持有效功率管理。
[0035]在图2中示出了图示被配置为与采用Linux操作系统的动态中断重新配置的示例性实施方式一起使用的所选择的部件的框图。该图描绘了 OS网络栈200的所选择的部件,包括:套接字、层4和层3 (L4/L3)、包括层2 (L2)成帧和过滤的核联网层、以及基础驱动器202。如本领域技术人员将认识到的那样,基础驱动器202包括OS驱动器,其被用作OS栈与下层的物理网络硬件之间的抽象接口,在该示例中,所述下层的物理网络硬件对应于NIC106。朝向图的右侧是包括伪文件系统206、IRQ描述器206和APIC 104的栈204。该图还包括操作在OS用户空间中的IRQ平衡器130。
[0036]图3示出了描绘根据一个实施例的用于实施IRQ平衡器130的方面的逻辑和操作的流程图300。在流程图的顶部的是IRQ平衡器启动/退出框302。在被启动时,在框304中相对于预定或动态计算的阈值监视处理器核中断工作量来确定何时越过工作量阈值。通常由OS和/或CPU设施维持核工作量的各种数据。例如,现代操作系统通常保持指示核利用率的统计以及被分配到每个核的进程(即,执行线程)的数量。另外,采用PCU的CPU维持极大数量的关于核利用率的统计,其对包括OS的其他系统实体来说可访问。
[0037]在一个实施例中,阈值基于中断频率,诸如1 (输入/输出)中断的频率。可以由OS或CPU部件容易地监视该信息。可选地,与对中断做出响应相关联的核工作量可以被用作中断工作量阈值,或者,可以采用中断频率和中断核工作量的加权组合。在其他实施例中,单独地或者与中断频率数据组合地使用核利用率信息,以确定何时越过工作量阈值。例如,因为本文公开的功率管理技术的方面涉及重新配置IRQ到核的映射来使核能够被放到较深的C状态中,所以针对当前以显著级别利用的核,这样做将几乎没有意义,这是由于其他系统逻辑(诸如,由PCU采用)将防止核被放到较深的C状态中,无论被映射到它的中断向量的数量如何。例如,第一核可以运行不具有任何关联的1 (并且因此不具有对应的1中断)的非常计算密集的应用以及带有不频繁1中断的另一后台服务,而第二核可以托管具有显著量的网络业务和关联的1中断的Web服务。在该实例中,将针对后台服务的IRQ从第一核重新映射到第二核将不存在优势,因为第一核的利用率级别将防止其进入较深的C状态。
[0038]当越过中断工作量阈值时,逻辑进行到判定框306,其确定阈值是对应于工作量增加或是对应于工作量减少。如果存在工作量减少,则在框308中做出下述确定:CPU 1中断配置是否在多个核当中分散开。如果是,则存在将针对核的1中断重新映射到一个或多个其他核的机会,其继而可以使所述核能够进入较深的空闲状态。相应地,在框310中,通过重新映射可应用的MSI向量将中断“收缩”到更少数量的核上,并且启动核“停放”进程。核停放是用于指示核被放到较深的空闲状态(通常为C-3或C-6)中的普通术语。如果中断当前没有分散开(这意味着IRQ到核的映射已经在至少某种程度上被收缩),则逻辑进行到框312,其中做出下述验证:经收缩的中断模型是否足以停放一个或多个核。
[0039]返回到判定框306,中断工作量增加对应于其中处理器利用率和/或1中断活动已经越过阈值向上的情形。在该情况下,在多个核当中分散开或者以其他方式分布中断可以是有利的。相应地,在框314中做出下述确定:当前IRQ到核的映射是否分散开。如果中断已经分散开,则在框316中进行检查来确定更加优化的分散配置是否可用,并且如果是这样,则针对更加优化的分散配置来重新配置IRQ核映射。返回到判定框314,如果中断当前没有分散开,则逻辑进行到框318,其中跨可应用的核分散IRQ以对工作量进行缩放。
[0040]在一个实施例中,做出核负载平衡考虑,使得被指派到每个核的1中断被平衡(至少在某种程度上)。相应地,使用负载平衡分散开中断被称为“扇出”中断,而将中断收缩到更少的核被称为“扇入”中断。通过图示更容易地理解这一点,诸如在图4a_c到9a_c中示出的那样。
[0041]进一步详细地,在图4a_c到9a_c中使用箭头来图示MSI向量,而每个箭头的线类型表示与该MSI向量相关联的中断频率。如图示的那样,实线对应于稳定的中断频率,而短划线对应于间歇性的中断频率,并且点线对应于不频繁的中断频率。穿过箭头的波形短线意味着该MSI向量不再存在(这意味着针对其而分配对应MSI向量的对应应用或服务已经被停止或者以其他方式完成)。
[0042]图4a_c图示了中断收缩和重新配置序列的示例。图4a示出了原始配置,在其下,三个MSI向量126被映射到核1-4中的每一个。MSI向量中的每一个的频率是稳定状态,除作为不频繁的MSI向量126-1和126-2外。在一个实施例中,工作量阈值基于针对每个核的组合中断的频率,其可以由上文描述的方法中的一个使用例如滑动平均或类似技术来确定。期望避免太频繁地执行重新配置,所以,可以将一些迟滞构建到中断频率计算中。
[0043]出于示例性的目的,假设频率阈值等于1.1,并且稳定频率MSI具有值1,间歇性频率是稳定频率的一半(值=0.5),而不频繁频率是稳定频率的四分之一(值=0.25)。在图4b中,描绘了阈值事件,在其下,中断的组合频率小于1.1。如图示的那样,MSI向量126-3已经被终止,留下值为0.5的MSI向量126-1和126-2的组合MSI向量中断频率。相应地,响应于阈值条件,发起向量收缩和重新配置进程,在其下,最初被映射到核I的MSI向量被重新映射到其他核。在图示的示例中,MSI向量126-1被重新映射到核2,并且MSI向量126-2被重新映射到核3。一旦MSI向量被重新映射离开核1,就执行操作来确定核I是否是停放的候选,并且如果是,则通过将其空闲C状态改变到更高的值(例如C-3或C-6)来停放所述核。一般地,对核是否可被停放以及可应用什么C状态的确定可以由OS、由PCU或者由两者的组合确定。
[0044]在图5a_c中描绘了 MSI向量收缩和重新配置的第二示例。在图5a中示出的原始配置下,四个核中的每一个接收三个MSI向量,其中除MSI向量126-4外全部都是稳定状态。如之前那样,阈值被设置在1.1处。在图5b中,描绘了工作量阈值事件,在其下,MSI向量126-5和126-6被终止。相应地,针对核I的剩余MSI向量频率小于1.1,设立MSI向量收缩和重新配置进程,在图5c中示出结果。图5c还描绘了负载平衡情形,在其下,重新映射的MSI向量126-4被选择性地重定向到核3,其先前具有最低的中断工作量。
[0045]除了收缩MSI向量之外,还可以执行重新配置操作来缩放MSI向量或者“扇出’ISI向量,使得当可用的活动核的数量增加时(例如,当空闲的核被返回到活动状态时),服务于MSI向量的核的数量增加。在图6a_c和图7a_c中不出了该进程的两个不例。
[0046]在图6a中的原始配置下,核I被停放,而核2_4中的每一个接收三个MSI向量。在该示例中阈值是3,应注意,收缩工作量阈值和扩展工作量阈值不需要匹配,并且如上文讨论的那样,可以在持续的操作期间(例如基于实时工作量测量和/或其他考虑)动态地调整阈值。图6b还示出了核I从停放的状态转移到活动状态。根据协调的功率管理方法,(不论是由于初始指派还是重新配置)MSI向量仅被映射到活动的核。同样在图6b中示出的配置下,新的MSI向量126-7和126-8被指派到核2和核3,而核I被停放。在检测到核I已经重新进入活动状态时,核工作量阈值被重启,导致确定针对核2和核3中的每一个的中断频率已经超过其阈值3。因此,执行重新配置操作,在图6c中示出结果。在该示例中,执行MSI向量的扇出,在其下,新的MSI向量126-7和126-8被重新映射到核I。这也重新平衡了 MSI向量工作量。
[0047]在图7a_c中示出的示例下,初始配置使两个MSI向量被指派到核2_4中的每一个,而核I被停放,如在图7a中示出的那样。如之前那样,阈值是3。在图7c中,核4已经被指派有3个新的MSI向量126-9、126-10和126-11,而核I被停放,在其后,核I被转移回到活动状态。这重新启动了工作量阈值评估,其指示:核3过载,而核1-3可以接收附加MSI向量,并且核I目前没有被指派到它的MSI向量。因此,执行扇出和重新配置操作,在图7c中示出结果。在该示例中,MSI向量126-9和126-10被重新映射到核1,而MSI向量126-11被重新映射到核2。如之前那样,这也实现了跨全部活动核的MSI向量工作量的重新平衡。
[0048]图8a_c示出了导致将MSI向量映射从4个收缩到2个核的多重新配置进程,而图9a-c示出了以使用单个核开始且以跨全部四个核分布的MSI向量结束的扇出序列。图Sb和8c分别示出了在其下核I被停放的第一重新配置和在其下核I和核2均被停放的第二重新配置之后的向量配置。如之前那样,在扇出或“缩放”序列期间,在一个或多个核被停放的同时接收附加MSI向量,并且,在附加代码可用时,执行重新平衡。还应注意,在采用多个活动核的给定持续配置下,新的MSI向量可以以维持负载平衡的方式被添加到现有的活动核。
[0049]本发明的实施例通过与各种系统实体协调地对中断向量进行动态重新配置来促进有效功率管理。在持续的操作期间,中断向量被映射到多核处理器中的各种处理器核,并且,监视处理器核上的工作量。当针对给定处理器核的中断工作量被检测为下降到阈值以下时,该核是用于放到较深的空闲状态中的候选,从而节约显著的功率。为了促进这一点,通过将当前被映射到所述处理器核(针对其检测到工作量阈值事件)的中断向量重新映射到至少一个其他处理器核来动态地重新配置中断向量,使得在重新配置之后不存在被映射到该处理器核的中断向量。因此,处理器核可以被放到较深的空闲状态中并在不必唤醒以服务于中断请求的情况下保持在该状态中。可以将类似的操作应用于附加的处理器核,从而实现中断向量收缩到更少的处理器核上(诸如经由迭代进程),导致更大的功率节约。
[0050]除了将中断向量收缩到更少的核上之外,随着处理器核被返回到活动状态,可以使用缩放或“扇出”操作。例如,响应于核返回到活动状态,执行工作量阈值检测操作来确定是否超过针对处理器核的工作量。例如,工作量阈值可以基于已被超过的中断频率。响应于检测到该阈值事件,可以将来自该核的中断重新映射到返回到活动状态的核。同时,该重新配置实现了向核的中断向量指派的重新平衡。
[0051]可以通过在CPU或者运行在CPU上的虚拟机上对指令的执行来实现本文公开的实施例的方面。因此,本发明的实施例可以被用作或者被用于支持在某种形式的处理核上执行或以其他方式实施或实现在机器可读介质上或内的指令。机器可读介质包括用于以机器(例如计算机)可读的形式存储或传输信息的任何机制。例如,机器可读介质可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质和闪存设备等等。
[0052]本发明的所说明的实施例的上文描述,包括在摘要中描述的内容,不意图是穷尽的或者将本发明限制到所公开的精确形式。虽然出于说明性目的,本文描述了本发明的具体实施例和示例,但在本发明的范围内,各种等同修改是可能的,如本领域技术人员将认识到的那样。
[0053]可以根据上文的详细描述对本发明做出这些修改。在以下权利要求书中使用的术语不应被解释为将本发明限制到在说明书和附图中公开的具体实施例。相反地,本发明的范围应当全部由以下权利要求书确定,权利要求书应根据权利要求解释的所建立的原则而解释。
【权利要求】
1.一种用于在采用具有多个处理器核的多核处理器的计算机系统中配置中断的方法,其包括: 将中断向量映射到所述多个处理器核; 检测第一处理器核的中断工作量已经下降到阈值以下; 以及响应于此, 将被映射到第一处理器核的中断向量中的每一个重新配置为被重新映射到不同于第一处理器核的处理器核。
2.如权利要求1所述的方法,其中至少部分地通过操作系统的使用来实现中断向量的重新配置。
3.如权利要求2所述的方法,其中操作系统是Linux操作系统。
4.如权利要求2所述的方法,其中操作系统通过与多核处理器上的中断控制器交互的设备驱动器的使用,实现中断向量的重新配置。
5.如权利要求4所述的方法,其中设备驱动器读取由操作系统访问的配置文件或数据结构中的一个中的数据。
6.如前述权利要求中任一项所述的方法,进一步包括:对向所述多个处理器核的中断向量指派进行负载平衡。
7.如前述权利要求中任一项所述的方法,进一步包括: 检测第二处理器核的中断工作量已经下降到阈值以下; 以及响应于此, 将被映射到第二处理器核的中断向量中的每一个重新配置为被重新映射到不同于第一处理器核和第二处理器核的处理器核。
8.如权利要求7所述的方法,其中在第二处理器核的工作量下降到阈值以下之前,第二处理器核以第一操作状态操作,所述方法进一步包括:在被映射到第二处理器的中断向量被重新配置之后,将第二处理器核放到比第一操作状态深的空闲状态中。
9.如前述权利要求中任一项所述的方法,其中中断工作量阈值基于中断频率的级别。
10.如前述权利要求中任一项所述的方法,其中在第一处理器核的中断工作量下降到阈值以下之前,第一处理器核以第一空闲状态操作,所述方法进一步包括:在被映射到第一处理器核的中断向量被重新配置之后,将第一处理器核放到较深的空闲状态中。
11.如权利要求10所述的方法,进一步包括: 检测第一处理器核已经返回到第一空闲状态; 检测已经超过第三处理器核上的中断工作量阈值; 以及响应于此, 将来自第三处理器核的至少一个中断向量重新映射到第一处理器核。
12.如权利要求11所述的方法,进一步包括:通过选择性地将中断向量的部分重新映射到其他处理器核来重新配置中断向量,以实现中断向量负载平衡。
13.如权利要求11所述的方法,进一步包括:动态地调整至少一个中断工作量阈值。
14.如权利要求11所述的方法,其中中断工作量阈值基于中断频率。
15.如前述权利要求中任一项所述的方法,其中中断向量包括消息信号通知的中断(MSI)向量。
16.如前述权利要求中任一项所述的方法,其中中断向量包括由1设备生成的输入/输出(1)中断向量。
17.一种具有多核处理器且被配置成实施对应于前述权利要求中任一项的方法的计算机系统。
18.如权利要求17所述的计算机系统,其中多核处理器包括高级可编程中断控制器(APIC),其被配置成存储被用于将传入的中断向量定向到对应处理器核的中断向量映射数据。
19.如权利要求17所述的计算机系统,其中多核处理器进一步包括功率控制单元(PCU ),其被用于实现多个处理器核中的每一个的操作状态中的改变。
20.如权利要求17所述的计算机系统,进一步包括:网络中断控制器(NIC),其被配置成响应于接收到入站网络通信生成中断向量。
21.如权利要求20所述的计算机系统,其中NIC包括PCIe设备。
22.至少一种机器可读介质,其包括多个指令,所述指令响应于被执行在计算设备上而使所述计算设备执行根据权利要求1-16中任一项的方法。
【文档编号】G06F1/32GK104169879SQ201280071863
【公开日】2014年11月26日 申请日期:2012年4月24日 优先权日:2012年4月24日
【发明者】P.P.小瓦斯基伊维茨 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1