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

虛擬機控制結(jié)構(gòu)譯碼器的制作方法

文檔序號:6626083閱讀:500來源:國知局
專利名稱:虛擬機控制結(jié)構(gòu)譯碼器的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實施方案涉及虛擬機擴展(VMX)體系結(jié)構(gòu)。更具體地,本發(fā)明的實施方案涉及使用虛擬機控制結(jié)構(gòu)(VMCS)標(biāo)識譯碼器來譯碼VMX指令的方法和裝置。
背景技術(shù)
虛擬機擴展(VMX)體系結(jié)構(gòu)通過將處理器資源在不同的時間分配給各種軟件應(yīng)用程序和操作系統(tǒng),從而允許多個軟件程序和操作系統(tǒng)使用相同的微處理器邏輯(“硬件”)。
VMX體系結(jié)構(gòu)一般使用虛擬機監(jiān)控(VMM)程序,該程序?qū)⒁粋€或多個軟件程序(例如虛擬機(VM))接口到單個微處理器或一組處理元件。運行在每個VM上的賓客(guest)軟件可以包括賓客操作系統(tǒng)和各種賓客軟件應(yīng)用程序。此外,運行在VMM上的應(yīng)用程序和操作系統(tǒng)可以被統(tǒng)一地稱為VM或賓客。
典型地,每個VMCS條目由一個唯一的標(biāo)識符來標(biāo)識,而不是由從體系結(jié)構(gòu)上定義的存儲器地址來標(biāo)識。在至少一種現(xiàn)有技術(shù)的例子中,VMCS標(biāo)識(ID)是一個唯一的32位標(biāo)識符。
在VMX體系結(jié)構(gòu)中支持的兩種指令包括VMREAD和VMWRITE,它們分別對VMCS條目讀寫數(shù)據(jù)。這些指令在被執(zhí)行時可以使用VMCS ID來定位所要讀寫的適當(dāng)VMCS條目。然而,VMREAD和VMWRITE指令一般能夠讀寫大小變化的數(shù)據(jù),這些數(shù)據(jù)可以使VMREAD和VMWRITE產(chǎn)生處理時間和資源的訪問。如果VMREAD和VMWRITE訪問那些不可訪問的數(shù)據(jù),可能導(dǎo)致進一步的處理損失。VMCS數(shù)據(jù)可能由于某些原因而對VMREAD和VMWRITE指令來說是不可訪問的,這些原因例如是VMCS條目包含只寫或只讀數(shù)據(jù)字段,或者所述數(shù)據(jù)通常不能被這些指令訪問。
VMX體系結(jié)構(gòu)中由VMREAD或VMWRITE招致的處理損失也可能使得計算機系統(tǒng)的性能遭受損害。此外,現(xiàn)有技術(shù)的VMCS ID譯碼系統(tǒng)已不能有效地解決這個問題。

發(fā)明內(nèi)容
為了解決以上問題,本發(fā)明提供了一種虛擬機擴展(VMX)體系結(jié)構(gòu)。更具體地說,本發(fā)明的實施方案涉及改進VMREAD和VMWRITE指令的執(zhí)行性能。根據(jù)本發(fā)明的一個方面,提供了一種裝置,包括虛擬機控制結(jié)構(gòu)(VMCS)標(biāo)識(ID)譯碼器,該譯碼器將VMCS ID數(shù)據(jù)譯碼成VMCS字段的地址和偏移值,用以幫助識別與將被執(zhí)行的至少一條虛擬機體系結(jié)構(gòu)指令相關(guān)聯(lián)的多個微操作(uop)之一。
根據(jù)本發(fā)明的另一個方面,提供了一種方法,包括從存儲器中取得第一指令;執(zhí)行第一微操作(uop),以存儲與所述第一指令相關(guān)聯(lián)的多個uop之一的基地址;執(zhí)行第二uop,以將虛擬機控制結(jié)構(gòu)(VMCS)標(biāo)識(ID)值譯碼成虛擬機控制結(jié)構(gòu)字段的地址和多個uop所述之一的偏移值;從由所述基地址和所述偏移值的和所指示的地址發(fā)出第三uop。
根據(jù)本發(fā)明的再一個方面,提供了一種系統(tǒng),包括存儲單元,其包括虛擬機管理器(VMM),該管理器包括虛擬機讀(VMREAD)指令;處理器,其包括虛擬機控制結(jié)構(gòu)(VMCS)標(biāo)識(ID)譯碼器,該譯碼器對與所述VMREAD指令相關(guān)聯(lián)的微操作(uop)進行譯碼。
根據(jù)本發(fā)明的又一個方面,提供了一種裝置,包括譯碼裝置,其將VMCS ID數(shù)據(jù)譯碼成VMCS字段的地址和偏移值,用以幫助識別與將被執(zhí)行的至少一條虛擬機體系結(jié)構(gòu)指令相關(guān)聯(lián)的多個微操作(uop)之一。


