[發明專利]內存靜態劃分虛擬化方法有效
| 申請號: | 201310076740.9 | 申請日: | 2013-03-11 |
| 公開(公告)號: | CN103116556A | 公開(公告)日: | 2013-05-22 |
| 發明(設計)人: | 王星焱;殷紅武;沈金祥;何升;許國春 | 申請(專利權)人: | 無錫江南計算技術研究所 |
| 主分類號: | G06F12/10 | 分類號: | G06F12/10 |
| 代理公司: | 北京眾合誠成知識產權代理有限公司 11246 | 代理人: | 龔燮英 |
| 地址: | 214083 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 內存 靜態 劃分 虛擬 方法 | ||
技術領域
本發明涉及計算機設計領域,更具體地說,本發明涉及一種內存靜態劃分虛擬化方法。
背景技術
內存虛擬化是在虛擬地址到物理地址映射的基礎上增加一層映射關系,使虛擬地址映射到虛擬物理地址,再將虛擬物理地址映射到物理地址,同時使得每個虛擬機(Virtual?Machine,VM)都認為自己獨立運行在從0開始的虛擬物理地址上。
內存虛擬化的實現形式有很多種方式,從內存分配角度看,有動態分配和靜態分配兩種形式。現有X86上商用或開源虛擬機管理器(VMM)均采用動態分配的方式實現內存虛擬化,虛擬機需要內存時再向宿主機請求內存。其中,虛擬機管理器是提供虛擬機環境底層基礎技術支撐,并對虛擬機環境進行管理的底層系統軟件。
從底層技術基礎上看,X86上商用或開源虛擬機管理器有兩種實現方式。一種是采用軟件方法修改虛擬機內核頁表裝填代碼,管理虛擬地址到虛物理地址的代換,并配合虛擬機管理器為硬件提供影子頁表,硬件并不使用虛擬機內核提供的頁表,而是使用影子頁表,將虛擬地址代換到機器地址。另外一種是基于X86硬件提供的NPT(AMD)或VT(Intel)內存虛擬化接口,由虛擬機管理器管理該硬件接口相關設置來實現內存虛擬化,該方法對虛擬機操作系統內核透明。
現有方法的缺點主要是開銷大:
內存動態分配性能開銷大:采用內存動態分配的方式時,內存分配由每一次虛擬機內頁面缺失時觸發,需要硬件捕獲該異常,并保留虛擬機狀態,然后切換到宿主機,由宿主機分配好內存,并設置好相應的硬件接口后再返回虛擬機,此時虛擬機才具備可用的物理內存。該流程較長,且屬于串行操作,使得虛擬機內內存分配的性能較低。
X86基于NPT或VT硬件的性能開銷大:硬件提供了這些接口后,可不使用影子頁表,也無需修改虛擬機內核,使得內存虛擬化對虛擬機完全透明,但該類接口的引入導致旁路轉換緩沖(Translation?Lookaside?Buffer,TLB)缺失(Miss)(在本說明書中,旁路轉換緩沖缺失簡稱“TLBMiss”)后裝填時的訪存次數大大增加,虛擬機的TLB性能開銷較大。
基于影子頁表的方式空間開銷大:具體地說,針對沒一個虛擬機內核管理的頁表,均需要構建另外一份該頁表的影子頁表提供給硬件使用,該方法使得頁表所占用的空間加倍。
發明內容
本發明所要解決的技術問題是針對現有技術中存在上述缺陷,提供一種能夠解決內存虛擬機的性能和空間開銷問題的基于TLB?Miss裝填的內存靜態劃分虛擬化方法。
根據本發明,提供了一種內存靜態劃分虛擬化方法,其特征在于包括:在進行虛地址轉換時,首先查詢TLB表,如果虛地址在表中命中,則直接根據TLB中的頁表項PTE中的頁幀號PFN確定虛地址所對應的物理地址;如果沒有命中,則轉入TLB的不命中處理流程。
優選地,在TLB的不命中處理流程中,從虛擬地址VA獲得物理地址PA,再通過虛擬機控制寄存器中存儲的虛擬機地址偏移Offset計算出物理地址PA對應的機器地址MA,再將機器地址MA裝填至TLB中,其中,虛擬機地址偏移Offset為虛擬機控制寄存器中存放的虛擬機地址偏移量Offset。
優選地,TLB的不命中處理流程包括:
a)頁表基地址寄存器中填的頁表基地址是虛擬物理地址,先從虛擬機控制寄存器得到虛擬機地址偏移量Offset,加上頁表基地址寄存器中的虛擬物理地址,得到頁表基地址的機器地址MAL1,其中,虛擬機地址偏移Offset為虛擬機控制寄存器中存放的虛擬機地址偏移量Offset;
b)從頁表基地址的機器地址MAL1所對應的頁面中,取出第一級Level1的頁表,從中取出頁幀號,將頁幀號乘以PAGE_SIZE,得到作為下一級頁表的第二級Level2的頁表的基地址的物理地址PAL1,再根據公式MAL2=PA?L1+Offset計算出作為下一級頁表的第二級Level2的頁表的基地址的機器地址MAL2,其中,PAGE_SIZE為頁面大小;
c)從上一步得到的機器地址MAL2所對應的頁面中取出第二級Level2的頁表,從中取出頁幀號,將頁幀號乘以PAGE_SIZE,以得到作為下一級頁表的第三級Level3的頁表的基地址的物理地址PAL2,再根據公式MAL3=PAL2+Offset計算出作為下一級頁表的第三級Level3的基地址的機器地址MAL3;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫江南計算技術研究所,未經無錫江南計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310076740.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種用于船舶救生艇的太陽能風帆
- 下一篇:零能耗的自行車信號指示裝置





