一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种防止中断丢失的方法和中断控制器与流程

2022-02-22 03:05:46 来源:中国专利 TAG:


1.本发明涉及计算机领域,并且更具体地涉及一种防止中断丢失的方法和中断控制器。


背景技术:

2.中断聚合是中断控制器的一种高级特性,在很多标准协议,如nvme协议,都有定义。也被广泛用于非标准的中断控制器。中断聚合特性没有统一的定义,聚合行为随协议的不同而有一定的差别,但一般来说,该特性指以下几个方面:1.当中断发生时,中断控制器并不立即上报中断,而是等待中断数量积攒超过一定阈值后再统一进行上报;2.为了使上述聚合行为的最大延时可控,一般还定义聚合的超时时间,当超时发生后,只要有未上报中断,无论数量多少中断控制器都将执行上报操作;3.部分中断聚合还需要考虑特殊事件,当某些特殊事件发生时,无论当前中断数量和等待时间是否超过阈值,控制器都立即上报,这是为了提高某些延时敏感型的事务的处理速度。
3.中断聚合特性的核心在于尽量减少发送中断的次数,在任何不应该发送中断的条件下尽量不发,因此它能有效降低cpu的处理负担,避免cpu由于被频繁打断从而带来额外开销过大,但同时却会带来在某些条件下中断丢失的问题。例如当中断数量超过聚合阈值后,中断控制器将发送一个中断给cpu,为了避免过多的中断,此时中断数量继续增加并不会触发额外的中断。
4.由于cpu到中断控制器之间的总线往往有较大的延迟,例如pcie总线的延时可能高达数十微秒,因此当cpu最后一次查询中断被全部处理完成的过程中,可能产生新的中断导致数量或者特殊事件的条件持续满足中断聚合的条件。由于延时的存在,该中断实际发生的时间是在cpu退出中断处理程序之前,因此cpu一般不会感知到该中断。更为严重的是,由于cpu退中断时,控制器满足中断聚合的条件将导致后续即使发生新的中断,由于中断聚合控制被要求尽可能少的提交中断,在聚合条件持续满足的情况下,控制器不会提交新的中断,因此cpu将无法感知到新的中断。
5.传统的解决方法有2种,第一种是cpu在每次处理完中断后都读取中断标志,确定中断标志被清零后再退出中断。该方法最大的局限性在于中断聚合控制器内部运算复杂,中断标志无法直接被读取到,典型的如nvme协议定义的中断标志则无法读取。此外,它同样无法保证由于延迟的存在,退中断时中断标志被重新置位的问题。第二种方法是每次在处理中断前,都将中断屏蔽位置位,即屏蔽该中断,然后在cpu“认为”处理完成后,在中断处理程序的最后关闭中断屏蔽位。如果此时由于延迟的影响,中断事件仍然存在,关闭中断屏蔽位一般会引发新的中断,因此cpu将会再次进入中断。该方法可以完全避免中断丢失的问题,但缺点也比较明显,即部分总线的中断屏蔽位并不能被所有设备访问,如pcie总线的msi中断的屏蔽位位于pcie总线的配置空间,只有rc设备可以访问,在部分系统中实际管理设备的可能是对等的ep设备,该设备可以接收msi中断,但无法访问屏蔽位。操作系统中自带的标准驱动,有很多是并不访问中断屏蔽位,如果依赖该机制,则需要随硬件分发自定义
驱动,对于磁盘等标准硬件设备,这将给用户带来较差的体验。


技术实现要素:

6.有鉴于此,本发明实施例的目的在于提出一种防止中断丢失的方法和中断控制器,通过使用本发明的技术方案,能够避免了对中断标志位和中断屏蔽位等特殊寄存器的访问,使中断控制器能被应用于对等设备控制等更多架构。
7.基于上述目的,本发明的实施例的一个方面提供了一种防止中断丢失的方法,包括以下步骤:
8.检测系统中的事件,并判断检测到的事件是否满足预设条件;
9.基于判断结果输出控制信号;
10.基于控制信号控制中断聚合控制器中的输出结果。
11.根据本发明的一个实施例,事件包括中断响应事件、计数器事件、定时器事件和特殊置位事件。
12.根据本发明的一个实施例,检测系统中的中断响应事件包括:
13.检测cpu对中断的响应引起的与硬件的交互流程;
14.判断cpu是否进入中断响应流程;
15.响应于cpu进入中断响应流程,确定检测到中断响应事件。
16.根据本发明的一个实施例,检测系统中的计数器事件包括:
17.设定比较阈值;
18.检测聚合控制器中的计数器的计数值,并将检测到的计数值与比较阈值进行比较;
19.响应于检测到的计数值小于或者等于比较阈值,确定检测到计数器事件。
20.根据本发明的一个实施例,检测系统中的定时器事件包括:
21.检测聚合控制器中的定时器的值;
22.响应于当前时钟周期定时器的值超出时间聚合阈值且上一个时钟周期未超出,确定检测到定时器事件。
23.根据本发明的一个实施例,检测系统中的特殊置位事件包括:
24.检测特殊事件;
25.响应于当前时钟周期特殊事件标志被置位且上一个时钟周期未被置位,确定检测到特殊置位事件。
26.根据本发明的一个实施例,基于判断结果输出控制信号包括:
27.响应于检测到中断响应事件、计数器事件、定时器事件和/或特殊置位事件发生,将检测到的相应事件对应的标志寄存器进行置位;
28.响应于检测到中断响应事件,启动计时器进行倒计时;
29.响应于中断响应事件标志被置位,清零定时器事件标志和特殊置位事件标志,并输出关闭的控制信号;
30.响应于计时器倒计时回0,清零中断响应事件标志;
31.响应于中断响应事件标志为0且计数器事件标志、定时器事件标志和特殊置位事件标志中的至少一个被置位,清零计数器事件标志,并输出打开的控制信号。
32.根据本发明的一个实施例,基于控制信号控制中断聚合控制器中的输出结果包括:
33.响应于中断聚合控制器中的中断门控模块接收到关闭的控制信号,中断聚合控制器输出无效状态;
34.响应于中断聚合控制器中的中断门控模块接收到打开的控制信号,中断聚合控制器输出中断聚合控制器中的中断标志和中断屏蔽的运算结果。
35.根据本发明的一个实施例,比较阈值小于或等于中断聚合控制器的中断聚合阈值。
36.本发明的实施例的另一个方面,还提供了一种防止中断丢失的中断控制器,中断控制器包括:
37.事件检测模块,事件检测模块配置为检测系统中的事件,并判断检测到的事件是否满足预设条件;
38.门控控制模块,门控控制模块配置为基于判断结果输出控制信号;
39.中断门控模块,中断门控模块配置为基于控制信号控制中断聚合控制器中的输出结果。
40.本发明具有以下有益技术效果:本发明实施例提供的防止中断丢失的方法,通过检测系统中的事件,并判断检测到的事件是否满足预设条件;基于判断结果输出控制信号;基于控制信号控制中断聚合控制器中的输出结果的技术方案,能够避免中断丢失,能够避免了对中断标志位和中断屏蔽位等特殊寄存器的访问,使中断控制器能被应用于对等设备控制等更多架构。
附图说明
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
42.图1为根据本发明一个实施例的防止中断丢失的方法的示意性流程图;
43.图2为根据本发明一个实施例的防止中断丢失的中断控制器的示意图;
44.图3为根据本发明一个实施例的门控控制模块的内部结构示意图。
具体实施方式
45.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
46.基于上述目的,本发明的实施例的第一个方面,提出了一种防止中断丢失的方法的一个实施例。图1示出的是该方法的示意性流程图。
47.如图1中所示,该方法可以包括以下步骤:
48.s1检测系统中的事件,并判断检测到的事件是否满足预设条件。
49.s2基于判断结果输出控制信号。
50.s3基于控制信号控制中断聚合控制器中的输出结果。
51.本发明实现的方法可以在传统的中断聚合控制器的基础上增加中断门控模块、门控控制模块和事件检测模块来实现,如图2所示,事件检测模块检测系统中的事件,事件包括中断响应事件、计数器事件、定时器事件和特殊置位事件,然后将检测到事件输出给门控控制模块,门控控制模块基于检测到的事件的状态向中断门控模块发送控制信号,中断门控模块基于收到的信号控制中断聚合控制器输出的结果。
52.通过本发明的技术方案,能够避免中断丢失,同时也避免了对中断标志位和中断屏蔽位等特殊寄存器的访问,使中断控制器能被应用于对等设备控制等更多架构。
53.在本发明的一个优选实施例中,事件包括中断响应事件、计数器事件、定时器事件和特殊置位事件。
54.在本发明的一个优选实施例中,检测系统中的中断响应事件包括:
55.检测cpu对中断的响应引起的与硬件的交互流程;
56.判断cpu是否进入中断响应流程;
57.响应于cpu进入中断响应流程,确定检测到中断响应事件。
58.通过cpu对中断的响应引起的与硬件的交互流程进行检测,识别cpu进入中断响应流程这一事件。检测方式可以有多种,在中断响应的各个流程均可进行检测,例如:
59.某些cpu在进入中断处理程序后可能向该中断源发出应答信号,事件检测模块可对该信号进行持续监测;
60.当cpu处理中断时,如果需要读取中断状态寄存器,则事件检测模块可对该寄存器的地址进行读动作检测;
61.部分中断(如nvme协议的中断)需要cpu在处理完一个或若干个中断后,更新中断队列尾指针,则事件检测模块可对指针的写动作进行检测。其余类型不进行一一列举。
62.在本发明的一个优选实施例中,检测系统中的计数器事件包括:
63.设定比较阈值;
64.检测聚合控制器中的计数器的计数值,并将检测到的计数值与比较阈值进行比较;
65.响应于检测到的计数值小于或者等于比较阈值,确定检测到计数器事件。对计数器的计数值进行检测,并与设定的比较阈值进行比较,如果小于或者等于该比较阈值,则输出响应事件至门控控制模块。该比较阈值需要小于或者等于中断聚合阈值,它与中断聚合阈值的差值为一次中断处理过程可能处理的最小的中断数量(即如果小于该数量,硬件认为中断处理程序在持续处理中,并未退出),典型的阈值可以是0,即默认一旦进入中断,cpu将处理完所有的中断事件再退出,也可以设置为1/2的中断聚合阈值等。需要说明的是,即使软件处理的数量比该值的设置的小,本发明也不会导致中断丢失,仅会导致下一次发送中断并不完全与数量聚合行为一致。
66.在本发明的一个优选实施例中,检测系统中的定时器事件包括:
67.检测聚合控制器中的定时器的值;
68.响应于当前时钟周期定时器的值超出时间聚合阈值且上一个时钟周期未超出,确定检测到定时器事件。对定时器进行检测,判断定时值超出时间聚合阈值的瞬间,即如果当前时钟周期定时器超出阈值且上一个周期未超出,则向门控控制模块输出该事件。
69.在本发明的一个优选实施例中,检测系统中的特殊置位事件包括:
70.检测特殊事件;
71.响应于当前时钟周期特殊事件标志被置位且上一个时钟周期未被置位,确定检测到特殊置位事件。对特殊事件进行检测,如果当前时钟周期特殊事件标志被置位且上一个周期未被置位,则向门控控制模块输出该事件。
72.在本发明的一个优选实施例中,基于判断结果输出控制信号包括:
73.响应于检测到中断响应事件、计数器事件、定时器事件和/或特殊置位事件发生,将检测到的相应事件对应的标志寄存器进行置位;
74.响应于检测到中断响应事件,启动计时器进行倒计时;
75.响应于中断响应事件标志被置位,清零定时器事件标志和特殊置位事件标志,并输出关闭的控制信号;
76.响应于计时器倒计时回0,清零中断响应事件标志;
77.响应于中断响应事件标志为0且计数器事件标志、定时器事件标志和特殊置位事件标志中的至少一个被置位,清零计数器事件标志,并输出打开的控制信号。如图3所示,当上述4种事件发生时,分别将相应的标志寄存器置位,中断响应事件发生时,将启动计时器进行倒计时,计时器的倒计时初值可以按需要进行配置,如果当前计时器已经被启动,则该事件将使计时器重新装载初值;当中断响应标志被置位时,控制门控控制模块输出关闭的控制信号;当计时器倒计时回0时,清零中断响应标志;当中断响应标志置位时,清零定时器标志和特殊事件标志;当中断响应标志为0且计数器标志、定时器标志和特殊事件标志中的至少一个被置位时,清零计数器标志,并控制门控控制模块输出打开的控制信号。
78.上述门控控制模块的实现逻辑还可能有多种硬件实现方式,但核心的逻辑是:1、当中断响应事件发生,即检测到cpu开始处理中断时,将门控控制模块关闭,以此打断聚合条件的连续性;2、当计数器事件、定时器事件或特殊置位事件发生时,将门控控制模块重新打开,以便重新提交中断。需要说明的是,当定时器事件和特殊置位事件发生时,说明中断聚合条件满足,此时中断标志位将被置位,门控由关闭变为打开状态将使最终的中断输出由无效变为有效而被边沿检测模块检测到从而输出中断,因此满足中断聚合的条件;而计数器事件发生表明软件可能完成一次中断处理,因此打开门控控制可使计数器再次满足聚合条件时提交一次中断,因此也满足数量聚合的条件;如果cpu处理的中断数目小于阈值,则退中断后,门控处于关闭状态,在计数器再次满足聚合条件时,无法提交中断,但控制器仍然会在时间聚合满足条件时打开门控而发出中断,因此,即使软件不按规则进行处理,控制器仍可保证中断不丢失。3、为了防止在同一个时钟周期同时满足门控打开和关闭条件引发的问题,同时也为了解决在门控关闭后马上满足打开的条件而引起的频繁提交中断的问题,本发明采用延时打开门控的方式,即每一次中断响应事件发生后,即使满足打开的条件,也延时一段时间再打开门控。出于对响应速度要求的考虑或者节省硬件资源的考虑,可以将延时时间设置为1个时钟周期,从而省去定时器。
79.在本发明的一个优选实施例中,基于控制信号控制中断聚合控制器中的输出结果包括:
80.响应于中断聚合控制器中的中断门控模块接收到关闭的控制信号,中断聚合控制器输出无效状态;
81.响应于中断聚合控制器中的中断门控模块接收到打开的控制信号,中断聚合控制
器输出中断聚合控制器中的中断标志和中断屏蔽的运算结果。如图2所示,在中断屏蔽和边沿检测之间设置中断门控模块,该模块可以被设置为打开或者关闭,如果设置为关闭,则无论中断标志和中断屏蔽的输出是什么,该模块都输出无效状态;如果设置为打开,则该模块的输出等于中断标志和中断屏蔽的原运算结果。中断门控模块的核心功能在于打断中断聚合条件的连续性,如果使用其他的检测方式,则类同于边沿检测,该模块在被设置为关闭时,需要让检测逻辑认为当前中断聚合的条件不满足。
82.在本发明的一个优选实施例中,比较阈值小于或等于中断聚合控制器的中断聚合阈值。
83.下面以一个典型场景说明本发明在中断处理上的具体流程:
84.当中断事件发生时,由于中断聚合特性,中断控制器并不提交中断。当中断事件数量超过阈值后,中断控制器的边沿检测模块检测到最终的中断由无效变为有效状态,提交一次中断给cpu。cpu进入中断处理程序,读取中断状态或者中断队列,然后依次处理中断,并更新中断队列头指针。上述事件至少有一个被事件检测模块捕获到,通过中断响应事件通知门控控制模块。
85.门控控制模块收到该事件,关闭中断门控,并且启动计时器进行倒计时,cpu处理完中断队列中的若干中断后,将队列头指针移动若干个地址,该事件引起计数器计数值减少,当减少到阈值以下时,事件检测模块输出一个计数器事件,计数器事件引起计数器标志置位,但由于倒计时未结束,门控仍处于关闭状态,cpu仍然在持续处理中断,因此倒计时计数器频繁被重装载,门控始终处于关闭状态,此时即使发生特殊事件或者在cpu更新队列指针前新增的中断事件导致计数器超出阈值,中断控制器不会发出新的中断,有效避免中断嵌套或者向cpu中断队列中添加无效中断等问题。
86.cpu在处理完一定数量中断后,无需进行判断和特殊操作就可以退出中断。中断退出后,倒计时不会再被中断响应事件重装载,一定时间后倒计时结束,中断响应标志寄存器被清0,由于计数器事件标志被置位,因此门控被打开,同时将计数器事件标志、定时器事件标志和特殊置位标志清零,中断控制器此时的行为将满足标准的中断聚合控制器行为。
87.其他场景类同,可以看出在整个流程中无需cpu进行特殊的处理和判断,在任何时刻退出中断均不会丢失中断。
88.通过本发明的技术方案,能够避免中断丢失,能够避免了对中断标志位和中断屏蔽位等特殊寄存器的访问,使中断控制器能被应用于对等设备控制等更多架构。
89.需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(read-only memory,rom)或随机存取存储器(random access memory,ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
90.此外,根据本发明实施例公开的方法还可以被实现为由cpu执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被cpu执行时,执行本发明实施例公开的方法中限定的上述功能。
91.基于上述目的,本发明的实施例的第二个方面,提出了一种防止中断丢失的中断
控制器,如图2所示,中断控制器200包括:
92.事件检测模块,事件检测模块配置为检测系统中的事件,并判断检测到的事件是否满足预设条件;
93.门控控制模块,门控控制模块配置为基于判断结果输出输出控制信号;
94.中断门控模块,中断门控模块配置为基于控制信号控制中断聚合控制器中的输出结果。
95.此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
96.此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
97.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
98.在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(dsl)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、dsl或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
99.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
100.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
101.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
102.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
103.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献