在附圖中以示例而非限制的方式圖示說明了本發(fā)明的實施方案,其中相同的標(biāo)號表示相似的元件,在附圖中圖1圖示了其中可以使用本發(fā)明實施方案的虛擬機環(huán)境。
圖2圖示了其中可以實現(xiàn)本發(fā)明至少一個實施方案的計算機系統(tǒng)。
圖3圖示了其中可以實現(xiàn)本發(fā)明一個實施方案的點對點(PtP)計算機系統(tǒng)。
圖4中的流程圖根據(jù)本發(fā)明的一個實施方案圖示了VMREAD或VMWRITE指令的操作。
圖5圖示了根據(jù)本發(fā)明一個實施方案的邏輯,該邏輯對虛擬機控制結(jié)構(gòu)(VMCS)標(biāo)識(ID)字段進行譯碼。
具體實施例方式
本發(fā)明的實施方案涉及虛擬機擴展(VMX)體系結(jié)構(gòu)。更具體地,本發(fā)明的實施方案涉及改進VMREAD和VMWRITE指令的執(zhí)行性能。
為了改進VMX體系結(jié)構(gòu)中的處理性能,本發(fā)明的實施方案提高了對虛擬機控制結(jié)構(gòu)(VMCS)標(biāo)識(ID)字段的譯碼速度。在本發(fā)明的一個實施方案中,可位于一個處理元件(例如微處理器)中的邏輯被用來通過利用在VMCS內(nèi)的字段所對應(yīng)的、在VMCS ID中所提供的信息,來提高VMREAD或VMWRITE指令可以訪問所述字段的速度。
圖1圖示了用于將賓客軟件接口到微處理器的結(jié)構(gòu)(“虛擬機環(huán)境”)。具體地說,圖1圖示了將兩個虛擬機(VM)105(“賓客軟件”)接口到微處理器110的虛擬機管理器(VMM)101。在每個VM內(nèi)運行的軟件可以包括賓客操作系統(tǒng)以及各種軟件應(yīng)用。為了將每個VM與處理器資源(例如寄存器、存儲器和輸入/輸出(“I/O”)資源)相接口,經(jīng)由虛擬機控制結(jié)構(gòu)(VMCS)115內(nèi)的一組字段(這些字段可能駐留在存儲器120中)可以對狀態(tài)和控制信息進行修改,否則進行跟蹤。更具體地說,諸如VMCS的控制結(jié)構(gòu)一般被用來在VMM和VM賓客之間傳遞對處理器資源的控制權(quán)以及訪問權(quán)。本發(fā)明至少有一個實施方案125可以駐留在處理器中,然而其他實施方案可以駐留在虛擬機環(huán)境的其他元件中。
圖2圖示了其中可以使用本發(fā)明的至少一個實施方案的計算機系統(tǒng)。處理器205從一級(L1)緩存存儲器210和主存儲器215訪問數(shù)據(jù)。在本發(fā)明的其他實施方案中,緩存存儲器可以是二級(L2)緩存或者在計算機系統(tǒng)存儲器層級結(jié)構(gòu)中的其他存儲器。在圖2的處理器內(nèi)所圖示的是本發(fā)明的一個實施方案206。然而,本發(fā)明的其他實施方案可以實現(xiàn)在所述系統(tǒng)內(nèi)的其他設(shè)備中,例如單獨的總線主體(agent),或者以硬件、軟件或其某種組合的方式分布在整個系統(tǒng)內(nèi)。
可以用各種存儲器源來實現(xiàn)主存儲器,例如動態(tài)隨機訪問存儲器(DRAM)、硬盤驅(qū)動器(HDD)220、或者經(jīng)由網(wǎng)絡(luò)接口230位于所述計算機系統(tǒng)遠(yuǎn)程的存儲器源,其包含各種存儲設(shè)備和技術(shù)。緩存存儲器可位于處理器內(nèi),或者位于很靠近處理器的地方,例如在處理器的局部總線207上。此外,緩存存儲器可以包含相對快速的存儲單元,例如6晶體管(6T)單元,或者具有大致相等或者更快訪問速度的其他存儲單元。
圖2的計算機系統(tǒng)可以是總線主體(例如微處理器)的點對點(PtP)網(wǎng)絡(luò),這些主體在PtP網(wǎng)絡(luò)上經(jīng)由專用于每個主體的總線信號來進行通信。本發(fā)明至少有一個實施方案206位于每個總線主體內(nèi),或者至少與其相關(guān)聯(lián),從而可以有助于以迅速的方式在總線主體之間進行存儲操作。
圖3圖示了以點對點(PtP)配置來安排的計算機系統(tǒng)。具體地說,圖3示出了處理器、存儲器和輸入/輸出設(shè)備通過多個點對點接口而互連的系統(tǒng)。
圖3的系統(tǒng)也可以包括幾個處理器,但為清楚起見只示出了兩個處理器370、380。處理器370、380每一個都可以包括與存儲器32、34相連的本地存儲器控制器中心(MCH)372、382。處理器370、380可以使用點對點接口電路378、388,經(jīng)由點對點接口350來交換數(shù)據(jù)。處理器370、380每一個都可以使用點對點接口電路376、394、386、398,經(jīng)由各自的點對點接口352、354與芯片組390交換數(shù)據(jù)。芯片組390也可以經(jīng)由高性能圖形接口392,與高性能圖形電路338交換數(shù)據(jù)。
本發(fā)明至少有一個實施方案可以位于存儲器控制器中心或處理器的CSI接口372、382內(nèi)。然而,本發(fā)明的其他實施方案可存在于圖3的系統(tǒng)內(nèi)的其他電路、邏輯單元或設(shè)備中。此外,本發(fā)明的其他實施方案可以分布在圖3中所圖示的幾個電路、邏輯單元或設(shè)備內(nèi)。
在本發(fā)明的一個實施方案中,VMCS內(nèi)的每個字段都可以用一個32位標(biāo)識符的一部分來標(biāo)識。此外,VMCS的某些字段由于不同的體系結(jié)構(gòu)上的原因是可訪問的,有些是只讀的,其他則是只寫的。另外,所述字段內(nèi)的某些數(shù)據(jù)包含16位信息,而其他數(shù)據(jù)卻包含32位或64位信息。
為了適應(yīng)不同的VMCS字段屬性,例如大小和可訪問性,本發(fā)明的實施方案具有足夠的一般性,足以在執(zhí)行VMREAD或VMWRITE指令以訪問諸如16位、32位和64位字段的數(shù)據(jù)大小時,提供改進的VMCS ID譯碼性能。此外,本發(fā)明的實施方案可以提高對諸如VMREAD和VMWRITE一類指令無法訪問的字段進行VMCS ID譯碼的性能,從而允許系統(tǒng)更有效率地吸納(absorb)這些情形。
在本發(fā)明的一個實施方案中,通過利用VMCS ID內(nèi)標(biāo)識由VMREAD或VMWRITE指令尋址的VMCS字段的位置的信息,來改進VMCS ID譯碼。此外,在本發(fā)明的一個實施方案中,VMCS ID被利用來對VMREAD或VMWRITE指令內(nèi)負(fù)責(zé)執(zhí)行讀/寫或者例如為無效訪問發(fā)信令的(一個或多個)微操作(uop)的起始的偏移量進行譯碼。
圖4是圖示了與本發(fā)明的一個實施方案有關(guān)的操作的流程圖。在操作401處取得VMREAD或VMWRITE指令,并且該指令被譯碼成單獨的uop后,在操作405處執(zhí)行uop,其存儲與VMREAD/VMWRITE指令的正確源/目的地相對應(yīng)的所要執(zhí)行的uop的位置。
例如,如果VMREAD指令的目的地是一個寄存器,則X被指定為對應(yīng)于將VMCS數(shù)據(jù)讀入寄存器中的uop的位置。然而,如果VMREAD指令的目的地是一個存儲器,則X被指定為對應(yīng)于將VMCS數(shù)據(jù)讀入存儲器中的uop的位置。同樣,如果用于VMWRITE指令的源數(shù)據(jù)來自一個寄存器,則X被指定為對應(yīng)于從寄存器中寫出VMCS數(shù)據(jù)的uop的位置。然而,如果用于VMWRITE指令的源數(shù)據(jù)是來自存儲器,則X被指定為對應(yīng)于從存儲器中寫出VMCS數(shù)據(jù)的uop的位置。
在操作410處,執(zhí)行uop,使得用于特定VMCS字段的VMCS ID被譯碼。在本發(fā)明的一個實施方案中,對VMCS ID的譯碼導(dǎo)致確定出VMCS字段的地址(“Y”)和可被加到X上的偏移值(“Z”),用以確定將分別使得對應(yīng)于VMREAD或VMWRITE指令的讀操作或?qū)懖僮鞅粓?zhí)行的(一個或多個)uop的位置。在已計算出X和Z的和后,在操作415處可以執(zhí)行在uop定序器中對應(yīng)于這個和的位置處開始的uop。此外,執(zhí)行對目標(biāo)VMCS字段的訪問的uop中至少有一個可以使用Y值來獲得所訪問字段的地址。
為了實現(xiàn)本發(fā)明的至少一個實施方案,例如圖4的流程圖所示出的實施方案,邏輯可以被用于所述實施方案的至少一部分。在其他實施方案中,在圖4的流程圖中示出的部分或全部操作可以通過存儲在機器可讀介質(zhì)上的指令(軟件)來完成,所述指令在由處理器執(zhí)行時使得該處理器執(zhí)行包括圖4中所示操作的方法。在其他實施方案中,軟件和邏輯可被一起用來執(zhí)行在圖4的流程圖中示出的操作。
圖5圖示了根據(jù)本發(fā)明的一個實施方案,包括VMCS ID譯碼器的處理邏輯,其中可以執(zhí)行在圖4的流程圖中示出的操作。具體地說,圖5的譯碼器圖示了用于存儲和組織由指令取接口502獲取或“取得”的指令(例如VMREAD和VMWRITE)的uop的定序器501。例如在圖4的操作405處所提及的(一個或多個)uop被從定序器發(fā)出到執(zhí)行單元505,執(zhí)行單元505包含用于生成(在圖4的操作410處提及的)偏移值Z的VMCS ID譯碼器510,可由加法器515將Z加到(在圖4的操作405處提及的)X,以便生成指向在定序器中將被發(fā)到執(zhí)行單元的下一個uop的指針517。
VMCS ID被譯碼成地址Y,地址Y是指寄存器文件520內(nèi)VMREAD/VMWRITE指令的目標(biāo)字段。在至少一個實施方案中,使目標(biāo)字段被訪問的uop使用地址Y來標(biāo)識目標(biāo)字段。此外,在一個實施方案中,Z和X都被存儲在寄存器文件中對應(yīng)于Y的位置處,隨后被相加以生成uop的定序器內(nèi)的起始點,以訪問期望的VMCS字段。在X和Z在加法器中相加,從而指明在定序器中將要執(zhí)行的正確的下一個uop后,根據(jù)指令是VMREAD還是VMWRITE,執(zhí)行正確的讀/寫uop并且對期望數(shù)據(jù)進行讀或?qū)?。然后所有的uop通過退休邏輯525而退休。
在本發(fā)明的一個實施方案中,只有五種可能的Z值(如圖4中所示),如果VMCS ID不對應(yīng)于這些有效字段之一,則Y是未定義的。如果Y是未定義的,意味著所述字段是不可訪問的,那么Z將表示在執(zhí)行時將發(fā)信號通知無效VMCS ID的uop的偏移量。相反,如果Y包含一個定義值,表示所述字段是可訪問的,則Z將表示將執(zhí)行VMCS訪問(讀或?qū)懖僮?的uop的偏移量。Z與X相加后,將表示指向?qū)?zhí)行期望操作的正確uop的指針。
可以用多種方式實現(xiàn)這里所圖示的本發(fā)明實施方案的任何或所有部分,這些方式包括但不限于使用互補金屬氧化物半導(dǎo)體(CMOS)電路器件(硬件)的邏輯、存儲在存儲介質(zhì)內(nèi)的指令(軟件)或者硬件和軟件的組合,所述指令在被諸如微處理器的機器執(zhí)行時使得該微處理器執(zhí)行這里所描述的操作。這里提及的“微處理器”或“處理器”是想指因接收到一個或多個輸入信號或指令而執(zhí)行操作的任何機器或設(shè)備,包括CMOS器件在內(nèi)。
雖然參考圖示的實施方案描述了本發(fā)明,但是不想以限制性的方式來解釋這篇說明書。對本發(fā)明所屬領(lǐng)域的技術(shù)人員而言很清楚的那些對示意性實施方案以及其他實施方案的各種修改都被視為落入本發(fā)明的精神和范圍之內(nèi)。
權(quán)利要求
1.一種裝置,包括虛擬機控制結(jié)構(gòu)(VMCS)標(biāo)識(ID)譯碼器,以將VMCS ID數(shù)據(jù)譯碼成VMCS字段的地址和偏移值,用以幫助識別與將被執(zhí)行的至少一條虛擬機體系結(jié)構(gòu)指令相關(guān)聯(lián)的多個微操作之一。
2.如權(quán)利要求1所述的裝置,還包括寄存器文件,用以存儲所述VMCS字段,并且存儲與所述至少一條虛擬機指令相關(guān)聯(lián)的第一微操作(uop)的基地址。
3.如權(quán)利要求2所述的裝置,還包括加法器,以將所述偏移值與所述基地址相加,以便生成所述第一uop的地址。
4.如權(quán)利要求3所述的裝置,其中所述偏移值取決于所述VMCS字段的大小,并且取決于所述字段是否能夠只被讀、只被寫或者是不可訪問的。
5.如權(quán)利要求1所述的裝置,還包括定序器,以存儲所述第一uop以及與所述虛擬機體系結(jié)構(gòu)指令相關(guān)聯(lián)的其他uop。
6.如權(quán)利要求5所述的裝置,其中所述虛擬機體系結(jié)構(gòu)指令是VMWRITE指令。
7.如權(quán)利要求5所述的裝置,其中所述虛擬機體系結(jié)構(gòu)指令是VMREAD指令。
8.一種方法,包括從存儲器中取得第一指令;執(zhí)行第一微操作(uop),以存儲與所述第一指令相關(guān)聯(lián)的多個uop之一的基地址;執(zhí)行第二uop,以將虛擬機控制結(jié)構(gòu)(VMCS)標(biāo)識(ID)值譯碼成VMCS字段的地址和所述多個uop之一的偏移值;從由所述基地址和所述偏移值的和所指示的地址發(fā)出第三uop。
9.如權(quán)利要求8所述的方法,其中所述基地址取決于所述第一指令是否將數(shù)據(jù)從所述VMCS字段讀入寄存器或存儲器位置。
10.如權(quán)利要求8所述的方法,其中所述基地址取決于所述第一指令是否將數(shù)據(jù)從寄存器或存儲器位置寫入所述VMCS字段。
11.如權(quán)利要求8所述的方法,其中所述偏移值取決于所述VMCS字段的大小。
12.如權(quán)利要求11所述的方法,其中所述偏移值還取決于所述VMCS字段是否可以只被讀,可以只被寫,或者無法被讀寫。
13.如權(quán)利要求8所述的方法,其中所述第一指令是虛擬存儲器體系結(jié)構(gòu)指令。
14.如權(quán)利要求13所述的方法,其中所述第一指令是執(zhí)行讀操作的指令。
15.如權(quán)利要求13所述的方法,其中所述第一指令是執(zhí)行寫操作的指令。
16.一種系統(tǒng),包括存儲單元,其包括虛擬機管理器(VMM),該管理器包括虛擬機讀(VMREAD)指令;處理器,其包括虛擬機控制結(jié)構(gòu)(VMCS)標(biāo)識(ID)譯碼器,該譯碼器對與所述VMREAD指令相關(guān)聯(lián)的微操作(uop)進行譯碼。
17.如權(quán)利要求16所述的系統(tǒng),其中所述VMM還包括VMWRITE指令,該指令的uop將由所述VMCS ID譯碼器來譯碼。
18.如權(quán)利要求17所述的系統(tǒng),其中所述VMCS ID譯碼器生成將由所述VMWRITE指令或所述VMREAD指令進行訪問的VMCS字段地址。
19.如權(quán)利要求18所述的系統(tǒng),其中所述VMCS字段與將從所述字段讀或?qū)λ鲎侄螌懙脑L問uop的對應(yīng)偏移地址相關(guān)聯(lián)。
20.如權(quán)利要求19所述的系統(tǒng),其中所述VMCS ID譯碼器生成所述訪問uop的基地址。
21.如權(quán)利要求20所述的系統(tǒng),其中所述訪問uop的地址等于所述偏移地址和所述基地址之和。
22.如權(quán)利要求21所述的系統(tǒng),其中所述基地址和所述VMCS字段地址是由譯碼VMCS ID uop的VMCS ID譯碼器生成的。
23.如權(quán)利要求22所述的系統(tǒng),其中所述VMCS ID譯碼器是包括互補金屬氧化物半導(dǎo)體(CMOS)晶體管的邏輯。
24.一種裝置,包括譯碼裝置,以將VMCS ID數(shù)據(jù)譯碼成VMCS字段的地址和偏移值,用以幫助識別與將被執(zhí)行的至少一條虛擬機體系結(jié)構(gòu)指令相關(guān)聯(lián)的多個uop之一。
25.如權(quán)利要求24所述的裝置,還包括存儲裝置,以存儲所述VMCS字段,并且存儲與所述至少一條虛擬機指令相關(guān)聯(lián)的第一微操作(uop)的基地址。
26.如權(quán)利要求25所述的裝置,還包括加法器裝置,以將所述偏移值與所述基地址相加,以便生成所述第一uop的地址。
27.如權(quán)利要求26所述的裝置,其中所述偏移值取決于所述VMCS字段的大小,并且取決于所述字段是否能夠只被讀、只被寫或者是不可訪問的。
28.如權(quán)利要求25所述的裝置,還包括定序裝置,以存儲所述第一uop以及與所述虛擬機體系結(jié)構(gòu)指令相關(guān)聯(lián)的其他uop。
29.如權(quán)利要求28所述的裝置,其中所述虛擬機體系結(jié)構(gòu)指令是VMWRITE指令。
30.如權(quán)利要求28所述的裝置,其中所述虛擬機體系結(jié)構(gòu)指令是VMREAD指令。
全文摘要
本發(fā)明提供了一種虛擬機擴展(VMX)體系結(jié)構(gòu)。更具體地,本發(fā)明的實施方案涉及改進VMREAD和VMWRITE指令的執(zhí)行性能。
文檔編號G06F9/318GK1713134SQ20051007971
公開日2005年12月28日 申請日期2005年6月24日 優(yōu)先權(quán)日2004年6月25日
發(fā)明者桑喬伊·蒙代爾, 羅伯特·法雷爾 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1