[發(fā)明專利]虛擬機(jī)的TLB填寫方法、裝置及存儲介質(zhì)有效
| 申請?zhí)枺?/td> | 201910473311.2 | 申請日: | 2019-05-31 |
| 公開(公告)號: | CN110196757B | 公開(公告)日: | 2021-08-03 |
| 發(fā)明(設(shè)計(jì))人: | 王俊儒;毛碧波;高翔 | 申請(專利權(quán))人: | 龍芯中科技術(shù)股份有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F12/1036 |
| 代理公司: | 北京同立鈞成知識產(chǎn)權(quán)代理有限公司 11205 | 代理人: | 榮甜甜;劉芳 |
| 地址: | 100*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 虛擬機(jī) tlb 填寫 方法 裝置 存儲 介質(zhì) | ||
本發(fā)明提供一種虛擬機(jī)的TLB填寫方法、裝置及存儲介質(zhì),該方法包括:獲取待填入轉(zhuǎn)換檢測緩沖區(qū)TLB的目標(biāo)虛擬地址,以及,訪問目標(biāo)虛擬地址的目標(biāo)進(jìn)程的標(biāo)識;根據(jù)目標(biāo)虛擬地址和目標(biāo)進(jìn)程的標(biāo)識,從虛擬機(jī)的影子頁表中獲取與目標(biāo)虛擬地址和目標(biāo)進(jìn)程的標(biāo)識對應(yīng)的目標(biāo)機(jī)器地址,影子頁表包括至少一個(gè)虛擬地址的至少一個(gè)映射關(guān)系,虛擬地址的每個(gè)映射關(guān)系用于指示虛擬地址對應(yīng)的一種組合,組合包括:機(jī)器地址和進(jìn)程的標(biāo)識;將目標(biāo)進(jìn)程的標(biāo)識、目標(biāo)虛擬地址、目標(biāo)機(jī)器地址之間的映射關(guān)系填入TLB中。本發(fā)明能夠解決現(xiàn)有技術(shù)中如何在不支持頁表基址寄存器的計(jì)算機(jī)架構(gòu)上實(shí)現(xiàn)虛擬機(jī)的TLB填寫的技術(shù)問題。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù),尤其涉及一種虛擬機(jī)的TLB填寫方法、裝置及存儲介質(zhì)。
背景技術(shù)
Xen是一個(gè)開放源代碼虛擬機(jī)監(jiān)視器。為了讓物理存在的計(jì)算機(jī)(HOST)的內(nèi)存可以為HOST上運(yùn)行不同的虛擬機(jī)共享,Xen在虛擬地址到物理地址之間引入了一層中間地址,稱為虛擬機(jī)的“物理”地址。這樣,運(yùn)行在虛擬機(jī)上的操作系統(tǒng)Guest OS可以看到虛擬機(jī)的“物理”地址,但看不到HOST的機(jī)器地址。
在Guest OS中維護(hù)有每個(gè)進(jìn)程的GVA(虛擬地址)與GPA(虛擬機(jī)的“物理”地址)之間的映射關(guān)系的Guest頁表,在HOST中維護(hù)有每個(gè)進(jìn)程的GPA(虛擬機(jī)的“物理”地址)與HPA(HOST的機(jī)器地址)之間的映射關(guān)系的HOST頁表。因此,MMU通過頁表查找,獲取虛擬地址對應(yīng)的機(jī)器地址。為了提高數(shù)據(jù)訪存效率、減少重復(fù)的頁表查找,引入了轉(zhuǎn)換檢測緩沖區(qū)(Translation Lookaside Buffer,TLB)緩存最近使用過的頁表項(xiàng)(即,GVA到HPA的映射關(guān)系)。這樣,當(dāng)需要訪問內(nèi)存中的一個(gè)數(shù)據(jù),CPU可以基于訪問這個(gè)數(shù)據(jù)的GVA,查詢TLB。若在TLB中發(fā)現(xiàn)有該GVA(即TLB hit),則可以基于TLB中所保存的該GVA對應(yīng)的HPA,訪問內(nèi)存以訪存該數(shù)據(jù)。若在TLB中沒有查找到該GVA(即TLB miss),則由MMU查找頁表,獲取該GVA對應(yīng)的HPA。
為了提高TLB miss時(shí)TLB填寫的效率,在x86的虛擬化環(huán)境中,在VMM(VirtualMachine Monitor,虛擬機(jī)監(jiān)控器)中創(chuàng)建一個(gè)虛擬機(jī)頁表的影子頁表,用于維護(hù)GVA至HPA之間的映射關(guān)系。這樣,當(dāng)發(fā)生TLB miss時(shí),頁表基址寄存器已經(jīng)不指向進(jìn)程本身的GVA-GPA的頁表,而是被替換為影子頁表的pgd。由于影子頁表自身即保存了GVA-HPA的關(guān)系,因此,可以在不退出虛擬機(jī)的情況下自身即可完成地址翻譯,并完成TLB的填寫。
上述影子頁表,需要在支持頁表基址寄存器寄存器的架構(gòu)上使用,無法應(yīng)用在不支持頁表基址寄存器寄存器的計(jì)算機(jī)架構(gòu)上。因此,如何在不支持頁表基址寄存器的計(jì)算機(jī)架構(gòu)上實(shí)現(xiàn)TLB填寫,是一個(gè)亟待解決的問題。
發(fā)明內(nèi)容
本發(fā)明提供一種虛擬機(jī)的TLB填寫方法、裝置及存儲介質(zhì),用于解決現(xiàn)有技術(shù)中如何在不支持頁表基址寄存器的計(jì)算機(jī)架構(gòu)上實(shí)現(xiàn)虛擬機(jī)的TLB填寫的技術(shù)問題。
本發(fā)明第一方面提供一種虛擬機(jī)的TLB填寫方法,所述方法包括:
獲取待填入轉(zhuǎn)換檢測緩沖區(qū)TLB的目標(biāo)虛擬地址,以及,訪問所述目標(biāo)虛擬地址的目標(biāo)進(jìn)程的標(biāo)識;
根據(jù)所述目標(biāo)虛擬地址和所述目標(biāo)進(jìn)程的標(biāo)識,從虛擬機(jī)的影子頁表中獲取與所述目標(biāo)虛擬地址和所述目標(biāo)進(jìn)程的標(biāo)識對應(yīng)的目標(biāo)機(jī)器地址,所述影子頁表包括至少一個(gè)虛擬地址的至少一個(gè)映射關(guān)系,所述虛擬地址的每個(gè)映射關(guān)系用于指示所述虛擬地址對應(yīng)的一種組合,所述組合包括:機(jī)器地址和進(jìn)程的標(biāo)識;
將所述目標(biāo)進(jìn)程的標(biāo)識、所述目標(biāo)虛擬地址、所述目標(biāo)機(jī)器地址之間的映射關(guān)系填入TLB中。
在一種可能的實(shí)施方式中,所述根據(jù)所述目標(biāo)虛擬地址和所述目標(biāo)進(jìn)程的標(biāo)識,從影子頁表中獲取與所述目標(biāo)虛擬地址和所述目標(biāo)進(jìn)程的標(biāo)識對應(yīng)的目標(biāo)機(jī)器地址,包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于龍芯中科技術(shù)股份有限公司,未經(jīng)龍芯中科技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910473311.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種可信虛擬機(jī)平臺
- 虛擬機(jī)參數(shù)遷移的方法、設(shè)備和虛擬機(jī)服務(wù)器
- 一種虛擬機(jī)系統(tǒng)及其安全控制方法
- 一種云計(jì)算系統(tǒng)動態(tài)分配虛擬機(jī)的方法
- 一種恢復(fù)、升級虛擬機(jī)的方法及裝置
- 虛擬機(jī)切換系統(tǒng)及切換方法
- 處理虛擬機(jī)集群的方法和計(jì)算機(jī)系統(tǒng)
- 虛擬機(jī)故障檢測、恢復(fù)系統(tǒng)及虛擬機(jī)檢測、恢復(fù)、啟動方法
- 一種虛擬機(jī)遷移方法和系統(tǒng)
- 一種虛擬機(jī)容錯(cuò)系統(tǒng)及其容錯(cuò)方法





