一种识别中断源的方法及装置制造方法及图纸

技术编号:11545843 阅读:59 留言:0更新日期:2015-06-03 19:15
本发明专利技术实施例公开了一种识别中断源的方法,用于解决现有技术中识别中断源所存在的问题,所述方法包括:当外围设备的任意一个模块发生中断时,所述模块作为中断源将中断源对应的中断号写入消息传递中断能力结构的数据字段高16位;所述外围设备将所述数据字段高16位合入消息传递中断的报文;所述外围设备将所述合入的报文发送给中央处理器CPU,以使得所述CPU根据所述报文的数据字段低16位识别所述外围设备,根据所述报文的数据字段高16位识别所述中断源。本发明专利技术实施例还提供对应的识别中断源的装置。

【技术实现步骤摘要】
一种识别中断源的方法及装置
本专利技术涉及通信领域,具体涉及一种识别中断源的方法及装置。
技术介绍
在计算机系统中,外围设备通常需要中央处理器(CentralProcessingUnit,CPU)执行中断处理,例如外围设备需要CPU读取数据,或者外围设备需要CPU处理外围设备在运行中出现的错误,都会向CPU发送中断信号,CPU收到中断信号后暂停当前执行的任务,转去执行发出中断信号的外围设备对应的中断处理程序,即读取数据,处理错误等,其中,发出中断信号的外围设备可以称为中断源(这是从外围设备外部的角度来定义的),也可以将引起外围设备内部出现状态变化并且使外围设备发出中断信号的模块统称为中断源(这是从外围设备内部的角度来定义的,粒度更小),例如外围设备内部的数据接收模块检测到数据校验错误,或者接收缓冲区溢出,都可以算作中断源,因此,识别中断源是正确执行对应的中断处理程序,使计算机系统正常运行的前提。目前,一种现有技术是:外围设备互联总线(PeripheralComponentInterconnect,PCI)支持INTA#/INTB#/INTC#/INTD#四个中断管脚(#表示低电平有效),其中,桥片内连接有中断控制器,当有中断发生时某个管脚变为低电平,然后中断控制器通知CPU执行中断处理,多个PCI设备可以共享某个中断信号,当中断发生时CPU需要查询每个PCI设备内部的中断状态寄存器,确认具体的中断源。例如图1的PCI设备一和PCI设备二共用INTA#信号,如果PCI设备二发生中断,那么CPU必须依次访问PCI设备一和PCI设备二内部的中断状态寄存器才能确认是PCI设备二产生的中断,从而执行对应的中断处理程序。然而,由于CPU访问PCI设备内部的中断状态寄存器需要经过桥片和PCI设备,速度慢,因此增加了中断处理延迟和CPU的开销。另一种现有技术是:外围设备互联总线快速通道(PeripheralComponentInterconnectexpress,PCIe)支持消息传递中断(MessageSignaledInterrupt,MSI)或者扩展的消息传递中断(MessageSignaledInterruptextension,MSI-X)方式,当有中断发生时,例如图2的PCIe设备主动将独有的中断号通过PCIe接口发送给连接在桥片内的中断控制器,中断控制器再转发给CPU,这样CPU可以直接确认发生中断的外围设备,其中,MSI协议最多支持32个中断号,MSI-X最多支持2048个中断号,相对硬件中断信号的方式支持更多的中断源。然而,考虑到实现的成本,实际PCIe设备所能支持的中断号数目远比协议定义的少,当前的MSI或MSI-X方式无法做到每个中断源都有自己的中断号,仍然需要CPU查询具体的中断源。
技术实现思路
本专利技术实施例提供了一种识别中断源的方法及装置,用于解决现有技术中识别中断源所存在的问题。本专利技术第一方面提供一种识别中断源的方法,包括:当外围设备的任意一个模块发生中断时,所述模块作为中断源将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位,所述外围设备包含多个不同层次的模块;所述外围设备将所述数据字段高16位合入消息传递中断的报文,所述报文还包含数据字段低16位;所述外围设备将所述合入的报文发送给中央处理器CPU,以使得所述CPU根据所述报文的数据字段低16位识别所述外围设备,根据所述报文的数据字段高16位识别所述中断源。结合第一方面,在第一种可能的实现方式中,所述方法还包括:当所述中断源对应的上层次模块检测所述中断源发生中断时,所述上层次模块将所述上层次模块对应的中断号写入消息传递中断能力结构的数据字段高16位。结合第一方面,在第二种可能的实现方式中,所述模块作为中断源将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位包括:所述模块作为中断源将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位中对应的字段,所述数据字段高16位有多个字段,所述数据字段高16位的字段与所述外围设备的模块对应的层次成对应关系。结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述中断源对应的上层次模块检测所述中断源发生中断包括:所述中断源对应的上层次模块根据所述中断源的中断状态位发生置位的结果检测所述中断源发生中断。结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述上层次模块将所述上层次模块对应的中断号写入消息传递中断能力结构的数据字段高16位包括:所述上层次模块将所述上层次模块对应的中断号写入消息传递中断能力结构的数据字段高16位中对应的字段。本专利技术第二方面提供一种识别中断源的方法,包括:CPU接收外围设备发送的将数据字段高16位合入消息传递中断的报文,所述报文还包含数据字段低16位;所述CPU判断所述报文的数据字段高16位是否为0,若否,所述CPU根据所述报文的数据字段低16位识别所述外围设备,根据所述报文的数据字段高16位识别所述中断源。结合第二方面,在第一种可能的实现方式中,所述CPU根据所述报文的数据字段高16位识别中断源包括:所述CPU根据所述中断源对应的中断号或所述中断源对应的上层次模块的中断号,识别所述中断源。本专利技术第三方面提供一种识别中断源的装置,包括:第一写入单元,用于当外围设备的任意一个模块发生中断时,将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位,所述外围设备包含多个不同层次的模块;合入单元,用于在所述第一写入单元将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位后,将所述数据字段高16位合入消息传递中断的报文,所述报文还包含数据字段低16位;发送单元,用于在所述合入单元将所述数据字段高16位合入消息传递中断的报文后,将所述合入的报文发送给CPU,以使得所述CPU根据所述报文的数据字段低16位识别所述外围设备,根据所述报文的数据字段高16位识别所述中断源。结合第三方面,在第一种可能的实现方式中,还包括:检测单元,用于在所述第一写入单元将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位后,检测所述中断源是否发生中断;第二写入单元,用于当所述检测单元检测所述中断源发生中断时,将所述中断源对应的上层次模块对应的中断号写入消息传递中断能力结构的数据字段高16位。结合第三方面,在第二种可能的实现方式中,所述第一写入单元,具体用于将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位中对应的字段,所述数据字段高16位有多个字段,所述数据字段高16位的字段与所述外围设备的模块对应的层次成对应关系。结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,所述检测单元,具体用于根据所述中断源的中断状态位发生置位的结果检测所述中断源发生中断。结合第三方面的第一种可能的实现方式,在第四种可能的实现方式中,所述第二写入单元,具体用于将所述上层次模块对应的中断号写入消息传递中断能力结构的数据字段高16位中对应的字段。本专利技术第四方面提供一种识别中断源的装置,包括:接收单元,用于接收外围设备发送的将数据字段高16位合入消息传递中断的报文,所述报文还包含数据字段低16位;判断单元本文档来自技高网
...
一种识别中断源的方法及装置

【技术保护点】
一种识别中断源的方法,其特征在于,包括:当外围设备的任意一个模块发生中断时,所述模块作为中断源将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位,所述外围设备包含多个不同层次的模块;所述外围设备将所述数据字段高16位合入消息传递中断的报文,所述报文还包含数据字段低16位;所述外围设备将所述合入的报文发送给中央处理器CPU,以使得所述CPU根据所述报文的数据字段低16位识别所述外围设备,根据所述报文的数据字段高16位识别所述中断源。

【技术特征摘要】
1.一种识别中断源的方法,其特征在于,包括:当外围设备的任意一个模块发生中断时,所述模块作为中断源将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位,所述外围设备包含多个不同层次的模块;所述外围设备将所述数据字段高16位合入消息传递中断的报文,所述报文还包含数据字段低16位;所述外围设备将所述合入的报文发送给中央处理器CPU,以使得所述CPU根据所述报文的数据字段低16位识别所述外围设备,根据所述报文的数据字段高16位识别所述中断源;其中,所述模块作为中断源将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位包括:所述模块作为中断源将所述中断源对应的中断号写入消息传递中断能力结构的数据字段高16位中对应的字段,所述数据字段高16位有多个字段,所述数据字段高16位的字段与所述外围设备的模块对应的层次成对应关系。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述中断源对应的上层次模块检测所述中断源发生中断时,所述上层次模块将所述上层次模块对应的中断号写入消息传递中断能力结构的数据字段高16位。3.根据权利要求2所述的方法,其特征在于,所述中断源对应的上层次模块检测所述中断源发生中断包括:所述中断源对应的上层次模块根据所述中断源的中断状态位发生置位的结果检测所述中断源发生中断。4.根据权利要求2所述的方法,其特征在于,所述上层次模块将所述上层次模块对应的中断号写入消息传递中断能力结构的数据字段高16位包括:所述上层次模块将所述上层次模块对应的中断号写入消息传递中断能力结构的数据字段高16位中对应的字段。5.一种识别中断源的方法,其特征在于,包括:CPU接收外围设备发送的将数据字段高16位合入消息传递中断的报文,所述报文还包含数据字段低16位;所述CPU判断所述报文的数据字段高16位是否为0,若否,所述CPU根据所述报文的数据字段低16位识别所述外围设备,根据所述报文的数据字段高16位识别所述中断源;其中,所述外围设备包含多个不同层次的模块,所述中断源为所述外围设备的任意一个发生中断的模块;所述数据字段高16位有多个字段,所述数据字段高16位的字段与所述外围设备的模块对应的层次成对应关系;所述中断源将所述中断源对应的中断号写入所述数据字段高16位中对应的字段。6.根据权利要求5所述的方法,其特征在于,所述CPU根据所述报文的数据字段高16位识别中断源包括:所述CPU根据所述中断源对应的中断号或所述中断源对应的上层次模块的中断号,识别所述中断源。7.一种识别中断源的装置,其特征在于,包括:第一写入单元,用于当外围设备的任...

【专利技术属性】
技术研发人员:李延松
申请(专利权)人:杭州华为数字技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1