CN1737765A - 在多处理器系统中调度中断的方法及设备 - Google Patents

在多处理器系统中调度中断的方法及设备 Download PDF

Info

Publication number
CN1737765A
CN1737765A CN200410010458.1A CN200410010458A CN1737765A CN 1737765 A CN1737765 A CN 1737765A CN 200410010458 A CN200410010458 A CN 200410010458A CN 1737765 A CN1737765 A CN 1737765A
Authority
CN
China
Prior art keywords
processor
processors
interrupt
iwa
grade
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.)
Pending
Application number
CN200410010458.1A
Other languages
English (en)
Inventor
S·屠
S·埃迪里索里亚
S·雅米尔
D·米纳
R·F·奥布伦内斯
H·阮
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 CN1737765A publication Critical patent/CN1737765A/zh
Pending legal-status Critical Current

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

Abstract

公开了在多处理器系统中用于调度中断请求的方法和设备。在一个示例方法中,基于与多个处理器相关联的中断调度信息而生成多个处理器中每一个的中断加权平均值(IWA)。基于多个处理器中每一个的IWA,而从多个处理器中识别出目标处理器来调度中断。

Description

在多处理器系统中调度中断的方法及设备
技术领域
本公开主要涉及多处理器系统,特别是,涉及在多处理器系统中调度中断的方法及设备。
背景技术
在处理器系统中,中断是这样一种事件,该事件可以由连接到该处理器系统的输入/输出(I/O)设备触发,或是由在该处理器系统内部的程序触发,该程序引起主程序控制处理器系统(即,操作系统(OS))的操作,来停止当前的任务并执行一些其它的任务。当网络设备检测到一个输入信息包时,该网络设备可以发送一个中断给处理器。响应该中断,处理器启动中断例程。例如,视频解码器响应于检测到视频信息包流中的错误,会发送一个中断给处理器,以请求来自该处理器的出错处理服务。
典型地,中断控制器为中断赋予优先级,并将中断存储在队列中等待处理。在采用多线程内核、多内核处理器、多任务内核、和/或虚拟化内核(即,虚拟多处理器系统)的现行处理器系统中,中断可以被调度或路由到目标处理器,该目标处理器正在执行优先级任务和/或是应用程序,并且从而可能引起整个多处理器系统低效率地运行。采用固定重定向方案或是简单判优方案如循环法方案,通过处理资源以执行任务和/或应用程序,中断经常导致次优化的性能。
附图说明
图1是依照本发明的教导而配置的示例中断调度系统的框图表示。
图2是可以被用来实现图1的示例中断调度系统的示例多处理器可编程中断控制器(MPIC)的框图表示。
图3是可以执行以实现图1的示例中断调度系统的示例可机读指令的流程图表示。
图4是可以被用来实现图2的示例MPIC的示例处理器系统的框图表示。
具体实施方式虽然以下公开了示例系统包括特别是组件、以硬件执行的软件或固件,应该注意的是,这些系统仅仅是说明性的并且不应该看作是限制。例如,可以设想,任何或所有的所公开的硬件、软件、和/或固件组件可以唯一地体现为硬件,唯一地体现为软件,唯一地体现为固件或是一些硬件、软件和/或固件的组合。
在图1的示例中,所说明的中断调度系统100包括多个处理器110,通常分别表示为处理器#1至N 120、130,和140。多个处理器110中的每一个都包括本地可编程中断控制器(LPIC),通常表示为122、132,以及142。LPIC 122,132,以及142中的每一个都包括处理器间中断寄存器(IPIR),通常表示为124,134,以及144,以及中断控制寄存器(ICR),通常表示为126,136,以及146。LPIC 122,132,以及142处理待解决的中断、屏蔽、优先化,以及向量产生,如同本领域的普通技术人员会容易认识到的那样。特别是,LPIC 122,132,以及142(例如,分别通过ICR 126,136,以及146)接收并处理处理器间中断(IPI)消息,以便用于多个处理器110的内核执行。LPIC 122,132,以及142(例如,分别通过IPIR 124,134,和144)也生成IPI消息,以允许多个处理器110能彼此进行通信。
所说明的中断调度系统100还包括系统总线150,以及多处理器可编程中断控制器(MPIC)160。如这里所述的,MPIC 160对中断赋予优先级,平衡中断负载,和/或生成IPI消息给系统总线桥180。通常,MPIC 160从输入/输出(I/O)设备接收基于引脚的和/或基于信号的中断,通常表示为170和175,例如鼠标,键盘,显示器,打印机,磁盘驱动器,和/或任何其它的外围设备。为发送基于引脚的中断,I/O设备170通过一组中断输入引脚172而直接耦合到MPIC 160。中断输入引脚172中的每一个都相应于特定的中断类型(例如,读中断或是写中断)。例如,当打印机完成一个打印作业时,该打印机会生成一个中断给MPIC 160。在另外一个例子中,当磁盘驱动器完成对磁盘的读取和/或写操作时,该磁盘驱动器会生成一个中断给MPIC 160。基于中断的类型,I/O设备170会通过该组中断输入引脚172中的一个而发送中断给MPIC 160。依照系统总线协议,系统总线桥180启动在多个处理器110和MPIC 160之间的通过系统总线150的中断消息传递。即,系统总线桥180使得处理器间中断(IPI)消息可以发送到多个处理器110,这样中断就能由MPIC 160调度并由多个处理器110处理。因此,通过依照这里所述的中断负载平衡策略而生成IPI消息给系统总线桥180,MPIC 160能将中断调度给多个处理器中的至少一个(即,目标处理器)。为了实现中断负载平衡策略,MPIC 160从多个处理器110中识别出目标处理器,以便基于一个或多个中断负载平衡参数,例如多个处理器110的时间(例如,中断服务期限等级)、历史(中断负载历史等级)、以及可用性(例如,中断可用性等级)来调度中断。
为了发送基于信号的中断给MPIC 160,I/O设备175通过系统总线桥180和I/O总线190而连接到MPIC 160。与通过该组中断输入引脚172的其中一个而发送中断给MPIC 160相反,I/O设备175通过I/O总线190发送中断消息给系统总线桥180。本领域的普通技术人员能容易理解,中断消息指示由I/O设备175请求的中断类型(例如,读中断或写中断)。从而,MPIC 160生成相应于来自I/O设备175的中断消息的IPI消息,并基于中断负载平衡策略通过IPI消息而将中断调度到目标处理器。
虽然以上的由图1的中断调度系统100所调度的中断描述为硬件中断(例如,来自打印机的中断),中断也可以为软件中断(例如,来自文字处理应用程序的中断)。在一个特殊的例子中,当应用程序结束和/或请求来自操作系统(OS)(未示出)的指令时,会出现软件中断。
在图2的例子中,所说明的MPIC 160包括中断负载平衡策略寄存器(ILBPR)210,多个目标处理器控制寄存器(TPCR)212,加权平均值生成器(WAG)250,以及目标处理器选择器(TPS)270。ILBPR 210包括对于一个或多个中断负载平衡参数的权重,其中的参数例如处理器中断服务期限(PISA),处理器中断负载历史(PILH),以及处理器中断可用性(PIA),来实现中断负载平衡策略。PISA参数指示了中断已经排队等候多个处理器110的时间(即,中断在被多个处理器110的每一个处理之前,等待了多长时间)。PILH参数指示了调度到多个处理器110的中断的历史(即,中断被调度到多个处理器110中的每一个以执行其它任务的频率)。PIA参数指示了多个处理器110对于接收来自MPIC 160的中断的意愿(即,多个处理器110中的每一个的繁忙程度)。
每一个中断负载平衡参数都被赋予一个相对的权重,以指示在中断负载平衡策略中该特定参数的相关重要性/影响。例如,ILBPR 210可以包括PISA权重214,PILH权重216,以及PIA权重218。如果中断负载平衡参数对中断负载平衡策略来说同样地重要,则每一个中断负载平衡参数都被赋予一个相同的权重。但是,如果特定的中断负载平衡参数比其它的参数相对来说要更重要的话,那么该特定的中断负载平衡参数就可以关联一个更大的权重。为了说明相对的权重被赋予每一个中断负载平衡参数的一种方式,PISA权重214可以为2的相对权重,并且PILH权重216也可以为2的相对权重,但是PIA权重218可以为1的相对权重。在这个中断负载平衡策略例子中,PISA参数和PILH参数同样重要,因为PISA权重214和PILH权重216有着相同的权重2。另外,在本例中,PISA参数和PILH参数相对来说比PIA参数更重要,因为PISA权重214和PILH权重216都有着对于PIA权重218来说两倍的相对权重。
PISA权重214,PILH权重216,以及PIA权重218可以改变以支持其它中断负载平衡方案。为实现循环方案,例如,PISA权重214以及PIA权重218可以被设置成最低等级(例如,零),以使中断负载平衡策略只是单独地基于PILH参数(即,PILH权重216比PISA权重214和PIA权重218发更大)。因此,MPIC 160可以按照从处理器#1120到处理器#N 140的连续顺序来简单地调度中断,并接着重复该顺序。
虽然是在一个特定的范围之内说明了中断负载平衡参数的权重,但是中断负载平衡参数的权重可以由任何其它合适的范围来实现,以指示在中断负载平衡策略下每一个中断负载平衡参数相对于其它参数的重要性。
如上所述,MPIC 160还包括多个TPCR 212,通常表示为TPCR#1220,TPCR#2230,以及TPCR#N 240,它们包括与多个处理器110关联的中断调度信息。多个TPCR 212中的每一个都相应于示例中断调度系统100的多个处理器110的其中之一。例如,TPCR#1220相应于处理器#1120,TPCR#2230相应于处理器#2130,以及TPCR#N240相应于处理器#N 140。多个TPCR 212中的每一个都包括与它的相应处理器相关的中断调度信息。在每一个TPCR 212中,中断调度信息识别出一个特定的处理器,并且指示在ILBPR 210的中断负载平衡参数每一个中的该特定处理器的等级。特别是,多个TPCR 212中的每一个都包括处理器识别符(PID),PISA等级,PILH等级,以及PIA等级。例如,TPCR#1220包括与处理器#1120关联的PID 222,PISA等级224,PILH等级226,以及PIA等级228。PID 222可以是相应于处理器#1120的标识号码。PISA等级224指示出处理器#1120在处理中断上所花销的时间。PILH等级226指示了调度到处理器#1120的中断的历史(即,已经有多少中断调度到处理器#1120)。PIA等级228指示了处理器#1120执行来自MPIC 160的中断的可用性(即,处理器#1120的繁忙程度)。例如,中断调度系统100可以将重要的任务交给处理器#1120执行,并且降低PIA等级228以减少处理器#1120接受来自MPIC 160的中断的意愿。可替换地,中断调度系统100可以简单地将PIA等级228设置到最低的等级(例如,零),以使处理器#1120总是不可用于接收来自MPIC 160的中断。因此,处理器#1120可以专心于执行先前由中断调度系统100分配的重要任务。通过与TPCR#1220类似的方式,TPCR#2230包括与处理器#2130相关联的PID 232,PISA等级234,PILH等级236,以及PIA等级238,并且TPCR#N 240包括与处理器#N 140关联的PID 242,PISA等级244,PILH等级246,以及PIA等级248。
为了识别多个处理器110中的一个作为用来处理中断的目标处理器,WAG250为多个处理器110中的每一个确定中断加权平均值(IWA)260,通常表示为IWA#1262,IWA#2264,以及IWA#N 266。基于中断负载平衡参数214、216、218的权重,以及存储在多个TPCR 212中的中断调度信息,WAG 250计算IWA 260。WAG 250可以使用不同的方法来评估ILBPR 210和TPCR 212。例如,这些方法可以包括对多个处理器110的每一个进行IWA的全比特范围计算,以选择负载最小的处理器,以及包括基于中断调度信息的三个等级之一的比较。WAG 250分别根据PISA权重214、PILH权重216、及PIA权重218,通过加权(例如,乘以)处理器#1120的PISA等级224、PILH等级226、以及PIA等级228而计算IWA#1262。即,WAG 250将PISA等级224乘以PISA权重214,将PILH 226乘以PILH权重216,以及将PIA等级228乘以PIA权重218,然后把最后得到的乘积相加以生成IWA#1262。类似地,WAG 250分别根据PISA权重214、PILH权重216、及PIA权重218,通过加权处理器#2130的PISA等级234、PILH等级236、以及PIA等级238而计算IWA#2264。通过类似的方式,WAG 250通过处理器#N 14的PISA等级244、PILH等级246、以及PIA等级248而计算IWA#N 266。
在由WAG 250计算IWA 260的基础上,TPS 270比较多个处理器110的IWA260,以选择多个处理器110中的一个作为目标处理器,用于接收/服务下一个中断。例如,TPS 270可以识别与最高IWA关联的处理器作为目标处理器。在这样的情况下,MPIC 160通过生成一个IPI消息给目标处理器的目标处理器识别符(TPID)262,来将中断调度到目标处理器。
虽然图2所示的PISA,PILH,以及PIA参数都特别适合于用来实现中断调度系统100,但是本领域的普通技术人员会容易地认识到可以使用其它合适的中断负载平衡参数。进一步,可以使这里所述的其中一个或多个中断负载平衡参数禁用,以识别目标处理器。为了实现时间循环方案(例如,将中断调度到多个处理器110中的每一个,而不管任何其它原因),例如,中断调度系统100可以将PISA权重214和PIA权重218设置到最低等级(例如,零),以使WAG250可以只基于PILH参数而计算IWA 260。结果是,MPIC 160可以简单地以例如从处理器#1120到处理器#N 140的连续顺序来调度中断,然后接着重复该顺序。
与公知的固定重定向方案不同,MPIC 160通过基于中断负载平衡参数来识别目标处理器(即,负载最小的处理器),从而提供动态的或时变的中断调度/路由方案。通过识别该目标处理器来处理中断,其它的处理器可以专注于执行它们相应的程序线程。进一步,MPIC 160提供了灵活性以调整中断负载平衡参数的相对重要性。因此,中断调度系统100的整个系统性能可以改善以及优化。
图3是一个流程图300,它表示图2的MPIC 160可以在多处理器系统中控制中断调度的一种方式。本领域的普通技术人员会认识到,使用由处理器系统(例如,图4的处理器系统1000)所执行的可机读指令,可以实现图3的流程图300。特别是,该指令可以由任意许多不同的方法来实现,这些方法利用了存储在任意多种可机读介质,如易失性或非易失性存储器或其它海量存储设备(例如,磁盘,CD,及DVD)上的任意许多不同的的编程代码。例如,可机读指令可以体现在可机读介质中,其中可机读介质如可擦除可编程只读存储器(EPROM),只读存储器(ROM),随机存取存储器(RAM),磁介质,光介质,和/或任何其它合适类型的介质。可选择的,可机读指令可以体现在可编程门阵列和/或是专用集成电路(ASIC)中。进一步,虽然在图3中说明了操作的特定顺序,但本领域的普通技术人员会认识到,这些操作能以其它的时间顺序而执行。再次,该流程图300仅仅是提供作为在多处理器系统中调度中断的一个方法的例子。
流程图300从WAG 250访问与多个处理器110中的每一个相关联的中断调度信息开始(框310)。例如,WAG250访问TPCR212以得到多个处理器110中每一个的PID、PISA等级、PILH等级、以及PIA等级。基于由ILBPR 210的中断负载平衡策略所指定的一个或多个中断负载平衡参数,WAG 250确定多个处理器110中每一个的IWA(框320)。如上所述,WAG 250基于多个处理器110中每一个的PISA等级、ILH等级、和PIA等级来计算多个处理器110的IWA 260。例如,WAG 250基于PISA等级224、PILH等级226、以及PIA等级228来计算处理器#1120的IWA#1262。PISA等级224,ILH等级226,以及PIA等级228中的每一个都基于中断负载平衡策略而因式分解为IWA#1262,其指示PISA、PILH、以及PIA参数的相对权重。在由WAG 250计算多个处理器110的IWA260的基础上,TPS270比较IWA260(框330)。基于IWA260的比较,TPS 270选择多个处理器110中的一个或多个作为目标处理器,MPIC 160将下一个中断调度到该目标处理器(框340)。例如,TPS 270可以从多个处理器11O中选择一个特定的处理器作为目标处理器,因为该特定处理器与最高的IWA相关联。从而,通过生成IPI消息给相应于目标处理器的TPID,TPS 270将中断调度到目标处理器(框350)。结果是,根据中断负载平衡策略,通过调度中断到多个处理器110,MPIC 16改善了系统性能。
图4是适合于实现这里所公开的方法和设备的处理器系统1000的示例框图。处理器系统1000可以是桌面电脑,膝上型电脑,笔记本电脑,个人数字助理(PDA),服务器,Internet设备或是任何其它类型的计算设备。
在图4中说明的处理器系统1000提供存储器和I/O管理功能,以及多个通用和/或专用寄存器,计时器等,它们都是可以被处理器1020所访问或使用的。处理器1020通过使用一个或多个处理器而实现。例如,处理器1020可以通过使用一个或多个IntelPentium技术、IntelItanium技术、IntelCentrinoTM技术、和/或IntelXScale技术而实现。可供选择的,可以使用其它的处理技术来实现处理器1020。处理器1020包括高速缓存1022,它可以通过使用一级统一高速缓存(L1)、二级统一高速缓存(L2)、三级统一高速缓存,和/或任何其它合适的存储数据的结构来实现,如本领域的普通技术人员能容易认识到的那样。
按照惯例,易失性存储器控制器1036和非易失性存储器控制器1038执行这样的功能:使处理器1020能够通过总线1040访问主存储器1030并与其进行通信,其中主存储器1030包括易失性存储器1032和非易失性存储器1034。可以由同步动态随机存取存储器(SDRAM),动态随机存取存储器(DRAM),RAMBUS动态随机存取存储器(RDRAM),和/或任何其它类型的随机存取存储器设备来实现易失性存储器1032。可以使用闪存、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM),和/或其它想要类型的存储器设备来实现非易失性存储器1034。
处理器系统1000还包括连接到总线1040的接口电路1050。可以使用任何类型的众所周知的接口标准来实现,其中的接口标准如以太网接口、通用串行总线(USB)、第三代输入/输出接口(3GIO)接口,和/或任何其它合适类型的接口。
一个或多个输入设备1060连接到接口电路1050。输入设备1060允许用户输入数据和命令到处理器1020中。例如,可以由键盘,鼠标,触摸屏,轨迹板,轨迹球,同点(isopoint)和/或语音识别系统来实现输入设备1060。
一个或多个输出设备1070也连接到接口电路1050。例如,可以由显示设备(例如,发光显示器(LED),液晶显示器(LCD),阴极射线管显示器(CRT),打印机和/或扬声器)来实现。因此接口电路1050通常特别包括图形驱动卡。
处理器系统1000还包括一个或多个海量存储器设备1080以存储软件和数据。这样的海量存储器设备1080的例子包括磁盘及驱动器,硬盘驱动器,光盘及驱动器,以及数字通用盘(DVD)及驱动器。
接口电路1050也包括通讯设备如调制解调器或网络接口卡,以有助于通过网络与外部计算机的数据交换。在处理器系统1000和网络之间的通讯链接可以为任何类型的网络连接,如以太网连接,数字用户线(DSL),电话线,蜂窝电话系统,同轴电缆等。
对输入设备1060、输出设备1070、海量存储设备1080和/或网络的访问,通常由I/O控制器1014以传统的方式控制。特别是,I/O控制器1014执行这样的功能:它使处理器1020可以通过总线1040和接口电路1050与输入设备1060、输出设备1070、海量存储器设备1080和/或网络进行通讯。
虽然图4所示组件描述为在处理器系统1000之内的单独的方框,但由这些方框所执行的功能可以被集成在单一半导体电路内,或可以使用两个或多个单独的集成电路来实现。例如,虽然I/O控制器1014、易失性存储器控制器1036,以及非易失性存储器控制器1038由单独的方块所描述,但本领域的普通技术人员会认识到I/O控制器1014、易失性存储器控制器1036、以及非易失性存储器控制器1038可以集成到单一的半导体电路内。
虽然已经在这里叙述了某些示例的方法、设备、以及制造产品,本发明的覆盖范围并不局限于此。相反地,本发明覆盖所有照字面意义或是按照相当物的原理,清楚地落在所附权利要求的范围中的方法、设备以及制造产品。

