[發(fā)明專利]X86體系結(jié)構(gòu)內(nèi)存管理單元虛擬化方法無效
| 申請(qǐng)?zhí)枺?/td> | 200910043830.1 | 申請(qǐng)日: | 2009-07-03 |
| 公開(公告)號(hào): | CN101620573A | 公開(公告)日: | 2010-01-06 |
| 發(fā)明(設(shè)計(jì))人: | 易曉東;譚郁松;劉曉建;張衛(wèi)華;戴華東;吳慶波;孔金珠 | 申請(qǐng)(專利權(quán))人: | 中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué) |
| 主分類號(hào): | G06F12/08 | 分類號(hào): | G06F12/08;G06F12/10;G06F9/455 |
| 代理公司: | 國(guó)防科技大學(xué)專利服務(wù)中心 | 代理人: | 郭 敏 |
| 地址: | 410073湖*** | 國(guó)省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | x86 體系結(jié)構(gòu) 內(nèi)存 管理 單元 虛擬 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)體系結(jié)構(gòu)及操作系統(tǒng)領(lǐng)域內(nèi)存管理方法,尤其是X86體系結(jié)構(gòu)的內(nèi)存管理單元(Memory?Management?Unit,MMU)虛擬化方法。
背景技術(shù)
當(dāng)前,計(jì)算機(jī)的處理能力不斷快速提升,而根據(jù)相關(guān)統(tǒng)計(jì),運(yùn)行于其上的服務(wù)軟件在系統(tǒng)空閑時(shí)段往往只用到了不到10%的處理能力,在忙時(shí)也往往用不到50%。與此同時(shí),計(jì)算機(jī)的能耗不斷加大,電能的消耗已經(jīng)逐漸成為IT業(yè)的主要開銷之一。另外,出于安全和可靠等方面的考慮,大量的服務(wù)提供商必須使用多臺(tái)服務(wù)器以滿足數(shù)據(jù)備份、冗余容錯(cuò)和服務(wù)的安全隔離等方面的需求,這不僅大大增加了設(shè)備購(gòu)置的資金投入、成倍提高了電能消耗,而且由于大量服務(wù)器的利用率較低,造成了性價(jià)比嚴(yán)重低下。
為了解決這個(gè)問題,人們提出了虛擬化(virtualization)的概念,即通過虛擬機(jī)監(jiān)控器(Virtual?Machine?Monitor,VMM),對(duì)真實(shí)計(jì)算機(jī)的CPU(Central?Processing?Unit,中央處理單元)、內(nèi)存管理單元MMU和外設(shè)進(jìn)行虛擬化,在一臺(tái)真實(shí)的計(jì)算機(jī)上虛擬出多臺(tái)“虛擬機(jī)(Virtual?Machine,VM)”,每臺(tái)虛擬機(jī)都可分別運(yùn)行一個(gè)操作系統(tǒng)。這樣,就能進(jìn)行服務(wù)器整合(server?consolidation),即將多臺(tái)服務(wù)器整合為一臺(tái)物理服務(wù)器,從而大大提高服務(wù)器利用率、降低能源消耗和提高安全性與可靠性。在桌面計(jì)算領(lǐng)域,虛擬化技術(shù)使得用戶能夠同時(shí)運(yùn)行多個(gè)不同的操作系統(tǒng),滿足了用戶對(duì)不同計(jì)算平臺(tái)的需求。
X86計(jì)算機(jī)所裝配的物理內(nèi)存從0開始編址,每個(gè)內(nèi)存單元的地址稱為物理地址(physical?address),CPU基于物理地址訪問內(nèi)存的不同單元。為了在X86計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)虛擬機(jī),虛擬機(jī)監(jiān)控器中必須包含一個(gè)名為“MMU虛擬化模塊”的組成模塊,由該模塊進(jìn)行內(nèi)存管理單元MMU的虛擬化。當(dāng)前國(guó)際上的MMU虛擬化方法都包括以下步驟:
第一步,為虛擬機(jī)分配物理內(nèi)存,即根據(jù)用戶的配置,將X86計(jì)算機(jī)的物理內(nèi)存劃分為多塊,每一塊內(nèi)存對(duì)應(yīng)一個(gè)虛擬機(jī)。目前有兩種方法實(shí)現(xiàn)物理內(nèi)存分配:第一種方法是借助操作系統(tǒng)提供的內(nèi)存分配接口分配,例如KVM項(xiàng)目(http://www.linux-kvm.org/),這種分配方法直接調(diào)用操作系統(tǒng)提供的服務(wù),實(shí)現(xiàn)簡(jiǎn)單,但不能保證所分配物理內(nèi)存的物理地址的連續(xù)性;第二種方法是在X86計(jì)算機(jī)引導(dǎo)時(shí)預(yù)留出相應(yīng)的物理內(nèi)存,例如Xen項(xiàng)目(http://www.xen.org/),這種方法能夠保證預(yù)留物理內(nèi)存的物理地址的連續(xù)性,但實(shí)現(xiàn)復(fù)雜。
第二步,為虛擬機(jī)創(chuàng)建E820表。在X86計(jì)算機(jī)中,并非所有的物理內(nèi)存都是可用的。例如,物理地址區(qū)間0xA0000至0xC0000被保留給顯卡的顯示緩沖區(qū),從而這部分物理內(nèi)存是不可用的。為了描述X86計(jì)算機(jī)的物理內(nèi)存是否可用,X86計(jì)算機(jī)定義了所謂的E820表,E820表中記錄了每一段物理地址區(qū)間對(duì)應(yīng)的物理內(nèi)存是否可用。當(dāng)今所有的操作系統(tǒng)都通過查詢E820表獲得可用內(nèi)存信息,以保證只使用可用物理內(nèi)存。
假設(shè)在第一步中為某個(gè)虛擬機(jī)分配的物理內(nèi)存的物理地址區(qū)間是[M,M+N),則當(dāng)前國(guó)際上MMU虛擬化方法所構(gòu)建的E820表中將物理地址區(qū)間[0,N)標(biāo)識(shí)為可用內(nèi)存(不考慮其它保留的物理地址區(qū)間)。例如,如果為某虛擬機(jī)分配256MB物理內(nèi)存,則不管這些物理內(nèi)存處于哪個(gè)物理地址區(qū)間,該虛擬機(jī)的E820表中從0開始至256MB的物理地址區(qū)間被標(biāo)識(shí)為可用。
第三步,當(dāng)虛擬機(jī)加載新頁表時(shí),為其構(gòu)建影子頁表(shadow?page?table)和反向映射(backmap)。X86體系結(jié)構(gòu)MMU虛擬化的核心是分頁(paging)機(jī)制,即將機(jī)器的物理內(nèi)存劃分為若干個(gè)固定大小的內(nèi)存頁(memory?page),再引入虛擬地址(virtual?address)的概念,并構(gòu)造頁表(page?table),在頁表中記錄每個(gè)虛擬地址頁所對(duì)應(yīng)的內(nèi)存頁的物理地址(physical?address)。應(yīng)用程序使用虛擬地址來訪問內(nèi)存,CPU通過查找頁表,將對(duì)應(yīng)的虛擬地址轉(zhuǎn)換為真實(shí)的物理地址后完成內(nèi)存訪問。例如,X86體系結(jié)構(gòu)規(guī)定的最小頁大小是4KB,假設(shè)頁表中記錄的虛擬地址頁0x12345000對(duì)應(yīng)的物理地址頁是0x00055000,那么虛擬地址0x12345678經(jīng)該頁表轉(zhuǎn)換后的物理地址是0x00055678。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué),未經(jīng)中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910043830.1/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
- 評(píng)估企業(yè)體系結(jié)構(gòu)的方法和系統(tǒng)
- 一種計(jì)算機(jī)體系結(jié)構(gòu)性能模擬方法及系統(tǒng)
- 基于云的主數(shù)據(jù)管理體系結(jié)構(gòu)
- 一種軟件體系結(jié)構(gòu)并行演化沖突的檢測(cè)方法
- 基于進(jìn)程代數(shù)的軟件體系結(jié)構(gòu)安全模型的建立方法
- 一種作戰(zhàn)體系建模與仿真系統(tǒng)
- 用于測(cè)試混合指令體系結(jié)構(gòu)的方法和系統(tǒng)
- 一種在微體系結(jié)構(gòu)層面表征區(qū)塊鏈系統(tǒng)的方法和裝置
- 基于設(shè)計(jì)數(shù)據(jù)與實(shí)驗(yàn)數(shù)據(jù)的體系結(jié)構(gòu)評(píng)估方法及其系統(tǒng)
- 一種Java項(xiàng)目的體系結(jié)構(gòu)策略定位方法及系統(tǒng)





