一种方法,包括:针对多核系统中多个处理器内核中的第一处理器内核,当在所述第一处理器内核上执行的应用程序线程的中断域和在所述第一处理器内核上执行的所述应用程序线程的接收者标识符与用户级中断消息中的相应字段匹配时,接受所述用户级中断消息所指示的用户级中断。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及多处理器系统,确切地说,涉及多处理器系统中的中断处理。
技术介绍
通常情况下,中断(例如,异常)是这样一种事件,即将指令执行从当前正在执行的指令流更改到另一指令流。中断通常由耦接到处理器的处理器或装置引起。典型的中断处理机制将所中断的处理器的程序控制流更改到中断处理程序(例如,中断服务例程)。参阅图1,示例性多处理系统(例如,系统100)包括至少两个处理器内核(即中央处理单元、 内核或硬件加速器),其配置成以并发形式执行多个应用程序线程。示例性中断传送机制 (例如,X86结构的中断传送机制)包括用于系统中的每个内核的中断控制器(例如,本地高级可编程中断控制器(APIC))。此外,中断控制器(例如,I/O APIC)可用于系统中的每个外围总线。专用总线或系统总线(例如,纵横式交换矩阵116)可用于在APIC之间进行ififn。通常情况下,本地APIC管理相应内核或CPU的外部中断。本地APIC能够接受并生成处理器间中断(IPI)消息。当多处理器系统的第一内核将并行任务卸载到另一内核时, 发生示例性IPI。典型的本地APIC最多支持2M个可用中断矢量,这些中断矢量对应于中断优先级和相应的中断服务例程。另外32个矢量会保留,以用于关联内核或CPU的中断处理。参阅图1和图2,处理器间中断由内核(例如,内核102)生成,所述内核写入相应的本地APIC(例如,本地APIC 106)中的中断控制寄存器(ICR)中^)2)。ICR包括针对目标标识符、传送模式、中断矢量以及其他合适信息的字段。本地APIC 106生成中断消息,并使用纵横式交换矩阵116来经由芯片上网络广播所述中断消息004)。接收中断消息的本地APIC (例如,本地APIC 108)基于关联内核(例如,内核104)的状态以及接收本地APIC 本身的状态(例如,传送模式和目标标识符),确定是否接受中断。例如,根据传送模式,如果本地APIC 108具有与目标ID匹配的标识符、物理ID或逻辑ID,则本地APIC 108将接受中断消息,从所述中断消息中读取中断矢量号,且在中断请求寄存器(IRR)中设置相应位。 本地APIC 108将ACK (确认)消息发送到最初生成中断消息的本地APIC 106,以确认本地 APIC 108已收到所述中断消息(206)。本地APIC 108从中断消息读取的中断矢量号表示中断的优先级,该优先级将与其他待处理中断的优先级,以及一个或多个当前正在执行的线程的优先级进行比较。如果所述中断的优先级最高,则设置中断服务寄存器(ISR)中的相应位,并将所述中断传送到内核104。本地APIC 108中的逻辑会发送消息到内核104(208)。接收到消息后,内核104 将对所述中断进行检测,并在当前正在执行的应用程序线程的指令边界上,执行中断服务例程。中断服务例程会基于中断描述符表寄存器(IDTR)中的内容来访问中断描述符表(IDT),并获取对应于所述中断矢量号的中断处理程序的代码段选择器以及偏置和特权模式。在基于代码段选择器确定中断处理程序的入口点,且将偏置程序控制转移到中断处理程序后,内核104将通过执行中断处理程序中指定的操作来对中断进行处理(21 。根据中断处理程序中指定的操作的结果,控制从中断处理程序返回,且可能返回到之前正在执行的应用程序线程014)。仍参阅图1和图2,对于耦接到多处理器系统(例如,系统100)的外围总线(例如,外围总线114)的装置(例如,装置112),源自所述装置的中断的处理方式与上述处理器间中断的处理方式相似。例如,在网络分组处理系统中,装置112是网络接口卡(NIC)。当收到信息包后,NIC将中断发送给处理器以通知处理器已收到信息包。装置112通过确认中断信号来生成中断(202),且I/O APIC(例如,I/O APIC 110)读取中断重定向表(IRT) 116 中的相应条目。I/O APIC 110通过所述条目中的信息,例如目标标识符、传送模式、中断矢量或其他合适的信息来生成中断消息。随后,将中断会广播给本地APIC(例如,本地APIC 106和本地APIC 108) (204) 目标本地APIC(例如,本地APIC 108)向I/O APIC发送确认消息006)。随后,中断会发送给对应于目标本地APIC的接收内核(例如,内核104)。内核108对中断(210、212、214、216)进行处理的方式与内核108对处理器间中断进行处理的方式相同。要将中断从在一个内核上执行的应用程序发送到另一内核,始发内核需要将控制转移到操作系统,因为ICR只能在内核模式下写入。对另一内核生成中断的应用程序将切换到内核模式以写入ICR,并随后切换回用户模式,因此需要进行两次控制转移。向操作系统的典型控制转移使用大量循环(例如,数千次到数万次循环或者更多循环,具体取决于操作系统实施的复杂程度)。此外,如果使用中断来将信息传送到应用程序线程,则还需要进行额外的控制转移,以将程序控制转移回应用程序线程。使用与操作系统关联的中断机制来处理用户级中断而引起的此类高系统开销可能会减弱系统性能。
技术实现思路
在本专利技术的至少一项实施例中,提供一种方法,包括针对多核系统中的多个处理器内核中的第一处理器内核,当在所述第一处理器内核上执行的应用程序线程的中断域以及在所述第一处理器内核上执行的所述应用程序线程的接收者标识符与用户级中断消息中的相应字段匹配时,接受所述用户级中断消息所指示的用户级中断。在至少一项实施例中,所述方法包括在所述用户级中断的优先级高于所接受的其他中断,且高于在所述处理器内核上执行的应用程序线程时,对所述用户级中断进行处理。在所述方法的至少一项实施例中,所述用户级中断是在不调用操作系统中断的情况下进行处理的。在所述方法的至少一项实施例中,所述处理包括更改用户级中断服务寄存器的状态并执行用户级中断例程,其中所述执行包括基于所述用户级中断消息中的矢量号以及用户级中断描述符表寄存器的内容,调用用户级中断处理程序。在至少一项实施例中,所述方法包括基于 user-level-retum-from-interrupt指令,从所述用户级中断处理程序返回程序流。在至少一项实施例中,所述方法包括在完成对所述用户级中断的所述处理后,重置所述用户级中断服务寄存器的状态。在所述方法的至少一项实施例中,与所述第一处理器内核关联的本地中断控制器从与所述多个处理器内核中的第二处理器内核关联的专用本地中断控制器与输入/输出中断控制器中的至少一者,接收所述用户级中断消息。在所述方法的至少一项实施例中,用户级中断的优先级低于操作系统中断。在本专利技术的至少一项实施例中,本专利技术提供一种方法,包括将指示用户级中断的用户级中断消息发送到多核系统中多个处理器内核中的一个或多个处理器内核。所述用户级中断消息包括与所述用户级中断关联的中断域标识符,以及与所述用户级中断关联的接收者标识符。在至少一项实施例中,所述方法包括写入对应于所述多个处理器内核中的一个处理器内核的用户级中断控制寄存器中,从而生成用户级中断。在所述方法的至少一项实施例中,写入所述用户级中断控制寄存器中包括配置所述用户级中断控制寄存器的目标字段,以及配置所述用户级中断控制寄存器的传送模本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:钟在雄,卡琳·施特劳斯,
申请(专利权)人:超威半导体公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。