Claims (30)

1.一种方法,包括:
基于与多个处理器关联的中断调度信息而为多个处理器中的每一个生成中断加权平均值(IWA);以及
基于IWA而从多个处理器中识别目标处理器以调度中断。
2.如权利要求1中所定义的方法,其中基于与多个处理器关联的中断调度信息而为多个处理器中的每一个生成IWA包括:基于处理器中断服务期限等级、处理器中断负载历史等级、以及处理器中断可用性等级中的至少一个而为多个处理器中的每一个生成IWA。
3.如权利要求1中所定义的方法,其中基于与多个处理器关联的中断调度信息而为多个处理器中的每一个生成IWA包括:识别与处理器中断服务期限等级、处理器中断负载历史等级、以及处理器中断可用性等级中的至少一个相关联的权重。
4.如权利要求1中所定义的方法,其中基于与多个处理器关联的中断调度信息而为多个处理器中的每一个生成IWA包括:存储一个或多个中断负载平衡参数的权重,并基于所存储的一个或多个中断负载平衡参数的权重而为多个处理器中的每一个计算IWA。
5.如权利要求1中所定义的方法,其中基于IWA而从多个处理器中识别出目标处理器以调度中断包括:识别与最高IWA相关联的处理器。
6.如权利要求1中所定义的方法,其中基于IWA而从多个处理器中识别出目标处理器以调度中断包括:基于IWA而从多个处理器中识别该目标处理器,以调度硬件中断和软件中断其中之一。
7.如权利要求1中所定义的方法,进一步包括生成中断消息以发送到目标处理器。
8.一种用于存储指令的可机读介质,在执行该存储指令时致使机器:
基于与多个处理器关联的中断调度信息而为多个处理器中的每一个生成中断加权平均值(IWA);以及
基于IWA而从多个处理器中识别目标处理器以调度中断。
9.如权利要求8中所定义的可机读介质,其中当执行该指令时,致使机器通过基于处理器识别符、处理器中断服务期限等级、处理器中断负载历史等级、以及处理器中断可用性等级中的至少一个而为多个处理器中的每一个生成IWA,从而基于与多个处理器关联的中断调度信息而为多个处理器中的每一个生成IWA。
10.如权利要求8中所定义的可机读介质,其中当执行该指令时,致使机器通过识别与处理器中断服务期限等级、处理器中断负载历史等级、以及处理器中断可用性等级中的至少一个相关联的权重,从而基于与多个处理器关联的中断调度信息而为多个处理器中的每一个生成IWA。
11.如权利要求8中所定义的可机读介质,其中当执行该指令时,致使机器通过识别与最高IWA相关联的处理器,从而基于IWA从多个处理器中识别出目标处理器以调度中断。
12.如权利要求8中所定义的可机读介质,其中当执行该指令时,致使机器通过从多个处理器识别出目标处理器以调度硬件中断和软件中断其中之一,从而基于IWA从多个处理器中识别出目标处理器以调度中断。
13.如权利要求8中所定义的可机读介质,其中当执行该指令时,致使机器生成中断消息以发送到目标处理器。
14.如权利要求8中所定义的可机读介质,其中的可机读介质包括可编程门阵列、专用集成电路、可擦除可编程只读存储器、只读存储器、随机存取存储器、磁介质、以及光介质中的一种。
15.一种设备,包括:
中断负载平衡策略寄存器(ILBPR),用于存储一个或多个相应于一个或多个中断负载平衡参数的权重;
多个目标处理器控制寄存器(TPCR),用于存储与多个处理器相关联的中断调度信息;
加权平均值生成器,用于基于相应于一个或多个中断负载平衡参数的权重以及与多个处理器相关联的中断调度信息,而为多个处理器中的每一个生成中断加权平均值(IWA);以及
目标处理器选择器,用于基于IWA而从多个处理器中识别出目标处理器以调度中断。
16.如权利要求15中所定义的设备,其中相应于一个或多个中断负载平衡参数的权重包括:处理器中断服务期限权重、处理器中断负载历史权重、以及处理器中断可用性权重中的至少一个。
17.如权利要求15中所定义的设备,其中中断调度信息包括处理器识别符,处理器中断服务期限等级,处理器中断负载历史等级,以及处理器中断可用性等级中的至少一个。
18.如权利要求15中所定义的设备,其中目标处理器包括与来自多个处理器的最高IWA相关联的处理器。
19.如权利要求15中所定义的设备,其中目标处理器选择器生成中断消息以发送到目标处理器。
20.如权利要求15中所定义的设备,其中中断包括硬件中断和软件中断中的一个。
21.一种处理器系统,包括:
输入/输出控制器,被编程以请求中断;以及
多处理器可编程中断控制器(MPIC),被编程以基于与多个处理器相关联的中断调度信息,为多个处理器中的每一个生成中断加权平均值(IWA),以及基于IWA,从多个处理器中识别出目标处理器以调度中断请求。
22.如权利要求21中所定义的处理器系统,其中MPIC被编程以基于处理器识别符、处理器中断服务期限等级、处理器中断负载历史等级、以及处理器中断可用性等级中的至少一个,而为多个处理器中的每一个生成IWA。
23.如权利要求21中所定义的处理器系统,其中MPIC被编程以存储中断调度信息的权重,并且基于所存储的中断调度信息的权重而为多个处理器中的每一个计算IWA。
24.如权利要求21中所定义的处理器系统,其中MPIC被编程以识别与相应于多个处理器的处理器中断服务期限等级、处理器中断负载历史等级、以及处理器中断可用性等级中的至少一个相关联的权重。
25.如权利要求21中所定义的处理器系统,其中MPIC被编程以识别与最高IWA相关联的处理器。
26.如权利要求21中所定义的处理器系统,其中MPIC被编程以生成中断消息而发送到目标处理器。
27.如权利要求21中所定义的处理器系统,其中的中断包括硬件中断和软件中断其中之一。
28.一种方法,包括:
为多个处理器中的每一个而确定多个中断负载平衡参数的值;
将负载平衡策略应用于多个中断负载平衡参数的值,以形成表示多个处理器中每一个的与中断相关的性能的多个值;以及
基于表示多个处理器中每一个的与中断相关的性能的值,识别多个处理中的一个作为目标处理器以接收中断。
29.如权利要求28中所定义的方法,其中为多个处理器中的每一个而确定多个中断负载平衡参数的值包括:确定对于处理器中断服务期限参数、处理器中断负载历史参数、以及处理器中断可用性参数中的至少一个的值。
30.如权利要求28中所定义的方法,其中将负载平衡策略应用于多个中断负载平衡参数的值,以形成表示多个处理器中每一个的与中断相关的性能的多个值包括:将中断加权平均值应用于处理器中断服务期限参数、处理器中断负载历史参数、以及处理器中断可用性参数中至少一个的每一个值。
CN200410010458.1A 2003-12-08 2004-12-08 在多处理器系统中调度中断的方法及设备 Pending CN1737765A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/730467 2003-12-08
US10/730,467 US20050125582A1 (en) 2003-12-08 2003-12-08 Methods and apparatus to dispatch interrupts in multi-processor systems

Publications (1)

Publication Number Publication Date
CN1737765A true CN1737765A (zh) 2006-02-22

Family

ID=34634172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410010458.1A Pending CN1737765A (zh) 2003-12-08 2004-12-08 在多处理器系统中调度中断的方法及设备

Country Status (3)

Country Link
US (1) US20050125582A1 (zh)
CN (1) CN1737765A (zh)
TW (1) TWI261784B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872314A (zh) * 2009-04-24 2010-10-27 勒斯塔尔技术有限责任公司 用于多处理器的动态调度中断控制器
CN102099797A (zh) * 2008-04-03 2011-06-15 松下电器产业株式会社 多处理器系统以及多处理器系统的中断控制方法
CN101534319B (zh) * 2008-11-11 2012-01-04 全旅通(北京)信息服务有限公司 一种解除指令间依赖关系的方法、系统和代理服务器
CN105378668A (zh) * 2013-06-13 2016-03-02 微软技术许可有限责任公司 多处理器系统中的操作系统管理的中断引导
CN106469090A (zh) * 2012-10-08 2017-03-01 晶心科技股份有限公司 处理中断请求事件的装置与方法
CN112347013A (zh) * 2016-04-27 2021-02-09 华为技术有限公司 一种中断处理方法以及相关装置

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478811B2 (en) 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US7461215B2 (en) * 2002-10-08 2008-12-02 Rmi Corporation Advanced processor with implementation of memory ordering on a ring based data movement network
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US20050033831A1 (en) * 2002-10-08 2005-02-10 Abbas Rashid Advanced processor with a thread aware return address stack optimally used across active threads
US7334086B2 (en) 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US9088474B2 (en) 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7924828B2 (en) 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US7346757B2 (en) 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US20050044324A1 (en) * 2002-10-08 2005-02-24 Abbas Rashid Advanced processor with mechanism for maximizing resource usage in an in-order pipeline with multiple threads
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US7961723B2 (en) * 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US7984268B2 (en) 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US8176298B2 (en) * 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US7240137B2 (en) * 2004-08-26 2007-07-03 International Business Machines Corporation System and method for message delivery across a plurality of processors
US7373446B2 (en) * 2004-11-05 2008-05-13 Microsoft Corporation Method and system for dynamically patching an operating system's interrupt mechanism
TWI271654B (en) * 2005-04-22 2007-01-21 Via Tech Inc Core logic chip of computer system
EP1963963A2 (en) * 2005-12-06 2008-09-03 Boston Circuits, Inc. Methods and apparatus for multi-core processing with dedicated thread management
JP2007206955A (ja) * 2006-02-01 2007-08-16 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
US20080307422A1 (en) * 2007-06-08 2008-12-11 Kurland Aaron S Shared memory for multi-core processors
US8296490B2 (en) * 2007-06-29 2012-10-23 Intel Corporation Method and apparatus for improving the efficiency of interrupt delivery at runtime in a network system
US9596324B2 (en) 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
CN101308469B (zh) * 2008-07-07 2011-08-10 成都市华为赛门铁克科技有限公司 一种软中断负载均衡的实现方法及设备
CN101354664B (zh) * 2008-08-19 2011-12-28 中兴通讯股份有限公司 多核处理器中断负载均衡方法和装置
US8484648B2 (en) * 2009-10-19 2013-07-09 International Business Machines Corporation Hardware multi-threading co-scheduling for parallel processing systems
US8312195B2 (en) * 2010-02-18 2012-11-13 Red Hat, Inc. Managing interrupts using a preferred binding between a device generating interrupts and a CPU
US9092790B1 (en) * 2011-02-24 2015-07-28 Visualon, Inc. Multiprocessor algorithm for video processing
US9411624B2 (en) * 2011-11-22 2016-08-09 Red Hat Israel, Ltd. Virtual device interrupt hinting in a virtualization system
US10855989B2 (en) * 2016-06-09 2020-12-01 Qualcomm Incorporated Substream multiplexing for display stream compression
US11113216B2 (en) * 2019-03-20 2021-09-07 Mediatek Inc. Dispatching interrupts in a multi-processor system based on power and performance factors
US20230100059A1 (en) * 2021-09-21 2023-03-30 Intel Corporation Interrupt handling by migrating interrupts between processing cores

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5382950A (en) * 1990-08-14 1995-01-17 Siemens Aktiengesellschaft Device for implementing an interrupt distribution in a multi-computer system
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 日本電気株式会社 共有バス型マルチプロセッサシステムの割り込み負荷分散システム
US6219741B1 (en) * 1997-12-10 2001-04-17 Intel Corporation Transactions supporting interrupt destination redirection and level triggered interrupt semantics
US6189065B1 (en) * 1998-09-28 2001-02-13 International Business Machines Corporation Method and apparatus for interrupt load balancing for powerPC processors
US6265885B1 (en) * 1999-09-02 2001-07-24 International Business Machines Corporation Method, apparatus and computer program product for identifying electrostatic discharge damage to a thin film device
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
US7584316B2 (en) * 2003-10-14 2009-09-01 Broadcom Corporation Packet manager interrupt mapper

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102099797A (zh) * 2008-04-03 2011-06-15 松下电器产业株式会社 多处理器系统以及多处理器系统的中断控制方法
CN101534319B (zh) * 2008-11-11 2012-01-04 全旅通(北京)信息服务有限公司 一种解除指令间依赖关系的方法、系统和代理服务器
CN101872314A (zh) * 2009-04-24 2010-10-27 勒斯塔尔技术有限责任公司 用于多处理器的动态调度中断控制器
CN101872314B (zh) * 2009-04-24 2014-05-14 英派尔科技开发有限公司 用于多处理器的动态调度中断控制器
CN106469090A (zh) * 2012-10-08 2017-03-01 晶心科技股份有限公司 处理中断请求事件的装置与方法
CN105378668A (zh) * 2013-06-13 2016-03-02 微软技术许可有限责任公司 多处理器系统中的操作系统管理的中断引导
US10157155B2 (en) 2013-06-13 2018-12-18 Microsoft Technology Licensing, Llc Operating system-managed interrupt steering in multiprocessor systems
CN105378668B (zh) * 2013-06-13 2019-05-31 微软技术许可有限责任公司 多处理器系统中的操作系统管理的中断引导
CN112347013A (zh) * 2016-04-27 2021-02-09 华为技术有限公司 一种中断处理方法以及相关装置

