實現(xiàn)嵌入式虛擬機硬實時虛擬定時器響應(yīng)的方法
【專利摘要】本發(fā)明公開了一種實現(xiàn)嵌入式虛擬機硬實時虛擬定時器響應(yīng)的方法,其特征在于:步驟如下:通過在Hypervisor中構(gòu)建定時器中斷派發(fā)表,將有限的硬件定時器中斷,通過Hypervisor的中斷派發(fā)表進行直接派發(fā),從而減少原有虛擬機事件通道、虛擬時鐘等方式帶來的延遲,并能實現(xiàn)嵌入式處理器平臺中有限的硬件定時器中斷在多個分區(qū)間的共享。本發(fā)明通過減少原有虛擬機事件通道、虛擬時鐘等方式帶來的延遲,并能實現(xiàn)嵌入式處理器平臺中有限的硬件定時器中斷在多個分區(qū)間的共享,從而提高虛擬機分區(qū)的虛擬定時器精度與響應(yīng)速度,最終解決嵌入式虛擬化技術(shù)在航天領(lǐng)域內(nèi)應(yīng)用所面臨的一大難題。
【專利說明】實現(xiàn)嵌入式虛擬機硬實時虛擬定時器響應(yīng)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于虛擬機軟件開發(fā)領(lǐng)域,具體地說,涉及一種實現(xiàn)嵌入式虛擬機硬實時虛擬定時器響應(yīng)的方法。
【背景技術(shù)】
[0002]以ARINC653規(guī)范為代表的綜合模塊化航空電子系統(tǒng)(IMA)已經(jīng)成為第四代航空電子系統(tǒng)的實際標(biāo)準(zhǔn),在航空航天、能源國防領(lǐng)域內(nèi)得到了普遍應(yīng)用。而隨著虛擬化技術(shù)的發(fā)展,利用Hypervisor提供的虛擬機分區(qū)機制來提供安全性、隔離性、復(fù)用性,廣泛應(yīng)用于高性能計算、商業(yè)服務(wù)器領(lǐng)域,并衍生出諸多采用虛擬化方法實現(xiàn)ARINC653標(biāo)準(zhǔn)的嵌入式實時操作系統(tǒng),如 XtratuM、Integrity、PikeOS 等。
[0003]在航天領(lǐng)域內(nèi),尤其是火箭、導(dǎo)彈等運載器控制系統(tǒng)中,點火控制、停機控制、數(shù)據(jù)采集等諸多應(yīng)用對時間準(zhǔn)確性要求高,定時器響應(yīng)精度直接影響飛行器的導(dǎo)航、定位精度,以及飛行器的任務(wù)執(zhí)行。
[0004]傳統(tǒng)虛擬化技術(shù),并沒有考慮航空航天、能源國防等諸多領(lǐng)域控制系統(tǒng)對實時性的考慮。如Xen-ARM,將系統(tǒng)定時器中斷通過事件機制向虛擬機分區(qū)中進行傳遞,并在事件處理過程中更新虛擬機分區(qū)中的虛擬定時器的值。Xen默認(rèn)每隔10毫秒為每個虛擬機分區(qū)更新虛擬定時器,也就是虛擬機分區(qū)的定時器有可能最多延遲到10毫秒。在嵌入式虛擬化操作系統(tǒng)XtratuM中,為了提高系統(tǒng)的時間響應(yīng)速度,在ARINC653規(guī)范定義的事件分區(qū)調(diào)度之外,采用了基于優(yōu)先級調(diào)度的方法,從而使得高優(yōu)先級分區(qū)能夠盡早得到響應(yīng),并為每個虛擬分區(qū)分配一個硬件定時器,作為虛擬分區(qū)時鐘。優(yōu)先級調(diào)度的方式只能滿足高優(yōu)先級分區(qū)盡早得到調(diào)度,仍然無法滿足分區(qū)內(nèi)定時器能夠及時更新,當(dāng)分區(qū)未被調(diào)度運行時,其內(nèi)部定時器仍然無法及時得到更新,從而定時器事件無法得到響應(yīng)。在某些研究中,研究人員將高性能處理器平臺中的多個高精度時鐘中斷(如Intel HPET)直接映射到指定的虛擬機分區(qū)中,從而虛擬機分區(qū)的虛擬定時器直接綁定到硬件定時器中,硬件定時器產(chǎn)生的中斷信號直接通過虛擬中斷的方式傳遞給虛擬機分區(qū),從而提高虛擬化分區(qū)的虛擬定時器響應(yīng)速度。
[0005]在嵌入式尤其是航天領(lǐng)域內(nèi),上述方法存在如下問題:
[0006]1、傳統(tǒng)虛擬化技術(shù)采用的事件通道傳遞虛擬定時器中斷的方法,虛擬分區(qū)內(nèi)部時鐘與實際物理時鐘存在著一定的偏差,這種偏差最大可以到一個調(diào)度周期,乃至數(shù)十毫秒,對于硬實時控制系統(tǒng)而言,很多情況下無法滿足應(yīng)用需求。
[0007]2、通過優(yōu)先級調(diào)度,能夠盡可能加快高優(yōu)先級任務(wù)的響應(yīng)速度,但是優(yōu)先級與定時器中斷到達時間無直接關(guān)聯(lián),即使高優(yōu)先級分區(qū),在虛擬機分區(qū)不處于調(diào)度窗口時,其內(nèi)部時鐘仍然無法即使更新,從而無法保證內(nèi)部虛擬定時器的響應(yīng)速度。
[0008]3、在嵌入式平臺尤其是航天嵌入式平臺中,大量采用的是SPARC、ARM等嵌入式處理器,其硬件定時器相對有限(如SPARC V8處理器只有2個硬件定時器),無法為每個虛擬機分區(qū)提供獨立的硬件定時器以進行映射,這樣就無法采用上述硬件定時器直接映射方式 來提高分區(qū)的虛擬定時器響應(yīng)速度的方法。
【發(fā)明內(nèi)容】
[0009]本發(fā)明要解決的技術(shù)問題是克服上述缺陷,提供一種利用虛擬化技術(shù)提供的時空隔離等安全性機制的同時,保證強實時應(yīng)用對高精度定時器的需求,從而實現(xiàn)強實時、高安全嵌入式虛擬化系統(tǒng)的實現(xiàn)嵌入式虛擬機硬實時虛擬定時器響應(yīng)的方法。
[0010]為解決上述問題,本發(fā)明所采用的技術(shù)方案是:
[0011]一種實現(xiàn)嵌入式虛擬機硬實時虛擬定時器響應(yīng)的方法,其特征在于:步驟如下:通過在Hypervisor中構(gòu)建定時器中斷派發(fā)表,將有限的硬件定時器中斷,通過Hypervisor的中斷派發(fā)表進行直接派發(fā),從而減少原有虛擬機事件通道、虛擬時鐘等方式帶來的延遲,并能實現(xiàn)嵌入式處理器平臺中有限的硬件定時器中斷在多個分區(qū)間的共享。
[0012]作為一種改進,響應(yīng)方法的步驟如下:
[0013]I)、在嵌入式處理器平臺中設(shè)置32位定時器,包括定時器I和定時器2,并且將虛擬機設(shè)置有虛擬機分區(qū)I (VMl)、虛擬機分區(qū)2 (VM2);
[0014]2)、定時器I被用于Hypervisor的系統(tǒng)時鐘,為分區(qū)操作系統(tǒng)提供虛擬時鐘中斷,維護整個系統(tǒng)的時鐘;
[0015]3)、定時器2用于硬件定時器中斷,在Hypervisor空間構(gòu)建定時器中斷派發(fā)表,派發(fā)表的表項有虛擬機分區(qū)VID、定時器計數(shù)值VTCNT、定時器溢出回調(diào)函數(shù)VTISR ;
[0016]4)、當(dāng)虛擬機分區(qū)VM1、VM2應(yīng)用需要較高的定時器響應(yīng)精度時,分別通過Hypervisor提供的API接口,向定時器派發(fā)表中注冊對應(yīng)的定時器,寫入虛擬機分區(qū)ID:VMU VM2,定時器計數(shù)值VTCNT1、VTCNT2,定時器回調(diào)函數(shù)VTISRl、VTISR2 ;
[0017]5)、在系統(tǒng)運行過程中,Hypervisor的定時器中斷服務(wù)程序定期檢查派發(fā)表,當(dāng)定時器的計數(shù)值VTCNT1、VTCNT2到達時,中斷服務(wù)程序直接激活對應(yīng)的虛擬機分區(qū)VMUVM2,并將對應(yīng)的回調(diào)函數(shù)傳遞給分區(qū)內(nèi)的虛擬機操作系統(tǒng),使得操作系統(tǒng)以最短路徑來調(diào)度對應(yīng)的回調(diào)函數(shù),從而完成虛擬定時器的及時響應(yīng)。
[0018]由于采用了上述技術(shù)方案,與現(xiàn)有技術(shù)相比,本發(fā)明通過在Hypervisor中構(gòu)建定時器中斷派發(fā)表,將有限的硬件定時器中斷,通過Hypervisor的中斷派發(fā)表進行直接派發(fā),從而減少原有虛擬機事件通道、虛擬時鐘等方式帶來的延遲,并能實現(xiàn)嵌入式處理器平臺中有限的硬件定時器中斷在多個分區(qū)間的共享,從而提高虛擬機分區(qū)的虛擬定時器精度與響應(yīng)速度,最終解決嵌入式虛擬化技術(shù)在航天領(lǐng)域內(nèi)應(yīng)用所面臨的一大難題。
【專利附圖】
【附圖說明】
[0019]圖1為本發(fā)明一種實施例的工作程序圖。
【具體實施方式】
[0020]實施例:
[0021]一種實現(xiàn)嵌入式虛擬機硬實時虛擬定時器響應(yīng)的方法,步驟如下:通過在Hypervisor中構(gòu)建定時器中斷派發(fā)表,將有限的硬件定時器中斷,通過Hypervisor的中斷派發(fā)表進行直接派發(fā),從而減少原有虛擬機事件通道、虛擬時鐘等方式帶來的延遲,并能實現(xiàn)嵌入式處理器平臺中有限的硬件定時器中斷在多個分區(qū)間的共享。
[0022]如圖1所示,響應(yīng)方法的步驟如下:
[0023]I)、在嵌入式處理器平臺中設(shè)置32位定時器,包括定時器I和定時器2,并且將虛擬機設(shè)置有虛擬機分區(qū)I (VM1)、虛擬機分區(qū)2 (VM2)。
[0024]2)、定時器I被用于Hypervisor的系統(tǒng)時鐘,為分區(qū)操作系統(tǒng)提供虛擬時鐘中斷,維護整個系統(tǒng)的時鐘。
[0025]3)、定時器2用于硬件定時器中斷,在Hypervisor空間構(gòu)建定時器中斷派發(fā)表,派發(fā)表的表項有虛擬機分區(qū)VID、定時器計數(shù)值VTCNT、定時器溢出回調(diào)函數(shù)VTISR。
[0026]4)、當(dāng)虛擬機分區(qū)VM1、VM2應(yīng)用需要較高的定時器響應(yīng)精度時,分別通過Hypervisor提供的API接口,向定時器派發(fā)表中注冊對應(yīng)的定時器,寫入虛擬機分區(qū)ID:VMU VM2,定時器計數(shù)值VTCNT1、VTCNT2,定時器回調(diào)函數(shù)VTISRl、VTISR2。
[0027]5)、在系統(tǒng)運行過程中,Hypervisor的定時器中斷服務(wù)程序定期檢查派發(fā)表,當(dāng)定時器的計數(shù)值VTCNT1、VTCNT2到達時,中斷服務(wù)程序直接激活對應(yīng)的虛擬機分區(qū)VMUVM2,并將對應(yīng)的回調(diào)函數(shù)傳遞給分區(qū)內(nèi)的虛擬機操作系統(tǒng),使得操作系統(tǒng)以最短路徑來調(diào)度對應(yīng)的回調(diào)函數(shù),從而完成虛擬定時器的及時響應(yīng)。
[0028]本發(fā)明通過在Hypervisor中構(gòu)建定時器中斷派發(fā)表,將有限的硬件定時器中斷,通過Hypervisor的中斷派發(fā)表進行直接派發(fā),從而減少原有虛擬機事件通道、虛擬時鐘等方式帶來的延遲,并能實現(xiàn)嵌入式處理器平臺中有限的硬件定時器中斷在多個分區(qū)間的共享,從而提高虛擬機分區(qū)的虛擬定時器精度與響應(yīng)速度,最終解決嵌入式虛擬化技術(shù)在航天領(lǐng)域內(nèi)應(yīng)用所面臨的一大難題。
[0029]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種實現(xiàn)嵌入式虛擬機硬實時虛擬定時器響應(yīng)的方法,其特征在于:步驟如下:通過在Hypervi sor中構(gòu)建定時器中斷派發(fā)表,將有限的硬件定時器中斷,通過Hypervi sor的中斷派發(fā)表進行直接派發(fā),從而減少原有虛擬機事件通道、虛擬時鐘等方式帶來的延遲,并能實現(xiàn)嵌入式處理器平臺中有限的硬件定時器中斷在多個分區(qū)間的共享。
2.根據(jù)權(quán)利要求1中所述的實現(xiàn)嵌入式虛擬機硬實時虛擬定時器響應(yīng)的方法,其特征在于:響應(yīng)方法的步驟如下: 1)、在嵌入式處理器平臺中設(shè)置32位定時器,包括定時器I和定時器2,并且將虛擬機設(shè)置有虛擬機分區(qū)I (VMl)、虛擬機分區(qū)2 (VM2); 2)、定時器I被用于Hypervisor的系統(tǒng)時鐘,為分區(qū)操作系統(tǒng)提供虛擬時鐘中斷,維護整個系統(tǒng)的時鐘; 3)、定時器2用于硬件定時器中斷,在Hypervisor空間構(gòu)建定時器中斷派發(fā)表,派發(fā)表的表項有虛擬機分區(qū)VID、定時器計數(shù)值VTCNT、定時器溢出回調(diào)函數(shù)VTISR ; 4)、當(dāng)虛擬機分區(qū)VMl、VM2應(yīng)用需要較高的定時器響應(yīng)精度時,分別通過Hypervisor提供的API接口,向定時器派發(fā)表中注冊對應(yīng)的定時器,寫入虛擬機分區(qū)ID:VM1、VM2,定時器計數(shù)值VTCNT1、VTCNT2,定時器回調(diào)函數(shù)VTISRl、VTISR2 ; 5)、在系統(tǒng)運行過程中,Hypervisor的定時器中斷服務(wù)程序定期檢查派發(fā)表,當(dāng)定時器的計數(shù)值VTCNT1、VTCNT2到達時,中斷服務(wù)程序直接激活對應(yīng)的虛擬機分區(qū)VM1、VM2,并將對應(yīng)的回調(diào)函數(shù)傳遞給分區(qū)內(nèi)的虛擬機操作系統(tǒng),使得操作系統(tǒng)以最短路徑來調(diào)度對應(yīng)的回調(diào)函數(shù),從而完成虛擬定時器的及時響應(yīng)。
【文檔編號】G06F9/455GK103853598SQ201410060572
【公開日】2014年6月11日 申請日期:2014年2月21日 優(yōu)先權(quán)日:2014年2月21日
【發(fā)明者】呂紫旭, 程勝, 劉姝, 劉大鵬 申請人:北京神舟航天軟件技術(shù)有限公司