專利名稱:一種面向mips平臺的內存虛擬化方法
技術領域:
本發(fā)明公開了一種內存虛擬化方法,尤其涉及面向MIPS平臺的內存虛擬化方法(MIPSVMem),MIPS指“無內部互鎖流水級的微處理器”(Microprocessor without inter locked piped stages),屬于計算機技術令頁域。
背景技術:
系統(tǒng)虛擬化是計算機系統(tǒng)結構與計算機系統(tǒng)軟件相結合的一個重要研究方向。它通過在計算機系統(tǒng)硬件和操作系統(tǒng)之間增加虛擬機監(jiān)控器(Virtual Machine Monitor,簡稱VMM),對計算機系統(tǒng)的物理資源進行抽象,隔離硬件系統(tǒng)結構和軟件之間的緊密依賴關系;通過動態(tài)組織CPU、內存、1/0等多種物理資源,靈活構建多個相互隔離的虛擬計算機, 滿足多樣化的應用需求;通過發(fā)掘應用間的時間和空間的并行性,提高資源的利用率。虛擬化技術在20世紀60年代首次提出,當時主要是為了對大型機硬件進行分區(qū)以提高硬件利用率。在20世紀80年代和90年代,由于客戶端-服務器應用程序以及價格低廉的x86服務器和臺式機的發(fā)展,在分布式計算技術日益成熟的同時,虛擬化技術當時基本銷聲匿跡了。20世紀90年代Windows的廣泛使用以及Linux作為服務器操作系統(tǒng)的出現(xiàn),奠定了 x86服務器的行業(yè)標準地位。隨著x86服務器和桌面部署的增長,帶來了新的如伸縮性、靈活性和可靠性差等IT基礎架構和運作難題,這使得虛擬化技術近年來得到了復興。近年隨著云計算的日益推廣,虛擬化技術在商業(yè)應用上的優(yōu)勢日益體現(xiàn)。虛擬化改變了企業(yè)傳統(tǒng)的IT基礎設施部署和管理方式,大幅提高了基礎設施的伸縮性、靈活性和可靠性。其概念已經深入到企業(yè)甚至每個人的日常的工作與生活中,成為了目前全球軟件產業(yè)中發(fā)展最快的技術之一。近年來,隨著MIPS CPU性能的飛速發(fā)展,MIPS CPU的應用已經不僅限于傳統(tǒng)的嵌入系統(tǒng)領域,部分高性能的MIPS CPU也被逐漸應用到商用服務器中,也即無論嵌入式還是服務器領域都對MIPS平臺及其虛擬化應用需求的日益擴大。另一方面隨著虛擬化技術快速發(fā)展以來,包括MIPS架構處理器在內的嵌入式處理器領域,對虛擬化技術提出了新的需求。然而,通過對X86,PowerPC (PPC),MIPS等的對比(表1)可以看出,MIPS CPU存在迫切需要解決虛擬化漏洞并且并不支持硬件輔助虛擬化等問題,這使得面向MIPS平臺實現(xiàn)系統(tǒng)虛擬機面臨技術挑戰(zhàn)。
權利要求
1.一種面向MIPS平臺的內存虛擬化方法,該方法采用宿主模型架構,包括如下模塊: 物理內存、宿主OS、虛擬機內核、內存虛擬化、宿主QEMU進程、虛擬內存以及客戶OS;該內存虛擬化方法包括面向MIPS平臺的內存虛擬化的地址組成方法,該地址組成方法是基于以上模塊構成,包括四種地址,分別是客戶機虛擬地址,即GVA ;客戶機物理地址,即GPA ;宿主機虛擬地址,即HVA ;宿主機物理地址,即ΗΡΑ。
2.根據權利要求1所述的一種面向MIPS平臺的內存虛擬化方法,該方法進一步包括面向MIPS平臺的內存虛擬化在地址空間組成方法,主要包括四種地址空間分別是客戶機虛擬地址空間、客戶機物理地址空間、宿主機虛擬地址空間和宿主機物理地址空間。
3.根據權利要求2所述的一種面向MIPS平臺的內存虛擬化方法,該方法進一步包括面向MIPS平臺的內存虛擬化的地址組成和地址空間的映射方法,分別是客戶機虛擬地址屬于客戶機虛擬地址空間,客戶機物理地址屬于客戶機物理地址空間,宿主機虛擬地址屬于宿主機虛擬地址空間,宿主機物理地址屬于宿主機物理地址空間。
4.根據權利要求3所述的一種面向MIPS平臺的內存虛擬化方法,該方法進一步包括面向MIPS平臺的內存虛擬化的地址組成和地址空間的映射維護機制,包括客戶機TLB和頁表,客戶機物理頁描述符表,宿主機TLB和頁表,宿主機機物理頁描述符表。
5.根據權利要求4所述的一種面向MIPS平臺的內存虛擬化方法,該方法進一步包括面向MIPS平臺的內存虛擬化地址映射實現(xiàn)流程,其流程核心為構建GVA- > HPA的地址映射, 即 GVA- > GPA- > HVA- > ΗΡΑ,具體流程為51客戶機模塊發(fā)出訪問某個GVA的命令;52映射處理模塊獲得GVA- > GPA的映射;53映射處理模塊獲得GPA- > HVA的映射;54映射處理模塊獲得HVA- > HPA的映射;55映射處理模塊將三個映射疊加得到(GVA,ΗΡΑ)映射,填充影子TLB中;56返回客戶機。
6.根據權利要求5所述的一種面向MIPS平臺的內存虛擬化方法,該方法的具體實現(xiàn)流程為521內核GVA的影子TLB填充;522執(zhí)行客戶機TLB的填充;523非內核GVA的影子TLB填充;其中,S21內核GVA的影子TLB填充的具體流程為Sl 客戶機模塊發(fā)出訪問某個GVA的命令Slll 判斷GVA是否屬于客戶機內核地址空間?Sl 112 非內核GVA的處理Sllll 執(zhí)行GPA映射;GPA = GVA&某地址Sl 12 在GPPDT中查找GPA對應的HVASl 13 在宿主機TLB中查找HVA對應的HPASl 14 將(GVA,ΗΡΑ)映射存入影子TLB中S6 返回客戶機;其中,S22執(zhí)行客戶機TLB的填充的具體流程為Sl 客戶機模塊發(fā)出訪問某個GVA的命令 Slll 判斷GVA是否屬于客戶機內核地址空間? S1212 內核GVA的處理51211客戶機TLB中無(GVA,GPA)映射 S122 向客戶機注入TLB缺失異常5124執(zhí)行TLB指令填充客戶機TLB5125模擬TLB指令S125 返回客戶機代碼中斷處 S6 返回客戶機;其中,S23非內核GVA的影子TLB填充的具體流程為 Sl 客戶機模塊發(fā)出訪問某個GVA的命令 Slll 判斷GVA是否屬于客戶機內核地址空間?51212內核GVA的處理S1311 在客戶機TLB中存在(GVA,GPA)映射?S13112 填充客戶機TLBS13111 在 GPPDT 中查找(GPA,HVA)映射5132在宿主機TLB中查找(HVA,ΗΡΑ)映射5133將(GVA,ΗΡΑ)映射存入影子TLB中 S6 返回客戶機。
全文摘要
本發(fā)明涉及一種面向MIPS平臺的內存虛擬化方法。該方法包括面向MIPS平臺的內存虛擬化的地址組成方法;面向MIPS平臺的內存虛擬化在地址空間組成方法;面向MIPS平臺的內存虛擬化的地址組成和地址空間的映射方法;面向MIPS平臺的內存虛擬化的地址組成和地址空間的映射維護機制以及面向MIPS平臺的內存虛擬化地址映射實現(xiàn)流程。優(yōu)點是(1)克服了MIPS處理器無硬件輔助支持、MIPS平臺下內存虛擬化三層地址映射、多個虛擬機對物理內存訪問之間的隔離與安全等技術難題。(2)系統(tǒng)具有輕量級的優(yōu)點。(3)可以滿足嵌入式領域的虛擬化應用需求,也可以滿足服務器領域的虛擬化應用需求。
文檔編號G06F12/02GK102567217SQ201210001188
公開日2012年7月11日 申請日期2012年1月4日 優(yōu)先權日2012年1月4日
發(fā)明者祝明發(fā), 肖利民, 阮利 申請人:北京航空航天大學