CN105378668A - 多处理器系统中的操作系统管理的中断引导 - Google Patents

多处理器系统中的操作系统管理的中断引导 Download PDF

Info

Publication number
CN105378668A
CN105378668A CN201380077383.6A CN201380077383A CN105378668A CN 105378668 A CN105378668 A CN 105378668A CN 201380077383 A CN201380077383 A CN 201380077383A CN 105378668 A CN105378668 A CN 105378668A
Authority
CN
China
Prior art keywords
processor
interrupt
interruption
load
router
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
CN201380077383.6A
Other languages
English (en)
Other versions
CN105378668B (zh
Inventor
Y.巴拉卡特
T.布朗
O.法特米
M.金
A.拉夫曼
J.沃尔格穆思
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105378668A publication Critical patent/CN105378668A/zh
Application granted granted Critical
Publication of CN105378668B publication Critical patent/CN105378668B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

提供一种操作系统,在其中,中断路由器基于来自处理器集合的总负载信息,动态地将每个中断引导到所述处理器集合内的一个或多个处理器。基于由所述中断源施加的负载和对于处理器的目标总负载,将中断源指派给处理器。例如,每个处理器可以随时间维护关于其处理的每个中断的信息。操作系统接收该历史负载信息,以便确定对于来自给定设备的给定类型中断的预期负载、系统上的总负载以及对于每个处理器的目标负载。给定中断源的集合、其预期负载以及对于每个处理器的目标负载,则可以在系统的运行时间期间将每个中断源动态指派给处理器。在规律的基础上,给定系统的当前操作状况,则可以改变这些指派。

Description

多处理器系统中的操作系统管理的中断引导
背景技术
所有现代计算平台实施了一种称为中断处理的机制。一般说来,设备向系统生成称为中断的信号以便请求异步服务被执行。响应于该中断,系统执行中断句柄。中断句柄是如下这样的计算机程序,即:其当被处理器执行时促使系统执行所请求的服务或响应于该中断的其他合适动作。中断句柄可以进而调度附加操作被执行,以便辅助对该中断做出响应或对关联于该中断的数据进行处理。
在现代计算平台中,通常存在几个可以生成中断的设备,每个具有其自己的中断句柄。每个设备生成中断的速率一般是可变的。处理每个中断所花费的时间量也可以变化。
在多处理器系统中,每个单个中断通常被定向到单一的处理器;然而,某些中断体系结构允许中断被定向到处理器的集群。一般说来,多处理器系统被设计为,使得在尝试最优化总体系统吞吐量、等待时间和功率消耗中的一个或多个的同时,将中断分布到系统的处理器的子集中。例如,在某些系统中,所有中断都被定向到执行中断句柄的专用处理器。在某些系统中,静态地为每个生成中断的设备或进程(即,中断源)指派用于其中断句柄的处理器。
在某些系统中,基于硬件的中断控制器可以基于该中断控制器本地的信息,动态地将每个中断指派给处理器中的一个。在某些系统中,中断控制器在处理器集合中以循环方式指派该处理器集合处理每个中断,其中,所述处理器集合中的每个处理器使用各种中断句柄被编程。在某些实施例中,中断控制器将每个中断广播给处理器集合,所述处理器集合中的每个处理器选择是否接受该中断。在某些系统中,中断被定向到当前正处理最低优先级任务的处理器的子集内的处理器。
发明内容
本摘要以简化形式介绍下面在详细说明书中进一步描述的所选概念。本摘要既不旨在标识所要求保护的主题的关键或基本特征,其也不旨在限制所要求保护的主题的范围。
提供一种操作系统,在其中,中断路由器基于来自处理器集合的总体负载信息,动态地将每个中断源引导到所述处理器集合内的处理器。基于由关联的中断施加的负载和对于处理器的目标总体负载,将中断源指派给处理器。例如,每个处理器可以随时间维护关于其处理的每个中断的信息。操作系统接收该历史负载信息,以便确定由于来自给定设备的给定类型的中断产生的预期负载、系统上的总体负载和对于每个处理器的目标负载。给定中断源的集合、其预期负载以及对于每个处理器的目标负载,则可以在系统的运行时间期间动态地将每个中断源指派给处理器。在规律的基础上,给定系统的当前操作状况,则可以改变这些指派。还可以基于每个处理器的当前功率状态来确定所述指派,以避免唯一地激活空闲处理器来处理中断,以及允许处理器变得空闲从而节省功率。
一个挑战在于测量由于中断源产生的总体负载,因为中断句柄可以响应于处理中断而调用同一处理器上的附加处理。
相应地,在一方面中,在包括多个处理器的计算机中,中断路由器接收关于中断的信息。所述中断路由器确定由于由所述多个处理器对中断进行的中断处理产生的所述计算机上的负载。所述中断路由器将每个中断源指派给所述多个处理器中所选的一个或多个,所述选择是根据所述确定的负载,以便将所述负载分布到所述处理器中。所述中断路由器可以周期性地重复以下:对由于中断处理产生的所述计算机上的负载的确定,以及将每个中断源指派给所述多个处理器中所选的一个。
在一个实施方案中,中断路由器从多个处理器中标识可用于处理中断的一定数量的处理器,并且从所标识的可用于处理中断的一定数量的处理器中选择一定数量的处理器,使得所选处理器的数量与所确定的负载除以目标每处理器负载相匹配。所述负载可以通过以下来确定:响应于每个中断,在被指派给该中断的处理器上执行对于该中断的中断句柄,以及,在关联于被指派给该中断的处理器的存储器中,存储指示由于执行所述中断句柄所消耗的处理时间量的数据。中断路由器对针对中断的、来自多个处理器的所存储数据进行汇聚。
所述处理时间量可以通过以下来确定:存储当开始执行中断句柄时的系统时间戳,计算与当结束执行所述中断句柄时观测的系统时间戳之间的差,以及,存储所述计算的差。确定所述处理时间量可以进一步包括:对于任何被所述中断句柄调用的进程,存储当开始执行所述进程时的系统时间戳,计算与当结束执行所述进程时观测的系统时间戳之间的差,以及存储数据,所述数据指示出针对进程计算的差和针对中断句柄计算的差。确定所述处理时间量可以进一步包括:对于任何抢占式活动,诸如中断或其他过程抢占由另一中断句柄或执行关联工作的进程进行的中断处理,计算当暂停被抢占的中断处理时与当重新开始被抢占的中断处理时所观测的系统时间戳之间的差,以便具有用于执行抢占式活动的时间量,使得针对中断句柄计算的差将用于执行抢占式活动的时间量排除在外。
这些各种方面和实施方案可以用计算机实施进程、计算机或包括计算机存储介质的制品来体现。
在下面的说明书中参考了附图,附图形成其部分,并且在其中作为图示示出了该技术的特定示例实施方案。应当理解,在不脱离本公开内容的范围的情况下,可以利用其他实施例,并且可以做出结构上的改变。
附图说明
图1是操作系统管理的中断引导可以在其中被实施的示例计算机的框图。
图2是实施基于操作系统的中断路由器的示例多处理器系统的框图。
图3图示出了在跟踪处理器上的中断句柄时使用的数据结构。
图4是标识可用于指派给中断源的处理器的示例实施方案的流程图。
图5是将中断源指派给处理器的示例实施方案的流程图。
图6是将中断源重新指派给处理器的示例实施方案的流程图。
图7是跟踪中断源对计算机系统的影响的示例实施方案的流程图。
具体实施方式
下面的小节提供基于操作系统的中断引导可以在其中被实施的示例操作环境。
参考图1,下面的描述旨在提供对可以使用这样的中断路由器的通用计算机的简要、一般性描述。所述计算机可以是各种各样通用或专用计算硬件配置中的任一个。可以适合的周所周知的计算机示例包括但不限于个人计算机、服务器计算机、手持或膝上设备(例如,媒体播放器、笔记本计算机、蜂窝电话、个人数字助理、话音记录器)、多处理器系统、基于微处理器的系统、机顶盒、游戏控制台、可编程消费电子装置、网络PC、微型计算机、大型计算机、包括以上系统或设备中任一个的分布式计算环境等。
图1图示出了适合计算机的示例。这仅是适合计算机的一个示例,并且不旨在关于这样的计算机的使用范围或功能性建议任何限制。
参考图1,采用基本配置的示例计算机100包括至少一个处理单元102和存储器104。该计算机可以包括多个处理单元和/或诸如图形处理单元120之类的附加协同处理单元。取决于计算机的确切配置和类型,存储器104可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存器等)或这两者的某种组合。该配置在图1中通过虚线106图示出。
附加地,计算机100还可以具有附加特征/功能性。例如,计算机100还可以包括附加存储装置(可移除的和/或非可移除的),所述附加存储器包括但不限于磁或光盘或者磁带。这样的附加存储装置在图1中通过可移除存储器108和非可移除存储器110图示出。计算机存储介质包括用任何用于存储信息的方法或技术实施的易失性和非易失性、可移除和非可移除介质,所述信息诸如是计算机程序指令、数据结构、程序模块或其他数据。存储器104、可移除存储装置108和非可移除存储装置110全部是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存器或其他存储器技术,CD-ROM、数字多功能光盘(DVD)或其他光存储装置,盒式磁带、磁带、磁盘存储装置或其他磁存储设备,或者任何其他可以用于存储信息并且可以被计算机100访问的介质。任何这样的计算机存储介质可以是计算机100的部分。
计算机100还可以包含(一个或者多个)通信连接112,其允许设备通过通信介质与其他设备进行通信。通信介质通常在诸如载波或其他传输机制之类的已调制数据信号中携带计算机程序指令、数据结构、程序模块或其他数据,并且包括任何信息递送介质。术语“已调制数据信号”意味着如下这样的信号,即:该信号使其特性中的一个或多个以使得将信息编码在该信号中的方式被设置或改变,由此改变该信号的接收设备的配置或状态。作为示例并且不是限制,通信介质包括:诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、RF、红外和其他无线介质之类的无线介质。通信连接112是如下这样的设备,即:所述设备与通信介质接合以便通过通信介质传输数据和从通信介质接收数据,其诸如是网络接口。
计算机100可以具有诸如键盘、鼠标、笔、相机、触摸输入设备等的各种(一个或者多个)输入设备114。还可以包括诸如显示器、扬声器、打印机等的(一个或者多个)输出设备116。这些设备的全部是本领域中众所周知的,并且不需要在此处详尽地讨论。各种输入和输出设备可以实施自然用户界面(NUI),其是使用户能够以“自然的”方式与设备进行交互,而摆脱由诸如鼠标、键盘、遥控器等的输入设备施加的人为约束的任何界面技术。
NUI方法的示例包括那些依赖于语音识别、触摸和触笔识别、在屏幕之上和邻近屏幕处的手势识别、空中手势、头和眼跟踪、话音和语音、视觉、触摸、手势和机器智能的技术,并且可以包括使用触摸敏感显示器、话音和语音识别、意图和目标理解、使用深度相机(诸如立体相机系统、红外相机系统和其他相机系统以及这些的组合)的运动手势检测、使用加速度计或陀螺仪的运动手势检测、面部识别、三维显示器、头、眼和凝视跟踪、沉浸式增强现实和虚拟现实系统,这些全部提供更自然的界面,以及用于使用电场感测电极来感测脑活动的技术(EEG和相关方法)。
在计算机上操作的该系统的每个构件一般通过诸如一个或多个计算机程序之类的软件来实施,所述计算机程序包括被计算机处理的计算机可执行指令和/或计算机解译的指令,诸如程序模块。一般说来,程序模块包括当被处理单元处理时指导该处理单元执行特定任务或实施特定抽象数据类型的例程、程序、对象、构件、数据结构等。该计算机系统可以在分布式计算环境中来实践,其中,任务由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
可替换地或另外,在本文中描述的功能性可以至少部分由一个或多个硬件逻辑构件来执行。例如并且不限于,可以使用的图示类型的硬件逻辑构件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
给定诸如上面所述的计算机,则在运行时在多个处理器中执行动态中断引导的基于操作系统的中断路由器假设该计算机包括具有多个处理器的上文的中央处理单元(例如图1中的120)。在本文中术语“处理器”的使用旨在包括任何逻辑处理器,其包括但不限于硬件处理器的单一实例、多个处理器中的一个、多核处理器中的一个“核”或者任何其他可以独立于其他处理单元而被管理的处理单元。
中断处理一般由操作系统、固件或计算机上的其他低级软件来管理。在一个实施方案中,操作系统包括内核中的中断路由器,该中断路由器在处理器中的一个或多个上被执行,并且动态地将中断引导到处理器的子集,所述处理器的子集可以包括该中断路由器在其上被执行的处理器。可替换地,操作系统的其他构件、硬件抽象层、固件或计算机的其他低级计算机程序可以实施这样的功能性。
现在参考图2,现在将在图示示例的上下文中描述这样的系统的示例实施方案。在图2中,存在通过总线208互连的四个处理器200、202、204和206,每个具有相应的用于跟踪关于被该处理器处理的中断的信息的中断数据210、212、214和216。每个处理器还具有分别用于处理来自各种中断源的中断的一个或多个中断句柄220、222、224、226的集合。系统还包括中断路由器250,该中断路由器250是管理对多处理器计算机中的资源的访问的操作系统的部分。中断路由器250周期性地从处理器获取中断数据210、212、214、216。该中断路由器可以是在处理器中的一个或多个上执行的软件构件,或者可以由硬件构件来实施或支持。该中断路由器基于中断数据确定中断源到处理器指派,并且采用所述指派来设置中断控制器(未示出),以将系统中的中断定向到其被指派的处理器。
应当理解,图2中的处理器数量(即,四个)仅是图示性的,并且不是对本发明的限制。进一步地,中断路由可以由系统中的处理器的子集来执行。图2仅图示出了参与中断路由的多处理器系统的处理器子集的示例。
现在参考图3,现在将描述被中断路由器250维护和使用的、用于对来自多个处理器的中断数据进行汇聚的数据结构300的示例实施方案。数据结构300包括中断源的列表302。列表302中的每个条目304表示中断源,并且指向数组306,所述数组306表示针对来自该源的中断的(一个或者多个)中断句柄。数组306包括表示每个中断句柄的条目308。条目308指向指针314的列表310,所述指针314指向由每个处理器针对该中断句柄所维护的、用于存储针对该处理器的中断数据的数据结构312,所述中断数据包括关于置于与该中断句柄相关的处理器上的负载的数据。下面将详细描述该数据结构如何被每个处理器和中断路由器如何监视当前系统状态。应当理解,其他数据结构可以用于汇聚和存储用于被中断路由器使用的每处理器、每中断句柄性能数据,并且前述仅是示例。
未示出的其他数据结构包括,针对每个处理器的、作为针对每个处理器的中断数据的部分的、对指派给该处理器的中断源数量的计数。附加地,当前中断源对处理器指派的列表也被中断路由器存储。
将中断引导到不同处理器一般涉及四个步骤。第一,中断路由器标识系统中的可用处理器中的哪些处理器将被使用。第二,中断路由器确定如何在所标识的处理器中分布中断。该中断源对处理器指派在中断控制器中进行设置并且被使用一段时间。第三,中断路由器在运行时间期间响应于系统状况而动态改变中断的分布。该进程的结果将当前中断源对处理器指派改变为新的指派。第四,中断路由器跟踪来自各种中断源的中断对系统性能的影响,这用于确定未来的中断源对处理器指派。应当理解,所述进程可以将中断源指派给单个处理器集群以及单个处理器,或者将中断源指派给单个处理器集群而取代于指派给单个处理器。
现在参考图4,现在将描述一种用于标识将用于处理中断的处理器的方式的示例实施方案。该进程的输出是中断将被分布到其中的处理器集合的指示。
该过程由标识400初始的可用处理器集合开始。该初始集合可以是可用处理器的全部、可用处理器的预定子集或基于指定特性而标识的处理器的其他集合。作为示例,初始处理器集合可以是全部活跃(即,非空闲的)处理器。接下来,这些处理器中的一些可以基于其已活跃的时间而被删去(eliminate)402。该时间量可以是可调参数,其当被设置为零时,禁用该步骤。
中断路由器然后以下面详细描述的方式确定404由于中断处理产生的在系统上的负载。然后,在给定目标每处理器负载和所确定的负载的情况下,然后计算406将用于处理中断的处理器数量。
在一个示例实施方案中,计算用于处理全部中断相关工作的全部处理器时间的总和。将该总时间量除以对于整个系统处理中断的实际逝去时间,以便确定处理中断和相关工作花费的时间的百分比。然后将该时间百分比除以可以是可调参数的目标每处理器负载,以便确定将处理该负载的目标处理器数量。例如,如果八个处理器的每个处理中断达20ms,则总负载是160ms。如果该过程在100ms中发生,则总负载是160%(处理器中的一个的)。如果目标处理负载是40%,则目标处理器数量是四个。
其他算法可以用于选择处理器的数量。例如,可以检查关于哪些中断源主要对负载负责的统计数据。如果一个中断源负责显著大于目标每处理器负载的负载,则有可能该中断源可以被指派给一个处理器,以及较少处理器可以用于剩余中断。
所计算的数量可以超过(cap)408在400处所标识的初始处理器集合中的处理器数量。如果该处理器数量少于初始集合的大小,如在410处所确定的,则选择412初始集合的子集。
在一个示例实施方案中,子集可以通过使用由内核使用的相同算法来选择,以将线程指派给处理器,由此最大化可以空闲的处理器的数量,从而减少功率消耗。
在该示例实施方案中,选择(见图4)处理器的集合,以及然后,将中断分布到所选处理器中。现在将结合图5描述该分布进程的示例实施方案。
首先,按照由中断源对系统施加的负载的次序,对中断源进行排序500。接下来,从列表中选择502中断源。选择504来自处理器集合中的一个处理器,并将其指派给已排序列表中的所选中断源。如果中断源仍剩余,如在506中所确定的,则所述进程通过重复选择步骤502和504继续,直到为全部中断源指派了处理器中的一个为止。在指派被完成之后,将中断控制器设置508为将中断定向到其被指派的处理器。
存在用于将处理器与中断相匹配的各种各样不同方式,并且,图5中的进程仅是实施这样的匹配的一种方式。
使用图5中的示例,在步骤502中对中断源的选择和在步骤504中对处理器的选择可以使用以下示例实施方案来执行。以S形曲线(serpentine)方式来选择处理器:从头至尾以及然后从尾至头如此这般地逐步通过列表,将已排序列表中的下一个中断源指派给所选处理器,直到中断源的全部都被指派了为止。
其他实施方案是可能的,其中,总体目标是将由于处理中断产生的负载均匀地划分到处理器中,取计算复杂度对更优化的分布的折衷。
在一个示例中,可以使用最差适应装箱算法。在该算法中,每个随后的中断源被指派给在指派后将具有最少总负载的处理器。
在另一示例中,对下一个处理器的迂回S形曲线选择之后伴随如下条件,即:当前处理器具有比所述下一个处理器更高的总负载;否则,当前处理器被再次用于下一个中断。
在另一示例中,首先将整个处理器预留给每个其负载大于目标每处理器负载的中断。然后,将剩余中断指派给剩余处理器。
在另一示例中,可以将对系统几乎没有影响的中断源永久指派给特定处理器,并将其从这个将中断源指派给处理器的过程中移除。
给定中断源和处理器的指派,可以随着系统状况改变,在计算机操作期间动态改变该指派。该进程的结果是,允许系统在不错过中断的同时将活跃处理器转变为空闲状态,以及将空闲处理器转变为活跃状态。
在图6中示出了实例实施方案。其他实施方案是可能的,并且取决于正被使用的处理器的性质。在图6中所示的实施方案中,处理器具有非可中断和可中断空闲状态,并且,在任一空闲状态下,将“唤醒”命令发给处理器,以便对该处理器进行查询和/或促使其改变状态。一般说来,该进程涉及:标识当前中断源对处理器指派与新的中断源对处理器指派之间的差别,以及,确定这些差别中的任一个是否涉及改变处理器的状态。如果处理器具有状态改变,则在允许中断源被指派给其之前将状态改变。
由此,在图6中,在该实施方案中,对每个中断源对处理器指派进行处理600以标识目标处理器被改变的中断源。对于每个当前目标处理器将被改变的中断源,将对于新目标处理器的中断源计数递增602。当进行每个这样的递增时,如果目标处理器的中断源计数从零变为一,如在604中所确定的,则将该处理器添加606到将被“唤醒”的处理器列表。然后将“唤醒”指令发送608给该列表上的每个处理器。在某些实施方案中,等待来自处理器的确认确保不丢失中断。
对每个中断源对处理器指派再次进行处理610,并且,在中断控制器中将当前指派设置为新指派。对于目标处理器已改变的每个中断源,将指派给该中断的先前目标处理器的中断源计数递减612。当进行每个这样的递减时,如果先前目标处理器的中断源计数从一变为零,如在614处所确定的,则将该处理器添加到列表。然后将指令发送616给该列表上的每个处理器,响应于此,每个处理器可以评估其是否是空闲的,以及可以由于不再具有任何以其为目标的中断而转换到功率节省状态中。
可以取决于处理器如何处理中断、功率节省状态和在那些状态中的转变而对图6中的过程进行修改。在该过程期间,可以标识每个处理器的状态。例如,如果处理器不支持唤醒命令或非可中断状态,则可以删去其他步骤。
现在将结合图7描述用于跟踪作为关联工作的中断处理对系统的影响的进程的示例实施方案。
具有测量中断影响的挑战在于这一事实:中断句柄可以调用附加进程和生成附加中断,或者由在与该中断句柄相同的处理器上被执行的中断句柄生成的其他工作。这样的附加工作进而可以在处理器上创建又更多的附加工作。对这样的工作的测量和跟踪使用上面描述的数据结构,其示例在图3中示出。
对于系统中的每个中断源和处理器,在该数据结构中分配700字段,以累积由该中断源的关联中断句柄和其在该处理器上调用的任何附加工作消耗的时间量。
当中断句柄被执行时,对其执行花费的时间量进行跟踪并存储702在其处理器上。例如,在所述执行之前和之后读取时间戳。对差进行计算并存储在数据结构中。如果中断句柄诸如通过调用另一过程而调度附加工作,则还确定执行附加工作的时间量。例如,当在处理器上对附加工作进行排队时,可以将指向数据结构的指针与该工作一起被排队。如果中断句柄或其相关工作被另一较高优先级任务抢占,则该较高优先级任务调整被抢占的中断句柄或相关工作的时间戳数据。
周期性地,由中断路由器对来自处理器的中断数据进行累积704,并存储706在已分配的数据结构中,以便跨系统对中断处理统计数据进行累积。
应当理解,前述仅是示例实施方案,并且其他跟踪的实施方案也是可能的。一般说来,每个中断句柄及其附加工作对处理相关中断花费的时间量进行跟踪。基于多个中断和多个处理器收集该数据。
通过这样的信息,可以将中断源动态地指派给处理器,并且可以在计算机运行时间期间动态地改变这样的指派。通过高效地管理指派,可以在最大化可以空闲的处理器数量的同时,将中断分布在处理器中,从而减少功率消耗。
在本文中描述的前述可替换实施例的任一个或全部可以以任何期望的组合被使用,以形成附加的混合实施例。应当理解,在所附权利要求中限定的主题不必限于上面描述的特定实施方案。所附权利要求的前序中的术语“制品”、“进程”、“机器”和“组成物”旨在将权利要求限于被认为落在由在35U.S.C.§101中对这些术语的使用所限定的可申请专利主题的范围内的主题。上面描述的特定实施方案仅作为示例被公开。

Claims (10)

1.一种由包括多个处理器的计算机执行的进程,包括:
将关于中断的信息接收到对于中断路由器的存储器中;
所述中断路由器确定由于由所述多个处理器对所述中断进行的中断处理产生的在所述计算机上的负载;以及
所述中断路由器将每个中断源指派给所述多个处理器中的所选一个处理器,这样的选择是根据所确定的负载的,以便将所述负载分布在所述处理器中。
2.根据权利要求1所述的计算机实施的进程,其中,指派包括:
所述中断路由器从所述多个处理器中标识可用于处理中断的一定数量的处理器;
所述中断路由器从所标识数量的可用于处理中断的处理器中选择一定数量的处理器,使得所选处理器的数量与所确定的负载除以目标每处理器负载相匹配。
3.根据权利要求1所述的计算机实施的进程,其中,确定所述负载包括:
响应于来自中断源的每个中断,在被指派给所述中断源的处理器上执行对于所述中断的中断句柄;
在与被指派给所述中断源的处理器相关联的存储器中,存储指示由于执行所述中断句柄所消耗的处理时间量的数据;
所述中断路由器将针对所述中断的、来自所述多个处理器的已存储数据进行汇聚。
4.根据权利要求3所述的计算机实施的进程,进一步包括通过以下来确定所述处理时间量:
存储当开始执行所述中断句柄时的系统时间戳;
计算与当结束执行所述中断句柄时观测的系统时间戳之间的差;以及
存储所计算的差。
5.根据权利要求4所述的计算机实施的进程,其中,确定所述处理时间量进一步包括:
对于任何被所述中断句柄调用的进程,
存储当开始执行所述进程时的系统时间戳;
计算与当结束执行所述进程时观测的系统时间戳之间的差;以及
存储数据,所述数据指示出针对进程计算的差和针对中断句柄计算的差。
6.根据权利要求5所述的计算机实施的进程,其中,确定处理时间量进一步包括:
对于任何抢占由所述中断句柄和关联进程进行的中断处理的抢占式活动,
计算当暂停被抢占的中断处理时与当重新开始被抢占的中断处理时观测的系统时间戳之间的差,以便具有用于执行所述抢占式活动的时间量;以及
其中,针对中断句柄计算的差将用于执行所述抢占式活动的时间量排除在外。
7.根据权利要求1所述的计算机实施的进程,进一步包括,所述中断路由器周期性地重复以下步骤:
自中断源对处理器的前一指派起,确定由于由所述多个处理器对所述中断进行的中断处理产生的所述计算机上的负载;以及
将每个中断源指派给所述多个处理器中的所选一个处理器,这样的选择是根据自中断源对处理器的前一指派起确定的负载的。
8.一种制品,包括:
计算机存储介质;
计算机程序指令,其存储在所述计算机存储介质中,所述计算机程序指令当被处理设备从存储装置中读取和处理时,指导所述处理设备执行包括以下的进程:
将关于中断的信息接收到对于中断路由器的存储器中;
所述中断路由器确定由于由所述多个处理器对所述中断进行的中断处理产生的在所述计算机上的负载;以及
所述中断路由器将每个中断源指派给所述多个处理器中的所选一个处理器,这样的选择是根据所确定的负载的,以便将所述负载分布到所述处理器中。
9.一种计算机,包括:
多个处理器,每个处理器被编程为维护关于在所述处理器上被处理的中断的信息,这样的信息包括由于执行中断句柄所消耗的处理器时间量;
中断路由器,其在多个处理器中的一个或多个处理器上被执行,所述中断路由器被配置为:
 从所述处理器接收关于中断的信息;
 确定由于由所述多个处理器对所述中断进行的中断处理产生的在所述计算机上的负载;以及
 将每个中断源指派给所述多个处理器中的所选一个处理器,这样的选择是根据所述确定负载的,以便将所述负载分布到所述处理器中。
10.根据权利要求9所述的计算机,其中,所述中断路由器被配置为从所述多个处理器中标识可用于处理中断的一定数量的处理器,并且从所标识数量的可用于处理中断的处理器中选择一定数量的处理器,使得所选处理器的数量与所确定的负载除以目标每处理器负载相匹配。
CN201380077383.6A 2013-06-13 2013-09-18 多处理器系统中的操作系统管理的中断引导 Active CN105378668B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/917634 2013-06-13
US13/917,634 US9424212B2 (en) 2013-06-13 2013-06-13 Operating system-managed interrupt steering in multiprocessor systems
PCT/US2013/060243 WO2014200521A1 (en) 2013-06-13 2013-09-18 Operating system-managed interrupt steering in multiprocessor systems

Publications (2)

Publication Number Publication Date
CN105378668A true CN105378668A (zh) 2016-03-02
CN105378668B CN105378668B (zh) 2019-05-31

Family

ID=49382570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380077383.6A Active CN105378668B (zh) 2013-06-13 2013-09-18 多处理器系统中的操作系统管理的中断引导

Country Status (5)

Country Link
US (2) US9424212B2 (zh)
EP (1) EP3008595A1 (zh)
CN (1) CN105378668B (zh)
BR (1) BR112015030433B1 (zh)
WO (1) WO2014200521A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315700A (zh) * 2016-04-27 2017-11-03 华为技术有限公司 一种中断处理方法以及相关装置
CN112650616A (zh) * 2021-01-05 2021-04-13 上海擎昆信息科技有限公司 一种中断检测方法、装置和系统
CN114546911A (zh) * 2022-01-12 2022-05-27 阿里巴巴(中国)有限公司 中断处理方法和装置、电子设备及计算机可读存储介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013095337A1 (en) * 2011-12-19 2013-06-27 Intel Corporation A system and deterministic method for servicing msi interrupts using direct cache access
US10990407B2 (en) * 2012-04-24 2021-04-27 Intel Corporation Dynamic interrupt reconfiguration for effective power management
US9424212B2 (en) * 2013-06-13 2016-08-23 Microsoft Technology Licensing, Llc Operating system-managed interrupt steering in multiprocessor systems
US9779468B2 (en) 2015-08-03 2017-10-03 Apple Inc. Method for chaining media processing
US10585826B2 (en) * 2016-01-25 2020-03-10 Advanced Micro Devices, Inc. Using processor types for processing interrupts in a computing device
US10353766B2 (en) * 2016-09-09 2019-07-16 International Business Machines Corporation Managing execution of computer tasks under time constraints

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737765A (zh) * 2003-12-08 2006-02-22 英特尔公司 在多处理器系统中调度中断的方法及设备
US7581052B1 (en) * 2005-08-22 2009-08-25 Sun Microsystems, Inc. Approach for distributing multiple interrupts among multiple processors
US20100057967A1 (en) * 2008-08-27 2010-03-04 Fujitsu Limited Recording medium with load distribution program recorded therein and load distribution apparatus
CN101872315A (zh) * 2009-04-24 2010-10-27 勒斯塔尔技术有限责任公司 用于多处理器的中断最优化
WO2013066124A1 (ko) * 2011-11-03 2013-05-10 삼성전자 주식회사 인터럽트 할당 방법 및 장치

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2270892A (en) * 1991-06-26 1993-01-25 Ast Research, Inc. Automatic distribution of interrupts controller for a multiple processor computer system
JP3008896B2 (ja) * 1997-06-16 2000-02-14 日本電気株式会社 共有バス型マルチプロセッサシステムの割り込み負荷分散システム
US5944840A (en) * 1997-09-10 1999-08-31 Bluewater Systems, Inc. Continuous monitor for interrupt latency in real time systems
US6604136B1 (en) * 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
US6986066B2 (en) 2001-01-05 2006-01-10 International Business Machines Corporation Computer system having low energy consumption
US6813665B2 (en) * 2001-09-21 2004-11-02 Intel Corporation Interrupt method, system and medium
US7328294B2 (en) * 2001-12-03 2008-02-05 Sun Microsystems, Inc. Methods and apparatus for distributing interrupts
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
US20060123422A1 (en) 2004-12-02 2006-06-08 International Business Machines Corporation Processor packing in an SMP server to conserve energy
US20070005742A1 (en) 2005-06-30 2007-01-04 Avigdor Eldar Efficient network communications via directed processor interrupts
US7610425B2 (en) * 2005-08-22 2009-10-27 Sun Microsystems, Inc. Approach for managing interrupt load distribution
US7694055B2 (en) * 2005-10-15 2010-04-06 International Business Machines Corporation Directing interrupts to currently idle processors
US9032127B2 (en) * 2006-09-14 2015-05-12 Hewlett-Packard Development Company, L.P. Method of balancing I/O device interrupt service loading in a computer system
JP2008176360A (ja) * 2007-01-16 2008-07-31 Renesas Technology Corp マルチプロセッサシステム
US8032681B2 (en) * 2007-09-06 2011-10-04 Intel Corporation Processor selection for an interrupt based on willingness to accept the interrupt and on priority
US7962679B2 (en) * 2007-09-28 2011-06-14 Intel Corporation Interrupt balancing for multi-core and power
US7962771B2 (en) 2007-12-31 2011-06-14 Intel Corporation Method, system, and apparatus for rerouting interrupts in a multi-core processor
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
TWI497419B (zh) * 2011-10-20 2015-08-21 Via Tech Inc 電腦裝置及其中斷任務分配方法
US9424212B2 (en) * 2013-06-13 2016-08-23 Microsoft Technology Licensing, Llc Operating system-managed interrupt steering in multiprocessor systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737765A (zh) * 2003-12-08 2006-02-22 英特尔公司 在多处理器系统中调度中断的方法及设备
US7581052B1 (en) * 2005-08-22 2009-08-25 Sun Microsystems, Inc. Approach for distributing multiple interrupts among multiple processors
US20100057967A1 (en) * 2008-08-27 2010-03-04 Fujitsu Limited Recording medium with load distribution program recorded therein and load distribution apparatus
CN101872315A (zh) * 2009-04-24 2010-10-27 勒斯塔尔技术有限责任公司 用于多处理器的中断最优化
WO2013066124A1 (ko) * 2011-11-03 2013-05-10 삼성전자 주식회사 인터럽트 할당 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315700A (zh) * 2016-04-27 2017-11-03 华为技术有限公司 一种中断处理方法以及相关装置
CN107315700B (zh) * 2016-04-27 2020-12-08 华为技术有限公司 一种中断处理方法以及相关装置
CN112650616A (zh) * 2021-01-05 2021-04-13 上海擎昆信息科技有限公司 一种中断检测方法、装置和系统
CN114546911A (zh) * 2022-01-12 2022-05-27 阿里巴巴(中国)有限公司 中断处理方法和装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
BR112015030433A8 (pt) 2019-12-24
BR112015030433A2 (pt) 2017-07-25
BR112015030433B1 (pt) 2022-05-17
CN105378668B (zh) 2019-05-31
WO2014200521A1 (en) 2014-12-18
US20160357689A1 (en) 2016-12-08
US10157155B2 (en) 2018-12-18
US20140372649A1 (en) 2014-12-18
EP3008595A1 (en) 2016-04-20
US9424212B2 (en) 2016-08-23

