TWI525546B - 用於藉由把來自實體裝置控制器之中斷重新導向來提供多重虛擬裝置控制器之裝置及方法 - Google Patents
用於藉由把來自實體裝置控制器之中斷重新導向來提供多重虛擬裝置控制器之裝置及方法 Download PDFInfo
- Publication number
- TWI525546B TWI525546B TW098144755A TW98144755A TWI525546B TW I525546 B TWI525546 B TW I525546B TW 098144755 A TW098144755 A TW 098144755A TW 98144755 A TW98144755 A TW 98144755A TW I525546 B TWI525546 B TW I525546B
- Authority
- TW
- Taiwan
- Prior art keywords
- interrupt
- interrupt message
- processor
- device controller
- address
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000004044 response Effects 0.000 claims 1
- 230000010365 information processing Effects 0.000 description 10
- 238000013500 data storage Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 235000012431 wafers Nutrition 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明係有關資訊處理的技術領域,且更確切來說,係有關資訊處理系統中的虛擬化技術。
大致上來說,資訊處理系統中的虛擬化概念允許一或多個作業系統(各稱為〝OS〞)的多個事例能在一單一資訊處理系統上運作,即使係把各個OS設計為具有對該系統以及其資源的完整、直接控制。虛擬化技術典型地係藉著使用軟體(例如,一虛擬機器監視器或稱為一〝VMM〞)來對各個OS呈現具有虛擬資源的一〝虛擬機器〞(〝VM〞)來實行,其包括該OS可完全地且直接地控制的一或多個虛擬處理器,而該VMM維持用以實行虛擬化策略的一系統環境,例如在該等VM(該〝虛擬化環境〞)之間共享且分配實體資源。係把各個OS以及在一VM上執行的任何其他軟體稱為一〝客戶〞或〝客戶軟體〞,而一〝主機〞或〝主機軟體〞則是在該虛擬化環境外部運作的軟體,例如一VMM。
一資訊處理系統中的一實體處理器可支援虛擬化技術,例如藉著支援用以進入一虛擬化環境以於一VM中的一虛擬處理器(即,受到一VMM施加之限制的一實體處理器)上執行一客戶軟體的一指令。在該虛擬化環境中,可截取到某些事件、操作、以及狀況,例如外部中斷或嘗試著
存取具特權暫存器或資源,即,使該處理器退出該虛擬化環境,以使一VMM可運作以實行虛擬化策略。例如,可由該VMM截取外部中斷並且將其以路由送到適當的虛擬處理器。
可依據專屬方式把該系統中的一實體資源,例如一輸入/輸出裝置控制器,分派或分配給一VM。替代地,可藉著截取所有包含該資源的異動使由多個VM共享一實體資源,以使該VMM可進行各個異動、使各個異動重新導向、或者限制各個異動。第三種方法可為設計該實體資源以提供供其作為多重虛擬資源的能力。
依據本發明之一實施例,係特地揭露一種裝置,其包含:一處理器;一實體裝置控制器;以及虛擬化邏輯組件,其用以接收來自該實體裝置控制器的一第一中斷,且響應地從多個虛擬裝置控制器中的一虛擬裝置控制器傳送一第二中斷到該處理器。
係以舉例方式且不具限制性的方式在圖式中展示出本發明的實施例。
第1圖展示出根據本發明一實施例之一種用以使一中斷重新導向的裝置。
第2圖展示出根據本發明一實施例之一種用以使一中斷重新導向的方法。
第3圖展示出根據本發明一實施例之一種用以使一中斷重新導向以儲存資訊的分錄項。
本發明可體現於一種用以使一中斷重新導向的裝置或方法,如下所述。在詳細說明中,將列出多種特定細節,例如部件與系統組態,以便提供本發明的完整說明。然而,熟知技藝者將可了解的是,不需要該等特定細節亦可實現本發明。此外,並不詳細地說明已為人熟知的結構、電路等,以避免不必要地模糊本發明的焦點。
所欲的是使一單一實體裝置控制器能受到多個虛擬機器共享,而不需要一VMM截取所有包含該裝置控制器的所有異動,或者重新設計該裝置控制器以支援虛擬化技術。因此,本發明的實施例可用來使來自一單一實體裝置控制器的一中斷重新導向,以使該實體裝置控制器以多個虛擬裝置控制器的樣式出現。
本發明實施例的元件可實行於硬體、軟體、韌體中、或者可實行於硬體、軟體、或韌體的任何組合中。〝硬體〞一語大致上表示一種具有一實體結構的元件,例如電子、電磁、光學、電光學、機械性、電機械性零件等。〝軟體〞一語大致上表示一種邏輯結構、一種方法、一種程序、一種程式、一種常式、一種處理方式、一種演繹法、一種方程式、一種表式等。〝韌體〞一語大致上表示一種邏輯結構、一種方法、一種程序、一種程式、一種常式、一種處理方
式、一種演繹法、一種方程式、或一種實行於或體現於一硬體結構(例如,快閃記憶體或唯讀記憶體)的表式。韌體的實例為微碼、可覆寫控制儲存庫、以及微編程結構。
第1圖展示出根據本發明一實施例的資訊處理系統100,其中可使一中斷重新導向。資訊處理系統100包括裸平台硬體110,其可為能執行任何OS、VMM、或其他軟體的任何裝置。例如,裸平台硬體110可為一個人電腦、一大型主機電腦、一可攜式電腦、一手持式裝置、一機上盒、一伺服器、或任何其他運算系統的硬體。在此實施例中,裸平台硬體110包括處理器120、晶片組130、系統記憶體140、以及裝置控制器150。
處理器120可為具有一或多個執行核心的任何部件,其中各個執行核心可依據多種不同類型處理器中的任一種,包括一般用途微處理器,例如Intel® Pentium®處理器系列、Itanium®處理器系列、或美商英特爾公司出品的其他處理器系列,或另一家公司出品的另一種處理器,或一數位信號處理器或微控制器。雖然第1圖僅展示出一個處理器120,裸處理硬體110可包含任何數量的處理器,包括任何數量的多核心處理器,各個多核心處理器具有任何數量的執行核心,以及任何數量的多執行緒處理器,各個多執行緒處理器具有任何數量的執行緒。
晶片組130可為支援記憶體操作、輸入/輸出操作、組態、控制、內部或外部介面、連線、或通訊功能(例如,〝膠合(glue)〞邏輯組件與匯流排橋接器)的任何群組電路與邏
輯組件,及/或用於處理器120及/或系統100的任何相似功能。可把晶片組130的個別元件聚集在一單一晶片上、一對晶片上、在多個晶片之間散佈、及/或部分地、全部地、或冗餘地整合、或根據一種分散方式分散到包括處理器120的一或多個處理器中。在此實施例中,晶片組130包括根據本發明一實施例使中斷重新導向的虛擬化邏輯組件132,如下所述。在其他實施例中,虛擬化邏輯組件132可包括在系統100的他處中。
系統記憶體140可包括上面可儲存資訊(例如資料及/或指令)的任何媒體,例如靜態或動態隨機存取記憶體、半導體式唯讀或快閃記憶體、磁性或光學碟片記憶體、或任何其他可由處理器120讀取的媒體類型、或該等媒體的任何組合。
裝置控制器150可代表I/O、周邊裝置、或為一中斷請求之來源之其他裝置中任一種的一控制器,例如一硬碟控制器、一音訊控制器、一網路介面控制器、一周邊匯流排控制器等。裝置控制器150可體現於一分立部件中,或者可包括在具有任何其他裝置控制器的一種整合式部件中。在一實施例中,裝置控制器150可代表多功能I/O、周邊裝置、或其他裝置控制器中的一項功能。裝置控制器150可包括用以儲存組態資訊的組態儲存體152。
處理器120、晶片組130、系統記憶體140、以及裝置控制器150可根據任何已知方法彼此耦合或彼此通訊,例如透過一或多個並列式、連續式、管道式、異步式、同步
式、有線、無線、或其他匯流排或點對點連線或通訊構件直接地或間接地耦合或通訊。例如,在此實施例中,晶片組130包括介面131,其透過任何該等連線或其他通訊構件用以從裝置控制器150接收信號、訊息、及/或異動(例如中斷請求),或用以發送信號、訊息、及/或異動到裝置控制器150及/或系統100中之任何其他代理器或部件。相似地,裝置控制器150包括介面151,其用以發送及/或接收信號、訊息、及/或異動到晶片組130及/或到系統100中的任何其他代理器或部件。系統100亦可包括任何數量的額外代理器、部件、或連線。
系統100亦包括VMM 160以及VM 162與VM 164。VMM 160可為任何軟體、韌體、或受安裝以在裸平台硬體110上執行或受裸平台硬體110存取的硬體主機,以把VM(即裸平台硬體110)的抽象概念呈現給客戶,或者以產生VM、管理VM、並且在系統100中實行虛擬化策略。在其他實施例中,一主機可為任何VMM、超級監督器(hypervisor)、OS、或能夠控制裸平台硬體110的其他軟體、韌體、或硬體。一客戶可為任何OS、任何VMM,包括VMM 160的另一個事例、任何超級監督器、或任何應用程式、或其他軟體。
各個客戶期望能存取資源,例如裸平台硬體110或由VMM 160虛擬化之一平台的處理器與平台暫存器、記憶體、以及輸入/輸出裝置,根據該處理器的架構以及呈現在該VM中的該平台而定。第1圖展示出2個VM 162與VM
164,其各安裝有一客戶OS以及任何數量的客戶應用程式。雖然第1圖展示出2個VM,在本發明的範圍中,可產生任何數量的VM,並且可安裝任何數量的客戶OS與客戶應用程式以在各個VM上執行。
請回頭參照晶片組130,虛擬化邏輯組件132可包括任何電路、邏輯組件、或其他結構,例如韌體,以使來自一實體裝置控制器(例如,實體裝置控制器150)的一中斷重新導向。晶片組130亦包括上述的介面131、組態儲存體134、以及資料儲存體136。組態儲存體134與資料儲存體136可包括上面儲存有資訊的任何媒體;例如,組態儲存體134可包括可編程暫存器,且資料儲存體136可包括靜態隨機存取記憶體。虛擬化邏輯組件132可從組態儲存體134及/或資料儲存體136讀取出資訊,並且把資料寫入到組態儲存體134及/或資料儲存體136中,以判定並維持多個實體裝置控制器中要捕捉之該中斷的狀態、目前要對哪個VM分配各個共享實體裝置控制器、要把針對各個VM之被捕捉到的中斷重新導向到何處等。可把組態儲存體134與資料儲存體136映射到處理器110的位址空間,以使它們可用來在虛擬化邏輯組件132以及VM 162與VM 164之間交換資訊。
晶片組130可經由介面131從裝置控制器150接收一中斷請求。在一實施例中,可根據任何已知的發信協定(一〝接腳中斷〞)而透過一輸入終端機接收一中斷請求作為一信號,例如一位準或邊緣觸發中斷信號。在另一個實施例中,
可根據任何已知的訊息、異動、或其他通訊協定來接收一中斷請求作為一訊息,例如一匯流排訊息或一點對點異動。例如,在當中裝置控制器150係透過一快速周邊部件互連(〝PCI-Express〞)匯流排耦合至晶片組130的一實施例中,該匯流排協定可包括訊息信號中斷(〝MSI〞),其中一中斷訊息可包括一個32位元的位址欄位以及一個32位元的資料欄位。其他實施例均是可能的,包括使用信號式中斷請求與訊息式中斷請求二種請求的一實施例。
系統100可包括用以依據優先順序排列並且遞送中斷請求到處理器120及/或系統100中之任何其他代理器的一或多個中斷控制器。在一實施例中,處理器120包括本地中斷控制器122,且晶片組130包括I/O中斷控制器138。
可使該中斷請求導向處理器120,以執行與裝置控制器150相關聯的一中斷處置器。該目的中斷處置器可由該中斷請求傳遞的資訊來表示,例如一MSI中之位址欄位及/或資料欄位的內容,或者利用該輸入終端機、接腳的識別資訊來表示、或利用一接腳中斷的信號路徑來表示。然而,為了支援裝置控制器150的虛擬化,可由虛擬化邏輯組件132來捕捉該中斷請求,即,針對處理器120的一中斷訊息或信號係由虛擬化邏輯組件132截取並且修改。
第2圖展示出根據本發明一實施例之一種用以使一中斷重新導向的方法200。在第2圖之方法實施例的說明中,係參照第1圖之系統實施例的元件來進行說明;然而,本發明的方法實施例並不限於此。
在方法200的方塊210中,係把一資訊處理系統(例如系統100)組配成可使為一中斷請求之來源的各個實體裝置控制器(例如,裝置控制器150)與一中斷處置器相關聯。可把組態資訊儲存在組態儲存體152中,其可例如為一MSI暫存器。
在包括MSI的一實施例中,可由虛擬化邏輯組件132把實體裝置控制器150組配成可使用其MSI之位址欄位中的一第一位址值以及資料欄位中的一第一資料值。根據VMM 160維持之系統記憶體的觀點,該第一位址值可為與本地中斷控制器122相關聯的一位址。根據VMM 160所維持之系統記憶體的觀點,該第一資料值可為與裝置控制器150之一中斷處置器相關聯的一位址。
在包括接腳中斷的一實施例中,可藉著硬佈線方式或軟佈線方式設置欲由I/O中斷控制器138接收的中斷請求輸出來組配實體裝置控制器150,藉此使其能受虛擬化邏輯組件132截取。例如,可把該中斷請求輸出多工化到I/O中斷控制器134或虛擬化邏輯組件132。可編程I/O中斷控制器138以使裝置控制器150的該中斷處置器與來自裝置控制器150之中斷請求輸出端所連接的該輸入端相聯結。
在方塊212中,係把虛擬化邏輯組件132組配成可捕捉到來自裝置控制器150的中斷請求。
在包括MSI的一實施例中,虛擬化邏輯組件132可包括組態儲存體134中的數個位置,其以晶片組130與裝置
控制器150之間之該匯流排上的MSI異動被捕捉到的位址與資料值來編程。例如,第3圖展示出組態儲存體134中的分錄項300,其包括實體MSI位址欄位310、實體MSI資料欄位320、虛擬MSI位址欄位330、以及虛擬MSI資料欄位340。在此實施例中,係把該第一位址值與該第一資料值分別地編程到實體MSI位址欄位310與實體MSI資料欄位320中。隨後可使用分錄項300,如以下詳細說明地,以使一虛擬裝置控制器與實體裝置控制器150相聯結。亦可利用該第一位址以及該第一資料值來編程呈分錄項300形式的額外分錄項,以使額外虛擬裝置控制器與實體裝置控制器150相聯結。
在包括接腳中斷的一實施例中,可把該中斷請求信號從由本地中斷控制器138接收切換成由虛擬化邏輯組件132接收。
在方塊214中,可把虛擬化邏輯組件132組配成使代表實體裝置控制器150的一或多個該等虛擬裝置控制器與一或多個VM相聯結。
在使用MSI的一實施例中,利用針對MSI異動被捕捉到的位址與資料值來編程之組態儲存體134中的位置可包括額外對應位置,其可利用與一VM(例如,虛擬MSI位址欄位330與虛擬MSI資料欄位340)相關聯的位址與資料值來編程。例如,VM 152可能無法存取系統記憶體140的全部;因此,VM 152對系統記憶體140的觀點可能不同於VMM 150的觀點。根據VM 152對系統記憶體140的觀點,
與本地中斷控制器122相關聯的位址可能不是參照方塊212說明的第一位址值,但反之可為一第二位址,且與裝置控制器150之該中斷處置器相關聯的該位址可能不是該第一資料值,但可為一第二資料值。因此,可使用該第二位址值來編程該虛擬MSI位址欄位330,且可使用該第二資料值來編程虛擬MSI資料欄位340。
在使用接腳中斷的一實施例中,可把虛擬化邏輯組件132組配成代表對應於實體裝置控制器150的一虛擬裝置控制器把一中斷請求傳送到I/O中斷控制器138。組態儲存體134或資料儲存體136可包括用以把從實體裝置控制器之該中斷請求輸入對中斷請求輸出的映射儲存到I/O中斷控制器138中的位置。
在方塊220中,實體裝置控制器150提出一第一中斷請求,例如藉著發出一MSI異動或者藉著主張一中斷信號。在方塊222中,虛擬化邏輯組件132捕捉到該中斷請求。在方塊224中,虛擬化邏輯組件132判定為該第一中斷請求之目標的是哪個VM,例如,根據儲存在資料儲存體136中的資訊及/或輪詢實體裝置控制器150。在方塊226中,虛擬化邏輯組件132把該第一中斷請求輸入到一佇列、緩衝器、或資料儲存體136的其他位置中,以使它可由一VM發現以供與虛擬化邏輯組件132交換資訊。
在方塊230中,虛擬化邏輯組件132傳送一第二中斷請求到處理器120,其對應於但不同於方塊220中的該第一中斷請求。在一實施例中,可以不傳送該第二中斷請求,
直到已把控制處理器120的動作傳送到為該第一中斷請求之目的的該VM為止。此第二中斷請求可呈一訊息或一信號形式。在當中它為一訊息的一實施例中,包含在該訊息中的位址、資料、及/或任何其他資訊可為對應於一虛擬裝置控制器而非對應於一實體裝置控制器的資訊。例如,可從該位址欄位與該第二資料值中的虛擬MSI位址欄位330、從該資料欄位中的虛擬MSI資料欄位340而在處理器120與晶片組130之間的該匯流排上一起傳送一MSI以及該第二位址值。在當中該第二中斷請求為一信號的一實施例中,可從虛擬化邏輯組件132發送一信號到I/O中斷控制器138,且可從I/O中斷控制器138傳送一信號到處理器120。根據在方塊214之描述中討論的該等映射,從虛擬化邏輯組件132傳送的該信號可為對應於一虛擬裝置控制器而非對應於實體裝置控制器150的一信號。在任一實施例中,VMM 160可能不知悉該資訊對應於一虛擬裝置控制器而非對應於一實體裝置控制器,因為已經由虛擬化邏輯組件132而非由VMM 160進行該虛擬化動作。
在方塊240中,處理器120接收該第二中斷請求、取得針對該中斷處置器的向量,並且開始在該目標VM中執行中斷處置器。在方塊242中,該VM可透過資料儲存體136與虛擬化邏輯組件132交換資訊。
在本發明的範圍中,可不使用展示出的方塊來進行方法200、可在方法200中增加額外方塊、或者可重新排列方塊、省略方塊、或額外方塊的組合來進行方法200。可並
列地進行某些方塊,例如方塊226與方塊230。
可在各種不同階段中設計根據本發明一實施例的任何部件或一部件部分,從產生到模擬到製成。代表一項設計的資料可利用多種方式來代表該設計。首先,如模擬方式中使用地,可利用一種硬體描述語言或另一種功能描述語言來表示該硬體。此外或替代地,可在該設計程序的某些階段產生具有邏輯組件及/或電晶體閘的一電路階層模型。再者,大部分的設計在某個階段會到達可藉由代表各種不同裝置之實體配置的資料來模型化的一階層。在當中使用習知半導體製程技術的實例中,代表該裝置配置模型的該資料可為針對用以產生一積體電路的光罩而指明各種不同特徵在不同光罩層上出現或不出現的資料。
在該設計的任何表述中,可把該資料儲存成一機器可讀媒體的任何形式。經調變或產生以發送該種資訊的一光學或電氣波、一記憶體、或一磁性或光學儲存體媒體(例如,一碟片)可為機器可讀媒體。任何該等媒體可〝攜載〞或〝指出〞該設計,或用於本發明一實施例的其他資訊。當發送指出或攜載該資訊的一電氣載波而使複製、緩衝、或重新發送該電氣信號的動作能進行時,將可做出一新副本。因此,一通訊提供者或一網路提供者的動作可構成製造出體現本發明技術之一物件(例如,一載波)之副本的動作。
因此,已經揭露了用以使一中斷重新導向的裝置、方法與系統。儘管已經說明了某些實施例並且把該等實施例展示於圖式中,要了解的是該等實施例僅用於展示目的,且
不限制本發明的廣泛精神,且本發明並不受限於所展示且解說的特定建構方式與配置,因為熟知技藝者在研讀了本發明的揭示後能進行各種不同的其他修改方案。在例如本發明的技術領域中,其中已經不容易再看到科技的成長與進步,仍可因能在不偏離本發明的原則或以下申請專利範圍的範圍之狀況下產生技術上的進步,而可容易地修改本發明所揭露實施例的配置方式與細節。
100‧‧‧資訊處理系統
110‧‧‧裸平台硬體
120‧‧‧處理器
122‧‧‧本地中斷控制器
130‧‧‧晶片組
131、151‧‧‧介面
132‧‧‧虛擬化邏輯組件
134、152‧‧‧組態儲存體
136‧‧‧資料儲存體
138‧‧‧I/O中斷控制器
140‧‧‧系統記憶體
150‧‧‧裝置控制器
160‧‧‧虛擬機器監視器(VMM)
162、164‧‧‧虛擬機器(VM)
200‧‧‧方法
210~242‧‧‧步驟方塊
300‧‧‧分錄項
310‧‧‧實體MSI位址欄位
320‧‧‧實體MSI資料欄位
330‧‧‧虛擬MSI位址欄位
340‧‧‧虛擬MSI資料欄位
第1圖展示出根據本發明一實施例之一種用以使一中斷重新導向的裝置。
第2圖展示出根據本發明一實施例之一種用以使一中斷重新導向的方法。
第3圖展示出根據本發明一實施例之一種用以使一中斷重新導向以儲存資訊的分錄項。
100‧‧‧資訊處理系統
110‧‧‧裸平台硬體
120‧‧‧處理器
122‧‧‧本地中斷控制器
130‧‧‧晶片組
131、151‧‧‧介面
132‧‧‧虛擬化邏輯組件
134、152‧‧‧組態儲存體
136‧‧‧資料儲存體
138‧‧‧I/O中斷控制器
140‧‧‧系統記憶體
150‧‧‧裝置控制器
160‧‧‧虛擬機器監視器(VMM)
162、164‧‧‧虛擬機器(VM)
Claims (8)
- 一種裝置,其包含:一處理器,用以執行一虛擬機器及一虛擬機器監視器;一系統記憶體;一實體裝置控制器;以及虛擬化電路,其用以捕捉到從該實體裝置控制器至該處理器的一第一中斷訊息,該第一中斷訊息具有在該第一中斷訊息的一位址欄位中的第一位址值以及在該第一中斷訊息的一資料欄位中的第一資料值,從複數個虛擬裝置控制器中與該實體裝置控制器相關聯的一虛擬裝置控制器發送一第二中斷訊息至該處理器,該第二中斷訊息包括在該第二中斷訊息的一位址欄位中的第二位址值以及在該第二中斷訊息的一資料欄位中的第二資料值,其中根據該虛擬機器監視器之系統記憶體的觀點,該第一資料值對應於一中斷處置器的第一位址,且根據該虛擬機器之系統記憶體的觀點,該第二資料值對應於該中斷處置器的第二位址。
- 如請求項1之裝置,其進一步包含組態儲存體,其被程式化以維持該第一中斷訊息被重新導向至複數個虛擬機器中之一者的狀態。
- 如請求項1之裝置,其中該虛擬化電路僅於該處理器之控制已被轉移至該虛擬機器之後,發送該第二中斷訊息 至該處理器。
- 如請求項1之裝置,其中該虛擬化電路於該虛擬機器由該處理器執行的期間捕捉該第一中斷訊息。
- 一種方法,其包含下列步驟:由一處理器執行一虛擬機器及一虛擬機器監視器;由一虛擬化電路捕捉到從一實體裝置控制器至該處理器的一第一中斷訊息,該第一中斷訊息具有在該第一中斷訊息的一位址欄位中的第一位址值以及在該第一中斷訊息的一資料欄位中的第一資料值,根據該虛擬機器監視器之系統記憶體的觀點,該第一資料值對應於一中斷處置器的第一位址;由該虛擬化電路因應捕捉到該第一中斷訊息之步驟,從複數個虛擬裝置控制器中與該實體裝置控制器相關聯的一虛擬裝置控制器發送一第二中斷訊息至該處理器,該第二中斷訊息包括在該第二中斷訊息的一位址欄位中的第二位址值以及在該第二中斷訊息的一資料欄位中的第二資料值,根據該虛擬機器之系統記憶體的觀點,該第二資料值對應於該中斷處置器的第二位址。
- 如請求項5之方法,其進一步包含程式化組態儲存體以維持該第一中斷訊息被重新導向至複數個虛擬機器中之一者的狀態。
- 如請求項5之方法,其中僅於該處理器之控制已被轉移至該虛擬機器之後,執行發送該第二中斷訊息至該處理器的步驟。
- 如請求項5之方法,其中於該虛擬其器由該處理器執行的期間,執行捕捉該第一中斷訊息的步驟。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/347,970 US9424211B2 (en) | 2008-12-31 | 2008-12-31 | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201030623A TW201030623A (en) | 2010-08-16 |
TWI525546B true TWI525546B (zh) | 2016-03-11 |
Family
ID=41717430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098144755A TWI525546B (zh) | 2008-12-31 | 2009-12-24 | 用於藉由把來自實體裝置控制器之中斷重新導向來提供多重虛擬裝置控制器之裝置及方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9424211B2 (zh) |
JP (1) | JP4980416B2 (zh) |
CN (1) | CN101777005B (zh) |
DE (1) | DE102009060301A1 (zh) |
GB (1) | GB2466706B (zh) |
TW (1) | TWI525546B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013024510A2 (en) | 2011-08-16 | 2013-02-21 | Hitachi, Ltd. | Storage control apparatus |
JP5846836B2 (ja) * | 2011-10-11 | 2016-01-20 | 株式会社日立製作所 | 仮想計算機、仮想計算機システム、及び仮想計算機制御方法 |
US9110878B2 (en) * | 2012-01-18 | 2015-08-18 | International Business Machines Corporation | Use of a warning track interruption facility by a program |
US9697154B2 (en) | 2014-08-20 | 2017-07-04 | Red Hat Israel, Ltd. | Managing message signaled interrupts in virtualized computer systems |
US11275600B2 (en) | 2017-11-14 | 2022-03-15 | TidalScale, Inc. | Virtualized I/O |
CN108369604B (zh) * | 2017-12-28 | 2021-12-03 | 深圳前海达闼云端智能科技有限公司 | 一种多操作系统共享文件系统的方法、装置和电子设备 |
KR102498319B1 (ko) | 2018-06-04 | 2023-02-08 | 삼성전자주식회사 | 반도체 장치 |
CN112817690B (zh) * | 2021-01-22 | 2022-03-18 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种面向arm架构虚拟化领域的中断虚拟化处理方法及系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US7447794B1 (en) * | 2002-12-04 | 2008-11-04 | Silicon Graphics, Inc. | System and method for conveying information |
US20040117532A1 (en) * | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
US7111145B1 (en) * | 2003-03-25 | 2006-09-19 | Vmware, Inc. | TLB miss fault handler and method for accessing multiple page tables |
TWI253251B (en) | 2003-09-19 | 2006-04-11 | Inst Information Industry | Network address port translation gateway providing fast query and replacement for virtual host service, and the method thereof |
US7177967B2 (en) * | 2003-09-30 | 2007-02-13 | Intel Corporation | Chipset support for managing hardware interrupts in a virtual machine system |
US7048877B2 (en) * | 2004-03-30 | 2006-05-23 | Intel Corporation | Efficiently supporting interrupts |
US7707341B1 (en) * | 2004-05-11 | 2010-04-27 | Advanced Micro Devices, Inc. | Virtualizing an interrupt controller |
DE102004042170B4 (de) * | 2004-08-31 | 2009-02-19 | Advanced Micro Devices, Inc., Sunnyvale | Nachrichtenbasierte Interrupttabelle |
US7689747B2 (en) | 2005-03-28 | 2010-03-30 | Microsoft Corporation | Systems and methods for an augmented interrupt controller and synthetic interrupt sources |
US7565471B2 (en) * | 2005-09-16 | 2009-07-21 | Emulex Design & Manufacturing Corporation | Message signaled interrupt extended (MSI-X) auto clear and failsafe lock |
US8286162B2 (en) * | 2005-12-30 | 2012-10-09 | Intel Corporation | Delivering interrupts directly to a virtual processor |
US7802073B1 (en) * | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
US20080162762A1 (en) * | 2006-12-29 | 2008-07-03 | Gilbert Neiger | Interrupt remapping based on requestor identification |
US7853744B2 (en) * | 2007-05-23 | 2010-12-14 | Vmware, Inc. | Handling interrupts when virtual machines have direct access to a hardware device |
CN101354663A (zh) * | 2007-07-25 | 2009-01-28 | 联想(北京)有限公司 | 应用于虚拟机系统的真实cpu资源的调度方法及调度装置 |
US8453143B2 (en) * | 2007-09-19 | 2013-05-28 | Vmware, Inc. | Reducing the latency of virtual interrupt delivery in virtual machines |
US7934033B2 (en) * | 2008-03-25 | 2011-04-26 | Aprius, Inc. | PCI-express function proxy |
US8032680B2 (en) * | 2008-06-27 | 2011-10-04 | Microsoft Corporation | Lazy handling of end of interrupt messages in a virtualized environment |
EP2157511B1 (fr) * | 2008-08-19 | 2012-01-18 | STMicroelectronics Rousset SAS | Procédé d'acheminement d'un signal d'interruption directement vers une unité de traitement virtuelle dans un système à une ou plusieurs unités de traitement physiques |
-
2008
- 2008-12-31 US US12/347,970 patent/US9424211B2/en active Active
-
2009
- 2009-12-22 GB GB0922460.1A patent/GB2466706B/en not_active Expired - Fee Related
- 2009-12-23 DE DE102009060301A patent/DE102009060301A1/de not_active Ceased
- 2009-12-24 TW TW098144755A patent/TWI525546B/zh not_active IP Right Cessation
- 2009-12-24 JP JP2009293549A patent/JP4980416B2/ja not_active Expired - Fee Related
- 2009-12-25 CN CN200910217299.5A patent/CN101777005B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4980416B2 (ja) | 2012-07-18 |
DE102009060301A1 (de) | 2010-07-08 |
TW201030623A (en) | 2010-08-16 |
JP2010157232A (ja) | 2010-07-15 |
GB2466706B (en) | 2012-04-25 |
GB2466706A (en) | 2010-07-07 |
US20100169883A1 (en) | 2010-07-01 |
CN101777005A (zh) | 2010-07-14 |
US9424211B2 (en) | 2016-08-23 |
GB0922460D0 (en) | 2010-02-03 |
CN101777005B (zh) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI525546B (zh) | 用於藉由把來自實體裝置控制器之中斷重新導向來提供多重虛擬裝置控制器之裝置及方法 | |
JP5122597B2 (ja) | 仮想プロセッサへの直接的なインタラプトの送信 | |
US10310879B2 (en) | Paravirtualized virtual GPU | |
US7707341B1 (en) | Virtualizing an interrupt controller | |
US7209994B1 (en) | Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests | |
US20140007098A1 (en) | Processor accelerator interface virtualization | |
TWI436281B (zh) | 注入異動以支援實體裝置控制器之虛擬化的技術 | |
US9529615B2 (en) | Virtual device emulation via hypervisor shared memory | |
JP2015079542A (ja) | 割り込み分配スキーム | |
US9201823B2 (en) | Pessimistic interrupt affinity for devices | |
US20100174841A1 (en) | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller | |
US9003094B2 (en) | Optimistic interrupt affinity for devices | |
US20210144177A1 (en) | Implementing a service mesh in the hypervisor | |
US11513983B2 (en) | Interrupt migration | |
TWI419051B (zh) | 將虛擬化引擎用指令分頁到本地儲存體之設備及方法 | |
US10255198B2 (en) | Deferring registration for DMA operations | |
US20230085994A1 (en) | Logical resource partitioning via realm isolation | |
US20240168787A1 (en) | Secure live migration of trusted execution environment virtual machines using smart contracts | |
JPWO2009113571A1 (ja) | 複数の基盤ソフトウェアを動作可能な情報処理装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |