CN118132243A - 一种中断信号处理方法、装置、设备、介质、电路及系统 - Google Patents
一种中断信号处理方法、装置、设备、介质、电路及系统 Download PDFInfo
- Publication number
- CN118132243A CN118132243A CN202410552501.4A CN202410552501A CN118132243A CN 118132243 A CN118132243 A CN 118132243A CN 202410552501 A CN202410552501 A CN 202410552501A CN 118132243 A CN118132243 A CN 118132243A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- msi
- signal
- time sequence
- signals
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims abstract description 59
- 230000002776 aggregation Effects 0.000 claims abstract description 43
- 238000004220 aggregation Methods 0.000 claims abstract description 43
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 50
- 239000013598 vector Substances 0.000 claims description 42
- 230000015654 memory Effects 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims 3
- 239000000523 sample Substances 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 206010010356 Congenital anomaly Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明公开了计算机技术领域内的一种中断信号处理方法、装置、设备、介质、电路及系统。本发明在目标设备运行过程中监测到至少两个中断信号时,利用汇聚模块存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,以实现单一中断接口支持多中断信号的处理;并且,至少两个中断信号基于目标设备支持的中断类型和中断需求量确定,能够有效满足用户应用程序和系统应用程序的中断需求,中断设计更具灵活性,也更贴合实际需求。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种中断信号处理方法、装置、设备、介质、电路及系统。
背景技术
目前,对于特定的大型应用程序,需要的中断个数较多。但由于设备的中断接口只有一个,因此在中断个数较多的情况下,单一中断接口难以支撑多个中断信号的处理。并且,随着应用程序功能的不断增加,仅支持单一类型中断的设备难以满足应用程序的中断需求,可能影响程序的实际应用。
因此,如何使单一中断接口支持多中断信号的处理,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种中断信号处理方法、装置、设备、介质、电路及系统,以使单一中断接口支持多中断信号的处理。其具体方案如下:
一方面,本发明提供了一种中断信号处理方法,应用于目标设备,包括:
确定所述目标设备支持的中断类型和中断需求量;
根据所述中断类型和所述中断需求量构造与所述中断类型匹配的至少两个中断信号;所述至少两个中断信号的中断类型为INTx、MSI和MSI-X中的至少一种;
若在所述目标设备运行过程中监测到所述至少两个中断信号,则利用汇聚模块存储所述至少两个中断信号,并对所述至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;
使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转。
另一方面,还包括:
若所述中断类型为INTx,则在使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转之前,利用所述中断控制器将当前轮询到的中断信号的中断号存储至预设寄存器。
另一方面,还包括:
接收主机设备发送的所述中断号的查询请求;
从所述预设寄存器中查询所述中断号;
返回所述中断号至所述主机设备。
另一方面,接收主机设备发送的所述中断号的查询请求;从所述预设寄存器中查询所述中断号;返回所述中断号至所述主机设备,包括:
通过目标总线接收所述查询请求;所述预设寄存器通过所述目标总线连接所述主机设备;
从所述预设寄存器中查询到所述中断号后,通过所述目标总线返回所述中断号至所述主机设备。
另一方面,使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,包括:
若所述中断类型为INTx,则使所述中断控制器根据INTx状态机将当前轮询到的中断信号转换为相应的INTx时序信号,并输出所述INTx时序信号;
在获取到所述INTx时序信号的反馈信号后,停止所述INTx时序信号的输出,并使所述汇聚模块释放当前轮询到的中断信号。
另一方面,使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,包括:
若所述中断类型为MSI,则使所述中断控制器根据MSI状态机将当前轮询到的中断信号,转换为含当前轮询到的中断信号的中断号的MSI时序信号,并输出所述MSI时序信号;
在获取到所述MSI时序信号的反馈信号后,停止所述MSI时序信号的输出,并使所述汇聚模块释放当前轮询到的中断信号。
另一方面,使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,包括:
若所述中断类型为MSI-X,则使所述中断控制器根据MSI-X状态机检测Mask标志位;
若所述Mask标志位使能,则利用所述中断控制器将当前轮询到的中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;
在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出,并使所述汇聚模块释放当前轮询到的中断信号。
另一方面,还包括:
若所述Mask标志位未使能,则使所述中断控制器将当前轮询到的中断信号存入第一双口随机存取存储器中的待处理中断列表,并使所述汇聚模块释放当前轮询到的中断信号。
另一方面,还包括:
响应于主机设备发送的所述Mask标志位的清零请求,查询所述待处理中断列表;
若在所述待处理中断列表中查询到待处理中断信号,则利用所述中断控制器将所述待处理中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;
在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出;
从所述待处理中断列表中删除所述待处理中断信号后,执行查询所述待处理中断列表的步骤以及后续其他步骤,直至所述待处理中断列表为空。
另一方面,还包括:
若所述待处理中断列表为空,则向所述主机设备返回已完成清零的通知消息。
另一方面,还包括:
接收主机设备发送的MSI-X中断配置信息;
根据所述MSI-X中断配置信息配置所述至少两个中断信号中各个中断信号对应的向量、数据内容和地址,得到MSI-X配置表;
将所述MSI-X配置表存储至第二双口随机存取存储器。
另一方面,利用所述中断控制器将当前轮询到的中断信号转换为相应的MSI-X时序信号,包括:
利用所述中断控制器查询所述MSI-X配置表,得到当前轮询到的中断信号对应的向量、数据内容和地址;
根据当前轮询到的中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号;
相应地,利用所述中断控制器将所述待处理中断信号转换为相应的MSI-X时序信号,包括:
利用所述中断控制器查询所述MSI-X配置表,得到所述待处理中断信号对应的向量、数据内容和地址;
根据所述待处理中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号。
另一方面,利用汇聚模块存储所述至少两个中断信号之后,还包括:将所述汇聚模块标记为非空闲状态;
相应地,若所述汇聚模块中未存储任意中断信号,则将所述汇聚模块标记为空闲状态。
另一方面,本发明提供了一种中断信号处理装置,应用于目标设备,包括:
确定模块,用于确定所述目标设备支持的中断类型和中断需求量;
构造模块,用于根据所述中断类型和所述中断需求量构造与所述中断类型匹配的至少两个中断信号;所述至少两个中断信号的中断类型为INTx、MSI和MSI-X中的至少一种;
监测模块,用于若在所述目标设备运行过程中监测到所述至少两个中断信号,则利用汇聚模块存储所述至少两个中断信号,并对所述至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;
处理模块,用于使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转。
另一方面、本发明提供了一种中断信号处理电路,包括:汇聚模块、与所述汇聚模块连接的中断控制器;
所述汇聚模块,用于接收并存储至少两个中断信号,并对所述至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至所述中断控制器;其中,所述至少两个中断信号根据目标设备支持的中断类型和中断需求量得到,且与所述中断类型相匹配;所述至少两个中断信号的中断类型为INTx、MSI和MSI-X中的至少一种;
所述中断控制器,用于将当前轮询到的中断信号转换为控制时序进行处理。
另一方面,还包括:
预设寄存器,用于响应于所述中断控制器存储中断号的指令,存储当前轮询到的中断信号的中断号;
相应地,预设寄存器还用于响应于主机设备通过目标总线发送的所述中断号的查询请求,查询并返回所述中断号至所述主机设备。
另一方面,还包括:
Mask标志位缓存,用于记录Mask标志位使能或未使能;
第一双口随机存取存储器,用于在Mask标志位未使能时,将当前轮询到的中断信号存入自身中的待处理中断列表。
另一方面,还包括:
第二双口随机存取存储器,用于存储MSI-X配置表;所述存储MSI-X配置表根据主机设备发送的MSI-X中断配置信息配置所述至少两个中断信号中各个中断信号对应的向量、数据内容和地址得到。
另一方面,本发明提供了一种中断信号处理系统,包括:目标设备和所述目标设备连接的主机设备;所述目标设备包括:上述任一项所述的中断信号处理电路。
另一方面,所述目标设备为具备PCIE功能的设备。
另一方面,本发明提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的中断信号处理方法。
另一方面,本发明提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的中断信号处理方法。
通过以上方案可知,本发明提供了一种中断信号处理方法,应用于目标设备,包括:确定所述目标设备支持的中断类型和中断需求量;根据所述中断类型和所述中断需求量构造与所述中断类型匹配的至少两个中断信号;若在所述目标设备运行过程中监测到所述至少两个中断信号,则利用汇聚模块存储所述至少两个中断信号,并对所述至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转。
可见,本发明的有益效果为:在目标设备运行过程中监测到至少两个中断信号时,利用汇聚模块存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,以实现单一中断接口支持多中断信号的处理;并且,至少两个中断信号基于目标设备支持的中断类型和中断需求量确定,能够有效满足用户应用程序和系统应用程序的中断需求,中断设计更具灵活性,也更贴合实际需求。
相应地,本发明提供的一种中断信号处理装置、设备、介质、电路和系统,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明公开的一种中断信号处理方法流程图;
图2为本发明公开的一种INTx中断的电路结构图;
图3为本发明公开的一种MSI中断的电路结构图;
图4为本发明公开的一种MSI-X中断的电路结构图;
图5为本发明公开的一种INTx中断的时序图;
图6为本发明公开的另一种INTx中断的电路结构图;
图7为本发明公开的一种INTx中断管理流程图;
图8为本发明公开的一种MSI中断的时序图;
图9为本发明公开的另一种MSI中断的电路结构图;
图10为本发明公开的一种MSI中断管理流程图;
图11为本发明公开的一种MSI-X中断的时序图;
图12为本发明公开的另一种MSI-X中断的电路结构图;
图13为本发明公开的一种MSI-X中断管理流程图;
图14为本发明公开的一种中断信号处理系统示意图;
图15为本发明提供的一种服务器结构图;
图16为本发明提供的一种终端结构图;
图17为本发明公开的一种INTx状态机示意图;
图18为本发明提供的一种MSI状态机示意图;
图19为本发明提供的一种MSI-X状态机示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本发明保护的范围。
目前,对于特定的大型应用程序,需要的中断个数较多。但由于设备的中断接口只有一个,因此在中断个数较多的情况下,单一中断接口难以支撑多个中断信号的处理。为此,本发明提供了一种中断信号处理方案,能够使单一中断接口支持多中断信号的处理。
参见图1所示,本发明实施例公开了一种中断信号处理方法,应用于目标设备,包括:
S101、确定目标设备支持的中断类型和中断需求量。
在本实施例中,目标设备支持的中断类型和中断需求量可以由用户设定。中断类型包括INTx、MSI(Message Signal Interrupt,消息信号中断)和/或MSI-X(MessageSignal InterruptX,消息信号中断X)。中断需求量即:需要构造的中断信号的个数。INTx一般被称为传统中断。
S102、根据中断类型和中断需求量构造与中断类型匹配的至少两个中断信号。
其中,每一中断信号的作用和功能可以由用户配置设定,可以是内部中断,也可以是外部中断。至少两个中断信号的中断类型为INTx、MSI和MSI-X中的至少一种。也就是说,目标设备同时支持三种中断类型,其中设有这三种中断的相关实现电路。
S103、若在目标设备运行过程中监测到至少两个中断信号,则利用汇聚模块存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器。
S104、使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转。
在本实施例中,汇聚模块与中断控制器通信连接,汇聚模块可以接收各个中断信号并存储。在一种实施方式中,若中断类型为INTx,则在使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转之前,利用中断控制器将当前轮询到的中断信号的中断号存储至预设寄存器。其中,预设寄存器和中断控制器通信连接,并通过目标总线连接主机设备。因此在一种实施方式中,还包括:接收主机设备发送的中断号的查询请求;从预设寄存器中查询中断号;返回中断号至主机设备。目标总线如:APB(AdvancedPeripheral Bus,一种片上总线)。在一种实施方式中,接收主机设备发送的中断号的查询请求;从预设寄存器中查询中断号;返回中断号至主机设备,包括:通过目标总线接收查询请求;预设寄存器通过目标总线连接主机设备;从预设寄存器中查询到中断号后,通过目标总线返回中断号至主机设备。也就是说,当中断类型为INTx,则电路结构可以如图2所示,包括:预设寄存器、汇聚模块与中断控制器。
需要说明的是,使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,包括:若中断类型为INTx,则使中断控制器根据INTx状态机将当前轮询到的中断信号转换为相应的INTx时序信号,并输出INTx时序信号;在获取到INTx时序信号的反馈信号后,停止INTx时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在一种示例中,INTx状态机如图17所示,中断控制器根据INTx状态机处理当前轮询到的中断信号,从而实现控制时序的状态跳转。请参见图6、图7以及图17,空闲状态下如果汇聚模块的输出信号info_out_valid高电平有效,则拉高sys_int信号,之后等待int_grt信号,如果int_grt为高,则拉低int_grt;当int_grt为低后,释放掉已处理的中断,将info_out_ready拉高。
需要说明的是,使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,包括:若中断类型为MSI,则使中断控制器根据MSI状态机将当前轮询到的中断信号,转换为含当前轮询到的中断信号的中断号的MSI时序信号,并输出MSI时序信号;在获取到MSI时序信号的反馈信号后,停止MSI时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。也就是说,当中断类型为MSI,则电路结构可以如图3所示,包括:汇聚模块与中断控制器。
在一种示例中,MSI状态机如图18所示,中断控制器根据MSI状态机处理当前轮询到的中断信号,从而实现控制时序的状态跳转。请参见图9、图10以及图18,空闲状态下如果汇聚模块的输出信号info_out_valid高电平有效、且MSI使能信号msi_enable高电平有效,则拉高MSI请求信号ven_msi_req,之后等待MSI反馈信号ven_msi_grant,当ven_msi_grant为高后,释放掉已处理的中断,将info_out_ready拉高。
需要说明的是,使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,包括:若中断类型为MSI-X,则使中断控制器根据MSI-X状态机检测Mask标志位;若Mask标志位使能,则利用中断控制器将当前轮询到的中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。若Mask标志位未使能,则使中断控制器将当前轮询到的中断信号存入第一双口随机存取存储器中的待处理中断列表,并使汇聚模块释放当前轮询到的中断信号。
在一种实施方式中,还包括:响应于主机设备发送的Mask标志位的清零请求,查询待处理中断列表;若在待处理中断列表中查询到待处理中断信号,则利用中断控制器将待处理中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出;从待处理中断列表中删除待处理中断信号后,执行查询待处理中断列表的步骤以及后续其他步骤,直至待处理中断列表为空。若待处理中断列表为空,则向主机设备返回已完成清零的通知消息。
在一种实施方式中,还包括:接收主机设备发送的MSI-X中断配置信息;根据MSI-X中断配置信息配置至少两个中断信号中各个中断信号对应的向量、数据内容和地址,得到MSI-X配置表;将MSI-X配置表存储至第二双口随机存取存储器。也就是说,当中断类型为MSI-X,则电路结构可以如图4所示,包括:汇聚模块、中断控制器、Mask标志位缓存、第一双口随机存取存储器和第二双口随机存取存储器。
在一种实施方式中,利用中断控制器将当前轮询到的中断信号转换为相应的MSI-X时序信号,包括:利用中断控制器查询MSI-X配置表,得到当前轮询到的中断信号对应的向量、数据内容和地址;根据当前轮询到的中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号;相应地,利用中断控制器将待处理中断信号转换为相应的MSI-X时序信号,包括:利用中断控制器查询MSI-X配置表,得到待处理中断信号对应的向量、数据内容和地址;根据待处理中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号。
在一种实施方式中,利用汇聚模块存储至少两个中断信号之后,还包括:将汇聚模块标记为非空闲状态;相应地,若汇聚模块中未存储任意中断信号,则将汇聚模块标记为空闲状态。
可见,本实施例在目标设备运行过程中监测到至少两个中断信号时,利用汇聚模块存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,以实现单一中断接口支持多中断信号的处理;并且,至少两个中断信号基于目标设备支持的中断类型和中断需求量确定,能够有效满足用户应用程序和系统应用程序的中断需求,中断设计更具灵活性,也更贴合实际需求。
下面以PCIE(Peripheral Component Interconnect Express,一种高速串行计算机扩展总线标准)中断为例,介绍INTx、MSI和MSI-X的具体实现。
请参见图5,INTx中断的时序图如图5所示,图5中从上至下三个信号分别为:时钟信号、设备发给主机的中断控制信号(拉高即产生中断信号)、主机返回给设备的中断反馈信号。在一种示例中,INTx中断的实现电路可以参见图6,int_info与ext_info表示两个中断信号,分别为内部中断申请与外部中断申请;APB总线为PCIE基地址寄存器对应的访问接口,sys_int与int_grt为INTx中断控制接口,控制时序见图5。
图6所示INTx中断电路包括:中断向量号模块(寄存器),该模块负责对接APB总线,处理APB总线读写,存储要发给主机的中断号;当主机通过APB总线读取时,将存储的中断号通过APB总线反馈给主机。INTx中断机制下,仅上报中断信号给主机,不上报中断号,本示例通过增加寄存器,可以使主机(上位机)通过APB总线读取中断号,弥补INTx中断机制的不足。汇聚模块主要负责轮询到达的int_info、ext_info这两个中断信号,并将轮询到的int_info或ext_info传递至INTx中断控制器。INTx中断控制器负责将轮询到的int_info或ext_info转化为控制时序。
请参见图7,INTx中断管理流程包括:初始空闲状态下,汇聚模块一直查询是否有中断申请;当有中断申请时,INTx中断控制器将申请的中断号保存到寄存器中;INTx中断控制器拉高sys_int信号,并等待int_grt,一直等待int_grt为高为止,当int_grt为高后,立即将sys_int拉低,然后等待int_grt拉低为止。当int_grt为低后,将汇聚模块申请的中断释放掉,返回空闲状态,等待下一个中断申请。
请参见图8,MSI中断的时序图如图8所示,图8中从上至下三个信号分别为:时钟信号(plk_div2)、MSI中断请求信号(ven_msi_req)、MSI中断反馈信号(ven_msi_grant)、MSI向量号(ven_msi_vector,大小为5比特)、流量类(ven_msi_tc,大小为3比特)和MSI使能信号。在一种示例中,MSI中断的实现电路可以参见图9,在图9中,int_info与ext_info表示两个中断信号,分别为内部中断申请与外部中断申请,msi_req、msi_vector、msi_grant为MSI中断控制接口传递的主要信号,相关控制时序见图8。图9所示MSI中断电路包括:汇聚模块和MSI中断控制器,汇聚模块负责轮询到达的int_info、ext_info这两个中断信号,并将轮询到的int_info或ext_info传递至MSI中断控制器。MSI中断控制器负责将轮询到的int_info或ext_info转化为控制时序。
请参见图10,MSI中断管理流程包括:初始空闲状态下,汇聚模块一直查询是否有中断申请;当有中断申请时,MSI中断控制器将申请的中断号置入msi_vector,拉高msi_req信号,等待msi_grant,一直等待msi_grant为高为止。当msi_grant为高后,将汇聚模块申请的中断释放掉,返回空闲状态,等待下一个中断申请。
请参见图11,MSI-X中断的时序图如图11所示,图11中从上至下三个信号分别为:时钟信号(plk_div2)、MSI-X中断请求信号(ven_msi_req)、MSI-X中断反馈信号(ven_msi_grant)、MSI-X向量地址(msix_addr,大小为64比特)、MSI-X向量内容(msix_data,大小为32比特)、流量类(ven_msi_tc,大小为3比特)和MSI-X使能信号(cfg_msix_en)。在一种示例中,MSI-X中断的实现电路可以参见图12,在图12中,int_info与ext_info表示两个中断信号,分别为内部中断申请与外部中断申请,APB总线为PCIE基地址寄存器对应的访问接口,msi_req、msix_addr、msix_data、msi_grant为MSI-X中断控制接口传递的主要信号,相关控制时序见图11。图12所示MSI-X中断电路包括:汇聚模块主要负责对内部中断申请与外部中断申请进行轮询选择。MSI-X中断控制器负责将中断申请转化为控制时序。MSI-X表与MSI-Xpend用于存放中断信息条目与pendbit信息,mask_clrcache用于缓存上位机下发的mask清零信息,通过解析APB总线操作的地址与数据得到。Mask标志位为0时,可以提交中断;Mask标志位为1时,不发中断,存中断到MSI-Xpend中。上位机通过总线针对每一个中断配置数据和地址后,存储相关内容到MSI-X表中。
在一种示例中,MSI-X表可参见表1。
表1:MSI-X表
在表1中,一个DWORD的大小为64比特,一个条目对应一个中断信号的配置,即:表1的每一行表示一个中断信号的具体配置信息,包括:向量控制(Vector Control)、消息数据(Msg Data)、高位地址(Msg Upper Addr)和消息地址(Msg Addr)。DWORD全称为DoubleWORD,每个WORD为2个字节的长度,Double WORD为4字节,一个字节8bit,所以DWORD=32bit。故DWORD可称为四字节或者双字。
在一种示例中,MSI-Xpend中的具体内容可参见表2。
表2:MSI-Xpend内容表
其中,QWORD全称为Quad WORD。Q为英文词根Quad-的首字母,意思是4,表示是WORD的四倍,也就是八字节,等于64bit,故QWORD可称为八字节或者四字。
具体的,可以利用不同的双口RAM(双重访问随机存取存储器)分别存储MSI-X表和MSI-Xpend内容表,位宽均设置为32,MSI-X表需要深度为N×4的双口RAM,MSI-Xpend内容表需要深度为N/32的双口RAM。MSI-X表中的信息为上位机通过PCIE基地址寄存器配置,传递到该模块为APB总线接口;上位机对于MSI-X表中的数据通过APB总线可读可写,对于MSI-Xpend内容表中的数据只读。Mask_clrcache是深度为1的小缓存,用寄存器即可。N是配置的中断总个数,用户根据需求配置,N不低于32不大于2048。
在一种示例中,MSI-X状态机如图19所示,中断控制器根据MSI-X状态机处理当前轮询到的中断信号,从而实现控制时序的状态跳转。请参见图12、图13以及图19,MSI-X中断机制的控制流程主要有两个,一个是正常中断申请触发流程,一个是上位机mask清零触发流程。正常申请中断触发流程包括:基于当前申请的中断,读取MSI-X表中的对应数据,分4次读取,将读取到的数据分别存在4个32biit寄存器中。基于当前申请的中断,读取MSI-Xpend内容表中的对应数据,将读取到的数据存在1个32bit寄存器中。查询vectorcontrol中bit0,该bit代表Mask标志位。如果Mask标志位为1,则不提交中断。将对应的pendbit位改为1(32bit中的一个进行修改),然后将该32bit数据写回pend对应存储中,释放中断申请,返回空闲状态。如果Mask标志位为0,则提交中断,将读取到的地址与数据置入msix_addr以及msix_data,拉高ven_msi_req,直到ven_msi_grant为高时释放中断申请,返回空闲状态。Mask清零触发流程包括:读取对应pend,将读取到的数据存在1个32bit寄存器中。查询对应pendbit位,假如pend为1,进入提交中断流程,假如为0,返回空闲状态。如果pend为1,取对应表,分4次读取,将读取到的数据分别存在4个32biit寄存器中。将表读取到的地址与数据置入msix_addr以及msix_data,拉高ven_msi_req,直到ven_msi_grant为高。将对应pendbit位改为0(32bit中的一个进行修改),然后将该32bit数据写回pend对应存储中,释放mask清零申请,返回空闲状态。
可见,本实施例在设计实现的INTx中断存储了中断号,主机可通过PCIE基地址寄存器读取中断号,弥补了该中断机制先天的不足。通过增加汇聚模块,区别不同的内部中断与外部中断,使得方案更具灵活性。据此提供了PCIE三种中断机制的具体实现方案以及流程,用户可根据需求选择最合适的中断进行使用。其中,MSI最多支持32个中断,需要的中断特别多(如超过32个)时,选MSI-X中断,MSI-X最多支持2048个。在MSI-X中断设计中,本实施例使用双口RAM存储数据,一个端口对应APB读写,另一个端口对应控制逻辑读写,减少了大量的仲裁,减低了实现MSI-X中断机制的设计复杂度。本实施例可应用于具备PCIE功能的FPGA与数字IC(Integrated Circuit,集成电路)。
下面对本发明实施例提供的一种中断信号处理装置进行介绍,下文描述的一种中断信号处理装置与本文描述的其他实施例可以相互参照。
本发明实施例公开了一种中断信号处理装置,应用于目标设备,包括:
确定模块,用于确定目标设备支持的中断类型和中断需求量;
构造模块,用于根据中断类型和中断需求量构造与中断类型匹配的至少两个中断信号;
监测模块,用于若在目标设备运行过程中监测到至少两个中断信号,则利用汇聚模块存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;
处理模块,用于使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转。
在一种实施方式中,处理模块还用于:
若中断类型为INTx,则在使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转之前,利用中断控制器将当前轮询到的中断信号的中断号存储至预设寄存器。
在一种实施方式中,处理模块还用于:
接收主机设备发送的中断号的查询请求;
从预设寄存器中查询中断号;
返回中断号至主机设备。
在一种实施方式中,处理模块还用于:
通过目标总线接收查询请求;预设寄存器通过目标总线连接主机设备;
从预设寄存器中查询到中断号后,通过目标总线返回中断号至主机设备。
在一种实施方式中,处理模块具体用于:
若中断类型为INTx,则使中断控制器根据INTx状态机将当前轮询到的中断信号转换为相应的INTx时序信号,并输出INTx时序信号;
在获取到INTx时序信号的反馈信号后,停止INTx时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在一种实施方式中,处理模块具体用于:
若中断类型为MSI,则使中断控制器根据MSI状态机将当前轮询到的中断信号,转换为含当前轮询到的中断信号的中断号的MSI时序信号,并输出MSI时序信号;
在获取到MSI时序信号的反馈信号后,停止MSI时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在一种实施方式中,处理模块具体用于:
若中断类型为MSI-X,则使中断控制器根据MSI-X状态机检测Mask标志位;
若Mask标志位使能,则利用中断控制器将当前轮询到的中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;
在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在一种实施方式中,处理模块还用于:
若Mask标志位未使能,则使中断控制器将当前轮询到的中断信号存入第一双口随机存取存储器中的待处理中断列表,并使汇聚模块释放当前轮询到的中断信号。
在一种实施方式中,处理模块还用于:
响应于主机设备发送的Mask标志位的清零请求,查询待处理中断列表;
若在待处理中断列表中查询到待处理中断信号,则利用中断控制器将待处理中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;
在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出;
从待处理中断列表中删除待处理中断信号后,执行查询待处理中断列表的步骤以及后续其他步骤,直至待处理中断列表为空。
在一种实施方式中,处理模块还用于:
若待处理中断列表为空,则向主机设备返回已完成清零的通知消息。
在一种实施方式中,处理模块还用于:
接收主机设备发送的MSI-X中断配置信息;
根据MSI-X中断配置信息配置至少两个中断信号中各个中断信号对应的向量、数据内容和地址,得到MSI-X配置表;
将MSI-X配置表存储至第二双口随机存取存储器。
在一种实施方式中,处理模块具体用于:
利用中断控制器查询MSI-X配置表,得到当前轮询到的中断信号对应的向量、数据内容和地址;
根据当前轮询到的中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号;
相应地,处理模块具体用于:
利用中断控制器查询MSI-X配置表,得到待处理中断信号对应的向量、数据内容和地址;
根据待处理中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号。
在一种实施方式中,还包括:
标记模块,用于利用汇聚模块存储至少两个中断信号之后,将汇聚模块标记为非空闲状态;相应地,若汇聚模块中未存储任意中断信号,则将汇聚模块标记为空闲状态。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例在目标设备运行过程中监测到至少两个中断信号时,利用汇聚模块存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,以实现单一中断接口支持多中断信号的处理;并且,至少两个中断信号基于目标设备支持的中断类型和中断需求量确定,能够有效满足用户应用程序和系统应用程序的中断需求,中断设计更具灵活性,也更贴合实际需求。
下面对本发明实施例提供的一种中断信号处理电路进行介绍,下文描述的一种中断信号处理电路与本文描述的其他实施例可以相互参照。
本发明实施例公开了一种中断信号处理电路,包括:汇聚模块、与汇聚模块连接的中断控制器;
汇聚模块,用于接收并存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;其中,至少两个中断信号根据目标设备支持的中断类型和中断需求量得到,且与中断类型相匹配;
中断控制器,用于将当前轮询到的中断信号转换为控制时序进行处理。
在一种实施方式中,还包括:
预设寄存器,用于响应于中断控制器存储中断号的指令,存储当前轮询到的中断信号的中断号;
相应地,预设寄存器还用于响应于主机设备通过目标总线发送的中断号的查询请求,查询并返回中断号至主机设备。
在一种实施方式中,还包括:
Mask标志位缓存,用于记录Mask标志位使能或未使能;
第一双口随机存取存储器,用于在Mask标志位未使能时,将当前轮询到的中断信号存入自身中的待处理中断列表。
在一种实施方式中,还包括:
第二双口随机存取存储器,用于存储MSI-X配置表;存储MSI-X配置表根据主机设备发送的MSI-X中断配置信息配置至少两个中断信号中各个中断信号对应的向量、数据内容和地址得到。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种中断信号处理电路,在目标设备运行过程中监测到至少两个中断信号时,利用汇聚模块存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,以实现单一中断接口支持多中断信号的处理;并且,至少两个中断信号基于目标设备支持的中断类型和中断需求量确定,能够有效满足用户应用程序和系统应用程序的中断需求,中断设计更具灵活性,也更贴合实际需求。
下面对本发明实施例提供的一种中断信号处理系统进行介绍,下文描述的一种中断信号处理系统与本文描述的其他实施例可以相互参照。
参见图14所示,本发明实施例公开了一种中断信号处理系统,包括:目标设备和目标设备连接的主机设备;目标设备包括:上述任一项的中断信号处理电路。
下面对本发明实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与本文描述的其他实施例可以相互参照。
本发明实施例公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:确定目标设备支持的中断类型和中断需求量;根据中断类型和中断需求量构造与中断类型匹配的至少两个中断信号;若在目标设备运行过程中监测到至少两个中断信号,则利用汇聚模块存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若中断类型为INTx,则在使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转之前,利用中断控制器将当前轮询到的中断信号的中断号存储至预设寄存器。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:接收主机设备发送的中断号的查询请求;从预设寄存器中查询中断号;返回中断号至主机设备。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:通过目标总线接收查询请求;预设寄存器通过目标总线连接主机设备;从预设寄存器中查询到中断号后,通过目标总线返回中断号至主机设备。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若中断类型为INTx,则使中断控制器根据INTx状态机将当前轮询到的中断信号转换为相应的INTx时序信号,并输出INTx时序信号;在获取到INTx时序信号的反馈信号后,停止INTx时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若中断类型为MSI,则使中断控制器根据MSI状态机将当前轮询到的中断信号,转换为含当前轮询到的中断信号的中断号的MSI时序信号,并输出MSI时序信号;在获取到MSI时序信号的反馈信号后,停止MSI时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若中断类型为MSI-X,则使中断控制器根据MSI-X状态机检测Mask标志位;若Mask标志位使能,则利用中断控制器将当前轮询到的中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若Mask标志位未使能,则使中断控制器将当前轮询到的中断信号存入第一双口随机存取存储器中的待处理中断列表,并使汇聚模块释放当前轮询到的中断信号。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:响应于主机设备发送的Mask标志位的清零请求,查询待处理中断列表;若在待处理中断列表中查询到待处理中断信号,则利用中断控制器将待处理中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出;从待处理中断列表中删除待处理中断信号后,执行查询待处理中断列表的步骤以及后续其他步骤,直至待处理中断列表为空。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:若待处理中断列表为空,则向主机设备返回已完成清零的通知消息。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:接收主机设备发送的MSI-X中断配置信息;根据MSI-X中断配置信息配置至少两个中断信号中各个中断信号对应的向量、数据内容和地址,得到MSI-X配置表;将MSI-X配置表存储至第二双口随机存取存储器。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:利用中断控制器查询MSI-X配置表,得到当前轮询到的中断信号对应的向量、数据内容和地址;根据当前轮询到的中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号;
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:利用中断控制器查询MSI-X配置表,得到待处理中断信号对应的向量、数据内容和地址;根据待处理中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号。
在本实施例中,所述处理器执行所述存储器中保存的计算机程序时,可以具体实现以下步骤:将汇聚模块标记为非空闲状态;相应地,若汇聚模块中未存储任意中断信号,则将汇聚模块标记为空闲状态。
进一步的,本发明实施例还提供了一种电子设备。其中,上述电子设备既可以是如图15所示的服务器,也可以是如图16所示的终端。图15和图16均是根据一示例性实施例示出的电子设备结构图,图中的内容不能被认为是对本发明的使用范围的任何限制。
图15为本发明实施例提供的一种服务器的结构示意图。该服务器具体可以包括:至少一个处理器、至少一个存储器、电源、通信接口、输入输出接口和通信总线。其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行,以实现前述任一实施例公开的中断信号处理中的相关步骤。
本实施例中,电源用于为服务器上的各硬件设备提供工作电压;通信接口能够为服务器创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本发明技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
其中,操作系统用于管理与控制服务器上的各硬件设备以及计算机程序,以实现处理器对存储器中数据的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序除了包括能够用于完成前述任一实施例公开的中断信号处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据除了可以包括应用程序的更新信息等数据外,还可以包括应用程序的开发商信息等数据。
图16为本发明实施例提供的一种终端的结构示意图,该终端具体可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
通常,本实施例中的终端包括有:处理器和存储器。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括AI(ArtificialIntelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器至少用于存储以下计算机程序,其中,该计算机程序被处理器加载并执行之后,能够实现前述任一实施例公开的由终端侧执行的中断信号处理方法中的相关步骤。另外,存储器所存储的资源还可以包括操作系统和数据等,存储方式可以是短暂存储或者永久存储。其中,操作系统可以包括Windows、Unix、Linux等。数据可以包括但不限于应用程序的更新信息。
在一些实施例中,终端还可包括有显示屏、输入输出接口、通信接口、传感器、电源以及通信总线。
本领域技术人员可以理解,图16中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件。
下面对本发明实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与本文描述的其他实施例可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的中断信号处理方法。其中,可读存储介质为计算机可读存储介质,其作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统、计算机程序及数据等,存储方式可以是短暂存储或者永久存储。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:确定目标设备支持的中断类型和中断需求量;根据中断类型和中断需求量构造与中断类型匹配的至少两个中断信号;若在目标设备运行过程中监测到至少两个中断信号,则利用汇聚模块存储至少两个中断信号,并对至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若中断类型为INTx,则在使中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转之前,利用中断控制器将当前轮询到的中断信号的中断号存储至预设寄存器。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:接收主机设备发送的中断号的查询请求;从预设寄存器中查询中断号;返回中断号至主机设备。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:通过目标总线接收查询请求;预设寄存器通过目标总线连接主机设备;从预设寄存器中查询到中断号后,通过目标总线返回中断号至主机设备。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若中断类型为INTx,则使中断控制器根据INTx状态机将当前轮询到的中断信号转换为相应的INTx时序信号,并输出INTx时序信号;在获取到INTx时序信号的反馈信号后,停止INTx时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若中断类型为MSI,则使中断控制器根据MSI状态机将当前轮询到的中断信号,转换为含当前轮询到的中断信号的中断号的MSI时序信号,并输出MSI时序信号;在获取到MSI时序信号的反馈信号后,停止MSI时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若中断类型为MSI-X,则使中断控制器根据MSI-X状态机检测Mask标志位;若Mask标志位使能,则利用中断控制器将当前轮询到的中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出,并使汇聚模块释放当前轮询到的中断信号。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若Mask标志位未使能,则使中断控制器将当前轮询到的中断信号存入第一双口随机存取存储器中的待处理中断列表,并使汇聚模块释放当前轮询到的中断信号。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:响应于主机设备发送的Mask标志位的清零请求,查询待处理中断列表;若在待处理中断列表中查询到待处理中断信号,则利用中断控制器将待处理中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出;从待处理中断列表中删除待处理中断信号后,执行查询待处理中断列表的步骤以及后续其他步骤,直至待处理中断列表为空。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:若待处理中断列表为空,则向主机设备返回已完成清零的通知消息。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:接收主机设备发送的MSI-X中断配置信息;根据MSI-X中断配置信息配置至少两个中断信号中各个中断信号对应的向量、数据内容和地址,得到MSI-X配置表;将MSI-X配置表存储至第二双口随机存取存储器。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:利用中断控制器查询MSI-X配置表,得到当前轮询到的中断信号对应的向量、数据内容和地址;根据当前轮询到的中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号;
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:利用中断控制器查询MSI-X配置表,得到待处理中断信号对应的向量、数据内容和地址;根据待处理中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号。
在本实施例中,所述处理器执行的计算机程序,可以具体实现以下步骤:将汇聚模块标记为非空闲状态;相应地,若汇聚模块中未存储任意中断信号,则将汇聚模块标记为空闲状态。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (22)
1.一种中断信号处理方法,其特征在于,应用于目标设备,包括:
确定所述目标设备支持的中断类型和中断需求量;
根据所述中断类型和所述中断需求量构造与所述中断类型匹配的至少两个中断信号;所述至少两个中断信号的中断类型为INTx、MSI和MSI-X中的至少一种;
若在所述目标设备运行过程中监测到所述至少两个中断信号,则利用汇聚模块存储所述至少两个中断信号,并对所述至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;
使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转。
2.根据权利要求1所述的方法,其特征在于,还包括:
若所述中断类型为INTx,则在使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转之前,利用所述中断控制器将当前轮询到的中断信号的中断号存储至预设寄存器。
3.根据权利要求2所述的方法,其特征在于,还包括:
接收主机设备发送的所述中断号的查询请求;
从所述预设寄存器中查询所述中断号;
返回所述中断号至所述主机设备。
4.根据权利要求3所述的方法,其特征在于,接收主机设备发送的所述中断号的查询请求;从所述预设寄存器中查询所述中断号;返回所述中断号至所述主机设备,包括:
通过目标总线接收所述查询请求;所述预设寄存器通过所述目标总线连接所述主机设备;
从所述预设寄存器中查询到所述中断号后,通过所述目标总线返回所述中断号至所述主机设备。
5.根据权利要求1所述的方法,其特征在于,使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,包括:
若所述中断类型为INTx,则使所述中断控制器根据INTx状态机将当前轮询到的中断信号转换为相应的INTx时序信号,并输出所述INTx时序信号;
在获取到所述INTx时序信号的反馈信号后,停止所述INTx时序信号的输出,并使所述汇聚模块释放当前轮询到的中断信号。
6.根据权利要求1所述的方法,其特征在于,使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,包括:
若所述中断类型为MSI,则使所述中断控制器根据MSI状态机将当前轮询到的中断信号,转换为含当前轮询到的中断信号的中断号的MSI时序信号,并输出所述MSI时序信号;
在获取到所述MSI时序信号的反馈信号后,停止所述MSI时序信号的输出,并使所述汇聚模块释放当前轮询到的中断信号。
7.根据权利要求1所述的方法,其特征在于,使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转,包括:
若所述中断类型为MSI-X,则使所述中断控制器根据MSI-X状态机检测Mask标志位;
若所述Mask标志位使能,则利用所述中断控制器将当前轮询到的中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;
在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出,并使所述汇聚模块释放当前轮询到的中断信号。
8.根据权利要求7所述的方法,其特征在于,还包括:
若所述Mask标志位未使能,则使所述中断控制器将当前轮询到的中断信号存入第一双口随机存取存储器中的待处理中断列表,并使所述汇聚模块释放当前轮询到的中断信号。
9.根据权利要求8所述的方法,其特征在于,还包括:
响应于主机设备发送的所述Mask标志位的清零请求,查询所述待处理中断列表;
若在所述待处理中断列表中查询到待处理中断信号,则利用所述中断控制器将所述待处理中断信号转换为相应的MSI-X时序信号,并输出当前MSI-X时序信号;
在获取到当前MSI-X时序信号的反馈信号后,停止当前MSI-X时序信号的输出;
从所述待处理中断列表中删除所述待处理中断信号后,执行查询所述待处理中断列表的步骤以及后续其他步骤,直至所述待处理中断列表为空。
10.根据权利要求9所述的方法,其特征在于,还包括:
若所述待处理中断列表为空,则向所述主机设备返回已完成清零的通知消息。
11.根据权利要求9所述的方法,其特征在于,还包括:
接收主机设备发送的MSI-X中断配置信息;
根据所述MSI-X中断配置信息配置所述至少两个中断信号中各个中断信号对应的向量、数据内容和地址,得到MSI-X配置表;
将所述MSI-X配置表存储至第二双口随机存取存储器。
12.根据权利要求11所述的方法,其特征在于,
利用所述中断控制器将当前轮询到的中断信号转换为相应的MSI-X时序信号,包括:
利用所述中断控制器查询所述MSI-X配置表,得到当前轮询到的中断信号对应的向量、数据内容和地址;
根据当前轮询到的中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号;
相应地,利用所述中断控制器将所述待处理中断信号转换为相应的MSI-X时序信号,包括:
利用所述中断控制器查询所述MSI-X配置表,得到所述待处理中断信号对应的向量、数据内容和地址;
根据所述待处理中断信号对应的向量、数据内容和地址生成相应的MSI-X时序信号。
13.根据权利要求1至12任一项所述的方法,其特征在于,利用汇聚模块存储所述至少两个中断信号之后,还包括:将所述汇聚模块标记为非空闲状态;
相应地,若所述汇聚模块中未存储任意中断信号,则将所述汇聚模块标记为空闲状态。
14.一种中断信号处理装置,其特征在于,应用于目标设备,包括:
确定模块,用于确定所述目标设备支持的中断类型和中断需求量;
构造模块,用于根据所述中断类型和所述中断需求量构造与所述中断类型匹配的至少两个中断信号;所述至少两个中断信号的中断类型为INTx、MSI和MSI-X中的至少一种;
监测模块,用于若在所述目标设备运行过程中监测到所述至少两个中断信号,则利用汇聚模块存储所述至少两个中断信号,并对所述至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至中断控制器;
处理模块,用于使所述中断控制器根据当前轮询到的中断信号和相应状态机进行控制时序的状态跳转。
15.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至13任一项所述的方法。
16.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至13任一项所述的方法。
17.一种中断信号处理电路,其特征在于,包括:汇聚模块、与所述汇聚模块连接的中断控制器;
所述汇聚模块,用于接收并存储至少两个中断信号,并对所述至少两个中断信号进行轮询选择,将当前轮询到的中断信号传输至所述中断控制器;其中,所述至少两个中断信号根据目标设备支持的中断类型和中断需求量得到,且与所述中断类型相匹配;所述至少两个中断信号的中断类型为INTx、MSI和MSI-X中的至少一种;
所述中断控制器,用于将当前轮询到的中断信号转换为控制时序进行处理。
18.根据权利要求17所述的电路,其特征在于,还包括:
预设寄存器,用于响应于所述中断控制器存储中断号的指令,存储当前轮询到的中断信号的中断号;
相应地,预设寄存器还用于响应于主机设备通过目标总线发送的所述中断号的查询请求,查询并返回所述中断号至所述主机设备。
19.根据权利要求17所述的电路,其特征在于,还包括:
Mask标志位缓存,用于记录Mask标志位使能或未使能;
第一双口随机存取存储器,用于在Mask标志位未使能时,将当前轮询到的中断信号存入自身中的待处理中断列表。
20.根据权利要求19所述的电路,其特征在于,还包括:
第二双口随机存取存储器,用于存储MSI-X配置表;所述存储MSI-X配置表根据主机设备发送的MSI-X中断配置信息配置所述至少两个中断信号中各个中断信号对应的向量、数据内容和地址得到。
21.一种中断信号处理系统,其特征在于,包括:目标设备和所述目标设备连接的主机设备;所述目标设备包括:如权利要求17至20任一项所述的中断信号处理电路。
22.根据权利要求21所述的系统,其特征在于,所述目标设备为具备PCIE功能的设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410552501.4A CN118132243B (zh) | 2024-05-07 | 2024-05-07 | 一种中断信号处理方法、装置、设备、介质、电路及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410552501.4A CN118132243B (zh) | 2024-05-07 | 2024-05-07 | 一种中断信号处理方法、装置、设备、介质、电路及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118132243A true CN118132243A (zh) | 2024-06-04 |
CN118132243B CN118132243B (zh) | 2024-07-19 |
Family
ID=91234025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410552501.4A Active CN118132243B (zh) | 2024-05-07 | 2024-05-07 | 一种中断信号处理方法、装置、设备、介质、电路及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118132243B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN111722916A (zh) * | 2020-06-29 | 2020-09-29 | 长沙新弘软件有限公司 | 一种通过映射表处理msi-x中断的方法 |
CN113138949A (zh) * | 2021-04-29 | 2021-07-20 | 上海阵量智能科技有限公司 | 中断控制器、中断控制方法、芯片、计算机设备以及介质 |
US20220318170A1 (en) * | 2021-03-24 | 2022-10-06 | Infineon Technologies Ag | DEVICES, SYSTEMS, AND METHODS FOR PCIe ENDPOINT INTERRUPT |
CN115221083A (zh) * | 2022-09-05 | 2022-10-21 | 浪潮电子信息产业股份有限公司 | 一种PCIe中断处理方法、装置、设备及介质 |
-
2024
- 2024-05-07 CN CN202410552501.4A patent/CN118132243B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN111722916A (zh) * | 2020-06-29 | 2020-09-29 | 长沙新弘软件有限公司 | 一种通过映射表处理msi-x中断的方法 |
US20220318170A1 (en) * | 2021-03-24 | 2022-10-06 | Infineon Technologies Ag | DEVICES, SYSTEMS, AND METHODS FOR PCIe ENDPOINT INTERRUPT |
CN113138949A (zh) * | 2021-04-29 | 2021-07-20 | 上海阵量智能科技有限公司 | 中断控制器、中断控制方法、芯片、计算机设备以及介质 |
CN115221083A (zh) * | 2022-09-05 | 2022-10-21 | 浪潮电子信息产业股份有限公司 | 一种PCIe中断处理方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
廖张梦: "面向嵌入式系统的实时传输与接口技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑 》, no. 01, 15 January 2022 (2022-01-15), pages 137 - 153 * |
Also Published As
Publication number | Publication date |
---|---|
CN118132243B (zh) | 2024-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997093B2 (en) | NVME data processing method and NVME device | |
JP5646750B2 (ja) | 周辺機器のページフォルト(pagefault)を処理する機構 | |
US7783817B2 (en) | Method and apparatus for conditional broadcast of barrier operations | |
US9620088B2 (en) | Technologies for low-power standby display refresh | |
US20120266029A1 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
JPH0863354A (ja) | コンピュータプロセッシングを行うための装置及び方法 | |
CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
CN117591450B (zh) | 一种数据处理系统、方法、设备及介质 | |
US10853255B2 (en) | Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover | |
US20030225957A1 (en) | Transaction duration management in a USB host controller | |
WO2013148439A1 (en) | Hardware managed allocation and deallocation evaluation circuit | |
CN118132243B (zh) | 一种中断信号处理方法、装置、设备、介质、电路及系统 | |
CN105677606A (zh) | 总线设备的热插拔方法及总线装置 | |
US10346328B2 (en) | Method and apparatus for indicating interrupts | |
US9152588B2 (en) | Race-free level-sensitive interrupt delivery using fabric delivered interrupts | |
US8996772B1 (en) | Host communication device and method with data transfer scheduler | |
CN112711442B (zh) | 一种主机命令写入方法、设备、系统及可读存储介质 | |
CN112486274B (zh) | 计算机扩展卡及计算机系统 | |
CN116601616A (zh) | 一种数据处理装置、方法及相关设备 | |
CN113220608A (zh) | 一种NVMe命令处理器及其处理方法 | |
US20180336147A1 (en) | Application processor including command controller and integrated circuit including the same | |
CN118467453B (zh) | 一种数据传输方法、装置、设备、介质及计算机程序产品 | |
US20240330210A1 (en) | Method and apparatus to improve performance and battery life for systems with discrete universal serial bus connector | |
EP2799979B1 (en) | Hardware abstract data structure, data processing method and system | |
KR100652690B1 (ko) | 이동 통신 단말기의 멀티 프로세서 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |