TWI471803B - 以交換式記憶體為手段來加速虛擬化及仿真化 - Google Patents
以交換式記憶體為手段來加速虛擬化及仿真化 Download PDFInfo
- Publication number
- TWI471803B TWI471803B TW97121733A TW97121733A TWI471803B TW I471803 B TWI471803 B TW I471803B TW 97121733 A TW97121733 A TW 97121733A TW 97121733 A TW97121733 A TW 97121733A TW I471803 B TWI471803 B TW I471803B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- memory hardware
- hardware
- private state
- central processing
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 42
- 238000004088 simulation Methods 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 10
- 238000002955 isolation Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 7
- 238000005538 encapsulation Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/521—Atomic
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
Description
本發明係關於執行交換式記憶體硬體以加速虛擬化及仿真化。
仿真化(Emulation)係為一種涉及提供來自軟體之中央處理單元之功能的技術。仿真化的一項優勢係為吾人能夠執行針對一特定類型處理器所設計的軟體於任何類型處理器上。虛擬化(Virtualization)係為一種提供在允許超過一作業系統以上同時執行之一方式中分割硬體之能力的技術。使用虛擬化,一物質中央處理單元被分割成多個上下文配置。各上下文配置接著輪流直接執行於該處理器上。雖然虛擬化產品一般較快於仿真化產品,但今日該兩者類型之產品遭受許多限制能夠被達到之速度的障礙。例如,仿真化期間處理一致性需要額化的同步化作業,其能夠降低連續效能。又例如一第二例子,在仿真化下追蹤自我修訂碼通常會受到一實質上的效能負擔。
各種技術係經揭示以供使用交換式記憶體硬體來加速虛擬化及仿真化。一或多種中央處理單元係經提供以可操作來加速虛擬化之交換式記憶體硬體。該交換式記憶體硬
體具有維持私有狀態之能力、呈現對軟體為可視之其他中央處理單元之記憶體存取的能力、以及該私有狀態之原子提交(atomic commit)的支援。
在一實施中,例如能夠使用該交換式記憶體硬體來促進精確例外語義的仿真化。該私有狀態可操作來致使一仿真狀態能夠維持不一致於一架構狀態且僅同步化於特定範圍。使用塊-精確模擬(chunk-accurate simulation)執行一最佳化的指令序列來嘗試以及達成如隔離在私有狀態中一較慢指令加速仿真化的一相同端效應(end effect),其僅在該整體塊經成功地仿真的案例中提交。
在另外的實施中,狀態隔離能夠經由提供隔離私有狀態於交換式記憶體硬體上及儲存正在該隔離私有狀態中執行仿真化之一主機(host)的堆疊。
在另外的實施中,使用該交換式記憶體硬體能夠偵測自我修訂碼。由一中央處理單元所執行之記憶體存取能夠由軟體監控來偵測一經仿真化的訪客已經作出自我修訂至其本身的碼序列。
在一具體實施例中,可使用交換式記憶體硬體來藉由採取該原子提交特徵之優勢以促進在多執行緒環境中之配發表單(dispatch table)更新。提供一仿真器來使用儲存在主記憶體中之配發表單以轉換一訪客程式計數器成一主機程式計數器。該配發表單可經存取來檢視該配發表單是否包含針對一特定訪客程式計數器之一特定主機程式計數器。當一主機程式計數器未被發現,交換式記憶體硬體能
夠被使用來引入一新映射於該表單中。
在另其他實施中,經由提供交換式記憶體硬體以支援一設施來維持私有記憶體狀態以及一原子提交特徵而能夠促進程式碼回插(code backpatching)。對特定程式碼所作出的改變可經儲存於該私有狀態設施。使用該原子提交特徵,經由企圖一次提交所有的改變至記憶體,頒佈(enact)回插改變。
在一實施中,可經由使用交換式記憶體硬體提供一有效率的呼叫返回快取。一儲存在該私有狀態設施中之呼叫返回快取捕獲一主機位址來返回至在執行一訪客函數完成之後。一直接查找硬體式雜湊表單經使用於該呼叫返回快取。
提供此發明內容係用於按一簡單之形式引介一概念之選項,其將於後之實施方式進一步的詳細說明。此發明內容並不意圖用來識別該所請求標的之關鍵特徵或必要特徵,亦不意圖來使用作為決定所請標的之範圍的協助。
本技術係描述以在按如一虛擬化或仿真化系統的一般背景中,然而本技術也可用於除此描述外的其他用途。在另外實施中,該系統包含使用交換式記憶體硬體來加速虛擬化及/或仿真化的一或多個中央處理器。
如第1圖所示,使用範例性電腦系統,以供實施該系統之一或多個部份,其包含一計算裝置,例如計算裝置
100。在其最基本的組態中,計算裝置100一般包含至少一中央處理單元102及記憶體104。(各)中央處理單元具有交換式記憶體硬體119,其包含一維持私有狀態的能力120、一呈現來自對軟體來說為可視之其他中央處理單元之記憶體存取的能力124、以及該私有狀態之原子提交的支援126。該私有狀態120係不可視(invisible)於其他中央處理單元,直到經由擁有處理單元其經明確原子化地提交。該私有狀態也為可棄式(discardable)。當該中央處理放棄該私有狀態,其記憶體之檢視經回復至該目前架構狀態。該軟體可視記憶體存取124允許執行在該中央處理單元上之軟體,以偵測另外中央處理單元正存取特定記憶體位置。該原子提交特徵126允許該中央處理單元之私有狀態來原子化地進入一主要記憶體系統作為如一原子提交之部分的一單元。該些交換式記憶體硬體特徵係經使用在各種情況以供強化如此中所更進一步細節描述的虛擬化及/或仿真化。
基於精確組態及計算裝置類型,記憶體104可為揮發性(例如RAM)、非揮發性(例如ROM、快閃記憶體等)、或以上兩種之組合。此基本組係經虛線106於第1圖中所描述。
此外,裝置100也可具有額外的特徵/功能。例如,裝置100也可包含額外儲存體(可抽取式及/或非可抽取式),其包含(但不限於)磁性或光學性碟或帶。這樣的額外儲存體係由可抽取儲存體108及非可抽取儲存體110描
述於第1圖中。電腦儲存媒體包含揮發及非揮發性、可抽取及非可抽取式媒體,其可在儲存資訊之任何方法或技術中經實施,該資訊例如電腦可讀指令、資料結構、程式模組或其他資料。記憶體104、可抽取儲存體108及非可抽取儲存體110皆為電腦儲存媒體之範例。電腦儲存媒體包含(但不限於)RAM、ROM、EEPROM、快閃記憶體或其他技術、CD-ROM、DVD或其他光學性儲存體、磁匣、磁帶、磁碟儲存、或其他磁性儲存裝置、或任何可被用於儲存期望資訊以及可由裝置100所存取之其他媒體。任何這樣的電腦儲存媒體可為裝置100之部分。
電腦裝置100包含一或多個通訊連接114,其允許電腦裝置100與其他電腦/應用程式115進行通訊。裝置100也可具有輸入裝置112,例如鍵盤、滑鼠、指示筆、聲音輸入裝置、觸碰輸入裝置等等。也可包含輸出裝置111,例如顯示器、麥克風、印表機等等。該些裝置在該領域中以為周知,因此將不在此作細節討論。在一實施中,計算裝置100包含虛擬化/仿真化應用程式200。虛擬化/仿真化應用程式200將於第2圖中作更進一步之討論。
接續第1圖現參照第2圖,其描述一操作在計算裝置100中之虛擬化/仿真化應用程式200。虛擬化/仿真化應用程式200係為駐存在計算裝置100上之各應用程式之一者。然而,應可瞭解,虛擬化/仿真化應用程式200能夠替換地或額外地被具體實施化為在一或多個電腦電腦上之可執行指令及/或在相較第1圖所示之組態的不同變化者
上。替代地或額外地,虛擬化/仿真化應用程式200之一或多個部份可為系統記憶體104之部分、在其他電腦及/或應用程式115上、或其他將發生至該電腦軟體技術中之一者的變化上。
虛擬化/仿真化應用程式200包含程式邏輯204,其係負責於實現如此中所述之各技術之特定者或所有者。程式邏輯204包含使用交換式記憶體硬體來加速虛擬化或仿真化之邏輯206(如下第3圖所相關性的描述)、使用交換式記憶體硬體來促進精確例外語義之仿真化的邏輯208(如下第3-5圖所相關性的描述)、使用交換式記憶體硬體來促進狀態隔離之邏輯210(如下第6圖所相關性的描述)、使用交換式記憶體硬體來促進偵測自我修正碼之邏輯212(如下第7圖所相關性的描述)、使用交換式記憶體硬體來促進配發表單更新之邏輯214(如下第8圖所相關性的描述)、使用交換式記憶體硬體來促進碼回插之邏輯216(如下第9圖所相關性的描述)、使用交換式記憶體硬體來促進一有效率之呼叫返回快取的邏輯218(如下第10圖所相關性的描述)、以及其他操作應用程式之邏輯220。在一實施中,程式邏輯204係經操作以自另外程式被程式化地呼叫,其例如使用一單一呼叫至程式邏輯204中之一程序。
接續第1-2圖現參照第3-10圖,實施虛擬化/仿真化應用程式200之一或多具體實施例係更進一步的描述。在特定實施中,第3-10圖之處理係至少部份地實作在計算裝置100之操作邏輯中。第3圖描述涉及使用交換式記憶體
硬體來促進精確例外語義之仿真化的各階段之一具體實施例。該處理起始於開始點240,使用非可視式及可棄式之私有狀態於該交易式記憶體硬體中,來致使該仿真化狀態能夠來維持與該架構狀態之不一致性且僅在該粗劣的範圍上進行同步化(階段242)。該系統使用一塊-精確仿真化來執行各指令之最佳化序列(階段244)。如果無例外發生(決定點246),該系統能夠完成具有相較於將可能使用全指令-精確仿真化之一般較佳效能的仿真化。然而,如果意外發生(決定點246),接著該至記憶體之待決寫入經放棄(階段248)。該仿真化處理器狀態係捲返回至該上一次同步點(階段250)。該特定碼序列係使用指令-精確仿真化經再次穩當地執行,以致使該正確架構狀態當該例外第二次遇到時經呈現(階段252)。在一實施中,該架構狀態係精確相同於真實,經仿真化之非虛擬系統將被置於其中,其對於校正系統-階層仿真化係具重要性。此處理係將於第4及5圖中更進一歩地細節描述。該處理結束於點254。
現參照第4及5圖,使用交換式記憶體硬體來在仿真化環境中促進精確例外語義之仿真化。第4圖係為一圖式270,其係描述運作一塊-精確仿真化之實施的具體實施例。該塊-精確仿真化運作一最佳化序列的指令,藉以嘗試及達成如該原始序列之訪客指令的相同端效應,除在相較於可能使用一指令-精確仿真化的最佳化方式外。該塊-精確仿真化允許該仿真化狀態維持與該架構狀態之非一致化且僅在粗劣範圍上進行同步化,其基本上係為該仿真化之
起始點及結束點。如果一例外在該塊-精確仿真化期間在任何點處經遭遇,該在第5圖之圖式290上所描述之指令-精確仿真化接著經執行。該指令-精確仿真化穩當地運作該碼序列以確保當該例外遭遇第二次時呈現該正確架構狀態。
第6圖係描述涉及使用交換式記憶體硬體來促進狀態隔離之各階段的一實施。該處理開始於起始點310,提供隔離的私有狀態於交換式記憶體硬體上(階段312)。在一仿真化環境中,執行該仿真化之主機儲存他的堆疊於該隔離的私有狀態中(階段314)。該隔離的私有狀態致使該主機能夠來將該堆疊保持在一緩衝的模式中,其允許該主機來避免昂貴的執行時間檢查。該隔離的私有狀態係為可棄式。此意指了當該中央處理單元放棄該私有狀態時,回復其記憶體的檢視至該目前的架構狀態。該經仿真化之訪客不具有對該隔離的私有狀態之存取(階段316)。該處理結束於結束點318。
第7圖係為描述涉及使用交換式記憶體硬體來促進偵測自我修訂碼的各階段之一實施。該處理起始於開始點340,使用交換式記憶體硬體提供軟體-可視式記憶體存取(階段342)。該系統監控該由中央處理單元所執行的記憶體存取,藉以偵測經仿真化之訪客已經修改其自我碼序列(階段344)。即便來自一個別中央處理單元的記憶體存取也能夠被偵測。該系統接著基於該偵測採取適當動作(階段346)。該些適當動作之一些非限定範圍包含重新編譯該
碼序列以併入由該訪客所作出之自我修訂、升起一例外、及/或停止例外。該適當動作之另外非限定範圍能夠包含切換至僅針對為自我修訂之該碼之部分的各機器指令之一直譯(相對於編譯)。在一實施中,該方法將較慢於編譯,但非常精確且將運作完全如該自我修訂碼所被意圖來進行者。其他適當動作也為可能。該處理結束於結束點348。
第8圖係為描述涉及使用交換式記憶體硬體來促進多執行緒環境中之配發表單更新的各階段之一實施。該處理起始於開始點370,使用交換式記憶體硬體提供一原子提交特徵(階段372)。該系統提供一仿真器,其使用一儲存在主要記憶體中之配發表單來轉換一訪客程式計數器成一主機程式計數器(階段374)。該系統存取該配發表單來檢視其是否包含針對該所給定訪客程式計數器之一主機程式計數器(階段376)。如果沒有發現主機程式計數器,該系統編譯訪客碼之該相關區塊(階段378)。至該配發表單之更新係經執行在私有記憶體中,並且當該更新全然執行時,其原子化地提交至主要記憶體。執行該原子提交特徵,該系統按具有最小化負載(overhead)之一原子方式更新該配發表單。該處理結束於結束點382。
第9圖係為描述涉及使用交換式記憶體硬體來促進多執行緒環境中之程式碼回插的各階段之一實施。該處理開始於開始點400,使用交換式記憶體硬體提供非可視式私有狀態及原子提交功能(階段402)。該系統儲存對程式碼作出的改變於非可視式的私有狀態中(階段404)。對該程
式碼所作出的改變能夠自一或多個執行緒接收。該回插改變使用原子提交經由企圖一次提交所有改變至記憶體而經頒佈(階段406)。如果另外執行緒正嘗試執行需要被改變之程式碼,提交將失效且該回插處理經由企圖再次原子地提交所有改變至記憶體而重新執行(階段408)。經由使用這樣具有交換式記憶體功能的回插處理,安全動態程式碼修訂將在一多執行緒環境中啟動(階段410)。該處理結束於結束點412。
第10圖係為描述涉及使用交換式記憶體硬體來促進一有效率之呼叫返回快取之各階段之一實施。該處理開始於開始點430,使用交換式記憶體硬體提供非可視式及可放棄式私有狀態(階段432)。該系統提供儲存在該私有狀態設備中之一呼叫返回快取,其捕獲該主機位址來返回至該訪客函數之執行完成之後(階段434)。一直接查找硬體式雜湊表單可經使用於該呼叫返回快取(階段436)。在一實施中,該呼叫返回快取支援相較於在一配發表單中之一般查找的較有效率查找。該處理結束於結束點438。
雖然此標的已經以語言來具體說明其結構性特徵與/或方法論的動作,需要瞭解的是,之後的申請專利範圍所定義的標的係非必要地限制於如上所述的具體特徵或動作。如上所述的具體特徵與動作係被揭露以作為實現申請專利範圍的範例。所有敘述於此與/或於之後的申請專利範圍的實施例之精神內的等效物、更動或調整,係均需要被保護。
例如,在電腦軟體技術領域中具有通常知識者,係可以辨認出討論於此的各個範例可以不同方式,在一或更多電腦上重新組織,包括相較於在範例中所述的較少或更多選項或特徵。
120‧‧‧私有狀態
124‧‧‧軟體可視記憶體存取
126‧‧‧原子提交
108‧‧‧可抽取式儲存
110‧‧‧非可抽取式儲存
111‧‧‧輸出裝置
112‧‧‧輸入裝置
114‧‧‧其他通訊連結
115‧‧‧其他電腦/應用程式
200‧‧‧虛擬化/仿真化應用
204‧‧‧程式邏輯
206‧‧‧使用交換式記憶體硬體來加速虛擬化或仿真化之邏輯
208‧‧‧使用交換式記憶體硬體來促進精確例外語義的邏輯
210‧‧‧使用交換式記憶體硬體來促進狀態隔離之邏輯
212‧‧‧使用交換式記憶體硬體來促進偵測自我修正碼之邏輯
214‧‧‧使用交換式記憶體硬體來促進配發表單更新之邏輯
216‧‧‧使用交換式記憶體硬體來促進碼回插之邏輯
218‧‧‧使用交換式記憶體硬體來促進一有效率之呼叫返回堆疊的邏輯
220‧‧‧其他操作應用程式之邏輯
242‧‧‧使用非可視式及可棄式之私有狀態於該交易式記憶體硬體中,來致使該仿真化狀態能夠來維持與該架構狀態之不一致性且僅在該粗劣的範圍上進行同步化
244‧‧‧使用一塊-精確仿真化來執行各指令之最佳化序列
246‧‧‧例外發生?
248‧‧‧至記憶體之待決寫入經放棄
250‧‧‧仿真化處理器狀態係捲返回至該上一次同步點
252‧‧‧特定碼序列係經再次穩當地執行,以致使當該例外第二次遇到時呈現正確架構狀態
312‧‧‧提供隔離的私有狀態於交換式記憶體硬體上
314‧‧‧在一仿真化環境中,執行該仿真化之主機儲存他的堆疊於該隔離的私有狀態中
316‧‧‧該經仿真化之訪客不具有對該隔離的私有狀態之存取
342‧‧‧使用交換式記憶體硬體提供軟體-可視式記憶體存取
344‧‧‧監控該記憶體存取,藉以偵測經仿真化之訪客已經修改其自我碼序列
346‧‧‧基於該偵測採取適當動作
372‧‧‧使用交換式記憶體硬體提供一原子提交
374‧‧‧提供一仿真器,其使用一配發表單來轉換一訪客程式計數器成一主機程式計數器
376‧‧‧存取該配發表單來檢視其是否包含針對該所給定訪客程式計數器之一主機程式計數器
378‧‧‧如果沒有發現主機程式計數器,編譯訪客碼之該相關區塊
380‧‧‧執行該原子提交特徵,按具有最小化間接費用之一原子方式更新該配發表單
402‧‧‧使用交換式記憶體硬體提供非可視式私有狀態及原子提交
404‧‧‧儲存對程式碼作出的改變於非可視式的私有狀態中
406‧‧‧使用原子提交經由一次提交所有改變至記憶體而經頒佈回插改變
408‧‧‧如果另外執行緒正嘗試執行需要被改變之程式碼,提交將失效且該回插處理重新執行
410‧‧‧經由使用這樣具有交換式記憶體功能的回插處理,安全動態程式碼修訂將在一多執行緒環境中啟動
432‧‧‧使用交換式記憶體硬體提供非可視式及可放棄式私有狀態
434‧‧‧提供一呼叫返回快取,其捕獲該主機位址來返回至該訪客函數之執行完成之後
436‧‧‧一直接查找硬體式雜湊表單可經使用於該呼叫返回快取
第1圖係根據本發明具體實施例之一電腦系統之圖式;第2圖係為在第1圖之電腦系統上所操作一實施的虛擬化/仿真化應用的圖式;第3圖係為第1圖之系統之一實施的處理流程圖,其描述涉及使用交換式記憶體硬體來促進精確例外語義之仿真化的各階段;第4圖係為第1圖之系統之一實施的圖式,其描述執行一塊-精確仿真化;第5圖係為第1圖之系統之一實施的圖式,其描述在一塊-精確已經提起一例外之後執行一塊-精確仿真化;第6圖係為第1圖之系統之一實施的處理流程圖,其描述涉及使用交換式記憶體硬體來促進狀態隔離之各階段;第7圖係為第1圖之系統之一實施的處理流程圖,其描述涉及使用交換式記憶體硬體來促進偵測仿真化下之自我修訂碼的各階段;第8圖係為第1圖之系統之一實施的處理流程圖,其
描述涉及使用交換式記憶體硬體來促進多執行緒環境中之配發表單更新的各階段;第9圖係為第1圖之系統之一實施的處理流程圖,其描述涉及使用交換式記憶體硬體來促進多執行緒環境中之程式碼回插的各階段;第10圖係為第1圖之系統之一實施的處理流程圖,其描述涉及使用交換式記憶體硬體來促進一有效率之呼叫返回快取之各階段。
120‧‧‧私有狀態
124‧‧‧軟體可視記憶體存取
126‧‧‧原子提交
Claims (16)
- 一種使用交換式記憶體(transactional memory)硬體來促進碼回插(code backpatching)之方法,其至少包含以下步驟:從至少兩個執行緒接收欲對特定碼所做的改變;儲存欲對該特定碼所作的該改變於一中央處理單元上之交換式記憶體硬體的一私有狀態設備中;使用該交換式記憶體硬體之一原子提交(atomic commit)特徵,經由企圖一次提交該改變之全部至記憶體而頒佈(enact)回插改變;如果另一執行緒正嘗試執行所欲改變之該特定碼,則致使提交該改變之全部至記憶體的企圖失敗,並且藉由使用該交換式記憶體硬體之該原子提交特徵而企圖一次提交該改變之全部至記憶體來重新頒佈回插改變。
- 如申請專利範圍第1項所述之方法,其中經由使用該原子提交特徵來頒佈回插改變,在一多執行緒環境中啟動動態碼修訂。
- 如申請專利範圍第2項所述之方法,其中該動態碼修訂係經安全地執行。
- 一種系統,其包含: 一中央處理單元,該中央處理單元包含具有用於維持私有狀態以供加速仿真化之一設備的交換式記憶體(transactional memory)硬體;一呼叫返回快取,其係經儲存在該私有狀態設備中,該私有狀態設備可用來捕獲一主機位址以返回至一訪客函數之執行完成之後;及一直接查找硬體式雜湊表單,其可操作用於該呼叫返回快取。
- 如申請專利範圍第4項所述之系統,其中該私有狀態對其他中央處理單元為不可視(invisible)的。
- 如申請專利範圍第4項所述之系統,其中該私有狀態為可放棄(discardable)。
- 一種使用交換式記憶體(transactionat memory)硬體來加速仿真化的方法,其包含:存取具用於加速仿真化之交換式記憶體硬體之一中央處理單元;使用交換式記憶體硬體來加速針對經仿真化之各程式之精確例外語義之仿真化;及使用交換式記憶體硬體來加速針對經仿真化程式之狀態隔離。
- 如申請專利範圍第7項所述之方法,其更包含:使用交換式記憶體硬體來促進偵測經仿真化程式之自我修訂。
- 如申請專利範圍第7項所述之方法,其更包含:使用交換式記憶體硬體來促進針對經仿真化程式之配發表單更新。
- 如申請專利範圍第7項所述之方法,其更包含:使用交換式記憶體硬體來促進針對經仿真化程式之碼回插。
- 如申請專利範圍第7項所述之方法,其更包含使用交換式記憶體硬體來促進由經仿真化程式所使用之一呼叫返回快取。
- 如申請專利範圍第7項所述之方法,其中該交換式記憶體硬體支援一用於維持私有狀態之設備。
- 如申請專利範圍第12項所述之方法,其中該私有狀態係對其他中央處理單元為非可視性(invisible)。
- 如申請專利範圍第12項所述之方法,其中該私有狀態係為可棄式(discardable)。
- 如申請專利範圍第7項所述之方法,其中該交換式記憶體硬體啟動軟體來監控由其他中央處理單元所執行之記憶體存取。
- 如申請專利範圍第7項所述之方法,其中該交換式記憶體硬體支援一原子提交特徵。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/823,236 US8176253B2 (en) | 2007-06-27 | 2007-06-27 | Leveraging transactional memory hardware to accelerate virtualization and emulation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200907811A TW200907811A (en) | 2009-02-16 |
TWI471803B true TWI471803B (zh) | 2015-02-01 |
Family
ID=40162122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW97121733A TWI471803B (zh) | 2007-06-27 | 2008-06-11 | 以交換式記憶體為手段來加速虛擬化及仿真化 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8176253B2 (zh) |
EP (1) | EP2176749A4 (zh) |
JP (1) | JP2010532054A (zh) |
CN (1) | CN101689123B (zh) |
TW (1) | TWI471803B (zh) |
WO (1) | WO2009002756A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043553B2 (en) * | 2007-06-27 | 2015-05-26 | Microsoft Technology Licensing, Llc | Leveraging transactional memory hardware to accelerate virtualization and emulation |
US8266387B2 (en) * | 2007-06-27 | 2012-09-11 | Microsoft Corporation | Leveraging transactional memory hardware to accelerate virtualization emulation |
US8161247B2 (en) * | 2009-06-26 | 2012-04-17 | Microsoft Corporation | Wait loss synchronization |
US8489864B2 (en) | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
US8812796B2 (en) | 2009-06-26 | 2014-08-19 | Microsoft Corporation | Private memory regions and coherence optimizations |
US8356166B2 (en) * | 2009-06-26 | 2013-01-15 | Microsoft Corporation | Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers |
US8250331B2 (en) | 2009-06-26 | 2012-08-21 | Microsoft Corporation | Operating system virtual memory management for hardware transactional memory |
US8370577B2 (en) | 2009-06-26 | 2013-02-05 | Microsoft Corporation | Metaphysically addressed cache metadata |
US8229907B2 (en) * | 2009-06-30 | 2012-07-24 | Microsoft Corporation | Hardware accelerated transactional memory system with open nested transactions |
US8533440B2 (en) * | 2009-12-15 | 2013-09-10 | Microsoft Corporation | Accelerating parallel transactions using cache resident transactions |
US8539465B2 (en) | 2009-12-15 | 2013-09-17 | Microsoft Corporation | Accelerating unbounded memory transactions using nested cache resident transactions |
US9092253B2 (en) * | 2009-12-15 | 2015-07-28 | Microsoft Technology Licensing, Llc | Instrumentation of hardware assisted transactional memory system |
US8402218B2 (en) * | 2009-12-15 | 2013-03-19 | Microsoft Corporation | Efficient garbage collection and exception handling in a hardware accelerated transactional memory system |
RU2514142C1 (ru) * | 2012-12-25 | 2014-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Способ повышения эффективности работы аппаратного ускорения эмуляции приложений |
US10831489B2 (en) * | 2018-08-23 | 2020-11-10 | International Business Machines Corporation | Mechanism for completing atomic instructions in a microprocessor |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040187123A1 (en) * | 2003-02-13 | 2004-09-23 | Marc Tremblay | Selectively unmarking load-marked cache lines during transactional program execution |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5832205A (en) * | 1996-08-20 | 1998-11-03 | Transmeta Corporation | Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed |
AU734115B2 (en) * | 1997-05-08 | 2001-06-07 | Nvidia Corporation | Hardware accelerator for an object-oriented programming language |
US5940838A (en) * | 1997-07-11 | 1999-08-17 | International Business Machines Corporation | Parallel file system and method anticipating cache usage patterns |
US6360231B1 (en) * | 1999-02-26 | 2002-03-19 | Hewlett-Packard Company | Transactional memory for distributed shared memory multi-processor computer systems |
US7058932B1 (en) * | 1999-04-19 | 2006-06-06 | Unisys Corporation | System, computer program product, and methods for emulation of computer programs |
US20010047473A1 (en) * | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
WO2001080015A2 (en) * | 2000-04-18 | 2001-10-25 | Sun Microsystems, Inc. | Concurrent shared object implemented using a linked-list with amortized node allocation |
US7620731B1 (en) * | 2001-02-21 | 2009-11-17 | Microsoft Corporation | Isolated persistent storage |
US6775727B2 (en) * | 2001-06-23 | 2004-08-10 | Freescale Semiconductor, Inc. | System and method for controlling bus arbitration during cache memory burst cycles |
US7908441B2 (en) * | 2002-01-11 | 2011-03-15 | Oracle America, Inc. | Value recycling facility for multithreaded computations |
US7281017B2 (en) * | 2002-06-21 | 2007-10-09 | Sumisho Computer Systems Corporation | Views for software atomization |
US7685583B2 (en) * | 2002-07-16 | 2010-03-23 | Sun Microsystems, Inc. | Obstruction-free mechanism for atomic update of multiple non-contiguous locations in shared memory |
US7020746B2 (en) * | 2003-01-28 | 2006-03-28 | Microsoft Corporation | Method and system for an atomically updated, central cache memory |
US6938130B2 (en) * | 2003-02-13 | 2005-08-30 | Sun Microsystems Inc. | Method and apparatus for delaying interfering accesses from other threads during transactional program execution |
US7376949B2 (en) * | 2003-10-01 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Resource allocation and protection in a multi-virtual environment |
US20050086446A1 (en) * | 2003-10-04 | 2005-04-21 | Mckenney Paul E. | Utilizing software locking approach to execute code upon failure of hardware transactional approach |
US7526616B2 (en) * | 2004-03-22 | 2009-04-28 | International Business Machines Corporation | Method and apparatus for prefetching data from a data structure |
US7617438B2 (en) * | 2004-04-15 | 2009-11-10 | International Business Machines Corporation | Method and apparatus for supporting checksum offload in partitioned data processing systems |
US7856537B2 (en) * | 2004-09-30 | 2010-12-21 | Intel Corporation | Hybrid hardware and software implementation of transactional memory access |
US7885921B2 (en) * | 2004-11-18 | 2011-02-08 | International Business Machines Corporation | Managing atomic updates on metadata tracks in a storage system |
US7984248B2 (en) * | 2004-12-29 | 2011-07-19 | Intel Corporation | Transaction based shared data operations in a multiprocessor environment |
US7444276B2 (en) * | 2005-09-28 | 2008-10-28 | Liga Systems, Inc. | Hardware acceleration system for logic simulation using shift register as local cache |
US7809903B2 (en) * | 2005-12-15 | 2010-10-05 | Intel Corporation | Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions |
US7899661B2 (en) * | 2006-02-16 | 2011-03-01 | Synopsys, Inc. | Run-time switching for simulation with dynamic run-time accuracy adjustment |
US7930695B2 (en) * | 2006-04-06 | 2011-04-19 | Oracle America, Inc. | Method and apparatus for synchronizing threads on a processor that supports transactional memory |
US7617421B2 (en) * | 2006-07-27 | 2009-11-10 | Sun Microsystems, Inc. | Method and apparatus for reporting failure conditions during transactional execution |
US7865885B2 (en) * | 2006-09-27 | 2011-01-04 | Intel Corporation | Using transactional memory for precise exception handling in aggressive dynamic binary optimizations |
US8522223B2 (en) * | 2006-11-22 | 2013-08-27 | Intel Corporation | Automatic function call in multithreaded application |
US8266387B2 (en) * | 2007-06-27 | 2012-09-11 | Microsoft Corporation | Leveraging transactional memory hardware to accelerate virtualization emulation |
US9043553B2 (en) * | 2007-06-27 | 2015-05-26 | Microsoft Technology Licensing, Llc | Leveraging transactional memory hardware to accelerate virtualization and emulation |
-
2007
- 2007-06-27 US US11/823,236 patent/US8176253B2/en active Active
-
2008
- 2008-06-11 TW TW97121733A patent/TWI471803B/zh not_active IP Right Cessation
- 2008-06-16 CN CN200880022112.XA patent/CN101689123B/zh active Active
- 2008-06-16 EP EP08771215A patent/EP2176749A4/en not_active Ceased
- 2008-06-16 WO PCT/US2008/067147 patent/WO2009002756A2/en active Application Filing
- 2008-06-16 JP JP2010514969A patent/JP2010532054A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040187123A1 (en) * | 2003-02-13 | 2004-09-23 | Marc Tremblay | Selectively unmarking load-marked cache lines during transactional program execution |
Also Published As
Publication number | Publication date |
---|---|
US8176253B2 (en) | 2012-05-08 |
EP2176749A2 (en) | 2010-04-21 |
CN101689123A (zh) | 2010-03-31 |
TW200907811A (en) | 2009-02-16 |
CN101689123B (zh) | 2013-06-12 |
US20090006751A1 (en) | 2009-01-01 |
WO2009002756A2 (en) | 2008-12-31 |
JP2010532054A (ja) | 2010-09-30 |
EP2176749A4 (en) | 2013-03-13 |
WO2009002756A3 (en) | 2009-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI471803B (zh) | 以交換式記憶體為手段來加速虛擬化及仿真化 | |
TWI499979B (zh) | 以交換式記憶體為手段來加速虛擬化或仿真化之方法、系統、及電腦可讀取媒體 | |
TWI467373B (zh) | 以交換式記憶體為手段來加速虛擬化及仿真化 | |
TWI550516B (zh) | 用於警告追蹤中斷之電腦程式產品、電腦系統及方法 | |
KR101625322B1 (ko) | 비트랜잭션 저장 명령 | |
KR101625323B1 (ko) | 선택된 레지스터들을 트랜잭션 처리시에 세이브/복원하기 | |
KR101625325B1 (ko) | 트랜잭션 처리 시에 명령 실행의 선택적 제어 | |
US8793528B2 (en) | Dynamic hypervisor relocation | |
US8285915B2 (en) | Relocating page tables and data amongst memory modules in a virtualized environment | |
TWI540510B (zh) | 用於藉由程式對警告追蹤中斷設備之使用之電腦程式產品、電腦系統及其方法 | |
EP2430533A1 (en) | Diagnose instruction for serializing processing | |
US20170235557A1 (en) | Translating atomic read-modify-write accesses | |
TWI533223B (zh) | 用於由一程式提供給另一程式之對警告追蹤設施之存取之電腦程式產品、電腦系統及其方法 | |
CN103562877B (zh) | 处理操作员消息命令 | |
KR102427949B1 (ko) | 데이터 처리 장치에서의 시스템 에러 핸들링 | |
Aksenov et al. | Execution of nvram programs with persistent stack | |
US20100228929A1 (en) | Expedited completion of a transaction in stm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |