实现嵌入式虚拟机平台高频率数据采集方法

文档序号:6538439阅读:180来源:国知局
实现嵌入式虚拟机平台高频率数据采集方法
【专利摘要】本发明公开了一种实现嵌入式虚拟机平台高频率数据采集方法,步骤如下:利用Hypervisor提供的内存映射机制与中断陷入机制,虚拟机分区在Hypervisor空间注册中断预处理函数的调用接口,以及对应的中断内存映射分区,使得高频率数据采集与中断快速响应中的特权操作在Hypervisor中直接完成。本发明主要用于航空航天、能源控制等强实时、高安全要求的嵌入式系统中,在利用虚拟化技术提供的时空隔离等安全性机制的同时,解决传统虚拟化技术响应高频率中断的开销过大的问题,从而实现强实时、高安全的嵌入式虚拟化系统。
【专利说明】实现嵌入式虚拟机平台高频率数据采集方法
【技术领域】
[0001]本发明属于虚拟机领域,具体地说,涉及一种实现嵌入式虚拟机平台高频率数据采集方法。
【背景技术】
[0002]以ARINC653规范为代表的综合模块化航空电子系统(IMA)已经成为第四代航空电子系统的实际标准,在航空航天、能源国防领域内得到了普遍应用。而随着虚拟化技术的发展,利用Hypervisor提供的虚拟机分区机制来提供安全性、隔离性、复用性,广泛应用与高性能计算、商业服务器领域,并衍生出诸多采用虚拟化方法实现ARINC653标准的嵌入式实时操作系统,如 XtratuM、Integrity、PikeOS 等。
[0003]在航天领域内,尤其是火箭、导弹、载人飞船等航天飞行器控制系统中,需要在运行期间不断采集大量的外部传感器信息,需要采集的数据分属于不同子系统,而某些数据采集的频率可能会很高(每IOms采集多个传感器数据),采集数据不及时将会造成入轨或定位精度降低、无法完成任务等后果。
[0004]传统虚拟化技术,并没有考虑航空航天、能源国防等诸多领域控制系统对中断响应实时性需求的考虑。如Xen采用了分离设备模型(Split Driver Model),驱动处理分为前端(Front-End)与后端(Back-End)进行,后端驱动运行在诸如DomainO的特权分区中,负责通过Hypervisor访问实际硬件,而前端程序运行在实际需要设备的分区中,其不需要运行特权指令,只需要从特权分区中通过环形缓冲获取数据即可,当某应用虚拟机分区需要访问设备时,向前端驱动发送请求,前端驱动将请求通过环形缓冲器(Ring Buffer)发送给运行在特权分区内的后端驱动,当特权分区开始执行后,逐个获取环形缓冲器中的设备访问请求,分别通过Hypervisor访问实际硬件,并将数据通过共享内存保存,通过环形缓冲通知应用分区来获取设备。前后端设备驱动模型从而一方面实现了设备的共享访问,设备通过直接硬件访问,减少了设备仿真带来的性能开销;另一方面通过缓冲区将设备访问请求进行缓冲,减少了频繁分区切换带来的开销。分离设备模型有利于块设备(block device)的访问效率。
[0005]在嵌入式虚拟化操作系统XtratuM中,为了提高系统的时间响应速度,在ARINC653规范定义的事件分区调度之外,采用了基于优先级调度的方法,从而使得高优先级分区能够尽早得到响应,从而提高输入数据采集、信号响应等任务的响应速度。优先级调度的方式只能满足高优先级分区尽早得到调度,在外部事件到来时能够及时得到响应,但是分区间切换与调度的开销仍然相对较大。
[0006]在某些研究中,研究人员将硬件中断信号直接映射到指定的虚拟机分区中,中断信号直接通过虚拟中断的方式传递给虚拟机分区,虚拟机分区的中断服务程序可以直接响应绑定的设备中断,从而提高虚拟化分区的虚拟定时器响应速度。
[0007]在嵌入式尤其是航天领域内,上述方法存在如下问题:
[0008]传统虚拟化技术采用的前后端设备模型,通过环形缓冲器将设备访问请求进行缓冲,并通过特权分区将实际设备操作归集到专门分区,适合于大数据量的块设备的共享传输。但是对于一个设备请求,需要在缓冲区内等待特权分区读取,并需要进行多次分区切换才能完成一次设备访问,对于高频率、小数据量、强实时的传感器采集、数据交换等嵌入式强实时系统而言,很多情况下无法满足应用需求。
[0009]通过优先级调度,能够尽可能加快高优先级任务的响应速度,但是优先级与中断响应频率无直接关联,是有应用特性和业务逻辑所决定的,中断响应频率高的应用分区,其优先级不一定是最高的。因此,高频率中断响应分区一旦被高优先级分区抢占,其数据采集窗口就会错过,从而导致数据的丢失。
[0010]在嵌入式平台尤其是航天嵌入式平台中,大量采用的是SPARC、ARM等嵌入式处理器,无法提供APIC模块,其硬件中断资源相对有限(例如SPARC V8,只有16个中断号),无法为每个传感器提供独立的中断号,这样就无法采用上述中断直接映射方式来提高分区的中断响应速度的方法。

【发明内容】

[0011]本发明要解决的技术问题是克服上述缺陷,提供一种使得高频率数据采集与中断快速响应中的特权操作在Hypervisor中直接完成,减少Hypervisor与分区操作系统的多次切换,从而实现高频率数据采集与中断快速响应机制的实现嵌入式虚拟机平台高频率数据采集方法。
[0012]为解决上述问题,本发明所采用的技术方案是:
[0013]一种实现嵌入式虚拟机平台高频率数据采集方法,其特征在于:步骤如下:利用Hypervisor提供的内存映射机制与中断陷入机制,虚拟机分区在Hypervisor空间注册中断预处理函数(PISR)的调用接口,以及对应的中断内存映射分区(MM),使得高频率数据采集与中断快速响应中的特权操作在Hypervisor中直接完成,减少Hypervisor与分区操作系统的多次切换,从而实现高频率数据采集与中断快速响应机制。
[0014]采集方法的步骤如下:
[0015]I)、在基于虚拟化技术的航天器飞行控制平台,构建虚拟机监视器Hypervisor,并提供内存映射机制与中断响应机制;
[0016]2)、在Hypervisor提供专门的内核代码空间与数据空间,提供Hypercall调用接口,允许非特权的虚拟机分区将中断处理的前半段代码PISR保存在对应的内核代码空间中,并可以申请一定的数据空间IMM,用于前半段代码运行过程中的数据保存;
[0017]3)、当虚拟机分区I (VMl)需要每20ms通过AD采样获取某传感器(Sensorl)采集的外部数据,则VMl可以针对Sensorl采样中断注册对应的内核中断预处理服务(PISR1 ),并申请数据空间IMM1,ISRl运行在Hypervisor空间中,IMMl被Hypervisor映射给VMl,当AD采样中断到达时,Hypervisor不需要切换到特权分区或VMl即可调用PISRl完成AD数据读取工作,将数据依次保存在IMMl中,并继续当前工作的正常处理;当进入VMl的时间窗口后,VMl可以通过内存映射机制获取之前采集的数据,并对数据进行处理;
[0018]4)、当虚拟机分区2 (VM2)需要每IOms通过双端口 RAM (DPRAMl)与冗余系统进行数据同步,VM2可以针对DPRAMl同步信号中断注册对应的内核中断处理服务PISR2,并申请数据空间IMM2, PISR2运行在Hypervisor空间中,IMM2被Hypervisor映射给VM2,当双端口 RAM同步信号到达时,不需要切换到特权分区或VMLHypervisor直接调用PISR2完成同步操作,将同步数据保存在IMM2中,并继续当前工作的正常处理;当进入VM2的时间窗口后,VM2可以通过内存映射机制获取之前同步的数据,并对数据进行处理。
[0019]由于采用了上述技术方案,与现有技术相比,本发明提供了 一种在虚拟化平台中完成高频率数据采集与中断快速响应机制,利用Hypervisor提供的内存映射机制与中断陷入机制,虚拟机分区在Hypervisor空间注册中断预处理函数的调用接口,以及对应的中断内存映射分区,使得高频率数据采集与中断快速响应中的特权操作在Hypervisor中直接完成,减少Hypervisor与分区操作系统的多次切换,从而实现高频率数据采集与中断快速响应机制。
【专利附图】

【附图说明】
[0020]图1为本发明一种实施例的工作程序图。
【具体实施方式】
[0021]实施例:
[0022]—种实现嵌入式虚拟机平台高频率数据采集方法,步骤如下:利用Hypervisor提供的内存映射机制与中断陷入机制,虚拟机分区在Hypervisor空间注册中断预处理函数(PISR)的调用接口,以及对应的中断内存映射分区(IMM),使得高频率数据采集与中断快速响应中的特权操作在Hypervisor中直接完成,减少Hypervisor与分区操作系统的多次切换,从而实现高频率数据采集与中断快速响应机制。
[0023]如图1所示,采集方法的具体实施步骤如下:
[0024]I)、在基于虚拟化技术的航天器飞行控制平台,构建虚拟机监视器Hypervisor,并提供内存映射机制与中断响应机制。
[0025]2)、在Hypervisor提供专门的内核代码空间与数据空间,提供Hypercall调用接口,允许非特权的虚拟机分区将中断处理的前半段代码PISR保存在对应的内核代码空间中,并可以申请一定的数据空间IMM,用于前半段代码运行过程中的数据保存。
[0026]3)、当虚拟机分区I (VMl)需要每20ms通过AD采样获取某传感器(Sensorl)采集的外部数据,则VMl可以针对Sensorl采样中断注册对应的内核中断预处理服务(PISR1 ),并申请数据空间IMM1,ISRl运行在Hypervisor空间中,IMMl被Hypervisor映射给VMl,当AD采样中断到达时,Hypervisor不需要切换到特权分区或VMl即可调用PISRl完成AD数据读取工作,将数据依次保存在IMMl中,并继续当前工作的正常处理;当进入VMl的时间窗口后,VMl可以通过内存映射机制获取之前采集的数据,并对数据进行处理。
[0027]4)、当虚拟机分区2 (VM2)需要每IOms通过双端口 RAM (DPRAMl)与冗余系统进行数据同步,VM2可以针对DPRAMl同步信号中断注册对应的内核中断处理服务PISR2,并申请数据空间IMM2, PISR2运行在Hypervisor空间中,IMM2被Hypervisor映射给VM2,当双端口 RAM同步信号到达时,不需要切换到特权分区或VMLHypervisor直接调用PISR2完成同步操作,将同步数据保存在IMM2中,并继续当前工作的正常处理;当进入VM2的时间窗口后,VM2可以通过内存映射机制获取之前同步的数据,并对数据进行处理。
[0028]本发明主要用于航空航天、能源控制等强实时、高安全要求的嵌入式系统中,在利用虚拟化技术提供的时空隔离等安全性机制的同时,解决传统虚拟化技术响应高频率中断的开销过大的问题,从而实现强实时、高安全的嵌入式虚拟化系统。
[0029]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种实现嵌入式虚拟机平台高频率数据采集方法,其特征在于:步骤如下:利用Hypervisor提供的内存映射机制与中断陷入机制,虚拟机分区在Hypervisor空间注册中断预处理函数(PISR)的调用接口,以及对应的中断内存映射分区(I丽),使得高频率数据采集与中断快速响应中的特权操作在Hypervisor中直接完成,减少Hypervisor与分区操作系统的多次切换,从而实现高频率数据采集与中断快速响应机制。
2.根据权利要求1中所述的实现嵌入式虚拟机平台高频率数据采集方法,其特征在于:采集方法的步骤如下: I)、在基于虚拟化技术的航天器飞行控制平台,构建虚拟机监视器Hypervisor,并提供内存映射机制与中断响应机制; 2 )、在Hypervi sor提供专门的内核代码空间与数据空间,提供Hypercal I调用接口,允许非特权的虚拟机分区将中断处理的前半段代码PISR保存在对应的内核代码空间中,并可以申请一定的数据空间IMM,用于前半段代码运行过程中的数据保存; 3)、当虚拟机分区I(VMl)需要每20ms通过AD采样获取某传感器(Sensorl)采集的外部数据,则VMl可以针对Sensorl采样中断注册对应的内核中断预处理服务(PISR1),并申请数据空间IMM1,PISRl运行在Hypervisor空间中,IMMl被Hypervisor映射给VMl,当AD采样中断到达时,Hypervisor不需要切换到特权分区或VMl即可调用PISRl完成AD数据读取工作,将数据依次保存在IMMl中,并继续当前工作的正常处理;当进入VMl的时间窗口后,VMl可以通过内存映射机制获取之前采集的数据,并对数据进行处理; 4)、当虚拟机分区2(VM2)需要每IOms通过双端口 RAM (DPRAMl)与冗余系统进行数据同步,VM2可以针对DPRAMl同步信号中断注册对应的内核中断处理服务PISR2,并申请数据空间IMM2,PISR2运行在Hypervisor空间中,IMM2被Hypervisor映射给VM2,当双端口RAM同步信号到达时,不需要切换到特权分区或VMLHypervisor直接调用PISR2完成同步操作,将同步数据保存在IMM2中,并继续当前工作的正常处理;当进入VM2的时间窗口后,VM2可以通过内存映射机制获取之前同步的数据,并对数据进行处理。
【文档编号】G06F9/455GK103853597SQ201410060284
【公开日】2014年6月11日 申请日期:2014年2月21日 优先权日:2014年2月21日
【发明者】吕紫旭, 刘姝, 赵英辉, 许开维 申请人:北京神舟航天软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1