TWI471803B - 以交換式記憶體為手段來加速虛擬化及仿真化 - Google Patents

以交換式記憶體為手段來加速虛擬化及仿真化 Download PDF

Info

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
Application number
TW97121733A
Other languages
English (en)
Other versions
TW200907811A (en
Inventor
Martin Taillefer
Darek Mihocka
Bruno Silva
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200907811A publication Critical patent/TW200907811A/zh
Application granted granted Critical
Publication of TWI471803B publication Critical patent/TWI471803B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/521Atomic

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)

  1. 一種使用交換式記憶體(transactional memory)硬體來促進碼回插(code backpatching)之方法,其至少包含以下步驟:從至少兩個執行緒接收欲對特定碼所做的改變;儲存欲對該特定碼所作的該改變於一中央處理單元上之交換式記憶體硬體的一私有狀態設備中;使用該交換式記憶體硬體之一原子提交(atomic commit)特徵,經由企圖一次提交該改變之全部至記憶體而頒佈(enact)回插改變;如果另一執行緒正嘗試執行所欲改變之該特定碼,則致使提交該改變之全部至記憶體的企圖失敗,並且藉由使用該交換式記憶體硬體之該原子提交特徵而企圖一次提交該改變之全部至記憶體來重新頒佈回插改變。
  2. 如申請專利範圍第1項所述之方法,其中經由使用該原子提交特徵來頒佈回插改變,在一多執行緒環境中啟動動態碼修訂。
  3. 如申請專利範圍第2項所述之方法,其中該動態碼修訂係經安全地執行。
  4. 一種系統,其包含: 一中央處理單元,該中央處理單元包含具有用於維持私有狀態以供加速仿真化之一設備的交換式記憶體(transactional memory)硬體;一呼叫返回快取,其係經儲存在該私有狀態設備中,該私有狀態設備可用來捕獲一主機位址以返回至一訪客函數之執行完成之後;及一直接查找硬體式雜湊表單,其可操作用於該呼叫返回快取。
  5. 如申請專利範圍第4項所述之系統,其中該私有狀態對其他中央處理單元為不可視(invisible)的。
  6. 如申請專利範圍第4項所述之系統,其中該私有狀態為可放棄(discardable)。
  7. 一種使用交換式記憶體(transactionat memory)硬體來加速仿真化的方法,其包含:存取具用於加速仿真化之交換式記憶體硬體之一中央處理單元;使用交換式記憶體硬體來加速針對經仿真化之各程式之精確例外語義之仿真化;及使用交換式記憶體硬體來加速針對經仿真化程式之狀態隔離。
  8. 如申請專利範圍第7項所述之方法,其更包含:使用交換式記憶體硬體來促進偵測經仿真化程式之自我修訂。
  9. 如申請專利範圍第7項所述之方法,其更包含:使用交換式記憶體硬體來促進針對經仿真化程式之配發表單更新。
  10. 如申請專利範圍第7項所述之方法,其更包含:使用交換式記憶體硬體來促進針對經仿真化程式之碼回插。
  11. 如申請專利範圍第7項所述之方法,其更包含使用交換式記憶體硬體來促進由經仿真化程式所使用之一呼叫返回快取。
  12. 如申請專利範圍第7項所述之方法,其中該交換式記憶體硬體支援一用於維持私有狀態之設備。
  13. 如申請專利範圍第12項所述之方法,其中該私有狀態係對其他中央處理單元為非可視性(invisible)。
  14. 如申請專利範圍第12項所述之方法,其中該私有狀態係為可棄式(discardable)。
  15. 如申請專利範圍第7項所述之方法,其中該交換式記憶體硬體啟動軟體來監控由其他中央處理單元所執行之記憶體存取。
  16. 如申請專利範圍第7項所述之方法,其中該交換式記憶體硬體支援一原子提交特徵。
TW97121733A 2007-06-27 2008-06-11 以交換式記憶體為手段來加速虛擬化及仿真化 TWI471803B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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