处理器间中断的制作方法

文档序号:6496046阅读:196来源:国知局
专利名称:处理器间中断的制作方法
技术领域
本发明的实施方案通常涉及计算机操作,并且更具体地,涉及处理器间中断。
背景技术
计算机可以包括多个处理器,处理器可以包括物理和逻辑处理器。操作系统可以利用处理器间中断(Inter-processor interrupt,IPI)来在系统中的处理器间传送请求。操作系统可以使用处理器间中断,从而使一个处理器启动针对一个或更多个其他处理器的特定操作。这些操作可以包括TLB(翻译后援缓冲器(Translation Lookaside Buffer))击落(shootdown)中断,其中,处理器向其他处理器发送中断以请求无效TLB入口。响应于由发送处理器所做的全局改变,诸如线性地址映射的改变或用于特定存储器范围的存储器缓存(cache)属性的改变,接收处理器可以启动缓存清洗(cache flushing)。
然而,处理器间中断信号会需要用于发送处理器侧和接收处理器侧的大量开销。发送处理器需要执行存储器访问,以通过可编程中断控制器(诸如本地高级可编程中断控制器(APIC))来发送中断。反过来,接收处理器在接收中断的处理中会占用相当大的开销。


可以通过参考下述说明书和用来示例说明本发明的实施方案的附图来最佳地理解本发明。在附图中图1示例说明发送处理器序列(sequence);图2示例说明接收处理器序列;图3示例说明发送处理器序列的实施方案;图4示例说明接收处理器序列的实施方案;图5说明处理器间中断序列的实施方案;以及图6示例说明多处理器计算机的实施方案。
具体实施例方式
描述用于多处理器系统中的处理器间中断的方法和装置。
在本发明的实施方案中,使用用来调用中断的指令来执行处理器间中断函数(function)。所述指令在此称为Mcall指令,尽管指令可以具有任何名称。在所述实施方案中,发送处理器侧的函数的操作成本是对回写存储位置(memory location)的存储操作,而接收侧的成本是对函数的强制调用。本发明的实施方案可以大大地降低处理器间中断的操作成本,由此提高系统性能。
根据本发明的实施方案,中断函数是由通过存储器系统发送的信号来执行的。发送处理器执行对写回存储位置的存储操作。所述存储操作由此触发接收侧上的函数调用。所述操作可以与通过APIC发送的通用中断形成对照。通过降低发送处理器间中断的成本,所述实施方案可以允许在多处理器和多线程环境中的改进的操作系统性能。在本发明的实施方案中,可以在没有APIC的情况下或在具有可选择的信号操作的系统中,执行处理器间中断函数。
图1所示为用于发送处理器间中断的常规机制。在该示例中,第一启动或发送处理器向第二接收或目标处理器提供中断。在图1中提供的实施例涉及用两个32位写操作编写的64位命令。在该序列中,第一处理器执行下述任务1.通过写入处理器本地APIC任务优先级寄存器105,提高中断请求级(IRQL)。这是对非缓存位置的写入。
2.(在存储位置或寄存器中)创建写入处理器本地APIC中断命令寄存器的命令110。除了其他参数之外,所述命令指定目标处理器和用于中断所述目标处理器的中断矢量V。中断矢量V将对应于中断服务例程,所述中断服务例程响应于发送处理器间中断而在目标处理器上被执行。
3.将所述命令写入处理器本地APIC中断命令寄存器(ICR)115。这是对非缓存位置的写入。用于写入该命令的过程可以包括a.禁止(disable)中断的操作120。
b.等待本地APIC不忙125。这可以通过轮询中断命令寄存器中的BUSY位来完成。
c.将所述命令的高32位写入APIC中断命令寄存器的高位字(high word)130。
d.将所述命令的低32位写入APIC中断命令寄存器的低位字(low word)135。
e.等待本地APIC不忙140f.重新使能(re-enable)中断操作145。
4.等待目标处理器通过向特定存储位置写入特定数据值确认处理器间中断的接收150。所述写入将作为刚刚发送在所述目标处理器上的中断的服务的部分而发生。
5.恢复正常操作155。
在接收处理器上,中断通常被锁存并通过包含在本地APIC中断输送机制中的逻辑被输送到处理器核心(core)。所示的中断机制考虑处理器核心正在其下操作的中断优先级(如在APIC任务优先级寄存器中所反映的),可以具有较高优先级的其他未决中断,以及处理器的核心的可中断性状态。当处理器核心具有使能的中断并且对应于处理器间中断的矢量为未决的最高优先级中断矢量时,那么本地APIC将所述矢量分配到所述核心。
对接收处理器来讲,图2所示为事件的一般序列。用于接收处理器的处理器间中断过程可以包括1.处理器的本地APIC将对应于中断服务例程(ISR)的中断矢量V分配到处理器核心205。在引导时(boot time),OS就已经编程了对应于矢量V的中断描述符表项目,以包含中断门和中断服务例程。
2.将任务优先权寄存器级别提高到对应于矢量V的级别210。
3.处理器核心通过中断描述符表来分配所述矢量V215。
4.对应于处理器间中断的中断服务例程通过被禁用的中断来获得控制220。
5.中断服务例程写入存储位置以便发信号通知发送处理器收到处理器间中断225。
6.执行用于处理器间中断的动作230。
7.恢复正常操作235。
在本发明的实施方案中,将指令(本说明书中的Mcall指令)用于中断的操作可以简化用于发送处理器和接收处理器的操作序列。在引导时,多处理器系统中的每个处理器可以寄存函数,所述函数对应于在接收中断服务例程上的核心模式中执行的中断服务例程,诸如通过Mcall指令的处理器间中断函数。然而,所述操作可以另外通过其他机制来实现,包括使用模型特定寄存器(model specific register)。
图3所示是用于发送处理器的处理器间中断序列的实施方案。用于发送处理器的过程可以包括1.对线性地址X,执行处理器间中断请求的存储器写入305。
2.通过轮询特定存储位置来确定值是否有变化,等待接收处理器确认处理器间中断的接收310。所述值的变化是通过作为接收处理器上的中断的服务的一部分的写入而出现的。对处理器间中断的传输来讲,该操作是不需要的,并且在一些实施方案中,不轮询存储位置或收到接收中断的确认,操作也可以恢复。
3.当存储位置具有变化的值时,恢复正常操作315。
图3所示的实施例示例说明将中断发送到一个接收处理器的实施例。处理器间中断可以发送到多个处理器。在一个实施方案中,多个处理器监视单个存储位置来检测处理器间中断。在另一实施方案中,每个处理器可以监视单独的存储位置。如果处理器间中断发送到多个目标处理器,那么发送处理器可以执行对处理器监视的存储位置的写入,或可以执行多个写入,写入目标处理器正在监视的地址的每一个。在本发明的实施方案中,所执行的每个写入是写入缓存的存储位置的,从而远快于按传统序列写入未缓存的任务优先级寄存器地址。
图4是接收处理器序列的示例。在本发明的实施方案中,用于使用Mcall操作的处理器间中断的接收处理器操作可以包括1.在内核(kemal)模式中,建立在接收到处理器间中断时使能环转换(ring transition)的状态405。
2.监视存储位置<线性地址X>410。对存储位置的写入表示处理器间中断请求。
3.一旦在用户模式或内核模式中检测到处理器间中断415,保存当前状态420。
4.执行中断,Mcall<IPI ISR线性地址>425。
5.该函数的执行可以包括写入正由发送处理器轮询的存储位置430。
6.恢复正常操作435。
在该实施方案中,Mcall指令使接收处理器处于这样的状态,即其中所述处理器监视用于写入的线性地址X,以及一旦检测到写入操作,接收处理器将执行控制传送到IPIISR线性地址。通过在堆栈上建立的适当状态以及被提高到适当优先权的处理器优先级,按需要执行环转换。
图5示例说明在第一发送处理器和第二接收处理器间的序列的实施方案。在该示例中,发送处理器505正向接收处理器510发送处理器间中断。在其他示例中,中断可以发送到多个处理器。发送处理器505将处理器间中断请求515写入在该图中指定为线性地址X520的地址。由接收处理器510监视线性地址X520 535。然后,发送处理器505可以轮询(525)在该示例中被指定为Y 530的存储位置。存储位置Y 530中的值的变化表示确认接收处理器510接收到中断请求。然而,对处理器间中断请求的发送来讲,接收确认不是必需的,并且在一些实施方案中,发送处理器505可以在不轮询存储位置或接收确认的情况下,开始正常操作。
当发生对线性地址X 520的写入时,监视(535)线性地址X 520的接收处理器510被告知该中断请求。在内核模式中,接收处理器将已经建立用于一旦接收到处理器间中断,使能环转换的状态。当接收到中断时,保存接收处理器的当前状态540。线性处理器通过表示为Mcall<IPI ISR线性地址>(545)的中断的调用,执行该中断。该函数的执行可以包括写入(550)正在由发送处理器505轮询(525)的存储位置Y530。一旦检测到存储位置Y530中值的变化,发送处理器可以恢复正常操作。一旦完成处理器间中断,接收处理器可以恢复正常操作。
在此所述的技术可以用在许多不同环境中。图6是可以结合本发明的实施方案使用的示例性计算机的框图。在本发明的实施方案中,所述计算机可以包括嵌入系统或其他专用计算机。嵌入系统或其他专用计算机可以在没有在此所述的某些部件或特征的情况下操作。
在本发明的实施方案中,计算机600包括总线605或用于传送信息的其他通信装置,以及用于处理信息的处理装置,诸如与第一总线605耦合的一个或多个处理器610(示为611、612,一直到613)。处理器610的任何一个可以向其他处理器的一个或更多个提供处理器间中断。每个处理器可以包括用于处理器间中断操作的执行单元和逻辑。
计算机600进一步包括随机存取存储器(RAM)或其他动态存储器件,作为用于存储将由处理器610执行的信息和指令的主存储器615。主存储器615也可以用于存储在由处理器610执行指令期间的临时变量或其他中间信息。计算机600也可以包括只读存储器(ROM)620和/或其他静态存储器件,用来为处理器610存储静态信息和指令。
数据存储设备625也可以耦合到计算机600的总线605,用于存储信息和指令。数据存储设备625可以包括磁盘或光盘以及相应的驱动、闪存或其他非易失性存储器,或其他存储器件。这些元件可以组合在一起或可以是单独的组件,并且利用计算机600的部分其他元件。
计算机600也可以通过总线605耦合到显示设备630,诸如液晶显示器(LCD)或其他显示技术,用来向最终用户显示信息。在一些实施方案中,显示设备可以是触屏,所述显示设备至少也用作输入设备的一部分。在一些实施方案中,显示设备630可以是或可以包括听觉设备,诸如用于提供听觉信息的扬声器。输入设备640可以耦合到总线605,用来向处理器610传送信息和/或命令选择。在不同的实现中,输入设备640可以是键盘,小键盘,触屏和笔(stylus),声控系统,或其他输入设备,或这些设备的组合。可以包括的用户输入设备的另一类型是光标控制设备645,诸如鼠标,跟踪球,或光标方向键,用来向处理器610传送方向信息和命令选择,并且用来控制显示设备630上的光标运动。
通信设备650也可以耦合到总线605。根据特定的实现,通信设备650可以包括收发机,无线调制解调器,网络接口卡,或其他接口设备。计算机600可以使用通信设备650来链接到网络或其他设备,所述链接可以包括链接到Internet、局域网或另一个环境。
在上述说明中,为说明目的,阐述了许多具体的细节以便提供本发明的全面理解。然而,在没有这些具体细节中的一些的情况下,也可以实施本发明,这对本领域技术人员来说是清楚的。在其他实例中,用框图形式示出了公知的结构和设备。
本发明包括不同步骤。本发明的步骤可以通过硬件组件执行或者可以以机器可执行指令来实施,所述机器可执行指令使通过指令编程的通用或专用处理器或逻辑电路执行这些步骤。另外,可以通过硬件和软件的组合来执行这些步骤。
可以将本发明的部分提供为计算机程序产品,所述产品可以包括在其上存储有指令的机器可读介质,所述指令被用来编程计算机(或其他电子设备)以执行根据本发明的过程。机器可读介质可以包括但不限于软盘、光盘、CD-ROM,以及磁光盘、ROM、RAM、EPROM、EEPROM、磁或光卡、闪存或适合于存储电子指令的其他类型的媒介/机器可读介质。此外,本发明也可以作为计算机程序产品而被下载,其中,经由通信链路(例如调制解调器或网络连接),通过包含在载波或其他传播介质中的数据信号,可以将程序从远程计算机传送到请求的计算机。
以它们最基本的形式,描述了许多方法,但步骤可以添加到所述方法的任何一个或从所述方法的任何一个中删除,并且信息可以添加到所述消息的任何一个或从所述的消息的任何一个中减去,而不会背离本发明的基本范围。对本领域的技术人员来说,可以进行许多进一步改进和适应是清楚的。特定实施方案不是被提供来限制本发明,而是示例性地说明本发明。本发明的范围不由上述提供的具体实施例来确定,而仅是由所附的权利要求书来确定。
还应意识到,贯穿本说明书所引用的“一个实施方案”或“实施方案”是指特定特征可以包括在本发明的实施中。类似地,应意识到在本发明的示例性实施方案的上述描述中,本发明的各个特征在单个实施方案、附图或其描述中有时组合在一起,用来使所述公开简洁并且帮助理解发明各个方面中的一个或更多个。然而,所述公开的方法不是要被解释为反映这样的意图,即所要求保护的发明需要比在每个权利要求中明确引用的特征更多的特征。相反,如所附权利要求书所反映的,发明性的特征少于单个上述公开的实施方案的所有特征。因此,权利要求书由此明确地包含在本说明书中,其中每项权利要求单独成为本发明的单独的实施方案。
权利要求
1.一种方法,包括将处理器间中断请求写入第一存储位置;监视所述第一存储位置;在所述第一存储位置中,检测所述处理器间中断请求;调用用于所述处理器间中断请求的函数;以及执行用于所述处理器间中断请求的函数。
2.如权利要求1所述的方法,进一步包括写入第二存储位置,以确认接收到所述处理器间中断请求。
3.如权利要求2所述的方法,进一步包括监视所述第二存储位置,以获得接收到所述处理器间中断请求的确认。
4.如权利要求1所述的方法,进一步包括在检测到处理器间中断请求时,建立用于使能环转换的状态。
5.如权利要求1所述的方法,进一步包括在检测到处理器间中断请求时,保存当前状态。
6.如权利要求1所述的方法,其中,所述第一存储位置是线性存储位置。
7.如权利要求1所述的方法,其中,所述第一存储位置用于第一处理器,所述第一处理器监视所述第一存储位置。
8.如权利要求1所述的方法,其中,所述第一存储位置用于多个处理器,所述处理器中的每一个监视所述第一存储位置。
9.如权利要求1所述的方法,进一步包括将所述处理器间中断请求写入多个存储位置,所述多个存储位置中的每一个被一个或更多个处理器监视。
10.一种处理器,包括执行单元,所述执行单元执行处理器间中断请求,所述处理器间中断请求的执行包括监视第一存储位置;在所述第一存储位置中,检测处理器间中断请求;调用用于所述处理器间中断请求的函数;以及执行用于所述处理器间中断请求的函数。
11.如权利要求10所述的处理器,其中,所述处理器间请求的执行进一步包括写入第二存储位置,以确认接收到所述处理器间中断请求。
12.如权利要求10所述的处理器,其中,所述处理器间请求的执行进一步包括在检测到处理器间中断请求时,使能环转换。
13.如权利要求10所述的处理器,其中,所述处理器间请求的执行进一步包括在检测到处理器间中断请求时,保存当前状态。
14.如权利要求10所述的处理器,其中,所述第一存储位置是线性存储位置。
15.一种系统,包括多个处理器,所述多个处理器包括第一处理器和第二处理器;总线,所述第一处理器和所述第二处理器耦合到所述总线上;以及存储器,所述存储器包括第一存储位置,所述第一处理器将用于第二处理器的处理器间中断请求写入第一存储位置,所述第二处理器监视所述第一存储位置,以获得处理器间中断请求,以及在检测到所述处理器间中断请求时,调用函数。
16.如权利要求15所述的系统,其中,所述存储器进一步包括第二存储位置,所述第二处理器写入第二存储位置,以确认接收到所述处理器间中断请求。
17.如权利要求15所述的系统,其中,所述第二处理器在检测到所述处理器间中断请求时,使能环转换。
18.如权利要求15所述的系统,其中,所述第二处理器在检测到所述处理器间中断请求时,保存当前状态。
19.如权利要求15所述的系统,其中,所述第一存储位置是线性存储位置。
20.如权利要求15所述的系统,其中,所述第一存储位置用于多个处理器,所述多个处理器中的每一个监视所述第一存储位置。
21.如权利要求15所述的系统,其中,所述第一处理器将处理器间中断请求写入多个存储位置,所述多个存储位置中的每一个被一个或多个处理器监视。
22.一种机器可读介质,在其上存储表示指令序列的数据,当所述指令序列由处理器执行时,使所述处理器执行如下操作,所述操作包括将处理器间中断请求写入第一存储位置;监视所述第一存储位置;在所述第一存储位置中,检测所述处理器间中断请求;调用用于所述处理器间中断请求的函数;以及执行用于所述处理器间中断请求的函数。
23.如权利要求22所述的介质,其中,所述指令序列进一步包括写入第二存储位置,以确认接收到所述处理器间中断请求。
24.如权利要求23所述的介质,其中,所述指令序列进一步包括监视所述第二存储位置,以获得接收到所述处理器间中断请求的确认。
25.如权利要求22所述的介质,其中,所述指令序列进一步包括在检测到处理器间中断请求时,建立用于使能环转换的状态。
26.如权利要求22所述的介质,其中,所述指令序列进一步包括在检测到处理器间中断请求时,保存当前状态。
27.如权利要求22所述的介质,其中,所述第一存储位置是线性存储位置。
28.如权利要求22所述的介质,其中,所述第一存储位置预留给第一存储器,所述第一处理器监视所述第一存储位置。
29.如权利要求22所述的介质,其中,所述第一存储位置预留给多个处理器,所述多个处理器中的每一个监视所述第一存储位置。
30.如权利要求22所述的介质,其中,所述指令序列进一步包括将所述处理器间中断请求写入多个存储位置,所述多个存储位置中的每一个被一个或更多个处理器监视。
全文摘要
根据本发明的实施方案,描述了用于多处理器系统中的处理器间中断的方法和装置。实施方案包括将处理器间中断请求写入第一存储位置;监视第一存储位置;在第一存储位置中检测处理器间中断请求;调用用于处理器间中断请求的函数;以及执行用于处理器间中断请求的函数。
文档编号G06F15/167GK1860444SQ200480028513
公开日2006年11月8日 申请日期2004年7月21日 优先权日2003年7月31日
发明者珀尔·哈马伦德, 詹姆斯·克罗斯兰, 夏夫南丹·考希科, 阿尼尔·阿加瓦 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1