TWI255402B - Method, system and machine-readable medium for handling faults associated with operation of guest software in the virtual-machine architecture - Google Patents

Method, system and machine-readable medium for handling faults associated with operation of guest software in the virtual-machine architecture Download PDF

Info

Publication number
TWI255402B
TWI255402B TW092117666A TW92117666A TWI255402B TW I255402 B TWI255402 B TW I255402B TW 092117666 A TW092117666 A TW 092117666A TW 92117666 A TW92117666 A TW 92117666A TW I255402 B TWI255402 B TW I255402B
Authority
TW
Taiwan
Prior art keywords
error
guest software
software
page
guest
Prior art date
Application number
TW092117666A
Other languages
English (en)
Other versions
TW200408939A (en
Inventor
Richard Uhlig
Andrew V Anderson
Steve Bennett
Erik Cota-Robles
Stalinselvaraj Jeyasingh
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of TW200408939A publication Critical patent/TW200408939A/zh
Application granted granted Critical
Publication of TWI255402B publication Critical patent/TWI255402B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Description

1255402 玖、發明說明: 【發明所屬之技術領域】 本發明大體上和虛擬機器相關,特別是與在虚擬機器架 構中處理與客用軟體的運作有關之錯誤相關。 【先前技術】 一傳統的虚擬機器監測器(VMM)通常在一電腦上執行, 並對其他軟體展現一或更多種虛擬機器的抽像概念。每一 虛擬機器可扮演一自給自足的平台,執行它自己的’’客用作 業系統也就是,由VMM所主控的一作業系統(OS))和其他 軟體。所執行的’’客用作業系統’’和其他軟體集體地稱為客 用軟體。客用軟體認為它就好像在一專用電腦而非一虛擬 機器上執行一樣。也就是,客用軟體認為它控制各種事件 且能夠使用硬體資源。硬體資源可能包括處理器内含的資 源(舉例來說,控制暫存器),存在於記憶體内的資源(例如, 描述元表單)、和存在於基本硬體平台上的資源(例如,輸出 輸入裝置)。那些事件可能包括中斷、例外、平台事件(例如, 設定初值(INIT)或系統管理中斷(SMIs))等。 在一虛擬機器環境中,VMM應該能夠對這些事件和硬體 資源有最終控制,以提供在那些虛擬機器上執行的客用軟 體之適當運作、和保護在那些虛擬機器上執行的客用軟 體。為了要達到這點,VMM通常在客用軟體存取一保護的 資源、或當發生其他事件(例如中斷或例外)時接收控制。 舉例來說,當客用軟體的運作期間發生一頁錯誤(也就 是,與一位址轉換運作相關的一例外)時,控制轉移到 86318 1255402 VMM’然後VMM判斷客用軟體或VMM本身是否需要處理 I錯誤。如果頁錯誤需要由客職體處理,控制轉移回到 客用軟體。因為不需要VMM處理的頁錯誤(以及其他例外和 中斷)非常頻繁地發生,有一與VMM和客用軟體之間此種控 制轉移相關的重大效率成本。 【發明内容】 描述-種方法和裝置’用以在一虛擬機器架構中處理與 客用軟體的運作有關之錯誤。在以下說明中,4 了說明之 目的’陳述了許多特定細節以提供本發明的完全瞭解。然 而,對熟知該項技藝人士將是顯而易見的,本發明可以不 使用這些特定細節實施。 以下詳細說明的某些部分以電腦系統的暫存器或記憶體 當中’對資料位元的運作之演算法和符號表示法的角度提 出。免些 >貢算法說明和表示法,是熟知資料處理技藝那些 人士用來最有效地傳達他們的作品之要旨給其他熟知該項 技蟄人士的方法。在此,一演算法通常視為是導致所要的 結果《有#理的一系列運#。那些運作是需要f際數量的 實際處理之運作。通常,雖非必然地,這些數量採取能夠 儲存、傳送、結合、比較、或處理的電子或磁性訊號的形 式。王要為了通用的理由,已經證實了有時稱這些訊號為 位元、數值、元件、符號、字元、術語、數目等是方便的。 然而,應該記在心中的是,所有這些和相似的術語是與 適當的實際數量有關,且僅是應用於這些數量的方便標 不。除非特別說明,否則如下列討論中顯而易見的,將可 86318 1255402 發現在本發明各處,利用例如”處理"或,,計算”或,,估算”戈”判 斷’’等術語的討論可能指—電腦系統、或類似電子計算裳置 的動作和程序,這些動作和程序處理和錢表示為電腦系 統之暫存器和記憶體當中的實際(電子)數量之資料,成為其 他同樣地表示為電腦系統記憶冑或暫存器或此種資訊儲 存、傳輸、或顯示裝置當中的實際數量之資料。 【實施方式】 在具體實施例的下列詳細說明中9參考了以範例方式表 示其中可實施本發明的特定具體實施例之伴隨圖式。在那 些圖式中,相同數字說明遍及幾個圖中大體上相似的元 件這些具體貫施例充份詳細地說明,以使熟知該項技藝 人士能夠實施本發明。也可能利用其他具體實施例,且可 進行結構的、邏輯的、和電子的改變而不脫離本發明的範 疇。而且,應該了解本發明的各種具體實施例雖然不同, 但不必然是互斥的。舉例來說,在一具體實施例中所描述 的一特足特徵、結構、或特性可能包含在其他具體實施例 中。因此,以下的詳細說明不是要採取一種限定的意義, 而本發明的範疇只由所附申請專利範圍、以及此等申請專 利範圍所賦予的等效物之完整範疇定義。 圖1說明本發明可於其中運作之一虛擬機器環境1〇〇的一 具體實施例。在這個具體實施例中,單獨的平台硬體116包 含一計算平台,舉例來說計算平台可以執行一標準作業系 統(OS)或一虚擬機器監視器(VMM),例如一 VMM 112。雖 然VMM 112通常實施在軟體中,但其可對較高層次軟體模 86318 1255402 仿並輸出一單獨的機器介面。此種較高層次軟體可能包含 一標準的或即時的作業系統,可能是有受限的作業系統功 能之一高度解除的操作環境,可能不包括傳統的作業系統 公用程式等。或者,舉例來說,VMM 112可能在另一 VMM 當中、或之上執行。VMMs和它們的典型特徵與功能為熟知 該項技藝人士所週知;且可實施在例如軟體、韌體中,或 由各種技術的組合實施。 平台硬體116可以是一個人電腦(PC)、大型主機、手持式 裝置、可提式電腦、隨選視訊盒、或任何其他計算系統。 平台硬體116包括一處理器118、記憶體120,和可能未顯示 的其他平台硬體(例如輸入輸出裝置)。 處理器118可以是能夠執行軟體之任何類型的處理器,例 如一微處理器、數位訊號處理器、微控制器等。處理器118 可能包括用來執行本發明的方法具體實施例之微程式碼、 可程式邏輯、或硬編碼邏輯。 記憶體120可以是一硬式磁碟、一軟式磁碟、隨機存取記 憶體(RAM)、唯讀記憶體(ROM)、快閃記憶體、上述裝置的 任何組合、或任何可由處理器118讀取的其他類型之機器媒 體。記憶體120可儲存指令或資料,以執行本發明的方法具 體實施例之執行。 VMM 112對其他軟體(也就是,”客用”軟體)呈現一或更多 個虚擬機器(VMs)的抽像概念。VMM 112可對各種客用軟體 提供相同的或不同的抽像概念。圖1表示二個如此的VMs, 102和114,雖然VMM 112可支援多於或少於2個VMs。在每 86318 -10- 1255402 一 VM上執行的客用軟體可能包括一客用作業系統例如一 客用作業系統104或106,和各種客用軟體應用程式1〇8和 11〇。在此處客用作業系統和軟體應用程式集體地稱為客用 軟體103和115。客用軟體1〇3和105預期能存取客用軟體在 其上執行的VM 102和114當中的實體資源(例如處理器暫存 器、記憶體、和輸入/輸出裝置)。VMM112幫助存取客用軟 體所要的資源,而同時保有對平台硬體丨丨6當中的資源之最 終控制。 此外,客用軟體103和115預期能處理各種事件,例如例 外、中斷、和平台事件(舉例來說,設定初值(INIT)和系統 管理中斷(SMIs))。有些此等事件是”特權的,,,因為它們必 須由VMM 112處理以確保VMs 1〇2和114與客用軟體1〇3和 Π5的適當運作,和在客用軟體1〇3和115之間保護彼此。對 於那些特權的事件,VMM 112幫助客用軟體所需要的功 能,而同時保有對這些特權的事件之最終控制。幫助客用 軟體的功能之行為可能包括對VMM 112部份的各種活動。 VMM 112的活動以及它的特性,不應限制本發明的範疇。 除了那些特權的事件之外,冑—些在客用庠欠體的運作期 間發生、但不需要由VMM 112處理的,,非特權的事件,,,而 因此不而要轉移控制到VMM 112。在一具體實施例中,提 供了 一種過濾機制來區別特權的事件和非特權的事件。藉 由這種過濾機制,使用一或更多個過濾標準評估與一目前 事件(例如一例外)相關的資訊,以決定對目前事件的控制是 否留給客用庠欠體或轉移到VMM 112。彡些過滤標準在此處 86318 -11· 1255402 稱為控制轉移㈣標準。與目前事件相關的資訊在此處稱 為錯誤資訊。 在另一具體實施例中,提供了一種過遽機制來辨識因為 在目前事件時出現的其他因素(其指出客用軟體可完成所 需要的運作而不損及VMM 112或其他VMs的安全性和適當 運作)而可,忽略的某些非特權的事件。在這個具體實施: =使用-或更多個過滤標準評估與目前事件相關的錯誤 資訊|以蚊是否可,忽略目前事件(也就是,是否允許客用 軟體完成所需要的運作)^些過餘準在此處稱為錯誤過 濾標準。 在-具體實施例中,使用儲存在一虛擬機器控制結構 (VMCS) 122中-或更多個指定的欄位中之資料定義過遽標 準(控制轉移過濾標準及/或錯誤過濾標準)。雖然在圖丨中只 顯示-此種VMCS,但不同的杨可使用來自不同職說 憶體映像的資料。VMCS 122可能存在於記憶體12时並由 處理器118維護。應該注意的是可用任何其他資料結構(舉 例來說,晶載快取記憶體、標案、搜尋表等)來儲存愈㈣ 機制有關的VMCS122或那些攔位而不失去其普遍性。過滤 機制的各種具體實施例將在下面更詳細說明。 在-具體實施例中,如果過濾機制判斷目前事件必須由 VMM 112處理,控制轉移到VMM 112。然後vmm η〕可處 理Μ事件,並將控制轉移回到客用軟體。在—具體實施例 中,將控制從VMM 112轉移到客用軟體是藉由執行二特別 的指令達成。從VMM轉移控制到客用軟體在此處稱為—vm 86318 12· 1255402 入口,而從客用軟體轉移控制到VMM在此處稱為一 VM出 口,且VM出口(舉例來說,特權的例外和中斷與特權的平 台事件)的可能原因在此處稱為虛擬化事件。 在一具體實施例中,當發生一 VM出口時,控制在VMCS 122中所敘述的一特定入口(例如,一指令指標數值)傳遞到 VMM 112。在另一具體實施例中,控制在經過一重導向結 構(舉例來說,在Intel®公司的Pentium⑧IV之處理器指令集 架構(ISA,在此處稱為IA-32 ISA)的中斷-描述元表列)的向 量化之後傳遞到VMM 112。或者,可使用該項技藝中所知 道的任何其他機制將控制從客用軟體轉移到VMM 112。 包括例外、中斷、和平台事件的特權和非特權事件在此 處稱為錯誤。一錯誤可能由處理器上一指令的執行產生。 舉例來說,一存取記憶體的運作可能由於頁轉移和分段保 護機制引起各種錯誤。每一錯誤與錯誤資訊相關聯。錯誤 資訊可能表現動態、靜態、或半動態的錯誤資訊之特性。 動態的錯誤資訊在錯誤時或接近錯誤時產生。動態的錯誤 資訊之範例包括由一例外產生、且直接取決於錯誤運作的 特性之差錯碼,或要由一寫入記憶體運作窝入到記憶體而 引起一分頁錯誤的資料數值。 靜態或半靜態的錯誤資訊很可能與錯誤的時間無關而有 相同數值。半靜態的錯誤資訊之一範例是很少改變的各種 控制暫存器中的位元設定,舉例來說,例如IA-32 ISA中在 暫存器CR0中的快取記憶體失效(CD)、或寫入保護(WP)位 元。靜態的錯誤資訊之一範例是處理器實施(舉例來說,如 86318 -13 - 1255402 透過IA-32 ISA中的CPUID指令所報告)的版本。 一般而言,錯誤資訊可能包括一錯誤識別符、一相關的 錯誤差錯碼、與錯誤相關的额外資料數值、或這些資料項 目的任何、級合。錯誤識別#可能是用纟區別這個特定的錯 誤=其他的錯誤之數值。差錯碼可能由許多數值所组成,曰 而母-數值表示一特定情況的發生。額外的資料數值可能 代表連接到造成錯誤的指令、或錯誤觸發情況的任何其他 資料。除此之外’那些額外的資料數值可能代表在錯誤的 產生期間所計算的資料。额外的資料數值之—些範例包括 在錯誤時請求要寫到-特定位置的資料、在錯誤時所存取 :位址、引起錯誤的指令之位址、在錯誤時記憶體的狀態 等。 錯誤資訊的-範例可參考IA_32ISA中一分頁錯誤說明。 在ΪΑ-32 ISA中,—分頁錯誤由—等於_錯誤識別符識 別。因此,當發生-分頁錯誤時,控制藉由透過一中斷描 述元表列(IDT)在項目14向量化到—錯誤處理器傳遞到該 錯誤處理器。所存取(產生分頁錯誤)的位址儲存在—控制暫 ^器(CR2)中,此之外,在傳遞控制到錯誤處理器之前, 分頁錯誤產生推到堆疊上以供錯誤處理器使用的一差錯 碼。、差錯碼包括告知錯誤處理器引起分頁錯誤的情況之四 個位元。特別地,差錯碼中的位元峨示錯誤是否由一分頁 表列中用來做位址轉換的—不存在分頁所引起,差錯碼中 的位元!指示錯誤存取是否是—寫入,差錯碼中的位元以旨 不存取是否是在處理器在—使用者模態中開始,而差錯碼 86318 -14- 1255402 中的位元3指示錯誤是否由一分頁目錄中設定為1的一保留 位元所引起。 額外的資料數值可能與分頁錯誤有關。相關的額外資料 數值的範例包括所存取引起分頁錯誤(CR2)的位址、引起錯 誤指令的位址、當發生一分頁錯誤時客用軟體嘗試窝到一 分頁表組織結構中一不可寫入的分頁之資料數值、在實體 和客用線性記憶體中分頁表的位址等。 現在將說明利用控制轉移過濾標準的過濾機制之一些具 體實施例。控制轉移過濾標準可能手動地或程式地定義。 控制轉移過濾標準因特定錯誤、差錯碼的形式、ISA、额外 的資料數值之存在、VMM的特性、和其他因素而改變。控 制轉移過濾標準的複雜度、和表達那些標準所需的元件之 數目,依據差錯碼中所包含的數值之數目、额外資料數值 的數目、和差錯碼數值的可能組合之數目、及/或需要(和不 需要)造成轉移到VMM的額外資料數值而定。舉例來說,當 需要考慮很多此種組合時,㈣轉移過濾標準可㉟需要:士 差錯碼、及/或其他錯誤資訊、和—組預歧義的資料執行 幾個運作(例如,算術及/或布林邏輯運作)。 預先定義的資料儲存在如上所述
例中,預先定義的 電腦程式、可程式 在一些具體實施例中,預 的VMCS之指定櫚位中 資料可能是硬編碼的(令 邏輯、微程式碼、或處理器的硬編碼邏輯中)。 圖2是使用控制轉移過滤標準用以過遽由於錯誤而生的 物出口之程序_的具體實施例之流程_。該程序可藉由 86318 -15- 1255402 處理可能包含硬體(舉例來說,電路、專用邏輯、可程式邏 輯,微程式碼等)、軟體(例如在一般用途電腦系統或一專用 的機咨上執行的軟體)、或兩者的組合之邏輯執行。 參照圖2 $程序200由處理接收錯誤資訊的邏輯開始(處理 方塊202)。錯誤資訊可能與一已經發生的、或將發生的錯 疾是否允許一運作進行到完成有關。錯誤資訊包括識別錯 决的一錯誤識別符。在一些具體實施例中,錯誤資訊也包 捂與錯誤相關的一差錯碼及/或額外的資料數值。 在判斷方塊204,對於錯誤資訊是否滿足一或更多個控制 轉移過濾標準進行一判斷。如果在判斷方塊2〇4進行的判斷 疋d足的,也就疋,錯誤資訊未滿足控制轉移過濾標準, 控制轉變到處理錯誤的VMM(處理方塊2〇6),而然後可將控 制轉移回到客用作業系統。否則,如果在判斷方塊2〇4進^ 的判斷是肯定的,也就是,錯誤資訊滿足控制轉移過濾標 準,那麼控制保留給客用軟體。然後可允許客用軟體處理 錯誤。 在其έ可能的具體實施例中,如果錯誤資訊未滿足控制 轉移過濾標準,控制轉變到VMM(而如果錯誤資訊滿足控制 轉移過濾標準,控制保留給客用軟體)。 如上所述,控制轉移過濾標準的複雜性因各種因素而 定。在-具體實施例中’一控制轉移過濾標準可能只需要 將錯誤資訊與-某種數值比較(舉例來說,#果差錯碼大於 10將產生一 VM出口,或如果差錯碼等於〇χ4將產生一 vM出 口等)。在另-具體實施例中,控制轉移過濾標準可能需要 86318 -16- 1255402 將錯誤資訊與一些數值比較。舉例來說,可能預先決定需 要引起轉變到VMM的差錯碼數值,而目前的差錯碼可與這 些預先決定的數值比較以識別一符合的數值。預先決定的 數值(s)可能儲存在指定的欄位(舉例來說,圖1的VMCS 122 中)中,或硬編碼在一電腦程式、可程式邏輯、微程式碼、 或處理器的硬編碼邏輯中。而在其他具體實施例中,過濾 機制可能需要對錯誤資訊和一組預先決定的數值執行一或 更多個布林邏輯及/或算術運作。 圖3-5說明使用控制轉移過濾標準以過濾因錯誤而生的 VM出口之程序的可仿效具體實施例。那些程序可能藉由處 理可能包含硬體(例如,電路、專用邏輯、可程式邏輯、微 程式碼等)、軟體(例如在一般用途電腦系統或一專用機器上 執行的軟體)、或兩者的組合之邏輯執行。 參照圖3,程序300由偵測在客用軟體的運作期間發生的 錯誤之邏輯開始(處理方塊301)。在處理方塊302,處理邏輯 接收識別錯誤、且可能包括與錯誤相關的其他資訊之錯誤 資訊。在判斷方塊303,處理邏輯判斷錯誤資訊是否包括與 該錯誤相關的一差錯碼。如果判斷是肯定的,處理邏輯決 定(在處理方塊304中)下列表示式的數值(真或偽): EC AND MASK — MATCH ^ (1) 其中EC是差錯碼,AND是一二元布林邏輯運算子,是 一二元比較運算子,MASK是儲存在此處稱為一遮罩欄位的 一第一櫊位中的預先定義之資料,而MATCH是儲存在此處 稱為一符合欄位的一第二欄位中的預先定義之資料。 86318 -17· 1255402 每一遮罩和符合欄位的大小因對應的差錯碼之大小而 疋。在一些具體實施例中,遮罩和符合欄位的寬度與差錯 碼的大小相同。在其他具體實施例中,遮罩和符合欄位的 寬度可旎與差錯碼的大小不同。舉例來說,遮罩和符合欄 位可能比差錯碼更小,且可能只映射一些位元到表示式i 中〇 此外,在圖3說明的一具體實施例中,處理邏輯也使用一 重導向映射中一對應的控制位元,以對於是否要產生一 VM 出口進行一進一步判斷。重導向映射代表由VMM所維護的 一組控制位元,用以配置哪些虛擬化事件將引起一 VM出 口。查詢對應於虛擬化事件的控制位元引起目前的錯誤。 舉例來說,虛擬化事件可能是一分頁錯誤、一外部中斷、 或客用軟體對一除錯暫存器的存取,每一種在重導向映射 中有一相關的位元。在一具體實施例中,重導向映射包含 在圖1的VMCS 122中。在一具體實施例中,重導向映射是 VMCS 122中的一單一欄位。在其他具體實施例中,在VMcS 122中需要多重攔位以細分重導向映射。 如果在判斷方塊303進行的判斷是否定的(也就是,錯誤 資訊不包括與這個錯誤相關的一差錯碼)、或在判斷方塊 3〇4的處理邏輯判斷表示式1等式成立(也就是,差錯碼經由 —元AND運算子與儲存在遮罩欄位中的資料結合符合儲存 在符合欄位中的資料),那麼,在一具體實施例中,重導向 映射中對應控制位元的數值用來判斷是否要產生一 VM出 口(處理方塊306)。舉例來說,如果設定了控制位元,處理 86318 -18- 1255402 邏辑將產生一 VM出口(處理方塊313);否則,處理邏輯將遞 送錯誤給客用軟體(處理方塊312)。 如果表示式1中的等號不成立,處理邏輯反轉重導向位元 映射中控制位元的數值(處理方塊308),並使用此反轉的數 值來判斷是否要產生一 VM出口(處理方塊310)。如果設定了 反轉的數值,處理邏輯產生一VM出口(處理方塊314);否 則,錯誤向量化到客用軟體(處理方塊312)。在另一具體實 施例中,如果判斷方塊304中判斷等式不成立,處理邏輯可 使用控制位元的真實數值,而如果 等式成互處理邏輯可使用控制位元之反轉的數值。 在圖3的程序300中與控制位元一起使用遮罩和符合欄 位,可使用與IA-32 ISA分頁錯誤(在此處稱為一分頁錯誤差 錯碼或PFEC)相關的一差錯碼之各種數值為例說明。下列範 例假定如果表示式1中的等式不成立,存在控制位元的反轉 (如圖3所示)。 如上面所讨論,一 pFEC包括四個位元。為了要達到對 PFEC數值的所有可能組合所需要的結果,每一遮罩欄位、 符合欄位、和控制位元應該有一特定的設定。舉例來說, 為了在所有分頁錯誤上引起VM出口,控制位元可能設定成 1 ’遮罩搁位位元的數值將設定成0x0,而符合欄位的數值 將設疋成0x0。或者,為了得到相同的行為,控制位元可能 設足成〇 ’遮罩欄位設定成0x0而符合櫊位設定成OxF(應注 :¾有_多符合、遮罩和、控制位元數值設定提供相同的功 能)。在另一範例中,為了要在從監督器寫入到目前分頁所 86318 •19- 1255402 造成的分頁錯誤時引起VM出口,控制位元將設定成1,遮 罩攔位的數值將設定成〇xF,而符合欄位的數值將設定成 0x3。這些數值確保Vm出口將只在產生等於〇x3差錯碼的分 頁錯誤時發生。而在另一範例,為了要在起因於不存在分 頁、或違反保留的位元之分頁錯誤時引起VM出口,控制位 元將設定成0,遮罩欄位的數值將設定成0x9 (也就是,只有 位元0和3設定成1),而符合欄位的數值將設定成0x1。這將 在除了指示一目前分頁(也就是,位元〇設定成i)、且不達反 保留的位元(也就是,位元3清除為0)以外的所有分頁錯誤時 造成VM出口。 在另一具體貫施例(未顯示)中’不使用控制位元。也就 是,處理邏輯根據表示式1的結果判斷是否要轉換控制給 VMM (也就是,產生一 VM出口)。如果評估表示式丨中的等 式成立(也就是,差錯碼經由二元AND運算子與儲存在遮罩 欄位中的資料結合符合儲存在符合欄位中的資料),那麼滿 足控制轉移過濾標準,而與差錯碼相關的錯誤將由客用作 業系統處理。否則(也就是差錯碼經由AND運算子與儲存在 遮罩欄位中的資料結合不符合儲存在符合櫊位中的資 料),那麼未滿足控制轉移過濾標準,而產生一 VM出口以 轉移控制到VMM。 在圖3說明的具體實施例中使用之控制位元的反轉,增加 對差錯碼數值的各種組合達到所需要結果(也就是,一vm 出口結果或一無VM出口結果)的彈性。舉例來說,以下表 列說明對包含二個位元的差錯碼之數值的各種組人 ~"種 86318 -20- 1255402 需結果: _____^錯碼位元 所要的結果1 所要的結果2 0 ------- 0 出π 無出口 1 無出口 出口 1 ———~~~- 0 出π 無出口 1 1 出π 無出口 如果遮罩欄位位元的數值等於(丨”、符合欄位的數值等 於(0 1)、而控制位元等於0,圖3中說明的程序3〇〇之具體實 她例可達成所要的結果1。如果遮罩欄位位元的數值等於G 丄)、符合櫊位的數值等於(〇 1)、而控制位元設定成1,可達 成所要的結果2。 應孩注意的是所要的結果2不需要使用控制位元(也就 疋,所要的結果2只需要遮罩=(ι 1)和符合=(〇 J))。然而, 除非使用了控制位元的反轉、或在判斷是否要產生一 VM出 口的程序中涉及更多的欄位,否則無法達成所要的結果工。 使用四個指定的欄位以判斷是否要產生一 VM出口的控 制轉移過濾私序之具體實施例在圖4中說明。參照圖4,程 序400可能藉由處理可能包含硬體(例如,電路、專用邏輯、 可私式邏輯、微程式碼等)、軟體(例如在一般用途電腦系統 或專用機器上執行的軟體)、或兩者的組合之邏輯執行。 程序400由處理偵測客用軟體的運作期間之錯誤的發生 之邏輯開:L (處理方塊4〇丨)。在圖4說明的具體實施例中,它 假疋了所有的錯誤都產生差錯碼,處理邏輯在處理方塊 中接收差錯碼。接著,處理邏輯使用二元AND運算子結合 86318 -21- 1255402 差錯碼與儲存在一第一遮罩搁位中的資料(處理方塊404)、 和結合差錯碼與儲存在一第二遮罩欄位中的資料(處理方 塊406)。也就是,第一組合INT1=EC AND MASK1的結果和 第二組合INT2=EC AND MASK2的結果。 此外,在判斷方塊408,處理邏輯判斷第一組合INT1是否 符合儲存在一第一符合欄位(MATCH1)中的資料、或第二組 合INT2是否符合儲存在一第二符合欄位(MATCH2)中的資 料。如果發現有任何相符,處理邏輯產生一 VM出口(處理 方塊410)。或,如果未發現相符,錯誤引入到客用作業系 統(處理方塊409)。 控制轉移過濾標準可如圖5所說明,使用更複雜的算術或 布林邏輯及/或額外的欄位,以提供更大彈性的所要結果。 參照圖5,程序500可能藉由處理可能包含硬體(例如,電 路、專用邏輯、可程式邏輯、微程式碼等)、軟體(例如在一 般用途電腦系統或一專用機器上執行的軟體)、或兩者的組 合之邏輯執行。 程序500由由處理偵測客用軟體的運作期間之錯誤的發 生之邏輯開始(處理方塊501)。在處理方塊502,處理邏輯接 收錯誤資訊。如果,在處理方塊503判斷錯誤資訊包括一差 錯碼,處理邏輯使用二元AND運算子結合差錯碼與儲存在 一第一遮罩欄位中的資料(處理方塊504)、和結合差錯碼與 儲存在一第二遮罩欄位中的資料(處理方塊506)。也就是, 第一組合INT1=EC AND MASK1的結果和第二組合INT2=EC AND MASK2的結果。 86318 -22- 1255402 此外,在判斷方塊508,處理邏輯判斷在第一組合INT1 中是否設定了任何位元、或第二組合INT2是否符合儲存在 一符合欄位(MATCH)中的資料。在一具體實施例(未顯示在 圖5)中’如果任一判斷是肯定的,處理邏輯產生一 vM出 口。否則,錯誤引入到客用作業系統。 在另一具體貫施例(顯示在圖5)中,關於一 VM出口的判斷 進一步依據一重導向映射中的一對應控制位元而定。特別 地,如果在判斷方塊508進行的判斷是肯定的(或如果在判 斷方塊503進行的判斷是否定的,也就是,錯誤資訊不包括 一差錯碼),處理邏輯進一步在判斷方塊51〇判斷控制位元 是否敘述了一 VM出口(例如,控制位元設定成υ。如果控制 位元敘述了一 VM出口,處理邏輯產生VM出口(處理方塊 512)。如果控制位元未敘述—VM出口(例如,清除了控制位 元)’錯誤引入到客用作業系統(處理方塊5丨8)。 否則’如果在判斷方塊508進行的判斷是否定的,處理邏 輯反轉控制位元的數值(處理方塊514)。如果反轉的數值敘 述一 VM出口(判斷方塊516),處理邏輯產生VM出口(處理方 塊512)。如果反轉的數值未敘述一 VM出口,錯誤引入到客 用作業系統(處理方塊518)。 雖然在圖3_5中描述的那些具體實施例利用某些運算子 (也就是,二元AND、比較等),可對過濾標準使用各種運算 子而不失去一般性。除此之外,可使用除了在上面連同圖 3_5所討論以外的各種過濾標準來處理在客用軟體的運作 期間發生之錯誤。此外,在上面討論的額外資料數值可以 86318 -23 - 1255402 與過遽程序期間的錯誤相關之一差錯痛取代,或一起使用。 在一些具體實施例中,额外的過濾標準(在此處稱為錯誤 過濾標準)在控制轉移過濾標準之前應用於錯誤資訊。在其 他具體實施例中,錯誤過濾標準在控制轉移過濾標準之後 應用於錯誤資訊。而在其他具體實施例,應用錯誤過濾標 準而非控制轉移過濾標準於錯誤資訊。錯誤過濾標準用來 判斷是否可忽略在客用軟體的運作期間發生之一錯誤情 況。一錯誤情況代表如果允許運作完成通常將會引起錯誤 的一事件。此種錯誤情況的一範例是客用軟體嘗試窝入到 一分頁表架構中的一非可寫入分頁。在一些情形中,可忽 各錯决情況,因為在錯誤情況出現時的其他因素指示錯 誤情況將不會’舉例來說,損及VMM或其他虛擬機器的效 率、t全、或適當運作。此種情形的範例將連同圖7和8在 下面更詳細地說明。 /6是使用錯誤過滤標準和控制轉移過滤標準,以過爐錯 ^和由於錯誤而生的VM出口之程序_的具體實施例之流 =圖。該程序可藉由處理可能包含硬體(例如,電路、專用 =、可程^邏輯、微程式碼等)、軟體(例如在—般用途電 D或-專用機器上執行的軟體)、或兩者的组合之邏輯 作期間一錯誤情況的 心序600由處理债測客用軟 蝴處理方塊6G2)、並分析屬料錯誤情況的錯領 訊可能包括錯誤動 分頁表位址等 付、差錯碼、錯誤位址、要寫入的資料、 86318 -24- 1255402 接著,處理邏輯判斷錯誤資訊是否滿足錯誤過濾標準(判 斷方塊604)。錯誤過濾標準要求使用關於客用軟體的運作 之規則評估處理器狀態、記憶體狀態、及/或錯誤資訊的_ 或更多個要素。舉例來說,錯誤過濾標準可能要求比較客 用軟體嘗試寫到一記憶體位置的資料、與目前儲存在這個 記憶體位置中的資料。錯誤過濾標準可能要求處理器狀 態、記憶體狀態、及/或錯誤資訊的要素之一單一檢查,或 要求各種要素的多重檢查。錯誤過濾標準的複雜性可能因 特定錯誤情況、屬於錯誤情況的運作規則、IS A、VMM的 特性、應用程式、和其他因素而改變。可仿效的過遽標準 結合圖7和8在下面更詳細地討論。 如果滿足錯誤過濾標準,處理邏輯忽略錯誤情況並允許 客用軟體繼續進行,就像未發現錯誤情況一樣(處理方塊 608)。結果,修改了客用軟體啟始的運作之行為,以便不 管錯誤情況的發現而允許它完成。 如果未滿足錯誤過濾標準,處理邏輯使用控制轉移過濾 標Ϊ決定—適#的㈣來處輯誤(韻方塊61G)。如果錯 誤資訊滿足控制轉移過㈣準,那麼處理邏輯遞送錯誤給 客用軟體,並允許客用軟體處理錯誤(處理方塊612)。如果 錯誤資訊未滿足控制轉移過«準,那麼處《輯將控制 轉移到VMM(處理方塊614)。 在其他具體實施例中,如果去 _ J T如果禾滿足錯誤過濾標準,處理 远輯不使用控制轉務禍:虑^ 丁牙夕過濾铋準,且總是將控制轉移到 86318 25- 1255402 而在其他具體實施例中,處理邏輯首先使用控制轉移過 濾標準決定一適當的實體以處理錯誤。然後,如果適當的 實體是客用軟體,處理邏輯進一步判斷是否滿足錯誤過濾 標準。如果滿足錯誤過濾標準,允許客用軟體忽略錯誤情 況;如果未滿足錯誤過濾標準,錯誤如上所述遞送到客用 軟體。 下列討論假設如IA-32 ISA中的分頁表結構;然而,應該 注意在各種IS As中存在著類似的分頁表結構,且本發明不 限制於使用IA-32 ISA。此外,進行了各種簡化以幫助下列 討論。舉例來說,不包括實體位址擴充(PAE)和分頁大小擴 充(PSE)旗標的效應,未說明以環為基礎的保護機制,未測 試記憶體存取的對齊需求等。 如該項技藝中所熟知,IA-32 ISA中的分頁表由分頁目錄 項目(PDEs)和分頁表項目(PTEs)組成。每一 PDE和PTE包括 控制記憶體分頁的可存取性之各種位元欄位。舉例來說, ΠΡΠ位元標示分頁為存在(1)或不存在(0),’’R/W”位元指示分 頁是否是唯讀(〇)或可窝入和可讀取(1 ),’’U/Sn位元指示分頁 是否需要監督器權限,分頁框架號碼(PFN)包含邏輯分頁所 在的實體位址之一部分等。CR3是ISA中包含分頁目錄的基 底之實體位址(和額外旗標)的一控制暫存器。分頁目錄基底 實體位址等於CR3 [31:12]<<12 (也就是,分頁目錄基底位址 的較低12個位元是0,而較高的20個位元位於CR3的較高20 個位元)。
為了防止一虚擬機器中的錯誤或惡意程式碼損壞VMM 86318 -26- 1255402 或另一虛擬機器中程式碼執行,限制客用軟體對潛在的實 體機器之實體記憶體資源的存取是必需的。在提供了分別 由客用作業系統與VMM管理的獨立分頁表架構的一些架 構中,用以限制客用軟體對實體記憶體資源的存取之一種 方式包括客用分頁表架構的VMM修改許可,以防止客用軟 體對保護的分頁(例如,屬於VMM或其他VMs的分頁)之讀 取或寫入運作。此外,修改了客用分頁表以防止對儲存客 用分頁表屬於VM的一些分頁的寫入運作。一旦完成這些許 可修改,客用軟體嘗試改變分頁表將引起VMM可經由VM 出口觀察到的分頁錯誤事件。VMM可檢查所嘗試的存取, 並決定要採取的適當動作。舉例而言,它可能允許、不許、 或修改所嘗試的存取。舉例來說,可能不允許客用軟體映 射一屬於VMM或另一 VM的實體分頁。當時常發生客用軟體 對分頁表的修改時,與退出到VMM以分開每一嘗試的客用 分頁表改變相關的經常成本可能增加一可觀的執行負擔。 為了要簡化分頁表的管理,一些作業系統,例如微軟公 司的視窗XP,使用一循環的分頁目錄。換句話說,一分頁 目錄項目(PDE)將設定成參考分頁目錄頁為一分頁表頁。這 種相同分頁當成一分頁目錄和一分頁表的使用,造成所有 的分頁表頁在線性位址空間的4MB區域中可透過自我參考 的PDE存取。使用自我參考的PDE,可計算用來映射任何特 定線性位址之PTE或PDE的線性位址。在使用一自我參考的 PDE之作業系統中,典型的分頁表編輯是透過此自我映射 的區域完成的(也就是,對分頁表的編輯經由使用自我映射 86318 -27- 1255402 的PDE落在4MB區域中的線性位址窝入到記憶體完成)。不 使用此自我映射的PDE的分頁表之編輯數目上很少。 其中一共同的分頁用作分頁目錄頁和分頁表頁兩者的分 頁表,在此處稱為一自我映射分頁表。對熟知該項技藝人 士將是顯而易見的,本發明也適用於其中分頁表項目以一 種組織的方式映射到線性位址的其他方式,不論這樣的映 射是一分頁表架構中在多重層次的結構之再使用、或透過 作業系統協定的結果。 在本發明一具體實施例中,使用一種過濾機制來識別不 需要到VMM的一出口之頁映射編輯。在這個具體實施例 中,過濾標準的额外欄位加入到VMCS。 在一具體實施例中,客用作業系統所用的分頁表是自我 映射的,也就是,分頁表架構的其中一分頁目錄項目(PDEs) 指回到分頁目錄(PD)頁的基底。如上面所討論,自我映射 的分頁表之概念在該項技藝中廣為所知,且為,例如微軟 公司的視窗XP之作業系統所使用。在一具體實施例中,藉 叫 由確保分頁目錄的基底(在此處稱為PTBASE)之線性位址滿 足一組條件支援自我映射。該組條件可確認PTBASE數值是 一 4-MB對齊的,也就是PTBASE [21:0]=二0,且分頁表包含 適當的自我映射項目,也就是,在位置((CR3 [31:12]<<12) + (PTBASE [31:22]<<2))的項目中之PFN等於CR3 [31:12]。在 一具體實施例中,PTBASE數值如下所述儲存在VMCS中, 以由過濾機制使用。 假設使用一自我映射的分頁表,它可能決定了是否有任 86318 -28- 1255402 何特定位址落在分頁表(也就是,是否ADDR [31··22]二= PTBASE [31:22],其中ADDR是所存取的位址)當中。此夕卜, 它可能決定了位址是否是在一 PDE (也就是,如果位址在分 頁表中且ADDR [21:12] — PTBASE [31:22])或 ΡΤΕ (也就 是,如果位址在分頁表中且不在一 PDE中)當中。 圖7和8說明使用錯誤過濾標準以過濾分頁錯誤的程序之 二個可仿效具體實施例。該程序可藉由處理可能包含硬體 (例如,電路、專用邏輯、可程式邏輯、微程式碼等)、軟體 (例如在一般用途電腦系統或一專用機器上執行的軟體)、或 兩者的組合之邏輯執行。在圖7和8說明的具體實施例中, VMM藉由確保映射分頁表本身的客用分頁表項目(客用 PTE)有唯讀存取保護實體記憶體。結果,當客用軟體嘗試 改變分頁表項目時,發生一分頁錯誤情況。雖然使用利用 自我映射的分頁表之客用作業系統提供較大效率改良,但 這些具體實施例可如上所述與利用自我映射的分頁表之客 用作業系統一起使用,或與未使用此分頁表結構的客用作 業系統一起使用。 在圖7顯示的具體實施例中,說明了如果客用作業系統未 嘗試設定’’P’’位元為1,允許完成對一PTE的一寫入而不遞送 一錯誤或引起一 VM出口,而仍然保護實體記憶體空間並避 免給客用軟體對分頁表的完全控制之錯誤過濾標準的集 合。此規則的理論根據是標示為不存在(也就是,ΠΡΠ位元等 於0)的一 ΡΤΕ不能夠映射一實體記憶體分頁。因此,客用軟 體所改變的ΡΤΕ不能夠映射一實體記憶體分頁,而同樣不能 86318 »29- 1255402 夠干擾VMM或在另一 VM中執行的軟體之運作。因此不需要 通知VMM分頁表修改,且將允許分頁表寫入進行而不引起 一分頁錯誤或VM出口。 參照圖7,處理邏輯由偵測客用軟體的運作期間之一分頁 錯誤情況(處理方塊702)並接收與分頁錯誤情況相關的分頁 錯誤資訊(處理方塊704)開始。 接著,一組錯誤過濾標準應用於分頁錯誤資訊。特別地, 處理邏輯判斷錯誤存取是否是對一 PTE (判斷方塊708)的一 窝入運作(判斷方塊706),而不是嘗試設定”P’位元為1(也就 是,DATA.P == 0,其中DATA是客用軟體嘗試要寫入的數 值)(判斷方塊710)。如果這些判斷是肯定的,允許客用作業 系統的存取完成(也就是,允許窝入修改記憶體)而不引起一 錯誤或VM出口(處理方塊714)。如果在處理方塊706、708、 和710中任何一判斷是否定的,控制轉移到處理方塊712, 以判斷是否要產生一 VM出口、或錯誤要向量化到客用軟 體,如結合圖2-5所更詳細地說明的。 在另一具體實施例(未顯示在圖形中),可能去掉對一PTE 窝入必須有的資格,或以例如只要未設定存在位元就允許 對一 PTE或一 PDE的寫入之測試代替。 參照圖8,說明了一更複雜的錯誤過濾標準集合,其包括 上面連同圖7描述的錯誤過濾標準和一些额外標準。這組錯 誤過濾標準允許客用作業系統修改PTE中除了 PFN、讀取/ 寫入、和存在以外的位元,而不需要一分頁錯誤或引起一 VM出口。額外地允許讀取/寫入、和存在位元的某些修改 86318 -30- 1255402 而不需要一分頁錯誤或引起一 VM出口。 處理邏輯由偵測客用軟體的運作期間之一分頁錯誤情況 (處理方塊802)並接收與分頁錯誤情況相關的分頁錯誤資訊 (處理方塊804)開始。接著,處理邏輯判斷錯誤存取是否是 對一 PTE (判斷方塊808)的一寫入運作(判斷方塊806),而不 是嘗試設定”P’位元為1 (也就是,DATA.P ==0)(判斷方塊810) 。如果這些判斷都是肯定的,允許客用作業系統的存取完 成(也就是,允許窝入修改記憶體)而不引起一錯誤或VM出 口(處理方塊814)。如果在處理方塊806或808中的判斷是否 定的,控制進行到處理方塊812,以判斷是否需要一 VM出 口,如參照圖2-5所說明。 如果在處理方塊810的判斷是否定的,應用那些额外的錯 誤過濾規則。特別地,處理邏輯判斷在PTE中PTE是否已標 示為存在(也就是ADDR->P == 1,其中ADDR是客用軟體嘗 試寫入的位址,而ADDR->P代表記憶體中位於ADDR的資料 是否解譯為一 PTE的P位元)(判斷方塊816),PFN是否未改變 (也就是ADDR->PFN == DATA.PFN)(判斷方塊818),和客用 軟體是否嘗試標示PTE所映射的分頁為唯讀(DATA.R/W == 0)、或PTE所映射的分頁在記憶體中(ADDR->R/W == 1)是否 已在PTE標示為可寫入(判斷方塊820)。如果這些判斷是肯 定的,允許客用作業系統的存取完成(也就是,允許寫入修 改記憶體)而不引起一錯誤或VM出口(處理方塊814)。如果 在處理方塊816、818、和810中任何一判斷是否定的,控制 轉移到處理方塊812以判斷是否需要一 VM出口。 86318 -31 · I255402 應該注意在圖7和8中描述的過濾機制將過濾出使用如上 面描述之自我映射的PDE嘗試修改分頁表的存取。未使用 自我映射的PDE嘗試修改分頁表將不會被錯誤過濾標準過 遽出來(也就是’在方塊708和808中寫入是否是對一 PTE的 判斷將失敗)。然後控制轉移過濾標準將如圖2-5所描述用來 判斷是否需要一 VM出口。由於VMM將能夠判斷是否實際編 輯了一 PTE,所以從一安全性或者正確運作的立場這不會造 成問題。控制轉移過濾機制將配置成在所有的寫入分頁錯 疾時引起VM出口,並評估位址和寫入的資料以判斷是否嘗 試了一分頁表編輯。 可使用除了上面參照圖7和8所描述的以外之各種錯誤過 遽標準來過濾錯誤而不損失一般性。過濾的形式可由各種 VMM控制的欄位(舉例來說PTBASE)控制,在一具體實施例 中可存在於VMCS中◊或者,過濾可由一單一致能位元(可 能硬編碼到一處理器實施等)控制。 圖9是用以定義控制轉移過濾標準及/或錯誤過濾標準的 程序900之具體實施例的方塊圖。程序9〇〇可手動地或自動 地執行。 參照圖9,程序900由識別哪一錯誤資訊的組合(舉例來說 差錯碼數值、錯誤識別符等)不需要轉變到VMM或,替代 地,應該忽略錯誤而允許其完成(處理方塊9〇2)開始。然後, 識別可用作VM出口及/或錯誤過濾標準的最大數目欄位和 攔位的語意(處理方塊904),並識別可用的運算子(舉例來說 布林、算術等)(處理方塊906)。此外,根據在處理方塊 86318 -32- 1255402 9〇2·906所識別的資訊,產生過濾標準(處理方塊908)。過濾 標準可能包括一或更多個預先定義的數值、和一或更多個 布林邏輯、及/或要對預先定義的數值和差錯碼執行的算術 運作。 至此,已描述了用以處理在客用軟體的運作期間發生的 錯誤之一種方法和裝置。應該了解上述說明的目的是說明 而非限制。在閱讀和了解上述說明時,許多其他具體實施 例對熟知該項技藝人士將是顯而易見的。因此,本發明的 範疇應該參照所附的申請專利範圍、以及賦予此等申請專 利範圍的等效物之權利的完整範疇決定。 【圖式簡單說明】 本發明以附圖中圖形的範例之方式、而不以限制的方式 說明,且其中相同的參考數字指示相似的元件: 圖1說明其中可執行本發明的一虛擬機器環境之一具體 實施例; 圖2是使用控制轉移過濾標準以過濾由於錯誤而發生的 VM出口之程序的一具體實施例之流程圖; 圖3-5說明使用控制轉移過濾標準以過濾由於錯誤而發 生的VM出口之程序的一例示具體實施例; 圖6是使用錯誤過濾標準和控制轉移過濾標準,以過濾錯 誤和由於錯誤而發生的VM出口之程序的一具體實施例之 流程圖; 圖7-8說明使用錯誤過濾標準以過濾錯誤的程序之例示 具體實施例;和 86318 -33 - 1255402 圖9是用以定義錯誤過濾標準和控制轉移過濾標準的程 序之一具體實施例的流程圖。 【圖式代表符號說明】 100 虚擬機器環境 102 虚擬機器概念 103 客用軟體 104 作業系統 106 作業系統 108 應用程式 110 應用程式 112 虚擬機器監視器(VMM) 114 虛擬機器概念 115 客用軟體 116 單獨的平台硬體 118 處理器 120 記憶體 122 虛擬機器控制結構 86318 -34 -

Claims (1)

  1. Η 替換頁 I2554^)22ii7666號專利申請案 中文申凊專利摩色圍替換本('^4年9月、 拾、申請專利範圍: 1· 一種用以處理與客用軟體的運你士扣 ,Α 連作有關之一錯誤之方法, 包含: 關之錯誤資 接收與各用軟體的一運作 逆1下相關的一錯誤有 訊; 判斷該錯誤資訊是否滿足至少—錯誤過滤標準; 如果該錯誤資訊滿足至少—錯誤過滤標準,引起客用 軟體忽視該錯誤;和 一錯誤過濾標準時則遞送 如果錯誤資訊未滿足該至少 該錯誤到客用軟體。 2·如申請專利範圍第1項之方法,進一步包含·· 判斷錯誤資訊未滿足至少—錯誤過遽標準;和 判斷!曰决貝訊疋否滿足至少一控制轉移過濾標準。 3·如申請專利範圍第2項之方法,進一步包含·· 如果錯誤資訊滿足至少一控制轉移過滤標準,遞送該 錯誤到客用軟體。 4. 如申請專利範圍第2項之方法,進一步包含: 如果錯誤資訊未滿足至少一控制轉移過濾標準’轉移 控制到一虛擬機器監測器。 5. 如申請專利範圍第丨項之方法,其中該錯誤資訊是一錯誤 識別符、與該錯誤相關的一差錯碼、和與該錯誤相關的 一或更多個額外的資料數值中之至少一種。 6·如申請專利範圍第1項之方法,其中該錯誤代表一中斷、 一例外、和一平台事件中之任何一個。 1255402 G :: 7.如申請專利範圍第1項之方法,其中判斷錯誤資訊是否滿 足至少一錯誤過濾標準包含: 判斷客用軟體的運作是否是對一分頁表項目的一寫 入!和 判斷該寫入是否是標示由分頁表項目所映射的一分頁 為不存在的一嘗試。 8·如申請專利範圍第1項之方法,其中判斷錯誤資訊是否滿 足至少一錯誤過濾標準進一步包含: 判斷客用軟體的運作是否是對一分頁表項目的一寫 入; 判斷該寫入是否是標示由分頁表項目所映射的一分頁 為存在的一嘗試; 判斷由分頁表項目所映射的分頁是否先前標示為存 在; 判斷該寫入是否不是修改一分頁框架號碼的一嘗試; 和 判畊是否發生一組情況中之至少—情況,該組情況包 括:要求窝入是標示由分頁表項目所映射的分頁為唯讀 的-嘗試之-第_情況’和要求分買表項目所映射的分 買先前就已經是可窝入之第二情況。 一種用以處理與客用軟體的運 ^、、丄 二入 咬$百闕之一錯誤之万法, 包含·_ 一錯誤情況之發生; 是否滿足至少一錯誤 偵測與客用軟體的一運作相關的 判斷屬於該錯誤情況的錯誤資訊 86318-940921.doc 102 ^慮H談判斷包含將與客用軟體的運作有關的資科 儲存於記憶體及處理器暫存器中至少一者的資料予以 比較;和 〇根據評估判斷是否允許客用軟體忽視錯誤情況。 申叫專利範圍第9項之方法,其中錯誤資訊是一錯誤識 付、與孩錯誤相關的一差錯碼、和與該錯誤相關的/ 或更多個額外的資料數值中之至少一種。 申w專利範圍第9項之方法,其中錯誤情況與客用軟體 存取記憶體的一嘗試有關。 如申明專利範圍第9項之方法,其中判斷錯誤資訊是否滿 足至少一錯誤過濾標準包含: 判斷客用軟體的運作是否是對一分頁表項目的一寫 入;和 判斷孩寫入是否是標示由分頁表項目所映射的/分頁 為不存在的一嘗試。 3·如申請專利範圍第9項之方法,其中判斷錯誤資訊是否滿 足至少一錯誤過濾標準進一步包含: 判斷客用軟體的運作是否是對一分頁表項目的一寫 入; 判斷該寫入是否是標示由分頁表項目所映射的,分頁 為存在的一嘗試; 判斷由分頁表項目所映射的分頁是否先前標系為存 在; 判斷該寫入是否不是修改/分頁框架號碼的一嘗試,和 86318-940921.doc 1255402 判斷是否發生一組情況中之至少一情況,該組情ί兄包 括·要求寫入是標示由分頁表項目所映射的分頁為唯讀 的一嘗試之一第一情況,和要求分頁表項目所映射的分 頁先前就已經是可寫入之第二情況。 14·—種用以處理與客用軟體的運作有關之一錯誤之系統, 包含: 其中儲存有客用軟體的一記憶體;和 一處理器,連接到記憶體,用以執行客用軟體;用以 判断與客用軟體之一運作相關的一錯誤有關的錯誤資訊 是否滿足至少一錯誤過濾標準;如果錯誤資訊滿足該呈 少一錯誤過濾標準則促使該客用軟體忽視該錯誤;用以 判斷錯疾資訊未滿足該至少一錯誤過濾標準,和用以遞 送該錯誤到客用軟體。 15·如申請專利範圍第η項之㈣,其中處理器進一步用以 判斷錯誤資訊未滿足至少—錯誤過滤標準,和用以判斷 錯誤資訊是否滿足至少一控制轉移過濾標準。 16.如申請專利範圍第15項之系統,其中如果錯誤資訊滿足 至少-控制轉移過滤標準’處理器進一步用來遞送錯誤 到客用軟體。 17. 18· 如申請專利範圍第1 5項之系 足至少一控制轉移過濾標準 制到一虛擬機器監視器。 一種用以處理與客用軟體的 包含: 統’其中如果錯誤資訊未滿 ’處理器進一步用來轉移控 運作有關之一錯誤之系統, 86318-940921.doc -4- .4: 1255402 其中儲存有客用軟體的—記憶:體;和 一處理器’連接到記情骨垂 U把用以執行客用軟體;用以 偵測與客用軟體的一運 建作相關的一錯誤情況之發生,·用 以判斷屬於該錯誤情況的錯 J 9次貝訊疋否滿足至少一錯誤 過遽標準,該判斷包含將與客 谷用#人肢的運作有關的資料 和儲存於記憶體及處理器暫存 W %存态中至少一者的資料予以 比較’·和根據評估判斷是否分耸史 研疋口允沣客用軟體忽視該錯誤情 況。 I9·如申請專利範圍第18項 ., 財甘…頁〈系統’其中錯誤情況與客用軟 月a存取§己憶體的一嘗試有關。 20.如申請專利範圍第i 8項 /、系、况其中處理器藉由判斷客 用軟體的運作是;v 、 ⑴f疋口疋對一分頁表項目的一寫入、和判斷 7罵入是否是標示由分頁表項目所映射的—分頁為不存 :的-嘗試’判斷錯誤資訊是否滿足至少—錯誤過滤標 21·:種:腦可讀取媒體’含有當由-處理系統執行時可促 使孩處理系統執行—方法的指令,該方法包含: 接收與客用軟體的一 ^ 、 遇1卞稍關的一錯祆有關之錯誤資 訊; 判斷I决貝訊是否滿足該至少一錯誤過遽標準;和 如果錯决資訊滿足至少一錯誤過滤標準 體忽視該錯誤; 1文备 判斷4决貝訊未滿足該至少_錯誤過滤標準;和 遞送該錯誤到客用軟體。 86318-940921.doc 1255402 22. 23. 如申凊專利範圍第21項之+ ± 進一步包含: 包細可頡取媒體,其中該方法 判斷錯誤資訊未滿足至少一錯誤過滤標準,·和 判斷錯誤資訊是否滿足至少一控制轉移過爐標準。 -種電腦可讀取媒體,包含當由一處理系統執行時可促 使該處理系統執行一方法的指令,該方法包含: 偵測與客用軟體的一運作相關的一錯誤情況之發生; 判斷與該錯誤情況有關的錯誤資訊是否滿足至少一錯 誤過濾標準,該判斷包含將與客用軟體的運作有關的資 料和儲存於記憶體及處理器暫存器中至少一者的資料予 以比較;和 根據評估判斷是否允許客用軟體忽視該錯誤情況。 24·如申請專利範圍第23項之電腦可讀取媒體,其中錯誤情 況與客用軟體存取記憶體的一嘗試有關。 86318-940921.doc
TW092117666A 2002-06-29 2003-06-27 Method, system and machine-readable medium for handling faults associated with operation of guest software in the virtual-machine architecture TWI255402B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/184,798 US6996748B2 (en) 2002-06-29 2002-06-29 Handling faults associated with operation of guest software in the virtual-machine architecture

Publications (2)

Publication Number Publication Date
TW200408939A TW200408939A (en) 2004-06-01
TWI255402B true TWI255402B (en) 2006-05-21

Family

ID=29779461

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092117666A TWI255402B (en) 2002-06-29 2003-06-27 Method, system and machine-readable medium for handling faults associated with operation of guest software in the virtual-machine architecture

Country Status (7)

Country Link
US (1) US6996748B2 (zh)
EP (1) EP1518168B1 (zh)
KR (1) KR100708356B1 (zh)
CN (1) CN100468324C (zh)
AU (1) AU2003245543A1 (zh)
TW (1) TWI255402B (zh)
WO (1) WO2004003745A2 (zh)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7473715B2 (en) * 2001-05-02 2009-01-06 Zephyros, Inc. Two component (epoxy/amine) structural foam-in-place material
US7763663B2 (en) * 2001-12-19 2010-07-27 University Of Massachusetts Polysaccharide-containing block copolymer particles and uses thereof
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7199165B2 (en) * 2003-06-26 2007-04-03 L & L Products, Inc. Expandable material
EP1639462B1 (en) * 2003-06-27 2022-05-11 Oracle America, Inc. Hybrid system implementing distinct and co-existing application execution environments and methods for implementing the same
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US20050159531A1 (en) * 2004-01-20 2005-07-21 L&L Products, Inc. Adhesive material and use therefor
US7437613B2 (en) * 2004-01-30 2008-10-14 Intel Corporation Protecting an operating system kernel from third party drivers
US7802085B2 (en) * 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US20050241756A1 (en) * 2004-04-28 2005-11-03 L&L Products, Inc. Adhesive material and structures formed therewith
US8156490B2 (en) 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US7490070B2 (en) * 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
US7937525B2 (en) * 2004-06-25 2011-05-03 Intel Corporation Method and apparatus for decoding a virtual machine control structure identification
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7886293B2 (en) * 2004-07-07 2011-02-08 Intel Corporation Optimizing system behavior in a virtual machine environment
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US20060107121A1 (en) * 2004-10-25 2006-05-18 International Business Machines Corporation Method of speeding up regression testing using prior known failures to filter current new failures when compared to known good results
US8146078B2 (en) * 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US7757231B2 (en) * 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US8214830B2 (en) * 2005-01-19 2012-07-03 Intel Corporation Performance in a virtualization architecture with a processor abstraction layer
US7647589B1 (en) 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US20060224815A1 (en) * 2005-03-30 2006-10-05 Koichi Yamada Virtualizing memory management unit resources
US7392172B2 (en) * 2005-04-28 2008-06-24 Hewlett-Packard Development Company, L.P. Providing virtual device access via firmware
US8849968B2 (en) * 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US7711914B2 (en) * 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints
JP5368793B2 (ja) 2005-07-18 2013-12-18 ユニバーシティ オブ マサチューセッツ ロウエル ナノエマルジョンを製造および使用するための組成物および方法
US9785485B2 (en) 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
TR201901443T4 (tr) 2005-12-01 2019-02-21 Univ Massachusetts Lowell Botulinum nanoemülsiyonları.
US9486408B2 (en) 2005-12-01 2016-11-08 University Of Massachusetts Lowell Botulinum nanoemulsions
US8286162B2 (en) * 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US7596654B1 (en) * 2006-01-26 2009-09-29 Symantec Operating Corporation Virtual machine spanning multiple computers
US7702743B1 (en) 2006-01-26 2010-04-20 Symantec Operating Corporation Supporting a weak ordering memory model for a virtual physical address space that spans multiple nodes
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
BRPI0719732A2 (pt) 2006-12-01 2017-05-16 Anterios Inc nanopartículas de peptídeo e usos para as mesmas
EP2494958A1 (en) * 2006-12-01 2012-09-05 Anterios, Inc. Amphiphilic Entity Nanoparticles
US8789063B2 (en) * 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
CN101295265A (zh) * 2007-04-25 2008-10-29 国际商业机器公司 全系统isa仿真系统及其识别进程的方法
US9223600B1 (en) 2007-05-07 2015-12-29 Hewlett Packard Enterprise Development Lp In-processor dynamic address redirection table for substituting instruction strings
ES2660906T3 (es) 2007-05-31 2018-03-26 Anterios, Inc. Nanopartículas de ácido nucleico y usos de las mismas
JP4897578B2 (ja) * 2007-06-06 2012-03-14 株式会社日立製作所 仮想計算機の制御プログラムおよび仮想計算機システム
US7747899B2 (en) 2007-06-26 2010-06-29 Microsoft Corporation Providing mapping fault processing
US8566780B2 (en) 2007-06-26 2013-10-22 Microsoft Corporation Object model based mapping
US8078827B2 (en) * 2007-07-05 2011-12-13 International Business Machines Corporation Method and apparatus for caching of page translations for virtual machines
US8032897B2 (en) * 2007-07-31 2011-10-04 Globalfoundries Inc. Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization
US8510756B1 (en) * 2007-12-06 2013-08-13 Parallels IP Holdings GmbH Guest operating system code optimization for virtual machine
US7779305B2 (en) * 2007-12-28 2010-08-17 Intel Corporation Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions
WO2009158687A1 (en) * 2008-06-26 2009-12-30 Anterios, Inc. Dermal delivery
US8381032B2 (en) * 2008-08-06 2013-02-19 O'shantel Software L.L.C. System-directed checkpointing implementation using a hypervisor layer
US7827321B2 (en) 2008-10-02 2010-11-02 International Business Machines Corporation Central processing unit measurement facility
US9449314B2 (en) 2008-10-02 2016-09-20 International Business Machines Corporation Virtualization of a central processing unit measurement facility
US8341505B2 (en) * 2009-05-08 2012-12-25 Oracle America, Inc. Enforcing network bandwidth partitioning for virtual execution environments with direct access to network hardware
US8499304B2 (en) * 2009-12-15 2013-07-30 At&T Mobility Ii Llc Multiple mode mobile device
US8468600B1 (en) * 2011-03-04 2013-06-18 Adobe Systems Incorporated Handling instruction received from a sandboxed thread of execution
US8713378B2 (en) * 2011-07-07 2014-04-29 Microsoft Corporation Health monitoring of applications in a guest partition
CN102902599B (zh) 2012-09-17 2016-08-24 华为技术有限公司 虚拟机内部故障处理方法、装置及系统
US9350632B2 (en) 2013-09-23 2016-05-24 Intel Corporation Detection and handling of virtual network appliance failures
US9274823B1 (en) * 2014-12-24 2016-03-01 Parallels IP Holdings GmbH Thin hypervisor for native execution of unsafe code
CN104680067B (zh) * 2015-02-15 2017-12-19 安一恒通(北京)科技有限公司 文件的检测方法及装置
CN105095007A (zh) * 2015-08-21 2015-11-25 上海联影医疗科技有限公司 硬件设备错误的处理方法及系统
EP3153971B1 (en) * 2015-10-08 2018-05-23 Huawei Technologies Co., Ltd. A data processing apparatus and a method of operating a data processing apparatus
US10963280B2 (en) 2016-02-03 2021-03-30 Advanced Micro Devices, Inc. Hypervisor post-write notification of control and debug register updates
KR102487144B1 (ko) 2016-11-21 2023-01-12 에이리온 테라퓨틱스, 인코포레이티드 큰 물질의 경피 전달
US11347869B2 (en) * 2019-03-08 2022-05-31 International Business Machines Corporation Secure interface control high-level page management
US11403409B2 (en) * 2019-03-08 2022-08-02 International Business Machines Corporation Program interruptions for page importing/exporting
US11206128B2 (en) 2019-03-08 2021-12-21 International Business Machines Corporation Secure paging with page change detection

Family Cites Families (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699532A (en) * 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
JPS50117336A (zh) * 1973-11-30 1975-09-13
US3996449A (en) * 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) * 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
US4037214A (en) 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4247905A (en) * 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPS5823570B2 (ja) * 1978-11-30 1983-05-16 国産電機株式会社 液面検出装置
JPS5576447A (en) * 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4319323A (en) * 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4419724A (en) * 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
DE3034581A1 (de) * 1980-09-13 1982-04-22 Robert Bosch Gmbh, 7000 Stuttgart Auslesesicherung bei einchip-mikroprozessoren
JPS58140862A (ja) * 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
US4521852A (en) * 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
JPS59111561A (ja) * 1982-12-17 1984-06-27 Hitachi Ltd 複合プロセツサ・システムのアクセス制御方式
US4759064A (en) * 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
DE3689287T2 (de) * 1985-02-18 1994-05-26 Nec Corp Datenverarbeitungsgerät.
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
JPS61206043A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd 仮想計算機システムにおける割込制御方法
FR2592510B1 (fr) * 1985-12-31 1988-02-12 Bull Cp8 Procede et appareil pour certifier des services obtenus a l'aide d'un support portatif tel qu'une carte a memoire
FR2601535B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Procede pour certifier l'authenticite d'une donnee echangee entre deux dispositifs connectes en local ou a distance par une ligne de transmission
FR2601476B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Procede pour authentifier une donnee d'habilitation externe par un objet portatif tel qu'une carte a memoire
FR2601525B1 (fr) * 1986-07-11 1988-10-21 Bull Cp8 Dispositif de securite interdisant le fonctionnement d'un ensemble electronique apres une premiere coupure de son alimentation electrique
FR2618002B1 (fr) * 1987-07-10 1991-07-05 Schlumberger Ind Sa Procede et systeme d'authentification de cartes a memoire electronique
US5007082A (en) * 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5079737A (en) 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5434999A (en) 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
FR2640798B1 (fr) 1988-12-20 1993-01-08 Bull Cp8 Dispositif de traitement de donnees comportant une memoire non volatile electriquement effacable et reprogrammable
JPH02171934A (ja) * 1988-12-26 1990-07-03 Hitachi Ltd 仮想計算機システム
JPH02208740A (ja) * 1989-02-09 1990-08-20 Fujitsu Ltd 仮想計算機制御方式
US5442645A (en) 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JP2590267B2 (ja) 1989-06-30 1997-03-12 株式会社日立製作所 仮想計算機における表示制御方式
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
JP2825550B2 (ja) * 1989-09-21 1998-11-18 株式会社日立製作所 多重仮想空間アドレス制御方法および計算機システム
CA2010591C (en) 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
CA2027799A1 (en) 1989-11-03 1991-05-04 David A. Miller Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5075842A (en) * 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
US5108590A (en) 1990-09-12 1992-04-28 Disanto Dennis Water dispenser
US5230069A (en) * 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
US5317705A (en) 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
US5437033A (en) 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5255379A (en) 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5453003A (en) 1991-01-09 1995-09-26 Pfefferle; William C. Catalytic method
US5319760A (en) 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5455909A (en) * 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
JPH06236284A (ja) 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
US5627987A (en) 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5574936A (en) * 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
US5486529A (en) 1992-04-16 1996-01-23 Zeneca Limited Certain pyridyl ketones for treating diseases involving leukocyte elastase
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5237616A (en) * 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5293424A (en) 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5796835A (en) 1992-10-27 1998-08-18 Bull Cp8 Method and system for writing information in a data carrier making it possible to later certify the originality of this information
JP2765411B2 (ja) 1992-11-30 1998-06-18 株式会社日立製作所 仮想計算機方式
US5668971A (en) * 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US5483656A (en) * 1993-01-14 1996-01-09 Apple Computer, Inc. System for managing power consumption of devices coupled to a common bus
US5469557A (en) * 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
FR2704341B1 (fr) 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
JPH06348867A (ja) 1993-06-04 1994-12-22 Hitachi Ltd マイクロコンピュータ
FR2706210B1 (fr) 1993-06-08 1995-07-21 Bull Cp8 Procédé d'authentification d'un objet portatif par un terminal hors ligne, objet portatif et terminal correspondants.
US5555385A (en) * 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5825880A (en) * 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
US5459869A (en) 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5604805A (en) * 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
FR2717286B1 (fr) 1994-03-09 1996-04-05 Bull Cp8 Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l'accès à un service ou à un lieu, et support correspondant.
US5684881A (en) 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
JPH0883211A (ja) * 1994-09-12 1996-03-26 Mitsubishi Electric Corp データ処理装置
EP0706275B1 (en) * 1994-09-15 2006-01-25 International Business Machines Corporation System and method for secure storage and distribution of data using digital signatures
FR2725537B1 (fr) 1994-10-11 1996-11-22 Bull Cp8 Procede de chargement d'une zone memoire protegee d'un dispositif de traitement de l'information et dispositif associe
US5606617A (en) 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US5560013A (en) * 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5555414A (en) * 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
US5615263A (en) 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
FR2731536B1 (fr) 1995-03-10 1997-04-18 Schlumberger Ind Sa Procede d'inscription securisee d'informations dans un support portable
US5717903A (en) 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
JP3451595B2 (ja) 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5684948A (en) * 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5633929A (en) * 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US5737760A (en) 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
JP3693721B2 (ja) 1995-11-10 2005-09-07 Necエレクトロニクス株式会社 フラッシュメモリ内蔵マイクロコンピュータ及びそのテスト方法
US5657445A (en) 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5835594A (en) 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5809546A (en) * 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
US5729760A (en) 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5740178A (en) * 1996-08-29 1998-04-14 Lucent Technologies Inc. Software for controlling a reliable backup memory
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5935242A (en) * 1996-10-28 1999-08-10 Sun Microsystems, Inc. Method and apparatus for initializing a device
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US5901225A (en) 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
JP4000654B2 (ja) * 1997-02-27 2007-10-31 セイコーエプソン株式会社 半導体装置及び電子機器
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6035374A (en) * 1997-06-25 2000-03-07 Sun Microsystems, Inc. Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency
US5978475A (en) * 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
US5935247A (en) * 1997-09-18 1999-08-10 Geneticware Co., Ltd. Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same
US6108644A (en) * 1998-02-19 2000-08-22 At&T Corp. System and method for electronic transactions
US6131166A (en) * 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6282650B1 (en) * 1999-01-25 2001-08-28 Intel Corporation Secure public digital watermark
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6560627B1 (en) * 1999-01-28 2003-05-06 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US6188257B1 (en) * 1999-02-01 2001-02-13 Vlsi Technology, Inc. Power-on-reset logic with secure power down capability
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6615278B1 (en) * 1999-03-29 2003-09-02 International Business Machines Corporation Cross-platform program, system, and method having a global registry object for mapping registry equivalent functions in an OS/2 operating system environment
US6684326B1 (en) * 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6275933B1 (en) * 1999-04-30 2001-08-14 3Com Corporation Security system for a computerized apparatus
US6529909B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
JP3710671B2 (ja) * 2000-03-14 2005-10-26 シャープ株式会社 1チップマイクロコンピュータ及びそれを用いたicカード、並びに1チップマイクロコンピュータのアクセス制御方法
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
GB0020416D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Trusted system
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
US6976136B2 (en) * 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US7676430B2 (en) * 2001-05-09 2010-03-09 Lenovo (Singapore) Ptd. Ltd. System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset
US7191464B2 (en) * 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7107460B2 (en) * 2002-02-15 2006-09-12 International Business Machines Corporation Method and system for securing enablement access to a data security device
US7343493B2 (en) * 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines

Also Published As

Publication number Publication date
EP1518168A2 (en) 2005-03-30
KR20050016917A (ko) 2005-02-21
AU2003245543A8 (en) 2004-01-19
WO2004003745A2 (en) 2004-01-08
TW200408939A (en) 2004-06-01
KR100708356B1 (ko) 2007-04-17
US20040003324A1 (en) 2004-01-01
CN1692332A (zh) 2005-11-02
EP1518168B1 (en) 2019-08-07
AU2003245543A1 (en) 2004-01-19
US6996748B2 (en) 2006-02-07
CN100468324C (zh) 2009-03-11
WO2004003745A3 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
TWI255402B (en) Method, system and machine-readable medium for handling faults associated with operation of guest software in the virtual-machine architecture
TWI232372B (en) Control over faults occurring during the operation of guest software in the virtual-machine architecture
Dautenhahn et al. Nested kernel: An operating system architecture for intra-kernel privilege separation
US6854039B1 (en) Memory management system and method providing increased memory access security
TWI464575B (zh) 對應用程式進行透明式檢測的方法及系統,和計算系統
US9405570B2 (en) Low latency virtual machine page table management
US6823433B1 (en) Memory management system and method for providing physical address based memory access security
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
US10102139B2 (en) Memory management for address translation including detecting and handling a translation error condition
JP5951879B2 (ja) オペレーティングシステムに対する悪意ある活動のレポート
US7934076B2 (en) System and method for limiting exposure of hardware failure information for a secured execution environment
US10552345B2 (en) Virtual machine memory lock-down
US10120738B2 (en) Hypervisor techniques for performing non-faulting reads in virtual machines
US7426644B1 (en) System and method for handling device accesses to a memory providing increased memory access security
TW201935305A (zh) 用於後快取互鎖之系統和方法
US20070056039A1 (en) Memory filters to aid system remediation
CN1628284A (zh) 安全执行模式异常
US7383584B2 (en) System and method for controlling device-to-device accesses within a computer system
KR102494167B1 (ko) 메모리의 커널영역을 보호하기 위한 전자장치 및 방법
US10437523B2 (en) Secure receive packet processing for network function virtualization applications
US10146602B2 (en) Termination of stalled transactions relating to devices overseen by a guest system in a host-guest virtualized system
JP2009104555A (ja) Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent