CN102662889B - 中断处理方法、中断控制器及处理器 - Google Patents
中断处理方法、中断控制器及处理器 Download PDFInfo
- Publication number
- CN102662889B CN102662889B CN201210122172.7A CN201210122172A CN102662889B CN 102662889 B CN102662889 B CN 102662889B CN 201210122172 A CN201210122172 A CN 201210122172A CN 102662889 B CN102662889 B CN 102662889B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- message
- interruption
- module
- processor
- 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.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种中断处理方法、中断控制器及处理器。其中方法包括:中断控制器根据预先配置的中断转消息信息,将中断源的中断转换为中断消息,然后将中断消息发送给中断响应单元,中断响应单元至少包括处理器、加速器、DMA和调试单元其中之一;中断响应单元根据中断消息进行中断响应。本发明技术方案中断控制器通过中断转消息向各中断响应单元输出中断消息,降低了中断响应所消耗的软件开销。
Description
技术领域
本发明涉及处理器技术,尤其涉及一种中断处理方法、中断控制器及处理器。
背景技术
多核技术的发展使得处理器系统越来越复杂,处理器内各模块间的事件交互越来越多。中断控制器作为处理器中常用的事件(主要是指中断)转发处理模块,其处理效率的高低影响了整个处理器中事件交互的效率,因此,客观上处理器需要一种高效率的中断控制器。
目前,多核处理器中的中断控制架构是从单核处理器中继承和演进过来的。图1为现有技术中一种多核处理器的结构示意图。如图1所示,该多核处理器包括:N个处理器、M个硬件加速器、X个直接内存存取(Direct MemoryAccess,DMA)单元、Y个调试(Trace)单元和中断控制器。其中,N个处理器、M个硬件加速器、X个DMA单元、Y个Trace单元分别通过总线或直接与中断控制器连接,中断控制器负责完成多核处理器中各种中断的路由和处理。图2为图1中中断控制器内部结构及其接口示意图。如图2所示,中断控制器的接口包括:
接收处理器的配置的输入接口,即图2中所示的①;
控制各个Trace单元联合调试的中断输出的接口,即图2中所示的②;
触发各个DMA单元的中断输出接口,即图2中所示的③;
各个DMA单元的中断输入接口,即图2中所示的④;
各个Trace单元的中断输入接口,即图2中所示的⑤;
硬件加速器的中断输入接口,即图2中所示的⑥;
经中断控制器处理后输出到各个处理器的中断输出接口,即图2中所示的⑦。
现有多核中断处理器中中断处理的流程是:各中断源产生中断,并将中断送给中断控制器。其中,中断源可以是图1中所示的硬件加速器、DMA单元、Trace单元和处理器。中断控制器中的中断源汇总模块对各中断进行汇总、并经中断合并、中断广播等模块处理,然后通过中断路由模块将各中断分发给相应的处理器。处理器响应相应的中断并清除中断。
在上述中断处理流程中,虽然部分加速器可以使用消息驱动代替传统的中断处理,但是多数加速器以及其他中断源还是传统的中断处理。传统中断响应是由处理器执行的,其软件开销大。
发明内容
本发明提供一种中断处理方法、中断控制器及处理器,用以降低中断响应所消耗的软件开销。
本发明提供一种中断处理方法,包括:
中断控制器根据预先配置的中断转消息信息,将中断源的中断转换为中断消息,然后将所述中断消息发送给中断响应单元,所述中断响应单元至少包括处理器、加速器、直接内存存取DMA和调试单元其中之一;
所述中断响应单元根据所述中断消息进行中断响应。
本发明提供一种中断控制器,包括:中断路由模块、消息发送控制模块和消息输出接口;
所述中断路由模块,与所述消息发送控制模块连接,用于将中断源的中断提供给所述消息发送控制模块;
所述消息发送控制模块,与所述消息输出接口连接,用于从中断信息表中获取预先配置的中断转消息信息,根据所述中断转消息信息,将所述中断源的中断转换为中断消息,并通过所述消息输出接口将所述中断消息发送给中断响应单元;所述中断响应单元至少包括处理器、加速器、直接内存存取DMA和调试单元其中之一,所述中断转消息信息包括中断转消息的应用方法、中断消息的输出基地址和中断消息的透传内容。
本发明提供一种处理器,包括本发明提供的任一中断控制器、中断源和中断响应单元;
所述中断源至少为加速器、处理器、直接内存存取DMA和调制单元其中之一;所述中断响应单元至少包括处理器、加速器、DMA和调试单元其中之一。
本发明提供的中断处理方法、中断控制器及处理器,中断控制器通过增加中断转消息处理功能,根据预先设置的中断转消息信息将中断源的中断转换为中断消息后提供给中断响应单元,由中断响应单元根据中断消息进行中断响应,由于中断响应单元处理的对象不再是传统中断,使得中断响应单元不再局限于处理器,还可以是加速器、DMA等,而加速器、DMA等进行中断响应时不需要软件开销或软件开销相比处理器要小,因此,与现有技术中仅由处理器进行中断响应相比,降低了中断响应所消耗的软件开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一种多核处理器的结构示意图;
图2为图1中中断控制器内部结构及其接口示意图;
图3为本发明一实施例提供的中断处理方法的流程图;
图4为本发明另一实施例提供的中断处理方法的流程图;
图5为本发明又一实施例提供的中断处理方法的流程图;
图6A为本发明一实施例提供的多核处理器系统中模块间进行通信时的一种结构示意图;
图6B为图6A所示结构中模块间进行通信时的时序图;
图7A为本发明一实施例提供的通过多个模块的事件汇总启动另一模块的结构示意图;
图7B为图7A所示结构中通过汇总多个模块启动另一个模块的时序图;
图8A为本发明一实施例提供的中断控制器的结构示意图;
图8B为本发明另一实施例提供的中断控制器的结构示意图;
图9A为本发明一实施例提供的处理器的结构示意图;
图9B为本发明一实施例提供的具体化的处理器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3为本发明一实施例提供的中断处理方法的流程图。如图3所示,本实施例的中断处理方法包括:
步骤301、中断控制器根据预先配置的中断转消息信息,将中断源的中断转换为中断消息,然后将中断消息发送给中断响应单元,中断响应单元至少包括处理器、加速器、DMA和Trace单元其中之一。
本实施例适用于多核处理器系统。中断控制器负责完成多核处理器系统中的各种中断的路由和处理。在本实施例中,所述中断主要是指由中断源产生,使处理器中断正在执行的程序进而对中断请求及时地进行处理的信号,所述中断只能表征有中断发生和没有中断发生两种信息,由于信息量较少,所以所述中断对应的中断响应通常是由处理器执行的。
在本实施例中,中断控制器上预先配置了各种中断对应的中断转消息信息。具体的,多核处理器系统中的处理器可以预先将各种中断对应的中断转消息信息配置到中断控制器中。例如,中断控制器可以通过中断信息表对各种中断对应的中断转消息信息进行管理,则处理器可以将各种中断对应的中断转消息信息配置到中断控制器的中断信息表中。
本实施例的中断转消息信息包括中断控制器将中断转换为消息所需的各种信息。在本发明各实施例中,将中断转换成的消息称为中断消息。与中断相比,所述中断消息是由中断控制器对中断源产生的中断进行消息转换获取的一种信号,所述中断消息包括进行中断处理所需的多种信息,例如中断处理的内容(即执行怎样的处理)、中断处理的对象(即对哪个或哪些模块进行操作)等;所述中断消息包含的信息量较为丰富,所述中断响应的执行并不限于处理器,还可以是除处理器之外的其他模块。
基于上述,中断控制器在接收到中断源产生的中断后,可以先对各中断源的中断进行汇总、合并、广播等处理,接着对经过处理后的中断进行中断转消息处理形成中断消息,然后将中断消息发送给中断响应单元。
在本实施例中,由于中断控制器输出的是中断消息而不是传统的中断,因此,中断响应单元不再局限于处理器,还可以是多核处理器系统中的加速器、DMA或Trace单元等。换句话说,由于中断控制器扩展了中断转消息功能,使得本实施例的中断响应单元可以是处理器、加速器、DMA和Trace单元其中之一或其任意组合。
步骤302、中断响应单元根据中断消息进行中断响应。
中断响应单元接收到中断消息后,根据中断消息进行中断响应。
在本实施例中,中断控制器通过预先配置各种中断对应的中断转消息信息,扩展出中断转消息功能,通过向中断响应单元输出中断消息使得中断响应单元不再局限于处理器,由于加速器、DMA或Trace单元在进行中断响应时没有软件开销或软件开销远小于处理器,因此,与现有技术中仅由处理器进行中断响应的方案相比,其明显降低了软件开销。另外,由于加速器、DMA、Trace单元等分担了部分中断响应,从而降低了处理器的中断处理负担。
图4为本发明另一实施例提供的中断处理方法的流程图。如图4所示,本实施例的方法包括:
步骤401、中断控制器的中断路由模块将中断源的中断提供给中断控制器的消息发送控制模块。
在本实施例中,中断控制器包括:中断源汇总模块、中断合并模块、中断广播模块、中断路由模块、消息发送控制模块、与各中断响应单元连接的消息输出接口和存储中断转消息信息的中断信息表。
在本实施例中,处理器预先将各中断源的中断所对应中断转消息信息配置到中断控制器的中断信息表中。中断控制器通过中断信息表管理各种中断对应的中断转消息信息。
在中断源触发中断时,中断控制器的中断源汇总模块首先对各中断源的中断进行汇总,然后将部分中断发送给中断合并模块,将部分中断发送给中断广播模块,并将另外的中断直接送给中断路由模块。中断合并模块对部分中断进行整合处理后输出给中断路由模块;中断广播模块对部分中断进行广播处理后输出给中断路由模块。
在本实施例中,中断路由模块将中断输出给消息发送控制模块,使消息发送控制模块对中断进行转消息处理。
另外,本实施例的中断路由模块还可以将中断直接输出给处理器,这里输出给处理器的中断属于传统的中断。
也就是说,本实施例的中断路由模块同时具有将向处理器输出传统中断和向消息发送控制模块输出中断的功能。其中,中断路由模块可以将部分中断作为传统中断直接输出给处理器,将另外一部分中断输出给消息发送控制模块,由消息发送控制模块进行中断转消息处理。
步骤402、消息发送控制模块从中断信息表中获取预先配置的中断转消息信息,所述中断转消息信息包括中断转消息的应用方法、中断消息的输出基地址和中断消息的透传内容。
在本实施例中,消息发送控制模块从中断信息表中获取与中断路由模块提供的中断相对应的中断转消息信息。
在本实施例中,各种中断对应的中断转消息信息包括中断转消息的应用方法、中断消息的输出基地址和中断消息的透传内容等。其中,中断消息的应用方法、输出基地址以及透传内容等也就是执行中断处理所需的各种信息。
其中,中断转消息的应用方法包括了对中断进行处理的方式以及根据中断消息进行中断响应的中断响应单元。例如,中断转消息的应用方法可以是通过中断转消息启动加速器,在该应用方法中加速器即为进行中断响应的中断响应单元。又例如,中断转消息的应用方法还可以是通过中断转消息汇总多个中断到处理器,在该应用方法中需要将多个中断同时进行转消息处理,中断响应单元是处理器。
中断消息的输出基地址在一定程度上表征了将中断消息输出到的位置。
中断消息的透传内容用于表征中断对应的操作。
步骤403、消息发送控制模块根据中断转消息信息,将中断源的中断转换为中断消息,并通过与中断响应单元之间的消息输出接口,将中断消息发送给中断响应单元。
消息发送控制模块获取到中断对应的中断转消息信息后,根据中断转消息信息将中断路由模块提供的中断转换为中断消息,然后通过与中断响应单元之间的消息输出接口,将中断消息输出给中断响应单元。
其中,消息发送控制模块根据中断转消息信息对中断进行转消息处理的过程主要是指根据中断转消息信息中的中断转消息的应用方法和透传内容生成中断消息,然后根据中断转消息中的输出基地址将中断消息输出给相应中断响应单元的过程。
步骤404、中断响应单元接收中断消息并根据中断消息进行中断响应。
中断响应单元接收中断消息,然后根据中断消息进行中断响应。
其中,中断响应单元可以是在接收到中断消息后,立刻进行中断响应。
在本实施例中,中断控制器通过增加中断转消息处理功能,根据预先设置的中断转消息信息将中断源的中断转换为中断消息后提供给中断响应单元,由中断响应单元根据中断消息进行中断响应,由于中断响应单元处理的对象不再是传统中断,使得中断响应单元不再局限于处理器,还可以是加速器、DMA等,而加速器、DMA等进行中断响应时不需要软件开销或软件开销相比处理器要小,因此,与现有技术中仅由处理器进行中断响应相比,降低了中断响应所消耗的软件开销。另外,由于中断控制器对中断进行转消息处理,使得中断响应单元可以直接根据中断消息进行中断响应,减轻了各中断响应单元的负担。
在上述步骤403中,消息发送控制模块通过与中断响应单元之间的消息输出接口,将中断消息送给中断响应单元的过程可以是消息发送控制模块将中断消息发送到中断响应单元的内部缓存中。
基于上述步骤403的实施方式,在上述步骤404中,中断响应单元接收中断消息,并根据中断消息进行中断响应的过程可以是:中断响应单元根据预设内存轮询规则,轮询中断响应单元的内部缓存获取中断消息,然后根据获取的中断消息进行中断响应。
其中,内存轮询规则可以是按照一定的周期,对内部缓存进行周期性的轮询。另外,内存轮询规则还可以是在中断响应单元空闲时对内部缓存进行访问。
在上述实施方式中,由于中断消息被送到中断响应单元的访问效率很高的内部缓存中,中断响应单元直接对其内部缓存进行轮询获取中断消息,不需要像现有技术那样查询访问效率较低的中断控制器,提高了对中断进行响应的效率。
基于上述步骤403的实施方式,在上述步骤404中,中断响应单元接收中断消息,并根据中断消息进行中断响应的过程还可以是:中断控制器的消息发送控制模块向中断响应单元发送中断响应触发消息;中断响应单元接收消息发送控制模块发送的中断响应触发消息;然后,中断响应单元根据中断响应触发消息去访问其内部缓存,从其内部缓存中获取中断消息,然后根据获取的中断消息进行中断响应。
其中,中断响应单元从其内部缓存中获取中断消息的方式并不限于上述两种,还可以通过其他方式来获取。进一步,中断控制器和中断响应单元可以预先约定所使用的中断响应单元的内部缓存的大小,并且该内部缓存可被循环使用。在本发明各实施例中,将预先约定可以循环使用的中断响应单元的内部缓存的大小称为消息队列深度。消息队列深度可由处理器预先配置到中断控制器中,例如可以与中断转消息信息一并存储在中断信息表中,但不限于此。消息队列深度表示中断响应单元最多可以缓存的中断消息的个数。其中,中断控制器的消息发送控制模块可以根据消息队列深度和当前已发送的中断消息,向循环使用的内部缓存中写入新的中断消息。除此之外,还可以预先配置消息发送控制模块每次发送的中断消息的个数(即发送阈值),例如处理器预先配置该发送阈值,并连通中断转消息信息一同存储到中断信息表中,但不限于此。这样,消息发送控制模块就可以在中断消息的个数达到发送阈值时,结合预先配置的消息队列深度向中断响应单元中可循环使用的内部缓存输出中断消息。例如,如果配置的消息队列深度为100,配置发送阈值为10,则发送消息控制模块可以一次向中断响应单元中可循环使用的内部缓存中输出10个中断消息,这样可以减少输出中断消息的次数,有利于节约资源。当消息发送控制模块输出的中断消息的个数达到100时,消息发送控制模块就可以重新向可循环使用的内部缓存输出中断消息。这种循环使用内部缓存的方式有利于节约中断响应单元的缓存资源。
在上述实施方式中,通过设置消息队列深度和发送阈值,减少了消息发送控制模块向中断响应单元发送中断响应触发消息的次数,有利于减轻中断控制器的负担,而中断响应单元一次处理多个中断消息,有利于提高中断响应的效率。
在此说明,在上述实施例中,中断源和中断响应单元可以相同,也可以不同。例如,中断源可以是某个处理器,中断响应单元可以是加速器。又例如,中断源可以是某个处理器,中断响应单元也是该处理器。
图5为本发明又一实施例提供的中断处理方法的流程图。如图5所示,本实施例的方法包括:
步骤501、中断控制器的中断路由模块根据中断频度和中断处理速度,将中断源的中断划分为第一中断组和第二中断组。
在本实施例中,假设中断路由模块根据中断处理场景,输出给每个处理器M个传统的中断。其中,M个传统的中断是所有中断中的部分中断。本实施例对每个处理器处理传统中断的过程不做详细描述,可参见现有技术的过程。所有中断中除M个传统的中断之外的其余中断用于进行中断转消息处理。在该实施方式中,步骤501中的中断源的中断是指其余中断。
其中,中断路由模块可以将电平中断作为传统的中断,将脉冲中断作为需要转消息处理的中断。
中断路由模块将其余中断根据中断频度和中断处理速度分为两组。其中,中断频度是指中断被触发或发生的频率。与中断频度对应的是中断间隔,即同一中断相邻两次发生的时间间隔。中断处理速度主要是指消息发送控制模块的处理速度,另外,中断处理速度还受与其他模块的处理速度的影响。与中断处理速度对应的是中断处理间隔。
其中,中断路由模块根据中断频度和中断处理速度将其余中断分为两组的一种实施方式包括:中断路由模块将其余中断中中断频度小于中断处理速度(即中断间隔大于中断处理间隔)的中断划分为第一中断组,将其余中断中中断频度大于或等于中断处理速度(即中断间隔小于或等于中断处理间隔)的中断划分为第二中断组。其中,第一中断组中的中断属于低频度中断,第二中断组中的中断属于高频度中断。
在本实施例中,将中断划分为两个中断组,但不限于此。本领域技术人员可以根据本实施例的划分方法将中断划分为更多的中断组,其中对每个中断组的处理方式均与本实施例相同。
另外,中断控制器还可以将所有中断都进行中断转消息处理,此时,步骤501中的中断源的中断是指所有中断。
步骤502、中断路由模块将第一中断组和第二中断组分别输出到中断控制器的第一分组模块和中断控制器的第二分组模块。
在本实施例中,中断控制器还包括第一分组模块和第二分组模块,均与中断路由模块连接。第一分组模块用于接收、存储中断路由模块发送的第一中断组中的中断,并负责对中断进行处理;第二分组模块用于接收、存储中断路由模块发送的第二中断组中的中断,并负责对中断进行处理。
步骤503、中断控制器的排队选择模块按照排队轮询规则,从第一分组模块和第二分组模块中选择中断,并将选择的中断提供给消息发送控制模块。
在本实施例中,中断控制器还包括排队选择模块,该排队选择模块分别与第一分组模块和第二分组模块连接,用于根据预先设定的排队轮询规则,从第一分组模块或第二分组模块中获取中断,并将获取的中断提供给消息发送控制模块。
其中,配对选择模块使用的排队轮询规则可以按照预设轮询周期对两个分组模块进行轮询,这样可以使各种频度的中断得到公平处理,但不限于此。
进一步,本实施例的中断控制器还可以包括多个状态队列和多个计数队列。其中,每个状态队列对应一个中断响应单元,与第一分组模块连接,用于记录第一分组模块输出的与该状态队列对应的中断响应单元对应的中断状态。每个计数队列也对应一个中断响应单元,与第二分组模块连接,用于记录第二分组模块输出的与该计数队列对应的中断响应单元所对应的中断状态。
基于上述,步骤503的一种实施方式包括:
第一分组模块根据第一中断组中各中断对应的中断响应单元(即各中断是输出给处理器、加速器还是DMA等),将第一中断组中的各中断分成不同的队列。其中,一个队列对应一种中断响应单元。如果第一中断组的中断对应中断响应单元为处理器和加速度,则第一分组模块可以将第一中断组中的中断划分为两个队列,分别为处理器队列和加速器队列。在将第一中断组中的中断分成不同队列后,第一分组模块按照中断的优先级将各个队列中当前优先级最高的中断的中断状态输出到中断控制器中与该队列对应的状态队列中。
由于第一中断组中中断的频度小于中断处理速度,故对一个中断响应单元来说,在一次中断处理间隔中最多只会产生一个中断,故在本实施例中,状态队列可以使用一个比特表示中断状态,例如可以用“1”表示该中断响应单元有中断需要处理,用“0”表示该中断响应单元没有中断需要处理。由于每个状态队列对应一个中断响应单元,故可以使用状态队列的序号作为中断序号。
同理,第二分组模块根据第二中断组中各中断对应的中断响应单元(即各中断是输出给处理器、加速器还是DMA等),将第二中断组中的各中断分成不同的队列。其中,一个队列对应一种中断响应单元。如果第二中断组的中断对应中断响应单元为处理器和DMA,则第二分组模块可以将第二中断组中的中断划分为两个队列,分别为处理器队列和MDA队列。在将第二中断组中的中断分成不同队列后,第二分组模块按照中断的优先级将各个队列中当前优先级最高的中断的中断状态输出到中断控制器中与该队列对应的计数队列中。
由于第二中断组中中断的频度大于或等于中断处理速度,故对一个中断响应单元来说,在一次中断处理间隔中可能会产生多个中断,故在本实施例中,计数队列通过计数的方式表示该中断响应单元对应的中断状态,例如如果计数值为5,表示该中断响应单元对应有5个中断需要处理,如果计数值为0,则表示该中断响应单元没有中断需要处理。同理,由于每个计数队列对应一个中断响应单元,故可以使用计数队列的序号作为中断序号。
另外,在中断信息表中以状态队列的序号和计数队列的序号作为存储地址来存储各种中断的中断转消息信息。
基于上述,排队选择模块根据轮询策略对多个状态队列和多个计数队列进行轮询,从状态队列或计数队列中获取需要处理的中断。
对于状态队列来说,是通过状态队列的序号(即中断序号)和表示该中断是否存在的中断状态(例如“1”)来代表一个中断的。也就是说,排队选择模块会从状态队列中获取中断序号和中断状态,并将获取的中断序号和中断状态提供给消息发送控制模块。
对于计数队列来说,是通过计数队列的序号(即中断序号)和表示中断个数的计数值(即中断状态)来代表一个或多个中断的。也就是说,排队选择模块会从计数队列中获取中断序号和对应的计数值,并将获取的中断序号和计数值提供给消息发送控制模块。
步骤504、消息发送控制模块接收排队选择模块提供的中断。
在本实施例中,消息发送控制模块与排队选择模块连接,用于接收排队选择模块提供的中断。具体的,消息发送控制模块会接收排队选择模块提供的中断序号和中断状态。其中,中断状态可能是计数值,或者单比特的“0”或“1”。
步骤505、消息发送控制模块从中断信息表中获取预先配置的中断转消息信息,所述中断转消息信息包括中断转消息的应用方法、中断消息的输出基地址和中断消息的透传内容。
在本实施例中,在中断信息表中以状态队列的序号和计数队列的序号作为存储地址来存储各种中断的中断转消息信息。
基于此,消息发送控制模块可以将接收到的中断序号作为查询地址,从中断信息表中获取相应的中断转消息信息。
有关中断转消息信息的描述可参见步骤402,在此不再赘述。
步骤506、消息发送控制模块根据中断转消息信息,将中断源的中断转换为中断消息,并通过与中断响应单元之间的消息输出接口,将中断消息发送给中断响应单元。
步骤507、中断响应单元接收中断消息并根据中断消息进行中断响应。
上述步骤506和步骤507可参见步骤403和步骤404的描述,在此不再赘述。
在本实施例中,中断控制器通过增加中断转消息处理功能,根据预先设置的中断转消息信息将中断源的中断转换为中断消息后提供给中断响应单元,由中断响应单元根据中断消息进行中断响应,由于中断响应单元处理的对象不再是传统中断,使得中断响应单元不再局限于处理器,还可以是加速器、DMA等,而加速器、DMA等进行中断响应时不需要软件开销或软件开销相比处理器要小,因此,与现有技术中仅由处理器进行中断响应相比,降低了中断响应所消耗的软件开销。另外,由于中断控制器对中断进行转消息处理,使得中断响应单元可以直接根据中断消息进行中断响应,减轻了各中断响应单元的负担。
下面结合中断转消息的具体应用方法应用方法,详细说明步骤403或步骤506的具体实施过程。
中断转消息的应用方法0:通过中断转消息启动加速器。
相应的,中断转消息信息中的中断消息的透传内容为该加速器的启动命令,中断消息的输出基地址为该加速器的启动控制地址。
在应用方法0中,该加速器对应一个状态队列中的一个中断,或者对应一个计数队列中的一个或多个中断(视计数值而定)。该加速器对应的状态队列也就是存储由第一分组模块输出的中断响应单元是该加速器的中断的中断状态的状态队列。该加速器对应的计数队列也就是存储由第二分组模块输出的中断响应单元是该加速器的中断的中断状态的计数队列。
则步骤403或步骤506的详细过程包括:
消息发送控制模块将中断转消息信息中该加速器的启动命令作为中断消息的内容生成中断消息,然后将中断转消息信息中该加速器的启动控制地址作为中断消息的输出地址,通过与该加速器之间的消息输出接口,将中断消息输出给该加速器。进一步,如果需要处理的中断为多个(例如排队选择模块轮询到计数队列)时,消息发送控制模块可以将需要处理的中断个数作为中断消息的内容一并发送给该加速器。另外,消息发送控制模块还可以通过多个中断消息分别发送给该加速器的多个启动通道。
在发送完中转消息后,消息发送控制模块将排队选择模块提供的中断状态从排队选择模块提供的中断序号对应的状态队列或对应的计数队列中清除。具体的,如果排队选择模块当前轮询到的是状态队列,则消息发送控制模块将该状态队列中的比特清0。如果排队选择模块当前轮询到的是计数队列,则消息发送控制模块将该计数队列中的计数值清0。
应用方法0描述了中断响应单元为加速器的中断的转消息处理过程,但不限于此。对于中断响应单元为处理器、DMA或调试单元的中断的转消息处理过程,本领域技术人员可以在应用方式0的提示下同时结合处理器、DMA或调试单元的特性得出,在此不再详述。
中断转消息的应用方法1:通过中断转消息汇总第一中断组中指定个数的中断到处理器,即汇总多个低频度中断到处理器。
相应的,中断转消息信息中的中断消息的透传内容为处理器的中断服务程序的入口地址,中断消息的输出基地址为处理器缓存中断消息的内部缓存的地址。
在该应用方法1中,处理器对应一个状态队列中的多个中断(即指定个数的中断)。其中,指定个数可由处理器预先设定,并作为中断转消息信息一部分存储在中断信息表中。处理器对应的状态队列也就是存储由第一分组模块输出的中断响应单元为该处理器的中断的中断状态的状态队列。其中,处理器对应的多个中断可以来自相同或不同的中断源。
则步骤403或步骤506的详细过程包括:
当排队选择模块提供给消息发送控制模块的中断状态的个数达到指定个数时,消息发送控制模块将处理器的中断服务程序的入口地址和排队选择模块提供的指定个数的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后将处理器的内部缓存的地址作为中断消息的输出地址,通过与处理器之间的消息输出接口,将中断消息输出给处理器。其中,当该处理器对应的状态队列中存在未被获取的中断,且在一次中断处理过程(也可以称为排队过程)中被排队选择模块轮询到时,排队选择模块就会将该处理器对应的状态队列中的中断状态和中断序号提供给消息发送控制模块。经过多次上述过程直到排队选择模块提供给消息发送控制模块的中断个数或中断状态的个数达到指定个数时,消息发送控制模块才开始进行中断转消息处理并进行中断消息的发送;在未达到指定个数时,消息发送控制模块在接收到排队选择模块提供的中断状态和中断序号后不进行处理,并开始下一次中断处理,即第一分组模块和第二分组模块分别向状态队列和计数队列中输出中断状态,排队选择模块继续轮询计数队列和状态队列并继续向消息发送控制模块提供中断状态。
在发送完中转消息后,消息发送控制模块将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。举例说明,如果排队选择模块提供的中断序号分别为序号0、1、2,则消息发送控制模块序号0、1、2对应的状态队列的比特清0。
应用方法1描述了中断响应单元为处理器时,通过中断转消息将多个低频度中断汇总后一起发送给处理器的过程,但不限于此。对于中断响应单元为处理器、DMA或调试单元的中断的转消息处理过程,本领域技术人员可以在应用方式1的提示下同时结合加速器、DMA或调试单元的特性得出,在此不再详述。
通过这种汇总方式可以降低中断响应的次数,有利于提高中断响应的效率,节约资源。
中断转消息的应用方法2:通过中断转消息合并第一中断组中指定个数的中断到处理器,即合并多个低频度中断到处理器。
相应的,中断转消息信息中的中断消息的透传内容为处理器的中断服务程序的入口地址,中断消息的输出基地址为处理器缓存中断消息的内部缓存的地址。在该应用方法2中,中断转消息信息还包括:需要合并的中断信息。其中,需要合并的中断信息包括需要合并的中断序号。消息发送控制模块根据该需要合并的中断信息可以知道将哪些中断进行合并。在本实施例中,所谓合并是指将多个中断作为一个中断来处理,也就是说中断响应单元在一次中断响应中完成对多个中断的处理。
在该应用方法2中,处理器对应一个状态队列中的多个中断(即指定个数的中断)。其中,指定个数可由控制器预先设置,并作为中断转消息信息的一部分存储在中断信息表中。处理器对应的状态队列也就是存储由第一分组模块输出的中断响应单元为该处理器的中断的中断状态的状态队列。其中,处理器对应的多个中断可以来自相同或不同的中断源。
则步骤403或步骤506的详细过程包括:
当消息发送控制模块根据需要合并的中断信息确定从排队选择模块获取到全部需要合并的中断的中断状态后,消息发送控制模块将处理器的中断服务程序的入口地址和排队选择模块提供的指定个数的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后将处理器的内部缓存的地址作为中断消息的输出地址,通过与处理器之间的消息输出接口,将中断消息输出给处理器。其中,当该处理器对应的状态队列中存在未被获取的中断,且在一次中断处理过程(也可以称为排队过程)中被排队选择模块轮询到时,排队选择模块就会将该处理器对应的状态队列中的中断状态和中断序号提供给消息发送控制模块。经过多次上述过程直到排队选择模块将所有需要合并的中断或其中断状态都提供给消息发送控制模块时,消息发送控制模块才开始进行中断转消息处理并进行中断消息的发送;需要合并的中断未全部获取时,消息发送控制模块在接收到排队选择模块提供的中断状态和中断序号后不进行处理,并开始下一次中断处理。
在发送完中转消息后,消息发送控制模块将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。举例说明,假设指定个数为3,如果排队选择模块提供的中断序号分别为序号0、1、2,则消息发送控制模块序号0、1、2对应的状态队列的比特清0。
中断转消息的应用方法3:通过中断转消息合并第一中断组中指定个数的中断到加速器,即合并多个低频度中断到加速器。
相应的,中断转消息信息中的中断消息的透传内容为加速器的启动命令,中断消息的输出基地址为加速器的启动控制地址。在该应用方法3中,中断转消息信息还包括:需要合并的中断信息。需要合并的中断信息可参见应用方法2中的描述。
在该应用方法3中,加速器对应一个状态队列中的多个中断(即指定个数的中断)。指定个数可由控制器预先设置,并作为中断转消息信息的一部分存储在中断信息表中。加速器对应的状态队列也就是存储由第一分组模块输出的中断响应单元为该加速器的中断的中断状态的状态队列。其中,加速器对应的多个中断可以来自相同或不同的中断源。
则步骤403或步骤506的详细过程包括:
当消息发送控制模块根据需要合并的中断信息确定从排队选择模块获取到全部需要合并的中断的中断状态后,消息发送控制模块将加速器的启动命令作为中断消息的内容生成中断消息,然后将加速器的启动控制地址作为中断消息的输出地址,通过与加速器之间的消息输出接口,将中断消息输出给加速器。
在发送完中转消息后,消息发送控制模块将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。
当消息发送控制模块根据需要合并的中断信息确定出尚未从排队选择模块获取到全部需要合并的中断的中断状态时,消息发送控制模块不进行处理,并开始下一次中断转消息处理,即第一分组模块和第二分组模块分别向状态队列和计数队列中输出中断状态,排队选择模块继续轮询计数队列和状态队列并继续向消息发送控制模块提供中断状态。
在此说明,应用方法2和应用方法3分别描述了中断响应单元为处理器和加速器时,通过中断转消息将多个低频度中断合并后一起发送给处理器或加速器的过程,但不限于此。对于中断响应单元为DMA或调试单元的中断的转消息处理过程,本领域技术人员可以在应用方式2和3的提示下同时结合DMA或调试单元的特性得出,在此不再详述。
通过上述合并中断的处理方式可以减少响应中断的次数,提高中断响应效率、节约资源。
中断转消息的应用方法4:通过中断转消息汇总第二中断组中的中断到处理器,即汇总一个或多个高频度中断到处理器。
相应的,中断转消息信息中的中断消息的透传内容为处理器的中断服务程序的入口地址,中断消息的输出基地址为处理器缓存中断消息的内部缓存的地址。
在该应用方法4中,处理器对应一个计数队列中的一个或多个中断。处理器对应的计数队列也就是存储由第二分组模块输出的中断响应单元是该处理器的中断的中断状态的计数队列。在该应用方法中,如果该计数队列中的计数值为1,则处理器对应一个中断,如果计数值大于1,则处理器对应多个中断。其中,处理器对应的多个高频度中断可以来自相同或不同的中断源。
则步骤403或步骤506的详细过程包括:
消息发送控制模块将处理器的中断服务程序的入口地址和排队选择模块提供的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后将处理器的内部缓存的地址作为中断消息的输出地址,通过与处理器之间的消息输出接口,将中断消息输出给处理器。举例说明,如果排队选择模块提供的中断序号为序号1,对应的断状态为计数值5,则消息发送控制模块将处理器的中断服务程序的入口地址和排队选择模块提供的序号1和对应的计数值5作为中断消息的内容生成中断消息。
在发送完中转消息后,消息发送控制模块将排队选择模块提供的中断状态从排队选择模块提供的中断序号对应的计数队列中清除。举例说明,消息发送控制模块将序号1的计数队列中的计数值5清除。
应用方法4描述了中断响应单元为处理器时,通过中断转消息的方式将高频度中断发送给处理器的过程,但不限于此。对于中断响应单元为加速器、DMA或调试单元的中断的转消息处理过程,本领域技术人员可以在应用方式4的提示下同时结合加速器、DMA或调试单元的特性得出,在此不再详述。
中断转消息的应用方法5:通过中断转消息汇总第二中断组中的中断到处理器的处理队列。
相应的,中断转消息信息中的中断消息的透传内容为处理器的中断服务程序的入口地址,中断消息的输出基地址为处理器缓存中断消息的内部缓存的地址。在该应用方法5中,中断转消息信息还包括:偏移地址范围和地址偏移量。
该应用方法5适用于处理器端循环使用缓存空间的场景。其中,偏移地址范围表示缓存空间的大小,地址偏移量表示每次偏移的地址量,即地址偏移粒度。
在该应用方法5中,处理器对应一个计数队列中的一个或多个中断。
则步骤403或步骤506的详细过程包括:
消息发送控制模块将处理器的中断服务程序的入口地址和排队选择模块提供的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后在当前偏移地址达到偏移地址范围之前,将处理器的内部缓存的地址和当前偏移地址的和作为中断消息的输出地址,通过与处理器之间的消息输出接口,将中断消息输出给所述处理器,同时将当前偏移地址加上地址偏移量。当当前偏移地址达到偏移地址范围时,重新从处理器的内部缓存的地址开始,即重新将处理器的内部缓存的地址作为中断消息的输出地址,通过与处理器之间的消息输出接口,将中断消息输出给所述处理器,然后将当前偏移地址(此时为0)加上地址偏移量。
在发送完中转消息后,消息发送控制模块将排队选择模块提供的中断状态从排队选择模块提供的中断序号对应的计数队列中清除。
与应用方法4相比,应用方法5描述了中断响应单元为处理器,且处理器循环使用缓存空间时,通过中断转消息的方式将高频度中断发送给处理器的过程,但不限于此。对于中断响应单元为加速器、DMA或调试单元的中断的转消息处理过程,本领域技术人员可以在应用方式5的提示下同时结合加速器、DMA或调试单元的特性得出,在此不再详述。
中断转消息的应用方法6:通过中断转消息汇总第二中断组中指定个数的中断到处理器,即汇总多个高频度中断到处理器。
相应的,中断转消息信息中的中断消息的透传内容为处理器的中断服务程序的入口地址,中断消息的输出基地址为处理器缓存所述中断消息的内部缓存的地址。在该应用方法6中,中断转消息信息还包括:指定个数。其中,指定个数也就是需要汇总的中断个数阈值,该指定个数可由处理器预先配置,并作为中断转消息信息的一部分被存储在中断信息表中。
在该应用方法6中,处理器对应一个计数队列中的多个中断(即指定个数)。该处理器对应的计数队列也就是存储由第二分组模块输出的中断响应单元是该处理器的中断的中断状态的计数队列。其中,处理器对应的多个高频度中断可以来自相同或不同的中断源。
则步骤403或步骤506的详细过程包括:
当排队选择模块提供给消息发送控制模块的中断状态的个数达到指定个数时,消息发送控制模块将处理器的中断服务程序的入口地址和排队选择模块提供的指定个数的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后将处理器的内部缓存的地址作为中断消息的输出地址,通过与处理器之间的消息输出接口,将中断消息输出给处理器。其中,当该处理器对应的计数队列中存在未被获取的中断,且在一次中断处理过程(也可以称为排队过程)中被排队选择模块轮询到时,排队选择模块就会将该处理器对应的计数队列中的中断状态和中断序号提供给消息发送控制模块。经过多次上述过程直到排队选择模块提供给消息发送控制模块的中断个数或中断状态的个数达到指定个数时,消息发送控制模块才开始进行中断转消息处理并进行中断消息的发送;在未达到指定个数时,消息发送控制模块在接收到排队选择模块提供的中断状态和中断序号后不进行处理,并开始下一次中断处理,即第一分组模块和第二分组模块分别向状态队列和计数队列中输出中断状态,排队选择模块继续轮询计数队列和状态队列并继续向消息发送控制模块提供中断状态。
在发送完中转消息后,消息发送控制模块将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。其中,如果某个计数队列中的计数值为5,但在该次中断转消息处理过程中只处理了其中3个中断,则将该计数队列中的相应中断状态清除,是指将计数值由5变为2,即减去处理掉的中断个数。
中断转消息的应用方法7:通过中断转消息汇总第二中断组中指定个数的中断到加速器,即汇总多个高频度中断到加速器。
相应的,中断转消息信息中的中断消息的透传内容为加速器的启动命令,中断消息的输出基地址为加速器的启动控制地址。在该应用方法7中,中断转消息信息还包括:指定个数。其中,指定个数也就是需要汇总的中断个数阈值,该指定个数可由处理器预先配置,并作为中断转消息信息的一部分被存储在中断信息表中。其中,加速器对应的多个高频度中断可以来自相同或不同的中断源。
在该应用方法7中,加速器对应一个计数队列中的多个中断(即指定个数)。该加速器对应的计数队列也就是存储由第二分组模块输出的中断响应单元是该加速器的中断的中断状态的计数队列。
则步骤403或步骤506的详细过程包括:
当排队选择模块提供给消息发送控制模块的中断状态的个数达到指定个数时,消息发送控制模块将加速器的启动命令作为中断消息的内容生成中断消息,然后将加速器的启动控制地址作为中断消息的输出地址,通过与加速器之间的消息输出接口,将中断消息输出给加速器。
在发送完中转消息后,消息发送控制模块将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。
当排队选择模块提供给消息发送控制模块的中断状态的个数未达到指定个数时,消息发送控制模块不做处理,并开始下一次中断转消息处理过程。
应用方法6和应用方法7分别描述了中断响应单元为处理器和加速器时,通过中断转消息将多个高频度中断汇总后一起发送给处理器或加速器的过程,但不限于此。对于中断响应单元为DMA或调试单元的中断的转消息处理过程,本领域技术人员可以在应用方式6和7的提示下同时结合DMA或调试单元的特性得出,在此不再详述。
通过这种汇总方式可以降低中断响应的次数,有利于提高中断响应的效率,节约资源。
在此说明,上述各应用方法中的“指定个数”彼此不相关,可以是相同的值,也可以是不同的值。
上述各应用方法以加速器和处理器为例进行了说明,但不限于此,上述各应用方法还可以应用于DMA、Trace单元等。并且,本实施例的中断控制器实现的中断转消息应用方法也不限于上述几种。
基于上述,本发明通过以下具体实例对上述实施例的流程做进一步说明。
图6A为本发明一实施例提供的多核处理器系统中模块间进行通信时的一种结构示意图。图6B为图6A所示结构中模块间进行通信时的时序图。
如图6A所示,某个模块A(如网络输入接口)输出2种类型报文数据到2个缓存组(如图6A所示的2个乒乓缓存),每种报文对应一个中断,模块B(如加密模块)需要对每个第一类型的(对应中断0)报文加密,模块C(如解密模块)需要对每个第二类型的(对应中断1)报文解密。
则基于本实施例的中断控制器进行中断转消息后的中断响应流程如图6B所示。
传统的中断控制器需要软件分别响应中断0和中断1并配置模块B和模块C启动处理。本实施例中只需要软件在初始化时配置中断控制器,并配置对模块A的中断0和中断1的处理分别为发送到模块B的处理启动消息和发送到模块C的处理启动消息即可。在模块B和模块C对数据进行处理的过程中,软件无需做中断响应,节约了软件开销,并且在处理的过程中不会因为中断到来时刻的不确定性而丢失中断。
进一步,在特别复杂的应用场景下(如选择性丢弃部分报文)可以使用中断转消息并发送到处理器内部缓存,并且由软件轮询或发送中断响应触发消息的方式启动模块B和模块C的处理。
另外,在问题调试阶段依然可以由软件通过传统的中断处理方式来定位问题。
图7A为本发明一实施例提供的通过多个模块的事件汇总启动另一模块的结构示意图。图7B为图7A所示结构中通过汇总多个模块启动另一个模块的时序图。
在图7A所示的结构中,某个模块F(如组包单元)需要2种报文到齐后才能处理,第一种报文是模块D的输出,第二种报文是模块E的输出,两个模块的处理时间长短不定。模块D、E、F可以是处理器单元或加速器单元。
则基于本实施例的中断控制器进行中断转消息进行多事件汇总并启动另一模块的流程如图7B所示。
传统的中断控制器需要软件分别响应中断0和中断1并配置模块F启动处理。本实施例只需要软件在初始化时配置中断控制器,并配置对模块D的中断0和对模块E的中断1到1个中断分组(高频度中断组或低频度中断组)中,并配置需要合并的中断信息(例如中断序号或中断个数)。中断发生后,在模块F进行中断响应的过程中,软件无需做中断响应,且在处理的过程中不会因为中断到来时刻的不确定性而丢失中断。
另外,在问题调试阶段依然可以由软件通过传统的中断处理方式来定位问题。
综上所述,本发明实施例提供的中断处理方法具有以下有益效果:通过中断转消息降低中断处理的软件开销;通过中断消息汇总或合并多个中断,减少中断响应处理次数;通过中断转消息可以使得加速器间直接通讯;多事件合并机制降低软件等待的开销。
图8A为本发明一实施例提供的中断控制器的结构示意图。如图8A所示,本实施例的中断控制器包括:中断源汇总模块81、中断合并模块82、中断广播模块83、中断路由模块84、消息发送控制模块85和消息输出接口86。
其中,中断源汇总模块81,用于接收各中断源产生的中断。中断合并模块82,与中断源汇总模块81连接,用于对部分中断进行合并处理。中断广播模块83,与中断源汇总模块81连接,用于对部分中断进行广播处理。
上述中断源汇总模块81、中断合并模块82和中断广播模块83与现有中断控制器中的相应模块相同,在本实施例中不做详细描述。
中断路由模块84,分别与中断源汇总模块81、中断合并模块82、中断广播模块83和消息发送控制模块85连接,用于接收中断源汇总模块81、中断合并模块82和中断广播模块83输出的中断,并对中断进行路由。在本实施例中,中断路由模块84除了具有将中断作为传统中断发送给处理器的功能之外,还具有将部分或全部中断发送给消息发送控制模块85的功能。
消息发送控制模块85,与消息输出接口86连接,用于从中断信息表中获取预先配置的中断转消息信息,根据中断转消息信息,将中断源的中断转换为中断消息,并通过消息输出接口86将中断消息发送给中断响应单元;所述中断响应单元至少包括处理器、加速器、DMA和调试单元其中之一,所述中断转消息信息包括中断转消息的应用方法、中断消息的输出基地址和中断消息的透传内容。
本实施例的中断控制器的各功能模块可用于执行图3所示中断处理方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的中断控制器,通过增加中断转消息处理功能,根据预先设置的中断转消息信息将中断源的中断转换为中断消息后提供给中断响应单元,由中断响应单元根据中断消息进行中断响应,由于中断响应单元处理的对象不再是传统中断,使得中断响应单元不再局限于处理器,还可以是加速器、DMA等,而加速器、DMA等进行中断响应时不需要软件开销或软件开销相比处理器要小,因此,与现有技术中仅由处理器进行中断响应相比,降低了中断响应所消耗的软件开销。
图8B为本发明另一实施例提供的中断控制器的结构示意图。本实施例基于图8A所示实施例实现,如图8B所示,本实施例的消息发送控制模块85具体用于通过消息输出接口86,将中断消息发送到中断响应单元的内部缓存中。
基于上述,中断响应单元可以按照内存轮询规则对其内部缓存进行轮询,从其内部缓存中获取中断消息并根据中断消息进行中断响应。
进一步,本实施例的消息发送控制模块85具体用于根据预先配置的消息队列深度和发送阈值,通过消息输出接口将中断消息发送到消息队列深度对应的内部缓存中,这样可以实现循环使用中断响应单元的内部缓存的目的。
进一步,本实施例的消息发送控制模块85还用于通过消息输出接口向中断响应单元发送中断响应触发消息,以使中断响应单元根据中断响应触发消息从中断响应单元的内部缓存中获取中断消息并根据中断消息进行中断响应。
可选的,本实施例的中断控制器还包括:第一分组模块91、第二分组模块92和排队选择模块93。
基于上述各模块的存在,中断路由模块84与第一分组模块91和第二分组模块92连接。中断路由模块84具体用于根据中断频度和中断处理速度,将中断源的中断划分为第一中断组和第二中断组,并将第一中断组和第二中断组分别输出到第一分组模块91和第二分组模块92。
排队选择模块93,与第一分组模块91、第二分组模块92和消息发送控制模块85连接,用于按照排队轮询规则,从第一分组模块91和第二分组模块92中选择中断,并将选择的中断提供给消息发送控制模块85。
其中,中断路由模块84具体可以将中断源的中断中中断频度小于中断处理速度的中断划分为第一中断组,将中断源的中断中中断频度大于或等于中断处理速度的中断划分为第二中断组。
进一步可选的,本实施例的中断控制器还可以包括:多个状态队列94和多个计数队列95。其中,每个状态队列94对应一类中断响应单元,每个计数队列95对应一类中断响应单元。每个状态队列94与第一分组模块91连接,每个计数队列95与第二分组模块92连接。
基于上述,第一分组模块91具体用于根据第一中断组中各中断对应的中断响应单元,将第一中断组中的各中断分成不同的队列,然后按照中断的优先级将各队列中当前优先级最高的中断的中断状态输出到相应的状态队列94中。
第二分组模块92具体用于根据第二中断组中各中断对应的中断响应单元,将第二中断组中各中断分成不同的队列,然后按照中断的优先级将各个队列中当前优先级最高的中断的中断状态输出到相应的计数队列95中。
排队选择模块93分别通过状态队列94和计数队列95与第一分组模块91和第二分组模块92连接,具体用于按照排队轮询规则轮询各个状态队列94和计数队列95,从状态队列94或计数队列95中获取中断的中断状态和中断序号并提供给消息发送控制模块85;中断序号为状态队列或计数队列的序号。
基于上述,中断路由模块84通过第一分组模块91、状态队列94和排队选择模块93与消息发送控制模块85连接,或者通过第二分组模块92、计数队列95和排队选择模块93与消息发送控制模块85连接。
基于上述,消息发送控制模块85具体用于将排队选择模块93提供的中断序号作为地址,查询中断信息表,从中断信息表中获取中断转消息信息。
下面结合中断转消息的应用方法,详细说明消息发送控制模块85进行中断转消息处理过程。
如果中断转消息的应用方法为通过中断转消息启动加速器(即应用方法0),中断转消息中的中断消息的透传内容为该加速器的启动命令,中断转消息中的中断消息的输出基地址为该加速器的启动控制地址。则消息发送控制模块85具体用于将加速器的启动命令作为中断消息的内容生成中断消息,然后将加速器的启动控制地址作为中断消息的输出地址,通过消息输出接口将中断消息输出给加速器,然后将排队选择模块提供的中断状态从排队选择模块提供的中断序号对应的状态队列或对应的计数队列中清除。
如果中断转消息的应用方法为通过中断转消息汇总第一中断组中指定个数的中断到处理器(即应用方法1),中断转消息中的中断消息的透传内容为该处理器的中断服务程序的入口地址,中断转消息中的中断消息的输出基地址为该处理器缓存中断消息的内部缓存的地址。则消息发送控制模块85具体用于在排队选择模块提供给消息发送控制模块的中断状态的个数达到指定个数时,将处理器的中断服务程序的入口地址和排队选择模块提供的指定个数的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后将处理器的内部缓存的地址作为中断消息的输出地址,通过消息输出接口将中断消息输出给处理器,然后将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。
如果中断转消息的应用方法为通过中断转消息合并第一中断组中指定个数的中断到处理器(即应用方法2),中断转消息中的中断消息的透传内容为该处理器的中断服务程序的入口地址,中断转消息中的中断消息的输出基地址为该处理器缓存中断消息的内部缓存的地址;中断转消息信息还包括:需要合并的中断信息。则消息发送控制模块85具体用于在根据需要合并的中断信息确定从排队选择模块获取到全部需要合并的中断的中断状态后,将处理器的中断服务程序的入口地址和排队选择模块提供的指定个数的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后将处理器的内部缓存的地址作为中断消息的输出地址,通过消息输出接口将中断消息输出给处理器,然后将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。
如果中断转消息的应用方法为通过中断转消息合并第一中断组中指定个数的中断到加速器(即应用方法3),中断转消息中的中断消息的透传内容为该加速器的启动命令,中断转消息中的中断消息的输出基地址为该加速器的启动控制地址;中断转消息信息还包括:需要合并的中断信息。则消息发送控制模块85具体用于在根据需要合并的中断信息确定从排队选择模块获取到全部需要合并的中断的中断状态后,将加速器的启动命令作为中断消息的内容生成中断消息,然后将加速器的启动控制地址作为中断消息的输出地址,通过消息输出接口将中断消息输出给加速器,然后将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。
如果中断转消息的应用方法为通过中断转消息汇总第二中断组中的中断到处理器(即应用方法4),中断转消息中的中断消息的透传内容为该处理器的中断服务程序的入口地址,中断转消息中的中断消息的输出基地址为该处理器缓存中断消息的内部缓存的地址。则消息发送控制模块85具体用于将处理器的中断服务程序的入口地址和排队选择模块提供的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后将处理器的内部缓存的地址作为中断消息的输出地址,通过消息输出接口将中断消息输出给处理器,然后将排队选择模块提供的中断状态从排队选择模块提供的中断序号对应的计数队列中清除;
如果中断转消息的应用方法为通过中断转消息汇总第二中断组中的中断到处理器的处理队列(即应用方法5),中断转消息中的中断消息的透传内容为处理器的中断服务程序的入口地址,中断转消息中的中断消息的输出基地址为处理器缓存中断消息的内部缓存的地址;中断转消息信息还包括:偏移地址范围和地址偏移量。则消息发送控制模块85具体用于将处理器的中断服务程序的入口地址和排队选择模块提供的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后在当前偏移地址达到偏移地址范围之前,将处理器的内部缓存的地址和当前偏移地址的和作为中断消息的输出地址,通过消息输出接口将中断消息输出给处理器,同时将当前偏移地址加上地址偏移量,然后将排队选择模块提供的中断状态从排队选择模块提供的中断序号对应的计数队列中清除。
如果中断转消息的应用方法为通过中断转消息汇总第二中断组中指定个数的中断到处理器,中断转消息中的中断消息的透传内容为处理器的中断服务程序的入口地址,中断转消息中的中断消息的输出基地址为处理器缓存中断消息的内部缓存的地址;中断转消息信息还包括:指定个数。则消息发送控制模块85具体用于在排队选择模块提供给消息发送控制模块的中断状态的个数达到指定个数时,将处理器的中断服务程序的入口地址和排队选择模块提供的指定个数的中断状态和对应的中断序号作为中断消息的内容生成中断消息,然后将处理器的内部缓存的地址作为中断消息的输出地址,通过消息输出接口将中断消息输出给处理器,然后将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。
如果中断转消息的应用方法为通过中断转消息汇总第二中断组中指定个数的中断到加速器(即应用方法7),中断转消息中的中断消息的透传内容为加速器的启动命令,中断转消息中的中断消息的输出基地址为加速器的启动控制地址;中断转消息信息还包括:指定个数。则消息发送控制模块85具体用于在排队选择模块提供给消息发送控制模块的中断状态的个数达到指定个数时,将加速器的启动命令作为中断消息的内容生成中断消息,然后将加速器的启动控制地址作为中断消息的输出地址,通过消息输出接口将中断消息输出给加速器,然后将排队选择模块提供的指定个数的中断状态从排队选择模块提供的中断序号对应的状态队列中清除。
上述各功能模块或其组合可用于执行本发明各方法实施例中的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例的中断控制器,通过中断转消息降低中断处理的软件开销;通过中断消息汇总或合并多个中断,减少中断响应处理次数;通过中断转消息可以使得加速器间直接通讯;多事件合并机制降低软件等待的开销。
图9A为本发明一实施例提供的处理器的结构示意图。如图9A所示,本实施例的处理器包括中断控制器901、中断源902和中断响应单元903。
其中,中断控制器901可以是本发明上述实施例提供的中断控制器,其结构可参见图8A或图8B所示,其工作原理可参见图3-图7B任一所示实施例的描述,在此不再赘述。
其中,中断源902至少为加速器、处理器、DMA和调制单元其中之一;中断响应单元903至少包括处理器、加速器、DMA和调试单元其中之一。
图9B为本实施例提供的具体化的处理器的结构示意图。在图9B中,中断控制器901与加速器、处理器、DMA和调制单元连接。其中,加速器、处理器、DMA和调制单元均可以为中断源902和/或中断响应单元903。
本实施例的处理器更为具体的是指多核处理器系统,如图9B所示,其包括中断控制器、多个处理器、多个加速器、DMA和调试单元。
本实施例的处理器包括本发明实施例提供的中断控制器,可用于执行本发明实施例提供的中断处理方法,同样可以通过中断转消息降低中断处理的软件开销;通过中断消息汇总或合并多个中断,减少中断响应处理次数;通过中断转消息可以使得加速器间直接通讯;多事件合并机制降低软件等待的开销。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (17)
1.一种中断处理方法,其特征在于,包括:
中断控制器根据预先配置的中断转消息信息,将中断源的中断转换为中断消息,然后将所述中断消息发送给中断响应单元,所述中断响应单元至少包括处理器、加速器、直接内存存取DMA和调试单元其中之一;
所述中断响应单元根据所述中断消息进行中断响应;
其中,所述中断控制器根据预先配置的中断转消息信息,将中断源的中断转换为中断消息,然后将所述中断消息发送给中断响应单元包括:
所述中断控制器的中断路由模块将所述中断源的中断提供给所述中断控制器的消息发送控制模块;
所述消息发送控制模块从中断信息表中获取预先配置的中断转消息信息,所述中断转消息信息包括中断转消息的应用方法、中断消息的输出基地址和中断消息的透传内容;
所述消息发送控制模块根据所述中断转消息信息,将所述中断源的中断转换为所述中断消息,并通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元;
其中,所述中断控制器的中断路由模块将所述中断源的中断提供给所述中断控制器的消息发送控制模块包括:
所述中断路由模块根据中断频度和中断处理速度,将所述中断源的中断划分为第一中断组和第二中断组;
所述中断路由模块将所述第一中断组和所述第二中断组分别输出到所述中断控制器的第一分组模块和所述中断控制器的第二分组模块;
所述中断控制器的排队选择模块按照排队轮询规则,从所述第一分组模块和所述第二分组模块中选择中断,并将选择的中断提供给所述消息发送控制模块。
2.根据权利要求1所述的中断处理方法,其特征在于,所述消息发送控制模块通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元包括:
所述消息发送控制模块通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送到所述中断响应单元的内部缓存中。
3.根据权利要求2所述的中断处理方法,其特征在于,所述消息发送控制模块通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送到所述中断响应单元的内部缓存中包括:
所述消息发送控制模块根据预先配置的消息队列深度和发送阈值,通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送到所述消息队列深度对应的内部缓存中。
4.根据权利要求2或3所述的中断处理方法,其特征在于,所述中断响应单元根据所述中断消息进行中断响应包括:
所述中断响应单元根据预设缓存轮询规则,轮询所述中断响应单元的内部缓存获取所述中断消息,并根据所述中断消息进行中断响应。
5.根据权利要求2或3所述的中断处理方法,其特征在于,所述中断响应单元根据所述中断消息进行中断响应包括:
所述中断响应单元接收所述消息发送控制模块发送的中断响应触发消息;
所述中断响应单元根据所述中断响应触发消息,从所述中断响应单元的内部缓存中获取所述中断消息,并根据所述中断消息进行中断响应。
6.根据权利要求1所述的中断处理方法,其特征在于,所述中断路由模块根据中断频度和中断处理速度,将所述中断源的中断划分为第一中断组和第二中断组包括:
所述中断路由模块将所述中断源的中断中中断频度小于中断处理速度的中断划分为所述第一中断组,将所述中断源的中断中中断频度大于或等于所述中断处理速度的中断划分为所述第二中断组。
7.根据权利要求1所述的中断处理方法,其特征在于,所述中断控制器的排队选择模块按照排队轮询规则,从所述第一分组模块和所述第二分组模块中选择中断,并将选择的中断提供给所述消息发送控制模块包括:
所述第一分组模块根据所述第一中断组中各中断对应的中断响应单元,将所述第一中断组中的各中断分成不同的队列,然后按照中断的优先级将各个所述队列中当前优先级最高的中断的中断状态输出到所述中断控制器的相应状态队列中;
所述第二分组模块根据所述第二中断组中各中断对应的中断响应单元,将所述第二中断组中各中断分成不同的队列,然后按照中断的优先级将各个所述队列中当前优先级最高的中断的中断状态输出到所述中断控制器的相应计数队列中;
所述排队选择模块按照排队轮询规则轮询各个所述状态队列和所述计数队列,从所述状态队列或所述计数队列中获取中断的中断状态和中断序号并提供给所述消息发送控制模块;所述中断序号为所述状态队列或所述计数队列的序号。
8.根据权利要求7所述的中断处理方法,其特征在于,所述消息发送控制模块从中断信息表中获取预先配置的中断转消息信息包括:
所述消息发送控制模块将所述排队选择模块提供的中断序号作为地址,查询所述中断信息表,从所述中断信息表中获取所述中断转消息信息。
9.根据权利要求8所述的中断处理方法,其特征在于,
如果所述中断转消息的应用方法为通过中断转消息启动加速器,所述中断消息的透传内容为所述加速器的启动命令,所述中断消息的输出基地址为所述加速器的启动控制地址;
所述消息发送控制模块根据所述中断转消息信息,将所述中断源的中断转换为所述中断消息,并通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元包括:
所述消息发送控制模块将所述加速器的启动命令作为所述中断消息的内容生成所述中断消息,然后将所述加速器的启动控制地址作为所述中断消息的输出地址,通过与所述加速器之间的消息输出接口,将所述中断消息输出给所述加速器;
所述消息发送控制模块将所述排队选择模块提供的中断状态从所述排队选择模块提供的中断序号对应的状态队列或对应的计数队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第一中断组中指定个数的中断到处理器,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;
所述消息发送控制模块根据所述中断转消息信息,将所述中断源的中断转换为所述中断消息,并通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元包括:
当所述排队选择模块提供给所述消息发送控制模块的中断状态的个数达到所述指定个数时,所述消息发送控制模块将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的指定个数的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后将所述处理器的内部缓存的地址作为所述中断消息的输出地址,通过与所述处理器之间的消息输出接口,将所述中断消息输出给所述处理器;
所述消息发送控制模块将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除;
如果所述中断转消息的应用方法为通过中断转消息合并所述第一中断组中指定个数的中断到处理器,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;所述中断转消息信息还包括:需要合并的中断信息;
所述消息发送控制模块根据所述中断转消息信息,将所述中断源的中断转换为所述中断消息,并通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元包括:
当所述消息发送控制模块根据所述需要合并的中断信息确定从所述排队选择模块获取到全部需要合并的中断的中断状态后,所述消息发送控制模块将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的指定个数的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后将所述处理器的内部缓存的地址作为所述中断消息的输出地址,通过与所述处理器之间的消息输出接口,将所述中断消息输出给所述处理器;
所述消息发送控制模块将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除;
如果所述中断转消息的应用方法为通过中断转消息合并所述第一中断组中指定个数的中断到加速器,所述中断消息的透传内容为所述加速器的启动命令,所述中断消息的输出基地址为所述加速器的启动控制地址;所述中断转消息信息还包括:需要合并的中断信息;
所述消息发送控制模块根据所述中断转消息信息,将所述中断源的中断转换为所述中断消息,并通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元包括:
当所述消息发送控制模块根据所述需要合并的中断信息确定从所述排队选择模块获取到全部需要合并的中断的中断状态后,所述消息发送控制模块将所述加速器的启动命令作为所述中断消息的内容生成所述中断消息,然后将所述加速器的启动控制地址作为所述中断消息的输出地址,通过与所述加速器之间的消息输出接口,将所述中断消息输出给所述加速器;
所述消息发送控制模块将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第二中断组中的中断到处理器,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;
所述消息发送控制模块根据所述中断转消息信息,将所述中断源的中断转换为所述中断消息,并通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元包括:
所述消息发送控制模块将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后将所述处理器的内部缓存的地址作为所述中断消息的输出地址,通过与所述处理器之间的消息输出接口,将所述中断消息输出给所述处理器;
所述消息发送控制模块将所述排队选择模块提供的中断状态从所述排队选择模块提供的中断序号对应的计数队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第二中断组中的中断到处理器的处理队列,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;所述中断转消息信息还包括:偏移地址范围和地址偏移量;
所述消息发送控制模块根据所述中断转消息信息,将所述中断源的中断转换为所述中断消息,并通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元包括:
所述消息发送控制模块将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后在当前偏移地址达到所述偏移地址范围之前,将所述处理器的内部缓存的地址和所述当前偏移地址的和作为所述中断消息的输出地址,通过与所述处理器之间的消息输出接口,将所述中断消息输出给所述处理器,同时将当前偏移地址加上所述地址偏移量;
所述消息发送控制模块将所述排队选择模块提供的中断状态从所述排队选择模块提供的中断序号对应的计数队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第二中断组中指定个数的中断到处理器,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;所述中断转消息信息还包括:所述指定个数;
所述消息发送控制模块根据所述中断转消息信息,将所述中断源的中断转换为所述中断消息,并通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元包括:
当所述排队选择模块提供给所述消息发送控制模块的中断状态的个数达到所述指定个数时,所述消息发送控制模块将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的指定个数的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后将所述处理器的内部缓存的地址作为所述中断消息的输出地址,通过与所述处理器之间的消息输出接口,将所述中断消息输出给所述处理器;
所述消息发送控制模块将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第二中断组中指定个数的中断到加速器,所述中断消息的透传内容为所述加速器的启动命令,所述中断消息的输出基地址为所述加速器的启动控制地址;所述中断转消息信息还包括:所述指定个数;
所述消息发送控制模块根据所述中断转消息信息,将所述中断源的中断转换为所述中断消息,并通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送给所述中断响应单元包括:
当所述排队选择模块提供给所述消息发送控制模块的中断状态的个数达到所述指定个数时,所述消息发送控制模块将所述加速器的启动命令作为所述中断消息的内容生成所述中断消息,然后将所述加速器的启动控制地址作为所述中断消息的输出地址,通过与所述加速器之间的消息输出接口,将所述中断消息输出给所述加速器;
所述消息发送控制模块将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除。
10.一种中断控制器,其特征在于,包括:中断路由模块、消息发送控制模块和消息输出接口;
所述中断路由模块,与所述消息发送控制模块连接,用于将中断源的中断提供给所述消息发送控制模块;
所述消息发送控制模块,与所述消息输出接口连接,用于从中断信息表中获取预先配置的中断转消息信息,根据所述中断转消息信息,将所述中断源的中断转换为中断消息,并通过所述消息输出接口将所述中断消息发送给中断响应单元;所述中断响应单元至少包括处理器、加速器、直接内存存取DMA和调试单元其中之一,所述中断转消息信息包括中断转消息的应用方法、中断消息的输出基地址和中断消息的透传内容;
所述中断控制器,还包括:第一分组模块、第二分组模块和排队选择模块;
所述中断路由模块具体用于根据中断频度和中断处理速度,将所述中断源的中断划分为第一中断组和第二中断组,并将所述第一中断组和所述第二中断组分别输出到所述第一分组模块和所述第二分组模块;
所述排队选择模块,与所述第一分组模块、所述第二分组模块和所述消息发送控制模块连接,用于按照排队轮询规则,从所述第一分组模块和所述第二分组模块中选择中断,并将选择的中断提供给所述消息发送控制模块。
11.根据权利要求10所述的中断控制器,其特征在于,所述消息发送控制模块具体用于通过所述消息输出接口,将所述中断消息发送到所述中断响应单元的内部缓存中。
12.根据权利要求11所述的中断控制器,其特征在于,所述消息发送控制模块具体用于根据预先配置的消息队列深度和发送阈值,通过与所述中断响应单元之间的消息输出接口,将所述中断消息发送到所述消息队列深度对应的内部缓存中。
13.根据权利要求11或12所述的中断控制器,其特征在于,所述消息发送控制模块还用于通过所述消息输出接口向所述中断响应单元发送中断响应触发消息,以使所述中断响应单元根据所述中断响应触发消息从所述中断响应单元的内部缓存中获取所述中断消息并根据所述中断消息进行中断响应。
14.根据权利要求10所述的中断控制器,其特征在于,所述中断路由模块具体用于将所述中断源的中断中中断频度小于中断处理速度的中断划分为所述第一中断组,将所述中断源的中断中中断频度大于或等于所述中断处理速度的中断划分为所述第二中断组。
15.根据权利要求10所述的中断控制器,其特征在于,还包括:多个状态队列和多个计数队列;每个状态队列对应一类中断响应单元,每个计数队列对应一类中断响应单元;
所述第一分组模块具体用于根据所述第一中断组中各中断对应的中断响应单元,将所述第一中断组中的各中断分成不同的队列,然后按照中断的优先级将各所述队列中当前优先级最高的中断的中断状态输出到相应的状态队列中;
所述第二分组模块具体用于根据所述第二中断组中各中断对应的中断响应单元,将所述第二中断组中各中断分成不同的队列,然后按照中断的优先级将各个所述队列中当前优先级最高的中断的中断状态输出到相应的计数队列中;
所述排队选择模块分别通过所述状态队列和所述计数队列与所述第一分组模块和所述第二分组模块连接,具体用于按照排队轮询规则轮询各个所述状态队列和所述计数队列,从所述状态队列或所述计数队列中获取中断的中断状态和中断序号并提供给所述消息发送控制模块;所述中断序号为所述状态队列或所述计数队列的序号。
16.根据权利要求15所述的中断控制器,其特征在于,所述消息发送控制模块具体用于将所述排队选择模块提供的中断序号作为地址,查询所述中断信息表,从所述中断信息表中获取所述中断转消息信息。
17.根据权利要求16所述的中断控制器,其特征在于,
如果所述中断转消息的应用方法为通过中断转消息启动加速器,所述中断消息的透传内容为所述加速器的启动命令,所述中断消息的输出基地址为所述加速器的启动控制地址;所述消息发送控制模块具体用于将所述加速器的启动命令作为所述中断消息的内容生成所述中断消息,然后将所述加速器的启动控制地址作为所述中断消息的输出地址,通过所述消息输出接口将所述中断消息输出给所述加速器,然后将所述排队选择模块提供的中断状态从所述排队选择模块提供的中断序号对应的状态队列或对应的计数队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第一中断组中指定个数的中断到处理器,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;所述消息发送控制模块具体用于在所述排队选择模块提供给所述消息发送控制模块的中断状态的个数达到所述指定个数时,将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的指定个数的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后将所述处理器的内部缓存的地址作为所述中断消息的输出地址,通过所述消息输出接口将所述中断消息输出给所述处理器,然后将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除;
如果所述中断转消息的应用方法为通过中断转消息合并所述第一中断组中指定个数的中断到处理器,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;所述中断转消息信息还包括:需要合并的中断信息;所述消息发送控制模块具体用于在根据所述需要合并的中断信息确定从所述排队选择模块获取到全部需要合并的中断的中断状态后,将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的指定个数的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后将所述处理器的内部缓存的地址作为所述中断消息的输出地址,通过所述消息输出接口将所述中断消息输出给所述处理器,然后将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除;
如果所述中断转消息的应用方法为通过中断转消息合并所述第一中断组中指定个数的中断到加速器,所述中断消息的透传内容为所述加速器的启动命令,所述中断消息的输出基地址为所述加速器的启动控制地址;所述中断转消息信息还包括:需要合并的中断信息;所述消息发送控制模块具体用于在根据所述需要合并的中断信息确定从所述排队选择模块获取到全部需要合并的中断的中断状态后,将所述加速器的启动命令作为所述中断消息的内容生成所述中断消息,然后将所述加速器的启动控制地址作为所述中断消息的输出地址,通过所述消息输出接口将所述中断消息输出给所述加速器,然后将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第二中断组中的中断到处理器,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;所述消息发送控制模块具体用于将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后将所述处理器的内部缓存的地址作为所述中断消息的输出地址,通过所述消息输出接口将所述中断消息输出给所述处理器,然后将所述排队选择模块提供的中断状态从所述排队选择模块提供的中断序号对应的计数队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第二中断组中的中断到处理器的处理队列,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;所述中断转消息信息还包括:偏移地址范围和地址偏移量;所述消息发送控制模块具体用于将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后在当前偏移地址达到所述偏移地址范围之前,将所述处理器的内部缓存的地址和所述当前偏移地址的和作为所述中断消息的输出地址,通过所述消息输出接口将所述中断消息输出给所述处理器,同时将当前偏移地址加上所述地址偏移量,然后将所述排队选择模块提供的中断状态从所述排队选择模块提供的中断序号对应的计数队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第二中断组中指定个数的中断到处理器,所述中断消息的透传内容为所述处理器的中断服务程序的入口地址,所述中断消息的输出基地址为所述处理器缓存所述中断消息的内部缓存的地址;所述中断转消息信息还包括:所述指定个数;所述消息发送控制模块具体用于在所述排队选择模块提供给所述消息发送控制模块的中断状态的个数达到所述指定个数时,将所述处理器的中断服务程序的入口地址和所述排队选择模块提供的指定个数的中断状态和对应的中断序号作为所述中断消息的内容生成所述中断消息,然后将所述处理器的内部缓存的地址作为所述中断消息的输出地址,通过所述消息输出接口将所述中断消息输出给所述处理器,然后将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除;
如果所述中断转消息的应用方法为通过中断转消息汇总所述第二中断组中指定个数的中断到加速器,所述中断消息的透传内容为所述加速器的启动命令,所述中断消息的输出基地址为所述加速器的启动控制地址;所述中断转消息信息还包括:所述指定个数;所述消息发送控制模块具体用于在所述排队选择模块提供给所述消息发送控制模块的中断状态的个数达到所述指定个数时,将所述加速器的启动命令作为所述中断消息的内容生成所述中断消息,然后将所述加速器的启动控制地址作为所述中断消息的输出地址,通过所述消息输出接口将所述中断消息输出给所述加速器,然后将所述排队选择模块提供的指定个数的中断状态从所述排队选择模块提供的中断序号对应的状态队列中清除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210122172.7A CN102662889B (zh) | 2012-04-24 | 2012-04-24 | 中断处理方法、中断控制器及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210122172.7A CN102662889B (zh) | 2012-04-24 | 2012-04-24 | 中断处理方法、中断控制器及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102662889A CN102662889A (zh) | 2012-09-12 |
CN102662889B true CN102662889B (zh) | 2016-12-14 |
Family
ID=46772385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210122172.7A Expired - Fee Related CN102662889B (zh) | 2012-04-24 | 2012-04-24 | 中断处理方法、中断控制器及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662889B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095128B (zh) * | 2014-05-22 | 2020-04-03 | 中兴通讯股份有限公司 | 中断处理方法及中断控制器 |
CN106919462B (zh) * | 2015-12-25 | 2020-04-21 | 华为技术有限公司 | 一种生成处理器故障记录的方法及装置 |
CN109284223B (zh) * | 2017-07-21 | 2023-10-20 | 超威半导体(上海)有限公司 | 可配置的调试方法和系统 |
US10303630B2 (en) | 2017-10-08 | 2019-05-28 | Huawei Technologies Co., Ltd. | Configurable hardware accelerators |
CN108920184B (zh) * | 2018-06-05 | 2020-06-23 | 山东大学 | 基于双环形缓冲区的微处理器高性能数据通信方法 |
CN110399324A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 中断转换器及中断转换方法 |
CN111190367B (zh) * | 2019-12-31 | 2020-12-08 | 龙新恋景科技(北京)有限公司 | 柜机槽位的控制方法及装置 |
CN111639044B (zh) * | 2020-05-22 | 2022-05-03 | 中国人民解放军国防科技大学 | 一种支持中断优先级轮询仲裁派发的方法和装置 |
CN112241556B (zh) * | 2020-12-18 | 2021-04-09 | 鹏城实验室 | 控制电路的中断管理方法、装置、设备及存储介质 |
CN113918311B (zh) * | 2021-12-10 | 2022-07-01 | 北京智芯微电子科技有限公司 | 多核系统的软中断路由方法及响应软中断的方法和芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7243178B2 (en) * | 2003-05-16 | 2007-07-10 | Intel Corporation | Enable/disable claiming of a DMA request interrupt |
DE102004042170B4 (de) * | 2004-08-31 | 2009-02-19 | Advanced Micro Devices, Inc., Sunnyvale | Nachrichtenbasierte Interrupttabelle |
-
2012
- 2012-04-24 CN CN201210122172.7A patent/CN102662889B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101558396A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN102662889A (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102662889B (zh) | 中断处理方法、中断控制器及处理器 | |
CN110908788B (zh) | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 | |
US20180052789A1 (en) | Direct Memory Access Transmission Control Method and Apparatus | |
JP5793690B2 (ja) | インタフェース装置、およびメモリバスシステム | |
WO2018032737A1 (zh) | 数据处理请求的排序方法、装置、终端及存储介质 | |
WO2014173166A1 (zh) | 一种共享资源的调度方法和系统 | |
CN105022717A (zh) | 附加请求数优先级的片上网络资源仲裁方法及仲裁单元 | |
US20180248816A1 (en) | Data Processing Apparatus and Terminal | |
US10505757B2 (en) | Network interface module and a method of changing network configuration parameters within a network device | |
CN103064736A (zh) | 任务处理装置及方法 | |
CN103428108B (zh) | 数据帧处理方法和装置 | |
WO2024077881A1 (zh) | 神经网络训练的调度方法、系统及计算机可读存储介质 | |
CN103631649B (zh) | 中断处理方法、装置及中断控制器 | |
CN104009942A (zh) | 一种千兆afdx交换机及其交换方法 | |
WO2022127873A1 (zh) | 实现网络芯片高速调度的方法、设备及存储介质 | |
WO2021208682A1 (zh) | 网络设备的数据采样方法、装置、设备及介质 | |
CN112600764B (zh) | 直通转发模式的调度方法、设备及存储介质 | |
CN104657326B (zh) | 双cpu通信方法、系统和片上系统芯片 | |
CN109800074A (zh) | 任务数据并发执行方法、装置以及电子设备 | |
CN106990913B (zh) | 一种大规模流式集合数据的分布式处理方法 | |
CN116074267B (zh) | 一种数据通信系统及SoC芯片 | |
CN106788842A (zh) | 一种ptp报文的处理方法及soc | |
CN206317552U (zh) | 再生芯片 | |
CN115955441A (zh) | 一种基于tsn队列的管理调度方法、装置 | |
CN111258937B (zh) | 一种环式链表dma的传输方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161214 Termination date: 20190424 |
|
CF01 | Termination of patent right due to non-payment of annual fee |