实现嵌入式虚拟机硬实时虚拟定时器响应的方法

文档序号:6538473阅读:317来源:国知局
实现嵌入式虚拟机硬实时虚拟定时器响应的方法
【专利摘要】本发明公开了一种实现嵌入式虚拟机硬实时虚拟定时器响应的方法,其特征在于:步骤如下:通过在Hypervisor中构建定时器中断派发表,将有限的硬件定时器中断,通过Hypervisor的中断派发表进行直接派发,从而减少原有虚拟机事件通道、虚拟时钟等方式带来的延迟,并能实现嵌入式处理器平台中有限的硬件定时器中断在多个分区间的共享。本发明通过减少原有虚拟机事件通道、虚拟时钟等方式带来的延迟,并能实现嵌入式处理器平台中有限的硬件定时器中断在多个分区间的共享,从而提高虚拟机分区的虚拟定时器精度与响应速度,最终解决嵌入式虚拟化技术在航天领域内应用所面临的一大难题。
【专利说明】实现嵌入式虚拟机硬实时虚拟定时器响应的方法
【技术领域】
[0001]本发明属于虚拟机软件开发领域,具体地说,涉及一种实现嵌入式虚拟机硬实时虚拟定时器响应的方法。
【背景技术】
[0002]以ARINC653规范为代表的综合模块化航空电子系统(IMA)已经成为第四代航空电子系统的实际标准,在航空航天、能源国防领域内得到了普遍应用。而随着虚拟化技术的发展,利用Hypervisor提供的虚拟机分区机制来提供安全性、隔离性、复用性,广泛应用于高性能计算、商业服务器领域,并衍生出诸多采用虚拟化方法实现ARINC653标准的嵌入式实时操作系统,如 XtratuM、Integrity、PikeOS 等。
[0003]在航天领域内,尤其是火箭、导弹等运载器控制系统中,点火控制、停机控制、数据采集等诸多应用对时间准确性要求高,定时器响应精度直接影响飞行器的导航、定位精度,以及飞行器的任务执行。
[0004]传统虚拟化技术,并没有考虑航空航天、能源国防等诸多领域控制系统对实时性的考虑。如Xen-ARM,将系统定时器中断通过事件机制向虚拟机分区中进行传递,并在事件处理过程中更新虚拟机分区中的虚拟定时器的值。Xen默认每隔10毫秒为每个虚拟机分区更新虚拟定时器,也就是虚拟机分区的定时器有可能最多延迟到10毫秒。在嵌入式虚拟化操作系统XtratuM中,为了提高系统的时间响应速度,在ARINC653规范定义的事件分区调度之外,采用了基于优先级调度的方法,从而使得高优先级分区能够尽早得到响应,并为每个虚拟分区分配一个硬件定时器,作为虚拟分区时钟。优先级调度的方式只能满足高优先级分区尽早得到调度,仍然无法满足分区内定时器能够及时更新,当分区未被调度运行时,其内部定时器仍然无法及时得到更新,从而定时器事件无法得到响应。在某些研究中,研究人员将高性能处理器平台中的多个高精度时钟中断(如Intel HPET)直接映射到指定的虚拟机分区中,从而虚拟机分区的虚拟定时器直接绑定到硬件定时器中,硬件定时器产生的中断信号直接通过虚拟中断的方式传递给虚拟机分区,从而提高虚拟化分区的虚拟定时器响应速度。
[0005]在嵌入式尤其是航天领域内,上述方法存在如下问题:
[0006]1、传统虚拟化技术采用的事件通道传递虚拟定时器中断的方法,虚拟分区内部时钟与实际物理时钟存在着一定的偏差,这种偏差最大可以到一个调度周期,乃至数十毫秒,对于硬实时控制系统而言,很多情况下无法满足应用需求。
[0007]2、通过优先级调度,能够尽可能加快高优先级任务的响应速度,但是优先级与定时器中断到达时间无直接关联,即使高优先级分区,在虚拟机分区不处于调度窗口时,其内部时钟仍然无法即使更新,从而无法保证内部虚拟定时器的响应速度。
[0008]3、在嵌入式平台尤其是航天嵌入式平台中,大量采用的是SPARC、ARM等嵌入式处理器,其硬件定时器相对有限(如SPARC V8处理器只有2个硬件定时器),无法为每个虚拟机分区提供独立的硬件定时器以进行映射,这样就无法采用上述硬件定时器直接映射方式 来提高分区的虚拟定时器响应速度的方法。

【发明内容】

[0009]本发明要解决的技术问题是克服上述缺陷,提供一种利用虚拟化技术提供的时空隔离等安全性机制的同时,保证强实时应用对高精度定时器的需求,从而实现强实时、高安全嵌入式虚拟化系统的实现嵌入式虚拟机硬实时虚拟定时器响应的方法。
[0010]为解决上述问题,本发明所采用的技术方案是:
[0011]一种实现嵌入式虚拟机硬实时虚拟定时器响应的方法,其特征在于:步骤如下:通过在Hypervisor中构建定时器中断派发表,将有限的硬件定时器中断,通过Hypervisor的中断派发表进行直接派发,从而减少原有虚拟机事件通道、虚拟时钟等方式带来的延迟,并能实现嵌入式处理器平台中有限的硬件定时器中断在多个分区间的共享。
[0012]作为一种改进,响应方法的步骤如下:
[0013]I)、在嵌入式处理器平台中设置32位定时器,包括定时器I和定时器2,并且将虚拟机设置有虚拟机分区I (VMl)、虚拟机分区2 (VM2);
[0014]2)、定时器I被用于Hypervisor的系统时钟,为分区操作系统提供虚拟时钟中断,维护整个系统的时钟;
[0015]3)、定时器2用于硬件定时器中断,在Hypervisor空间构建定时器中断派发表,派发表的表项有虚拟机分区VID、定时器计数值VTCNT、定时器溢出回调函数VTISR ;
[0016]4)、当虚拟机分区VM1、VM2应用需要较高的定时器响应精度时,分别通过Hypervisor提供的API接口,向定时器派发表中注册对应的定时器,写入虚拟机分区ID:VMU VM2,定时器计数值VTCNT1、VTCNT2,定时器回调函数VTISRl、VTISR2 ;
[0017]5)、在系统运行过程中,Hypervisor的定时器中断服务程序定期检查派发表,当定时器的计数值VTCNT1、VTCNT2到达时,中断服务程序直接激活对应的虚拟机分区VMUVM2,并将对应的回调函数传递给分区内的虚拟机操作系统,使得操作系统以最短路径来调度对应的回调函数,从而完成虚拟定时器的及时响应。
[0018]由于采用了上述技术方案,与现有技术相比,本发明通过在Hypervisor中构建定时器中断派发表,将有限的硬件定时器中断,通过Hypervisor的中断派发表进行直接派发,从而减少原有虚拟机事件通道、虚拟时钟等方式带来的延迟,并能实现嵌入式处理器平台中有限的硬件定时器中断在多个分区间的共享,从而提高虚拟机分区的虚拟定时器精度与响应速度,最终解决嵌入式虚拟化技术在航天领域内应用所面临的一大难题。
【专利附图】

【附图说明】
[0019]图1为本发明一种实施例的工作程序图。
【具体实施方式】
[0020]实施例:
[0021]一种实现嵌入式虚拟机硬实时虚拟定时器响应的方法,步骤如下:通过在Hypervisor中构建定时器中断派发表,将有限的硬件定时器中断,通过Hypervisor的中断派发表进行直接派发,从而减少原有虚拟机事件通道、虚拟时钟等方式带来的延迟,并能实现嵌入式处理器平台中有限的硬件定时器中断在多个分区间的共享。
[0022]如图1所示,响应方法的步骤如下:
[0023]I)、在嵌入式处理器平台中设置32位定时器,包括定时器I和定时器2,并且将虚拟机设置有虚拟机分区I (VM1)、虚拟机分区2 (VM2)。
[0024]2)、定时器I被用于Hypervisor的系统时钟,为分区操作系统提供虚拟时钟中断,维护整个系统的时钟。
[0025]3)、定时器2用于硬件定时器中断,在Hypervisor空间构建定时器中断派发表,派发表的表项有虚拟机分区VID、定时器计数值VTCNT、定时器溢出回调函数VTISR。
[0026]4)、当虚拟机分区VM1、VM2应用需要较高的定时器响应精度时,分别通过Hypervisor提供的API接口,向定时器派发表中注册对应的定时器,写入虚拟机分区ID:VMU VM2,定时器计数值VTCNT1、VTCNT2,定时器回调函数VTISRl、VTISR2。
[0027]5)、在系统运行过程中,Hypervisor的定时器中断服务程序定期检查派发表,当定时器的计数值VTCNT1、VTCNT2到达时,中断服务程序直接激活对应的虚拟机分区VMUVM2,并将对应的回调函数传递给分区内的虚拟机操作系统,使得操作系统以最短路径来调度对应的回调函数,从而完成虚拟定时器的及时响应。
[0028]本发明通过在Hypervisor中构建定时器中断派发表,将有限的硬件定时器中断,通过Hypervisor的中断派发表进行直接派发,从而减少原有虚拟机事件通道、虚拟时钟等方式带来的延迟,并能实现嵌入式处理器平台中有限的硬件定时器中断在多个分区间的共享,从而提高虚拟机分区的虚拟定时器精度与响应速度,最终解决嵌入式虚拟化技术在航天领域内应用所面临的一大难题。
[0029]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种实现嵌入式虚拟机硬实时虚拟定时器响应的方法,其特征在于:步骤如下:通过在Hypervi sor中构建定时器中断派发表,将有限的硬件定时器中断,通过Hypervi sor的中断派发表进行直接派发,从而减少原有虚拟机事件通道、虚拟时钟等方式带来的延迟,并能实现嵌入式处理器平台中有限的硬件定时器中断在多个分区间的共享。
2.根据权利要求1中所述的实现嵌入式虚拟机硬实时虚拟定时器响应的方法,其特征在于:响应方法的步骤如下: 1)、在嵌入式处理器平台中设置32位定时器,包括定时器I和定时器2,并且将虚拟机设置有虚拟机分区I (VMl)、虚拟机分区2 (VM2); 2)、定时器I被用于Hypervisor的系统时钟,为分区操作系统提供虚拟时钟中断,维护整个系统的时钟; 3)、定时器2用于硬件定时器中断,在Hypervisor空间构建定时器中断派发表,派发表的表项有虚拟机分区VID、定时器计数值VTCNT、定时器溢出回调函数VTISR ; 4)、当虚拟机分区VMl、VM2应用需要较高的定时器响应精度时,分别通过Hypervisor提供的API接口,向定时器派发表中注册对应的定时器,写入虚拟机分区ID:VM1、VM2,定时器计数值VTCNT1、VTCNT2,定时器回调函数VTISRl、VTISR2 ; 5)、在系统运行过程中,Hypervisor的定时器中断服务程序定期检查派发表,当定时器的计数值VTCNT1、VTCNT2到达时,中断服务程序直接激活对应的虚拟机分区VM1、VM2,并将对应的回调函数传递给分区内的虚拟机操作系统,使得操作系统以最短路径来调度对应的回调函数,从而完成虚拟定时器的及时响应。
【文档编号】G06F9/455GK103853598SQ201410060572
【公开日】2014年6月11日 申请日期:2014年2月21日 优先权日:2014年2月21日
【发明者】吕紫旭, 程胜, 刘姝, 刘大鹏 申请人:北京神舟航天软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1