Similar Documents

Publication Publication Date Title
CN105378668A (zh) 多处理器系统中的操作系统管理的中断引导
EP3198429B1 (en) Heterogeneous thread scheduling
US9946563B2 (en) Batch scheduler management of virtual machines
JP6320520B2 (ja) 多数の優先順キューに対するスレッドの割り当ておよびスケジューリング
JP4768354B2 (ja) ジョブ管理装置、ジョブ管理方法、ジョブ管理プログラム
US20210248469A1 (en) Method and apparatus for scheduling deep learning reasoning engines, device, and medium
CN101960428B (zh) 路由工作负载计算方法及系统
US20120137295A1 (en) Method for displaying cpu utilization in a multi-processing system
CN104714785A (zh) 任务调度装置、方法及并行处理数据的设备
CN106104483A (zh) 微处理器系统中的异常处理
CN104011680A (zh) 在物理处理单元中调度虚拟机的虚拟中央处理单元
CN110489213A (zh) 一种任务处理方法及处理装置、计算机系统
TW200945206A (en) Method for automatic workload distribution on a multicore processor
CN110308982B (zh) 一种共享内存复用方法及装置
CN103744808B (zh) 一种用于控制i/o请求的方法与设备
US20150378782A1 (en) Scheduling of tasks on idle processors without context switching
CN108140234A (zh) 基于命令流标记的gpu操作算法选择
KR20120036630A (ko) 인터럽트 처리 장치 및 방법
CN107624181B (zh) 包括虚拟处理器的闲置和调度的虚拟机管理方法和装备
CN103279388A (zh) 用于执行一个或更多个任务的系统和方法
CN114327894A (zh) 资源分配方法、装置、电子设备及存储介质
Qureshi et al. A comparative analysis of resource allocation schemes for real-time services in high-performance computing systems
Azimi et al. PowerCoord: A coordinated power capping controller for multi-CPU/GPU servers
CN109558210A (zh) 一种虚拟机应用主机gpu设备的方法及系统
CN110689922B (zh) 一种自动并行化敲除策略gc含量分析的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant