一种中断信号处理方法以及中断信号处理装置
未命名
07-20
阅读:59
评论:0

1.本发明属于计算机技术领域,涉及一种中断信号处理方法以及中断信号处理装置。
背景技术:
2.虚拟化技术是现代计算机系统中广泛使用的一种技术,它可以将一台物理计算机划分成多个虚拟机,每个虚拟机拥有自己的操作系统和应用程序。虚拟化技术可以提供许多有用的特性,例如资源隔离、动态调整资源和热迁移等。
3.随着计算机系统规模的不断扩大,虚拟化技术在企业数据中心和云计算等领域的应用越来越广泛。虚拟化技术已经成为计算机科学研究领域的重要热点之一。虽然虚拟化技术在许多领域都有广泛的应用,但在实际应用中,虚拟机性能问题一直是一个瓶颈。在虚拟化环境中,由于虚拟机与物理设备之间需要进行中间层的交互,从而导致了虚拟机性能的下降。其中,i/o活动是虚拟机性能下降的主要因素之一。
4.当i/o设备生成中断以通知cpu i/o操作完成时,每个设备中断都会触发一个昂贵的退出,导致客户端被挂起和主机被恢复,即使设备没有被分配给客户端。主机首先向硬件发出信号表明物理中断已完成,然后注入一个相应的(虚拟)中断到客户机中,并恢复客户端执行。客户端接下来会处理虚拟中断,发出完成信号,认为它直接与硬件交互。此操作将再次触发一个退出,提示主机模拟虚拟中断的完成,并再次恢复客户机。
5.比如在处理数据包时,后端驱动程序会立即中断客户端操作系统,表明数据包已准备就绪。虽然该方案实现了最佳响应时间,但对于延迟密集型工作负载有好处,但会导致客户机操作系统受到过多的虚拟中断干扰,从而显著降低虚拟机性能。在虚拟化环境中,虚拟中断处理要比物理中断处理产生的开销要高得多。因此,如何减少虚拟机在处理中断时切换上下文产生的开销以提高中断效率,从而提高虚拟机性能,是急需解决的问题。
技术实现要素:
6.本发明提供一种中断信号处理方法以及中断信号处理装置,其能够增强虚拟机性能。
7.本技术提供一种中断信号处理方法,包括:接收第一中断信号;将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号;基于所述第二中断信号进行中断处理。
8.其中,将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号的步骤之前包括:检测当前虚拟机的负载信息;基于所述负载信息确定所述预设时间段。
9.其中,所述预设时间段与虚拟机的负载信息负相关。
10.其中,所述负载信息包括所述当前虚拟机的利用率、内存使用信息中至少一种。
11.其中,所述接收第一中断信号的步骤,包括:按照优先级对所述第一中断信号进行排序。
12.其中,将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号的步骤,包括:确定所述预设时间段内的所述第一中断信号的数量;响应于所述预设时间段内的所述第一中断信号的数量大于预设值,则将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。
13.本技术提供一种中断信号处理装置,包括:中断信号接收模块,用于接收第一中断信号;中断信号合并模块,用于将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号;中断处理模块,用于基于所述第二中断信号进行中断处理。
14.其中,还包括:检测模块,用于检测当前虚拟机的负载信息;定时模块,用于基于所述负载信息确定所述预设时间段;并且响应于每一预设时间段,所述中断信号合并模块将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。
15.其中,还包括:计数模块,用于确定所述预设时间段内的所述第一中断信号的数量;响应于所述预设时间段内的所述第一中断信号的数量大于预设值,所述中断信号合并模块将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。
16.其中,所述预设时间段与虚拟机的负载信息负相关。
17.本技术提供的一种中断信号处理方法,包括:接收第一中断信号;将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号;基于所述第二中断信号进行中断处理。在虚拟机中,中断信号合并技术可以通过减少虚拟机与物理设备之间的中断交互次数,来提高虚拟机的性能。
附图说明
18.图1是本技术本技术中断信号处理方法的一实施例的流程示意图;
19.图2是本技术本技术中断信号处理装置的一实施例的结构示意图;
20.图3是中断控制器的结构示意图。
具体实施方式
21.为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对本发明进行详细说明。有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
22.请参见图1,图1为本技术中断信号处理方法的一实施例的流程示意图,具体包括:
23.步骤s11:接收第一中断信号。
24.具体的,创建一个用于存储第一中断信号的优先队列,当第一中断信号到达时,接收该第一中断信号,并将其添加到队列中进行存储。
25.在一实施例中,可以确定多个第一中断信号的优先级,按照优先级对所述第一中断信号进行排序,然后将排序后的第一中断信号添加到队列中进行存储。
26.步骤s12:将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。
27.具体的,将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。
在一实施例中,可以确定预设时间段内每一个第一中断信号的来源,将来源相同的第一中断信号进行合并,从而减少中断信号的数量。
28.在虚拟机中,中断信号合并技术可以通过减少虚拟机与物理设备之间的中断交互次数,来提高虚拟机的性能。
29.在一实施例中,可以检测当前虚拟机的负载信息;基于所述负载信息确定所述预设时间段。所述预设时间段与虚拟机的负载信息负相关。具体的,负载越大,预设时间段所占时间越短,负载越小,预设时间段所占时间越长。
30.在一实施例中,负载信号包括所述当前虚拟机的利用率、内存使用信息中至少一种。可以理解的,当前虚拟机得利用率越高,则说明越高,则说明负载越大;内存使用越多,则说明负载越大。
31.本技术基于当前虚拟机的负载信息确定预设时间段,能够提高系统资源利用率。
32.在一实施例中,确定所述预设时间段内的所述第一中断信号的数量;响应于所述预设时间段内的所述第一中断信号的数量大于预设值,则将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。具体的,在预设时间段内的第一中断信号数量较少时,可以不进行合并操作。例如,预设时间段内第一中断信号数量为1时,可以不进行合并操作。或者,在预设时间段内第一中断信号数量小于5时,可以不进行合并操作。预设值可以根据需要设置,在此不做限定。
33.步骤s13:基于所述第二中断信号进行中断处理。
34.本技术的中断信号处理方法,可以通过减少虚拟机与物理设备之间的中断交互次数,来提高虚拟机的性能。并且基于当前虚拟机的负载信息确定预设时间段,能够提高系统资源利用率。
35.请参见图2,图2为本技术中断信号处理装置的一实施例的结构示意图,具体包括:中断信号接收模块21、中断信号合并模块22以及中断处理模块23。具体的,中断信号接收模块21用于接收第一中断信号;中断信号合并模块22用于将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号;中断处理模块23用于基于所述第二中断信号进行中断处理。
36.在一实施例中,请结合图3,中断信号接收模块21包括中断请求寄存器irr,中断请求寄存器irr创建一个用于存储第一中断信号的优先队列,当第一中断信号到达时,接收该第一中断信号,并将其添加到队列中进行存储。具体的,中断请求寄存器irr保存从ir0-ir7来的中断请求信号。某一位为1表示相应引脚上有中断请求信号。该中断请求信号至少应保持到该请求被响应为止。中断响应后,该ir输入线上的请求信号应撤销,否则,在中断处理完结后,该ir线上的高电平可能会引起又一次中断服务。
37.在一实施例中,中断信号接收模块21还可以包括优先级寄存器pr,优先级寄存器pr可以确定多个第一中断信号的优先级,按照优先级对所述第一中断信号进行排序,然后将排序后的第一中断信号添加到队列中进行存储。
38.在一实施例中,中断信号处理装置还包括检测模块和定时模块,检测模块用于检测当前虚拟机的负载信息;定时模块用于基于所述负载信息确定所述预设时间段;并且响应于每一预设时间段,所述中断信号合并模块将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。
39.在一实施例中,检测模块可以检测当前虚拟机的负载信息;基于所述负载信息确定所述预设时间段。所述预设时间段与虚拟机的负载信息负相关。具体的,负载越大,预设时间段所占时间越短,负载越小,预设时间段所占时间越长。
40.在一实施例中,负载信号包括所述当前虚拟机的利用率、内存使用信息中至少一种。可以理解的,当前虚拟机得利用率越高,则说明越高,则说明负载越大;内存使用越多,则说明负载越大。
41.本技术基于当前虚拟机的负载信息确定预设时间段,能够提高系统资源利用率。
42.在一实施例中,中断信号处理装置还包括计数模块,计数模块用于确定所述预设时间段内的所述第一中断信号的数量;响应于所述预设时间段内的所述第一中断信号的数量大于预设值,所述中断信号合并模块将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。
43.请继续参见图3,中断信号处理装置还包括:正在服务寄存器isr、中断屏蔽寄存器imr、qemu(quick emulator,虚拟操作系统模拟器)控制逻辑以及中断判优电路。其中,中断服务寄存器isr用于保存所有正在服务的中断源。是8位的寄存器(is0-is7分别对应ir0-ir7)。在中断响应时,中断判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位置为1,表示该中断请求正在处理中,isr的某一位isi置为1可阻止与它同级及更低优先级的请求被响应,但不阻止比它优先级更高的中断请求被响应,即允许中断嵌套,所以,isr中可能不只有一位被置1,当收到中断结束(eoi)命令时,isr相应位会被清除。对自动eoi操作,isr寄存器中刚被置1的位在中断相应结束时自动复位。
44.中断屏蔽寄存器imr用于存放中断屏蔽字,它的每一位分别与ir7-ir0相对应。其中为1的位所对应的中断请求输入将被屏蔽,为0的位所对应的中断请求输入不受影响。
45.中断判优电路监测从irr,isr,和imr来的输入,并确定是否应向cpu发出中断请求。在中断响应时,它要确定isr寄存器哪一位应置为1,并将相应的中断类型码送给cpu。在eoi命令时,它要决定isr寄存器哪一位应复位。
46.而qemu控制逻辑的中断控制器是通过hw/intc/i8259.c文件实现的。在该文件中,定义了一个名为piccommonstate的结构体,它表示了8259芯片的状态,包括中断请求寄存器(irr)、中断屏蔽寄存器(imr)、中断服务寄存器(isr)等等。该文件中定义了一系列的回调函数,用于处理中断请求的更新、中断优先级的计算以及中断请求的响应等操作。在qemu_irq中,将中断源(如键盘、鼠标等)与中断控制器(该中断控制器例如可以为8259)相连接,当中断源触发中断时,中断控制器会更新irr寄存器并计算当前中断优先级,根据中断优先级决定是否发送中断请求信号。如果发送了中断请求信号,则触发cpu中断处理流程。
47.具体来说,qemu在piccommonstate结构体中维护了8259中断控制器的各种状态,如中断请求寄存器(irr)、中断屏蔽寄存器(imr)、中断服务寄存器(isr)、等。在pic_set_irq函数中,qemu通过响应虚拟设备的中断信号来设置中断控制器的状态,然后在pic_update_irq函数中更新中断控制器的输出信号(int)状态。最后在pic_get_irq函数中,qemu根据中断控制器当前的状态,计算出优先级最高的中断信号。最后,在pic_intack函数中,qemu根据中断控制器的工作模式(自动eoi或手动eoi)来处理中断。
48.本发明中的中断合并技术是一种优化计算机系统性能的技术,它可以将多个相同
来源的中断合并为一个中断处理,从而减少中断数量,提高系统效率。在虚拟机中,中断合并技术可以通过减少虚拟机与物理设备之间的中断交互次数,来提高虚拟机的性能。
49.具体的,本发明具有以下优点:
50.改进虚拟机性能:单个虚拟机中可能存在大量的中断请求,导致cpu频繁地在虚拟机之间进行上下文切换,从而影响整个系统的性能。本发明通过将分散的中断合并到单个实体中,可以减少cpu对io操作的调度,从而增强虚拟机性能。
51.实现简单:只需要修改qemu的中断控制器部分就可以实现中断合并功能。
52.执行效率高:本发明仅对虚拟化中断控制器进行了扩展,不增加额外的开销。这是因为中断合并的实现方式相对简单,不需要增加额外的硬件或软件开销。同时,中断合并的实现可以减少cpu对io操作的调度,从而提高中断处理效率。因此,本发明可以有效地提高虚拟机性能,同时不会增加额外的成本和开销。
53.提高中断处理性能:本发明通过分析qemu中断处理和中断控制器仿真原理,以及中断框架仿真原理,提供了一种更高效可靠的中断处理解决方案,从而提高中断处理性能。
54.优化系统资源利用:通过监控虚拟机的负载情况,根据负载情况调整中断处理,提高系统资源利用率。
55.以上仅为本发明的实施方法,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:
1.一种中断信号处理方法,其特征在于,包括:接收第一中断信号;将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号;基于所述第二中断信号进行中断处理。2.根据权利要求1所述的中断信号处理方法,其特征在于,将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号的步骤之前包括:检测当前虚拟机的负载信息;基于所述负载信息确定所述预设时间段。3.根据权利要求2所述的处理方法,其特征在于,所述预设时间段与虚拟机的负载信息负相关。4.根据权利要求2所述的处理方法,其特征在于,所述负载信息包括所述当前虚拟机的利用率、内存使用信息中至少一种。5.根据权利要求1~4任一项所述的处理方法,其特征在于,所述接收第一中断信号的步骤,包括:按照优先级对所述第一中断信号进行排序。6.根据权利要求1~4任一项所述的处理方法,其特征在于,将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号的步骤,包括:确定所述预设时间段内的所述第一中断信号的数量;响应于所述预设时间段内的所述第一中断信号的数量大于预设值,则将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。7.一种中断信号处理装置,其特征在于,包括:中断信号接收模块,用于接收第一中断信号;中断信号合并模块,用于将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号;中断处理模块,用于基于所述第二中断信号进行中断处理。8.根据权利要求7所述的处理装置,其特征在于,还包括:检测模块,用于检测当前虚拟机的负载信息;定时模块,用于基于所述负载信息确定所述预设时间段;并且响应于每一预设时间段,所述中断信号合并模块将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。9.根据权利要求8所述的处理装置,其特征在于,还包括:计数模块,用于确定所述预设时间段内的所述第一中断信号的数量;响应于所述预设时间段内的所述第一中断信号的数量大于预设值,所述中断信号合并模块将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号。10.根据权利要求8所述的处理装置,其特征在于,所述预设时间段与虚拟机的负载信息负相关。
技术总结
本发明提供一种中断信号处理方法以及中断信号处理装置,包括:接收第一中断信号;将预设时间段内的多个所述第一中断信号进行合并,得到第二中断信号;基于所述第二中断信号进行中断处理。在虚拟机中,中断信号合并技术可以通过减少虚拟机与物理设备之间的中断交互次数,来提高虚拟机的性能。来提高虚拟机的性能。来提高虚拟机的性能。
技术研发人员:张海宾 冯鑫 胡应宽 王煜鑫 李航 李晓军
受保护的技术使用者:西安电子科技大学
技术研发日:2023.03.16
技术公布日:2023/7/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/