Also Published As

Publication number Publication date
TW200525430A (en) 2005-08-01
TWI261784B (en) 2006-09-11
US20050125582A1 (en) 2005-06-09

Similar Documents

Publication Publication Date Title
CN1737765A (zh) 在多处理器系统中调度中断的方法及设备
US8725912B2 (en) Dynamic balancing of IO resources on NUMA platforms
WO2018006864A1 (zh) 创建虚拟机的方法、装置及系统、控制设备和存储介质
JP3008896B2 (ja) 共有バス型マルチプロセッサシステムの割り込み負荷分散システム
US7685347B2 (en) Interrupt controller for invoking service routines with associated priorities
US8612659B1 (en) Hardware interrupt arbitration in virtualized computer systems
US20170357448A1 (en) Selective i/o prioritization by system process/thread
KR100977662B1 (ko) 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서
US11681544B2 (en) Interference-aware scheduling service for virtual GPU enabled systems
US7543306B2 (en) Method, system, and program for handling device interrupts in a multi-processor environment
EP1880286A1 (en) Data processing network
US10423550B2 (en) Managing efficient selection of a particular processor thread for handling an interrupt
JP2008500652A (ja) 仮想マシン環境において仮想化アルゴリズムを選択するための適応アルゴリズム
US10545890B2 (en) Information processing device, information processing method, and program
CN104598304B (zh) 用于作业执行中的调度的方法和装置
CN1975676A (zh) 多节点计算机系统和用于监视其性能的方法
US7779411B2 (en) System, method and medium for providing asynchronous input and output with less system calls to and from an operating system
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
WO2004114132A1 (ja) 割り込み制御方法、割り込み制御装置及び割り込み制御プログラム
Chhabra et al. Qualitative parametric comparison of load balancing algorithms in parallel and distributed computing environment
CN112114967B (zh) 一种基于服务优先级的gpu资源预留方法
CN113805941A (zh) 通过替换指令集对应用软件进行加速的系统及方法
JP6988556B2 (ja) 情報処理装置、ジョブ状態表示方法およびジョブ状態表示プログラム
Chhabra et al. Qualitative Parametric Comparison of Load Balancing Algorithms in Distributed Computing Environment
WO2002003192A2 (en) Device and method for allocating jobs in a network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication