CN112650591B - 一种调整中断优先级方法、装置和系统 - Google Patents
一种调整中断优先级方法、装置和系统 Download PDFInfo
- Publication number
- CN112650591B CN112650591B CN202110007840.0A CN202110007840A CN112650591B CN 112650591 B CN112650591 B CN 112650591B CN 202110007840 A CN202110007840 A CN 202110007840A CN 112650591 B CN112650591 B CN 112650591B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- priority
- priority value
- adjusting
- time
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000004044 response Effects 0.000 claims abstract description 142
- 238000001514 detection method Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 20
- 230000002093 peripheral effect Effects 0.000 abstract description 13
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000007958 sleep Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
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
本发明属于芯片领域,本发明提供一种调整中断优先级方法、装置和系统,其方法包括步骤:读取中断的实时响应信息;根据所述中断的预设响应信息和所述中断的实时响应信息,计算所述中断的当前优先级值;基于所述中断的当前优先级值,动态调整所述中断的优先级。通过将初始的由开发人员确定的中断优先级作为种子,再根据一种集成在芯片内部的中断检测IP提供的中断响应信息,以及各个中断的响应设计要求,实时对各外设IP的中断优先级进行动态排序,显著改善系统的实时中断响应特性。
Description
技术领域
本发明涉及芯片领域,尤指一种调整中断优先级方法、装置和系统。
背景技术
芯片系统中,多种外设IP会通过向处理器发送中断请求信号,获取CPU的响应。在实时性要求高的芯片系统内,外设IP还会要求CPU能及时响应中断请求。随着芯片内集成的外设越来越多,芯片系统内开始使用中断控制器对多个中断进行管理,协调CPU的合理响应。但是现有技术存在以下限制与缺陷:
首先,现有的中断控制器通常有优先级设置,但优先级的设置通常在软件设计时,根据各中断的特点进行了事先的确定,而不能进行动态的调整,或者只能做简单的调整。其次,在多中断源的SOC系统内,如果有多个中断的优先级都比较高,难以确定各自的优先级顺序。再者,在多中断源的SOC系统内,通常允许中断嵌套,则次优先级的中断有可能频繁被高优先级中断抢占,而无法满足中断响应的系统要求。
发明内容
本发明提供一种调整中断优先级方法、装置和系统,通过将初始的由开发人员确定的中断优先级作为种子,再根据一种集成在芯片内部的中断检测IP提供的中断响应信息,以及各个中断的响应设计要求,实时对各外设IP的中断优先级进行动态排序。
本发明提供的技术方案如下:
一种调整中断优先级方法,包括步骤:
读取中断的实时响应信息;
根据所述中断的预设响应信息和所述中断的实时响应信息,计算所述中断的当前优先级值;
基于所述中断的当前优先级值,动态调整所述中断的优先级。
进一步优选地,所述根据所述中断的预设响应信息和所述中断的实时响应信息,计算中断的当前优先级值,包括步骤:
建立包含所述中断的唯一标识、预设响应信息和中断初始优先级的中断信息模型;
通过所述中断信息模型接收所述中断的实时响应信息,计算所述中断的当前优先级值;
根据所述中断的当前优先级值,动态调整所述中断的优先级;
其中,所述预设响应信息包括预设响应时间、预设处理时间,以及预设的优先级范围,所述实时响应信息包括所述中断的实际响应时间、实际处理时间和丢失与覆盖信息。
进一步优选地,所述根据所述基于所述中断的当前优先级值,动态调整所述中断的优先级,包括步骤:
判断所述中断的当前优先级值是否符合预设优先级范围;
当符合所述预设优先级范围时,根据所述中断的当前优先级值调整所述中断的初始优先级值。
进一步优选地,在所述判断所述中断的当前优先级值是否符合预设优先级范围之后,还包括步骤:
当不符合所述预设优先级范围时,基于所述预设优先级范围对所述中断的当前优先级值进行调整,以使所述中断的当前优先级值处于所述预设优先级范围。
进一步优选地,所述通过所述中断信息模型接收所述中断的实时响应信息,计算所述中断的当前优先级值,包括步骤:
通过所述中断的当前优先级值的计算公式,计算所述中断的当前优先级值,所述计算公式为:
其中,id为所述中断的唯一标识,Pi[id]为所述中断的当前优先级值,P[id]为所述中断的初始优先级值,Tai[id]为所述中断的实际响应时间,Ta[id]为所述中断的预设响应时间,Pa为中断响应优先级系数,Pd为中断处理优先级系数,Pf为中断丢失与覆盖优先级系数,Tdi[id]为所述中断的实际处理时间,Td[id]为所述中断的预设处理时间,F[id]为所述中断的丢失与覆盖信息。
进一步优选地,在所述基于所述中断的当前优先级值,动态调整所述中断的优先级之前,还包括步骤:
对比所述中断的当前优先级值和所述中断的初始优先级值;
当所述中断的当前优先级值与所述中断的初始优先级值不一致时,对所述中断的初始优先级值进行调整。
进一步优选地,所述基于所述中断的当前优先级值,动态调整所述中断的优先级,还包括步骤:
将所述中断的当前优先级值作为序号,对所述中断的初始优先级值进行排序;
将排序后的所述中断的初始优先级值,更新为调整后的初始优先级值。
进一步优选地,在所述根据所述中断的预设响应信息和所述中断的实时响应信息,计算所述中断的当前优先级值之前,还包括步骤:
获取所述中断产生的次数;
当所述中断产生的次数超过预设次数阈值时,根据所述中断的预设响应信息和所述中断的实时响应信息,调整所述中断的初始优先级值。
一种调整中断优先级装置,包括:
读取模块,用于读取中断的实时响应信息;
计算模块,用于根据所述中断的预设响应信息和所述中断的实时响应信息,计算所述中断的当前优先级值;
调整模块,用于基于所述中断的当前优先级值,动态调整所述中断的优先级。
一种调整中断优先级系统,包括:所述调整中断优先级装置,中断检测IP和中断控制器;
所述中断检测IP用于检测并记录中断的实时响应信息;
所述调整中断优先级装置用于读取中断的实时响应信息;根据所述中断的预设响应信息和所述中断的实时响应信息,计算所述中断的当前优先级值;基于所述中断的当前优先级值,动态调整所述中断的优先级;
所述中断控制器用于接收调整后的初始中断优先级值,对所述中断进行优先级控制。
本发明提供的一种调整中断优先级方法、装置和系统,至少具有以下有益效果:
1)通过将初始的由开发人员确定的中断优先级作为种子,再根据一种集成在芯片内部的中断检测IP提供的中断响应信息,以及各个中断的响应设计要求,实时对各外设IP的中断优先级进行动态排序。
2)在本发明中将综合体现中断的响应设计要求、开发人员确定的优先级、以及实际检测的中断响应信息,显著改善系统的实时中断响应特性。
3)同时,相同的系统设计,运行在不同的环境下后,将可能训练出不同的新的中断优先级顺序,使得相同的系统设计能针对不同的实际环境有更好的适应性。
4)在本实施例中,对计算出的当前优先级值进行进一步的分析,以使中断控制器后续能够基于中断当前优先级值,正常的控制管理每个中断的优先级顺序。
5)通过本发明设置一个优先级值比对的过程,避免了系统重复进行优先级设置,导致系统运行复杂,从而使得中断控制速度降低的问题,提高了处理器的中断响应速率。
6)为了在中断优先级适应环境后,减少中断优先级的计算和更新次数,软件中设置一个中断次数计数,在中断产生次数达到所设定的阈值后,才进行优先级的排序计算和更新,这也可以避免系统长时间睡眠时进行不必要的唤醒计算。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明:
图1是本发明中一种调整中断优先级方法的一个实施例的流程示意图;
图2是本发明中一种调整中断优先级方法的另一个实施例的流程示意图;
图3是本发明中一种调整中断优先级方法的又一个实施例的流程示意图;
图4是本发明中一种调整中断优先级方法的再一个实施例的流程示意图;
图5是本发明中一种调整中断优先级方法的再一个实施例的流程示意图;
图6是本发明中一种调整中断优先级方法的再一个实施例的流程示意图;
图7是本发明中一种调整中断优先级方法的再一个实施例的流程示意图;
图8是本发明中一种调整中断优先级装置的一个实施例的示意图;
图9是本发明的中断检测IP与处理器的集成结构示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本文中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
需要说明的是,在本发明中,CPU是指运行软件的处理器,包括但不限于ARM。中断是指芯片内各个IP模块向CPU发送的信号,用于请求CPU的处理。中断控制器是指芯片内用于管理多个IP模块中断信号的模块。中断优先级是指中断处理优先顺序的排序,优先级越高,CPU越优先处理。本发明主要应用于SOC芯片/LTE终端/5G终端等,本发明中提及的系统可以包括SOC芯片上的系统。
实施例一
本发明提供一种调整中断优先级方法的一个实施例,如图1所示,包括步骤:
S100读取中断的实时响应信息。
具体的,中断包括多个IP模块向处理器发送的中断信号,实时响应信息包括处理器响应中断信号的响应信息,比如,响应中断的时间,处理中断的时间,完成中断的时间。
在实际场景中,通过运行在处理器上软件读取处理器对于每个中断的实时响应信息。
其中,处理器(CPU)是指运行软件的处理器,包括但不限于ARM。
S200根据所述中断的预设响应信息和所述中断的实时响应信息,计算中断的当前优先级值。
具体的,中断的预设响应信息包含中断的初始优先级、期望的中断响应时间、期望的中断处理时间等设计要求,中断的实时响应信息包含检测IP检测到的中断实际响应时间、中断实际处理时间。中断优先级是指中断处理优先顺序的排序,优先级越高,CPU越优先处理。
S300基于中断的当前优先级值,动态调整所述中断的优先级。
在本实施例中,将初始的由开发人员确定的中断优先级作为种子,再根据一种集成在芯片内部的中断检测IP提供的中断响应信息,以及各个中断的响应设计要求,实时对各外设IP的中断优先级进行动态排序。
在实际应用场景中,系统在实际环境下运行一段时间后,得到的新的中断优先级顺序,将综合体现中断的响应设计要求、开发人员确定的优先级、以及实际检测的中断响应信息,将显著改善系统的实时中断响应特性。
同时,相同的系统设计,运行在不同的环境下后,将可能训练出不同的新的中断优先级顺序,使得相同的系统设计能针对不同的实际环境有更好的适应性。
实施例二
基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,如图2所示,本实施例提供一种调整中断优先级方法的另一个实施例,具体包括:
S100读取中断的实时响应信息。
优选地,步骤S200所述根据所述中断的预设响应信息和所述中断的实时响应信息,计算中断的当前优先级值,包括步骤:
S201建立包含所述中断的唯一标识、预设响应信息和中断初始优先级的中断信息模型。
具体的,每个中断都有自己的唯一标识即id,为每个中断建立包含以下信息的模型即中断信息模型,具体包括:中断ID(id);中断响应设计要求(响应时间Ta[id],处理时间Td[id]);中断初始优先级(开发人员根据设计要求初始设定,P[id]);中断检测IP提供的中断实时响应信息(实际中断响应时间Tai[id],实际中断处理时间Tdi[id],中断丢失与覆盖信息F[id]);实时中断优先级(每次计算后得到的新的优先级,Pi[id])。
S202通过所述中断信息模型接收所述中断的实时响应信息,计算中断当前优先级值。
具体的,根据上述信息计算实时的中断当前优先级值,以实时对各外设IP的中断优先级进行动态排序。
优选地,步骤S202所述通过所述中断信息模型接收所述中断的实时响应信息,计算中断当前优先级值,包括步骤:
通过所述中断当前优先级值的计算公式计算所述中断当前优先级值,所述计算公式为:
其中,id为所述中断的唯一标识,Pi[id]为所述中断当前优先级值,P[id]为所述中断初始优先级值,Tai[id]为所述中断的实际响应时间,Ta[id]为所述中断的预设响应时间,Pa为中断响应优先级系数,Pd为中断处理优先级系数,Pf为中断丢失与覆盖优先级系数,Tdi[id]为所述中断的实际处理时间,Td[id]为所述中断的预设处理时间,F[id]为所述中断的丢失与覆盖信息。
S203根据所述预设的中断响应信息,调整所述中断的当前优先级值。
其中,所述预设响应信息包括预设响应时间、预设处理时间,以及预设的优先级范围。
S300基于中断的当前优先级值,动态调整所述中断的优先级。
在本实施例中,软件通过读取中断检测IP记录的中断延时信息,得到每个中断的最大确认延时、最大中断完成延时、最大中断处理时间,中断丢失和覆盖信息、中断嵌套层级;软件检查每个IP外设中断的延时要求;根据希望的中断延时要求,和中断检测IP记录分析得到的实际延时信息,调整中断优先级。
实施例三
基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,如图3所示,本实施例提供一种调整中断优先级方法的另一个实施例,具体包括:
S100读取中断的实时响应信息。
S201建立包含所述中断的唯一标识、预设响应信息和中断初始优先级的中断信息模型。
S202通过所述中断信息模型接收所述中断的实时响应信息,计算中断当前优先级值。
具体的,由于在多中断源的SOC系统内,如果有多个中断的优先级都比较高,就难以确定各自的优先级顺序,处理器对于每个中断的响应以及处理会有对应的最大确认延时,最大中断完成延时,最大中断处理时间,基于这些实时响应信息,再重新对中断的优先级进行动态排序,才能使得处理器的实时中断响应特性得到改善。
因此在本实施例中,通过实时检测到的实际的中断响应信息,计算中断的当前优先级值,以此作为中断优先级排序的基础,能够显著改善处理的实时中断响应特性。
优选地,步骤S203所述根据所述预设的中断响应信息,调整所述中断的当前优先级值,包括步骤:
S2031判断所述中断当前优先级值是否符合预设优先级范围。
具体的,由于中断控制器都有对应的可接受的优先级值,如果计算出的中断当前优先级值不处于这个可接受的优先级值的范围内,中断当前优先级值可能无法被中断控制器接收。
因此,在调整中断优先级之前,会对中断当前优先级值进行判断,分析一下中断当前优先级值是否符合可接受的优先级值的范围,即预设优先级范围。
S2032当符合所述预设优先级范围时,根据所述中断当前优先级值调整所述中断的优先级值。
具体的,如果中断当前优先级值符合预设优先级范围,那么中断控制器能够接受中断当前优先级值,并以此为调整基础。
优选地,在步骤S2031所述判断所述中断当前优先级值是否符合预设优先级范围之后,还包括步骤:
S2033当不符合所述预设优先级范围时,基于所述预设优先级范围对所述中断当前优先级值进行调整,以使所述中断当前优先级值处于所述预设优先级范围内。
具体的,由于中断控制器可接受的优先级值通常由硬件限定在一定的范围内,在计算中断当前优先级值后,需要对Pi[id]进行范围调整,使得所有的Pi[id]在希望的范围内。
S2034根据调整后的所述基于中断的当前优先级值,动态调整所述中断的优先级。
具体的,为了防止新计算出的Pi[id]出现大量相同值,或饱和值,不直接将新计算出的Pi[id]作为写入中断控制器中的新的优先级值,而是以Pi[id]值作为序号,对P[id]进行排序,排序后的P[id]记为Pk[id],将Pk[id]作为更新到中断控制器中的新值。
S300基于中断的当前优先级值,动态调整所述中断的优先级。
在本实施例中,对计算出的当前优先级值进行进一步的分析,以使中断控制器后续能够基于中断当前优先级值,正常的控制管理每个中断的优先级顺序。
实施例四
基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,如图4所示,本实施例提供一种调整中断优先级方法的另一个实施例,具体包括:
S100读取中断的实时响应信息。
S201建立包含所述中断的唯一标识、预设响应信息和中断初始优先级的中断信息模型。
S202通过所述中断信息模型接收所述中断的实时响应信息,计算中断当前优先级值。
优选地,在步骤S300基于中断的当前优先级值,动态调整所述中断的优先级之前,还包括步骤:
SA203对比所述中断当前优先级值和所述中断初始优先级值。
SB203当所述中断当前优先级值与所述中断初始优先级值不一致时,对所述中断初始优先级值进行调整。
S203根据所述预设的中断响应信息,调整所述中断的当前优先级值。
S300基于中断的当前优先级值,动态调整所述中断的优先级。
具体的,在更新中断优先级前比对中断初始优先级值和中断当前优先级值,可能存在中断初始优先级值和中断当前优先级值一致即优先级并未发生变化,如果未发生变化,则不进行中断优先级的更新。
如果发生变化,则基于中断当前优先级值,修改中断控制器的优先级设置,以此控制中断的优先级排序。
通过本实施例设置一个优先级值比对的过程,避免了系统重复进行优先级设置,导致系统运行复杂,从而使得中断控制速度降低的问题,因此本实施例可以解决由于优先级未发生变化却进行优先级的重复设置的问题,提高了处理器的中断响应速率。
实施例五
基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,如图5所示,本实施例提供一种调整中断优先级方法的另一个实施例,具体包括:
S100读取中断的实时响应信息。
S201建立包含所述中断的唯一标识、预设响应信息和中断初始优先级的中断信息模型。
S202通过所述中断信息模型接收所述中断的实时响应信息,计算中断当前优先级值。
优选地,步骤S300基于中断的当前优先级值,动态调整所述中断的优先级,还包括步骤:
S301将所述中断当前优先级值作为序号,对所述中断优先级值进行排序。
S302将排序后的所述中断优先级值,更新为调整后的中断优先级值。
具体的,为了防止新计算出的Pi[id]出现大量相同值,或饱和值,这会导致优先级值失效。因此,不直接将新计算出的Pi[id]作为写入中断控制器中的新的优先级值,而是以Pi[id]值作为序号,对P[id]进行排序,排序后的P[id]记为Pk[id],将Pk[id]作为更新到中断控制器中的新值。
实施例六
基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,如图6所示,本实施例提供一种调整中断优先级方法的另一个实施例,具体包括:
S100读取中断的实时响应信息。
优选地,所述读取中断的实时响应信息,包括步骤:定时读取所述中断的实时响应信息。
优选地,在步骤S200所述根据所述中断的预设响应信息和所述中断的实时响应信息,调整中断初始优先级值之前,还包括步骤:
SA200获取所述中断产生的次数。
SB200当所述中断产生的次数超过预设次数阈值时,根据所述中断的预设响应信息和所述中断的实时响应信息,调整中断初始优先级值。
S200根据所述中断的预设响应信息和所述中断的实时响应信息,计算中断的当前优先级值。
S300基于中断的当前优先级值,动态调整所述中断的优先级。
具体的,为了在中断优先级适应环境后,减少中断优先级的计算和更新次数,软件中设置一个中断次数计数,在中断产生次数达到所设定的阈值后,才进行优先级的排序计算和更新,这也可以避免系统长时间睡眠时进行不必要的唤醒计算。
实施例七
基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,如图7所示,本实施例提供一种调整中断优先级方法的另一个实施例,具体包括:
S1、软件通过读取中断检测IP记录的中断延时信息,得到每个中断的最大确认延时、最大中断完成延时、最大中断处理时间,中断丢失和覆盖信息、中断嵌套层级。
S2、软件检查每个IP外设中断的延时要求。
S3、根据希望的中断延时要求,和中断检测IP记录分析得到的实际延时信息,调整中断优先级。
具体的,步骤S3根据希望的中断延时要求,和中断检测IP记录分析得到的实际延时信息,调整中断优先级,具体包括:中断信息模型、排序计算、以及更新优先级设置。
其中,中断信息模型:为每个中断建立包含以下信息的模型:
中断ID:id;中断响应设计要求:响应时间Ta[id],处理时间Td[id];中断初始优先级P[id]:开发人员根据设计要求初始设定;中断检测IP提供的中断实时响应信息:实际中断响应时间Tai[id],实际中断处理时间Tdi[id],中断丢失与覆盖信息F[id];实时中断优先级Pi[id]:每次计算后得到的新的优先级。
此外,排序计算可以包括步骤:
定时读取中断检测IP提供的中断实时响应信息;优先级排序计算公式:
其中,Pa为中断响应优先级系数;Pd为中断处理优先级系数;Pf为中断丢失与覆盖优先级系数。
需要说明的是:Pa、Pd、Pf的值为正时,为正向优先级值系统,即值越大则优先级越高;Pa、Pd、Pf的值为负时,为负向优先级值系统,即值越大则优先级越低。
由于中断控制器可接受的优先级值通常由硬件限定在一定的范围内,在式(1)计算后,需要对Pi[id]进行范围调整,使得所有的Pi[id]在希望的范围内。
为了防止新计算出的Pi[id]出现大量相同值或饱和值,在调整的过程中,并不直接将新计算出的Pi[id]作为写入中断控制器中的新的优先级值,而是以Pi[id]值作为序号,对P[id]进行排序,排序后的P[id]记为Pk[id],将Pk[id]作为更新到中断控制器中的新值。
为了在中断优先级适应环境后,减少中断优先级的计算和更新次数,软件中设置一个中断次数计数,在中断产生次数达到所设定的阈值后,才进行优先级的排序计算和更新,这也可以避免系统长时间睡眠时进行不必要的唤醒计算。
具体的,关于更新优先级设置可以包括以下步骤:
修改中断控制器的优先级设置;更新前比对,如果未发生变化,则不进行更新。
在本实施例中,将初始的由开发人员确定的中断优先级作为种子,再根据一种集成在芯片内部的中断检测IP提供的中断响应信息,以及各个中断的响应设计要求,实时对各外设IP的中断优先级进行动态排序。
在实际应用场景中,系统在实际环境下运行一段时间后,得到的新的中断优先级顺序,将综合体现中断的响应设计要求、开发人员确定的优先级、以及实际检测的中断响应信息,将显著改善系统的实时中断响应特性。
同时,相同的系统设计,运行在不同的环境下后,将可能训练出不同的新的中断优先级顺序,使得相同的系统设计能针对不同的实际环境有更好的适应性。
实施例八
基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,如图8所示,本实施例提供一种调整中断优先级装置的一个实施例,具体包括:
读取模块801,用于读取中断的实时响应信息。
计算模块802,用于根据所述中断的预设响应信息和所述中断的实时响应信息,计算中断的当前优先级值。
调整模块803,用于基于中断的当前优先级值,动态调整所述中断的优先级。
实施例九
基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,本实施例提供一种调整中断优先级系统的一个实施例,包括:所述调整中断优先级装置,中断检测IP和中断控制器。
所述中断检测IP用于检测并记录中断的实时响应信息。
具体的,如图9所示,中断检测IP通过数据总线与处理器连接,用于检测外设IP的实时响应信息,并保存在数据缓存器Buffer中,所述调整中断优先级装置可以读取数据缓存器中的实时响应信息。
所述调整中断优先级装置用于读取中断的实时响应信息;根据所述中断的预设响应信息和所述中断的实时响应信息,计算中断的当前优先级值;基于中断的当前优先级值,动态调整所述中断的优先级。
所述中断控制器用于接收调整后的所述初始优先级值,对所述中断进行优先级控制。
其中,中断控制器是指芯片内用于管理多个IP模块中断信号的模块。
在本实施例中,通过读取中断检测IP记录的中断延时信息,得到每个中断的最大确认延时、最大中断完成延时、最大中断处理时间,中断丢失和覆盖信息、中断嵌套层级;检查每个IP外设中断的延时要求;根据希望的中断延时要求,和中断检测IP记录分析得到的实际延时信息,修改中断控制器的优先级设置,以调整中断优先级。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的设备和方法,可以通过其他的方式实现。示例性的,以上所描述的系统实施例仅仅是示意性的,示例性的,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,示例性的,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其他的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种调整中断优先级方法,其特征在于,包括步骤:
读取中断的实时响应信息;
建立包含所述中断的唯一标识、预设响应信息和中断初始优先级的中断信息模型;
通过所述中断信息模型接收所述中断的实时响应信息,计算所述中断的当前优先级值;
所述中断的当前优先级值的计算公式为:
;
其中,为所述中断的唯一标识,/>为所述中断的当前优先级值,/>为所述中断的初始优先级值,/>为所述中断的实际响应时间,/>为所述中断的预设响应时间,为中断响应优先级系数,/>为中断处理优先级系数,/>为中断丢失与覆盖优先级系数,为所述中断的实际处理时间,/>为所述中断的预设处理时间,/>为所述中断的丢失与覆盖信息;
其中,所述预设响应信息包括预设响应时间、预设处理时间,以及预设的优先级范围,所述实时响应信息包括所述中断的实际响应时间、实际处理时间和丢失与覆盖信息;
根据所述中断的当前优先级值,动态调整所述中断的优先级。
2.根据权利要求1所述调整中断优先级方法,其特征在于,所述根据所述中断的当前优先级值,动态调整所述中断的优先级,包括步骤:
判断所述中断的当前优先级值是否符合预设优先级范围;
当符合所述预设优先级范围时,根据所述中断的当前优先级值调整所述中断的优先级值。
3.根据权利要求2所述调整中断优先级方法,其特征在于,在所述判断所述中断的当前优先级值是否符合预设优先级范围之后,还包括步骤:
当不符合所述预设优先级范围时,基于所述预设优先级范围对所述中断的当前优先级值进行调整,以使所述中断的当前优先级值处于所述预设优先级范围。
4.根据权利要求1所述调整中断优先级方法,其特征在于,在所述根据所述中断的当前优先级值,动态调整所述中断的优先级之前,还包括步骤:
对比所述中断的当前优先级值和所述中断的初始优先级值;
当所述中断的当前优先级值与所述中断的初始优先级值不一致时,对所述中断的初始优先级值进行调整。
5.根据权利要求1所述调整中断优先级方法,其特征在于,所述根据所述中断的当前优先级值,动态调整所述中断的优先级,还包括步骤:
将所述中断的当前优先级值作为序号,对所述中断的初始优先级值进行排序;
将排序后的所述中断的初始优先级值,更新为调整后的初始优先级值。
6.根据权利要求1所述调整中断优先级方法,其特征在于,在所述计算所述中断的当前优先级值之前,还包括步骤:
获取所述中断产生的次数;
当所述中断产生的次数超过预设次数阈值时,根据所述中断的预设响应信息和所述中断的实时响应信息,调整所述中断的初始优先级值。
7.一种调整中断优先级装置,其特征在于,包括:
读取模块,用于读取中断的实时响应信息;
模型建立模块,用于建立包含所述中断的唯一标识、预设响应信息和中断初始优先级的中断信息模型;
计算模块,用于通过所述中断信息模型接收所述中断的实时响应信息,计算所述中断的当前优先级值;
所述中断的当前优先级值的计算公式为:
;
其中,为所述中断的唯一标识,/>为所述中断的当前优先级值,/>为所述中断的初始优先级值,/>为所述中断的实际响应时间,/>为所述中断的预设响应时间,/>为中断响应优先级系数,/>为中断处理优先级系数,/>为中断丢失与覆盖优先级系数,为所述中断的实际处理时间,/>为所述中断的预设处理时间,/>为所述中断的丢失与覆盖信息;
其中,所述预设响应信息包括预设响应时间、预设处理时间,以及预设的优先级范围,所述实时响应信息包括所述中断的实际响应时间、实际处理时间和丢失与覆盖信息;
调整模块,用于根据所述中断的当前优先级值,动态调整所述中断的优先级。
8.一种调整中断优先级系统,其特征在于,包括:如权利要求7所述调整中断优先级装置,中断检测IP和中断控制器;
所述中断检测IP用于检测并记录中断的实时响应信息;
所述调整中断优先级装置用于读取中断的实时响应信息;根据所述中断的预设响应信息和所述中断的实时响应信息,计算所述中断的当前优先级值;基于所述中断的当前优先级值,动态调整所述中断的优先级;
所述中断控制器用于接收调整后的初始中断优先级值,对所述中断进行优先级控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110007840.0A CN112650591B (zh) | 2021-01-05 | 2021-01-05 | 一种调整中断优先级方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110007840.0A CN112650591B (zh) | 2021-01-05 | 2021-01-05 | 一种调整中断优先级方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112650591A CN112650591A (zh) | 2021-04-13 |
CN112650591B true CN112650591B (zh) | 2024-05-14 |
Family
ID=75367255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110007840.0A Active CN112650591B (zh) | 2021-01-05 | 2021-01-05 | 一种调整中断优先级方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112650591B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573308B (zh) * | 2023-11-15 | 2024-07-23 | 中国三峡建工(集团)有限公司 | 一种任务中断仲裁方法、系统、芯片以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547178A (zh) * | 2010-12-08 | 2012-07-04 | 中国科学院声学研究所 | 一种由应用驱动的内核模块的动态调整方法 |
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理系统和方法 |
CN104679583A (zh) * | 2013-11-28 | 2015-06-03 | 华为技术有限公司 | 一种动态调整时钟中断的方法及装置 |
CN106326066A (zh) * | 2015-07-07 | 2017-01-11 | 北京东土科技股份有限公司 | 一种嵌入式系统任务响应性能的监测调整的方法及其系统 |
US9946668B1 (en) * | 2007-01-10 | 2018-04-17 | The Mathworks, Inc. | Automatic prioritization of interrupts in a modeling environment |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10664425B2 (en) * | 2018-09-17 | 2020-05-26 | Intel Corporation | Adjusting interrupt priorities |
-
2021
- 2021-01-05 CN CN202110007840.0A patent/CN112650591B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9946668B1 (en) * | 2007-01-10 | 2018-04-17 | The Mathworks, Inc. | Automatic prioritization of interrupts in a modeling environment |
CN102547178A (zh) * | 2010-12-08 | 2012-07-04 | 中国科学院声学研究所 | 一种由应用驱动的内核模块的动态调整方法 |
CN103019835A (zh) * | 2011-09-26 | 2013-04-03 | 同方股份有限公司 | 一种多核处理器中断资源优化处理系统和方法 |
CN104679583A (zh) * | 2013-11-28 | 2015-06-03 | 华为技术有限公司 | 一种动态调整时钟中断的方法及装置 |
CN106326066A (zh) * | 2015-07-07 | 2017-01-11 | 北京东土科技股份有限公司 | 一种嵌入式系统任务响应性能的监测调整的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112650591A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11943233B2 (en) | Vehicle communication apparatus, in-vehicle network system, and vehicle communication method | |
US7840720B2 (en) | Using priority to determine whether to queue an input/output (I/O) request directed to storage | |
CN111813624B (zh) | 基于时长分析的机器人执行时长的预估方法及其相关设备 | |
US8140915B2 (en) | Detecting apparatus, system, program, and detecting method | |
WO2020172852A1 (en) | Computing resource scheduling method, scheduler, internet of things system, and computer readable medium | |
CN112650591B (zh) | 一种调整中断优先级方法、装置和系统 | |
EP4191355A1 (en) | Uds-based communication method, ecu and upper computer | |
US20130055032A1 (en) | Priority buffering for trace data in trace queue | |
CN102608923B (zh) | 控制系统及soe装置 | |
EP2904765A1 (en) | Method and apparatus using high-efficiency atomic operations | |
CN111983412B (zh) | 监控系统、监控方法、监控终端及存储介质 | |
CN111694652B (zh) | 任务动态调度方法、装置、计算机设备及存储介质 | |
US5659683A (en) | Distributed computer system and method using a common transmission line in a plurality of processors interconneted for executing a program module utilizing attributes | |
WO2024114728A1 (zh) | 一种异构处理器及相关调度方法 | |
CN117271096A (zh) | 调度方法、电子设备和计算机可读存储介质 | |
CN112165420A (zh) | 报文处理方法、报文处理装置、机器人系统及can设备 | |
WO2022213637A1 (zh) | 滤网安装状态检测方法、装置、电子设备及存储介质 | |
CN112785000A (zh) | 面向大规模机器学习系统的机器学习模型训练方法及系统 | |
CN114528083A (zh) | 数据处理单元dpu业务数据的调度处理方法及相关产品 | |
CN115484317A (zh) | 工业互联网的云边协同处理方法、电子装置及存储介质 | |
CA3069090A1 (en) | Optimal query scheduling according to data freshness requirements | |
CN115291595B (zh) | 自主式多数据源的智能信息处理系统及电子设备 | |
CN112613255B (zh) | 多环境协同回归方法、装置、设备、存储介质 | |
CN113610304B (zh) | 一种拥堵预测方法、装置、设备和存储介质 | |
CN114064064A (zh) | 基于算法优先级的设备运行方法、系统、存储介质及其计算机设备 |
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 |