[发明专利]多核结构的用户级中断机制有效
申请号: | 201080036115.6 | 申请日: | 2010-08-05 |
公开(公告)号: | CN102483705A | 公开(公告)日: | 2012-05-30 |
发明(设计)人: | 钟在雄;卡琳·施特劳斯 | 申请(专利权)人: | 超威半导体公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 上海胜康律师事务所 31263 | 代理人: | 李献忠 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多核 结构 用户 中断 机制 | ||
背景
技术领域
本发明涉及多处理器系统,确切地说,涉及多处理器系统中的中断处理。
背景技术
通常情况下,中断(例如,异常)是这样一种事件,即将指令执行从当前正在执行的指令流更改到另一指令流。中断通常由耦接到处理器的处理器或装置引起。典型的中断处理机制将所中断的处理器的程序控制流更改到中断处理程序(例如,中断服务例程)。参阅图1,示例性多处理系统(例如,系统100)包括至少两个处理器内核(即中央处理单元、内核或硬件加速器),其配置成以并发形式执行多个应用程序线程。示例性中断传送机制(例如,x86结构的中断传送机制)包括用于系统中的每个内核的中断控制器(例如,本地高级可编程中断控制器(APIC))。此外,中断控制器(例如,I/O APIC)可用于系统中的每个外围总线。专用总线或系统总线(例如,纵横式交换矩阵116)可用于在APIC之间进行通信。
通常情况下,本地APIC管理相应内核或CPU的外部中断。本地APIC能够接受并生成处理器间中断(IPI)消息。当多处理器系统的第一内核将并行任务卸载到另一内核时,发生示例性IPI。典型的本地APIC最多支持224个可用中断矢量,这些中断矢量对应于中断优先级和相应的中断服务例程。另外32个矢量会保留,以用于关联内核或CPU的中断处理。
参阅图1和图2,处理器间中断由内核(例如,内核102)生成,所述内核写入相应的本地APIC(例如,本地APIC 106)中的中断控制寄存器(ICR)中(202)。ICR包括针对目标标识符、传送模式、中断矢量以及其他合适信息的字段。本地APIC 106生成中断消息,并使用纵横式交换矩阵116来经由芯片上网络广播所述中断消息(204)。接收中断消息的本地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将通过执行中断处理程序中指定的操作来对中断进行处理(212)。根据中断处理程序中指定的操作的结果,控制从中断处理程序返回,且可能返回到之前正在执行的应用程序线程(214)。
仍参阅图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发送确认消息(206)。随后,中断会发送给对应于目标本地APIC的接收内核(例如,内核104)。内核108对中断(210、212、214、216)进行处理的方式与内核108对处理器间中断进行处理的方式相同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于超威半导体公司,未经超威半导体公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080036115.6/2.html,转载请声明来源钻瓜专利网。