TWI232372B - Control over faults occurring during the operation of guest software in the virtual-machine architecture - Google Patents

Control over faults occurring during the operation of guest software in the virtual-machine architecture Download PDF

Info

Publication number
TWI232372B
TWI232372B TW092117647A TW92117647A TWI232372B TW I232372 B TWI232372 B TW I232372B TW 092117647 A TW092117647 A TW 092117647A TW 92117647 A TW92117647 A TW 92117647A TW I232372 B TWI232372 B TW I232372B
Authority
TW
Taiwan
Prior art keywords
error
vmm
control
filter condition
guest
Prior art date
Application number
TW092117647A
Other languages
English (en)
Other versions
TW200408935A (en
Inventor
Steve Bennett
Andrew V Anderson
Stalinselvaraj Jeyasingh
Alain Kagi
Gilbert Neiger
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 TW200408935A publication Critical patent/TW200408935A/zh
Application granted granted Critical
Publication of TWI232372B publication Critical patent/TWI232372B/zh

Links

Classifications

    • 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
    • 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/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • 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
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

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

Description

Ϊ232372 玖、發明說明·· 【技術領域】 本發明概言之關於虛擬機^特定而言,㈣處理結 合於在該虛擬機器架構中客用軟體操作之錯誤。 【先前技術】 基本上-習用虛擬機器監視器(VMM)係在一電腦上運 轉,並呈現-或多個虛擬機器之提取到其它軟體。每個虛 擬機器可做為-自我包含的平台,運行其本身「客用作二 系統」(即由VMM所主控的一作業系统(〇s))及其它軟體, 其共同稱之為客用軟體。該客用軟體預期係如同其運行在 -專屬的電腦上,而非在—虛擬機器上。也就是說,該 用軟體預期來控制不同的事件,並可存取到硬體資源。令 硬體資源可包括處理器常駐資源(例如控制暫存仏: Γ己憶體中的資源(如描述元表),及存在^底下的硬體平 :、上的/源(如輸入輸出裝置)。該等事件可包括中斷、例
平。事件(例如初始化(ΙΝΙτ)或系統管理中斷(SM 【發明内容】 守 在一虛擬機器環境中,該VMM必須能夠對於這些事 硬體資源具有盖纟欠 ^控制,以提供運行在該虛擬機器上客 用軟體之適者的j品从、 各 哭 田、木乍,並用於保護,及運行在該等虛擬機 軟體存取一二間:為此目的,該VMM基本上在當客用 g 又。又的貝源時、或當發生其它事件時(例如中 断或例外)時即接收控制。 舉例而言,卷力彡 两在鉍作荅用軟體期間發生一頁面錯誤時(即 86316.doc 1232372 1、位址轉私挺作的一例外),該控制即轉移到該 VMM 然後其決疋該客用軟體或該vmm本身是否需要處 理Θ頁面錯力。如果該頁面錯誤需要由該客用軟體處理, 該控制即轉移回到該客用軟體。因為不需要由該VMM處理 的頁面錯誤(以及其它例外及中斷)經常性地發生,關於在 ▲ VMMM S|用&體之間的控制轉換會有_顯著的效能 成本。 【實施方式】 此處祝明用於處理關於在一虛擬機器架構中之客用軟 體操作的錯誤之方法及裝置。基於解說的目的,在以下的 說明中列出許多的特定細節,以便充分了解本發明。不 過,熟習此項技蟄者應清楚知道,在不運用這些特定細節 的情況下,仍然可實施本發明。 接下來之詳細說明的某些部份係就在一電腦系統之暫 存器或記憶體内資料位元之操作的演算法及符號表示來 王現。运些續异法說明及表示為資料處理技藝中的專業人 士所使用的方式來最為有效地傳達其工作的本質給本技 藝中的其它專業人士。-演算法在此處通f可視為導向一 所要結果之自我一致性的操作程序。該等程序為那些需要 對於物理量有物理性操縱者。雖然並非必然,但是這些量 通常採用能夠儲存、傳送、組合、比較及以其他方式操作 之電氣、磁性信號的形式。已證實將這些信號表示為位 疋、數值、兀件、符號、字元、術語、數字等等有時候非 常方便,主要係基於通用用法的因素。 86316.doc 1232372 4疋應要记得,這些及類似的術語與適當的物理量,並 且僅僅疋套用至這些量的方便標籤。除非特別指明,否則 由乂下的纣哪中可明顯看出,在整個說明書討論中所用到 的術⑽例如「處理」、或「運算」或「計算」或「決定」 或似者係代表一電腦系統或類似的電子運算裝置之動 作及處理其操縱及轉換在該電腦系統之暫存器及記憶體 中的貝料來表不成物理(電子)量,成為在該電腦系統的記 L、&或嚷存备或其它這種資訊儲存、傳輸或顯示裝置内 的物理量。 在以下該等具體貫施例之詳細說明中,係參考所附的圖 面’藉由說明來顯示出可實施本發明之特定具體實施例。 在〉等圖面中’相同的編號實質上代表數個圖面中類似的 兀件。每些具體實施例係說明到充份的細節來使得本技藝 勺專業人士可以貪施本發明。其也可利用其它的具體實施 例,並可在不背離本發明之範圍之下進行結構性、邏輯性 及電性改變。再者,其可瞭解到本發明之 隸並不㈣,但^要地相互排斥。舉例而 體實施例中所述的—特定特徵、結構或特性可包含在其它 具體實施例中。因此以下的詳細說明並不可視為一限制性 的含意,且本發明的範圍僅由所附的申請專利範圍所定 義,以及這些申請專利範圍所包含之同等者的完整範圍。 圖1所示為可操作本發明之虛擬機器環境丨〇 〇的具體實 施例。在此具體實施例中,空的平台硬體116包含一運算平 台,其能夠例如執行一標準作業系統(08)或一虛擬機器監 86316.doc 1232372 視器(VMM),例如一 VMM 112。該VMM 112雖然基本上係 實施在軟體中,其可模擬並輸出一空的機器介面到較高階 的軟體。這種較高階的軟體可包含一標準或即時性0S,其 可為一高度分解的作業環境,其具有有限的作業系統功 能,其可不包括傳統的0S設施等。另外,例如該VMM 112 可運行在另一個VMM之内或於其上。VMM及其典型的特 徵及功能皆為本技藝專業人士所熟知,並可實施在例如軟 體、韌體中,或藉由不同技術的組合。 該平台軟體116可為一個人電腦(PC)、主架構電腦、掌上 型裝置、攜帶式電腦、機頂盒、或任何其它運算系統。該 平台硬體116包括一處理器118、記憶體120,及可能地其它 平台硬體(輸入輸出裝置),其並未示出。 處理器11 8可為任何能夠執行軟體之類型的處理器,例 如一微處理器、數位信號處理器、微控制器或類似者。該 處理器11 8可包括微程式碼、可程式邏輯、或硬編碼的邏 輯,用於進行本發明之方法具體實施例的執行。 記憶體120可為一硬碟、一軟碟、隨機存取記憶體 (RAM)、唯讀記憶體(ROM)、快閃記憶體、任何以上裝置 的組合、或任何可由處理器11 8讀取之類型的機器媒體。記 憶體120可儲存指令或資料來進行本發明之方法具體實施 例的執行。 該VMM 112呈現出一或多個虛擬機器(VM)之提取給其 它軟體(即「客用」軟體)。該VMM 112可提供相同或不同 的提取給不同的客戶。圖1所示為兩個這種VM 1 02及11 4, 86316.doc -10- 1232372 雖然該VMM 112可支援超過2個或少於2個乂“。運行在每 個VM上的客用軟體可包括一客用〇s,例如一客用〇s ι〇4 或106,及不同的客用軟體應用1〇8及11〇。客用〇s及軟體 應用在此處係共同地稱之為客用軟體1〇3及115。客用軟體 103及105預期可存取在運行有該客用軟體之VM 1〇2及114 内的實體資源(例如處理器暫存器、記憶體及1/〇裝置)。該 VMM112可用於存取到客用軟體所想要的資源,而維持對 於在該平台軟體116内其它資源的最終控制。 再者,該客用軟體103及115預期來處理不同的事件,例 如例外、中斷及平台事件(如初始化(INIT)及系統、管理中 斷(SMI))。這些事件當中的一些擁有「特權」,因為它們必 須由乂]\4]^112處理,以保證^^1〇2及114,與客用軟體1〇3 及11 5之週當操作,並做為客用軟體103及11 5之間的保護。 對於該等具特權的事件,該VMMU2可進行客用軟體所想 要的功能,而可維持對於這些有特權之事件的最終控制。 促進該客用軟體之功能的動作可包括在該Vmm U2之部 份上的廣泛的動作。該VMM i 12之動作以及其特性並不會 限制本發明的範圍。 除了 4等具有特權之事件,於該客用軟體操作期間會發 生一些「非特權事件」,但不需要由該Vmm !丨2管理,因 此並不需要轉移控制到該VMM 112。在一具體實施例中, 提供一過滤機制來區別具特權的事件與非特權的事件。利 用此k ;慮機制’關於—目前事件(如—例外)之資訊係使用 或夕個過濾條件來評估,以決定是否對於目前事件的控 86316.doc -11- 1232372 式.持在。亥客用軟體、或轉移到該VMM 112。這些過濾 知件在此處係稱之為控制轉移過濾條件。關於目前事件 資訊在此處係稱之為錯誤資訊。 ^另—具體實施例中,係提供-過濾機制來辨識某些非 特權的事件’其可由於在目前事件當時存在的其它因素代 表該客用軟體可完成所要的操作,而不需要犧牲該VMM 12或,、匕VM《適當操作下,而可被忽略。在此具體實施 例一中’關於目前事件的錯誤資訊錢用-或多個過遽條件 來平估以决疋疋否可以忽緣目前事件(即是否允許該客用 軟體來完成所要的操作)。這些職條件在此處係稱之為錯 誤過濾條件。
詢表等),以儲存該VMCS 在一具體實施財’該過祕件(㈣轉移㈣條件及/ 或錯誤過遽條件)係使用在一虛擬機器控制結構(實S) 122中-或多個指定的襴位内所儲存的資料來定義。不同 的VM可使用來自不同VMCS記憶體影像之資料,雖然在圖 1中僅顯示出一個這種VMCSe該乂河以122可存在於記憶 體no中,並為該處理器118所維護。其必須注意到,可使 用任何其它的資料結構(例如—晶片上快取、_樓案、一查 122或其它關於該過濾機制之欄 位’而並不會失去泛用性。該過、'虑德 〜心,慮機制的不同具體實施例 將在以下更為詳細地說明。 在一具體貫施例中’如果讀禍、、♦ » 、 禾4過濾機制決定該目前的事件 必須由该VN1N1 112處理,:{^崔丨|而蘇必 &制即轉移到該VMM 112。該 VMM 112即可處理該事件,並鍊銘私心 、 Τ卫轉私控制回到客用軟體。在 86316.doc -12- 1232372 -具體實施例中,由該VMM112轉移控制到該客用軟體可 由執行-特殊指令來達成。由該VMM轉移控制到該客用軟 l在此處係稱之為_ VM進人,而由該客用軟體轉移控制 到該VMM在此處係稱之為—VM離帛,而VM離開的可能原 因(如具特權的例外及中冑、及具特權的平台事件)在此處 係稱之為虛擬化事件。 在一具體實施例中,當發生—VM離開時,控制即於在 孩V M C S 12 2中所描述的—特定進入點(例如一指令指標值) 來傳送到該VMM 112。在另一具體實施例[於經由一重 新指向結構向量化之後,控制即傳送到該VMm ιΐ2(例如在 該Intel® Pentium® IV之處理器指令組架構(isa)(在此處稱 之為IA-32 ISA)中的中斷描述元表)。另外,在本技藝中任 何已知的其它機制可用|由該客用軟體轉移控制到該 VMM 11 2 〇 包括例外、中斷及平台事件的具特權及非特權的事件在 此處即稱之為錯誤。一個錯誤可由執行處理器上的一指令 所產生。舉例而言,一種存取記憶體的操作可由於分頁及 分段化保護機制而造成許多錯誤。每個錯誤係結合於錯誤 資訊。錯誤資訊之特徵在於動態、靜態或半動態錯誤資 訊。動態錯誤資訊係在錯誤時或接近錯誤時產生。該動態 錯誤資訊的範例包括一錯誤碼,其由一例外產生,並直接 根據該錯誤操作的特性,或想要由—寫人記憶體操作來寫 入到1己憶體而造成一頁面錯誤之資料值。 靜態或半靜態錯誤資訊可能具有相同的數值,而無關於 863l6.doc -13 - 1232372 的時間。_半靜態錯誤資訊的範例為在不同控制暫 存斋中的位元設定,其很少會改變,例如像是在該ia_32 SAt CR〇暫存咨之快取除能(CD)或寫入保護(讲)位元。 一靜悲錯誤資訊的範例為該處理器實施的版本(例如經由 在該IA_32 ISA中的CPUID所回報)。 -般而言,錯誤資訊可包括一錯誤識別項、一相關的錯 誤碼、關於該錯誤的額外資料值、或這些資料項目之任= 組合。該錯誤識別項可為用於區別此特定錯誤與其它錯誤 <數值。該錯誤碼可包含一些數值,其中每個數值可代表 發生一特定狀況。該等額外的資料數值可代表連接到該錯 疾指令或藏錯誤觸發條件之任何其它資料。此外,該等額 外資料值可代表在產生該錯誤期間所計算的資料。該等額 外貝料數值的一些範例包括在該錯誤時間被要求來寫入 到一特疋位置之資料,在該錯誤時間正在存取的位址,造 成孩錯誤之指令的位址,在該錯誤時間的記憶體狀態等。 錯誤資訊的一個範例可參考IA-32 ISA中的一頁面錯誤 來說明。在該IA-32ISA中,一頁面錯誤可由一等於14的錯 誤識別項來辨識。因此,當發生一頁面錯誤時,控制即藉 由在登入14處透過一中斷描述元表(IDT)向量化到該錯誤 處理态來傳送到一錯誤處理器。正在存取的位址(即產生該 頁面錯誤者)係儲存在一控制暫存器(CR2)。此外,於傳送 控制到該錯誤處理器之前,該頁面錯誤產生一錯誤碼,其 被推入到該堆疊來由該錯誤處理器所使用。該錯誤碼包括 四個位元,其通知該錯誤處理器是那些條件造成該頁面錯 86316.doc -14- 1232372 誤。特別是,在該錯誤碼中的位元〇代表該錯誤是否由用 於位址轉譯之-頁面表中-不存在的頁面所造成,在該錯 誤碼中的位元〗代表是否該錯誤存取為_寫入,在該錯4 碼中的位元2代表是否該存取係在當該處理器在使用 中才開始,而在該錯誤碼中的位元3代表是否該錯誤係由 在一頁面目錄中將一保留位元設定到1所造成。 額外的資料數值可結合於該頁面錯誤。該相關的額外資 料數值之範例包括造成該頁面錯誤(CR2)而正在存取的位 址、琢錯誤指令的位址、該客用軟體在當發生一頁面錯誤 時正在嘗試寫入到一頁面表架構中的一非寫入頁面,在會 體及客用線性記憶體中該等頁面表之位址等。 現在將說明使用控制轉移過濾條件之一過濾機制的一 些具體實施例。該控制轉移過濾條件可由手動或程式化來 定義。該控制轉移過濾條件係根據該特定錯誤、該錯誤碼 的形式、額外資料數值的存在、該VMM的特性及其它因素 來改’交。孩控制轉移過濾條件之複雜性及需要表示該條件 的兀素數目係根據包含在該錯誤碼中的數值數目、額外資 料數值的數目、及該錯誤碼數值之可能組合數目、及/或需 要(及不需要)的額外資料數值而造成轉換到該VMM。舉例 而。田為要考慮的這些組合數目很大時,該控制轉移過 濾條件可需要對於該錯誤碼及/或其它錯誤資訊及一組預 先疋義的資料來執行數個操作(例如數學及/或布林邏輯運 算)。 在一些具體貫施例中,該預先定義的資料係儲存在該 86316.doc -15 * 1232372 VMCS之指定的襴位中,如上所述。在其它具體實施例中, 該預先定義的資料可為硬體編碼(例如在一電腦程式中、可 程式邏輯、微程式碼、或該處理器之硬體編碼的邏輯)。 圖2所不為用於過濾由於使用控制轉移過濾條件之錯誤 造成的VM離開之處理2〇〇的一具體實施例之流程圖。該處 理可由包含硬體(如電路、專屬邏輯、可程式邏輯、微編碼 等)、軟體(像是在一通用電腦系統或一專屬的機器上運 行)、或兩者之組合。 請參考圖2,處理200開始處理邏輯接收錯誤資訊(處理方 塊202)。如果允許進行一操作來完成,該錯誤資訊可相關 於已經發生或將要發生的—錯誤。該錯誤資訊包括可辨識 該錯誤之一錯誤識別項。在一些具體實施例中,該錯誤資 訊亦包括關於該錯誤之一錯誤碼及/或額外的資料值。 在決策方塊204中,係決定是否該錯誤資訊滿足一或多 個控制轉移過濾條件。如果在決策方塊2〇4中所做的決定 為否時,即該錯誤資訊並不滿足該控制轉移過濾條件,該 控制即轉換到該VMM(處理方塊2〇6),其處理該錯誤,然 後可轉移該控制回到該客戶0S。否則,如果在決策方塊2〇4 中所做的決定為是時,該錯誤資訊滿足該控制轉移過濾條 件,然後該控制維持在該客用軟體。然後該客用軟體可被 允許來處理該錯誤。 在其它具體實施例中,%果該錯誤資訊並不%足該控制 轉移過濾條件(即如果該錯誤資訊滿足該控制過濾條件 時,該控制即維持在該客用軟體),該控制即轉換到該 86316.doc -16- 1232372 VMM。 如上所迷,孩控制轉移過濾條件之複雜度根據許多因 素。在-具體實施例中,—控制轉移過遽條件僅需要該錯 誤資訊與某個數值比較(例如—v_開將在如果該錯誤碼 大於1〇時即產生,或—VM離開將在如果該錯誤碼等於0x4 時產生等)。在另-具體實施财,該㈣轉移㈣條件可 需要該錯誤資訊與數個數值比較。舉例而言,需要造成轉 換到該VMM之錯誤碼數值可事先決定,且目前的錯誤碼可 相較於這些預定的數值來辨識一匹配。該等預定的數值可 儲存在一指足的攔位(例如圖VMCS 122中)、或硬體編 碼在一電腦程式、可程式邏輯、微編碼或該處理器之硬體 編碼的邏輯。在另外其它的具體實施例中,可需要該過遽 機制來對於該錯誤資訊及一組預定的數值來進行一或多 個布林邏輯及/·或算術運算。 圖3-5所示為用於過濾由於使用控制轉移過濾條件之錯 誤造成的VM離開之處理的範例性具體實施例。該等處理 可由包含硬體(如電路、專屬邏輯、可程式邏輯、微編碼 等)、軟體(像是在一通用電腦系統或一專屬的機器上運 行)、或兩者之組合。 請參考圖3,處理3〇〇開始處理邏輯來在客用軟體操作期 間偵測一錯誤的發生(處理方塊301)。在處理方塊3〇2中, 處理邏輯接收可以辨識該錯誤之錯誤資訊,並可包括關於 该錯誤之其它資訊。在決策方塊303中,處理邏輯決定是 否該錯誤資訊包括關於該錯誤之一錯誤碼。如果該決定為 86316.doc -17- 1232372 是時,處理邏輯決定(在處理方塊304中)以下算式之數值 (真或假)·· EC AND MASK == MATCH ^ ⑴ 其中EC為該錯誤碼、AND為一位元別布林邏輯運算元、 “==”為一位元別比較運算元;MASK為儲存在一第一欄位 中的預先定義之資料,在此處稱之為一遮罩欄位,而 MATCH為儲存在一第二攔位中的預先定義之資料,在此處 稱之為一匹配欄位。 每個遮罩及匹配欄位之大小係根據該相對應錯誤碼之 大小。在一些具體實施例中,該遮罩及匹配攔位之寬度與 孩錯誤碼之大小相同。在其它具體實施例中,該遮罩及匹 配欄位之寬度與該錯誤碼之大小可以不相同。舉例而言, 該返罩及匹配欄位可小於該錯誤碼,且可僅映射一些位元 到算式1。 再者,於圖3所TF的一具體實施例中,處理邏輯亦使用 在一重新指向地圖中一相對應的控制位元來進行另一個 決足判斷是否要產生一 VM離開。該重新導向映射代表由 該VMM所維持的一組控制位元,用於設置那些虛擬化事件 舲曰迨成VM離開。所在考慮的該控制位元係對應於造 成目前錯誤之虛擬化事件。舉例而言,該虛擬化事件可為 一頁面錯誤、一外部中斷、或由客用軟體存取到一偵錯暫 存备、其每個具有在該重新指向地圖中的一相關位元。在 /、l只施例中’該重新指向地圖係包含在圖1之vmCS 122中。在一具體實施例中,該重新指向地圖為該VMCS 122 394 86316.doc -18- 1232372 中一單一欄位。在其它具體實施例中,於該VMCS 122中需 要數個攔位來詳細描述該重新指向地圖。 如果在決策方塊303中所做的決定為否(即該錯誤資訊並 不包括關於此錯誤之一錯誤碼)或處理邏輯在決策方塊3〇4 中決定算式1的等號可保持(即經由該位元別AND運算元而 結合於儲存在該遮罩欄位中的資料之錯誤碼),然後在一具 體實施例中,在該重新指向地圖中該相對應控制位元之數 值係用來決定是否會產生一 VM離開(處理方塊3〇6)。舉例 而言,如果設定該控制位元,處理邏輯將產生一 VM離開(處 理方塊3 13);否則,處理邏輯將傳遞該錯誤到該客用軟體 (處理方塊312)。 如果並不保持算式1中的等號時,處理邏輯倒反在該重 新扣向地圖中該控制位元之數值(處理方塊3〇8),並使用此 倒反的數值來決定是否產生一 VM離開(處理方塊3丨〇)。如 果設定該倒反的數值,處理邏輯產生一 VM離開(處理方塊 3 14),否則,孩錯誤即向量化到該客用軟體(處理方塊 3 i2)。在其它具體實施例中,處理邏輯可使用該控制位元 〈貫際值’如同在》策方塊3〇4中所決定,々口果該等號並 未保持時,及如果保持該等號時該控制位元的倒反值。 使用該遮罩及匹配攔位與圖3之處理3〇〇中的控制位 凡其可況明使用關於孩H32 ISA頁面錯誤(此處稱之為 /、面錯i碼或PFEC)之-錯誤碼的不同數值做為一個例 子。以下的範例假設如果算心中的等號不成立(如S3所示) 時’存在有該控制位元之倒反。 86316.doc -19- 1232372 如上所述,一PFEC包括四個位元。為了達到所有可能之 PFEC數值之組合戶斤需要的結果,每個遮罩欄位、匹配搁位 及控制位it必須具有-特定設定。舉例而言,& 了在所有 的頁面造成VM離開,該控制位元可設定y,料罩搁位 位元之數值將設定為0x0,且該匹配欄位之數值將設定為 0x0。另外,為了得到相同的行為,該控制位元可設定為〇, 該遮罩攔位設定為〇x〇,且該匹配欄位設定為〇xF(請注意其 可有弄多匹配、遮罩及控制位元數值的設定可提供相同的 功能)。在其它範例中,為了使得由監督者寫入到目前頁面 造成於頁面錯誤上的VM離開,該控制位元將可設定為i, 该遮罩攔位之數值將設定為〇xF,且該匹配欄位的數值將 可設定為0x3。這些數值可保證VM離開將僅發生在產生該 錯誤碼等於0x3的頁面錯誤上。在又另一個範例中,為了 使得非存在頁面或保留位元達反之頁面錯誤上的VM離 開’茲控制位元將設定為〇,該遮罩欄位的數值將可設定 為0x9(即僅位元〇及3設定為丨),且該匹配攔位的數值將設 定為0x1。此將造成在所有頁面錯誤上的VM離開,除了那 些代表一存在頁面(即位元〇設定為丨)及無保留位元達反 (即位元3被清為〇)的那些頁面。 在其它具體實施例中(未示出),並未使用該控制位元。 也就是說,處理邏輯基於算式丨的結果來決定是否轉移控 制到該VMM(即產生一 Vm離開)。如果在算式丨中評估的等 戒可保持(即該錯誤碼,且透過該位元別AND運算元匹配於 儲存在該匹配欄位中的資料來結合於儲存在該遮罩欄位 S 骑 86316.do< -20- 1232372 中的資料),則可滿足該控制轉移過濾條件,且關於該錯誤 碼之錯誤將由該客用作業系統來處理。否則(即透過該and 運异元結合於儲存在該遮罩欄位中的資料之錯誤碼並不 匹配於儲存在該匹配欄位中的資料),則並不滿足該控制轉 移過濾條件,且產生一 VM離開來轉移控制到該VMM。 使用在圖3所示之具體實施例中的控制位元之倒反對於 許多的錯誤碼數值組合加入彈性來達到所要的結果(即一 VM離開結果或一無VM離開結果)。舉例而言,下表所示為
包含兩個位元之一錯誤碼的不同數值組合之兩種可能需 要的結果: 圖3所示的處理300之具體實施例可達到該等所要的結 果1 ’如果該遮罩欄位位元的數值等於! υ,該匹配搁位的 數值等於(〇υ,且該控制位元等於0。所要得到的結果2可 j當該遮罩難位元的數值等於(1 υ、該匹配攔位的數值 等於(0 1 ),及該控制位元設定為丨時得到。 —其必須注意Μ,所要得到的結果2不需要使用該控制位 兀(即所要得到的結果2僅需要遮罩=(1 〇及匹配=(〇 ^。但 是所要得到的結果1除非使用該控制位it的倒轉,或在 決疋是否要產生—VM出口的程序中牽涉到更多的搁位, 86316.doc 1232372 否則即不能達到。 圖4所示為使用四個指定的攔位來決定是否要產生一 VM出口的一控制轉移過濾處理之具體實施例。請參考圖 4,處理400可由處理可包含硬體(例如電路、專屬的邏輯、 可程式邏輯、微程式碼等)、軟體(例如運行在一通用電腦 系統或一專屬的機益上)、或兩者的組合之處理邏輯來執 行。 處理400開始處理邏輯來在客用軟體操作期間偵測一錯 误的發生(處理方塊40 1)。在圖4所示的具體實施例中,其 假設所有的錯誤會產生錯誤碼,其中該處理邏輯於處理方 塊402中接收。接下來,處理邏輯使用位元別的and運算 7G來結合該錯誤碼與儲存在一第一遮罩欄位中的資料(處 理方塊404),以及儲存在一第二遮罩攔位中的資料(處理方 塊406)。也就是說,該第一組合INT1 =EC andmaski的 結果與該第二組合INT2 = EC AND MASK2的結果。 再者,於決策方塊408中,處理邏輯決定是否該第一組 合INT1匹配於儲存在第一匹配欄位(ματ〇η 1)中的資料、 或該第二組合INT2匹配於儲存在一第二匹配欄位 (MATCH2)中的資料。如果發現到任何的匹配,處理邏輯 即產生一 VM出口(處理方塊41〇)。另外,如果未發現到匹 配,該錯誤即射入到該客用作業系統(處理方塊4〇9)。 該等控制轉移過濾條件可使用更多的複數算數或布林 邏輯及/或額外的攔位來提供所要得到結果之較大的彈 性,如圖5所示。請參考圖5 ,處理5〇〇可由處理可包含硬 86316.doc -22- 1232372 微程式碼等)、 的機器上)、或 把(例如電路、專屬的邏輯、可程式邏輯、 軟體(例如運行在一通用電腦系統或一專屬 兩者的組合之處理邏輯來執行。 &處理500開始處理邏輯來在客用軟體操作期間偵測一錯 块的發生(處理方塊5〇1)β在處理方塊5〇2中,處理邏輯接 收錯誤的資訊。如處理方塊5G3中所決^,如果該錯誤资 訊包括-錯誤碼,處理邏輯使用該位元別的and運算元來 結合該錯誤碼與儲存在一第一遮罩搁纟中的資料(處理方 鬼4)與儲存在一第一遮罩欄位中的資料(處理方塊 5〇6)。也就是說,該第一組合int1=ECandmaski的結 果與該第二組合INT2 = EC AND MASK2的結果。 再者,於決策方塊508中,處理邏輯決定是否在該第一 組合INT1中設定任何位元、或如果該第二組合ΙΝΤ2匹配於 儲存在一匹配欄位(MATCH)中的資料。在一具體實施例中 (未示於圖5),如果任一決定為正面,處理邏輯即產生一 VM 出口。否則,該錯誤即射入到該客用〇s。 在另一具體實施例中(如圖5所示),關於一 VM出口的決 定進一步根據在一重新指向地圖中的一相對應的控制位 元。特別是如果在決策方塊508中所做的決定為正面(或如 果在決策方塊503中做的決定為負面,即該錯誤資訊並不 包括一錯誤碼),處理邏輯進一步於決策方塊510中決定是 否該控制位元指定一 VM出口(例如該控制位元設定為1)。 如果该控制位元指定一 VM出口,處理邏輯產生該VM出口 (處理方塊5 12)。如果該控制位元並未指定一 VM出口(例如 86316.doc -23- 1232372 該控制位元為清除),該錯誤即射入到該客用〇S(處理方塊 518)。 否則,如果於決策方塊508中所做的決定為負面,處理 邏輯即倒反該控制位元的數值(處理方塊5 14)。如果該倒反 的數值指定一 VM出口(決策方塊516),處理邏輯產生該vm 出口(處理方塊5 12)。如果該倒反的數值並未指定一 VM出 口,該錯誤射入到該客用0S(處理方塊5 18)。 雖然在圖3-5中所示的具體實施例使用某些運算元(即位 7G別AND、比較等),在過濾條件中可使用許多種其它的運 算元而不會喪失泛用性。此外,除了上述配合圖3_5所述之 外,可使用許多過濾條件來處理在該客用軟體操作期間所 發生的錯誤。再者,上述額外的資料數值可用來取代關於 在该過濾處理期間内錯誤之錯誤碼、或與其共同使用。 在一些具體實施例中,係在該控制轉移過濾條件之前, 應用額外的過濾條件(此處稱之為錯誤過濾條件)到錯誤資 ^^在其E具體實施例中,該等錯誤過濾、條件係在該控制 轉私過/慮條件之後應用到該錯誤資訊。在又其它的具體實 她例該錯誤過濾條件係應用職錯誤資訊,但非該控 ^ ^匕濾‘件。该等錯誤過漉條件係用來決定在該客用 、、‘作期間發生的一錯誤狀況是否可以忽田各。一錯誤狀 戈表㈣彳,其通常會在&果該操作允許完成時會造 成一錯誤。、全 、 β曰心 廷種錯誤狀況的一個範例為由客用軟體嘗試來 、面表籴構中寫入到一不可寫入頁面。在一虺狀況 中,因為JL a —队凡 …,、匕因素存在於該錯誤狀況的時間,一錯誤條件 86316.doc -24- 1232372 即可忽略,例如其代表該錯誤狀況不會危及該VMM或其它 虛擬機器之效能、安全性或適當操作。這些狀況的範例將 配合圖7及8來在下述詳細說明。 圖6所示為用於過滤由於使用錯誤過漉條件及控制轉移 過濾條件之錯誤造成的錯誤及VM離開之處理600的一具 體實施例之流程圖。該處理可由包含硬體(如電路、專屬邏 輯、可程式邏輯、微編碼等)、軟體(像是在一通用電腦系 統或一專屬的機器上運行)、或兩者之組合。 處理600之開始為處理邏輯來偵測在客用軟體操作期間 一錯誤狀況的發生(處理方塊602),及分析關於該錯誤狀況 之錯誤資訊(處理方塊604)。這些錯誤資訊可包括該錯誤識 別項、錯誤碼、錯誤位址、要寫入的資料、頁面表位址等。 接下來’處理邏輯決定是否該錯誤資訊可滿足錯誤的過 遽备、件(決策方塊6 0 4)。該等錯誤過滤條件需要評估一或多 個處理器狀態、記憶體狀態的元件、及/或使用關於該客用 軟體操作之規則的錯誤資訊。舉例而言,該等錯誤過濾條 件可需要比較客用軟體嘗試寫入到一記憶體位置之資料 與目前儲存在此記憶體位置中的資料。該等錯誤過濾條件 可需要單次檢查處理器狀態、記憶體狀態的一個元件,及 /或許多元件的錯誤資訊或多重檢查。該等錯誤過濾條件的 衩誰性會根據该特定錯誤狀況、關於該錯誤狀況的操作規 則、該ISA、該VMM的特性、該應用及其它因素而改變。 以下配合圖7及8來更為詳細說明範例性的過濾條件。 如果滿足該等錯誤過濾條件,處理邏輯即忽略該錯誤狀 86316.doc
-25- 1232372 況,並允許該客用軟體來進“同該錯誤狀況並未被偵 測到(處理方塊608)。因此,由該客用軟體所啟始的操作行 為即被修正來允許其可以完成,跄 成雖然有偵測到孩錯誤狀 況。 如果並未滿足该等錯誤過濾條件,處理邏輯即決定一適 當的個體來使用控難移過濾、條件以處理該㈣(決策方 塊610)。如果該錯誤資訊滿足該等控制轉移過滤條件,則 處理邏輯傳遞該錯誤到該客用軟體,並允許該客用軟體來 處理該錯誤(處理方塊612)。如果該錯誤資訊並不滿足該控 制轉移過濾條件,則處理邏輯轉換控制到該VMM(處理方 塊614)。 在其它具體實施例中,如果該等錯誤過濾條件並未滿 足,處理邏輯即不使用該等控制轉移過濾條件,並永遠轉 換控制到該VMM。 在又其它的具體實施例中,處理邏輯先決定一適當的個 體來使用控制轉移過漉條件來處理該錯誤。然後,如果該 適當的個體為客用軟體,處理邏輯進一步決定是否該錯誤 過濾條件可滿足。如果該等錯誤過濾條件可滿足,該客人 即被允許來忽略該錯誤狀況;如果該錯誤過濾條件並未滿 足,該錯誤即傳遞到該客人,如上所述。 以下的討論假設頁面表結構如同在IA-32 IS A中;但是, 其必須注意到類似的頁面表結構存在於不同的ISA中,且 本發明不限於使用IA-32 ISA。此外,可進行不同的簡化來 便於以下的討論。舉例而言,該實體位址延伸(PAE)及頁面 -26- 86316.doc 402 1232372 大小延伸(PSE)旗標之效應並未包括在内,環為主的保護機 制並不負責,也未測試記憶體存取之對準的需要等等。 如在本技藝中所熟知,在該IA-32 ISA中的頁面表係由頁 面目錄登入項(PDE)及頁面表登入項(PTE)所構成。每個 PDE及PTE包括不同的位元欄位,其控制記憶體頁面之存 取性。舉例而言,該”P”位元標記頁面為存在(1)或不存在 (0),該”R/W”位元代表是否頁面為唯讀(0)或可讀寫(1), 該”U/S”位元代表是否頁面需要監督者權限,該頁面框編號 (PFN)包含該邏輯頁面等所在的實體位址之一部份。CR3 為在該ISA中的一控制暫存器,其包含該頁面目錄之基底 的實體位址(及額外的旗標)。該頁面目錄基底實體位址係 等於CR3 [3 1:12]《12 (即該頁面目錄基底位址的低12個位 元,而高20個位元係位在CR3的高20個位元)。
為了防止在一虛擬機器中的錯誤或惡意程式碼來危及 在該VMM或另一個虛擬機器中所執行的程式碼,其有需要 限制該客用軟體之存取在該底部實體機器之實體記憶體 資源中。在一些架構中,係分別提供由客用OS及VMM所 管理的獨立頁面表架構,一種限制該客用軟體來存取到該 實體記憶體資源的方法包括允許該VMM修正該客用頁面 表架構來防止該客用軟體之讀取或寫入操作到保護的頁 面(例如屬於該VMM或其它VM之頁面)。此外,該客用頁 面表即被修正來防止寫入操作到屬於儲存有該客人頁面 表之VM的一些頁面。一旦這些允許修正已被實施,客用 軟體來改變該頁面表之嘗試將會造成該VMM可以透過VM 86316.doc -27- 1232372 出口觀察的頁面錯誤事件。該VMM可以檢視該嘗試的存 取’並決疋採取-些適當的動作。舉例而言,其可允許、 禁止或修正該嘗試的存取。舉例而言,該客用軟體不被允 终=映到屬於該VMM或另—個精之—實體頁面。因為
由该各用軟體修正頁面表係經常地發生,關於離開該VMM 來篩選每個所嘗試的客人頁面表改變之負擔會造成一實 質上的效能負荷。 為了簡化頁面表的管理,數種作業系統,例如心剛心 Window χρ’其可使用一遞歸式頁面目錄。換言之,一頁 2目錄登人項(PDE)將可設定來參考該頁面請頁面如同 一頁面表頁面。如此使用與—頁面目錄及—頁面表相同頁 面即造成所有的頁面表頁面即在經由該自我參考刪所存 取之線性位址空間的4 M B區域中來存取。如果使用一自我 參考的PM,即可計算用來對映任何特定線性位址之該 PTE或PDE的線性位址。在使用—自我參考的觸之作業系 統中’典型的頁面表編輯係透過此自我對映的區域來進行 (即編輯該頁面表係透過窝人到記憶體來完成,其使用了落 在使用該自我對映㈣之4 MB區域中的線性位址)。編輯不 使用此自我對映的PDE之頁面表在數目上較少。 在一頁面表中使用-共用頁面來同時做為該頁面目錄 頁面及頁面表頁面在此處稱之為一自我對映的頁面表。本 技藝之專業人士將可瞭解到本發明村應關其它的方 式’其中頁面表登入項即以一有組織的方式來對映到線性 位址’不論這種對映為重新使用在—頁面表架構中不同層 86316.doc
ΑιΛ A ^ Vi -28- 1232372 級的結構或透過os傳統方式之結果。 在本發明的一具體實施例中,使用一過濾機制來辨識出 不需要一出口到該VMM之頁面地圖編輯。在此具體實施例 中,用於過濾條件之額外的欄位即加入到該VMCS。 在一具體實施例中,由該客用作業系統所使用的頁面表 為自我對映,即在該頁面表架構中的該頁面目錄登入項 (PDE)之一會指回到該頁面目錄(PD)頁面的基底。如上所 述,該自我對映的頁面表之觀念為本技藝中所熟知,並由 例如像是Micro so ft的Windows XP所使用。在一具體實施例 中,該自我對映係由保證該等頁面目錄之基底的線性位址 (在此處稱之為PTBASE)可滿足一組條件來支援。該組條件 可驗證該PTBASE數值為一4MB對準的,即PTBASE[21··0] ==0,且該頁面表包含適當的自我對映登入項,即在位址 ((CR3[31:12] « 12) + PTBASE[31:22] « 2))處的登入項中的 PFN等於CR3 [3 1:12]。在一具體實施例中,該PTBASE數值 係儲存在該VMCS中,由該過漉機制所使用,如下所述。 如果正在使用一自我對映頁面表,其可決定出是否有任 何給定的位址會落在該頁面表内(即如果ADDR[31:22]== PTBASE[31:22] ^其中ADDR為正在存取的位址)。此外, 其可決定如果該位址在一 PDE内(即如果該位址係在該頁 面表中,且 ADDR[21:12] == PTBASE[31:22]),或 PTE (即 如果該位址係在該頁面表中,且其並不是在一 PDE内)。 圖7及8所示為用於使用錯誤過濾條件來過濾頁面錯誤 的一處理的兩個具體實施例。該處理可由包含硬體(如電 86316.doc -29- 1232372 路專屬邏輯、可程式邏輯、微編碼等)、軟體(像是在一 通用電腦系統或-專屬的機器上運行)、或兩者之組合。在 圖7及8所示的具體實施例中,該vmm藉由保證對映該頁面 表本身足孩客用頁面表登入項(客用PTE)僅具有唯讀存取 來保i隻貫體的記憶體。因此,當客用軟體嘗試來改變該等 /、面表登入項時,即發生一頁面錯誤狀況。這些具體實施 例可用於使用自我對映的頁面表之該客用〇s,如上所述, 或用於並未使用此頁面表結構之客用0S,雖然使用利用了 自我對映的頁面表之客用0S提供了較大的效能改進。 在圖7所示的具體實施例中,說明了該組錯誤過濾條件 可允許寫入到一PTE來完成,其不需要傳遞一錯誤,或在 當如果該客用作業系統並未嘗試來設定該” P”位元到1時即 造成一 VM出口,其仍可保護該實體記憶體空間,並抑制 使知孩客用軟體可以完全控制該頁面表。此規則的基本原 理為標記為不存在的一 PTE(即”P”位元等於〇)不能夠對映 一貫體1己憶體頁面。因此,由該客用軟體所改變的PTEf 能夠對映一實體記憶體頁面,且因此不會干擾在另一個 VM上運行之VMM或軟體的操作。因此該vMM不需要被通 知?茨頁面表修正,且該頁面表寫入將會被允許來進行,而 不會造成一頁面錯誤或VM出口。 請參考圖7,處理邏輯開始時在客用軟體操作期間偵測 一頁面錯誤狀況(處理方塊702),並接收關於該頁面錯誤狀 況之頁面錯誤資訊(處理方塊704)。 接下來,應用一組錯誤過濾條件到該頁面錯誤資訊。特 -30- 86316.doc 1232372 別是,處理邏輯決定是否該錯誤存取為一寫入操作(決策方 塊7〇6)到一 PTE(決策方塊708),且並不嘗試來設定該”P” 位元到1 (即DATA.P == 0,其中DATA為該客人所試著來寫 入的數值)(決策方塊710)。如果這些決定為正面,該客用 作業系統之存取即被允許來完成(即該寫入被允許來修正 記憶體),其不會造成一錯誤或VM出口(處理方塊714)。如 果在處理方塊706, 708及710中的任何決定為負面,控制即 轉移到處理方塊712來決定是否一 Vm出口要被產生,或該 錯誤即被向量化到該客用軟體,如以上配合圖2-5所進行的 詳細說明。 额外的條件。 〇此錯誤過渡格杜“人,1 H ^ ^ Μ
86316.doc 在另一個具體實施例中(未示於圖中),該寫入必須是到 一 PTE的認可即可被移除、或由例如一測試所取代,其可 允許寫入到一PTE或一 PDE,只要目前的位元並未被設定。 ―清參考圖8 ’其說明一更為複雜的錯誤過濾條件之組 口其中包括以上配合圖7所述的錯誤過遽條件,及一些 -31 - 1232372 808),且並不嘗試來設定該”P”位元到1(即DATA ;p==== 決 策方塊8 10)。如果這些決定皆為正面,該客用作業系統之 存取即被允許來完成(即該寫入被允許來修正記憶體),其 不會造成一錯誤或VM出口(處理方塊814)。如果在處理方 塊806或808中的這些決定為負面,控制即進行到處理方塊 812,以決定是否需要一 VM出口,如以上參考圖2_5所述。 如果在處理方塊8 10中的決定為負面,即應用額外的錯 誤過濾規則。特別是,處理邏輯決定是否該PTE已經標示 為存在於該PTE中(即ADDR->P == 1,其中addr為該客用 軟體嘗試來寫入的位址,且ADDR->P代表該p位元,如果 位在ADDR之1己憶體中的資料即解譯為一 PTE)(決策方塊 816),是否該pFN並未改變(即 ADDR->pFN DATA.PFN) (決策方塊81 8),且是否該客人正嘗試來標記由該pTE所對 映的頁面成為唯讀(DATA.R / W == 〇)或正由該pTE所對映 的頁面已經在記憶體中的PTE中標記為可寫入(ADdr) R / W === 1)(決策方塊820)。如果這些決定為正面,該客 用作業系統之存取即被允許來完成(即該寫入被允許來修 正圮憶體),其不會造成一錯誤或VM出口(處理方塊8丨4)。 如果在處理方塊816, 818及810中的任何決定為負面,控制 即轉私到處理方塊8 12來決定是否需要一 vm出口。 其必須〉王意到圖7及8中所述的過濾機制將會過濾出嘗 試來使用該自我對映的PDE之該等頁面表之存取,如上所 述。旨4來修正並未使用該自我對映的pDE之頁面表將不 會由該錯誤過濾條件所過濾出來(即決定是否該寫入係到 86316.doc -32- 1232372 方塊708及808中的一 PTE將會失敗)。然後控制轉移過遽條 件將可用來決定是否需要一 VM出口,如圖2_5所示。此並 未因-安全性或正確操作的角度看來會造成問題,因為該 VMM將可以決定是否―㈣實際上正在編輯。該控制轉移 過遽機制將可設定來造成於所有寫入頁面錯誤上的物出 口,並評估正被寫入的位址及資料,以決定是否正在嘗試 一頁面表編輯。 圖9所示為料定義控難移㈣條件及/或錯誤過遽條 件(處理900的一具體實施例之方塊圖。處理9⑼可手動 或自動地執行。 其可使用許多除了以上參考圖7及8所述的那些錯誤過 滤條件來H錯誤,而不會喪失通用性。該㈣的形式可 f多種VMM控㈣的欄位來控制(如PTBASE),纟在—1體 實施例中可存在於該VMCS中。另外,該過射由—單: 致能位元來控制’其可硬體編碼到—處理器實施當中。 μ參考圖9,處理9〇〇之開始係辨識那些錯誤資訊的組合 (如錯誤碼數值、錯誤識別項等)並不需要轉換到該VMM, ,卜或必肩被允许來芫成忽略該錯誤(處理方塊902)。然 後7可辨識出可用於該VM出口及/或錯誤過濾條件之搁 勺最大數目及欄位的語義(處理方塊9〇4),並辨識出可用 的運算元(例如布林、算術等)(處理方塊906)。再者,基於 在處理方塊902-906中所辨識的資訊,即可產生該過滤條件 (處方塊908)。孩過遽條件可包括一或多個預先定義的數 值及或多個布林邏輯、及/或要對該預先定義的數值及 489 86316d〇c -33 - 1232372 該錯誤碼所進行的算術運算。 :此:已經說明處理於該客用軟體操作期間所發生的錯 用,及裝置。其必須瞭解到以上的說明係、做為說明使 的說明t技歸業人士將可在閱敎瞭解以上 而瞭解到許多其它的具體實施例。因此,本 參考所附的申請專·騎決定,以及這此 巧專利範圍所賦與的同等效力者之全部範圍。 【圖式簡單說明】 本發明係藉由所附圖面中的範例來說明,並非藉由限 制,且其中類似的參考編號代表類似的元件,且其中: 圖1所不為可操作本發明之虛擬機器環境的具體實施 例; ’、 圖2所不為用於過濾由於使用控制轉移過濾條件之錯誤 造成的VM離開之處理的一具體實施例之流程圖; 圖3-5所tf為用於過濾由於使用控制轉移過濾條件之錯 誤造成的VM離開之處理的範例性具體實施例; ’曰 圖6所示為用於過濾由於使用錯誤過濾條件及控制轉移 過攄條件之錯誤造成的錯誤及¥]^離開之一處理的具體實 施例之流程圖; 圖7-8所示為用於過濾使用錯誤過濾條件之錯誤的一處 理之範例性具體實施例;及 圖9所示為用於定義錯誤過濾條件及控制轉移過滹條件 的一處理之具體實施例的流程圖。 86316.doc -34- 1232372 【圖式代表符號說明】 VMM 虛擬機器監視器 OS 作業系統 RAM 隨機存取記憶體 ROM 唯讀記憶體 VMCS 虛擬機器控制結構 ISA 指令集架構 PDE 頁面目錄登入項 PTE 頁面表登入項 PFN 頁面框編號 100 虛擬機器環境 103 客用軟體 116 裸平台硬體 118 處理器 120 記憶體
86316.doc -35-

Claims (1)

  1. 今cW 沒5¾ 17647號專利申請案 中文申請專利範圍替換本(93年12月) 拾、申請專利範園: 1· 一種控制錯誤之方法,包含·· 接收有關相關於一客用軟體操作的一個錯誤之錯 訊; h貝 決定是否該錯誤資訊滿足至少一個過濾條件丨及 如果孩錯誤資訊滿足該至少一個過濾條件,即禁止轉 換控制到一虛擬機器監視器(VMM)。 2·如申請專利範圍第1項之方法,其中: 咸土 y個過濾條件為至少一個控制轉移過濾條件,· 禁止轉換控制到該VMM進一步包含如果該錯誤資訊 滿足該至少—個㈣轉移㈣條件時,傳遞該錯誤到該 客用軟體。 3·=申請專利範園第1項之方法,其中該錯誤資訊為-錯誤 戠J頁μ义该錯秩 < 錯誤碼、及一或多個關於該錯 誤之額外資料數值中至少—個。 4·如申請專利範圍第1項乏女 闲币貝 < 万法,其中該錯誤代表一中斷、 一例外及一平台事件中任何—項。 5 .如申睛專利範園第1項之女、、土 万去,其中該錯誤資訊包括一些 數值,這些數值中每一 一 丁’ 個係代表一特定狀況的發生。 6. 如申請專利範園第5項之方法,其中該錯誤資訊中-或多 個數值的組合需要-轉換到該VMM。 7. 如申請專利範園第1項之方法,進一步包本. 86316.doc 1232372 < π ϋ , > ,...一-- -- — .·‘”·> 如果孩錯誤資訊並不滿足該至少-個過濾條件,轉換 控制到該VMM。 8.如中請專利範圍第巧之方法,其中該至少一個過滤條件 係使用儲存在-或多個指定的攔位中的資料來定義。 9·如中請專利範圍第㈣之方法,其中該一或多個指定的搁 位包括一匹配欄位及一遮罩攔位。 如申請專利範園第㈣之方法,其中決定是否該錯誤資祝 滿足該至少〜個_條件包含使用—或多個布林邏輯運 算來結合該錯誤資訊與儲存在—或多個指定欄位中的資 料0 '、 11 · 一種控制錯誤之方法,包含·· 使用有關-錯誤及至少一個控制轉移過遽條件之錯養 資訊來決定是否關於一客用軟體之操作的該錯誤會二 轉換控制到一虛擬機器監視器(VMM);及 如果該錯誤資訊滿足該至少一個控制轉移過 時,傳送該錯誤到該客用軟體。 •如申請專利範圍第_之方法,其中該錯誤資訊為 誤識別項、一關於該錯誤之錯誤碼、及一或多個關於: 錯誤之额外資料數值中至少—個。 如申請專利範圍第㈣之方法,其中該錯誤代表 斷、一例外及一平台事件中任何一項。 ’其中該至少-個控制轉 多個指定的攔位中的資料 14·如申請專利範圍第11項之方法 移過濾條件係使用儲存在一或 來定義。 86316.doc -2- α 年 月 ΕΠ 15·如申請專利範圍第14項之方法,其中該一或多個指定的 櫚位包括一匹配欄位及一遮罩欄位。 1 6·如申凊專利範圍第丨5項之方法,其中決定是否關於該客 用軟體操作的錯誤需要轉換控制到該VMM,其包含·· 使用一位元別及運算元來結合該錯誤資訊與儲存在该 遮罩欄位中的資料;及 決足是否該結合的結果匹配於儲存在該匹配攔位中的 資料。 1 7.如申請專利範圍第16項之方法,其中決定是否關於該客 用軟體操作的錯誤需要轉換控制到該VMM,進一步包 含: 決定出該結合結果可匹配於儲存在該匹配欄位中的資 料;及 辨識在一重新指向地圖中的一相對應位元之數值,該 相對應位元的數值代表是否該錯誤需要轉換控制到該 VMM。 1 8·如申請專利範圍第16項之方法,其中決定是否關於該客 用軟體操作的錯誤需要轉換控制到該VMM,進一步包 含: 決定出該結合結果並不匹配於儲存在該匹配欄位中的 資料; 辨識在一重新指向地圖中一相對應位元之數值;及 倒反該相對應位元之數值,該相對應位元的倒反的數 值代表是否該錯誤需要轉換控制到該VMM。 86316.doc ΐ Λ r * 1¾. 20, 21. ;! 個控制轉移過 來禁止轉換控 系統,其中該處理器在當該錯 個過濾條件時,進一步轉換控 ’種1空制錯誤之系統,該系統包含: —在其中儲存客用軟體之記憶體;及 —處理器,其耦合於該記憶體,用以執行該客用敕體、 決定是否關於結合該客用軟體之操作的—錯誤之錯^^資 訊滿足至少一個過濾條件,且如果該錯誤資訊滿足該至 少-個過滤條件’即禁止轉換控制到—虛擬機器監:器 (VMM)。 如申請專利範圍第19項之系統,其中: 該至少-個過滤條件為至少一個控制轉移過滤條件; 及 該處理器在當該錯誤資訊滿足該至少一 濾條件時,藉由傳遞該錯誤到該客用軟體 制到該VMM。 如申請專利範圍第19項之 成資訊並不滿足該至少一 制到該VMM。 •種控制錯誤之系統,該系統包含·· 一在其中儲存客用軟體之記憶體;及 -處理器,其耦合於該記憶體,用以執行該客用敕體 決足是否關於結合該客用軟體之操作的一錯誤需要使 關於該錯誤的錯誤資訊及至少一個控制轉移㈣條件 轉換控制到一虛擬機器監視器(vmm)、並在當該錯誤 訊滿足孩至少-個控制轉移過滤條件時傳送該錯 客用軟體。 86316.doc
    -4- 23.如申請專利範圍第22項之系統,其中該至少一個控制轉 移過濾條件係使用儲存在一或多個指定攔位中的資料來 定義’該一或多個指定的欄位包括一匹配欄位及一遮罩 櫊位。
    24·如申請專利範圍第23項之系統,其中該處理器係藉由使 用一位元別AND運算元來結合該錯誤資訊與儲存在該遮 罩欄位中的資料,以決定是否關於該客用軟體之操作的 錯誤需要轉換控制到該VMM,並決定是否該結合結果可 匹配於儲存在該匹配欄位中的資料。 25· —種包含指令之機器可讀取媒體,其在當由一處理系統 執行時,即使得該處理系統執行一方法,該方法包括: 接收有關相關於一客用軟體操作的一個錯誤之錯誤資 訊; 決定是否該錯誤資訊滿足至少一個過濾條件;及
    如果孩錯誤資訊滿足該至少一個過濾條件,即禁止轉 換控制到一虚擬機器監視器(VMM)。 如申π專利範圍第25項之機器可讀取媒體,其中·· 該至 > 一個過濾條件為至少一個控制轉移過濾條件; 二禁止轉換控制到該VMM包含如果該錯誤資訊滿足該 土卜個控制轉移過滤條件#,傳冑該錯誤到該客用軟 體。 7·如申叫專利範圍第25項之機器可讀取媒體,其中該方法 進一步包含: 86316.doc 1 如果讀錯誤資訊並不滿足該至少一個過濾條件,轉換 控制到該VMM。 28. —種包含指令之機器可讀取媒體,其在當由一處理系統 執仃時,即使得該處理系統執行一方法,該方法包括: 使用關於該錯誤及至少一個控制轉移過濾條件之錯誤 資訊來決定是否關於一客用軟體之操作的一錯誤會需要 轉換扭制到一虛擬機器監視器(VMM);及 如果該錯誤資訊滿足該至少一個控制轉移過濾條件 時’傳送該錯誤到該客用軟體。 29·如申請專利範圍第28項之機器可讀取媒體,其中該至少 個fe制轉移過濾條件係使用儲存在一或多個指定欄位 中的資料來定義,該一或多個指定的攔位包括一匹配攔 位及一遮罩攔位。 30.如申請專利範圍第29項之機器可讀取媒體,其中該處理 器係藉由使用一位元別AND運算元來結合該錯誤資訊與 儲存在該遮罩欄位中的資料,以決定是否關於該客用軟 體之操作的錯誤需要轉換控制到該VMM,並決定是否該 結合結果可匹配於儲存在該匹配攔位中的資料。 86316.doc -6-
TW092117647A 2002-06-29 2003-06-27 Control over faults occurring during the operation of guest software in the virtual-machine architecture TWI232372B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/184,774 US7124327B2 (en) 2002-06-29 2002-06-29 Control over faults occurring during the operation of guest software in the virtual-machine architecture

Publications (2)

Publication Number Publication Date
TW200408935A TW200408935A (en) 2004-06-01
TWI232372B true TWI232372B (en) 2005-05-11

Family

ID=29779452

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092117647A TWI232372B (en) 2002-06-29 2003-06-27 Control over faults occurring during the operation of guest software in the virtual-machine architecture

Country Status (7)

Country Link
US (1) US7124327B2 (zh)
EP (1) EP1520230A2 (zh)
KR (1) KR100681975B1 (zh)
CN (1) CN100468351C (zh)
AU (1) AU2003251509A1 (zh)
TW (1) TWI232372B (zh)
WO (1) WO2004003749A2 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI453672B (zh) * 2008-04-04 2014-09-21 Hewlett Packard Development Co 虛擬機器管理器系統與方法
US9424138B2 (en) 2013-06-14 2016-08-23 Nvidia Corporation Checkpointing a computer hardware architecture state using a stack or queue
TWI550511B (zh) * 2012-12-27 2016-09-21 輝達公司 用於指令轉譯錯誤偵測之方法
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware

Families Citing this family (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003278036B2 (en) * 2002-10-22 2009-12-10 Aventis Pasteur Limited Anti-cancer vaccines and high-dose cytokines as adjuvants
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8793787B2 (en) * 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US9027135B1 (en) 2004-04-01 2015-05-05 Fireeye, Inc. Prospective client identification using malware attack detection
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US8566946B1 (en) * 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US7370181B2 (en) * 2004-06-22 2008-05-06 Intel Corporation Single stepping a virtual machine guest using a reorder buffer
US7539986B2 (en) * 2004-06-30 2009-05-26 Intel Corporation Method for guest operating system integrity validation
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
US7404107B2 (en) * 2004-12-15 2008-07-22 Microsoft Corporation Fault injection selection
US20060126800A1 (en) * 2004-12-15 2006-06-15 Microsoft Corporation Fault injection object
US20060126799A1 (en) * 2004-12-15 2006-06-15 Microsoft Corporation Fault injection
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
US8286162B2 (en) * 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US7703126B2 (en) * 2006-03-31 2010-04-20 Intel Corporation Hierarchical trust based posture reporting and policy enforcement
US7555628B2 (en) 2006-08-15 2009-06-30 Intel Corporation Synchronizing a translation lookaside buffer to an extended paging table
US7665005B2 (en) * 2006-08-25 2010-02-16 Intel Corporation In situ processor margin testing
US8615643B2 (en) * 2006-12-05 2013-12-24 Microsoft Corporation Operational efficiency of virtual TLBs
US9946982B2 (en) 2007-02-28 2018-04-17 Red Hat, Inc. Web-based support subscriptions
US7739554B2 (en) * 2007-02-28 2010-06-15 Red Hat, Inc. Method and system for automatic resolution and dispatching subscription service
US8578337B2 (en) * 2007-02-28 2013-11-05 Red Hat, Inc. Method and system for quality assurance subscription service
US7694189B2 (en) * 2007-02-28 2010-04-06 Red Hat, Inc. Method and system for remote monitoring subscription service
US8214483B2 (en) * 2007-02-28 2012-07-03 Red Hat, Inc. Method and system for continuous availability subscription service
US8055951B2 (en) * 2007-04-10 2011-11-08 International Business Machines Corporation System, method and computer program product for evaluating a virtual machine
US7984483B2 (en) * 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
US9223600B1 (en) 2007-05-07 2015-12-29 Hewlett Packard Enterprise Development Lp In-processor dynamic address redirection table for substituting instruction strings
US8799620B2 (en) * 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
US20090083829A1 (en) * 2007-09-20 2009-03-26 C & S Operations, Inc. Computer system
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
CN101645119B (zh) * 2008-08-07 2012-05-23 中国科学院软件研究所 一种基于虚拟硬件环境的恶意代码自动分析方法及系统
US8850571B2 (en) 2008-11-03 2014-09-30 Fireeye, Inc. Systems and methods for detecting malicious network content
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US8893124B2 (en) 2011-03-31 2014-11-18 Intel Corporation Method, apparatus and system for limiting access to virtualization information in a memory
JP6063941B2 (ja) * 2011-08-30 2017-01-18 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. システム管理要求のための仮想高特権モード
US9519782B2 (en) 2012-02-24 2016-12-13 Fireeye, Inc. Detecting malicious network content
CN102902599B (zh) 2012-09-17 2016-08-24 华为技术有限公司 虚拟机内部故障处理方法、装置及系统
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US9223602B2 (en) * 2012-12-28 2015-12-29 Intel Corporation Processors, methods, and systems to enforce blacklisted paging structure indication values
US9009822B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for multi-phase analysis of mobile applications
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9824209B1 (en) 2013-02-23 2017-11-21 Fireeye, Inc. Framework for efficient security coverage of mobile software applications that is usable to harden in the field code
US9159035B1 (en) 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US10235278B2 (en) * 2013-03-07 2019-03-19 International Business Machines Corporation Software testing using statistical error injection
US9565202B1 (en) 2013-03-13 2017-02-07 Fireeye, Inc. System and method for detecting exfiltration content
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
WO2014145805A1 (en) 2013-03-15 2014-09-18 Mandiant, Llc System and method employing structured intelligence to verify and contain threats at endpoints
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9251343B1 (en) 2013-03-15 2016-02-02 Fireeye, Inc. Detecting bootkits resident on compromised computers
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9536091B2 (en) 2013-06-24 2017-01-03 Fireeye, Inc. System and method for detecting time-bomb malware
US9888016B1 (en) 2013-06-28 2018-02-06 Fireeye, Inc. System and method for detecting phishing using password prediction
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US10089461B1 (en) 2013-09-30 2018-10-02 Fireeye, Inc. Page replacement code injection
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US10192052B1 (en) 2013-09-30 2019-01-29 Fireeye, Inc. System, apparatus and method for classifying a file as malicious using static scanning
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9189627B1 (en) 2013-11-21 2015-11-17 Fireeye, Inc. System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9740857B2 (en) 2014-01-16 2017-08-22 Fireeye, Inc. Threat-aware microvisor
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9672354B2 (en) * 2014-08-18 2017-06-06 Bitdefender IPR Management Ltd. Systems and methods for exposing a result of a current processor instruction upon exiting a virtual machine
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
CN104680067B (zh) * 2015-02-15 2017-12-19 安一恒通(北京)科技有限公司 文件的检测方法及装置
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
CN105468434A (zh) * 2015-12-11 2016-04-06 浪潮(北京)电子信息产业有限公司 一种处理虚拟机异常的方法及装置
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10826933B1 (en) 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10635479B2 (en) * 2016-12-19 2020-04-28 Bitdefender IPR Management Ltd. Event filtering for virtual machine security applications
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11113094B1 (en) 2019-08-28 2021-09-07 Parallels International Gmbh Physical memory management for virtual machines
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
CN111274086B (zh) * 2020-01-15 2023-06-13 湖北工程学院 一种计算机软件故障监测系统

Family Cites Families (148)

* 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
EP0192232B1 (en) * 1985-02-18 1993-11-18 Nec Corporation Data processing apparatus
JPS61206043A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd 仮想計算機システムにおける割込制御方法
JPS61206057A (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
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
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
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
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
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
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
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6237061B1 (en) * 1999-01-05 2001-05-22 Netlogic Microsystems, Inc. Method for longest prefix matching in a content addressable memory
US6282650B1 (en) * 1999-01-25 2001-08-28 Intel Corporation Secure public digital watermark
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
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
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

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI453672B (zh) * 2008-04-04 2014-09-21 Hewlett Packard Development Co 虛擬機器管理器系統與方法
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
TWI550511B (zh) * 2012-12-27 2016-09-21 輝達公司 用於指令轉譯錯誤偵測之方法
US10324725B2 (en) 2012-12-27 2019-06-18 Nvidia Corporation Fault detection in instruction translations
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9424138B2 (en) 2013-06-14 2016-08-23 Nvidia Corporation Checkpointing a computer hardware architecture state using a stack or queue

Also Published As

Publication number Publication date
AU2003251509A1 (en) 2004-01-19
US7124327B2 (en) 2006-10-17
EP1520230A2 (en) 2005-04-06
TW200408935A (en) 2004-06-01
CN1679001A (zh) 2005-10-05
KR100681975B1 (ko) 2007-02-15
KR20050016918A (ko) 2005-02-21
WO2004003749A3 (en) 2005-02-03
CN100468351C (zh) 2009-03-11
WO2004003749A2 (en) 2004-01-08
US20040003323A1 (en) 2004-01-01

Similar Documents

Publication Publication Date Title
TWI232372B (en) Control over faults occurring during the operation of guest software in the virtual-machine architecture
TWI255402B (en) Method, system and machine-readable medium for handling faults associated with operation of guest software in the virtual-machine architecture
US7552426B2 (en) Systems and methods for using synthetic instructions in a virtual machine
US9529614B2 (en) Automatically bridging the semantic gap in machine introspection
US8099574B2 (en) Providing protected access to critical memory regions
US10140448B2 (en) Systems and methods of asynchronous analysis of event notifications for computer security applications
KR20170042602A (ko) 가상 머신을 나가자 마자 현재 프로세서 명령을 노출하기 위한 시스템 및 방법
US20170192833A1 (en) Providing instructions to facilitate detection of corrupt stacks
CN107450964B (zh) 一种用于发现虚拟机自省系统中是否存在漏洞的方法
US10120738B2 (en) Hypervisor techniques for performing non-faulting reads in virtual machines
CN1628284B (zh) 用于处理安全异常的方法与系统
US10649787B2 (en) Exception handling involving emulation of exception triggering data transfer operation using syndrome data store that includes data value to be transferred
JP2018531462A6 (ja) 例外処理
US11216280B2 (en) Exception interception
US11188367B2 (en) Guest operating system physical memory page protection using hypervisor

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees