專利名稱:利用事務(wù)存儲器硬件來加速虛擬化和仿真的制作方法
利用事務(wù)存儲器硬件來加速虛擬化和仿真
祖旦 Ff足
仿真是涉及從軟件提供中央處理單元的功能的技術(shù)。一個優(yōu)點是仿真是你 能夠在任何其他類型的處理器上運行針對特定類型的處理器設(shè)計的軟件。虛擬 化是提供以允許不止一個操作系統(tǒng)同時運行的方式對硬件分區(qū)的能力的技術(shù)。 有了虛擬化,物理中央處理單元被分成多個上下文。每一個上下文然后輪流直 接在處理器上運行。即使虛擬化產(chǎn)品一般比仿真產(chǎn)品快,但這兩種類型的產(chǎn)品 當(dāng)今具有限制可實現(xiàn)的速度的若干復(fù)雜性。作為一個示例,在仿真期間處理并 發(fā)需要可能減緩連續(xù)執(zhí)行的額外同步。作為第二示例,跟蹤仿真下的自修改代 碼通常招致巨大的性能負(fù)擔(dān)。
概述
公開了用于使用事務(wù)存儲器硬件來加速虛擬化或仿真的各種技術(shù)和方法。 一個或多個中央處理單元設(shè)置有可用于加速虛擬化的事務(wù)存儲器硬件。該事務(wù) 存儲器硬件具有維護(hù)專用狀態(tài)的設(shè)施、呈現(xiàn)來自軟件可見的其他中央處理單元 的存儲器訪問的設(shè)施、以及對專用狀態(tài)的原子提交的支持。
在一個實現(xiàn)中,可使用事務(wù)存儲器硬件來例如便于對精確異常語義的仿 真。專用狀態(tài)可用于使得仿真狀態(tài)能夠保持與體系結(jié)構(gòu)狀態(tài)不一致并只在特定
邊界上同步。優(yōu)化的指令序列使用程序塊準(zhǔn)確(chunk-accurate)模擬執(zhí)行以嘗 試并實現(xiàn)與較慢的指令準(zhǔn)確(instruction-accurate)模擬相同的最終效果,該指 令準(zhǔn)確模擬被隔離在僅在成功地仿真整個程序塊的情況下提交的專用狀態(tài)中。
在另一實現(xiàn)中,可通過提供事務(wù)存儲器硬件上的隔離的專用狀態(tài)并將執(zhí)行 仿真的主機的棧存儲在該隔離的專用狀態(tài)中來便于狀態(tài)隔離。
在又一實現(xiàn)中,自修改代碼可使用事務(wù)存儲器硬件來檢測。由中央處理單 元執(zhí)行的存儲器訪問可由軟件監(jiān)視以檢測被仿真的客戶機(guest)已對其自己 的代碼序列作出自修改。
事務(wù)存儲器硬件在一個實現(xiàn)中可用于通過利用原子提交特征來便于多線程環(huán)境中的分派表更新。提供使用存儲在主存儲器中的分派表來將客戶機程序 計數(shù)器轉(zhuǎn)換成主機程序計數(shù)器的仿真器。訪問分派表以查看該分派表是否包含 對應(yīng)于特定客戶機程序計數(shù)器的主機程序計數(shù)器。當(dāng)未找到主機程序計數(shù)器 時,可使用事務(wù)存儲器硬件來在表中引入新的映射。
在又一實現(xiàn)中,可通過提供支持維護(hù)專用存儲器狀態(tài)的設(shè)施和原子提交特
征的事務(wù)存儲器硬件來便于代碼回插(code backpatching)。對特定代碼作出 的變更被存儲在專用狀態(tài)設(shè)施中?;夭遄兏ㄟ^嘗試使用原子提交特征一次性 地向存儲器提交所有變更來制定。
高效的調(diào)用返回高速緩存在一個實現(xiàn)中可通過使用事務(wù)存儲器硬件來提 供。存儲在專用狀態(tài)設(shè)施中的調(diào)用返回高速緩存捕捉要在客戶機函數(shù)執(zhí)行完成 后要返回的主機地址。對該調(diào)用返回高速緩存使用基于硬件的直接查找散列 表。
提供本概述以便以簡化形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些 概念。本概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在 用于幫助確定所要求保護(hù)的主題的范圍。
附圖簡述
圖1是一個實現(xiàn)的計算機系統(tǒng)的圖示。
圖2是在圖1的計算機系統(tǒng)上操作的一個實現(xiàn)的虛擬化/仿真應(yīng)用程序的 圖示。
圖3是圖1的系統(tǒng)的一個實現(xiàn)的處理流程圖,其示出在使用事務(wù)存儲器硬 件來便于對精確異常語義的仿真時所涉及的各階段。
圖4是圖1的系統(tǒng)的一個實現(xiàn)的示圖,其示出了運行程序塊準(zhǔn)確模擬。
圖5是圖1的系統(tǒng)的一個實現(xiàn)的示圖,其示出了在程序塊準(zhǔn)確模擬引發(fā)異 常后運行指令準(zhǔn)確模擬。
圖6是圖1的系統(tǒng)的一個實現(xiàn)的處理流程圖,其示出在使用事務(wù)存儲器硬 件來便于狀態(tài)隔離時所涉及的各階段。
圖7是圖1的系統(tǒng)的一個實現(xiàn)的處理流程圖,其示出在使用事務(wù)存儲器硬 件來便于對仿真下的自修改代碼進(jìn)行檢測時所涉及的各階段。
5圖8是圖1的系統(tǒng)的一個實現(xiàn)的處理流程圖,其示出在使用事務(wù)存儲器硬 件來便于多線程環(huán)境中的分派表更新時所涉及的各階段。
圖9是圖1的系統(tǒng)的一個實現(xiàn)的處理流程圖,其示出在使用事務(wù)存儲器硬 件來便于多線程環(huán)境中的代碼回插時所涉及的各階段。
圖IO是圖1的系統(tǒng)的一個實現(xiàn)的處理流程圖,其示出在使用事務(wù)存儲器 硬件來便于高效的調(diào)用返回高速緩存時所涉及的各階段。
詳細(xì)描述
此處的技術(shù)和方法可以在虛擬化或仿真系統(tǒng)的一般上下文中描述,但本技 術(shù)和方法也用作除此之外的其它目的。在另一實現(xiàn)中,該系統(tǒng)可包括使用事務(wù) 存儲器硬件來加速虛擬化和/或仿真的一個或多個中央處理器。
如圖1所示,用于實現(xiàn)本系統(tǒng)的一個或多個部分的示例性計算機系統(tǒng)包括
諸如計算設(shè)備100等計算設(shè)備。在其最基本的配置中,計算設(shè)備100通常包括
至少一個中央處理單元102和存儲器104。這些中央處理單元各自具有事務(wù)存
儲器硬件119,該事務(wù)存儲器硬件包括維護(hù)專用狀態(tài)120的設(shè)施、呈現(xiàn)來自軟 件可見的其他中央處理單元的存儲器訪問124的設(shè)施、以及對專用狀態(tài)的原子 提交126的支持。專用狀態(tài)120對于其他中央處理單元是不可見的直到其被所 屬處理單元顯式地原子提交。專用狀態(tài)120也是可丟棄的。當(dāng)中央處理丟棄專 用狀態(tài)時,其存儲器視圖回退到當(dāng)前體系結(jié)構(gòu)狀態(tài)。軟件可見的存儲器訪問124 使得在中央處理單元上運行的軟件能檢測另一中央處理單元正在訪問特定的 存儲單元。原子提交特征126使得中央處理單元的專用狀態(tài)能作為原子提交的 一部分的單元原子地進(jìn)入主存儲器系統(tǒng)。這些事務(wù)存儲器硬件特征在各種情況 下用于增強虛擬化和/或仿真,如在此處更詳細(xì)地描述的。
取決于計算設(shè)備的確切配置和類型,存儲器104可以是易失性的(如 RAM)、非易失性的(如ROM、閃存等)或是兩者的某種組合。該最基本配 置在圖1中由虛線106來示出。
另外,設(shè)備100還可具有附加特征/功能。例如,設(shè)備100還可包含附加 存儲(可移動和/或不可移動),包括但不限于磁盤、光盤或磁帶。這樣的附加 存儲在圖1中由可移動存儲108和不可移動存儲110示出。計算機存儲介質(zhì)包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的 任何方法或技術(shù)來實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。存儲器
104、可移動存儲108和不可移動存儲110都是計算機存儲介質(zhì)的示例。計算 機存儲介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲器技術(shù)、 CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲、磁帶盒、磁帶、磁盤存儲或 其它磁存儲設(shè)備、或者可用于存儲所需信息并且可由設(shè)備100訪問的任何其它 介質(zhì)。任何這樣的計算機存儲介質(zhì)都可以是設(shè)備100的一部分。
計算設(shè)備100包括允許計算設(shè)備100與其它計算機/應(yīng)用程序115進(jìn)行通 信的一個或多個通信連接114。設(shè)備100還可以具有諸如鍵盤、鼠標(biāo)、筆、語 音輸入設(shè)備、觸摸輸入設(shè)備等輸入設(shè)備112。還可以包括諸如顯示器、揚聲器、 打印機等輸出設(shè)備lll。這些設(shè)備在本領(lǐng)域中公知且無需在此處詳細(xì)討論。在 一實現(xiàn)中,計算設(shè)備100包括虛擬化/仿真應(yīng)用程序200。虛擬化/仿真應(yīng)用程 序200將在圖2中更詳細(xì)地描述。
現(xiàn)在轉(zhuǎn)向圖2并繼續(xù)參考圖1,示出了在計算設(shè)備100上運行的虛擬化/ 仿真應(yīng)用程序200。虛擬化/仿真應(yīng)用程序200是駐留在計算設(shè)備100上的應(yīng)用 程序之一。然而,可以理解,虛擬化/仿真應(yīng)用程序200可另選地或另外地被具 體化為一個或多個計算機上的計算機可執(zhí)行指令和/或圖1所示的不同變型。另 選地或另外地,虛擬化/仿真應(yīng)用程序200的一個或多個部分可以是系統(tǒng)存儲器 104的一部分、可以在其它計算機和/或應(yīng)用程序115上、或可以是計算機軟件 領(lǐng)域的技術(shù)人員能想到的其它此類變型。
虛擬化/仿真應(yīng)用程序200包括負(fù)責(zé)執(zhí)行在此描述的部分或全部技術(shù)的程 序邏輯204。程序邏輯204包括用于使用事務(wù)存儲器硬件來加速虛擬化或仿真 的邏輯206 (如以下參考圖3所描述的);用于使用事務(wù)存儲器硬件來便于對 精確異常語義的仿真的邏輯208 (如以下參考圖3-5所描述的);用于使用事 務(wù)存儲器硬件來便于狀態(tài)隔離的邏輯210 (如以下參考圖6所描述的);用于 使用事務(wù)存儲器硬件來便于對自修改代碼的檢測的邏輯212 (如以下參考圖7 所描述的);用于使用事務(wù)存儲器硬件來便于分派表更新的邏輯214 (如以下 參考圖8所描述的);用于使用事務(wù)存儲器硬件來便于代碼回插的邏輯216 (如 以下參考圖9所描述的);用于使用事務(wù)存儲器硬件來便于高效的調(diào)用返回高
7速緩存的邏輯218 (如以下參考圖IO所描述的)以及用于操作應(yīng)用程序的其他
邏輯220。在一個實現(xiàn)中,程序邏輯204可用來通過編程,如使用對程序邏輯 204中的過程的單一調(diào)用而從另一程序調(diào)用。
現(xiàn)在轉(zhuǎn)向圖3-10并繼續(xù)參考圖1-2,更詳細(xì)地描述了用于實現(xiàn)虛擬化/仿 真應(yīng)用程序200的一個或多個實現(xiàn)的各階段。在某些實現(xiàn)中,圖3-10的過程 至少部分地在計算設(shè)備100的操作邏輯中實現(xiàn)。圖3示出了在使用事務(wù)存儲器 硬件來便于對精確異常語義的仿真時所涉及的各階段的一個實現(xiàn)。該過程在起 始點240處開始,在那里使用事務(wù)存儲器硬件中的不可見且可丟棄的專用狀態(tài) 來使得仿真狀態(tài)能夠保持與體系結(jié)構(gòu)狀態(tài)不一致并僅在粗略邊界上同步(階段 242)。該系統(tǒng)使用程序塊準(zhǔn)確模擬來運行優(yōu)化的指令序列(階段244)如果沒 有出現(xiàn)異常(判定點246),則系統(tǒng)能夠以一般比可能使用完全指令準(zhǔn)確模擬 更好的性能完成該模擬。然而,如果出現(xiàn)異常(判定點246),則丟棄對存儲 器的待決寫入(階段248)。將仿真處理器狀態(tài)回退到上一個同步點(階段250)。 使用指令準(zhǔn)確模擬來保守地再次執(zhí)行特定代碼序列以使得在第二次遇到異常 時存在正確的體系結(jié)構(gòu)狀態(tài)(階段252)。在體系結(jié)構(gòu)狀態(tài)恰好與真實狀態(tài)相 同的一個實現(xiàn)中,被仿真的非虛擬系統(tǒng)將介入,這對于正確的系統(tǒng)級仿真是重 要的。該過程在圖4和5的示圖中更詳細(xì)地示出。該過程在結(jié)束點254處結(jié)束。
現(xiàn)在轉(zhuǎn)向圖4和5,更詳細(xì)地示出了使用事務(wù)存儲器硬件來便于仿真環(huán)境 中對精確的異常語義的仿真。圖4是示出運行程序塊準(zhǔn)確模擬的一個實現(xiàn)的示 圖270。該程序塊準(zhǔn)確模擬運行優(yōu)化的指令序列以嘗試并實現(xiàn)與原始的客戶機 指令序列相同的最終效果,但是用比使用指令準(zhǔn)確模擬可能的方式更優(yōu)的方 式。程序塊準(zhǔn)確模擬使得仿真狀態(tài)能保持與體系結(jié)構(gòu)狀態(tài)不一致并僅在粗略邊 界上同步,這基本上是模擬的起始點和結(jié)束點。如果在程序塊準(zhǔn)確模擬期間的 任何時刻遇到異常,則執(zhí)行圖5的示圖290上所示的指令準(zhǔn)確模擬。該指令準(zhǔn) 確模擬保守地運行代碼序列以確保在第二次遇到異常時存在正確的體系結(jié)構(gòu) 狀態(tài)。
圖6示出了在使用事務(wù)存儲器硬件來便于狀態(tài)隔離時所涉及的各階段的 一個實現(xiàn)。該過程在起始點310處開始,在那里提供事務(wù)存儲器硬件上的隔離 專用狀態(tài)(階段312)。在仿真環(huán)境中,進(jìn)行仿真的主機將其棧存儲在該隔離的專用狀態(tài)中(階段314)。該隔離的專用狀態(tài)使得主機能夠?qū)13衷诰彌_ 模式中,這允許該主機避免昂貴的運行時檢査。該隔離的專用狀態(tài)是可丟棄的。 這意味著當(dāng)中央處理單元丟棄專用狀態(tài)時,其存儲器視圖回退到當(dāng)前體系結(jié)構(gòu) 狀態(tài)。被仿真的客戶機無法訪問隔離的專用狀態(tài)(階段316)。該過程在結(jié)束
點318處結(jié)束。
圖7示出了在使用事務(wù)存儲器硬件來便于對自修改代碼的檢測時所涉及 的各階段的一個實現(xiàn)。該過程在起始點340處開始,在那里使用事務(wù)存儲器硬 件來提供軟件可見存儲器訪問(階段342)。系統(tǒng)監(jiān)視由中央處理單元執(zhí)行的 存儲器訪問以檢測所仿真的客戶機已修改其自己的代碼序列(階段344)。甚 至可檢測來自單獨的中央處理單元的存儲器訪問。系統(tǒng)然后基于檢測來采取適 當(dāng)?shù)膭幼?階段346)。這些適當(dāng)?shù)膭幼鞯娜舾煞窍拗菩允纠砂ㄖ匦戮幾g 代碼序列以結(jié)合客戶機所作出的自修改、引發(fā)異常和/或停止執(zhí)行。適當(dāng)動作的 另一非限制性示例可包括切換至解釋僅針對正在自修改的代碼的一部分的機 器指令(而非編譯)。在一個實現(xiàn)中,該方法會比編譯慢,但非常準(zhǔn)確并且恰 如自修改代碼所意圖的那樣工作。其它適當(dāng)?shù)膭幼饕彩强赡艿?。該過程在結(jié)束 點348處結(jié)束。
圖8示出了在使用事務(wù)存儲器硬件來便于多線程環(huán)境中的分派表更新時 所涉及的各階段的一個實現(xiàn)。該過程在起始點370處開始,在那里使用事務(wù)存 儲器硬件來提供原子提交特征(階段372)。系統(tǒng)提供使用存儲在主存儲器中 的分派表來將客戶機程序計數(shù)器轉(zhuǎn)換成主機程序計數(shù)器的仿真器(階段374)。 系統(tǒng)訪問分派表以查看其是否包含對應(yīng)于給定客戶機程序計數(shù)器的主機程序 計數(shù)器(階段376)。如果未找到主機程序計數(shù)器,則系統(tǒng)編譯客戶機代碼的 關(guān)聯(lián)塊(階段378)。對分派表的更新在專用存儲器中執(zhí)行,并且當(dāng)完全執(zhí)行 更新時,將該更新原子地提交給主存儲器。利用原子提交特征,系統(tǒng)以具有最 少開銷的原子方式來更新分派表(階段380)。該過程在結(jié)束點382處結(jié)束。
圖9示出了在使用事務(wù)存儲器硬件來便于多線程環(huán)境中的代碼回插時所 涉及的各階段的一個實現(xiàn)。該過程在起始點400處開始,在那里使用事務(wù)存儲 器硬件來提供不可見的專用狀態(tài)和原子提交設(shè)施(階段402)。系統(tǒng)將對代碼 作出的變更存儲在不可見的專用狀態(tài)中(階段404)。對代碼作出的變更可從
9一個或多個線程接收。通過嘗試使用原子提交一次性向存儲器提交所有變更來 制定回插變更(階段406)。如果另一線程正試圖執(zhí)行需要變更的代碼,則提 交將失敗并且回插過程通過再次嘗試向存儲器提交所有變更來重新執(zhí)行(階段
408)。通過使用這一具有事務(wù)存儲器功能的回插過程,在多線程環(huán)境中啟用 安全的動態(tài)代碼修改(階段410)。該過程在結(jié)束點412處結(jié)束。
圖10示出了在使用事務(wù)存儲器硬件來便于高效的調(diào)用返回高速緩存時所 涉及的各階段的一個實現(xiàn)。該過程在起始點430處開始,在那里使用事務(wù)存儲 器硬件來提供不可見且可丟棄的專用狀態(tài)(階段432)。系統(tǒng)提供存儲在專用 狀態(tài)設(shè)施中的、捕捉在客戶機函數(shù)執(zhí)行完成后要返回的主機地址的調(diào)用返回高 速緩存(階段434)。對調(diào)用返回高速緩存使用基于硬件的直接查找散列表(階 段436)。在一個實現(xiàn)中,該調(diào)用返回高速緩存支持分派表中的比普通査找更 高效的查找。該過程在結(jié)束點438處結(jié)束。
盡管用對結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解, 所附權(quán)利要求書中定義的主題不必限于上述具體特征或動作。相反,上述具體 特征和動作是作為實現(xiàn)權(quán)利要求的示例形式公開的。落入在此所述和/或所附權(quán) 利要求所描述的實現(xiàn)的精神的范圍內(nèi)的所有等效方案、更改和修正都期望受到 保護(hù)。
例如,計算機軟件領(lǐng)域普通技術(shù)人員將認(rèn)識到,此處所討論的示例可以在 一個或多個計算機上不同地組織來包括比這些示例中所描繪的更少或更多選 項或特征。
權(quán)利要求
1.一種用于使用事務(wù)存儲器硬件來便于狀態(tài)隔離的方法,所述方法包括以下步驟訪問事務(wù)存儲器硬件上隔離的專用狀態(tài)(312);以及將執(zhí)行仿真的主機的棧存儲在所述隔離的專用狀態(tài)中(314)。
2. 如權(quán)利要求1所述的方法,其特征在于,所述隔離的專用狀態(tài)僅對中央 處理單元可見(312)。
3. 如權(quán)利要求2所述的方法,其特征在于,所述隔離的專用狀態(tài)確保被仿 真的客戶機無法訪問所述主機的桟(316)。
4. 如權(quán)利要求2所述的方法,其特征在于,所述隔離的專用狀態(tài)無法由其 他中央處理單元或硬件設(shè)備訪問(316)。
5. 如權(quán)利要求1所述的方法,其特征在于,所述隔離的專用狀態(tài)使得所述 主機能夠?qū)⑺鰲13衷诰彌_模式中(314)。
6. 如權(quán)利要求5所述的方法,其特征在于,所述緩沖模式允許所述主機避 免昂貴的運行時檢查(314)。
7. 如權(quán)利要求1所述的方法,其特征在于,所述隔離的專用狀態(tài)是可丟棄 的(248)。
8. 如權(quán)利要求7所述的方法,其特征在于,當(dāng)中央處理單元丟棄所述專用 狀態(tài)時,所述中央處理單元的存儲器視圖回退到當(dāng)前體系結(jié)構(gòu)狀態(tài)(252)。
9. 一種具有用于使得計算機執(zhí)行如權(quán)利要求1所述的步驟的計算機可執(zhí) 行指令的計算機可讀介質(zhì)(200)。
10. —種具有用于使得計算機執(zhí)行以下步驟的計算機可執(zhí)行指令的計 算機可讀介質(zhì),所述步驟包括監(jiān)視由中央處理單元執(zhí)行的存儲器訪問以檢測被仿真的客戶機己對所述 客戶機的代碼序列作出自修改(344);以及基于對所述代碼序列的自修改的檢測來采取適當(dāng)?shù)膭幼?346)。
11. 如權(quán)利要求10所述的計算機可讀介質(zhì),其特征在于,所述適當(dāng)?shù)?動作包括重新編譯所述代碼序列以結(jié)合由所述客戶機作出的自修改(346)。
12. 如權(quán)利要求10所述的計算機可讀介質(zhì),其特征在于,所述適當(dāng)?shù)膭幼靼ㄇ袚Q至解釋對于被修改的代碼序列的機器指令(346)。
13. 如權(quán)利要求10所述的計算機可讀介質(zhì),其特征在于,來自單獨的 中央處理單元的存儲器訪問可被檢測(344)。
14. 一種用于使用事務(wù)存儲器硬件來便于多線程環(huán)境中的分派表更新的方法,所述方法包括以下步驟提供對具有事務(wù)存儲器硬件的中央處理單元的訪問,所述事務(wù)存儲器硬件包括原子提交特征(372);以及提供使用存儲在主存儲器中的分派表來將客戶機程序計數(shù)器轉(zhuǎn)換成主機 程序計數(shù)器的仿真器(374);以及訪問所述分派表以查看所述分派表是否包含對應(yīng)于特定客戶機程序計數(shù) 器的特定主機程序計數(shù)器(376)。
15. 如權(quán)利要求14所述的方法,其特征在于,還包括 如果未找到所述對應(yīng)于特定客戶機程序計數(shù)器的特定主機程序計數(shù)器,則編譯客戶機代碼的關(guān)聯(lián)塊(378)。
16. 如權(quán)利要求15所述的方法,其特征在于,通過利用所述事務(wù)存儲 器硬件的原子提交特征,所述分派表以原子方式更新(380)。
17. 如權(quán)利要求16所述的方法,其特征在于,所述分派表以最少的開 銷更新(380)。
18. 如權(quán)利要求14所述的方法,其特征在于,所述仿真器在多線程環(huán) 境中提供(374)。
19. 如權(quán)利要求18所述的方法,其特征在于,所述分派表可由所述中 央處理單元在由多個其他中央處理單元在沒有任何鎖定開銷的情況下并發(fā)使 用時更新(380)。
20. —種具有用于使得計算機執(zhí)行如權(quán)利要求14所述的步驟的計算機 可執(zhí)行指令的計算機可讀介質(zhì)(200)。
全文摘要
公開了用于使用事務(wù)存儲器硬件來加速虛擬化或仿真的各種技術(shù)和方法。可通過提供事務(wù)存儲器硬件上隔離的專用狀態(tài)并將執(zhí)行仿真的主機的棧存儲在該隔離的專用狀態(tài)中來便于狀態(tài)隔離。由中央處理單元執(zhí)行的存儲器訪問可由軟件監(jiān)視以檢測被仿真的客戶機已對其自己的代碼序列作出自修改。事務(wù)存儲器硬件可用于通過利用原子提交特征來便于多線程環(huán)境中的分派表更新。提供使用存儲在主存儲器中的分派表來將客戶機程序計數(shù)器轉(zhuǎn)換成主機程序計數(shù)器的仿真器。訪問分派表以查看該分派表是否包含對應(yīng)于特定客戶機程序計數(shù)器的主機程序計數(shù)器。
文檔編號G06F9/455GK101689154SQ200880022394
公開日2010年3月31日 申請日期2008年6月16日 優(yōu)先權(quán)日2007年6月27日
發(fā)明者B·西爾瓦, D·米霍卡, M·塔耶費爾 申請人:微軟公司