亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

虛擬機(jī)系統(tǒng)及其高級可編程中斷控制器的訪問處理方法

文檔序號:6573376閱讀:164來源:國知局
專利名稱:虛擬機(jī)系統(tǒng)及其高級可編程中斷控制器的訪問處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)中的APIC (Advanced Programmable Interrupt Controller,高級可編程中斷控制器),特別是一種虛擬機(jī)系統(tǒng)及其APIC訪問 處理方法。
背景技術(shù)
APIC主要應(yīng)用于多處理器操作系統(tǒng),是為了解決中斷請求太少和處理器 間中斷而產(chǎn)生的,因此,APIC對計(jì)算機(jī)來講主要是起到以下的兩個作用管 理中斷請求的分配,把中斷請求擴(kuò)展到24個,以適應(yīng)更多的設(shè)備;管理多CPU。APIC系統(tǒng)由本地APIC、 10 APIC和APIC串行總線組成,每個處理器中 集成了一個本地APIC,而IOAPIC是系統(tǒng)芯片組中一部分,APIC總線負(fù)責(zé)連 接10 APIC和各個本地APIC。本地APIC接收該處理器產(chǎn)生的本地中斷(如時鐘中斷)以及由該處理器 產(chǎn)生的處理器間中斷,并從APIC串行總線接收來自IOAPIC的消息;IOAPIC 負(fù)責(zé)接收所有外部的硬件中斷,并翻譯成消息選擇發(fā)給接收中斷的處理器,以 及從本地APIC接收處理器間中斷消息。關(guān)于APIC詳細(xì)的描述請參考《IA-32 Inel Architecture Software Developer's Manual Volume 3 Chapter 8》?,F(xiàn)有的虛擬機(jī)系統(tǒng)通過攔截對APIC芯片的MMIO( Memory Map Input and Output,內(nèi)存映射輸入輸出)訪問,完成APIC的虛擬化,然而上述的操作會 引起陷入虛擬機(jī)的操作,并且需要解析對內(nèi)存的訪問指令,造成APIC訪問效 率很低,整個系統(tǒng)效率不高。 發(fā)明內(nèi)容本發(fā)明的目的在于提供一種虛擬機(jī)系統(tǒng)的高級可編程中斷控制器的訪問 處理方法,實(shí)現(xiàn)簡單,同時盡量少引入陷入虛擬機(jī)的操作和解碼操作以提高 APIC的訪問效率。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了 一種虛擬機(jī)系統(tǒng)的高級可編程中斷控制器的訪問處理方法,包括地址映射步驟,虛擬機(jī)監(jiān)視器建立APIC虛擬寄存器空間和APIC初始化地 址的頁表映射,并將地址映射列表加入到虛擬機(jī)客戶操作系統(tǒng)的頁表中;APIC訪問控制步驟,客戶操作系統(tǒng)訪問APIC中的第一類型寄存器時, 強(qiáng)制陷入到虛擬機(jī)監(jiān)視器以實(shí)現(xiàn)訪問,客戶操作系統(tǒng)訪問APIC中的第二類型 寄存器時,根據(jù)地址映射列表直接訪問;對第一類型寄存器的操作將導(dǎo)致APIC的其它寄存器產(chǎn)生變化,對第二類 型寄存器的操作不影響APIC的其它寄存器。上述的方法,其中,所述第一類型寄存器為EOI寄存器、TPR寄存器和 ICR寄存器。上述的方法,其中,所述地址映射步驟具體包括 步驟21,客戶才喿作系統(tǒng)啟動后初始化APIC;步驟22,虛擬機(jī)監(jiān)視器獲取APIC的初始化地址,并分配APIC虛擬寄存器空間;步驟23,虛擬機(jī)監(jiān)視器建立APIC的初始化地址與APIC虛擬寄存器空間之 間的頁表映射;步驟24,虛擬機(jī)監(jiān)視器將該建立的頁表映射加入到客戶操作系統(tǒng)的頁表 當(dāng)中。上述的方法,其中,所述客戶操作系統(tǒng)訪問APIC中的第一類型寄存器時, 強(qiáng)制陷入到虛擬機(jī)監(jiān)視器以實(shí)現(xiàn)訪問具體為步驟31,客戶操作系統(tǒng)的MMIO訪問為APIC的第一類型寄存器; 步驟32,陷入到虛擬機(jī)監(jiān)視器; 步驟33,解析出匯編指令;步驟34,解析出才喿作數(shù)后調(diào)用虛擬APIC函數(shù)完成APIC功能; 步驟35,設(shè)置寄存器的返回值后將其返回客戶操作系統(tǒng)。 為了更好的實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種虛擬機(jī)系統(tǒng),包括虛擬 機(jī)監(jiān)視器和客戶操作系統(tǒng),其中所述虛擬機(jī)監(jiān)視器中設(shè)置有地址映射模塊,用于建立APIC虛擬寄存器空間和APIC初始化地址的頁表映射,并將地址映射列表加入到客戶操作系統(tǒng)的頁表中;所述客戶操作系統(tǒng)中包括一APIC訪問控制模塊,用于監(jiān)控內(nèi)存訪問,在 客戶操作系統(tǒng)的MMIO訪問為APIC的第 一類型寄存器時,強(qiáng)制陷入到虛擬機(jī) 監(jiān)視器,在客戶操作系統(tǒng)訪問APIC中的第二類型寄存器時,根據(jù)地址映射列 表直接訪問;對第 一類型寄存器的操作將導(dǎo)致APIC的其它寄存器產(chǎn)生變化,對第二類 型寄存器的操作不影響APIC的其它寄存器。上述的虛擬機(jī)系統(tǒng),其中,所述虛擬機(jī)監(jiān)^L器中設(shè)置有APIC處理模塊, 用于解析出匯編指令,解析出操作數(shù)后調(diào)用虛擬APIC函數(shù)完成APIC功能,并 設(shè)置寄存器的返回值后將其返回客戶操作系統(tǒng)。上述的虛擬機(jī)系統(tǒng),其中,所述第一類型寄存器為EOI( End Of Interrupt , 中斷應(yīng)答)寄存器、TPR ( Task Priority Register,任務(wù)優(yōu)先級寄存器)和ICR (Interrupt Command Register, 中斷命令寄存器)。本發(fā)明具有以下有益效果建立APIC虛擬寄存器空間和APIC初始化地址的頁表映射,GOS訪問 APIC時,大量減少了陷入虛擬機(jī)和解碼的操作,使APIC的訪問周期由原來 的近萬個時鐘周期減少到幾十個時鐘周期; 攔截的APIC寄存器只有三個,操作簡單。


