一种支持中断优先级轮询仲裁派发的方法和装置

文档序号:1228824 发布日期:2020-09-08 浏览:25次 >En<

阅读说明:本技术 一种支持中断优先级轮询仲裁派发的方法和装置 (Method and device for supporting interrupt priority polling arbitration dispatching ) 是由 张剑锋 龚锐 石伟 刘威 周海亮 周理 冯权友 杨乾明 张英 铁俊波 任巨 王 于 2020-05-22 设计创作,主要内容包括:本发明公开了一种支持中断优先级轮询仲裁派发的方法和装置,本发明方法包括将处理器的中断分类,将每一个分类划分为至少一个分组,中断携带优先级信息;针对各个分组内的中断进行组内中断优先级轮询仲裁,如果同分类下还包含其他分组则将结果输出至组间中断优先级轮询仲裁;否则将结果输出至类间中断优先级轮询仲裁;针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁;针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁,并将最终筛选出中断发送至处理器核。本发明具有高性能、开销小、易于实现、使用灵活的优点,并且实现简单,可灵活应用到现有处理器设计中。(The invention discloses a method and a device for supporting polling arbitration dispatch of interrupt priority, wherein the method comprises the steps of classifying interrupts of a processor, dividing each class into at least one group, and carrying priority information by the interrupts; performing inter-group interrupt priority polling arbitration for interrupts in each group, and if the same class also contains other groups, outputting the result to inter-group interrupt priority polling arbitration; otherwise, outputting the result to inter-class interrupt priority polling arbitration; performing inter-group interrupt priority polling arbitration on the intra-group interrupt priority polling arbitration result of each group under each classification; and performing inter-class interrupt priority polling arbitration according to the intra-group interrupt priority polling arbitration results or inter-group interrupt priority polling arbitration results of a plurality of classes, and finally screening out the interrupt and sending the interrupt to the processor core. The invention has the advantages of high performance, low cost, easy realization and flexible use, and can be flexibly applied to the design of the existing processor.)

一种支持中断优先级轮询仲裁派发的方法和装置

技术领域

本发明涉及微处理器的微体系结构设计领域,具体涉及一种支持中断优先级轮询仲裁派发的方法和装置。

背景技术

随着流片工艺的发展,处理器核的频率一直基本上遵循着摩尔定律不断得到提高,然而工艺进一步改进能够带来性能提升的空间已然逐步缩减,存储墙(存储速率远匹配不上处理器核频率)和功耗墙(工艺提升单芯片功耗不断增加)也进一步制约了处理器的性能,公认现今已经步入后摩尔时代。与此同时,为了确保处理器核高效运转,传统查询外设请求和处理器核本身异常的方式已发展成为中断方式,该方式将处理器核主动查询转变为被动告知,即仅当中断被触发时处理器方才保存当前相关状态再调用中断服务程序,待中断服务程序执行完后通过恢复现场继续执行被中断前任务,进而极大程度地避免了对处理器核正在运行程序的影响,有效保证了处理器的性能,所以中断系统在处理器中扮演着非常重要的角色。

需要指出的是,随着处理器的发展,需要支持的中断设备数量不断增加,尤其是针对高速PCIe设备中断的支持。管理如此大规模的中断,处理器如何保证高效处理是关键,若是每个中断单独处理必然低效,分而治之是当下主流处理器采取的方式,即将中断按来源的不同进行划分管理。然而,不同设备中断的迫切程度不同,若是不能及时响应影响系统运转的中断极有可能导致系统的崩溃,例如处理器定时中断,以及实时性要求高的中断也必须尽早响应,否则将导致处理器性能受损,例如高速PCIe设备中断,而对于慢速外设中断实时性要求不高的特点,在同时有其它中断存在的条件下可以延迟响应。

因此,处理器如何结合中断迫切性和实时性要求的不同保证中断高效处理是研究人员一直非常关注的问题。

发明内容

本发明要解决的技术问题:针对处理器如何按中断迫切性和实时性要求的不同高效进行中断响应的问题,提供一种支持中断优先级轮询仲裁派发的方法和装置,本发明具有高性能、开销小、易于实现、使用灵活的优点,并且实现简单,可灵活应用到现有处理器设计中。

为了解决上述技术问题,本发明采用的技术方案为:

一种支持中断优先级轮询仲裁派发的方法,实施步骤包括:

依据处理器中断源的不同,将处理器的中断分类,且将每一个分类划分为至少一个分组,且每一个中断携带有对应的优先级信息;

针对各个分组内的中断进行组内中断优先级轮询仲裁,如果同分类下还包含其他分组则将结果输出至组间中断优先级轮询仲裁;否则将结果输出至类间中断优先级轮询仲裁;

针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁;

针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁,并将最终筛选出中断发送至处理器核。

可选地,所述将处理器的中断分类时得到的分类包括处理器核私有中断、PCIe设备中断、软件中断、外设中断。

可选地,所述将每一个分类划分为至少一个分组时,其中私有中断为一组、软件中断为一组,数量N个外设中断和数量M 个PCIe设备中断均按中断号每相邻n个中断划分为一组,每个组内按中断号从小到大进行排序,其中M、N、n均为自然数,且n可被N和M整除。

可选地,所述将处理器的中断分类时还包括对处理器的中断进行编号的步骤,且不同分类按处理器核私有中断、PCIe设备中断、软件中断、外设中断的顺序进行中断号由低至高排序,同一中断类型内不同中断的中断号按顺序编排;将每一个分类划分为至少一个分组时,私有中断和软件中断均单独为一个组,其中组内按中断号从小到大进行排列,外设中断和PCIe设备中断都按中断号从小到大顺序进行分组,每个组的中断数量为外设中断和PCIe设备中断支持中断数量的公约数,不同组之间按所包含中断的最大中断号由低至高进行组号由低至高排序,每一个中断携带有对应的优先级信息中为优先级数值越低优先级越高。

可选地,所述针对各个分组内的中断进行组内中断优先级轮询仲裁的步骤包括:

2.1)在初始化时,组内优先级轮询仲裁直接派发有效的最低中断号中断,且在发出第一个有效中断后,跳转执行下一步;

2.2)将上一次发出的中断号位置到组内最高中断号中断再从组内最低号中断回绕至仅次于上一次发出的中断号位置作为轮询的起点进行轮询,且轮询结束的标志是只需查找到一个有效的组内中断或组内除上次发起的有效中断外不存在其它有效组内中断请求;

2.3)若轮询查找的组内有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的组内中断请求;若上次发起的有效中断处于完成状态,则继续发出该组内有效中断请求;若轮询筛选的有效中断非上次发起的组内有效中断,依据轮询得到的中断号访存获取对应的中断优先级,再与上一次发出的中断优先级进行对比,默认优先级数值越低优先级越高,若轮询得到的中断优先级高于上一次发出的中断优先级,则该中断组发出新的中断请求,本次轮询完成;否则本次不再发出新的组内中断请求;

2.4)跳转执行步骤2.2)以伺机发出新的组内中断请求。

可选地,所述针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁的详细步骤包括:

3.1)在初始化时,同一类型中断不同组间优先级轮询仲裁直接派发有效的最低组号中断;在同一类型发出第一个有效中断后,跳转执行下一步;

3.2)以上一次发出的中断所在组号位置到组间最高组号再从组间最低组号回绕至仅次于上一次发出的中断组号位置作为轮询的起点进行组间轮询,,轮询结束的标志是只需筛选出一个有效的中断组或组间除上次发起的有效中断组外不存在其它有效组间中断请求且上次有效中断组没有再次发起组内中断;

3.3)若轮询查找的组间有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的组间中断请求,但是要是上次发起的有效中断处于完成状态,则继续发出该有效组间中断请求;若轮询筛选的有效中断非上次发起的组间有效中断,依据轮询得到的组间中断号访存查询对应的中断优先级,再与同一类型上一次发出的组间中断优先级进行对比,若轮询得到的组中断优先级数值低于同一类型上一次发出的组间中断优先级数值,则该类型中断发出新的组中断,本次轮询完成;否则本次不再发出新的组中断请求;

3.4)跳转执行步骤3.2)以伺机发出新的组间中断请求。

可选地,所述针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁的步骤包括:

4.1)在初始化时,中断系统按私有中断、PCIe设备中断、软件中断和外设中断的顺序进行类序号划分,其中私有中断类型序号为0,其它类型中断的类型序号依次递增,中断不同类型间优先级轮询仲裁直接派发有效的最低类型号中断,在中断系统发出第一个有效中断后跳转执行下一步;

4.2)将上一次发出的中断所在中断类型号到最高中断类型号再从最低中断类型号回绕至仅次于上一次发出的中断类型号位置作为轮询的起点进行中断类型轮询,轮询结束的标志是只要筛选出一个有效的中断类型或不同中断类型间除上次发起的有效中断类型外不存在其它有效类型中断请求且上次有效中断类型没有再次发起新的中断请求;

4.3)若轮询查找的类间有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的类间中断请求,但是若上次发起的有效中断处于完成状态,则继续发出该有效类间中断请求;若轮询筛选的有效中断非上次发起的类间有效中断,依据轮询得到的类型中断号访存查询对应的中断优先级,再与中断系统上一次发出的类型中断优先级进行对比,若轮询得到的类型中断优先级高于中断系统上一次发出的类型中断优先级,则中断系统发出新的类型中断,否则本次不再发出新的中断请求;

4.4)跳转执行步骤4.2)以伺机发出新的类间中断请求。

此外,本发明还提供一种支持中断优先级轮询仲裁派发的装置,包括:

中断类组划分单元,用于依据处理器中断源的不同,将处理器的中断分类,且将每一个分类划分为至少一个分组,且每一个中断携带有对应的优先级信息;

组内中断优先级轮询仲裁单元,用于针对各个分组内的中断进行组内中断优先级轮询仲裁,如果同分类下还包含其他分组则将结果输出至组间中断优先级轮询仲裁单元;否则将结果输出至类间中断优先级轮询仲裁单元;

组间中断优先级轮询仲裁单元,用于针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁;

类间中断优先级轮询仲裁单元,用于针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁,并将最终筛选出中断发送至处理器核。

此外,本发明还提供一种支持中断优先级轮询仲裁派发的装置,该装置至少包括微处理器和存储器,该微处理器被编程或配置以执行所述支持中断优先级轮询仲裁派发的方法的步骤,或者该存储器中存储有被编程或配置以执行所述支持中断优先级轮询仲裁派发的方法的计算机程序。

此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述支持中断优先级轮询仲裁派发的方法的计算机程序。

和现有技术相比,本发明具有下述优点:

1.高性能。由于本发明支持处理器依据中断迫切性和实时性要求的差异对不同中断设定不同的中断优先级,从而有效保证了处理器高性能运转。

2. 实现代价小。本发明只需将中断系统按中断类型分类后进一步按组进行划分,增加组内中断优先级轮训仲裁单元、中断组间轮训仲裁单元和中断类型轮训仲裁单元就可以在现有的处理器设计中实现本发明的方法,因此实现代价小,实现简单,可应用到现有处理器设计中。

3. 使用灵活。本发明所提的支持中断优先级轮询仲裁派发的方法不受中断数量或中断类型的影响,也就是说在当下任何处理器或今后处理器发展,本方法都可以灵活适配。

附图说明

图1为本发明实施例方法的基本流程示意图。

图2为本发明实施例方法将步骤1)展开的流程示意图。

图3为本发明实施例装置的框架结构示意图。

图4为本发明实施例处理器发起中断请求优先级轮询仲裁流程示意图。

图5为本发明实施例组内中断请求优先级轮询仲裁流程示意图。

图6为本发明实施例组间中断请求优先级轮询仲裁流程示意图。

图7为本发明实施例类间中断请求优先级轮询仲裁流程示意图。

图例说明:1、组内中断优先级轮训仲裁单元;2、组间中断优先级轮训仲裁单元;3、类间中断优先级轮训仲裁单元;4、处理器中断优先级控制单元;5、处理器核;6、处理器核簇。

具体实施方式

如图1所示,本实施例支持中断优先级轮询仲裁派发的方法的实施步骤包括:

依据处理器中断源的不同,将处理器的中断分类,且将每一个分类划分为至少一个分组,且每一个中断携带有对应的优先级信息,记为步骤1);

针对各个分组内的中断进行组内中断优先级轮询仲裁,如果同分类下还包含其他分组则将结果输出至组间中断优先级轮询仲裁;否则将结果输出至类间中断优先级轮询仲裁,记为步骤2);

针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁,记为步骤3);

针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁,并将最终筛选出中断发送至处理器核,记为步骤4)。

需要说的是,步骤2)~步骤4)本质上是类似流水线的关系,他们之间存在数据上的依赖关系,但是步骤2)~步骤4)也都是同步进行的。

本实施例中,将处理器的中断分类时得到的分类包括处理器核私有中断、PCIe设备中断、软件中断、外设中断。需要说明的是,本实施例支持中断优先级轮询仲裁派发的方法支持处理器核私有中断、PCIe设备中断、软件中断和外设中断,若处理器缺省某类型中断时(即不支持某类型中断),只需保持该类型中断处于无效状态,对本实施例方法没有影响。

本实施例中,将每一个分类划分为至少一个分组时,其中私有中断为一组、软件中断为一组,数量N个外设中断和数量M 个PCIe设备中断均按中断号每相邻n个中断划分为一组,每个组内按中断号从小到大进行排序,其中M、N、n均为自然数,且n可被N和M整除。

本实施例中,所述将处理器的中断分类时还包括对处理器的中断进行编号的步骤,且不同分类按处理器核私有中断、PCIe设备中断、软件中断、外设中断的顺序进行中断号由低至高排序,同一中断类型内不同中断的中断号按顺序编排;将每一个分类划分为至少一个分组时,私有中断和软件中断均单独为一个组,其中组内按中断号从小到大进行排列,外设中断和PCIe设备中断都按中断号从小到大顺序进行分组,每个组的中断数量为外设中断和PCIe设备中断支持中断数量的公约数,不同组之间按所包含中断的最大中断号由低至高进行组号由低至高排序,每一个中断携带有对应的优先级信息中为优先级数值越低优先级越高。

作为一种可选的实施方式,本实施例中前述步骤1)的详细步骤包括:

1.1)处理器依据中断发起设备的不同,将处理器因自身指令执行等原因发起的中断划分为处理器核私有中断,软件发起处理器核之间通信的中断归类为软件中断,高速PCIe设备中断单独划分为PCIe设备中断,除PCIe设备外的外设中断均归类至外设中断;

1.2)对处理器所有中断进行编号管理,不同中断类型按处理器核私有中断、软件中断、外设中断和PCIe设备中断顺序进行中断号由低至高排序,同一中断类型内不同中断的中断号按顺序编排;

1.3)针对处理器所有类型中断,依据迫切性和实时性要求的不同分别设定不同的中断优先级,默认优先级数值越低优先级越高;

1.4)依据中断类型的划分,对归属于每个中断类型的中断进一步进行分组划分,其中针对处理器核私有中断和软件中断两个类型的中断数量均不多的特点,将处理器核私有中断和软件中断分别只划分一个组,其中组内中断按中断号从小到大进行排列,同时外设中断和PCIe设备中断都按中断号从小到大顺序进行分组,每个组的中断数量为外设中断和PCIe设备中所支持中断数量的公约数,不同组之间按所包含中断的最大中断号由低至高进行组号由低至高排序。

在执行完步骤1)之后,就需要:通过步骤2)对中断组内中断按中断号从小到大顺序进行组内中断优先级轮询仲裁;通过步骤3)对同一中断类型不同中断组之间依据组号由低至高顺序进行组间中断优先级轮询仲裁;通过步骤4)对不同中断类型按处理器核私有中断、PCIe设备中断、软件中断和外设中断的顺序进行类型中断优先级轮询仲裁,在单一时刻发出一个有效中断给处理器核。

本实施例中,针对各个分组内的中断进行组内中断优先级轮询仲裁的步骤包括:

2.1)在初始化时,组内优先级轮询仲裁直接派发有效的最低中断号中断,且在发出第一个有效中断后,跳转执行下一步;在系统初始化时,组内优先级轮询仲裁直接派发有效的最低中断号中断,也就意味着并不对组内所有有效中断进行优先级判断,原因在于避免频繁访存导致难以接受的时间开销;

2.2)将上一次发出的中断号位置到组内最高中断号中断再从组内最低号中断回绕至仅次于上一次发出的中断号位置作为轮询的起点进行轮询,且轮询结束的标志是只需查找到一个有效的组内中断或组内除上次发起的有效中断外不存在其它有效组内中断请求;

2.3)若轮询查找的组内有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的组内中断请求;若上次发起的有效中断处于完成状态,则继续发出该组内有效中断请求;若轮询筛选的有效中断非上次发起的组内有效中断,依据轮询得到的中断号访存获取对应的中断优先级,再与上一次发出的中断优先级进行对比,默认优先级数值越低优先级越高,若轮询得到的中断优先级高于上一次发出的中断优先级,则该中断组发出新的中断请求,本次轮询完成;否则本次不再发出新的组内中断请求;

2.4)跳转执行步骤2.2)以伺机发出新的组内中断请求。

本实施例中,所述针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁的详细步骤包括:

3.1)在初始化时,同一类型中断不同组间优先级轮询仲裁直接派发有效的最低组号中断;在同一类型发出第一个有效中断后,跳转执行下一步;在系统初始化时,同一中断类型不同中断组间优先级轮询仲裁直接派发有效的最低组号的组内中断,也就意味着并不对所有中断组的有效中断进行优先级判断,原因同样是为了避免频繁访存导致难以接受的时间开销;

3.2)以上一次发出的中断所在组号位置到组间最高组号再从组间最低组号回绕至仅次于上一次发出的中断组号位置作为轮询的起点进行组间轮询,,轮询结束的标志是只需筛选出一个有效的中断组或组间除上次发起的有效中断组外不存在其它有效组间中断请求且上次有效中断组没有再次发起组内中断;

3.3)若轮询查找的组间有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的组间中断请求,但是要是上次发起的有效中断处于完成状态,则继续发出该有效组间中断请求;若轮询筛选的有效中断非上次发起的组间有效中断,依据轮询得到的组间中断号访存查询对应的中断优先级,再与同一类型上一次发出的组间中断优先级进行对比,若轮询得到的组中断优先级数值低于同一类型上一次发出的组间中断优先级数值,则该类型中断发出新的组中断,本次轮询完成;否则本次不再发出新的组中断请求;

3.4)跳转执行步骤3.2)以伺机发出新的组间中断请求。

本实施例中,所述针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁的步骤包括:

4.1)在初始化时,中断系统按私有中断、PCIe设备中断、软件中断和外设中断的顺序进行类序号划分,其中私有中断类型序号为0,其它类型中断的类型序号依次递增,中断不同类型间优先级轮询仲裁直接派发有效的最低类型号中断,在中断系统发出第一个有效中断后跳转执行下一步;在系统初始化时,中断系统按私有中断、PCIe设备中断、软件中断和外设中断的顺序进行中断类型序号划分,其中私有中断类型序号为0,其它类型中断的类型序号依次递增,中断不同类型间优先级轮询仲裁直接派发有效的最低类型号中断,也就意味着并不对所有类型的有效中断进行中断优先级判断,其目的同样是为了避免频繁访存导致难以接受的时间开销;

4.2)将上一次发出的中断所在中断类型号到最高中断类型号再从最低中断类型号回绕至仅次于上一次发出的中断类型号位置作为轮询的起点进行中断类型轮询,轮询结束的标志是只要筛选出一个有效的中断类型或不同中断类型间除上次发起的有效中断类型外不存在其它有效类型中断请求且上次有效中断类型没有再次发起新的中断请求;

4.3)若轮询查找的类间有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的类间中断请求,但是若上次发起的有效中断处于完成状态,则继续发出该有效类间中断请求;若轮询筛选的有效中断非上次发起的类间有效中断,依据轮询得到的类型中断号访存查询对应的中断优先级,再与中断系统上一次发出的类型中断优先级进行对比,若轮询得到的类型中断优先级高于中断系统上一次发出的类型中断优先级,则中断系统发出新的类型中断,否则本次不再发出新的中断请求;

4.4)跳转执行步骤4.2)以伺机发出新的类间中断请求。

综上所述,本实施例支持中断优先级轮询仲裁派发的方法首先将处理器所有中断按类划分为处理器核私有中断、软件中断、外设中断和PCIe设备中断,其次再对中断进行分组划分,其中私有中断为一组、软件中断为一组,外设中断(数量N)和PCIe设备中断(数量M)均按中断号每相邻n个(n可被N和M整除)中断划分为一组,每个组内按中断号从小到大进行排序。本实施例支持中断优先级轮询仲裁发热技术路线可以分为三大部分:1、对不同中断类型的每个中断组进行组内中断优先级轮询仲裁。2、对不同中断类型的各个中断组进行组间中断优先级轮询仲裁。3、对不同中断类型的中断进行类间中断优先级轮询仲裁。通过对各个中断类中组内中断按中断号从小到大顺序进行中断优先级轮询仲裁,再次对外设中断和PCIe设备中断按组进行中断优先级轮询仲裁,最后按私有中断、PCIe设备中断、软件中断和外设中断的类型顺序进行中断优先级轮询仲裁,本实施例方法具有高性能、开销小、易于实现、使用灵活的优点,并且实现简单,可灵活应用到现有处理器设计中。

如图3所示,本实施例还提供一种支持中断优先级轮询仲裁派发的装置,包括:

中断类组划分单元,用于依据处理器中断源的不同,将处理器的中断分类,且将每一个分类划分为至少一个分组,且每一个中断携带有对应的优先级信息;

组内中断优先级轮询仲裁单元1,用于针对各个分组内的中断进行组内中断优先级轮询仲裁,如果同分类下还包含其他分组则将结果输出至组间中断优先级轮询仲裁单元;否则将结果输出至类间中断优先级轮询仲裁单元;

组间中断优先级轮询仲裁单元2,用于针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁;

类间中断优先级轮询仲裁单元3,用于针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁,并将最终筛选出中断发送至处理器核。其中,中断类组划分单元集成在处理器中断优先级控制单元4中,类间中断优先级轮询仲裁单元3用于把最终得到的仲裁中断结果输出给处理器核簇5中的处理器核6。

如图4所示,以图3所示装置为例,处理器中断请求优先级轮询仲裁流程的步骤如下:

步骤A1. 处理器核私有中断通过组内中断优先级轮询仲裁单元1筛选出有效组内私有中断;

步骤A2. 处理器PCIe设备中断通过组内中断优先级轮询仲裁单元1筛选出组内有效PCIe设备中断;

步骤A3. 步骤A2筛选出的组内PCIe设备中断通过组间中断优先级轮询仲裁单元2筛选出有效组间PCIe设备中断;

步骤A4. 处理器核软件中断通过组内中断优先级轮询仲裁单元1筛选出有效组内软件中断;

步骤A5. 处理器外设中断通过组内中断优先级轮询仲裁单元1筛选出组内有效外设中断;

步骤A6. 步骤A5筛选出的组内外设设备中断通过组间中断优先级轮询仲裁单元2筛选出有效组间外设中断;

步骤A7. 步骤A1、A3、A4以及步骤A6分别筛选出的有效组内处理器核私有中断、组间PCIe设备中断、组内软件中断以及组间外设中断通过类间中断优先级轮询仲裁单元3筛选出有效类间中断;

步骤A8. 将步骤A7有效类间中断发送至处理器核。

如图5所示,处理器组内中断请求优先级轮询仲裁流程的实施步骤如下:

步骤B1. 接收各类型中断请求(处理器核私有中断、PCIe设备中断、软件中断、外设中断),判断是否处于系统初始化阶段;

步骤B2. 若步骤B1判断为系统初始化阶段,那么直接查找组内有效最低中断号的中断;

步骤B3. 若步骤B1判断为非系统初始化阶段,将对组内中断进行轮询,轮询的起点是上一次发出的中断号位置到组内最高中断号中断再从组内最低号中断回绕至中断号仅次于上一次发出中断的中断号位置,轮询结束的标志是只需查找到一个有效的中断(非已发出且未处理完成的中断),若组内除已发出且未处理完成的有效中断外不存在其它有效中断请求或不存在任何有效中断将继续维持步骤B3;

步骤B4. 判断上次发出的中断请求是否处理完成;

步骤B5. 若步骤B4结论为上次发出的中断请求未处理完成,那么将依据步骤B3轮询得到的中断号访存获取对应的中断优先级,再与上一次发出未完成中断的中断优先级进行对比,若新的有效中断的优先级低于上次发出的未完成中断,那么将回退至步骤B3;

