TW200527195A - Mechanism to control hardware interrupt acknowledgement in a virtual machine system - Google Patents

Mechanism to control hardware interrupt acknowledgement in a virtual machine system Download PDF

Info

Publication number
TW200527195A
TW200527195A TW093129485A TW93129485A TW200527195A TW 200527195 A TW200527195 A TW 200527195A TW 093129485 A TW093129485 A TW 093129485A TW 93129485 A TW93129485 A TW 93129485A TW 200527195 A TW200527195 A TW 200527195A
Authority
TW
Taiwan
Prior art keywords
interrupt
control
vmm
interruption
patent application
Prior art date
Application number
TW093129485A
Other languages
English (en)
Other versions
TWI261747B (en
Inventor
Gilbert Neiger
Erik Cota-Robles
Steven M Bennett
Stalinselvaraj Jeyasingh
Richard Uhlig
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 TW200527195A publication Critical patent/TW200527195A/zh
Application granted granted Critical
Publication of TWI261747B publication Critical patent/TWI261747B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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

Description

200527195 (1) 九、發明說明 [發明所屬之技術領域】 本發明係大致有關虛擬機器,尤係有關虛擬機器系統 中硬體中斷確認之控制。 【先前技術】 在一典型的電腦系統中,各裝置產生中斷要求,而這 些中斷要求經由多條中斷要求線而被傳送到一中斷控制 器’而向系統軟體要求服務。一旦該中斷控制器識別一作 用的中斷要求線之後,該中斷控制器即將一中斷信號傳送 到處理器。於回應時,處理器決定軟體是否已準備好可接 收該中斷。如果該軟體並未準備好可接收該中斷,則將該 終端保持在一待處理狀態,直到該軟體準備好可接收該中 斷爲止。一旦決定該軟體已準備好,則該處理器在處理器 匯流排上執行一中斷確認週期,以便要求該中斷控制器回 報哪一待處理的中斷具有最高的優先順序。該中斷控制器 將中斷要求線排出優先順序,並向該處理器識別最高優先 的中斷。該處理器將被稱爲中斷向量的該中斷識別碼用來 搜尋一中斷描述符表(Interrupt Descriptor Table;簡稱 IDT )中指向處理該中斷的程式碼之一中斷描述符,然後 跳到該處理程式碼。 在一傳統的作業系統(0 p e r a t i n g S y s t e m ;簡稱0 S ) 中,係由被稱爲〇 S核心的一單一實體控制所有的中斷。 在一虛擬機器系統中,一虛擬機器監視器(Virtual- -5- 200527195 (2)
Machine Monitor;簡稱VMM)應對該系統中發生的各種 作業及事件有最大的控制權,以便提供正確的虛擬機器作 業’並提供隔離該等虛擬機器及各虛擬機器間之保護。爲 了達到此一目的,當客戶軟體要使用一硬體資源,或當發 生諸如一中斷或一異常狀況等的某些事件時,VMM通常 接收控制。尤其當一系統裝置產生一中斷時,可將控制自 虛擬機器轉移到VMM。 【發明內容】 在一實施例中,一方法包含下列步驟:識別在客戶軟 體的作業期間待處理的一中斷;決定該中斷將要造成控制 轉變到一虛擬機器監視器(VMM );決定是否要在控制 轉變到該VMM之前先確認該中斷;以及如果要確認該中 斷,則確認該中斷,並將控制轉變到該VMM。 【實施方式】 本發明說明了一種控制一虛擬機器系統中之外部中斷 之方法及裝置。在下文的說明中,爲了便於說明,述及了 許多特定的細節,以便本發明能徹底被了解。然而,熟習 此項技術者當可了解,可在沒有這些特定細節的情形下實 施本發明。 下文中詳細說明的某些部分,係以演算法及對一電腦 系統的暫存器或記憶體內各資料位元運算的符號表示法之 方式展現。這些演算法描述及表示法是熟悉資料處理這門 -6 - 200527195 (3) 技術的人士所使用之工具,以便在最有效的方式下將其工 作之內涵傳遞給熟悉這門技術的其他人士。在本文及一般 性的認知中,演算法(algorithm )被認知爲一系列有條理 並可得到所需結果之作業。這些作業是需要對物理量作物 理操作的那些作業。雖非必然,但在一般的情況中,這些 物理量之形式爲可被儲存、傳送、結合、比較、及以他種 方式操作之電氣信號或磁性信號。將這些信號稱爲位元、 數値、元素、符號、字元、項、或數字等術語時,已證明 經常是較便利的,主要也是爲了普遍使用之故。 然而,我們當謹記於心,所有這些術語及其他類似的 術語都與適當的物理量相關聯,而且只是適用於這些物理 量的便利性標記而已。在下列說明中,除非有其他特別的 陳述,否則我們當了解,在整個本發明中,使用諸如”處 理”、”運算”、”計算”、或”決定”等術語之討論,皆係論及 電腦系統或類似電子運算裝置之動作及處理,且此種電腦 系統係將該電腦系統的暫存器及記憶體內表現爲物理(電 子)量之資料操作並變換成該電腦系統的記憶體、暫存 器、或其他此類資訊儲存裝置、傳送裝置、或顯示裝置內 同樣表現爲物理量之其他資料。 在下文對實施例的詳細說明中,將參照以舉例方式示 出可實施本發明的特定實施例之附圖。在該等圖式中,相 同的代號在所有數圖中都描述大致相同的組件。係以充分 的細節說明這些實施例,使熟習此項技術者能夠實施本發 明。可使用其他的實施例,且可在不脫離本發明的範圍 -7- 200527195 (4) 下,作出結構、邏輯、及電氣的改變。 解,雖然本發明的各實施例是不同的’ 的。例如,一實施例中述及的一特定的特 徵可能被包含在其他的實施例內。因此, 式採取下文之詳細說明,且只由最後的申 這些申請專利範圍應享有的完整等效範圍 雖然下文中之例子可說明在執行單元 境中之中斷確認控制,但是亦可利用軟體 他實施例。例如,在某些實施例中,可以 或軟體之方式提供本發明,該電腦程式產 其中儲存有指令之一機器或電腦可讀取的 令可被用來將一電腦(或其他電子裝置) 行根據本發明的一程序。在其他的實施例 來執行本發明的步驟的固線邏輯之特定硬 化的電腦組件及客製化硬體組件之任何組 驟。 因此,一機器可讀取的媒體可包括用 機器(例如一電腦)可讀取的形式的資訊 不限於軟碟、光碟、唯讀光碟(Compact Memory ;簡稱 CD-ROM )、磁光碟、唯 Only Memory ;簡稱 ROM)、隨機存取ΐ Access Memory ;簡稱 RAM )、可抹除 體(Erasable Programmable Read Only 此外,我們當了 但不必然是互斥 性、結構、或特 不應以限制之方 請專利範圍以及 界定本發明的範 及邏輯電路的環 完成本發明的其 一電腦程式產品 品或軟體可包括 媒體,而該等指 程式化,以便執 中,可以包含用 體組件、或程式 合來執行該等步 來儲存或傳輸一 之任何機構,但 Disk Read Only 讀記憶體(Read ί己憶體(R a n d o m 可程式唯讀記憶 Memory ;簡稱 -8- 200527195 (5) EPROM )、電氣可抹除可程式唯讀記憶體(Electrically Erasable Programmable Read Only Memory ;簡稱 EEPROM )、磁卡或光學卡、快閃記憶體、經由網際網路 的傳輸、電信號、光信號、聲音信號、或其他形式的傳播 信號(例如載波、紅外線信號、及數位信號等的傳播信 號)等的媒體。 此外,一設計可能經過自創造至模擬至製造的各階 段。用來代表一設計的資料可以若干種方式來代表該設 計。首先,如在模擬中所用的,可利用一硬體描述語言或 其他的功能性描述語言來代表硬體。此外,可在該設計過 程的某些階段中製造具有邏輯及(或)電晶體閘的一電路 層級模型。此外,大部分的設計在某些階段中到達用來代 表該硬體模型中個各裝置的實體配置的一層級之資料。在 使用傳統的半導體製造技術之情形中,代表一硬體模型的 資料可以是指定用來製造積體電路的光罩之不同的光罩層 上之各種特徵部位是否存在之資料。在設計的任何表示法 中,可將該等資料儲存在任何形式的機器可讀取的媒體 中。爲了傳輸此種資訊而調變的或以其他方式產生的光波 或電波、記憶體、或諸如磁碟或光碟等的磁性或光學儲存 媒體可以是該機器可讀取的媒體。任何這些媒體可”載有” 或”指示’’設計或軟體資訊。當傳輸用來指示或載有該程式 碼或設計的一電載波’以致於執行了電信號的複製、緩衝 儲存、或重新傳輸時,即製作了 一份新的拷貝。因此,一 通訊供應商或一網路供應商可製作用來實施本發明的技術 -9- 200527195 (6) 的一製品之拷貝(一載波)。 圖1示出本發明可在其中操作的一虛擬機器環境 (1 〇 〇 )之一實施例。在該實施例中,原始平台硬體 (Π6)包含一運算平台,該運算平台可諸如執行一標準 作業系統(OS)或諸如一 VMM (112)等的一虛擬機器監 視器(VMM )。雖然通常以軟體實施VMM ( 1 1 2 ),但是 VMM (112)可模擬一原始機器介面,並將該介面輸出到 一較高階的軟體。該較高階的軟體可包含一標準或即時 OS,可以是具有有限的作業系統功能的極精簡之作業環 境,或者可能不包含傳統的0 S功能。或者,例如,v Μ Μ (112)可在另一 VMM之內或之上執行。可以硬體、軟 體、韌體、或各種技術的一組合來實施VMM。 平台硬體(116)可以是一個人電腦(Pers〇nal Computer ;簡稱 PC )、大型電腦、手持裝置、可攜式電 腦、數位視訊轉換器、或任何其他的運算系統。平台硬體 (1 1 6 )包含一處理器(1 1 8 )、記憶體(1 20 )、以及一 個或多個中斷來源(1 2 8 )。 處理器(1 1 8 )可以是可執行軟體的任何類型之處理 器,例如一微處理器、數位信號處理器、或微控制器等的 處理器。處理器(1 1 8 )可包含用來執行本發明的方法實 施例之微碼、可程式邏輯、或固線邏輯。雖然圖丨中R 示出一個此種處理器,但是該系統中可以有一個或多個處 理器。 記憶體(1 20 )可以是一硬碟、一軟碟、隨機存取記 -10- 200527195 (7) 憶體(RAM )、唯讀記憶體(Read Only Memory ;簡稱 ROM )、快閃記憶體、前述各裝置的任何組合、或處理器 (Π 8 )可讀取的任何類型之機器媒體。記憶體(1 2 〇 )可 儲存指令及(或)資料,以便執行本發明的方法實施例。 該等一個或多個中斷來源(1 2 8 )可以是諸如系統匯 流排(例如 PCI、ISA、AGP )上的輸入·輸出裝置(例如 網路介面卡、通訊埠、視訊控制器、磁碟控制器)、被整 合到晶片組邏輯或處理器中之裝置(例如即時時鐘、可程 式定時器、效能計數器)、或任何其他的中斷來源。 VMM ( 1 12 )向其他的軟體(亦即,”客戶”軟體)呈 現一個或多個虛擬機器(VM )的抽象,因而可將相同的 或不同的抽象提供給各客戶軟體。圖1示出兩個 VM (1〇2 )及(1 14 )。在每一 VM上執行的客戶軟體可包括 諸如一客戶 〇S( 104)或(106)、以及各種客戶應用軟 體(108)及(110)。客戶 〇S(104)及(1〇6)中之每 一客戶 OS預期要使用用來執行客戶 〇S(104)或 (106 )的 VM ( 102 )及(114 )內的實體資源(例如處 理器、暫存器、記憶體、及I/O裝置),並要處理其中包 括各系統裝置所產生的中斷等的各種事件。 目前在作業的 VM ( VMM ( 1 12 ))或目前並未在作 業的VM可能無須處理一中斷。如果目前在作業的VM要 處理一中斷,則控制保留在該V Μ內,且如果該V Μ已準 備好要接收該中斷(例如,以一指定的處理器暫存器中之 一中斷旗標指示),則將該中斷傳送到該VM。如果目前 -11 - 200527195 (8) 在作業的VM不要處理該中斷,則控制被轉移到VMM (112)。本說明書中將控制自客戶軟體轉移到Vmm
(112)稱爲 VM 退出(VMexit) aVMM(112)在 VM 退出後接收到控制之後,可執行各種處理,其中包括諸如 確認並處理該中斷,然後可將控制送還給客戶軟體。如果 該V Μ Μ本身並不處理該中斷。則該v μ Μ可協助將該中 斷傳送到被指定要處理該中斷的一 V Μ。本說明書中將控 制自VMM轉移到客戶軟體稱爲VM進入(VM entry )。 在一實施例中,處理器(1 1 8 )根據一虛擬機器控制 結構(Virtual Machine Control Structure;簡稱 VMCS) (124 )中儲存的資料而控制 VM ( 102 )及(1 14 )的作 業。VMCS ( 124 )是一種可存放客戶軟體的狀態、VMM (1 1 2 )的狀態、用來指示 V Μ Μ ( 1 1 2 )希望如何限制或 以其他方式控制客戶軟體的作業之執行控制資訊、以及用 來控制VMM ( 1 1 2 )語一 VM間之轉變的資訊等的資訊之 結構。當發生一 VM退出時,將客戶軟體所使用的處理器 狀態之各組成部分儲存到 VMCS ( 124 ),並自 VMCS (124 )載入 VMM ( 1 12 )所需的處理器狀態之各組成部 分。當發生一 VM進入時’使用 VMCS(124)中儲存的 資料來恢復先前於VM退出時被儲存的處理器狀態,並將 控制送還給客戶軟體。 在一實施例中,係將 VMCS ( 1 24 )儲存在記憶體 (1 2 0 )中。在另一例中,係將 V M C S ( 1 2 4 )儲存在處理 器(1 1 8 )中。在某些實施例中,係將多個V M C S結構用 -12- 200527195 (9) 來支援多個V Μ。 處理器(η 8 )自V M C S ( 1 2 4 )讀取資訊,以便決定 V Μ的執行環境,並限制該VΜ的行爲。在一實施例中’ 該V M C S中儲存的執行控制資訊包含用來指定一系統裝置 於一 VM作業期間所產生的一中斷是否將造成一 VM退出 之一中斷控制指示碼。或者’可將該中斷控制指示碼存放 在處理器(1 1 8 )、記憶體(1 2〇 )及處理器(1 1 8 )的一 組合、或任何其他的一個或多個儲存位置。 在一實施例中,VMM ( 1 1 2 )在要求將控制轉移到 VM ( 102 )或(1 14 )之前,先設定該中斷控制指示碼的 値。或者,使 VM(l〇2)及(114)中之每一 VM與該 VM的存在期間被設定爲一預定値或被改變的一不同之中 斷控制指示碼相關聯。 如果處理器(Π 8 )決定該待處理的中斷將要產生一 V Μ退出,則處理器(1 1 8 )然後進一步決定在執行該v μ 退出之前是否需要確認該中斷。中斷確認涉及在一處理器 匯流排上產生一中斷確認週期。在一實施例中,處理器 (1 1 8 )自中斷控制器擷取一中斷識別碼(例如〜中斷向 量),作爲該中斷確認週期的一部分。在一實施例中,是 否需要確認該中斷的決定係取決於一中斷確認指示碼的現 行値。在一實施例中’係將該中斷確認指示碼儲存在 V M C S ( 1 2 4 )中(例如,作爲該執行控制資訊的一部 分)。或者,可將該中斷確認指示碼存放在處理器 (1】8 )、記憶體(〗2 0 )及處理器(]】8 )的一組合、或 -13- 200527195 (10) 任何其他的一個或多個儲存位置。 在一實施例中,係由V Μ Μ ( 1 1 2 )控制該中斷確認指 不碼。在一實施例中,VMM (112)在首次呼叫一 VM之 前,先設定該中斷確認指示碼。例如,如果VMM ( Π 2 ) 必須決定其本身是否要處理一中斷,還是要根據中斷識別 碼而將該中斷傳送到一特定的V Μ,則V Μ Μ ( 1 1 2 )可將 該中斷確認指示碼設定爲一確認値。或者,如果諸如V Μ (102)及(114)的其中之一被指定要處理該等中斷來源 (128)所產生的所有中斷,貝ij VMM (112)可將該中斷 確認指不碼設定爲一非確認値,且當發生一中斷引起的一 V Μ退出時,V Μ Μ ( 1 1 2 )必然呼叫該被指定的V Μ。在一 實施例中,VMM ( 1 1 2 ),可修改該中斷確認指示碼。例 如,如果系統(1 〇 〇 )於開始時有一指定的 V Μ來處理所 有的中斷,但是後來加入了 一個將要處理該等中斷來源 (128)所產生的某些中斷之新VM,則VMM ( 112)可決 定改變該中斷確認指示碼。 如果處理器(Π8)決定要在VM退出退出之前先確 認該中斷,則處理器(11 8 )確認該中斷,然後將控制轉 變到VMM ( 1 1 2 )。在一實施例中,在轉變控制之前,處 理器(I 1 8 )先將所得到的中斷識別碼儲存在 VMM (1 1 2 )可存取的一儲存位置,作爲該中斷確認的一部 分。在一實施例中,係將該中斷識別碼儲存在 VMCS (I 2 4 )(的諸如一退出資訊欄位)中。 圖2是用來控制一虛擬機器系統中之中斷確認的一程 -14- 200527195 (11) 序(200 )的一實施例之一流程圖。可以可包含硬體(例 如電路、專用邏輯、可程式邏輯、或微碼等的硬體)、軟 體(例如在一般用途電腦系統或一專用機器上執行的軟 體)、或以上兩者的一組合之處理邏輯來執行該程序。 請參閱圖2,程序(2 0 0 )開始時,處理邏輯在處理 步驟(202 )中識別在客戶軟體的作業期間待處理的中
Kir 斷。 在處理步驟(204 )中,處理邏輯決定該中斷將要引 起一 VM退出。在一實施例中,係根據VMCS或任何其他 資料結構中存放的一中斷控制指示碼的現行値而作出該決 定。在替代實施例中,所有的中斷可在架構上必須引起一 VM退出,且不需要有針對該決定的任何中斷控制指示 碼。 然後在決定步驟(206)中,處理邏輯進一步決定在 將控制轉變到VMM之前是否先要確認該中斷。在一實施 例中,係使用V M C S或任何其他資料結構中存放的一中斷 確認指示碼而作出該決定。在替代實施例中,所有的中斷 都可被確認,且不需要有針對該決定的任何中斷確認指示 碼。 如果在決定步驟(206 )中所作的決定是肯定的,則 處理邏輯在處理步驟(20 8 )中確認該中斷,且在一實施 例中’擷取該中斷的識別碼,作爲該確認的一部分,並在 處理步驟(210 )中將該識別碼儲存在VMM可存取的一 儲存位置。在一實施例中,處理邏輯將該中斷識別碼儲存 -15- 200527195 (12) 在VMC S (的諸如一退出資訊欄位)中。然後在處理步驟 (212)中’產生一 VM退出。 如果在決定步驟(2 0 6 )所作的該決定是否定的,則 處理邏輯並不執行處理步驟(2 0 8 )及(2 1 0 ),且直接進 入處理步驟(2 1 2 )。 因此,使用程序(2 0 0 )時,效能將提升,且簡化了 VMM的功能。尤其在於一 VM退出之前並不先提供中斷 確認的系統中,在每一 VM退出之後’(諸如以設定一指 定的處理器暫存器中之一中斷旗標之方式)阻止中斷。因 此,在一實施例中,爲了決定中斷向量,VMM必須(諸 如藉由執行一重定該中斷旗標的指令而)解除對中斷的阻 止。處理器然後確認中斷控制器上的該中斷,擷取中斷識 別碼,搜尋一改向結構(例如,I n t e 1 ® P e n t i u η ® 4 的指 令集架構(Instruction Set Architecture ;簡稱 ISA)(在 本說明書中被稱爲 IA-32ISA )中之中斷描述符表 (I D T ))中與該中斷相關聯的一資料項,自該資料項提 取與該中斷相關聯的一處理程式之一描述符,並使用該描 述符而跳到適當的 VMM處理程式碼之開始處。該vmm 然後可適當地處理該中斷,這是因爲該VMM可根據處理 器先前呼叫哪一處理程式而識別中斷的來源。或者,在另 一實施例中,在VM退出之後,一 VMM可執行一系列對 中斷控制器的存取(例如I/O存取),以便決定中斷向 量,並確認該中斷。 於使用程序(2 0 0 )時,可在V Μ退出之前先確認中 -16- 200527195 (13) 斷。因此,一旦V Μ Μ接收到控制之後,該V Μ Μ立即存 取該中斷識別資訊。該VMM然後可將該中斷識別碼用來 找出適當的中斷處理程式碼或VM。因此,VMM不需要解 除對中斷的阻止,處理器也不需要搜尋一改向結構,無須 自一對應的資料項提取與該中斷相關聯的一處理程式之描 述符,且無須跳到該適當的VMM異常狀況處理程式碼之 開始處。因此,又可簡化VMM軟體設計及確認機制,這 是因爲VMM不再需要有前文所述的必要之碼及(或)結 構(例如,一改向結構、及使用I/O作業以確認中斷的碼 等的碼及(或)結構)。 圖3是用來處理一虛擬機器環境中之中斷的一系統 ( 3 00 )的一實施例之一方塊圖。 請參閱圖3,各裝置(3 1 4 )(例如I/O裝置)產生 中斷要求而向系統軟體要求服務,而該等中斷要求係經由 一條或多條中斷要求線(3 1 6 )而被傳送到一中斷控制器 (3 1 3 )。一旦中斷控制器(3 1 3 )識別了一有作用的中斷 要求線(3 1 6 )之後,中斷控制器(3 1 3 )即將一中斷信號 (3 10 )傳送到CPU ( 3 02 )。中斷控制器(3 1 3 )可包含 此項技術中習知的遮罩及優先順序邏輯。在一實施例中, 可以有通到 CPU ( 3 02 )的一條以上的中斷信號線 (3 1 0 ),或者可經由一匯流排訊息或利用任何其他的通 訊機制或協定而傳送該中斷”信號”。 中斷控制器介面邏輯(3 04 )回應來自中斷控制器 (3 1 3 )的一有作用的中斷信號(3 1 0 ),而決定哪一軟體 - 17- 200527195 (14) 已控制了該中斷。如果在一 VMM的作業期間發生了該中 斷,則由該VMM管理該中斷。或者,如果在客戶軟體的 作業期間發生了該中斷,則中斷控制器介面邏輯(3 04 ) 決定是由目前在作業的客戶軟體或是由該VMM控制該中 斷。如果營該VMM控制該中斷,則產生一 VM退出,以 便將控制轉移到該VMM。 在一實施例中,該決定係取決於 V M C S ( 3 0 8 )中儲 存的一中斷控制指示碼(3 2 0 )之現行値(例如,作爲執 行控制資訊的一部分)。在一實施例中,VMM在首次要 求一特定VM的一 VM資料項之前,先設定中斷控制指示 碼(3 2 0 )的値,且在該 VM的整個存在期間不會改變該 値。例如,如果該系統具有用來處理所有中斷的某一 VM,則會將該VM的中斷控制指示碼(3 2 0 )設定成可讓 客戶軟體控制中斷;會將所有其他的VM之中斷控制指示 碼(3 2 0 )設定爲VMM控制。或者,如果可依據中斷識 別碼而由不同的VM及(或)VMM處理中斷,且VMM需 要決定由哪一實體來處理現有的中斷,則可將中斷控制指 示碼(3 20 )設定成指示用於所有VM的VMM控制。在其 他的實施例中,可在一特定V Μ的存在期間改變.中斷控 制指示碼(3 20 )的値。 如果中斷控制指示碼(3 20 )指定由目前在作業的 VM控制中斷,則中斷控制器介面邏輯(3 04 )進一步決 定該目前在作業的VM是否已準備好接收中斷。在一實施 例中,當客戶軟體接受中斷的能力改變時,中斷控制器介 -18- 200527195 (15) 面邏輯(304)在查詢可由客戶軟體更新的一中斷旗標 (3 06 )之後,作出該決定。例如,在iA_32ISA中, EF LAG暫存器存放有IF中斷旗標位元,而該位元部分地 控制了是否要將一中斷傳送到該軟體(其他的因素可能阻 止IA-32ISA中之中斷,且在決定是否可傳送一中斷時, 必須考慮到這些因素)。在一實施例中,中斷旗標 (3 06 )被存放於在中斷控制器介面邏輯(3 04 )之外或之 內的CPU(302)中。 如果中斷控制器介面邏輯(3〇4)決定客戶軟體已準 備好接收中斷,則在中斷控制器(3 1 3 )上以一中斷確認 週期確認該中斷要求,例如,在一實施例中,中斷控制器 (3 1 3 )送回具有最高優先順序的中斷之識別碼(被稱爲 中斷向量)。中斷控制器介面邏輯(3〇4)根據該中斷向 量而搜尋該VM的IDT中與該中斷相關聯的一資料項,自 該資料項提取與該中斷相關聯的一處理程式之描述符,並 使用該描述符而跳到適當的VM異常狀況處理程式碼之開 始處。在另一實施例中,只有單一的中斷處理程式,且不 需要任何中斷識別碼。否則,如果該V Μ目前並未準備好 接收中斷,則將該中斷保持在一待處理狀態,直到該VM 準備好爲止。 如果中斷控制指示碼(3 2 0 )指定由 V Μ Μ控制中斷 (亦即,將要產生一 VM退出),則在一實施例中,中斷 控制器介面邏輯(3 04 )查詢在本說明書中被稱爲監視中 斷旗標(Μ ο η ]· t 〇 r I n t e r r u p t F1 a g ;簡稱 Μ I F ) ( 3 2 2 )的一 -19- 200527195 (16) 標 實 到 阻 將 行 生 將 不 決 引 查 指 例 且 碼 刖 設 有 中斷轉變旗標。該ΜIF ( 3 2 2 )的作用類似於中斷旗 (306),用來指示中斷是否可造成轉變到vmm。在一 施例中,MIF (322)被存放在 VMCS(308),且受 V Μ Μ的控制。在另一實施例中,Μ IF ( 3 2 2 )被存放在 機窃暫存益或記憶體中。如果MIF ( 322)指示中斷被 止,則在改變MIF ( 3 22 )以解除對中斷的阻止之前, 不產生任何的VM退出。如果諸如目前在作業的Vm執 必須在一定時間內執行完畢的工作,且V Μ Μ不希望發 任何VM退出,以避免降低該VM的效能,則VMM可 MIF ( 3 22 )設定爲一阻止値。 在另一實施例中,中斷控制器介面邏輯(304)並 查詢MIF ( 3 22 ),且只根據中斷控制指示碼(3 20 )而 定該中斷是否將要引起一 VM退出。 如果中斷控制器介面邏輯(304)決定該中斷將要 起一 VM退出,則中斷控制器介面邏輯(3〇4 )進一步 詢一中斷確認指示碼(3 24 )。中斷確認指示碼(3 24 ) 定在一 VM退出之前是否先要確認該中斷。在一實施 中,中斷確認指示碼(324)被存放在VMCS(308), 受到V Μ Μ的控制。在另一實施例中,中斷確認指示 (3 24 )被存放在一機器暫存器或記憶體中。 如果中斷確認指示碼(3 2 4 )指定在一 V Μ退出之 不需要任何確認,則中斷控制器介面邏輯(3 0 4 )產生 VM退出。VMM然後可諸如將中斷控制指示碼(32〇 ) 定爲一 V Μ控制値’並要求將控制轉變到被指定處理所 -20- 200527195 (17) 中斷的一 v Μ。在另一實施例中,V Μ Μ本身可(諸如存取 中斷控制器(3 1 3 )的一適當之暫存器,以便讀取該中斷 的向量,而)決定中斷向量。 如果中斷確認指不碼(3 2 4 )指定要確認該中斷,則 中斷控制器介面邏輯(3 04 )確認中斷控制器(3 ! 3 )上的 中斷,且在一實施例中自中斷控制器(3 1 3 )擷取中斷向 量値,並將該中斷向量値儲存在V M C S的中斷向量欄位 ( 3 26 )中。然後產生一 V Μ退出。V Μ Μ在接收到控制之 後,可(諸如藉由以向量指向VMM中之一處理程式,或 藉由呼叫適當的VM來處理該中斷等的方式而)決定應如 何處理該中斷。在一實施例中,該決定可基於來自VMCS (3 0 8 )的中斷向量(3 2 6 )。 圖4是用來處理一虛擬機器系統中之中斷的一程序 (400 )的一實施例之一流程圖。可以可包含硬體(例如 電路、專用邏輯、可程式邏輯、或微碼等的硬體)、軟體 (例如在一般用途電腦系統或一專用機器上執行的軟 體)、或以上兩者的一組合之處理邏輯來執行該程序。 請參閱圖4,程序(4 0 0 )開始時,處理邏輯在處理 步驟(4 02 )中識別在客戶軟體的作業期間待處理的一中 斷之存在。然後在決定步驟(404)中,處理邏輯使用一 中斷控制指示碼而決定由一 VMM或由該客戶軟體控制該 中斷。如果該中斷控制指示碼指定將由該客戶軟體控制該 中斷,則處理邏輯在決定步驟(4 06 )中進一步決定該客 戶軟體是否已準備好接收中斷。在一實施例中,係查詢一 -21 - 200527195 (18) 中斷旗標(例如E F L A G S暫存器中之I F位元)而作出該 決定。如果該決定是肯定的,則處理邏輯在處理步驟 (4 0 8 )中將將該中斷傳送到該客戶軟體。將該中斷傳送 到該客戶軟體包括:以中斷控制器確認該中斷;擷取中斷 向量;以及根據該向量而將控制遞交給客戶軟體上的適當 處理程式。否則在處理步驟(4 1 0 )中將該中斷保持在待 處理狀態,直到該客戶軟體準備好處理該中斷爲止。 如果由VMM控制該中斷,則在一實施例中,處理邏 fe於決疋步驟(4 1 2 )中決定是否將一監視中斷旗標 (ΜIF )設定爲一阻止値。如果確係如此,則在處理步驟 (4 1 4 )中將該中斷保持在待處理狀態,直到該μ I F被改 變爲一解除阻止値爲止。如果並非如此,則處理邏輯在決 定步驟(416)中使用一中斷確認指示碼而進一步決定是 否要確認該中斷。如果並非如此,則處理邏輯並不確認該 中斷,並直接進入處理步驟(424 ),以便產生一 VM退 出。 如果要確認該中斷,則處理邏輯在處理步驟(4 1 8 ) 中確認中斷控制器上之該中斷。在某些實施例中,處理邏 輯在處理步驟(420 )中自該中斷控制器擷取中斷向量, 並在處理步驟(422 )中將該中斷向量儲存在VMCS中。 最後,處理邏輯在處理步驟(424 )中產生一 VM退出。 因此,已說明了一種用來處理一虛擬機器系統中之中 斷的方法及裝置。我們當了解,前文說明之用意爲舉例說 明’而非對本發明加以限制。熟習此項技術者在參閱且了 -22- 200527195 (19) 解前文的說明之後,將易於作出許多其他的實施例。因 此,應參照最後的申請專利範圍及這些申請專利範圍應享 有的完整等效範圍而決定本發明的範圍。 【圖式簡單說明】 係參照各附圖而以舉例之方式單非以限制之方式說明 本發明,且在這些附圖中,相同的代號參照到類似的元 件,這些附圖有: 圖1示出本發明可在其中操作的一虛擬機器環境之一 實施例; 圖2是用來控制一虛擬機器系統中之中斷確認的一程 序的一實施例之一流程圖。 圖3是用來處理一虛擬機器環境中之中斷的一系統的 一實施例之一方塊圖;以及 圖4是用來處理一虛擬機器系統中之中斷的一程序的 一實施例之一流程圖。 【主要元件符號說明】 100 虛 擬 機 器 環 境 1 1 2 虛 擬 機 器 監 視器 116 原 始 平 台 硬 體 118 處 理 器 120 記 憶 體 1 28 中 斷 來 源 -23- 200527195 (20) 102,114 虛擬機器 104,106 客戶作業系統 108,110 客戶應用軟體 1 24,3 0 8 虛擬機器控制結構 300 系統 3 14 裝置 3 1 3 中斷控制器 3 16 中斷要求線 3 10 中斷信號 302 中央處理單元 304 中斷控制器介面邏輯 320 中斷控制指示碼 306 中斷旗標 322 監視中斷旗標 324 中斷確認指示碼 326 中斷向量欄位
-24-