圖1為本發(fā)明的方法的流程示意圖; 圖2為地址映射步驟的詳細(xì)流程示意圖;圖3為本發(fā)明中GOS訪問APIC中的第一類型寄存器的流程示意圖。
具體實(shí)施方式
為便于理解,對本發(fā)明進(jìn)行詳細(xì)描述之前,在此先對本發(fā)明的實(shí)施例中所涉及到的幾個概念進(jìn)行說明。在APIC的寄存器之中存在兩種類型的寄存器,如下所述 第一類型寄存器,對該類寄存器的操作將導(dǎo)致APIC的其它寄存器產(chǎn)生變化,如EOI (End Of Interrupt ,中斷應(yīng)答)寄存器,對其操作會引起IOAPIC寄存器的刷新,對TPR( Task Priority Register,任務(wù)優(yōu)先級寄存器)的寫操 作將導(dǎo)致PPR寄存器的值改變,對ICR寄存器的寫操作將導(dǎo)致IPI (Inter Processor Interrupt,處理器間中斷)改變。第二類型寄存器,對該類寄存器的操作不影響APIC的其它寄存器。本發(fā)明的虛擬機(jī)系統(tǒng)及其高級可編程中斷控制器的訪問處理方法中,通過 將APIC的MMIO地址映射到一個內(nèi)存空間,并將該頁表映射加入到GOS (Guest Operation System,客戶操作系統(tǒng))的頁表中,這樣GOS可直接通過 頁表實(shí)現(xiàn)APIC的訪問,提高了 APIC的訪問效率。本發(fā)明的虛擬機(jī)系統(tǒng)的高級可編程中斷控制器的訪問處理方法如圖1所 示,包括如下步驟地址映射步驟,VMM( Virtual Machine Monitor,虛擬機(jī)監(jiān)視器)建立APIC 虛擬寄存器空間和APIC初始化地址(即APIC的MMIO地址)的頁表映射, 并將地址映射列表加入到GOS的頁表當(dāng)中;APIC訪問控制步驟,GOS訪問APIC中的第一類型寄存器時,強(qiáng)制陷入 到虛擬機(jī)監(jiān)視器以實(shí)現(xiàn)對APIC中的第二類型寄存器的訪問;GOS訪問APIC 中的第二類型寄存器時,根據(jù)頁表直接訪問。下面分別對各步驟進(jìn)行進(jìn)一步詳細(xì)的描述。如圖2所示,地址映射步驟具體包括步驟21, GOS啟動,初始化APIC;步驟22, VMM獲取APIC的初始化地址(即APIC的MMIO地址),并 分配APIC虛擬寄存器空間;步驟23, VMM建立APIC的初始化地址(即APIC的MMIO地址)與 APIC虛擬寄存 間之間的頁表映射;步驟24, VMM將該建立的頁表映射加入到GOS的頁表當(dāng)中。在建立了 APIC的初始化地址(即APIC的MMIO地址)與APIC虛擬寄 存器空間之間的頁表映射之后,實(shí)際情況下,GOS已經(jīng)可以通過該頁表映射 實(shí)現(xiàn)對APIC的直接訪問。由于對第一類型寄存器的操作將導(dǎo)致其它寄存器的變化,因此對于GOS 訪問APIC中寄存器應(yīng)該加以區(qū)別對待,即GOS訪問APIC中的第一類型寄存器時,強(qiáng)制陷入到虛擬機(jī)監(jiān)視器以實(shí)現(xiàn) 對APIC中的第二類型寄存器的訪問;GOS訪問APIC中的第二類型寄存器時, 根據(jù)頁表直接訪問。下面分別對該兩種方式分別進(jìn)行描述。GOS訪問APIC中的第一類型寄存器如圖3所示,具體包括如下步驟 步驟31 , GOS的MMIO訪問為APIC的第 一類型寄存器; 步驟32,陷入到虛擬機(jī)監(jiān)視器; 步驟33,解析出匯編指令;步驟34,解析出操作數(shù)后調(diào)用虛擬APIC函數(shù)完成APIC功能; 步驟35,設(shè)置寄存器的返回值后將其返回GOS。 本發(fā)明的虛擬機(jī)系統(tǒng)包括虛擬機(jī)監(jiān)視器和客戶操作系統(tǒng),其中 虛擬機(jī)監(jiān)視器中設(shè)置有地址映射模塊,用于建立APIC虛擬寄存器空間和APIC初始化地址(即APIC的MMIO地址)的頁表映射,并將地址映射列表加入到GOS的頁表當(dāng)中;客戶^喿作系統(tǒng)中包括一 APIC訪問控制模塊,用于監(jiān)控內(nèi)存訪問,在GOS的MMIO訪問為APIC的第一類型寄存器時,強(qiáng)制陷入到虛擬機(jī)監(jiān)視器;虛擬機(jī)監(jiān)視器中設(shè)置有APIC處理模塊,用于解析出匯編指令,解析出操作數(shù)后調(diào)用虛擬APIC函數(shù)完成APIC功能,并設(shè)置寄存器的返回值后將其返回GOS。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通 ^f支術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若千改進(jìn)和潤飾, 這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1. 一種虛擬機(jī)系統(tǒng)的高級可編程中斷控制器的訪問處理方法,其特征在于,包括地址映射步驟,虛擬機(jī)監(jiān)視器建立APIC虛擬寄存器空間和APIC初始化地址的頁表映射,并將地址映射列表加入到虛擬機(jī)客戶操作系統(tǒng)的頁表中;APIC訪問控制步驟,客戶操作系統(tǒng)訪問APIC中的第一類型寄存器時,強(qiáng)制陷入到虛擬機(jī)監(jiān)視器以實(shí)現(xiàn)訪問,客戶操作系統(tǒng)訪問APIC中的第二類型寄存器時,根據(jù)地址映射列表直接訪問;對第一類型寄存器的操作將導(dǎo)致APIC的其它寄存器產(chǎn)生變化,對第二類型寄存器的操作不影響APIC的其它寄存器。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一類型寄存器為中 斷應(yīng)答寄存器、任務(wù)優(yōu)先級寄存器和中斷命令寄存器。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述地址映射步驟具體包括步驟21,客戶操作系統(tǒng)啟動后初始化APIC;步驟22,虛擬機(jī)監(jiān)視器獲取APIC的初始化地址,并分配APIC虛擬寄存器空間;步驟23,虛擬機(jī)監(jiān)視器建立APIC的初始化地址與APIC虛擬寄存器空間之 間的頁表映射;步驟24,虛擬機(jī)監(jiān)視器將該建立的頁表映射加入到客戶操作系統(tǒng)的頁表 當(dāng)中。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述客戶操作系統(tǒng)訪問APIC 中的第一類型寄存器時,強(qiáng)制陷入到虛擬機(jī)監(jiān)視器以實(shí)現(xiàn)訪問具體為步驟31,客戶操作系統(tǒng)的MMIO訪問為APIC的第一類型寄存器; 步驟32,陷入到虛擬機(jī)監(jiān)視器; 步驟33,解析出匯編指令;步驟34,解析出操作數(shù)后調(diào)用虛擬APIC函數(shù)完成APIC功能; 步驟35 ,設(shè)置寄存器的返回值后將其返回客戶操作系統(tǒng)。
5. —種虛擬機(jī)系統(tǒng),包括虛擬機(jī)監(jiān)視器和客戶操作系統(tǒng),其特征在于 所述虛擬機(jī)監(jiān)視器中設(shè)置有地址映射模塊,用于建立APIC虛擬寄存器空間和APIC初始化地址的頁表映射,并將地址映射列表加入到客戶操作系統(tǒng)的 頁表中;所述客戶操作系統(tǒng)中包括一APIC訪問控制模塊,用于監(jiān)控內(nèi)存訪問,在 客戶操作系統(tǒng)的MMIO訪問為APIC的第 一 類型寄存器時,強(qiáng)制陷入到虛擬機(jī) 監(jiān)視器,在客戶操作系統(tǒng)訪問APIC中的第二類型寄存器時,根據(jù)地址映射列 表直接訪問;對第一類型寄存器的操作將導(dǎo)致APIC的其它寄存器產(chǎn)生變化,對第二類 型寄存器的操作不影響APIC的其它寄存器。
6. 根據(jù)權(quán)利要求5所述的虛擬機(jī)系統(tǒng),其特征在于,所述虛擬機(jī)監(jiān)視器中 設(shè)置有APIC處理才莫塊,用于解析出匯編指令,解析出操作數(shù)后調(diào)用虛擬APIC 函數(shù)完成APIC功能,并設(shè)置寄存器的返回值后將其返回客戶操作系統(tǒng)。
7. 根據(jù)權(quán)利要求5所述的虛擬機(jī)系統(tǒng),其特征在于,所述第一類型寄存 器為中斷應(yīng)答寄存器、任務(wù)優(yōu)先級寄存器和中斷命令寄存器。
全文摘要
本發(fā)明公開了一種虛擬機(jī)系統(tǒng)及其高級可編程中斷控制器的訪問處理方法,其中該方法包括地址映射步驟,虛擬機(jī)監(jiān)視器建立APIC虛擬寄存器空間和APIC初始化地址的頁表映射,并將地址映射列表加入到虛擬機(jī)客戶操作系統(tǒng)的頁表中;APIC訪問控制步驟,客戶操作系統(tǒng)訪問APIC中的第一類型寄存器時,強(qiáng)制陷入到虛擬機(jī)監(jiān)視器以實(shí)現(xiàn)訪問,客戶操作系統(tǒng)訪問APIC中的第二類型寄存器時,根據(jù)地址映射列表直接訪問;對第一類型寄存器的操作將導(dǎo)致APIC的其它寄存器產(chǎn)生變化,對第二類型寄存器的操作不影響APIC的其它寄存器。本發(fā)明使APIC的訪問周期大大縮小,同時操作簡單。
文檔編號G06F13/20GK101271436SQ200710064538
公開日2008年9月24日 申請日期2007年3月19日 優(yōu)先權(quán)日2007年3月19日
發(fā)明者勇 石, 軍 陳 申請人:聯(lián)想(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1