步骤B6. 同时接收来自步骤B2发出的初始化状态下组内有效中断最低中断号、步骤B4发出的在上次发出的中断请求已处理完成条件下的新的轮询组内有效中断请求以及步骤B5发出的中断优先级高于上一次发出且未完成中断的优先级的中断请求,并将它们派发至组间中断优先级轮询仲裁单元2。

如图6所示,处理器组间中断请求优先级轮询仲裁流程的实施步骤如下:

步骤C1. 接收来自PCIe设备或外设组内中断请求,判断是否处于系统初始化阶段;

步骤C2. 若步骤C1判断为系统初始化阶段,那么直接查找组间有效的最低组号中断,即存在有效中断的最低组号;

步骤C3. 若步骤C1判断为非系统初始化阶段,将对组间中断进行轮询,轮询的起点是上一次发出的中断所在组号到组间最高组号中断组再从组间最低组号中断组回绕至组号仅次于上一次发出中断的中断组号位置,轮询结束的标志是只需查找到一个存在有效中断的中断组(非上一次发出中断所在中断组或为已发出中断的中断组,但该组有效中断非处于未完成状态的中断),若不存在有效中断的中断组将继续维持步骤C3;

步骤C4. 判断组间上次发出的中断请求是否处理完成;

步骤C5. 若步骤C4结论为上次发出的组间中断请求未处理完成,那么将依据步骤C3轮询得到的组间中断请求的中断号访存获取对应的中断优先级,再与组间上一次发出未完成中断的中断优先级进行对比,若新的有效组间中断的优先级低于上次发出的未完成组间中断请求,那么将回退至步骤C3;

步骤C6. 同时接收来自步骤C2发出的初始化状态下组间有效中断最低组号、步骤C4发出的在上次组间发出的中断请求已处理完成条件下的新的轮询组间有效中断请求以及步骤C5发出的中断优先级高于上一次发出且未完成中断的优先级的组间中断请求,并将它们发送至类间中断优先级轮询仲裁单元3。

如图7所示,处理器类间中断请求优先级轮询仲裁流程的实施步骤如下:

步骤D1. 接收来自处理器核组内私有中断请求、PCIe设备组间中断请求、软件组内中断请求以及外设组间中断请求,判断是否处于系统初始化阶段;

步骤D2. 若步骤D1判断为系统初始化阶段,那么直接查找类间有效的最低类号中断;

步骤D3. 若步骤D1判断为非系统初始化阶段,将对类间中断进行轮询,轮询的起点是上一次发出的中断所在类号到类间最高类号中断类再从类间最低类号中断类回绕至类号仅次于上一次发出中断的中断类号位置,轮询结束的标志是只需查找到一个存在有效中断的中断类(非上一次发出的中断类或为已发出中断类,但该类有效中断非处于未完成状态的中断),若不存在有效中断类将继续维持步骤D3;

步骤D4. 判断类间上次发出的中断请求是否处理完成;

步骤D5. 若步骤D4结论为上次发出的类间中断请求未处理完成,那么将依据步骤D3轮询得到的类间中断请求的中断号访存获取对应的中断优先级,再与类间上一次发出未完成中断的中断优先级进行对比,若新的有效类间中断的优先级低于上次发出的未完成类间中断请求,那么将回退至步骤D3;

步骤D6. 同时接收来自步骤D2发出的初始化状态下类间最低类号有效中断请求、步骤D4发出的在上次类间发出的中断请求已处理完成条件下的新的轮询类间有效中断请求以及步骤D5发出的中断优先级高于上一次发出且未完成中断的优先级的类间中断请求,并将它们发送至处理器核簇5中的处理器核6。

此外,本实施例还提供一种支持中断优先级轮询仲裁派发的装置,该装置至少包括微处理器和存储器,该微处理器被编程或配置以执行本实施例前述支持中断优先级轮询仲裁派发的方法的步骤,或者该存储器中存储有被编程或配置以执行本实施例前述支持中断优先级轮询仲裁派发的方法的计算机程序。

此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行本实施例前述支持中断优先级轮询仲裁派发的方法的计算机程序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据处理方法、装置、介质和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!