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

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

Info

Publication number
CN111639044B
CN111639044B CN202010441093.7A CN202010441093A CN111639044B CN 111639044 B CN111639044 B CN 111639044B CN 202010441093 A CN202010441093 A CN 202010441093A CN 111639044 B CN111639044 B CN 111639044B
Authority
CN
China
Prior art keywords
interrupt
group
polling
priority
effective
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.)
Active
Application number
CN202010441093.7A
Other languages
English (en)
Other versions
CN111639044A (zh
Inventor
张剑锋
龚锐
石伟
刘威
周海亮
周理
冯权友
杨乾明
张英
铁俊波
任巨
王蕾
周宏伟
王永文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202010441093.7A priority Critical patent/CN111639044B/zh
Publication of CN111639044A publication Critical patent/CN111639044A/zh
Application granted granted Critical
Publication of CN111639044B publication Critical patent/CN111639044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种支持中断优先级轮询仲裁派发的方法和装置,本发明方法包括将处理器的中断分类,将每一个分类划分为至少一个分组,中断携带优先级信息;针对各个分组内的中断进行组内中断优先级轮询仲裁,如果同分类下还包含其他分组则将结果输出至组间中断优先级轮询仲裁;否则将结果输出至类间中断优先级轮询仲裁;针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁;针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁,并将最终筛选出中断发送至处理器核。本发明具有高性能、开销小、易于实现、使用灵活的优点,并且实现简单,可灵活应用到现有处理器设计中。

Description

一种支持中断优先级轮询仲裁派发的方法和装置
技术领域
本发明涉及微处理器的微体系结构设计领域,具体涉及一种支持中断优先级轮询仲裁派发的方法和装置。
背景技术
随着流片工艺的发展,处理器核的频率一直基本上遵循着摩尔定律不断得到提高,然而工艺进一步改进能够带来性能提升的空间已然逐步缩减,存储墙(存储速率远匹配不上处理器核频率)和功耗墙(工艺提升单芯片功耗不断增加)也进一步制约了处理器的性能,公认现今已经步入后摩尔时代。与此同时,为了确保处理器核高效运转,传统查询外设请求和处理器核本身异常的方式已发展成为中断方式,该方式将处理器核主动查询转变为被动告知,即仅当中断被触发时处理器方才保存当前相关状态再调用中断服务程序,待中断服务程序执行完后通过恢复现场继续执行被中断前任务,进而极大程度地避免了对处理器核正在运行程序的影响,有效保证了处理器的性能,所以中断系统在处理器中扮演着非常重要的角色。
需要指出的是,随着处理器的发展,需要支持的中断设备数量不断增加,尤其是针对高速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、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种支持中断优先级轮询仲裁派发的方法,其特征在于实施步骤包括:
依据处理器中断源的不同,将处理器的中断分类,且将每一个分类划分为至少一个分组,且每一个中断携带有对应的优先级信息;
针对各个分组内的中断进行组内中断优先级轮询仲裁,如果同分类下还包含其他分组则将结果输出至组间中断优先级轮询仲裁;否则将结果输出至类间中断优先级轮询仲裁;
针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁;
针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁,并将最终筛选出中断发送至处理器核;
所述针对各个分组内的中断进行组内中断优先级轮询仲裁的步骤包括:
2.1)在初始化时,组内优先级轮询仲裁直接派发有效的最低中断号中断,且在发出第一个有效中断后,跳转执行下一步;
2.2)将上一次发出的中断号位置到组内最高中断号中断再从组内最低号中断回绕至仅次于上一次发出的中断号位置作为轮询的起点进行轮询,且轮询结束的标志是只需查找到一个有效的组内中断或组内除上次发起的有效中断外不存在其它有效组内中断请求;
2.3)若轮询查找的组内有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的组内中断请求;若上次发起的有效中断处于完成状态,则继续发出该组内有效中断请求;若轮询筛选的有效中断非上次发起的组内有效中断,依据轮询得到的中断号访存获取对应的中断优先级,再与上一次发出的中断优先级进行对比,默认优先级数值越低优先级越高,若轮询得到的中断优先级高于上一次发出的中断优先级,则该中断组发出新的中断请求,本次轮询完成;否则本次不再发出新的组内中断请求;
2.4)跳转执行步骤2.2)以伺机发出新的组内中断请求。
2.根据权利要求1所述的支持中断优先级轮询仲裁派发的方法,其特征在于,所述将处理器的中断分类时得到的分类包括处理器核私有中断、PCIe设备中断、软件中断、外设中断。
3.根据权利要求2所述的支持中断优先级轮询仲裁派发的方法,其特征在于,所述将每一个分类划分为至少一个分组时,其中私有中断为一组、软件中断为一组,数量N个外设中断和数量M个PCIe设备中断均按中断号每相邻n个中断划分为一组,每个组内按中断号从小到大进行排序,其中M、N、n均为自然数,且n可被N和M整除。
4.根据权利要求3所述的支持中断优先级轮询仲裁派发的方法,其特征在于,所述将处理器的中断分类时还包括对处理器的中断进行编号的步骤,且不同分类按处理器核私有中断、PCIe设备中断、软件中断、外设中断的顺序进行中断号由低至高排序,同一中断类型内不同中断的中断号按顺序编排;将每一个分类划分为至少一个分组时,私有中断和软件中断均单独为一个组,其中组内按中断号从小到大进行排列,外设中断和PCIe设备中断都按中断号从小到大顺序进行分组,每个组的中断数量为外设中断和PCIe设备中断支持中断数量的公约数,不同组之间按所包含中断的最大中断号由低至高进行组号由低至高排序,每一个中断携带有对应的优先级信息中为优先级数值越低优先级越高。
5.根据权利要求4所述的支持中断优先级轮询仲裁派发的方法,其特征在于,所述针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁的详细步骤包括:
3.1)在初始化时,同一类型中断不同组间优先级轮询仲裁直接派发有效的最低组号中断;在同一类型发出第一个有效中断后,跳转执行下一步;
3.2)以上一次发出的中断所在组号位置到组间最高组号再从组间最低组号回绕至仅次于上一次发出的中断组号位置作为轮询的起点进行组间轮询,轮询结束的标志是只需筛选出一个有效的中断组或组间除上次发起的有效中断组外不存在其它有效组间中断请求且上次有效中断组没有再次发起组内中断;
3.3)若轮询查找的组间有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的组间中断请求,但是要是上次发起的有效中断处于完成状态,则继续发出该有效组间中断请求;若轮询筛选的有效中断非上次发起的组间有效中断,依据轮询得到的组间中断号访存查询对应的中断优先级,再与同一类型上一次发出的组间中断优先级进行对比,若轮询得到的组中断优先级数值低于同一类型上一次发出的组间中断优先级数值,则该类型中断发出新的组中断,本次轮询完成;否则本次不再发出新的组中断请求;
3.4)跳转执行步骤3.2)以伺机发出新的组间中断请求。
6.根据权利要求4所述的支持中断优先级轮询仲裁派发的方法,其特征在于,所述针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁的步骤包括:
4.1)在初始化时,中断系统按私有中断、PCIe设备中断、软件中断和外设中断的顺序进行类序号划分,其中私有中断类型序号为0,其它类型中断的类型序号依次递增,中断不同类型间优先级轮询仲裁直接派发有效的最低类型号中断,在中断系统发出第一个有效中断后跳转执行下一步;
4.2)将上一次发出的中断所在中断类型号到最高中断类型号再从最低中断类型号回绕至仅次于上一次发出的中断类型号位置作为轮询的起点进行中断类型轮询,轮询结束的标志是只要筛选出一个有效的中断类型或不同中断类型间除上次发起的有效中断类型外不存在其它有效类型中断请求且上次有效中断类型没有再次发起新的中断请求;
4.3)若轮询查找的类间有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的类间中断请求,但是若上次发起的有效中断处于完成状态,则继续发出该有效类间中断请求;若轮询筛选的有效中断非上次发起的类间有效中断,依据轮询得到的类型中断号访存查询对应的中断优先级,再与中断系统上一次发出的类型中断优先级进行对比,若轮询得到的类型中断优先级高于中断系统上一次发出的类型中断优先级,则中断系统发出新的类型中断,否则本次不再发出新的中断请求;
4.4)跳转执行步骤4.2)以伺机发出新的类间中断请求。
7.一种支持中断优先级轮询仲裁派发的装置,其特征在于包括:
中断类组划分单元,用于依据处理器中断源的不同,将处理器的中断分类,且将每一个分类划分为至少一个分组,且每一个中断携带有对应的优先级信息;
组内中断优先级轮询仲裁单元,用于针对各个分组内的中断进行组内中断优先级轮询仲裁,如果同分类下还包含其他分组则将结果输出至组间中断优先级轮询仲裁单元;否则将结果输出至类间中断优先级轮询仲裁单元;
组间中断优先级轮询仲裁单元,用于针对各个分类下各分组的组内中断优先级轮询仲裁结果进行组间中断优先级轮询仲裁;
类间中断优先级轮询仲裁单元,用于针对多个分类的组内中断优先级轮询仲裁结果或组间中断优先级轮询仲裁结果进行类间中断优先级轮询仲裁,并将最终筛选出中断发送至处理器核;
所述组内中断优先级轮询仲裁单元针对各个分组内的中断进行组内中断优先级轮询仲裁的步骤包括:
2.1)在初始化时,组内优先级轮询仲裁直接派发有效的最低中断号中断,且在发出第一个有效中断后,跳转执行下一步;
2.2)将上一次发出的中断号位置到组内最高中断号中断再从组内最低号中断回绕至仅次于上一次发出的中断号位置作为轮询的起点进行轮询,且轮询结束的标志是只需查找到一个有效的组内中断或组内除上次发起的有效中断外不存在其它有效组内中断请求;
2.3)若轮询查找的组内有效中断为上次发起的有效中断且处于未完成状态,则本次不发出新的组内中断请求;若上次发起的有效中断处于完成状态,则继续发出该组内有效中断请求;若轮询筛选的有效中断非上次发起的组内有效中断,依据轮询得到的中断号访存获取对应的中断优先级,再与上一次发出的中断优先级进行对比,默认优先级数值越低优先级越高,若轮询得到的中断优先级高于上一次发出的中断优先级,则该中断组发出新的中断请求,本次轮询完成;否则本次不再发出新的组内中断请求;
2.4)跳转执行步骤2.2)以伺机发出新的组内中断请求。
8.一种支持中断优先级轮询仲裁派发的装置,该装置至少包括微处理器和存储器,其特征在于,该微处理器被编程或配置以执行权利要求1~6中任意一项所述支持中断优先级轮询仲裁派发的方法的步骤,或者该存储器中存储有被编程或配置以执行权利要求1~6中任意一项所述支持中断优先级轮询仲裁派发的方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~6中任意一项所述支持中断优先级轮询仲裁派发的方法的计算机程序。
CN202010441093.7A 2020-05-22 2020-05-22 一种支持中断优先级轮询仲裁派发的方法和装置 Active CN111639044B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010441093.7A CN111639044B (zh) 2020-05-22 2020-05-22 一种支持中断优先级轮询仲裁派发的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010441093.7A CN111639044B (zh) 2020-05-22 2020-05-22 一种支持中断优先级轮询仲裁派发的方法和装置

Publications (2)

Publication Number Publication Date
CN111639044A CN111639044A (zh) 2020-09-08
CN111639044B true CN111639044B (zh) 2022-05-03

Family

ID=72329030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010441093.7A Active CN111639044B (zh) 2020-05-22 2020-05-22 一种支持中断优先级轮询仲裁派发的方法和装置

Country Status (1)

Country Link
CN (1) CN111639044B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968866B (zh) * 2022-08-01 2022-11-01 中科声龙科技发展(北京)有限公司 优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片
CN116401188B (zh) * 2023-03-30 2024-04-12 昆易电子科技(上海)有限公司 基于fpga的处理方法、电路以及电子设备
CN116185915B (zh) * 2023-04-21 2023-08-04 山东云海国创云计算装备产业创新中心有限公司 总线调度方法、装置及设备、介质和基板管理控制芯片
CN117170745B (zh) * 2023-11-03 2024-01-12 睿思芯科(深圳)技术有限公司 Risc-v外部中断的处理方法、系统及相关设备
CN117667466A (zh) * 2024-02-01 2024-03-08 井芯微电子技术(天津)有限公司 一种中断处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662889A (zh) * 2012-04-24 2012-09-12 华为技术有限公司 中断处理方法、中断控制器及处理器
WO2014025145A1 (en) * 2012-08-10 2014-02-13 Samsung Techwin Co., Ltd Method and apparatus for processing message between processors
CN110765053A (zh) * 2019-10-23 2020-02-07 山东华芯半导体有限公司 一种n-m axi总线控制器及其可配置仲裁机制实现方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5083261A (en) * 1983-11-03 1992-01-21 Motorola, Inc. Dynamically alterable interrupt priority circuit
CN1904869B (zh) * 2006-08-08 2010-04-14 北京中星微电子有限公司 一种从多个有效中断中查找最高优先级中断的方法和装置
US9043522B2 (en) * 2012-10-17 2015-05-26 Arm Limited Handling interrupts in a multi-processor system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662889A (zh) * 2012-04-24 2012-09-12 华为技术有限公司 中断处理方法、中断控制器及处理器
WO2014025145A1 (en) * 2012-08-10 2014-02-13 Samsung Techwin Co., Ltd Method and apparatus for processing message between processors
CN110765053A (zh) * 2019-10-23 2020-02-07 山东华芯半导体有限公司 一种n-m axi总线控制器及其可配置仲裁机制实现方法

Also Published As

Publication number Publication date
CN111639044A (zh) 2020-09-08

Similar Documents

Publication Publication Date Title
CN111639044B (zh) 一种支持中断优先级轮询仲裁派发的方法和装置
US11379272B2 (en) Autoscaling using file access or cache usage for cluster machines
US11558244B2 (en) Improving performance of multi-processor computer systems
US8365181B2 (en) Method and system for guiding scheduling decisions in clusters of computers using dynamic job profiling
US7454420B2 (en) Data sorting method and system
WO2016078008A1 (zh) 调度数据流任务的方法和装置
US10402223B1 (en) Scheduling hardware resources for offloading functions in a heterogeneous computing system
CN112214319B (zh) 一种计算资源感知的任务调度方法
CN106020984B (zh) 电子设备中进程的创建方法及装置
CN111625367B (zh) 一种动态调整文件系统读写资源的方法
JP2020194523A (ja) アクセス請求を処理する方法、装置、デバイスならびに記憶媒体
CN110990154A (zh) 一种大数据应用优化方法、装置及存储介质
CN1851652A (zh) 嵌入式sram操作系统进程优先级轮转调度的实现方法
EP4035016A1 (en) Processor and interrupt controller therein
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
CN1851651A (zh) 嵌入式sram操作系统进程优先权调度的实现方法
JPH0991257A (ja) Cpu管理方式
CN112905351B (zh) 一种gpu和cpu负载调度方法、装置、设备和介质
WO2024119930A1 (zh) 调度方法、装置、计算机设备和存储介质
WO2023159652A1 (zh) 一种ai系统、内存访问控制方法及相关设备
JPH05216844A (ja) マルチプロセッサデータ処理システムにおける改良されたタスク分散のための方法および装置
US20020169908A1 (en) System and method for implementing a flexible arbitration mechanism
CN112433841B (zh) 一种资源池调度方法、系统、服务器和存储介质
JP2003330730A (ja) オペレーティングシステム配置装置
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体

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