TWI437428B - 主機資料處理設備內之裝置模擬支援 - Google Patents
主機資料處理設備內之裝置模擬支援 Download PDFInfo
- Publication number
- TWI437428B TWI437428B TW098113237A TW98113237A TWI437428B TW I437428 B TWI437428 B TW I437428B TW 098113237 A TW098113237 A TW 098113237A TW 98113237 A TW98113237 A TW 98113237A TW I437428 B TWI437428 B TW I437428B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- data
- abort
- memory access
- instruction
- Prior art date
Links
- 206010000210 abortion Diseases 0.000 claims abstract description 3
- 230000005856 abnormality Effects 0.000 claims description 35
- 230000002159 abnormal effect Effects 0.000 claims description 32
- 238000013507 mapping Methods 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 25
- 239000000725 suspension Substances 0.000 claims description 16
- 238000004088 simulation Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 230000000694 effects Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009291 secondary effect Effects 0.000 description 1
- 208000011580 syndromic disease Diseases 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/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
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- 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
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Advance Control (AREA)
Description
本發明係關於資料處理系統。本發明尤其係更關於支援資料處理設備之虛擬化的資料處理系統。
提供支援資料處理系統之虛擬化的主機資料處理系統係為人已知。主機資料處理系統及虛擬資料處理系統間之差異的規模可明顯地變化。在一些實例中,虛擬資料處理系統可為一具有與主機資料處理設備相同基本處理器架構之資料處理設備的稍微不同版本或實施。在另一實例中,虛擬資料處理設備可能與主機資料處理設備完全不同,例如一藉由RISC或CISC主機資料處理設備模擬的以堆疊為基Java虛擬機器。
在虛擬化之此領域內,經常會需要支援虛擬裝置以將一真實硬體裝置的想像提供給一訪客作業系統或程式。此等虛擬裝置實際上係藉由超管理器軟體提供。一支援裝置(真實及虛擬兩者)之合宜方法為其係記憶體對映,且存取至該等裝置採取載入或儲存至記憶體對映位址的形式。當支援虛擬資料處理設備之虛擬裝置時,其需要對於存取至此等記憶體對映位址處之虛擬裝置選路至超管理器軟體用於處置。一已知技術係藉由設定含有記憶體對映虛擬裝置之對應記憶體區至「無效」或「未存取」且配置欲選路至超管理器程式之所產生例外來截獲存取至此等記憶體位置。
使用此方法之一問題係需要將尋求存取虛擬裝置以模擬該存取之指令解碼。一典型將觸發該例外之記憶體管理單元(MMU)通常亦將提供(或觸發該提出)位址及讀/寫資訊,其關聯經受該例外之存取。在一真實環境內,此通常足以提供關聯記憶體存取之例外的有效率處理。
從一態樣檢視,本發明提供一種用一主機資料處理設備支援一虛擬資料處理設備之虛擬化的方法,該方法包含以下步驟:用該主機資料處理設備執行一程式指令流,以模擬藉由該虛擬資料處理設備之處理;用偵測電路偵測一記憶體存取指令一之試圖實施,其尋求在對應於該虛擬資料處理設備之一記憶體對映裝置的一記憶體位址上執行一記憶體存取操作;用記憶體異常中止電路將特徵化該記憶存取操作之記憶體異常中止資料寫入至一記憶體異常中止暫存器,該記憶體異常中止資料包括指示用該記憶體存取操作存取之一或多數暫存器的資料;及藉由該主機資料處理設備執行記憶體異常中止處置程式觸發一記憶體異常中止例外以執行以下步驟:
(i)自該記憶體異常中止暫存器讀取該記憶體異常中止資料;
(ii)使用包括指示用該記憶體存取操作存取之一或多數暫存器的資料之該記憶體異常中止資料模擬該記憶體存取操作;及
(iii)返回至該程式指令流之執行。
本技術認知當支援一虛擬資料處理設備的虛擬化時,係需要關於引起異常中止之記憶體存取的附加資訊以便能模擬記憶體存取且此附加資訊之獲得係不利地變慢。尤其係,使用已知機構,引起記憶體異常中止之指令需要識別及解碼以識別哪一CPU暫存器正載入或儲存中以便能進行模擬。此識別典型具有許多消耗時間的步驟。首先,指令本身需要被定位;當異常中止發生時提供之指令的位址通常係一在訪客作業系統位址空間中之虛擬位址,其必須被解譯(通常經由二或三個解譯步驟)成為超管理器位址空間中之一虛擬位址,接著其可被讀取。一旦已決定異常中止指令之位址,指令可被讀取。在一具有分開資料及指令快取記憶體之系統(Harvard)中,此通常將造成一資料誤失且需要用於補償誤失之資料的許多循環。接著指令需要解碼。在許多資料處理設備上,該等指令可依各種不同方法存取記憶體及可為關聯解碼已接收指令之相當程度的複雜性,以便識別來源/目的暫存器及記憶體存取的其他特性以致可進行模擬。
本技術以硬體有效率方式兼能辨識及克服此等困難。在大多數情況中,模擬存取至虛擬裝置所需資訊係一用記憶體存取操作存取之一或多數暫存器的識別(不論其係來源暫存器或目的暫存器)且本技術延伸該記憶體異常中止電路以將此資料寫入至一記憶體異常中止暫存器。實際上,識別資料之此暫存器將通常已出現,因為其係記憶體存取指令之正常操作所需,且所需附加機構當發生存取至虛擬資料處理設備之記憶體對映裝置時引導此資訊朝向一其儲存的記憶體異常中止暫存器。異常中止處置程式指令接著可直接地從記憶體異常中止暫存器讀取此暫存器識別資訊,且使用其以依相對較高速率模擬記憶體存取操作且無須讀取引起該記憶體在存取之指令以便能識別該暫存器。該技術因此提供硬體支援用於一虛擬資料處理設備之虛擬化及一使用此硬體支援來更有效率轉譯虛擬裝置的虛擬化之技術。
應瞭解到,記憶體異常中止資料可含有在指示用記憶體存取操作存取之一或多個暫存器的資料之外的額外資訊。指示一或多個暫存器的資料將允許大多數一般情況之虛擬裝置存取能易於支援且在記憶體異常中止暫存器內儲存的資料之延伸將延伸所支援的存取類型。記憶體異常中止資料可加以延伸以包括指示一經受該記憶體存取操作之資料字的大小的資料、關於該操作係一讀取操作或一寫入操作之資料,指示一來源暫存器或一目的暫存器之資料,指示該資料字是否經受符號延伸成為該記憶體存取之部分的資料,及指示該記憶體存取指令之一指令大小的資料。
在一些具體實施例中,該記憶體異常中止資料可額外地包括指示記憶體異常中止資料對於觸發記憶體異常中止之記憶體存取指令是否有效的有效性資料。若記憶體異常中止資料係無效,則記憶體異常中止處置程式指令可從此有效性資料中決定此及回復以從記憶體讀取引起記憶體異常中止之記憶體存取指令,及直接地從因此讀取之指令決定記憶體存取指令參數。依此方式,一硬體設計者可選擇哪些指令足夠簡單以提供信種(syndrome)資料,且較複雜及不值得硬體管理負擔之該等以增加硬體中之支援。
一些記憶體存取指令使用一基底暫存器,其儲存一指示欲存取之記憶體位址的位址值,且該指令指定欲在關聯執行記憶體存取指令(如前或後索引)之該值上施行的一更新。有效性資料可結合此等指令使用以指示特徵化記憶體存取之資料對於更新一基底暫存器值的此等指令係無效,且在此等情況下中指令本身可從記憶體讀取及解碼以便決定欲施行之更新的本質。
可使用有效性資料來指示特徵化記憶體存取資料無效之另一類別指令係載入/儲存多指令,如藉由ARM處理器所提供者。預期此等類型指令將極少用來存取裝置,且至於提供用於其之一信種暫存器所需的大量硬體管理負擔將不會獲得係適當的足夠優點。有效資料可用來指示特徵化此類型的記憶體存取之資料未有效地提供。
在替代具體實施例中,可提供一更新暫存器及可用更新資料來寫入,該更新資料特徵化一更新欲在一關聯引起記憶體異常中止之記憶體存取指令的執行之基底暫存器內所儲存的一位址值上施行之更新。此更新暫存器可藉由記憶體異常中止處置程式指令讀取及用來在一儲存於基底暫存器內之一位址值上施行一所需更新成為存取至虛擬裝置之模擬的部分。
雖然虛擬化可依各種不同方法支援,本技術充分適合之具體實施例係其中執行且包括可引起記憶體異常中止之記憶體存取指令的程式指令流係在一訪客作業系統之控制下,其中藉由虛擬資料處理設備本身之訪客作業系統的執行係藉由一在超管理器程式之控制下的主機資料處理設備模擬。熟習此領域之技術人士將會熟悉虛擬化的此分層形式及係一遭受緩慢虛擬裝置模擬之問題的類型,該問題係以本技術克服。
用於偵測一記憶體存取至虛擬資料處理設備之記憶體對映裝置的偵測電路,可採取一使用頁表資料之記憶體管理單元的形式,以控制存取一記憶體內之記憶體位址。此等記憶體管理單元典型地係提供用於其他原因及可再使用以提供虛擬記憶體對映裝置之記憶體存取的截獲。藉由記憶體對映裝置使用之頁表資料可用當一記憶體存取指令尋求對於一虛擬記憶體對映裝置施行一記憶體存取操作時觸發異常中止的值程式化。
從另一態樣檢視,本發明提供用於處理資料之設備,其提供支援一虛擬資料處理設備之虛擬化,用於處理資料之該設備包含:偵測電路,其回應於一記憶體存取指令之試圖執行,該記憶體存取指令尋求在一對應於該虛擬資料處理設備之一記憶體對映裝置的記憶體位址上施行一記憶體存取操作以觸發一記憶體異常中止;及記憶體異常中止電路,其回應於該記憶體異常中止以將特徵化該記憶存取操作之記憶體異常中止資料寫入至一記憶體異常中止暫存器,該記憶體異常中止資料包括指示用該記憶體存取操作存取之一或多數暫存器的資料。
從另一態樣檢視,本發明提供用於處理資料之設備,其提供支援一虛擬資料處理設備之虛擬化,用於處理資料之該設備包含:偵測構件,其回應於一記憶體存取指令之試圖執行,該記憶體存取指令尋求在一對應於該虛擬資料處理設備之一記憶體對映裝置的記憶體位址上施行一記憶體存取操作用於觸發一記憶體異常中止;及記憶體異常中止構件,其回應於該記憶體異常中止用於將特徵化該記憶存取操作之記憶體異常中止資料寫入至一記憶體異常中止暫存器,該記憶體異常中止資料包括指示用該記憶體存取操作存取之一或多數暫存器的資料。
本發明之以上及其他目的、特徵及優點將從以下結合附圖閱讀之說明性具體實施例的詳述中瞭解。
第1圖說明一虛擬資料處理設備2,其可視為提供執行在一記憶體6內儲存的一程式指令流之一虛擬核心4。記憶體6內之此等指令係對於虛擬資料處理設備2之原生指令,且將在一訪客作業系統(其執行亦被模擬)的控制下執行。虛擬資料處理設備2包括虛擬記憶體對映裝置8、10,其典型地係用來提供與附接至虛擬資料處理設備2之裝置的介面。虛擬記憶體對映裝置可為輸入/輸出埠,例如DMA引擎的裝置及類似者。
在虛擬化領域內藉由截獲記憶體存取至關聯記憶體位址,而後模擬此等記憶體存取來支援此等記憶體對映裝置8、10係為人已知。此操作通常要求讀取記憶體存取程式指令,其係藉由資料處理設備2執行以便從該程式指令識別模擬可精確地施行之足夠資訊。程式指令之中讀取及解碼可為一明顯減少虛擬化操作之速率的緩慢及無效率程序。
第2圖示意性說明一執行一超管理器程式14的主機資料處理設備12,其本身模擬(或至少支援)一引起有關第1圖所討論之記憶體存取的訪客作業系統程式16及客程式指令的執行。主機資料處理設備12之架構可類似於虛擬資料處理設備2的架構(在該情況中虛擬化支援將傾向於快速及有效率)或另外該虛擬資料處理設備2可具有一極不同架構(在該情況中虛擬化支援需要更延伸及將傾向於較緩慢及較無效率)。
主機資料處理設備12包括一用於執行程式指令之處理器核心18。一快取記憶體20(其可為單一或Harvard)係提供以依一習知方式儲存來自一主記憶體22內之資料及指令的本機複本。一回應於頁表資料26之記憶體管理單元24監視藉由處理器核心18施行之記憶體存取操作,以識別應引起記憶體異常中止之任何者。當資料處理設備2之模擬係施行時,頁表資料26經程式化以標記為「無效」或「不存取」記憶體位址區,其對應於虛擬資料處理設備2之記憶體位址空間內的虛擬記憶體對映裝置8、10。因此,記憶體管理單元24作為偵測電路,其作用以偵測對於記憶體位址之記憶體存取操作,該等記憶體位址對應於在藉由模擬由虛擬資料處理設備施行之處理的處理器核心18執行一程式指令流期間產生之虛擬資料處理設備的記憶體對映裝置。藉由記憶體管理單元24產生之記憶體異常中止信號係供應至一故障狀態暫存器(記憶體異常中止暫存器)28,其回應以儲存藉由處理器核心18供應至故障狀態暫存器28之異常中止資訊。此異常中止資訊包括特徵化引起記憶體異常中止之記憶體存取操作的資訊之各種不同片段。記憶體異常中止亦觸發一中斷服務常式之處理,該常式用作記憶體異常中止處置程式指令,其讀取故障狀態暫存器28且接著用以模擬對於虛擬記憶體對映裝置施行之記憶體存取操作。寫入至故障狀態暫存器28之記憶體異常中止資料包括關聯引起異常中止之記憶體存取的核心暫存器號碼(如,用於ARM架構核心之R0
至R15
中一或多個)。記憶體存取可為一讀取操作或一寫入操作且因此暫存器號碼可為一目的暫存器號碼或一來源暫存器號碼。
第3圖示意性說明可寫至故障狀態暫存器28的記憶體異常中止資料。此記憶體異常中止資料包括識別異常中止類型之資料,一指示記憶體存取係一讀取操作或一寫入操作之旗標,一指示記憶體異常中止資料是否應由記憶體異常中止處置程式指令視為有效的旗標,識別關聯記憶體存取之暫存器的暫存器號碼之資料,識別關聯記憶體存取之資料存取大小的資料,識別經受該異常中止之記憶體存取指令的指令大小之資料,及識別該資料是否欲符號延伸之資料。應瞭解可附加或另行提供不同類型之記憶體異常中止資料。第3圖中另外說明的係視需要可在一些具體實施例中提供之更新暫存器30。
如熟習此技術領域人士將會瞭解,一些記憶體存取指令使用一基底暫存器,其係用於儲存一導出該記憶體存取之記憶體位址的位址值。基底暫存器內儲存的值亦可更新為記憶體存取操作的部分。至於一實例,在ARM架構內係支援前及後索引記憶體存取指令,其中對於一記憶體位址值之增量係在相關記憶體存取程式指令執行前或後應用。當此一記憶體存取指令異常中止及係欲模擬時,重要的係在基底暫存器值上之副效應係亦藉由模擬重製。雖然更新一基底暫存器值之此等副效應在存取虛擬記憶體對映裝置的指令內不普遍,然而其確實發生及因此需要支援。一方式係可在故障狀態暫存器28內供應一有效旗標且若此未經設定以指示該記憶體異常中止資料係有效,則可讀取引起該記憶體異常中止之程式指令,且更新該基底暫存器值之副效應可從該程式指令之一解碼決定。當一異常中止係在其中於基底暫存器值上之副效應係出現的指令上觸發時,故障狀態暫存器28內之一有效旗標將不會藉由處理器核心18針對此一指令設定。有效旗標未設定之指令的另一實例係載入/儲存多指令。有效旗標將會針對指令設定而不論哪一記憶體異常中止資料係有效。至於一替代例,可提供當發生記憶體異常中止時識別需要在一基底暫存器值上執行之任何更新的資料可被寫入至之一更新暫存器30。此更新資料可包括一儲存基底位址值之基底暫存器的識別(如,暫存器號碼),以及指示欲儲存於其內之新值的資料,或欲應用至其之改變。應瞭解該更新暫存器30之供應係視需要且有效旗標的使用將允許在虛擬化支援期間產生之大多數記憶體異常中止係使用記憶體異常中止暫存器(FSR28)內之有效資料處置,其中僅極少情況係無效。
允許各特定實施決定哪些指令提供記憶體異常中止資料,且哪些僅設定有效旗標至零的方法,允許各實施選擇一適當指令集用於該特定實施-且該軟體亦將被自動地調整(即,僅當硬體不提供該資料時才查找該指令)。與特定資料必須在架構中提供之指令的子集及要求所有實施在該等情況中提供資料的替代例相比,此係一明顯的優點。
第4圖係一示意性說明以上技術之流程圖。在步驟32及34處,處理器核心18執行一程式指令流,用於在一訪客作業程式16之控制下模擬一在一虛擬資料處理設備2上執行之程式,該客操作程式16本身係藉由一超管理器程式14模擬。當一記憶體異常中止發生時,處理進行至步驟36。在步驟36處,記憶體異常中止資料係藉由處理器核心18寫入至故障狀態暫存器28。步驟38開始一中斷服務常式的執行,其係作為模擬記憶體存取至虛擬記憶體對映裝置之記憶體異常中止處置程式指令。步驟40決定有效旗標是否在儲存於故障狀態暫存器28內之記憶體異常中止資料內設定。若未設定有效旗標,則處理進行至步驟41,其中決定引起記憶體異常中止之指令的位址,且接著至步驟42,其中引起記憶體異常中止的指令係經由位址轉譯之多層從主記憶體22讀取且可能如以前所述快取記憶體誤失。步驟43接著解碼從記憶體讀取的指令且步驟44使用在步驟42處自程式指令之讀取導出的資料來模擬裝置存取至虛擬記憶體對映裝置。
若有效旗標指示在故障狀態暫存器28內儲存的記憶體異常中止資料係有效,則步驟40直接處理至步驟46,其中記憶體異常中止資料係從故障狀態暫存器28讀取,且藉由步驟44使用以模擬記憶體存取至虛擬記憶體對映裝置。記憶體異常中止資料包括例如第3圖中所說明之資料,其包括一來源/目的暫存器號碼,一資料存取大小,指令大小,符號延伸資訊,讀/寫資訊及異常中止類型,以及視需要可在一更新暫存器30內儲存且單獨讀取成為記憶體異常中止處置程式指令之執行的部分之更新位址資訊。對於虛擬記憶體對映裝置之記憶體存取的模擬之完成,通常將以一返回至其中記憶體異常中止產生之程式流的執行來完成。
雖然本文中已參考附圖詳述本發明之說明性具體實施例,但應理解本發明不受限於該等精確具體實施例,且其各種改變及修改可藉由熟習此項技術人士產生效用而不脫離由隨附申請專利範圍定義之本發明的範疇及精神
2...虛擬資料處理設備
4...虛擬核心
6...記憶體
8...虛擬記憶體對映裝置
10...虛擬記憶體對映裝置
12...主機資料處理設備
14...超管理器程式
16...訪客作業系統程式
18...處理器核心
20...快取記憶體
22...主記憶體
24...記憶體管理單元
26...頁表資料
28...故障狀態暫存器/記憶體異常中止暫存器
30...更新暫存器
第1圖示意性說明一包括虛擬記憶體對映裝置之虛擬資料處理設備;
第2圖示意性說明一包括用於支援虛擬化之硬體機構的主機資料處理設備;
第3圖示意性說明一記憶體異常中止暫存器及一更新暫存器之實例內容,其可用以提供特徵化一引起一記憶體異常中止之記憶體存取操作的資料;及
第4圖係一示意性說明用於支援一對於一虛擬記憶體對映裝置之記憶體存取操作的模擬之技術。
12...主機資料處理設備
14...超管理器程式
16...訪客作業系統程式
18...處理器核心
20...快取記憶體
22...主記憶體
24...記憶體管理單元
26...頁表資料
28...故障狀態暫存器/記憶體異常中止暫存器
30...更新暫存器
Claims (18)
- 一種用一主機資料處理設備支援一虛擬資料處理設備之虛擬化的方法,該方法包含以下步驟:用該主機資料處理設備執行一程式指令流(stream),以模擬藉由該虛擬資料處理設備之處理;用偵測電路偵測一記憶體存取指令之試圖實施(attempted execution),該記憶體存取指令尋求在對應於該虛擬資料處理設備之一記憶體對映裝置的一記憶體位址上執行一記憶體存取操作;用記憶體異常中止(memory-abort)電路將特徵化該記憶存取操作之記憶體異常中止資料寫入至一記憶體異常中止暫存器,該記憶體異常中止資料包括指示用該記憶體存取操作存取之一或更多個暫存器的資料;及藉由該主機資料處理設備執行記憶體異常中止處置程式指令觸發一記憶體異常中止例外,以執行以下步驟:(i)自該記憶體異常中止暫存器讀取該記憶體異常中止資料;(ii)使用包括指示用該記憶體存取操作存取之一或更多個暫存器的該資料之該記憶體異常中止資料模擬該記憶體存取操作;及(iii)返回至該程式指令流之執行,其中該記憶體 異常中止資料包含有效性資料,該有效性資料指示該記憶體異常中止資料對於已觸發該記憶體異常中止例外之該記憶體存取指令是否有效,且若該等記憶體異常中止處置程式指令從該有效性資料決定特徵化該記憶體異常中止之該資料對於該記憶體異常中止例外係無效,則該等記憶體異常中止處置程式指令從一指令記憶體讀取該記憶體存取指令,並從該記憶體存取指令決定用於模擬該記憶體存取操作之一或更多個參數。
- 如申請專利範圍第1項所述之方法,其中該記憶體異常中止資料包含以下一或更多項:指示一係經受該記憶體存取操作之資料字的大小之資料;該記憶體存取操作係一讀取操作或一寫入操作之資料;指示用於該記憶體存取操作之一或更多個來源暫存器的資料;指示用於該記憶體存取操作之一或更多個目的暫存器之資料;及指示一經受該記憶體存取操作之資料字是否欲符號延伸的資料;及指示該記憶體存取指令之一指令大小的資料。
- 如申請專利範圍第1項所述之方法,其中當該記憶體存取指令指定一儲存一指示該記憶體位址之位址值的 基底暫存器及一欲在關聯該記憶體存取指令之該執行的該位址值上施行的更新時,該等記憶體異常中止處置程式指令從一指令記憶體讀取該記憶體存取指令,及從該記憶體存取指令決定用於在該基底暫存器內之該位址值上執行該更新之一或更多個參數。
- 如申請專利範圍第1項所述之方法,其中該有效性資料指示特徵化該記憶體異常中止之該資料對於更新儲存於該基底暫存器中之該位址值的記憶體存取指令係無效。
- 如申請專利範圍第1項所述之方法,其中當該記憶體存取指令指定一儲存一指示該記憶體位址之位址值的基底暫存器及一欲在關聯該記憶體存取指令之該執行的該位址值上施行的更新時,該方法更包含用該記憶體異常中止電路將特徵化欲在該位址值上施行之該更新的更新資料寫入至一更新暫存器。
- 如申請專利範圍第5項所述之方法,其中該等記憶體異常中止處置程式指令從該更新暫存器讀取該更新資料,一或更多個參數用於在該基底暫存器內之該位址值上施行該更新。
- 如申請專利範圍第1項所述之方法,其中該程式指令流係在一訪客作業系統之控制下執行,藉由該虛擬資料處理設備之該訪客作業系統的執行係藉由在一超管理器程式之控制下的該主機資料處理設備模擬。
- 如申請專利範圍第1項所述之方法,其中該偵測電路 係一記憶體管理單元,其使用頁表資料以控制存取至該記憶體內之記憶體位址。
- 如申請專利範圍第8項所述之方法,其中當該記憶體存取指令尋求施行該記憶體存取操作時,該頁表資料用一觸發一異常中止之值標記對應於該記憶體對映裝置的該記憶體位址。
- 一種用於處理資料之設備,其提供支援一虛擬資料處理設備之虛擬化,用於處理資料之該設備包含:偵測電路,其回應於一記憶體存取指令之一試圖執行,該記憶體存取指令尋求在一對應於該虛擬資料處理設備之一記憶體對映裝置的記憶體位址上施行一記憶體存取操作以觸發一記憶體異常中止;及記憶體異常中止電路,其回應於該記憶體異常中止以將特徵化該記憶存取操作之記憶體異常中止資料寫入至一記憶體異常中止暫存器,該記憶體異常中止資料包括指示用該記憶體存取操作存取之一或更多個暫存器的資料,其中該記憶體異常中止資料包含有效性資料,該有效性資料指示該記憶體異常中止資料對於已觸發該記憶體異常中止例外之該記憶體存取指令是否有效,該記憶體中上係藉由用於處理資料之該設備執行的記憶體異常中止處置程式指令處置,且若該等記憶體異常中止處置程式指令從該有效性資料決定特徵化該記憶體異常中止之該資料對於該記憶體異常中止例外係無效,則該等記憶體異常中止處置程式指 令從一指令記憶體讀取該記憶體存取指令,並從該記憶體存取指令決定用於模擬該記憶體存取操作之一或更多個參數。
- 如申請專利範圍第10項所述之設備,其中該記憶體異常中止資料包含以下一或更多項:指示一係經受該記憶體存取操作之資料字的大小之資料;該記憶體存取操作係一讀取操作或一寫入操作之資料;指示用於該記憶體存取操作之一或更多個來源暫存器的資料;指示用該記憶體存取操作存取之一或更多個暫存器之資料;及指示一係經受該記憶體存取操作之資料字是否欲符號延伸的資料;及指示該記憶體存取指令之一指令大小的資料。
- 如申請專利範圍第10項所述之設備,其中當該記憶體存取指令指定一儲存一指示該記憶體位址之位址值的基底暫存器及一欲在關聯該記憶體存取指令之該執行的該位址值上施行的更新時,記憶體異常中止處置程式指令從一指令記憶體讀取該記憶體存取指令,及從該記憶體存取指令決定用於在該基底暫存器內之該位址值上執行該更新之一或更多個參數。
- 如申請專利範圍第10項所述之設備,其中該有效性 資料指示特徵化該記憶體異常中止之該資料對於更新儲存於該基底暫存器中之該位址值的記憶體存取指令係無效。
- 如申請專利範圍第10項所述之設備,其中當該記憶體存取指令指定一儲存一指示該記憶體位址之位址值的基底暫存器及一欲在關聯該記憶體存取指令之該執行的該位址值上施行的更新時,該記憶體異常中止電路係回應至該記憶體異常中止以將特徵化欲在該位址值上施行之該更新的更新資料寫入至一更新暫存器。
- 如申請專利範圍第14項所述之設備,其中記憶體異常中止處置程式指令從該更新暫存器讀取該更新資料,一或更多個參數用於在該基底暫存器內之該位址值上施行該更新。
- 如申請專利範圍第10項所述之設備,其中一程式指令流係在一訪客作業系統之控制下執行,藉由該虛擬資料處理設備之該訪客作業系統的執行係藉由在一超管理器程式控制下用於處理資料之該設備模擬。
- 如申請專利範圍第10項所述之設備,其中該偵測電路係一記憶體管理單元,其使用頁表資料以控制存取至該記憶體內之記憶體位址。
- 如申請專利範圍第17項所述之設備,其中當該記憶體存取指令尋求施行該記憶體存取操作時該頁表資料用一觸發一異常中止之值標記對應於該記憶體對映裝置的 該記憶體位址。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0809492A GB2460280A (en) | 2008-05-23 | 2008-05-23 | Using a memory-abort register in the emulation of memory access operations |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200949535A TW200949535A (en) | 2009-12-01 |
TWI437428B true TWI437428B (zh) | 2014-05-11 |
Family
ID=39616061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098113237A TWI437428B (zh) | 2008-05-23 | 2009-04-21 | 主機資料處理設備內之裝置模擬支援 |
Country Status (11)
Country | Link |
---|---|
US (1) | US8180980B2 (zh) |
EP (1) | EP2281237B1 (zh) |
JP (1) | JP5318197B2 (zh) |
KR (1) | KR101533224B1 (zh) |
CN (1) | CN102037448B (zh) |
AT (1) | ATE523842T1 (zh) |
GB (1) | GB2460280A (zh) |
IL (1) | IL206725A (zh) |
MY (1) | MY152358A (zh) |
TW (1) | TWI437428B (zh) |
WO (1) | WO2009141574A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8301849B2 (en) * | 2009-12-23 | 2012-10-30 | Intel Corporation | Transactional memory in out-of-order processors with XABORT having immediate argument |
US9619345B2 (en) | 2012-09-13 | 2017-04-11 | International Business Machines Corporation | Apparatus for determining failure context in hardware transactional memories |
US9268598B2 (en) | 2012-09-13 | 2016-02-23 | International Business Machines Corporation | Recording and profiling transaction failure source addresses and states of validity indicator corresponding to addresses of aborted transaction in hardware transactional memories |
GB2543306B (en) * | 2015-10-14 | 2019-05-01 | Advanced Risc Mach Ltd | Exception handling |
EP3279796B1 (en) * | 2016-08-02 | 2020-07-15 | NXP USA, Inc. | Resource access management component and method therefor |
TWI666901B (zh) * | 2018-03-27 | 2019-07-21 | 緯穎科技服務股份有限公司 | 資料傳輸方法與使用此方法的主機系統 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS593642A (ja) * | 1982-06-30 | 1984-01-10 | Fujitsu Ltd | 制御レジスタ処理方式 |
US5907708A (en) * | 1996-06-03 | 1999-05-25 | Sun Microsystems, Inc. | System and method for facilitating avoidance of an exception of a predetermined type in a digital computer system by providing fix-up code for an instruction in response to detection of an exception condition resulting from execution thereof |
US5968119A (en) | 1996-12-09 | 1999-10-19 | Wall Data Incorporated | Method of accessing information of an SNA host computer from a client computer using a specific terminal emulation |
US6081887A (en) * | 1998-05-13 | 2000-06-27 | Compaq Computer Corporation | System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction |
US20020004897A1 (en) | 2000-07-05 | 2002-01-10 | Min-Cheng Kao | Data processing apparatus for executing multiple instruction sets |
GB2367651B (en) * | 2000-10-05 | 2004-12-29 | Advanced Risc Mach Ltd | Hardware instruction translation within a processor pipeline |
US6732241B2 (en) * | 2001-09-07 | 2004-05-04 | Hewlett-Packard Development Company, L.P. | Technique for migrating data between storage devices for reduced power consumption |
US6952754B2 (en) | 2003-01-03 | 2005-10-04 | Intel Corporation | Predecode apparatus, systems, and methods |
US7146474B2 (en) * | 2003-03-12 | 2006-12-05 | International Business Machines Corporation | System, method and computer program product to automatically select target volumes for a fast copy to optimize performance and availability |
US20050076186A1 (en) * | 2003-10-03 | 2005-04-07 | Microsoft Corporation | Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements |
US20050246453A1 (en) * | 2004-04-30 | 2005-11-03 | Microsoft Corporation | Providing direct access to hardware from a virtual environment |
US7356456B1 (en) * | 2004-11-12 | 2008-04-08 | Paravirtual Corporation | Computer storage exception handing apparatus and method for virtual hardware system |
US20060168485A1 (en) * | 2005-01-26 | 2006-07-27 | Via Technologies, Inc | Updating instruction fault status register |
US7496495B2 (en) * | 2005-05-12 | 2009-02-24 | Microsoft Corporation | Virtual operating system device communication relying on memory access violations |
US7769983B2 (en) | 2005-05-18 | 2010-08-03 | Qualcomm Incorporated | Caching instructions for a multiple-state processor |
US9354927B2 (en) * | 2006-12-21 | 2016-05-31 | Vmware, Inc. | Securing virtual machine data |
US7711927B2 (en) | 2007-03-14 | 2010-05-04 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
US7886115B2 (en) * | 2007-07-13 | 2011-02-08 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques for implementing virtual storage devices |
-
2008
- 2008-05-23 GB GB0809492A patent/GB2460280A/en not_active Withdrawn
-
2009
- 2009-03-23 CN CN200980118763.3A patent/CN102037448B/zh active Active
- 2009-03-23 WO PCT/GB2009/000771 patent/WO2009141574A1/en active Application Filing
- 2009-03-23 KR KR1020107028671A patent/KR101533224B1/ko active IP Right Grant
- 2009-03-23 JP JP2011510036A patent/JP5318197B2/ja active Active
- 2009-03-23 MY MYPI20103029 patent/MY152358A/en unknown
- 2009-03-23 AT AT09750052T patent/ATE523842T1/de not_active IP Right Cessation
- 2009-03-23 EP EP09750052A patent/EP2281237B1/en active Active
- 2009-04-21 TW TW098113237A patent/TWI437428B/zh active
- 2009-05-22 US US12/453,806 patent/US8180980B2/en active Active
-
2010
- 2010-06-30 IL IL206725A patent/IL206725A/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP2281237B1 (en) | 2011-09-07 |
EP2281237A1 (en) | 2011-02-09 |
TW200949535A (en) | 2009-12-01 |
US20100094613A1 (en) | 2010-04-15 |
JP5318197B2 (ja) | 2013-10-16 |
MY152358A (en) | 2014-09-15 |
GB2460280A (en) | 2009-11-25 |
GB0809492D0 (en) | 2008-07-02 |
CN102037448A (zh) | 2011-04-27 |
JP2011523741A (ja) | 2011-08-18 |
KR101533224B1 (ko) | 2015-07-02 |
IL206725A0 (en) | 2010-12-30 |
ATE523842T1 (de) | 2011-09-15 |
WO2009141574A1 (en) | 2009-11-26 |
CN102037448B (zh) | 2014-04-02 |
US8180980B2 (en) | 2012-05-15 |
IL206725A (en) | 2014-04-30 |
KR20110019750A (ko) | 2011-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8688432B2 (en) | Method, apparatus and full-system simulator for speeding MMU simulation | |
EP1939754A2 (en) | Providing protected access to critical memory regions | |
US20110202739A1 (en) | Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag | |
TWI437428B (zh) | 主機資料處理設備內之裝置模擬支援 | |
KR101924821B1 (ko) | 정렬 제어 | |
TWI790350B (zh) | 記憶體存取中的守衛標籤檢查的控制 | |
US8438340B2 (en) | Executing atomic store disjoint instructions | |
TW202018517A (zh) | 用於控制記憶體存取的裝置及方法 | |
KR20180100229A (ko) | 벡터 원자 메모리 갱신 명령 | |
US20080215830A1 (en) | Employing a data structure of readily accessible units of memory to facilitate memory access | |
CN108139906B (zh) | 一种处理数据的方法及装置 | |
TWI787451B (zh) | 用於資料處理的方法、設備、電腦程式、與儲存器媒體 | |
US11636048B2 (en) | Handling guard tag loss | |
US20210157601A1 (en) | Exception interception |