CN103955410B - 基于多中断源优先级排序的中断控制方法 - Google Patents
基于多中断源优先级排序的中断控制方法 Download PDFInfo
- Publication number
- CN103955410B CN103955410B CN201410222025.6A CN201410222025A CN103955410B CN 103955410 B CN103955410 B CN 103955410B CN 201410222025 A CN201410222025 A CN 201410222025A CN 103955410 B CN103955410 B CN 103955410B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- priority
- source
- priority level
- interrupt source
- 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
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种基于多中断源优先级排序的中断控制方法,所述方法包括:S1、将每个中断源按照有效位、中断类型、中断优先级和中断源序号进行归类,形成若干排列单元;S2、将所有排列单元按照优先级高低的顺序依次排列,形成中断优先级队列;S3、中断请求发生,对应的中断源按照中断优先级队列中的顺序依次响应。本发明可实现多个中断源的中断控制,具有快速、低功耗的特点。
Description
技术领域
本申请涉及中断控制技术领域,尤其涉及一种基于多中断源优先级排序的中断控制方法。
背景技术
中断控制器一般包括若干中断源,所谓中断是指在CPU正常运行程序时,由于内、外部事件而引起CPU暂时中止正在运行的程序,转而去执行请求CPU暂时中止的内、外部事件的服务程序,待该服务程序处理完毕后又返回到被中止的程序。而能够向CPU发出中断请求的中断来源即称为“中断源”。
目前的很多中断控制器,有些是固定优先级的,如按照固定的中断源序号(硬件连接)的顺序来排列优先级,这样的中断控制器在***应用的时候会带来很多的限制,不能对所有的中断源按照任意的优先级进行排序。另有一些中断控制器,可以由软件对所有的中断源设置成任意的优先级,不过在每次有中断请求发生的时候,所有的中断优先级都会进行一次优先级比较,从而确定当前优先级最高的中断源来响应,而所有这些优先级比较逻辑在每次有中断请求发生的时候都会活动,这会导致较大的功耗,同时也带来较大的延迟。
综上所述,有必要提供一种基于多中断源优先级排序的中断控制方法以解决上述问题。
发明内容
有鉴于此,本发明目的在于提供一种快速、低功耗的基于多中断源优先级排序的中断控制方法。
为了实现上述目的,本申请实施例提供的技术方案如下:
一种基于多中断源优先级排序的中断控制方法,所述方法包括:
S1、将每个中断源按照有效位、中断类型、中断优先级和中断源序号进行归类,形成若干排列单元;
S2、将所有排列单元按照优先级高低的顺序依次排列,形成中断优先级队列;
S3、中断请求发生,对应的中断源按照中断优先级队列中的顺序依次响应。
作为本发明的进一步改进,所述步骤S2还包括:
将中断优先级队列存储在中间结果寄存器中。
作为本发明的进一步改进,所述步骤S1中,排列单元包括:
有效位,1表示本单元配置信息有效,0表示本单元配置信息无效;
中断类型表示位,1表示本单元为关键中断,0表示本单元为普通中断;
中断优先级数值,表示本单元的中断优先级;
中断源序号,表示硬件连接中断源的顺序。
作为本发明的进一步改进,所述步骤S2中排列具体为:
有效位,有效位为1才进行优先级比较,有效位为0则被视为最低优先级;
中断类型,所有的关键中断中断优先级高于普通中断;
中断优先级,对于中断类型相同的中断,中断优先级数值越高则中断优先级越高;
中断源序号,对于中断类型和中断优先级相同的中断,中断源序号越大则中断优先级越高。
作为本发明的进一步改进,所述步骤S2后还包括:
S02、当任意一个中断源的优先级配置被改变时,将改变后的中断源按照新的优先级***到原中断优先级队列中。
作为本发明的进一步改进,所述步骤S02具体包括:
S021、搜索原中断优先级队列的中断源序号,找到对应的中断源并清除出中断优先级队列,在中断优先级队列最后用0补足;
S022、将新配置的中断源的优先级配置与中断优先级队列中的各个中断源按照优先级从高到低依次进行比较,若比原中断优先级队列中中断源的优先级低,则继续比较下一个;若比原中断优先级队列中中断源的优先级高,则***正在比较的排序单元,而被***的排序单元及其后的排序单元都向后移动一个排序单元。
作为本发明的进一步改进,所述步骤S3包括:
将排列单元中的中断源序号用作索引序号,中断请求发生时将需中断的中断源和对应的中断服务程序入口地址同时送出。
作为本发明的进一步改进,所述步骤S3还包括:
对中断源进行附加信息设置,中断请求发生时将需中断的中断源、对应的中断服务程序入口地址和附加信息同时送出。
本发明具有以下效果:
1、功耗低:优先级比较逻辑只在中断优先级配置的时候活动,在后续中断请求和响应的时候都是静止的。由于***启动之后,优先级配置信息很少改变,所以这些优先级比较逻辑的动态功耗可以忽略不计。
2、中断响应速度快:当有一个或多个中断发生请求的时候,中断响应只需通过简单的排序逻辑即可产生,而不必再经过多级的优先级比较逻辑,使得有效的中断请求信号可以更早的生成。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于多中断源优先级排序的中断控制方法的流程示意图;
图2为本发明一实施方式中排序单元的示意图;
图3为本发明一实施方式中中断优先级队列的示意图;
图4a为本发明一具体实施例中中断优先级队列的示意图;
图4b为本发明一具体实施例中原始中断源和对应中断处理入口地址序列的示意图;
图4c为本发明一具体实施例中重新排序后中断源和对应中断处理入口地址序列的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
参图1所示,本发明公开了一种基于多中断源优先级排序的中断控制方法,具体包括:
S1、将每个中断源按照有效位、中断类型、中断优先级和中断源序号进行归类,形成若干排列单元;
S2、将所有排列单元按照优先级高低的顺序依次排列,形成中断优先级队列;
S3、中断请求发生,对应的中断源按照中断优先级队列中的顺序依次响应。
本发明利用一个“中断优先级队列”的中间结果寄存器,将所有的中断源按照优先级高低的顺序从左到右依次排列,这个排序过程在软件配置中断源的时候由硬件自动完成,当有多个中断源同时有中断请求发生,则按照从左向右的顺序依次响应。
在本发明的一具体实施方式中,以32个中断源(32个中断优先级)为例来说明该中断控制方法。
首先将每个中断源按照有效位、中断类型、中断优先级和中断源序号进行归类,形成若干排列单元。
参图2所示,每个排列单元由0~11共计12位组成,其中:第0位(V)表示有效位;第1位(C)表示中断类型表示位;第2~6位(PRIO#)表示中断优先级数值;第7~11位(IRPT#)表示中断源序号。其中:
有效位(V),1表示本单元配置信息有效,0表示本单元配置信息无效;
中断类型表示位(C),1表示本单元为关键中断,0表示本单元为普通中断;
中断优先级数值(PRIO#),表示本单元的中断优先级;
中断源序号(IRPT#),表示硬件连接中断源的顺序。
然后将所有排列单元按照优先级高低的顺序依次排列,形成中断优先级队列,并将中断优先级队列存储在中间结果寄存器中。
本发明中队列按照如下规则对中断源进行排序:
1、有效位(软件配置中断类型和中断优先级时由硬件自动生成),有效位为1才进行优先级比较,有效位为0则被视为最低优先级;
2、中断类型(软件配置),所有的关键中断中断优先级高于普通中断;
3、中断优先级(软件配置),对于中断类型相同的中断(均为关键中断或普通中断),中断优先级数值越高则中断优先级越高;
4、中断源序号(硬件配置),对于中断类型和中断优先级相同的中断,中断源序号越大则中断优先级越高。
参图3所示,该队列由32个排序单元组成,从左向右依次为“排序单元0”、“排序单元1”、“排序单元2”、……、“排序单元31”,单元号越小,对应的中断优先级越高。
该队列按照***的原始配置,对所有的中断源进行优先级排序,形成初始的优先级队列。当任意一个中断源的优先级配置(中断类型、中断优先级)被改变,该队列按照如下两步将对应的中断源按照新的优先级***的原队列中:
搜索原中断优先级队列的中断源序号,找到对应的中断源并清除出中断优先级队列,在中断优先级队列最后用12位0补足;
将新配置的中断源的优先级配置与中断优先级队列中的各个中断源按照优先级从高到低依次进行比较,若比原中断优先级队列中中断源的优先级低,则继续比较下一个;若比原中断优先级队列中中断源的优先级高,则***正在比较的排序单元,而被***的排序单元及其后的排序单元都向后移动一个排序单元。
中断请求发生后,对应的中断源按照中断优先级队列中的顺序依次响应。
当对所有中断源的配置完成,则中断优先级队列也确定。每个排序单元中的7-11位用作索引序号,将中断源和相应的信息(如对应的中断服务程序入口地址)重新排序,如在一具体实施例中中断优先级队列如图4a所示,原始中断源和对应中断处理入口地址的序列如图4b所示,重新排序后的中断源序列和中断入口地址序列如图4c所示。
重新排序后的中断源序列用来判断当前应该最先响应的中断,即最左边的“1”(表示该中断源有中断请求),与之对应的中断入口地址则被同时送出。
进一步地,对于每个中断源有除中断入口地址之外更多的属性的,亦可用于中断入口地址同样的方法处理。中断请求发生时将需中断的中断源、对应的中断服务程序入口地址和附加信息同时送出。
进一步地,在其他实施方式中对于中断源少于或者多于32个的,也可用本发明所述的中断控制方法实现。与上述实施方式不同的是,如果中断源相应的增加或减少,则中断优先级和中断源序号也可进行相应的增加或减少。
对于多于32个但是少于或等于64个中断源时,则需要6位中断优先级和6位中断源序号,相应地,中断源优先级队列中的排列单元就需要14位;
对于多于16个但是少于或等于32个中断源时,则需要5位中断优先级和5位中断源序号,相应地,中断源优先级队列中的排列单元就需要12位;
对于多于8个但是少于或等于16个中断源时,则需要4位中断优先级和4位中断源序号,相应地,中断源优先级队列中的排列单元就需要10位。
其他实施方式中以此以二进制的方式进行类推。
综上所述,与现有技术相比,本发明具有以下效果:
1、功耗低:优先级比较逻辑只在中断优先级配置的时候活动,在后续中断请求和响应的时候都是静止的。由于***启动之后,优先级配置信息很少改变,所以这些优先级比较逻辑的动态功耗可以忽略不计。
2、中断响应速度快:当有一个或多个中断发生请求的时候,中断响应只需通过简单的排序逻辑即可产生,而不必再经过多级(32个中断源需要5级)的优先级比较逻辑,使得有效的中断请求信号可以更早的生成。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (6)
1.一种基于多中断源优先级排序的中断控制方法,其特征在于,所述方法包括:
S1、将每个中断源按照有效位、中断类型、中断优先级和中断源序号进行归类,形成若干排列单元;
S2、将所有排列单元按照优先级高低的顺序依次排列,形成中断优先级队列,将中断优先级队列存储在中间结果寄存器中,并在软件配置中断源的时候将所有的中断源按照优先级高低的顺序从左到右依次排列;
S3、中断请求发生,对应的中断源按照中断优先级队列中的顺序依次响应,将排列单元中的中断源序号用作索引序号,将需中断的中断源和对应的中断服务程序入口地址同时送出。
2.根据权利要求1所述的中断控制方法,其特征在于,所述步骤S1中,排列单元包括:
有效位,1表示本单元配置信息有效,0表示本单元配置信息无效;
中断类型表示位,1表示本单元为关键中断,0表示本单元为普通中断;
中断优先级数值,表示本单元的中断优先级;
中断源序号,表示硬件连接中断源的顺序。
3.根据权利要求2所述的中断控制方法,其特征在于,所述步骤S2中排列具体为:
有效位,有效位为1才进行优先级比较,有效位为0则被视为最低优先级;
中断类型,所有的关键中断中断优先级高于普通中断;
中断优先级,对于中断类型相同的中断,中断优先级数值越高则中断优先级越高;
中断源序号,对于中断类型和中断优先级相同的中断,中断源序号越大则中断优先级越高。
4.根据权利要求3所述的中断控制方法,其特征在于,所述步骤S2后还包括:
S02、当任意一个中断源的优先级配置被改变时,将改变后的中断源按照新的优先级***到原中断优先级队列中。
5.根据权利要求4所述的中断控制方法,其特征在于,所述步骤S02具体包括:
S021、搜索原中断优先级队列的中断源序号,找到对应的中断源并清除出中断优先级队列,在中断优先级队列最后用0补足;
S022、将新配置的中断源的优先级配置与中断优先级队列中的各个中断源按照优先级从高到低依次进行比较,若比原中断优先级队列中中断源的优先级低,则继续比较下一个;若比原中断优先级队列中中断源的优先级高,则***正在比较的排序单元,而被***的排序单元及其后的排序单元都向后移动一个排序单元。
6.根据权利要求1所述的中断控制方法,其特征在于,所述步骤S3还包括:
对中断源进行附加信息设置,中断请求发生时将需中断的中断源、对应的中断服务程序入口地址和附加信息同时送出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410222025.6A CN103955410B (zh) | 2014-05-23 | 2014-05-23 | 基于多中断源优先级排序的中断控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410222025.6A CN103955410B (zh) | 2014-05-23 | 2014-05-23 | 基于多中断源优先级排序的中断控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103955410A CN103955410A (zh) | 2014-07-30 |
CN103955410B true CN103955410B (zh) | 2017-10-27 |
Family
ID=51332685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410222025.6A Active CN103955410B (zh) | 2014-05-23 | 2014-05-23 | 基于多中断源优先级排序的中断控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103955410B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106200659B (zh) * | 2016-07-20 | 2019-05-31 | 深圳洲际通航投资控股有限公司 | 飞行器的中断控制方法及*** |
CN109947470A (zh) * | 2019-03-13 | 2019-06-28 | 西安瑞思凯微电子科技有限公司 | 基于可变优先级的中断仲裁方法及其*** |
CN110177035B (zh) * | 2019-05-15 | 2021-12-14 | 北京猎户星空科技有限公司 | 数据接收和发送方法、装置及数据收发*** |
CN112286657A (zh) * | 2020-10-23 | 2021-01-29 | 海光信息技术股份有限公司 | 电子设备和中断处理方法 |
CN113821462A (zh) * | 2021-09-27 | 2021-12-21 | 苏州同元软控信息技术有限公司 | 模拟mcu中断方法、装置、终端及存储介质 |
CN115344374A (zh) * | 2022-10-19 | 2022-11-15 | 成都菁蓉联创科技有限公司 | 一种中断响应方法及其*** |
CN116980362B (zh) * | 2023-09-25 | 2024-02-27 | 北京紫光芯能科技有限公司 | 用于spi架构的多任务处理方法及装置 |
CN117632433A (zh) * | 2023-12-05 | 2024-03-01 | 合芯科技有限公司 | 一种提升中断响应速度的方法、装置设备及存储介质 |
CN117667466A (zh) * | 2024-02-01 | 2024-03-08 | 井芯微电子技术(天津)有限公司 | 一种中断处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701495A (en) * | 1993-09-20 | 1997-12-23 | International Business Machines Corporation | Scalable system interrupt structure for a multi-processing system |
CN102117223A (zh) * | 2011-02-22 | 2011-07-06 | 哈尔滨工业大学 | 利用异步通知实现lxi载板应用程序对m模块中断响应的方法 |
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理***和方法 |
CN103294544A (zh) * | 2012-02-27 | 2013-09-11 | 展讯通信(上海)有限公司 | 嵌入式***及其中断处理方法与装置 |
-
2014
- 2014-05-23 CN CN201410222025.6A patent/CN103955410B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701495A (en) * | 1993-09-20 | 1997-12-23 | International Business Machines Corporation | Scalable system interrupt structure for a multi-processing system |
CN102117223A (zh) * | 2011-02-22 | 2011-07-06 | 哈尔滨工业大学 | 利用异步通知实现lxi载板应用程序对m模块中断响应的方法 |
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理***和方法 |
CN103294544A (zh) * | 2012-02-27 | 2013-09-11 | 展讯通信(上海)有限公司 | 嵌入式***及其中断处理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103955410A (zh) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103955410B (zh) | 基于多中断源优先级排序的中断控制方法 | |
CN103646301B (zh) | 一种炉管设备的组批派工***和方法 | |
CN107220123A (zh) | 一种解决Spark数据倾斜方法及*** | |
US20090172424A1 (en) | Thread migration to improve power efficiency in a parallel processing environment | |
CN103632001A (zh) | 基于缓冲单元复用的保持时间时序优化方法 | |
CN102281192B (zh) | 交换网络芯片的信元处理方法及装置 | |
CN110962664B (zh) | 一种群控充电***功率分配***及方法 | |
CN106776024A (zh) | 一种资源调度装置、***和方法 | |
CN106462394A (zh) | 使用共享硬件资源的群集处理器核心中硬件线程的动态负载平衡以及相关的电路、方法和计算机可读媒体 | |
CN108574594B (zh) | 一种网络业务传输的方法及*** | |
CN103019848B (zh) | 一种pci总线非向量中断实现方法 | |
CN106325995B (zh) | 一种gpu资源的分配方法及*** | |
CN106325996A (zh) | 一种gpu资源的分配方法及*** | |
CN107743621A (zh) | 集成电路输入及输出 | |
CN104866460A (zh) | 一种基于SoC的容错自适应可重构***与方法 | |
CN109586281B (zh) | 基于节点优化编号的配电网可靠性评估方法、装置与介质 | |
CN105530157B (zh) | Afdx网络交换机多个虚拟链路共享信用的架构及方法 | |
US20180107599A1 (en) | Computer cluster system | |
CN101441559B (zh) | 游戏中窗口局部模态的实现方法及*** | |
CN107315643A (zh) | 一种容器资源调度方法 | |
CN103955445B (zh) | 一种数据处理方法、处理器及数据处理设备 | |
CN106330772B (zh) | SDN中的流表发送方法及OpenFlow控制器 | |
CN106293670B (zh) | 一种事件处理方法、设备及一种服务器 | |
CN111274193A (zh) | 数据处理装置及方法 | |
CN103067450B (zh) | 用于云环境的应用程序控制方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 215011 Building 2301, No. 209 Zhuyuan Road, Suzhou High-tech Zone, Jiangsu Province Patentee after: Suzhou Guoxin Technology Co., Ltd. Address before: 215011 Building 2301, No. 209 Zhuyuan Road, Suzhou High-tech Zone, Jiangsu Province Patentee before: C*Core Technology (Suzhou) Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |