一种中断处理方法以及相关装置与流程

文档序号:12863737阅读:184来源:国知局
一种中断处理方法以及相关装置与流程

本发明涉及数据处理领域,尤其涉及一种中断处理方法以及相关设备。



背景技术:

计算机系统一般包括主机设备、用户设备以及连接主机设备和用户设备的io设备。其中,用户设备在执行各类应用时,会不时的需要向主机设备的操作系统(英文:operatingsystem,缩写:os)发送中断请求以申请中断。主机设备的中央处理器(英文:centralprocessingunit,缩写:cpu)需要切换线程对中断进行处理,在此过程中会消耗大量的计算机资源,影响计算机系统的整体性能。

为了减轻主机设备处理中断的计算负担,现阶段的技术通过输出输出(英文:input/output,缩写:io)设备对用户设备发送的中断请求进行整合。具体的,用户设备向io设备发送中断请求以申请中断,io设备在接收到的中断请求次数达到预设中断次数,或在接收到中断请求的时长达到预设中断时长后,向主机设备上报中断。这样能够减少主机设备处理用户设备的中断的次数,进而节约计算机资源,提升计算机系统的性能。

但是,计算机系统的实际场景是不断变化的,无论io设备将预设中断次数和预设中断时长设置为多少,都不能保证满足所有的应用场景。因此,现阶段的计算机系统在复杂多变的应用场景下显得捉襟见肘,无法达到让用户满意的业务处理效率。



技术实现要素:

本发明提供了一种中断处理方法、相关装置以及计算设备,用于提升计算机系统的性能。

本发明第一方面提供了一种中断处理方法,适用于计算机系统中的主机设备。其中,计算机系统还包括用户设备和io设备,io设备用于接收用户设备的中断请求,并在接收到的中断请求的数量达到预设上报次数,或接收到 中断请求后经过了预设上报时长后,向主机设备上报中断。其中,主机设备获取自身的第一负载信息,进而获知主机设备的负载状态以及io设备的负载状态;主机设备还获取io设备的第二负载信息,进而获知io设备的负载状态。于是主机设备根据第一负载信息与第二负载信息,调节io设备的中断控制参数。其中,中断控制参数可以包括预设上报次数和/或预设上报时长。通过这样的方法,能够根据主机设备和io设备的负载状态来动态调整io设备的中断控制参数,使得中断控制参数的值符合计算机系统的实际运行状态,进而提升计算机系统的性能和效率。

可选的,若第一负载信息达到第一阈值,且第二负载信息未达到第二阈值,则说明主机设备超载而io设备不超载,主机设备可以调大中断控制参数,具体的可以调大预设上报次数和预设上报时长中的一项或多项,以降低主机设备的负载。

可选的,若第二负载信息达到第二阈值,且第一负载信息未达到第一阈值,则说明io设备超载而主机设备不超载,主机设备可以调小中断控制参数,具体的可以调小预设上报次数和预设上报时长中的一项或多项,以降低io设备的负载。

可选的,第一负载信息具体可以包括主机设备的cpu使用率、主机设备的内存占用率、主机设备的io速率等参数中的一项或多项,还可以包括其它的参数,还可以由一项或多项参数计算得到,以从各个方面描述主机设备的负载状态。

可选的,第二负载信息可以为与io相关的参数,具体可以包括io设备待处理的io队列的深度、io设备待处理的io队列的个数、io设备待处理的io的总数等参数中的一项或多项。此外第二负载信息还可以包括其它参数,如io设备的cpu使用率、io设备的内存占用率或其它的参数,还可以由一项或多项参数计算得到,以从各个方面描述io设备的负载状态。

可选的,第一阈值与第二阈值可以由主机设备设定,例如主机设备可以根据用户的输入指令来确定第一阈值与第二阈值、或通过数据挖掘方法来确定第一阈值与第二阈值、或根据主机设备的历史数据确定第一阈值与第二阈值的经验值。

可选的,每次上调或下调中断控制参数的幅度不超过20%,以保证计算机系统的稳定性。

本发明第二方面提供了一种中断处理装置,适用于计算机系统中的主机设备。该中断处理装置具体可以包括:第一获取模块,用于获取主机设备的第一负载信息;第二获取模块,用于获取io设备的第二负载信息;参数调节模块,用于根据第一负载信息和/或第二负载信息,调节io设备的中断控制参数,包括预设上报次数和/或预设上报时长。由于参数调节模块根据主机设备和io设备的负载状态来动态调整io设备的中断控制参数,因此中断控制参数的值能够符合计算机系统的实际运行状态,有利于提升计算机系统的性能和效率。

可选的,参数调节模块具体用于:在第一负载信息达到第一阈值且第二负载信息未达到第二阈值时,调大预设上报次数和预设上报时长中的一项或多项,以降低主机设备的负载。

可选的,参数调节模块还用于:在第二负载信息达到第二阈值且第一负载信息未达到第一阈值时,调小预设上报次数和预设上报时长中的一项或多项,以降低io设备的负载。

可选的,第一负载信息具体可以包括主机设备的cpu使用率、主机设备的内存占用率、主机设备的io速率等参数中的一项或多项,还可以包括其它的参数,还可以由一项或多项参数计算得到,以从各个方面描述主机设备的负载状态。

可选的,第二负载信息可以为与io相关的参数,具体可以包括io设备待处理的io队列的深度、io设备待处理的io队列的个数、io设备待处理的io的总数等参数中的一项或多项。此外第二负载信息还可以包括其它参数,如io设备的cpu使用率、io设备的内存占用率或其它的参数,还可以由一项或多项参数计算得到,以从各个方面描述io设备的负载状态。

可选的,中断处理装置还包括参数确定模块,用于根据用户的输入指令来确定第一阈值与第二阈值、或通过数据挖掘方法来确定第一阈值与第二阈值、或根据主机设备的历史数据确定第一阈值与第二阈值的经验值。

可选的,参数调节模块每次上调或下调中断控制参数的幅度不超过20%。

本发明第三方面提供了一种计算设备,包括处理器、存储器、通信接口以及总线。其中,通过调用存储器中存储的指令,处理器用于执行本发明第一方面提供的中断处理方法。

附图说明

图1为计算机系统的基本架构图;

图2为本发明实施例提供的中断处理方法一个实施例流程图;

图3为本发明实施例提供的中断处理装置一个实施例结构图;

图4为本发明实施例提供的计算设备一个实施例结构图。

具体实施方式

本发明提供了一种中断处理方法,用于提升计算机系统的性能。本发明还提供了相关的中断处理装置、计算设备和主机设备,以下将分别进行描述。

计算机系统的基本架构请参阅图1,主要包括主机设备和用户设备。计算机系统中还可以包括io设备,该io设备包括与用户设备对接的设备访问通道,以及与主机设备对接的io访问接口,能够协助主机设备与用户设备进行数据交互。

为了实现主机设备与用户设备之间的数据交互,io设备具体还需要包括直接内存访问(英文:directmemoryaccess,缩写:dma)模块、存储模块与控制模块。其中dma模块用于搬运主机设备侧的io命令和io数据,并将io处理结果返回给主机设备;存储模块主要用于对io命令和io数据进行缓冲,具体可以由内存等存储介质来担任;控制模块主要用于对io命令和io数据进行处理,具体可以由cpu等处理器来担任。

计算机系统中,底层的用户设备在执行各类应用时,会不时的需要向主机设备的os发送中断请求以申请中断。io密集型的计算机系统产生的中断数量尤其多。当有新的中断产生时,主机设备的cpu需要切换线程对中断进行处理,在此过程中会消耗大量的计算机资源,严重影响计算机系统的整体性能。

为了减轻主机设备处理中断的计算负担,现阶段的技术中在io设备中设 置有中断寄存器,该中断寄存器中至少设置有两个中断控制参数:预设上报次数、预设上报时长。io设备在第一次接收到用户设备发送的中断请求后启动计数并启动计时,之后每接收到一次用户设备发送的中断请求,就将计数加1。若对中断次数的计数达到预设上报次数,则io设备向主机设备上报一个中断;此外,若计时时间达到预设上报时长,则为了避免用户设备侧的应用死等,无论中断次数是否达到预设上报次数,io设备也向主机设备上报一个中断。io设备向主机设备上报中断后,便将中断寄存器中的计数和计时复位,等待用户设备侧的下一个中断请求的到来。

从上一段的论述可以看出,通过中断寄存器对用户设备上报的中断进行整合,能够减少主机设备处理用户设备的中断的次数。因此,合理设置中断寄存器的中断控制参数对提高计算机系统的性能有着重要意义。但是,计算机系统的实际场景是不断变化的,io设备的中断控制参数不能保证满足所有的应用场景。例如,在低io的场景下,用户设备侧间隔很久才会上报一个中断,此时中断控制参数需要设置的较小,否则该上报的中断往往需要等待预设上报时长后才能得到处理,系统的实时性不好。而在高io场景下,中断频繁发生,此时中断控制参数需要设置的较大,否则主机设备仍然需要频繁的处理中断,导致计算机系统的性能大幅度降低,影响业务处理的效率。因此,现阶段的计算机系统在复杂多变的应用场景下显得捉襟见肘,无法达到让用户满意的业务处理效率。

为了应对复杂多变的应用场景,提升计算机系统的业务处理效率,本发明提供了一种中断处理方法,应用与主机设备中。该中断处理方法的基本流程请参阅图2,包括:

201、获取主机设备的第一负载信息;

主机设备获取自身的第一负载信息,其中,第一负载信息用于表示主机设备的负载状态,具体可以包括主机设备的cpu使用率、主机设备的内存占用率、主机设备的io速率等参数中的一项或多项,还可以包括其它的参数,还可以由一项或多项参数计算得到,此处不做限定。

202、获取io设备的第二负载信息;

主机设备获取io设备的第二负载信息,其中,第二负载信息用于表示io 设备的负载状态。由于io设备主要用于主机设备和用户设备的数据交互,因此第二负载信息应为与io相关的参数,具体可以包括io设备待处理的io队列的深度、io设备待处理的io队列的个数、io设备待处理的io的总数等参数中的一项或多项。此外第二负载信息还可以包括其它参数,如io设备的cpu使用率、io设备的内存占用率或其它的参数,此处不做限定。

203、根据第一负载信息与第二负载信息,调节io设备的中断控制参数。

主机设备根据获取的第一负载信息与第二负载信息,调节io设备的中断控制参数。该中断控制参数可以包括上文所述的预设上报次数,和/或预设上报时长。可选的,中断控制参数可以设置在io设备的中断寄存器中,也可以设置在io设备的其它模块中,此处不做限定。

本实施例提供了一种中断处理方法,其中,主机设备获取自身的第一负载信息,并获取io设备的第二负载信息,然后根据第一负载信息与第二负载信息,调节io设备的中断控制参数。通过这样的方法,能够根据主机设备和io设备的负载状态来动态调整io设备的中断控制参数,使得中断控制参数的值符合计算机系统的实际运行状态,进而提升计算机系统的性能和效率。

其中,第一负载信息用于表示主机设备的负载状态,因此可以通过第一负载信息确定主机设备是否超载。因此可选的,主机设备可以预置有第一阈值,该第一阈值可以被理解为主机设备超载的临界值。在第一负载信息的值越大表示主机设备的负载越大的场景下,若第一负载信息达到该第一阈值,则认为主机设备的超载。在第一负载信息的值越小表示主机设备的负载越大的场景下,若第一负载信息小于该第一阈值,则认为主机设备的超载。基于与判断主机设备是否超载同样的原理,主机设备中还可以预置有第二阈值,通过将第二负载信息与第二阈值比较,可以确定io设备是否超载。

上面对主机设备和io设备的负载状态进行了介绍,下面将分析调节io设备的中断控制参数对主机设备和io设备的负载状态的影响。由于上面的论述中已经提到中断控制参数可以包括预设上报次数和/或预设上报时长,故下面将分别针对这两个中断控制参数进行论述。

(1)对于预设上报次数而言,若上调该预设上报次数,则io设备在接收到更多用户设备上报的中断请求后,才触发一次向主机设备上报中断的操 作。这样就能够减少主机设备切换线程处理中断的次数,因此能够降低主机设备的负载。但同时,上调预设上报次数势必导致io设备待处理的io队列的深度的增加,这相当于增加了io设备的负载。

同理的,若下调预设上报次数,则会增大主机设备的负载,但能够降低io设备的负载。

(2)对于预设上报时长而言,若上调该预设上报时长,则io设备在计时达到更长的时间段后,才触发一次向主机设备上报中断的操作。这样就能够减少主机设备切换线程处理中断的次数,因此能够降低主机设备的负载。但同时,上调预设上报时长势必导致io设备侧等待的io队列的深度的增加,这相当于增加了io设备的负载。

同理的,若下调预设上报时长,则会增大主机设备的负载,但能够降低io设备的负载。

在上面分析了中断控制参数对设备负载状态的影响的前提下,步骤203中根据设备的负载信息来调节中断控制参数的方法就能够进一步的细化。具体的:

(a)若第一负载信息达到第一阈值,且第二负载信息未达到第二阈值,则说明主机设备超载而io设备不超载,主机设备可以调大中断控制参数,具体的可以调大预设上报次数和预设上报时长中的一项或多项。

但是,由于调大中断控制参数会增加io设备的负载,因此主机设备应以合理的幅度调大中断控制参数,以保证第二负载信息不达到第二阈值,即保证io设备不超载。

(b)若第二负载信息达到第二阈值,且第一负载信息未达到第一阈值,则说明io设备超载而主机设备不超载,主机设备可以调小中断控制参数,具体的可以调小预设上报次数和预设上报时长中的一项或多项。

但是,由于调小中断控制参数会增加主机设备的负载,因此主机设备应以合理的幅度调小中断控制参数,以保证第一负载信息不达到第一阈值,即保证主机设备不超载。

其中,若对中断控制参数的调节幅度过大,则有可能对系统的稳定性造成较大冲击。因此可选的,每次上调或下调中断控制参数的幅度不宜超过 20%。

可选的,若第一负载信息达到第一阈值,且第二负载信息达到第二阈值,则说明主机设备和io设备均超载,此时主机设备可以根据主机设备和io设备的超载情况权衡如何调节中断控制参数,也可以维持原中断控制参数不变,此处不做限定。

值得指出的是,在计算机系统繁忙状态下,用户设备频繁产生中断请求。io设备往往在计时未达到预设上报时长时就接收到了预设上报次数的中断请求,并触发向主机设备上报中断的操作。在这种场景下,小幅度的调节预设上报时长不会显著改变主机设备或io设备的负载状态,因此主机设备可以优先调节预设上报次数。

而在计算机系统空闲状态下,用户设备在预设上报时长内产生的中断请求数目达不到预设上报次数,向主机设备上报中断的操作往往是因为计时达到预设上报时长而触发。在这种场景下,io设备待处理的io队列很浅,在此基础上合理调大预设上报时长虽然会增加io队列的深度,但是仍能够保证io设备不超载,同时还能够大幅度降低主机设备的负载。因此,在系统空闲的场景中,下调预设上报时长具有更好的实用意义。

其中,本申请不限定步骤201与步骤202之间的顺序,步骤202也可以在步骤201之前执行。但是可选的,计算机系统可以优先考虑主机设备的负载状态,即先执行步骤201获取主机设备的第一负载信息,在获取到的第一负载信息达到第一阈值的情况下,才认为需要调节io设备的中断控制参数,于是触发执行步骤202获取第二负载信息的操作。

可选的,第一阈值与第二阈值可以由io设备默认设定、或由用户自行设定、也可以由主机设备设定。其中,主机设备设定第一阈值与第二阈值的方法有很多,例如可以根据用户的输入指令来确定第一阈值与第二阈值、或通过数据挖掘方法来确定第一阈值与第二阈值、或根据主机设备的历史数据确定第一阈值与第二阈值的经验值,也可以通过其它方法确定第一阈值与第二阈值,此处不做限定。

可选的,为了便于和io设备进行交互管理,主机设备中还可以配置有io驱动,用于实现获取io设备的第二负载信息,以及调节io设备的中断控制 参数的操作。具体的,主机设备的os确定调节中断控制参数,并向io驱动下发参数调节指令。io驱动接收到该参数调节指令后,获取io设备当前已完成和未完成的io。io驱动保存当前未完成的io,然后根据主机设备下发的参数调节指令调节io设备的中断控制参数。在中断控制参数调节结束后,io驱动控制io设备再次执行未完成的io。

本发明还提供了一种中断处理装置,该中断处理装置可以是设置于主机设备中的功能模块或集成组件,也可以是主机设备本身,此处不做限定。该中断处理装置在运行时执行图2所示的实施例所介绍的中断处理方法。其中,该中断处理装置的基本结构请参阅图3,包括:

第一获取模块301,用于获取主机设备的第一负载信息;

第二获取模块302,用于获取io设备的第二负载信息;

参数调节模块303,用于根据第一负载信息和/或第二负载信息,调节io设备的中断控制参数。

本实施例提供了一种中断处理方法,其中,第一获取模块301获取自身的第一负载信息,第二获取模块302获取io设备的第二负载信息,参数调节模块303根据第一负载信息与第二负载信息,调节io设备的中断控制参数。通过这样的方法,使得中断处理装置能够根据主机设备和io设备的负载状态来动态调整io设备的中断控制参数,使得中断控制参数的值符合计算机系统的实际运行状态,进而提升计算机系统的性能和效率。

可选的,参数调节模块303具体可以在第一负载信息达到第一阈值,且第二负载信息未达到第二阈值时,调大io设备的中断控制参数;和/或,在第一负载信息未达到第一阈值,且第二负载信息达到第二阈值时,调小io设备的中断控制参数。

可选的,第一负载信息用于表示主机设备的负载状态,具体可以包括主机设备的cpu使用率、主机设备的内存占用率、主机设备的io速率等参数中的一项或多项。

可选的,第二负载信息用于表示io设备的负载状态,具体可以包括io设备待处理的io队列的深度、io设备待处理的io队列的个数、io设备待处理的io的总数、io设备的cpu使用率、io设备的内存占用率等参数中的一 项或多项。

可选的,中断处理装置还可以包括可选模块:参数确定模块304,用于确定第一阈值和/或第二阈值,具体可以根据用户的输入指令来确定第一阈值与第二阈值、或通过数据挖掘方法来确定第一阈值与第二阈值、或根据主机设备的历史数据确定第一阈值与第二阈值的经验值,也可以通过其它方法确定第一阈值与第二阈值。

可选的,参数调节模块303每次调节io设备的中断控制参数的幅度不超过io设备的中断控制参数的20%。

图3所示的中断处理装置的运行方法可以参考图2所示的中断处理方法的相关描述,此处不做赘述。

本发明实施例还提供了一种计算设备400,图3所示的中断处理装置可以该计算设备400实现。该计算设备400的具体结构请参阅图4,主要包括处理器401、存储器402、通信接口403以及总线404。其中,处理器401、存储器402和通信接口403可以通过总线404实现彼此之间的通信连接,也可以通过无线传输等其他手段实现通信。

存储器402存储器可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-onlymemory,缩写:rom),快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:hdd)或固态硬盘(英文:solid-statedrive,缩写:ssd);存储器402还可以包括上述种类的存储器的组合。在通过软件来实现本发明提供的技术方案时,用于实现本发明提供的中断处理方法的程序代码可以保存在存储器402中,并由处理器401来执行。

计算设备400通过通信接口404获取io设备的第二负载信息,并通过通信接口404调节io设备的中断控制参数。

处理器401可以为cpu、图形处理器(英文:graphicsprocessingunit,缩写:gpu)、数字信号处理(英文:digitalsignalprocessing,缩写:dsp)、现场可编程门阵列(英文:field-programmablegatearray,缩写:fpga)、硬件芯片等具有处理功能的硬件单元中的任意一种或几种的组合。处理器401 主要用于获取主机设备的第一负载信息以及io设备的第二负载信息,然后根据第一负载信息以及第二负载信息确定如何调节中断控制参数。具体的调节方法可以参考图2所示的中断处理方法中的相关描述,此处不做赘述。

本发明还提供了一种主机设备,具体可以包括图3所示的中断处理装置,或图4所示的计算设备。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1