Claims (1)

  1. 200527195 (1) 十、申請專利範圍 1. 一種控制方法,包含下列步驟: 識別在客戶軟體的一作業期間待處理的一中斷; 決定該中斷將要造成控制轉變到一虛擬機器監視器 (VMM); 決定是否要在控制轉變到該 VMM之前先確認該中 斷; 如果要確認該中斷,則確認該中斷;以及 將控制轉變到該V Μ Μ。 2 ·如申請專利範圍第1項之控制方法,其中決定是否 要確認該中斷之該步驟包含下列步驟:決定一中斷確認指 示碼是否被設定爲一確認値。 3 ·如申請專利範圍第2項之控制方法,其中由該 VMM控制該中斷確認指示碼。 4 ·如申請專利範圍第2項之控制方法,其中該中斷確 認指示碼被儲存在一虛擬機器控制結構(V M C S )中。 5 ·如申請專利範圍第1項之控制方法,進一步包含下 列步驟: 在將控制轉變到該V Μ Μ之前不要先確認該中斷;以 及 在完成將控制轉變到該VMM之前,避免確認該中 斷。 6·如申請專利範圍第〗項之控制方法,其中確認該中 斷之該步驟包含下列步驟:自一中斷控制器接收一識別 -25- 200527195 (2) 碼。 7 .如申請專利範圍第6項之控制方法,進一步包含下 列步驟: 在完成將控制轉變到該VMM之後,使該VMM可使 用與該中斷識別碼有關的資訊。 8.如申請專利範圍第 7項之控制方法,其中使該 VMM可使用與該中斷識別碼有關的資訊之該步驟包含下 列步驟: 在完成將控制轉變到該VMM之前,先將該中斷識別 碼儲存在一虛擬機器控制結構(VMCS )中。 9 ·如申請專利範圍第1項之控制方法,其中決定該中 斷將要造成控制轉變到該VMM之該步驟包含下列步驟: 決定一中斷控制指示碼被設定爲一 V Μ Μ控制値。 1 〇 ·如申請專利範圍第9項之控制方法,其中該中斷 控制指示碼被儲存在一虛擬機器控制結構(VMCS )中。 1 1 .如申請專利範圍第9項之控制方法,其中決定該 中斷將要造成控制轉變到該V Μ Μ之該步驟進一步包含下 列步驟: 決疋一監視中斷旗標被設定爲一解除阻止値。 1 2 ·如申請專利範圍第9項之控制方法,其中該監視 中斷旗標被設定爲一虛擬機器控制結構(VMCS )。 1 3 ·〜種控制裝置,包含: 中斷控制器,用以自一個或多個系統裝置接收一中 斷,以及 -26- 200527195 (3) 被耦合到該中斷控制器的一中斷控制器介面邏輯,用 以自該中斷控制器接收該中斷的一通知,以便決定該中斷 是否將要造成控制轉變到一虛擬機器監視器(VMM ), 決定是否要在控制轉變到該VMM之前先確認該中斷,且 如果要確認該中斷,則確認該中斷,以及將控制轉變到該 VMM。 1 4 ·如申請專利範圍第1 3項之控制裝置,其中該中斷 控制器介面邏輯要決定一中斷確認指示碼是否被設定爲一 確認値,而決定是否要確認該中斷。 1 5 ·如申請專利範圍第1 4項之控制裝置,其中由該 VMM控制該中斷確認指示碼。 1 6 ·如申請專利範圍第1 4項之控制裝置,其中該中斷 確認指不碼被儲存在一虛擬機器控制結構(v M C S )中。 1 7 . —種控制系統,包含: 一記憶體,用以儲存一個或多個指示碼;以及 被耦合到該記憶體的一處理器,用以將該等一個或多 個指不碼用來決定一中斷是否將要造成控制轉變到一虛擬 機器監視器(V Μ Μ ),決定是否要在控制轉變到該VMM 之則先確g忍g亥中斷’且如果要確認該中斷,則確認該中 斷9以及將控制轉變到該VMM。 1 8 .如申請專利範圍第1 7項之控制系統,其中該處理 器要決定一中斷確認指示碼是否被設定爲一確認値,而決 定是否要確認該中斷。 1 9·如申請專利範圍第1 8項之控制系統,其中由該 -27- 200527195 (4) V Μ Μ控制該中斷確認指示碼。 2 〇 .如申請專利範圍第1 8項之控制系統,其中該中斷 確認指示碼被儲存在一虛擬機器控制結構(V M C S )中。 2 1 · —種存放有指令之機器可讀取的媒體,當該等指 令被一處理系統執彳了時,使該處理系統執行一方法,該方 法包含下列步驟: 識別在客戶軟體的一作業期間待處理的一中斷; 決定該中斷將要造成控制轉變到一虛擬機器監視器 (VMM); 決定是否要在控制轉變到該 VMM之前先確認該中 斷, 如果要確認該中斷,則確認該中斷;以及 將控制轉變到該VMM。 2 2如申請專利範圍第2 1項之機器可讀取的媒體,其 中決定是否要確認該中斷之該步驟包含下列步驟:決定一 中斷確認指示碼是否被設定爲一確認値。 23·如申請專利範圍第22項之機器可讀取的媒體,其 中由該VMM控制該中斷確認指示碼。 2 4.如申請專利範圍第22項之機器可讀取的媒體,其 中該中斷確認指示碼被儲存在一虛擬機器控制結構 (VMCS )中。
TW093129485A 2003-09-30 2004-09-29 Mechanism to control hardware interrupt acknowledgement in a virtual machine system TWI261747B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/676,887 US7237051B2 (en) 2003-09-30 2003-09-30 Mechanism to control hardware interrupt acknowledgement in a virtual machine system

Publications (2)

Publication Number Publication Date
TW200527195A true TW200527195A (en) 2005-08-16
TWI261747B TWI261747B (en) 2006-09-11

Family

ID=34422122

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093129485A TWI261747B (en) 2003-09-30 2004-09-29 Mechanism to control hardware interrupt acknowledgement in a virtual machine system

Country Status (4)

Country Link
US (1) US7237051B2 (zh)
CN (1) CN100349124C (zh)
TW (1) TWI261747B (zh)
WO (1) WO2005033937A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044408A1 (en) * 2003-08-18 2005-02-24 Bajikar Sundeep M. Low pin count docking architecture for a trusted platform
US8127098B1 (en) * 2004-05-11 2012-02-28 Globalfoundries Inc. Virtualization of real mode execution
US7607011B1 (en) * 2004-07-16 2009-10-20 Rockwell Collins, Inc. System and method for multi-level security on a network
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
JP4357442B2 (ja) * 2005-03-23 2009-11-04 株式会社東芝 プラン実行装置、プラン実行方法およびプログラム
US9785485B2 (en) * 2005-07-27 2017-10-10 Intel Corporation Virtualization event processing in a layered virtualization architecture
CN100399273C (zh) * 2005-08-19 2008-07-02 联想(北京)有限公司 一种虚拟机系统及其硬件配置方法
CN100420202C (zh) * 2005-10-20 2008-09-17 联想(北京)有限公司 计算机管理系统以及计算机管理方法
US8209681B1 (en) * 2005-11-08 2012-06-26 Hewlett-Packard Development Company, L.P. Method of sampling hardware events in computer system
US8286162B2 (en) 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
US7533207B2 (en) 2006-12-06 2009-05-12 Microsoft Corporation Optimized interrupt delivery in a virtualized environment
US7788434B2 (en) * 2006-12-15 2010-08-31 Microchip Technology Incorporated Interrupt controller handling interrupts with and without coalescing
US7562173B2 (en) * 2007-03-23 2009-07-14 Intel Corporation Handling shared interrupts in bios under a virtualization technology environment
US8151264B2 (en) * 2007-06-29 2012-04-03 Intel Corporation Injecting virtualization events in a layered virtualization architecture
US8453143B2 (en) 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
US8099541B2 (en) * 2008-01-22 2012-01-17 Globalfoundries Inc. Minivisor entry point in virtual machine monitor address space
WO2009123640A1 (en) * 2008-04-04 2009-10-08 Hewlett-Packard Development Company, L.P. Virtual machine manager system and methods
GB2462258B (en) * 2008-07-28 2012-02-08 Advanced Risc Mach Ltd Interrupt control for virtual processing apparatus
US20100174841A1 (en) * 2008-12-31 2010-07-08 Zohar Bogin Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
US20110106522A1 (en) * 2009-11-05 2011-05-05 Chinya Gautham N virtual platform for prototyping system-on-chip designs
US8566492B2 (en) * 2009-12-31 2013-10-22 Intel Corporation Posting interrupts to virtual processors
US8612659B1 (en) * 2010-12-14 2013-12-17 Vmware, Inc. Hardware interrupt arbitration in virtualized computer systems
US9043562B2 (en) 2011-04-20 2015-05-26 Microsoft Technology Licensing, Llc Virtual machine trigger
TWI463331B (zh) * 2011-04-26 2014-12-01 Global Unichip Corp 系統單晶片之模擬系統及方法
US8972642B2 (en) * 2011-10-04 2015-03-03 Qualcomm Incorporated Low latency two-level interrupt controller interface to multi-threaded processor
JP5813554B2 (ja) * 2012-03-30 2015-11-17 ルネサスエレクトロニクス株式会社 半導体装置
US10331589B2 (en) * 2013-02-13 2019-06-25 Red Hat Israel, Ltd. Storing interrupt location for fast interrupt register access in hypervisors
US9563455B2 (en) * 2013-10-28 2017-02-07 Intel Corporation Virtualization exceptions
US9772868B2 (en) 2014-09-16 2017-09-26 Industrial Technology Research Institute Method and system for handling interrupts in a virtualized environment
US9910699B2 (en) 2014-10-28 2018-03-06 Intel Corporation Virtual processor direct interrupt delivery mechanism
CN109144679B (zh) 2017-06-27 2022-03-29 华为技术有限公司 中断请求的处理方法、装置及虚拟化设备
US11625258B2 (en) * 2017-10-31 2023-04-11 Nokia Solutions And Networks Oy Method, apparatus and system for real-time virtual network function orchestration
GB2574049B (en) * 2018-05-24 2020-10-07 Advanced Risc Mach Ltd Interrupt controller
CN111506530A (zh) * 2019-01-30 2020-08-07 智原科技股份有限公司 中断管理系统及其管理方法

Family Cites Families (143)

* 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
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
JPS61206043A (ja) 1985-03-11 1986-09-12 Hitachi Ltd 仮想計算機システムにおける割込制御方法
JPS61206057A (ja) 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
US4764864A (en) 1985-04-04 1988-08-16 Nec Corporation Circuit arrangement capable of improving overhead of a control program on interrupting into a virtual machine
JPS6258341A (ja) * 1985-09-03 1987-03-14 Fujitsu 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
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
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
JPS63182749A (ja) * 1987-01-26 1988-07-28 Nec Corp 計算機システムのタイマ制御装置
JPH0810437B2 (ja) * 1987-05-11 1996-01-31 株式会社日立製作所 仮想計算機システムのゲスト実行制御方式
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 コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
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 データ処理装置
DE69534757T2 (de) * 1994-09-15 2006-08-31 International Business Machines Corp. System und Verfahren zur sicheren Speicherung und Verteilung von Daten unter Verwendung digitaler Unterschriften
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
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
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
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
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
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
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
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
US7177952B1 (en) * 1999-10-01 2007-02-13 Nortel Networks Limited Method and system for switching between two network access technologies without interrupting active network applications
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
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
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
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
US7318141B2 (en) * 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines

Also Published As

Publication number Publication date
WO2005033937A1 (en) 2005-04-14
US20050080965A1 (en) 2005-04-14
CN1648866A (zh) 2005-08-03
US7237051B2 (en) 2007-06-26
CN100349124C (zh) 2007-11-14
TWI261747B (en) 2006-09-11

Similar Documents

Publication Publication Date Title
TW200527195A (en) Mechanism to control hardware interrupt acknowledgement in a virtual machine system
RU2263343C2 (ru) Механизм для управления внешними прерываниями в системе виртуальных машин
US7177967B2 (en) Chipset support for managing hardware interrupts in a virtual machine system
JP4688862B2 (ja) 仮想マシン環境における仮想マシンのシングルステップ機能のサポートを提供すること
US8572628B2 (en) Inter-thread data communications in a computer processor
KR100977662B1 (ko) 2-레벨 인터럽트 서비스 루틴을 제공하기 위한 방법 및 프로세서
RU2358309C2 (ru) Система для обеспечения переходов между режимами работы устройства
JP4579972B2 (ja) 仮想マシン環境におけるゲストソフトウェアの実行中にオープン・イベント・ウィンドウの認識を容易にする方法および装置
JP2008501198A (ja) 仮想マシン環境におけるネストフォールトの支持
WO2015062199A1 (zh) 一种虚拟处理器之间的中断的实现方法、相关装置和系统
US20210334228A1 (en) Managing network interface controller-generated interrupts
US11704139B2 (en) Service processing method and apparatus, electronic device, and storage medium
CN113821257B (zh) 处理器内核调用栈信息查询方法及装置
JPH0594317A (ja) 仮想計算機の入出力割り込み処理方式
EP3633507A1 (en) Technologies for secure and efficient native code invocation for firmware services
US20110179253A1 (en) Efficient multi-core processing of events
US20150143089A1 (en) System performance enhancement with smi on multi-core systems
WO2023241307A1 (zh) 管理线程的方法及装置
US20140149781A1 (en) Method for Batch Execution of System Calls in an Operating System
CN117407054A (zh) 中断处理方法、电子设备和存储介质
JP2023018655A (ja) マルチテナントスケーラブルアクセラレータの高性能ページフォールト処理のための方法および装置
CN117272412B (zh) 中断控制寄存器保护方法、装置、计算机设备及存储介质
CN114026549B (zh) 用于中止主控制器与所连接的外围设备之间的阻塞总线访问的方法和装置
CN114911597A (zh) 一种运行系统的切换方法及计算设备
CN117909042A (zh) 一种基于Cortex-R核的系统中断及任务切换管理方法及系统

Legal Events

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