專利名稱::一種計(jì)算機(jī)及計(jì)算機(jī)上配置高速緩存控制策略的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是指一種計(jì)算機(jī)以及計(jì)算機(jī)上配置高速緩存(Cache)控制策略的方法。
背景技術(shù):
:隨著計(jì)算機(jī)的發(fā)展,虛擬化(Virtual)技術(shù)已被廣泛地應(yīng)用,虛擬化技術(shù)是利用虛擬機(jī)(VirtualMachine,簡稱VM)允許一臺電腦上同時(shí)運(yùn)行多個單獨(dú)的操作系統(tǒng),這些操作系統(tǒng)之間互不干擾,應(yīng)用程序都可以在相互隔離的操作系統(tǒng)上運(yùn)行而互不影響,可以筒化軟件的重新配置過程,從而顯著提高計(jì)算機(jī)的工作效率。如圖l所示,現(xiàn)有的計(jì)算機(jī)包括Hardware(硬件設(shè)備,如一臺電腦)、用于資源管理的VMM(VMMonitor,虛擬機(jī)管理器)和多個操作系統(tǒng),其中,運(yùn)行虛擬機(jī)軟件的操作系統(tǒng)稱為HostOS(主操作系統(tǒng)),在虛擬機(jī)里運(yùn)行的操作系統(tǒng)稱為GuestOS(客戶操作系統(tǒng)),如在一臺電腦上安裝了Win2000Server,再在Win2000Server上安裝虛擬機(jī)軟件(如VMWare),利用虛擬機(jī)軟件可模擬出來3臺計(jì)算機(jī),在這3臺計(jì)算機(jī)上分別運(yùn)行DOS、Win98和Linux操作系統(tǒng)。包括Win2000Server在內(nèi),這4個操作系統(tǒng)同時(shí)在一臺電腦上運(yùn)行,相互隔離、互不干擾,由VMM成功地對一臺電腦的資源進(jìn)行劃分和管理。在計(jì)算機(jī)的CPU與內(nèi)存之間相互通信的過程中,Cache(高速緩沖存儲器,簡稱高速緩存)起著重要的作用,高速緩存寄存器是位于CPU和內(nèi)存之間的小規(guī)模、速度快的存儲器,用于保存CPU常用的數(shù)據(jù);當(dāng)Cache中保存CPU要讀寫的數(shù)據(jù)時(shí),CPU直接訪問Cache。由于Cache的速度與CPU相當(dāng),CPU就能在零等待狀態(tài)下迅速地實(shí)現(xiàn)數(shù)據(jù)存取。只有在Cache中不含有CPU所需的數(shù)據(jù)時(shí),CPU才去訪問內(nèi)存。CPU借助于Cache,可以高效地完成內(nèi)存和CPU之間的速度匹配。5不同的Cache控制策略決定了CPU訪問內(nèi)存時(shí)Cache的4吏用方式。Cache的控制策略主要有StrongUncacheable(UC,不緩存)、Uncacheable(UC-,不》爰存)、WriteCombining(WC,寫組合)、WriteThrough(WT,寫通過)、WriteBack(WB,寫返回)。WriteProtected(WP,寫保護(hù))。其中,UC和UC國對CPU的讀寫內(nèi)存不做Cache;WC是把CPU的寫入數(shù)據(jù)先buffer(緩存)住,然后以突發(fā)方式寫入到總線,提高總的寫效率;WT是CPU讀取數(shù)據(jù)時(shí),先從Cache中讀取,沒有命中后再從內(nèi)存中讀取,寫的時(shí)候同時(shí)寫入Cache和內(nèi)存;WB是CPU只向Cache寫入,并用標(biāo)記力。以注明,直到Cache中被寫過的塊要被進(jìn)入的信息塊取代時(shí),才一次寫入主存。例如將顯存的地址范圍上使用"WC"策略,CPU能夠在PCI/AGP總線上,將許多次少量的數(shù)據(jù)寫入集合成一次大的數(shù)據(jù)寫入,這樣能夠獲得2.5倍以下圖像傳送速度的提升。目前,在虛擬環(huán)境下,客戶操作系統(tǒng)要想《吏用Cache控制策略寄存器,就必須直接訪問物理CPU中的Cache控制策略寄存器,但虛擬系統(tǒng)中客戶操作系統(tǒng)往往是多個,如果讓每一個客戶操作系統(tǒng)都直接去訪問物理CPU,就會出現(xiàn)其中一個客戶操作系統(tǒng)使用Cache控制策略寄存器時(shí),即向物理Cache控制策略寄存器中寫入其要使用的Cache類型,其他的客戶操作系統(tǒng)也寫入自己要使用的Cache類型,這樣不但每一個客戶操作系統(tǒng)的運(yùn)行效率得不到保證,而且會出現(xiàn)錯誤,也就是說,目前客戶操作系統(tǒng)不支持Cache策略控制機(jī)制,這對GuestOS的運(yùn)行效率有很大的影響,例如GuestOS不能把內(nèi)存設(shè)置為"WC"控制策略類型,就不能提高寫組合的效率。
發(fā)明內(nèi)容本發(fā)明的實(shí)施例提供一種計(jì)算機(jī)及計(jì)算機(jī)上配置高速緩存控制策略的方法,使計(jì)算機(jī)的客戶操作系統(tǒng)支持Cache策略控制機(jī)制,客戶操作系統(tǒng)的運(yùn)行效率由此得到極大提高。為解決上述技術(shù)問題,一方面,提供一種計(jì)算機(jī),包括虛擬系統(tǒng)平臺,客戶操作系統(tǒng),安裝在所述虛擬系統(tǒng)平臺上;虛擬高速緩存控制策略寄存器;所述虛擬系統(tǒng)平臺將所述客戶操作系統(tǒng)欲配置的高速緩存控制策略類型對應(yīng)的類型映射,傳輸給所述客戶操作系統(tǒng),由所述客戶操作系統(tǒng)將所述類型映射配置給所述虛擬高速緩存控制策略寄存器。優(yōu)選的,上述客戶操作系統(tǒng)為至少兩個;所述虛擬高速緩存控制策略寄存器為至少兩個;每個所述客戶操作系統(tǒng)都分別對應(yīng)一個所述虛擬高速緩存控制策略寄存器,所述客戶操作系統(tǒng)將所述類型映射配置給其對應(yīng)的虛擬高速緩存控制策略寄存器。優(yōu)選的,上述虛擬系統(tǒng)平臺包括硬件平臺和安裝在所述硬件平臺上的虛擬機(jī)管理器。優(yōu)選的,上述硬件平臺包括與所述虛擬高速緩存控制策略寄存器對應(yīng)的物理高速緩存控制策略寄存器。優(yōu)選的,上述客戶操作系統(tǒng)包括一配置模塊,用于將高速緩存控制策略類型對應(yīng)的類型映射配置給所述客戶操作系統(tǒng)對應(yīng)的虛擬高速緩存控制策略寄存器。優(yōu)選的,上述虛擬機(jī)管理器包括一攔截模塊,與所述配置模塊連接,用于攔截所述配置;f莫塊對所述虛擬高速緩存控制策略寄存器的配置,并獲取欲配置的高速緩存控制策略類型;一查找模塊,分別與所述攔截模塊和配置模塊連接,用于根據(jù)所述攔截模塊獲取的高速緩存控制策略類型,從所述物理高速緩存控制策略寄存器中查找高速緩存控制策略類型對應(yīng)的類型映射,并將該類型映射返回至所述客戶操作系統(tǒng)的配置模塊,由所述配置模塊將所述類型映射配置給所述虛擬高速緩存控制策略寄存器。優(yōu)選的,上述虛擬高速緩存控制策略寄存器具體為虛擬特殊模式寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為高速緩存控制策略類型索引。優(yōu)選的,上述虛擬高速緩存控制策略寄存器具體為虛擬存儲區(qū)域類型寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為所述控制策略類型對應(yīng)的機(jī)器內(nèi)存地址。另一方面,還提供一種計(jì)算機(jī)上配置高速緩存控制策略的方法,包括攔截客戶操作系統(tǒng)對其對應(yīng)的虛擬高速緩存控制策略寄存器的配置,并獲取欲配置的高速緩存控制策略類型;根據(jù)所述高速緩存控制策略類型,從虛擬系統(tǒng)平臺中查找高速緩存控制策略類型對應(yīng)的類型映射;將所述類型映射配置給所述客戶操作系統(tǒng)對應(yīng)的虛擬高速緩存控制策略寄存器。優(yōu)選的,上述虛擬高速緩存控制策略寄存器具體為虛擬特殊模式寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為高速緩存控制策略類型索引。優(yōu)選的,上述虛擬高速緩存控制策略寄存器具體為虛擬存儲區(qū)域類型寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為所述控制策略類型對應(yīng)的機(jī)器內(nèi)存地址。再一方面,提供一種計(jì)算機(jī)上配置高速緩存控制策略的方法,該計(jì)算機(jī)包括虛擬系統(tǒng)平臺和安裝在所述虛擬系統(tǒng)平臺上的一個客戶操作系統(tǒng),該方法包括根據(jù)所述客戶操作系統(tǒng)欲配置的高速緩存控制策略類型,從虛擬系統(tǒng)平臺中查找高速緩存控制策略類型對應(yīng)的類型映射;將所述類型映射配置給所述虛擬系統(tǒng)平臺的物理高速緩存控制策略寄存器。優(yōu)選的,上述物理高速緩存控制策略寄存器具體為物理特殊模式寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為高速緩存控制策略類型索引。優(yōu)選的,上述物理高速緩存控制策略寄存器具體為物理存儲區(qū)域類型寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為所述控制策略類型對應(yīng)的機(jī)器內(nèi)存地址。上述技術(shù)方案,通過為客戶操作系統(tǒng)分別配置虛擬高速緩存控制策略寄存器,并為高速緩存控制策略寄存器配置高速緩存控制策略類型,當(dāng)客戶操作系統(tǒng)只有一個時(shí),也可以將高速緩存控制策略類型直接配置給硬件平臺的物理高速緩存控制策略寄存器,使客戶操作系統(tǒng)支持Cache策略控制機(jī)制,客戶操作8系統(tǒng)的運(yùn)行效率由此得到極大提高。圖1為現(xiàn)有技術(shù)中計(jì)算機(jī)結(jié)構(gòu)示意圖;圖2為本發(fā)明的實(shí)施例計(jì)算機(jī)結(jié)構(gòu)示意圖;圖3為圖2所示計(jì)算機(jī)的一具體結(jié)構(gòu)示意圖4為本發(fā)明的實(shí)施例計(jì)算機(jī)上配置高速緩存控制策略方法流程示意圖;圖5為圖4所示流程中,虛擬機(jī)管理器從虛擬MSR中查找Cache控制策略類型的示意圖6為圖4所示流程中,虛擬機(jī)管理器從物理MSR中找到Cache控制策略類型,并構(gòu)建該類型值所對應(yīng)的表項(xiàng)索引示意圖7為圖4所示流程中,配置MTRR高速緩存控制策略的方法流程示意圖8為圖7所示流程中,虛擬機(jī)管理器從物理MTRR中找到真實(shí)的Cache控制策略對應(yīng)的機(jī)器內(nèi)存地址,并將該機(jī)器內(nèi)存地址配置給客戶操作系統(tǒng)所對應(yīng)的虛擬MTRR示意圖。具體實(shí)施例方式為使本發(fā)明的實(shí)施例要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。本發(fā)明的實(shí)施例針對現(xiàn)有虛擬環(huán)境下,客戶操作系統(tǒng)不支持Cache控制策略,導(dǎo)致客戶操作系統(tǒng)運(yùn)行效率低的問題,提供一種計(jì)算機(jī)。如圖2所示,該計(jì)算機(jī)包括虛擬系統(tǒng)平臺;客戶才喿作系統(tǒng),安裝在所述虛擬系統(tǒng)平臺上;以及虛擬高速緩存控制策略寄存器,所述虛擬系統(tǒng)平臺將所述客戶操作系統(tǒng)欲配置的高速緩存控制策略類型對應(yīng)的類型缺射,傳輸給所迷客戶操作系統(tǒng),由所述客戶操作系統(tǒng)將所述類型映射配置給所述虛擬高速緩存控制策略寄存器。上述客戶操作系統(tǒng)可以為至少兩個,虛擬高速緩存控制策略寄存器也為至少兩個;每個所述客戶操作系統(tǒng)都分別對應(yīng)一個所述虛擬高速緩存控制策略寄9存器,所述客戶操作系統(tǒng)將所述類型映射配置給其對應(yīng)的虛擬高速緩存控制策略寄存器。上述系統(tǒng)中,虛擬系統(tǒng)平臺包括硬件平臺(如一臺計(jì)算^L,包^:CPU、內(nèi)存、硬盤、顯卡、才喿作系統(tǒng)和顯示器等)和安裝在所述硬件平臺上的虛擬機(jī)管理器(VMM,如VMWare軟件等)。利用VMM可以在一臺計(jì)算機(jī)上虛擬出若干臺計(jì)算機(jī),包括若干個客戶操作系統(tǒng),VMM對安裝在一臺計(jì)算機(jī)上的多個客戶操作系統(tǒng)進(jìn)行管理,這些客戶操作系統(tǒng)之間互不干擾,應(yīng)用程序都可以在相互隔離的操:作系統(tǒng)上運(yùn)行而互不影響。其中,所述硬件平臺的CPU中包括與虛擬高速緩存控制策略寄存器對應(yīng)的物理高速緩存控制策略寄存器;如,物理高速緩存控制策略寄存器為物理MSR(ModelSpecificRegister,特殊模式寄存器),則虛擬高速緩存控制策略寄存器為虛擬MSR,或者物理高速緩存控制策略寄存器為物理MTRR(MemoryTypeRangeRegister,存儲區(qū)域類型寄存器),則虛擬高速緩存控制策略寄存器為虛擬MTRR。內(nèi)存的Cache策略控制通常是操作系統(tǒng)所做的事情,CPU提供了一種基于頁表的內(nèi)存Cache控制機(jī)制PAT(PageAttributeTable,頁面屬性表),在CPU的物理MSRs中提供了一個IA32—CR—PATMSR,該寄存器為64位的寄存器,也可以是128位的寄存器,其內(nèi)容如下表所示<table>tableseeoriginaldocumentpage10</column></row><table>表1上述表中,PAO占3位二進(jìn)制位,Reserved占5位的二進(jìn)制位,PAO和第3~7位的Reserved組成PATO,PA1和第11~15位的Reserved組成PAT1,其它依次類推。PAO~PA7里的數(shù)據(jù)代表Cache控制策略類型,如下表:Encoding(編碼)Mnemonic(內(nèi)存類型)<table>tableseeoriginaldocumentpage11</column></row><table>表2上述表2中,Cache控制策略類型有8種,如果是9~16種,則PAO~PA7相應(yīng)地由4位二進(jìn)制位表示,依次類推,Reserved相應(yīng)地占4位二進(jìn)制位;在有了IA32一CR一PATMSR后,為一頁選擇Cache控制策略類型,是由指向該頁的頁表項(xiàng)里的PAT,PCD(PageCacheDisable)和PWT(PageWriteThrough)共同組成索引,當(dāng)然也可以由四個或者更多表項(xiàng)共同組成索引,根據(jù)Cache控制策略類型的種類數(shù)而有所變化。從IA32一CRJPATMSR選擇一個Cache控制機(jī)制,如下表<table>tableseeoriginaldocumentpage11</column></row><table>表3而CPU提供的MTRR規(guī)定了某段范圍內(nèi)物理內(nèi)存的Cache控制策略,用于優(yōu)化CPU的數(shù)據(jù)傳送性能,其結(jié)構(gòu)如圖8所示,即多段連續(xù)的存儲區(qū)域,其中,每段存儲區(qū)域可以有不同的Cache控制策略。如圖3所示,上述客戶操作系統(tǒng)還包括一配置模塊,用于將高速緩存控制策略類型對應(yīng)的類型映射配置給所述客戶#:作系統(tǒng)對應(yīng)的虛擬高速緩存控制策略寄存器;上述虛擬機(jī)管理器包括一攔截模塊,與所述配置模塊連接,用于攔截所述配置模塊對所述虛擬高速緩存控制策略寄存器配置,并獲取欲配置的高速緩存控制策略類型;如第一客戶操作系統(tǒng)配置其對應(yīng)IA32—CR一PATMSR;攔截模塊不讓客戶操作系統(tǒng)將配置的內(nèi)容寫入物理高速緩存控制策略寄存器中,并從中獲取客戶操作系統(tǒng)對其對應(yīng)MSR配置的高速緩存控制策略類型,若該高速緩存控制策略類型索引為(PAT,PCD,PWT)=(0,1,1),對應(yīng)的是PAT3中的高速緩存控制策略類型,如果虛擬IA32—CR—PATMSR中PAT3中的值是04H,則Cache策略控制類型為WT;一查找模塊,分別與所述攔截模塊和配置模塊連接,用于根據(jù)所述攔截模塊獲取的高速緩存控制策略類型,從所述物理高速緩存控制策略類型寄存器中查找高速緩存控制策略類型對應(yīng)的類型映射,并將該類型映射返回至所述客戶操作系統(tǒng)的配置模塊,由所述配置模塊將所述類型映射配置給所述虛擬高速緩存控制策略寄存器;該查找4莫塊乂人CPU的物理IA32—CR—PATMSR中找到一個PAT為04H的項(xiàng),比如PA1中的值為04H,則會構(gòu)造高速緩存控制策略類型索引(PAT,PCD,PWT)=(0,0,1),即所述高速緩存控制策略類型對應(yīng)的類型映射,并將該類型映射配置給該客戶操作系統(tǒng)對應(yīng)的虛擬IA32_CR_PATMSR。相應(yīng)的,上述圖3所示的計(jì)算機(jī)上配置MTRR的Cache控制策略的過程如下第一客戶操作系統(tǒng)配置其對應(yīng)MTRR;攔截模塊攔截客戶操作系統(tǒng)對其虛擬MTRR的配置;查找模塊從硬件平臺的物理MTRR中,找到客戶操作系統(tǒng)欲配置MTRR的控制策略類型對應(yīng)的類型映射,即機(jī)器內(nèi)存地址;客戶操作系統(tǒng)的配置模塊將該機(jī)器內(nèi)存地址配置給該客戶操作系統(tǒng)對應(yīng)的MTRR(如圖8所示)。如圖4所示,本發(fā)明的實(shí)施例還包括一種上述圖2所示計(jì)算機(jī)上,配置高速緩存控制策略的方法,包括如下步驟步驟41、攔截客戶操作系統(tǒng)對其對應(yīng)的虛擬高速緩存控制策略寄存器的配置,并獲取欲配置的高速緩存控制策略類型;具體的,客戶操作系統(tǒng)欲配置其對應(yīng)的虛擬高速緩存控制策略寄存器,虛擬機(jī)管理器(VMM)攔截客戶操作系統(tǒng)的配置,不讓客戶操作系統(tǒng)將配置的內(nèi)容寫入物理高速緩存控制策略寄存器中,從中獲取客戶操作系統(tǒng)欲配置的高速緩存控制策略類型。步驟42、根據(jù)所述高速緩存控制策略類型,從物理高速緩存控制策略寄存器中查找高速緩存控制策略類型對應(yīng)的類型映射;具體的,虛擬機(jī)管理器根據(jù)客戶操作系統(tǒng)欲配置的高速緩存控制策略類型,從虛擬系統(tǒng)平臺的物理高速緩存控制策略寄存器中,查找該類型所對應(yīng)的類型映射。步驟43、將所述類型映射配置給所述客戶操作系統(tǒng)對應(yīng)的虛擬高速緩存控制策略寄存器;該步驟中,當(dāng)高速緩存控制策略寄存器為MSR寄存器時(shí),高速緩存控制策略類型對應(yīng)的類型映射為高速緩存控制策略類型索引,即高速緩存控制類型策略類型所對應(yīng)的表項(xiàng)索引;當(dāng)高速緩存控制策略寄存器為MTRR時(shí),高速緩存控制策略類型對應(yīng)的類型映射為物理MTRR的才幾器內(nèi)存地址。下面分別以MSR寄存器和MTRR寄存器為例說明,在虛擬環(huán)境下,客戶操作系統(tǒng)如何使用Cache控制策略,提高其運(yùn)行效率的。一.客戶操作系統(tǒng)配置MSR的Cache控制策略的實(shí)施例如圖5、圖6所示,客戶操作系統(tǒng)配置IA32—CR一PATMSR寄存器的Cache控制策略的過程如下13步驟51、客戶操作系統(tǒng)欲配置其對應(yīng)的IA32—CR_PATMSR;步驟52、虛擬機(jī)管理器攔截客戶操作系統(tǒng)對其虛擬IA32—CR—PATMSR的配置;步驟53、虛擬機(jī)管理器將其攔截到的配置內(nèi)容記錄到虛擬IA32一CR一PATMSR中(如圖5所示),并獲取客戶操作系統(tǒng)欲配置的高速緩存控制策略類型;如客戶操作系統(tǒng)欲分配其虛擬IA32—CR—PATMSR,高速緩存控制策略類型索引為(PAT,PCD,PWT)=(0,1,1),對應(yīng)的是PAT3中的高速緩存控制策略類型,則虛擬機(jī)管理器從虛擬的IA32—CR—PATMSR中,找到該P(yáng)AT3中的值如果是04H,則Cache策略控制類型為WT;步驟54、虛擬機(jī)管理器從虛擬機(jī)硬件平臺的物理IA32_CR—PATMSR中找到一個PAT為04H的項(xiàng),比如,表1中PA1中的值為04H,則虛擬機(jī)管理器就會構(gòu)造(PAT,PCD,PWT)=(0,0,1),配置給該客戶才喿作系統(tǒng)對應(yīng)的IA32—CR—PATMSR中(如圖6所示);步驟55、結(jié)束配置。在上述客戶操作系統(tǒng)配置其虛擬的IA32—CR—PATMSR過程中,由于可用的Cache控制策略類型為8種,IA32—CR—PATMSR也有8項(xiàng)PAT,因此只有把真實(shí)的IA32—CR_PATMSR的8項(xiàng)寫入不同的Cache控制策略類型值,則總能在上述步驟54中找到一個客戶操作系統(tǒng)需要的Cache控制策略類型。上述實(shí)施例的優(yōu)點(diǎn)虛擬機(jī)管理器為該客戶操作系統(tǒng)分配虛擬IA32—CR一PATMSR,客戶操作系統(tǒng)配置其虛擬IA32—CR—PATMSR的Cache策略類型,當(dāng)客戶操作系統(tǒng)配置其對應(yīng)的IA32—CR一PATMSR頁的PAT、PCD、PWT后,VMM查找出PAT、PCD、PWT組成的索引所對應(yīng)的高速緩存控制策略類型,并構(gòu)建該類型值在物理IA32—CR—PATMSR中對應(yīng)的PAT、PCD、PWT索引,寫入該客戶操作系統(tǒng)對應(yīng)的IA32—CR—PATMSR的頁表的機(jī)器頁表項(xiàng)里。使客戶操作系統(tǒng)支持基于頁表的Cache控制策略,從而提高了客戶操作系統(tǒng)的運(yùn)行效率;另外,由于客戶操作系統(tǒng)支持Cache類型控制機(jī)制,也可以避免DMA(DirectMemoryAccess,直接存儲器存取)出錯的問題,DMA是一種快速傳送數(shù)據(jù)的機(jī)制,數(shù)據(jù)傳遞可以從適配卡到內(nèi)存,從內(nèi)存到適配卡或從一段內(nèi)存到另一段內(nèi)存,DMA與Cache的區(qū)別是存取數(shù)據(jù)不需要CPU的參與。如一段內(nèi)存的Cache類型是WB,GuestOS需要把它設(shè)置為WT,以便把它作為DMA緩存,由于WB類型的內(nèi)存在寫的時(shí)候不直接寫入內(nèi)存,而是寫入到Cache中,這樣設(shè)備在作DMA操作時(shí),從DMAbuffer里獲取的數(shù)據(jù)不是GuestOS寫入的數(shù)據(jù)(寫入的數(shù)據(jù)還在Cache里),從而產(chǎn)生錯誤,而采用上述方法后,不會再產(chǎn)生這樣的錯誤。二.客戶操作系統(tǒng)配置MTRR的Cache控制策略的實(shí)施例MTRR規(guī)定了某段范圍內(nèi)物理內(nèi)存的Cache控制策略,用于優(yōu)化CPU的數(shù)據(jù)傳送性能。因此,客戶操作系統(tǒng)如果能夠支持MTRR,則其運(yùn)行效率將會得到大大地提高。如圖7、圖8所示,客戶操作系統(tǒng)配置MTRR的Cache控制策略的過程如下步驟71、虛擬機(jī)管理器對客戶操作系統(tǒng)的內(nèi)存進(jìn)行連續(xù)分配;步驟72、客戶操作系統(tǒng)配置其對應(yīng)的虛擬MTRR;步驟73、虛擬機(jī)管理器攔截客戶操作系統(tǒng)對其虛擬MTRR的配置;步驟74、虛擬機(jī)管理器從硬件平臺的物理MTRR中,找到客戶操作系統(tǒng)欲配置MTRR的控制策略類型對應(yīng)的類型映射,即機(jī)器內(nèi)存地址;步驟75、虛擬機(jī)管理器將其找到的機(jī)器內(nèi)存地址,配置給客戶操作系統(tǒng)對應(yīng)的虛擬MTRR(如圖8所示);步驟76、配置結(jié)束。上述實(shí)施例中,由于MTRR是按段配置物理內(nèi)存的類型,因此虛擬機(jī)管理器在給客戶操作系統(tǒng)分配使用的內(nèi)存也是連續(xù)的段(如圖8所示)。該實(shí)施例的優(yōu)點(diǎn)虛擬機(jī)管理器讓客戶操作系統(tǒng)知道MTRR的存在,并且由虛擬機(jī)管理器拄截客戶操作系統(tǒng)對MTRR的訪問,由于客戶操作系統(tǒng)看到的是客戶操作系統(tǒng)的MTRR的虛擬地址,當(dāng)客戶操作系統(tǒng)配置MTRR虛擬地址的控制策略類型的時(shí)候,由虛擬機(jī)管理器找到對應(yīng)的物理機(jī)器內(nèi)存地址,并把機(jī)器內(nèi)存地址的Cache類型配置給客戶操作系統(tǒng)對應(yīng)的虛擬MTRR。另外,在上述客戶操作系統(tǒng)配置MSR的Cache控制策略的實(shí)施例,和客15戶操作系統(tǒng)配置MTRR的Cache控制策略的實(shí)施例中,如果計(jì)算機(jī)中只有一個客戶操:作系統(tǒng),則虛擬機(jī)管理器可不為該客戶才乘作系統(tǒng)分配虛擬MSR或者虛擬MTRR,而將Cache控制策略類型所對應(yīng)的表項(xiàng)索引或者機(jī)器內(nèi)存地址,直接寫入硬件平臺的物理MSR或者M(jìn)TRR中,具體方法包括步驟91、根據(jù)客戶操作系統(tǒng)欲配置的高速緩存控制策略類型,從虛擬系統(tǒng)平臺的物理高速緩存控制策略寄存器中查找高速緩存控制策略類型對應(yīng)的類型映射;步驟92、將該類型映射配置給所述物理高速緩存控制策略寄存器。如,客戶操作系統(tǒng)配置其頁表的表項(xiàng)(PAT,PCD,PWT)=(0,1,1),對應(yīng)的是PAT3中的Cache策略控制類型,則該P(yáng)AT3中的值如果是04H,則Cache策略控制類型為WT,而在物理MSR中PATl中的值為04H,則構(gòu)建(PAT,PCD,PWT)=(0,0,1),直接寫入該物理IA32—CR—PATMSR中,這里高速緩存控制策略類型對應(yīng)的類型映射為IA32—CR—PATMSR的頁表表項(xiàng)索引。同樣,客戶操作系統(tǒng)配置其MTRR,虛擬機(jī)管理器從硬件平臺的物理MTRR中,找到客戶操作系統(tǒng)欲配置MTRR的控制策略類型對應(yīng)的機(jī)器內(nèi)存地址,直接配置給該MTRR。綜上所述,本發(fā)明的實(shí)施例通過為客戶操作系統(tǒng)分配虛擬的高速緩存控制策略寄存器,并為客戶操作系統(tǒng)配置相應(yīng)的Cache控制策略,使客戶操作系統(tǒng)支持Cache控制策略,在虛擬環(huán)境下,使客戶操作系統(tǒng)的運(yùn)行效率得到極大地提高,同時(shí)由于客戶操作系統(tǒng)支持Cache控制策略,設(shè)備在作DMA操作時(shí),也可避免出現(xiàn)DMA錯誤。以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明實(shí)施例所述原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。權(quán)利要求1.一種計(jì)算機(jī),包括虛擬系統(tǒng)平臺,客戶操作系統(tǒng),安裝在所述虛擬系統(tǒng)平臺上;其特征在于,還包括虛擬高速緩存控制策略寄存器;所述虛擬系統(tǒng)平臺將所述客戶操作系統(tǒng)欲配置的高速緩存控制策略類型對應(yīng)的類型映射,傳輸給所述客戶操作系統(tǒng),由所述客戶操作系統(tǒng)將所述類型映射配置給所述虛擬高速緩存控制策略寄存器。2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于,所述客戶操作系統(tǒng)為至少兩個;所述虛擬高速緩存控制策略寄存器為至少兩個;每個所述客戶操作系統(tǒng)都分別對應(yīng)一個所述虛擬高速緩存控制策略寄存器,所述客戶操作系統(tǒng)將所述類型映射配置給其對應(yīng)的虛擬高速緩存控制策略寄存器。3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī),其特征在于,所述虛擬系統(tǒng)平臺包括硬件平臺和安裝在所述硬件平臺上的虛擬機(jī)管理器。4.根據(jù)權(quán)利要求3所述的計(jì)算機(jī),其特征在于,所述硬件平臺包括與所述虛擬高速緩存控制策略寄存器對應(yīng)的物理高速緩存控制策略寄存器。5.根據(jù)權(quán)利要求4所述的計(jì)算機(jī),其特征在于,所述客戶操作系統(tǒng)包括一配置模塊,用于將高速緩存控制策略類型對應(yīng)的類型映射配置給所述客戶操作系統(tǒng)對應(yīng)的虛擬高速緩存控制策略寄存器。6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī),其特征在于,所述虛擬機(jī)管理器包括一攔截模塊,與所述配置模塊連接,用于欄截所述配置模塊對所述虛擬高速緩存控制策略寄存器的配置,并獲取欲配置的高速緩存控制策略類型;一查找模塊,分別與所述攔截模塊和配置模塊連接,用于根據(jù)所述攔截模塊獲取的高速緩存控制策略類型,從所述物理高速緩存控制策略寄存器中查找高速緩存控制策略類型對應(yīng)的類型映射,并將該類型映射返回至所述客戶操作系統(tǒng)的配置模塊,由所述配置模塊將所述類型映射配置給所述虛擬高速緩存控制策略寄存器。7.根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的計(jì)算機(jī),其特征在于,所述虛擬高速緩存控制策略寄存器具體為虛擬特殊模式寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為高速緩存控制策略類型索引。8.根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的計(jì)算機(jī),其特征在于,所述虛擬高速緩存控制策略寄存器具體為虛擬存儲區(qū)域類型寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為所述控制策略類型對應(yīng)的^L器內(nèi)存地址。9.一種計(jì)算機(jī)上配置高速緩存控制策略的方法,其特征在于,包括攔截客戶操作系統(tǒng)對其對應(yīng)的虛擬高速緩存控制策略寄存器的配置,并獲取欲配置的高速緩存控制策略類型;根據(jù)所述高速緩存控制策略類型,從虛擬系統(tǒng)平臺中查找高速緩存控制策略類型對應(yīng)的類型映射;將所述類型映射配置給所述客戶操作系統(tǒng)對應(yīng)的虛擬高速緩存控制策略寄存器。10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)上配置高速緩存控制策略的方法,其特征在于,所述虛擬高速緩存控制策略寄存器具體為虛擬特殊模式寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為高速緩存控制策略類型索引。11.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)上配置高速緩存控制策略的方法,其特征在于,所述虛擬高速緩存控制策略寄存器具體為虛擬存儲區(qū)域類型寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為所述控制策略類型對應(yīng)的機(jī)器內(nèi)存地址。12.—種計(jì)算機(jī)上配置高速緩存控制策略的方法,該計(jì)算機(jī)包括虛擬系統(tǒng)平臺和安裝在所述虛擬系統(tǒng)平臺上的一個客戶操作系統(tǒng),其特征在于,該方法包括根據(jù)所述客戶操作系統(tǒng)欲配置的高速緩存控制策略類型,從虛擬系統(tǒng)平臺中查找高速緩存控制策略類型對應(yīng)的類型映射;將所述類型映射配置給所述虛擬系統(tǒng)平臺的物理高速緩存控制策略寄存器。13.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)上配置高速緩存控制策略的方法,其特征在于,所述物理高速緩存控制策略寄存器具體為物理特殊模式寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為高速緩存控制策略類型索引。14.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)上配置高速緩存控制策略的方法,其特征在于,所述物理高速緩存控制策略寄存器具體為物理存儲區(qū)域類型寄存器;所述高速緩存控制策略類型對應(yīng)的類型映射為所述控制策略類型對應(yīng)的機(jī)器內(nèi)存地址。全文摘要本發(fā)明提供一種計(jì)算機(jī)及計(jì)算機(jī)上配置高速緩存控制策略的方法,涉及計(jì)算機(jī)領(lǐng)域,為解決現(xiàn)有的計(jì)算機(jī)中客戶操作系統(tǒng)不支持Cache控制策略而運(yùn)行效率低的問題而發(fā)明。本發(fā)明的方法包括攔截客戶操作系統(tǒng)對虛擬高速緩存控制策略寄存器的配置,并獲取欲配置的高速緩存控制策略類型;根據(jù)所述高速緩存控制策略類型,從虛擬系統(tǒng)平臺中查找高速緩存控制策略類型對應(yīng)的類型映射;將所述類型映射配置給所述虛擬高速緩存控制策略寄存器。上述方案使客戶操作系統(tǒng)支持Cache控制策略類型,客戶操作系統(tǒng)的運(yùn)行效率也由此得到了提高。文檔編號G06F12/08GK101470668SQ20071030403公開日2009年7月1日申請日期2007年12月24日優(yōu)先權(quán)日2007年12月24日發(fā)明者軍陳申請人:聯(lián)想(北京)有限公司