一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统技术方案

技术编号:28498642 阅读:17 留言:0更新日期:2021-05-19 22:37
本发明专利技术提供了一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统,涉及ARM硬件架构的虚拟化技术领域,该方法包括:虚拟中断采集步骤:将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器;虚拟中断注入步骤:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中。本发明专利技术能够满足嵌入式操作系统的实时性需求,具有良好的通用性,且适用于嵌入式多核系统。统。统。

【技术实现步骤摘要】
一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统


[0001]本专利技术涉及ARM硬件架构的虚拟化
,具体地,涉及一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统。

技术介绍

[0002]ARM硬件架构中对中断的处理流程为:由中断控制器GIC汇集硬中断产生的中断信号或者由指令直接给出软中断的中断信号,然后通知CPU;CPU保存当前程序的运行环境,然后调用中断服务程序来处理该中断;中断服务程序通过读取相关寄存器识别出中断类型,接着执行相应的处理;中断请求执行完毕后,将通过读写相关中断控制寄存器清除中断;最后恢复被中断程序的执行环境,继续执行被中断的程序。
[0003]为了支持在同一个嵌入式硬件平台上同时运行多个隔离的执行环境,需要在原有的架构基础上,添加一个虚拟机管理器VMM的中间层,由VMM作为系统软件直接管理所有的硬件设备,多个隔离的执行环境通过调用VMM提供的服务接口运行在VMM之上。在添加虚拟机管理器VMM之后,为了不影响应用执行环境内客户操作系统对中断响应过程,需要VMM对中断进行虚拟化处理,主要涉及虚拟中断采集与虚拟中断注入,对于中断的处理则交由虚拟机的客户操作系统进行实现。
[0004]由于嵌入式领域的独特性,将虚拟化技术应用到嵌入式领域内,通常采用基于微内核设计模式的VMM。现有的基于微内核设计模式的虚拟化方案有Xen,但是Xen为了降低设计的复杂性,将大部分硬件设备都移交给Linux根域进行管控,对于中断虚拟化的处理也需要VMM和根域共同完成,这种处理流程不仅复杂而且低效。

技术实现思路

[0005]针对现有技术中的缺陷,本专利技术的目的是提供一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统,能够满足嵌入式操作系统的实时性需求,具有良好的通用性,且适用于嵌入式多核系统。
[0006]根据本专利技术提供的一种面向ARM架构虚拟化领域的中断虚拟化处理方法及系统,所述方案如下:
[0007]第一方面,提供了一种面向ARM架构虚拟化领域的中断虚拟化处理方法,所述方法包括:
[0008]虚拟中断采集步骤:将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器;
[0009]虚拟中断注入步骤:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中。
[0010]优选的,所述虚拟中断采集步骤包括:
[0011]VMM在收到中断请求后,首先将中断类型修改为HYP_IRQ,接着VMM将会把该HYP_IRQ发送给对应的虚拟机;
[0012]虚拟机在收到HYP_IRQ时,需要判断该中断是不是该虚拟机所拥有的:
[0013]若是,接着将中断发送给对应的虚拟中断控制器;
[0014]若不是,该虚拟机所拥有的中断,则不需要任何处理。
[0015]优选的,所述虚拟中断注入步骤包括:
[0016]当某个vCPU被调度到重新获得物理CPU的使用权时,就按照虚拟机内客户操作系统的中断服务处理流程进行中断处理。
[0017]优选的,所述虚拟中断注入步骤包括:
[0018]虚拟时钟设备vTimer所产生的时钟IRQ中断:
[0019]步骤2

1:虚拟机正常执行,此时虚拟时钟设备vTimer发出时钟IRQ中断;
[0020]步骤2

2:触发时钟IRQ中断将会使虚拟机退出,并交由位于VMM内核态中vbar_el2所对应中断处理函数进行中断处理,依据中断处理函数,VMM内核态的vCPU管理模块分析虚拟机退出原因,接着会切换到VMM用户态的vCPU管理模块;
[0021]步骤2

3:返回VMM用户态vCPU管理模块,会再一次触发时钟IRQ中断,触发IRQ中断将会进入到宿主机的vbar_el1所对应中断处理函数进行中断处理;
[0022]步骤2

4:vbar_el1所对应中断处理函数将根据请求的中断号,进行相应的中断处理;
[0023]步骤2

5:中断请求完毕后,将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理;
[0024]步骤2

6:VMM用户态vCPU管理模块根据VMM内核态vCPU管理模块返回的HYP_IRQ中断信息,调用VMM内核态所提供的服务,获取HYP_IRQ中断号,并将该中断号注入到对应的vCPU内;
[0025]步骤2

7:中断注入之后,VMM用户态vCPU管理模块将会调用VMM内核态服务重新运行被中断的虚拟机的vCPU。
[0026]优选的,所述步骤2

5具体包括:
[0027]中断请求完毕后,VMM用户态vCPU管理模块接着进行后续RERUN处理;
[0028]RERUN处理结束后,进入到VMM内核态vCPU管理模块,VMM内核态vCPU管理模块将虚拟机退出原因修改为HYP_IRQ中断所导致的,因此会将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理。
[0029]第二方面,提供了一种面向ARM架构虚拟化领域的中断虚拟化处理系统,所述系统包括:
[0030]虚拟中断采集模块:将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器;
[0031]虚拟中断注入模块:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中。
[0032]优选的,所述虚拟中断采集模块包括:
[0033]VMM在收到中断请求后,首先将中断类型修改为HYP_IRQ,接着VMM将会把该HYP_IRQ发送给对应的虚拟机;
[0034]虚拟机在收到HYP_IRQ时,需要判断该中断是不是该虚拟机所拥有的:
[0035]若是,接着将中断发送给对应的虚拟中断控制器;
[0036]若不是,该虚拟机所拥有的中断,则不需要任何处理。
[0037]优选的,所述虚拟中断注入模块包括:
[0038]当某个vCPU被调度到重新获得物理CPU的使用权时,就按照虚拟机内客户操作系统的中断服务处理流程进行中断处理。
[0039]优选的,所述虚拟中断注入模块包括:
[0040]虚拟时钟设备vTimer所产生的时钟IRQ中断:
[0041]模块2

1:虚拟机正常执行,此时虚拟时钟设备vTimer发出时钟IRQ中断;
[0042]模块2

2:触发时钟IRQ中断将会使虚拟机退出,并交由位于VMM内核态中vbar_el2所对应中断处理函数进行中断处理,依据中断处理函数,VMM内核态的vCPU管理模块分析虚拟机退出原因,接着会切换到VMM用户态的vCPU管理模块;
[0043]模块2

3:返回VMM用户态vCPU管理模块,会再一次触发时钟IRQ中断,触发IRQ中断本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向ARM架构虚拟化领域的中断虚拟化处理方法,其特征在于,所述方法包括:虚拟中断采集步骤:将虚拟机的中断请求送入对应的虚拟中断控制器中的寄存器;虚拟中断注入步骤:虚拟中断控制器采集到虚拟中断请求,将按照VMM排定的优先级,将虚拟中断逐一注入到对应的vCPU中。2.根据权利要求1所述的方法,其特征在于,所述虚拟中断采集步骤包括:步骤1

1:VMM在收到中断请求后,首先将中断类型修改为HYP_IRQ,接着VMM将会把该HYP_IRQ发送给对应的虚拟机;步骤1

2:虚拟机在收到HYP_IRQ时,需要判断该中断是不是该虚拟机所拥有的:若是,接着将中断发送给对应的虚拟中断控制器;若不是,该虚拟机所拥有的中断,则不需要任何处理。3.根据权利要求1所述的方法,其特征在于,所述虚拟中断注入步骤包括:当某个vCPU被调度到重新获得物理CPU的使用权时,就按照虚拟机内客户操作系统的中断服务处理流程进行中断处理。4.根据权利要求1所述的方法,其特征在于,所述虚拟中断注入步骤包括:虚拟时钟设备vTimer所产生的时钟IRQ中断:步骤2

1:虚拟机正常执行,此时虚拟时钟设备vTimer发出时钟IRQ中断;步骤2

2:触发时钟IRQ中断将会使虚拟机退出,并交由位于VMM内核态中vbar_el2所对应中断处理函数进行中断处理,依据中断处理函数,VMM内核态的vCPU管理模块分析虚拟机退出原因,接着会切换到VMM用户态的vCPU管理模块;步骤2

3:返回VMM用户态vCPU管理模块,会再一次触发时钟IRQ中断,触发IRQ中断将会进入到宿主机的vbar_el1所对应中断处理函数进行中断处理;步骤2

4:vbar_el1所对应中断处理函数将根据请求的中断号,进行相应的中断处理;步骤2

5:中断请求完毕后,将HYP_IRQ中断发送到VMM用户态vCPU管理模块进行逻辑处理;步骤2

6:VMM用户态vCPU管理模块根据VMM内核态vCPU管理模块返回的HYP_IRQ中断信息,调用VMM内核态所提供的服务,获取HYP_IRQ中断号,并将该中断号注入到对应的vCPU内;步骤2

7:中断注入之后,VMM用户态vCPU管理模块将会调用VMM内核态服务重新运行被中断的虚拟机的vCPU。5.根据权利要求4所述的方法,其特征在于,所述步骤2

5具体包括:步骤2
‑5‑
1:中断请求完毕后,VMM用户态vCPU管理模块接着进行后续RERUN处理;步骤2
‑5‑
2:RERUN处理结束后,进入到VMM内核态vCPU管理模块,VMM内核态vCPU管理模块将虚拟机退出原因修改为HYP_IRQ中断所导致的,因...

【专利技术属性】
技术研发人员:左龙王涵杨沧海夏卫
申请(专利权)人:华东计算技术研究所中国电子科技集团公司第三十二研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1