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