首页> 中国专利> 多处理器系统中的操作系统管理的中断引导

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

摘要

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

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-31

    授权

    授权

  • 2016-03-30

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20130918

    实质审查的生效

  • 2016-03-02

    公开

    公开

说明书

背景技术

所有现代计算平台实施了一种称为中断处理的机制。一般说来,设备向系统生成称为中断的信号以便请求异步服务被执行。响应于该中断,系统执行中断句柄。中断句柄是如下这样的计算机程序,即:其当被处理器执行时促使系统执行所请求的服务或响应于该中断的其他合适动作。中断句柄可以进而调度附加操作被执行,以便辅助对该中断做出响应或对关联于该中断的数据进行处理。

在现代计算平台中,通常存在几个可以生成中断的设备,每个具有其自己的中断句柄。每个设备生成中断的速率一般是可变的。处理每个中断所花费的时间量也可以变化。

在多处理器系统中,每个单个中断通常被定向到单一的处理器;然而,某些中断体系结构允许中断被定向到处理器的集群。一般说来,多处理器系统被设计为,使得在尝试最优化总体系统吞吐量、等待时间和功率消耗中的一个或多个的同时,将中断分布到系统的处理器的子集中。例如,在某些系统中,所有中断都被定向到执行中断句柄的专用处理器。在某些系统中,静态地为每个生成中断的设备或进程(即,中断源)指派用于其中断句柄的处理器。

在某些系统中,基于硬件的中断控制器可以基于该中断控制器本地的信息,动态地将每个中断指派给处理器中的一个。在某些系统中,中断控制器在处理器集合中以循环方式指派该处理器集合处理每个中断,其中,所述处理器集合中的每个处理器使用各种中断句柄被编程。在某些实施例中,中断控制器将每个中断广播给处理器集合,所述处理器集合中的每个处理器选择是否接受该中断。在某些系统中,中断被定向到当前正处理最低优先级任务的处理器的子集内的处理器。

发明内容

本摘要以简化形式介绍下面在详细说明书中进一步描述的所选概念。本摘要既不旨在标识所要求保护的主题的关键或基本特征,其也不旨在限制所要求保护的主题的范围。

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

一个挑战在于测量由于中断源产生的总体负载,因为中断句柄可以响应于处理中断而调用同一处理器上的附加处理。

相应地,在一方面中,在包括多个处理器的计算机中,中断路由器接收关于中断的信息。所述中断路由器确定由于由所述多个处理器对中断进行的中断处理产生的所述计算机上的负载。所述中断路由器将每个中断源指派给所述多个处理器中所选的一个或多个,所述选择是根据所述确定的负载,以便将所述负载分布到所述处理器中。所述中断路由器可以周期性地重复以下:对由于中断处理产生的所述计算机上的负载的确定,以及将每个中断源指派给所述多个处理器中所选的一个。

在一个实施方案中,中断路由器从多个处理器中标识可用于处理中断的一定数量的处理器,并且从所标识的可用于处理中断的一定数量的处理器中选择一定数量的处理器,使得所选处理器的数量与所确定的负载除以目标每处理器负载相匹配。所述负载可以通过以下来确定:响应于每个中断,在被指派给该中断的处理器上执行对于该中断的中断句柄,以及,在关联于被指派给该中断的处理器的存储器中,存储指示由于执行所述中断句柄所消耗的处理时间量的数据。中断路由器对针对中断的、来自多个处理器的所存储数据进行汇聚。

所述处理时间量可以通过以下来确定:存储当开始执行中断句柄时的系统时间戳,计算与当结束执行所述中断句柄时观测的系统时间戳之间的差,以及,存储所述计算的差。确定所述处理时间量可以进一步包括:对于任何被所述中断句柄调用的进程,存储当开始执行所述进程时的系统时间戳,计算与当结束执行所述进程时观测的系统时间戳之间的差,以及存储数据,所述数据指示出针对进程计算的差和针对中断句柄计算的差。确定所述处理时间量可以进一步包括:对于任何抢占式活动,诸如中断或其他过程抢占由另一中断句柄或执行关联工作的进程进行的中断处理,计算当暂停被抢占的中断处理时与当重新开始被抢占的中断处理时所观测的系统时间戳之间的差,以便具有用于执行抢占式活动的时间量,使得针对中断句柄计算的差将用于执行抢占式活动的时间量排除在外。

这些各种方面和实施方案可以用计算机实施进程、计算机或包括计算机存储介质的制品来体现。

在下面的说明书中参考了附图,附图形成其部分,并且在其中作为图示示出了该技术的特定示例实施方案。应当理解,在不脱离本公开内容的范围的情况下,可以利用其他实施例,并且可以做出结构上的改变。

附图说明

图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中对这些术语的使用所限定的可申请专利主题的范围内的主题。上面描述的特定实施方案仅作为示例被公开。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号