TWI403955B - 用於在虛擬化環境中共享音訊子系統的裝置、方法與系統 - Google Patents

用於在虛擬化環境中共享音訊子系統的裝置、方法與系統 Download PDF

Info

Publication number
TWI403955B
TWI403955B TW097147804A TW97147804A TWI403955B TW I403955 B TWI403955 B TW I403955B TW 097147804 A TW097147804 A TW 097147804A TW 97147804 A TW97147804 A TW 97147804A TW I403955 B TWI403955 B TW I403955B
Authority
TW
Taiwan
Prior art keywords
virtual
audio codec
virtual machine
codec
additional
Prior art date
Application number
TW097147804A
Other languages
English (en)
Other versions
TW200937292A (en
Inventor
Abhishek Singhal
Kumar K Chinnaswamy
Devon Worrell
Nitin V Sarangdhar
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 TW200937292A publication Critical patent/TW200937292A/zh
Application granted granted Critical
Publication of TWI403955B publication Critical patent/TWI403955B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Bus Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Pinball Game Machines (AREA)

Description

用於在虛擬化環境中共享音訊子系統的裝置、方法與系統 發明領域
本發明與一電腦系統中的音訊子系統在該電腦系統上執行的多個虛擬機器之間的共享有關。
發明背景
虛擬化是一種用以在存在於一電腦系統中的多個虛擬機器(VM)之間共享在該電腦中可得的一些/全部資源/性能的機制。VM是執行程式之機器(電腦)(如真實機器)的軟體實施。
在許多實施虛擬化的電腦系統中,諸如微軟視窗(Microsoft® Windows®)的通用作業系統(OS)可在該系統中之一分區上的一VM中執行。一通用OS(下文稱為能力OS),COS是能夠獨立管理電腦系統上的所有資源以及將所有服務提供給應用程式和較低階軟體的作業系統。電腦系統中的某些功能對於保持操作而言是至關重要的,即使是在能力OS(COS)當機的情況下。應能夠抵擋COS當機的一應用程式是網路電話(VoIP)應用程式。VoIP應用程式將受益於此,用以即使是在COS當機的情況下也允許電話會話繼續。這將需要VoIP應用程式在該能力OS分區的外部執行。
隨著不同語音和音訊應用程式在電腦系統上之多個VM/分區中的執行變得更加的常見,音訊周邊設備之使用的競爭在任何特定系統中都可能發生。在許多情況下 存在多個VM與在每一VM上執行的應用程式,其需要透過離散音訊編碼解碼器取用音訊周邊設備。此外,在這些系統的許多系統中,一離散高解析度(HD)音訊編碼解碼晶片與一音訊控制器晶片協同操作以管理音訊周邊設備在該系統中的使用。
依據本發明之一實施例,係特地提出一種裝置,其包含:直接取用一實體音訊編碼解碼器的一第一虛擬機器;以及由該第一虛擬機器管理的一虛擬音訊編碼解碼器,用以為一個或多個額外的虛擬機器,提供針對該實體音訊編碼解碼器的一訂製介面。
依據本發明之另一實施例,係特地提出一種法,其包含以下步驟:直接取用一實體音訊編碼解碼器,其中該取用由一第一虛擬機器執行;以及為一個或多個額外的虛擬機器,提供針對該實體音訊編碼解碼器的一訂製介面。
依據本發明之又一實施例,係特地提出一種系統,其包含:一第一虛擬機器,其係用以:直接取用一實體音訊編碼解碼器、及為在該第一虛擬機器上執行的一服務作業系統提供資源,其中該服務作業系統管理一虛擬音訊編碼解碼器;該虛擬音訊編碼解碼器為一個或多個額外的虛擬機器,提供針對該實體音訊編碼解碼器的一訂製介面;以及該一個或多個額外的虛擬機器把對該虛擬音訊編碼解碼器的取用,提供給受在該一個或多個額外虛擬機器中的至少一個虛擬機器上執行的至少一個能力作業系統管理的一 個或多個軟體應用程式。
圖式簡單說明
本發明透過舉例來說明,但是不受該等圖式的限制,其中相似的參考數字指示相似的元件,其中:第1圖描述能夠針對在該系統上執行的多個虛擬機器,將一訂製介面提供給一實體音訊編碼解碼器的一電腦系統實施例;第2圖描述一虛擬音訊編碼解碼器實施例;第3圖更詳細地描述一命令輸出環緩衝區以及回應輸入環緩衝區處理邏輯元件實施例;第4圖是一處理程序之一實施例的流程圖,用以限制單個虛擬機器之對一實體音訊編碼解碼器的直接取用,同時並為一個或多個其他虛擬機器提供對此實體音訊編碼解碼器的一訂製虛擬介面。
較佳實施例之詳細說明
一種於虛擬化環境中共享音訊子系統的方法、裝置與系統的實施例被描述。在以下描述中,許多特定的細節被提出。然而,可理解的是,實施例可在沒有這些特定細節的情況下實施。在其他情況下,熟知的元件、規格以及協定沒有被詳細地討論,以避免混淆本發明。
第1圖描述能夠針對在該系統上執行的多個虛擬機器,將一訂製介面提供給一實體音訊編碼解碼器的一電腦系統實施例。在第1圖中所顯示的電腦系統僅是許多可能 電腦系統其中之一的一說明性例子。其可包括以下在第1-4圖中所述的許多實施例。該圖不應被看作是限制性的,即用這些以此方式配置的特定元件來限制電腦系統的一個或多個實施例。現在我們來看第1圖,該電腦系統包括一處理器100。在不同實施例中,該處理器可包括一個或多個處理器核心。在一些微處理器實施例中,存在耦接在一起的多個處理器晶粒,每一晶粒包括各自晶粒的一個或多個核心(多個晶粒上的處理器核心的架構沒有顯示在第1圖中)。在不同實施例中,該處理器100可以是設計用於任何形式的個人電腦、手持裝置、伺服器、工作站或如令可得的其他計算裝置之任何類型的中央處理單元(CPU)。
在許多實施例中,該處理器耦接到系統記憶體102。一記憶體控制器控制存取系統記憶體102。在一些實施例中,該記憶體控制器受整合到該處理器100中。在其他實施例中,該記憶體控制器受設置在該系統中的一離散積體電路中。該記憶體控制器沒有顯示在第1圖中。在不同實施例中,系統記憶體102可由諸如雙倍資料速率(DDR)同步DRAM的特定類型的動態隨機存取記憶體(DRAM)組成。在其他實施例中,系統記憶體102可由其他記憶體類型的裝置組成。
該處理器100也可耦接到I/O(輸入/輸出)複合體104。在許多實施例中,I/O複合體包括一個或多個整合I/O主機控制器。每一I/O主機控制器可控制一個或多個I/O連接(即互連、匯流排)。每一連接可將該I/O複合體耦接到一個或多個I/O裝置、外部控制器、編碼解碼器等。一個這樣的主機控制器是I/O主機控制器106。在一些實施例中,I/O主機控制器106是一PCI快速(PCI Express)主機控制器。在其他實施例中,I/O主機控制器106可利用一備選協定。在許多實施例中,一離散實體音訊編碼解碼器(PAC)晶片108耦接到該主機控制器106,以控制該電腦系統中的音訊子系統,包括諸如音訊周邊設備110、112及114的附接到該電腦系統的任何音訊周邊設備。
在許多實施例中,在第1圖中所述的電腦系統具有多個虛擬硬體分區。在許多實施例中,一虛擬化引擎116幫助管理不同的硬體分區。在許多實施例中,虛擬化引擎116受整合到I/O主機控制器106中。在其他實施例中,虛擬化引擎116受整合到I/O複合體104中的其他地方(圖未示)。在又一些其他實施例中,虛擬化引擎116遭設置在該電腦系統中的其他地方,諸如設置在一額外的離散積體電路中(圖未示)。
在某些其他實施例中,該等硬體分區透過在該系統記憶體或韌體(圖未示)中執行的軟體來管理,因此不需要虛擬化引擎。
在系統具有多個硬體分區的實施例中,每一分區在存在於系統記憶體102中的一虛擬機器(VM)上執行。例如,在一兩分區系統中,VM A(118)和VM B(120)兩者都可存在於系統記憶體102中。在這個範例中,系統記憶體102的一分區遭分配用於VM A,以及系統記憶體102的一獨立分區遭分配用於VM B。記憶體的這兩個分區僅被他們各自的VM利用,因此這些分區在這兩個VM之間是不被共享的。此外,一虛擬機器管理器(VMM)122也可以存在於系統記憶體中以管理這些配置和這兩個VM。
在許多實施例中,存在於這兩個VM之每一VM的記憶體空間中執行的一獨立作業系統(OS),諸如在VM A中執行的OS 124以及在VM B中執行的OS 126。在許多實施例中,這兩個OS其中之一(諸如OS 124)是一能力OS(COS)。COS可被認為是諸如MicrosoftWindows或Linux的全功能標準OS。因此,COS是能夠獨立管理電腦系統上的所有資源以及為應用程式和較低階軟體提供所有服務的作業系統。此外,在許多實施例中,另一OS,這裡的OS 126是一服務OS(SOS)。在許多實施例中,SOS是具有一非常特定用途(或多個用途)的一有限功能OS。例如,在一些實施例中,SOS可執行一網路電話(VoIP)引擎。這將允許VoIP引擎使該電腦系統的一重要部分計算時間,而不管COS的狀態。在其他實施例中,SOS可以是專門用於一個或多個特定功能而不是用作一通用作業系統的COS。
在許多實施例中,該SOS執行也存在於VM 120中的一軟體編碼解碼器模擬器128(SCE)。該SCE 128是由管理硬體編碼解碼器之SOS執行的軟體。
一虛擬音訊編碼解碼器130(VAC)也存在於該系統中。該VAC 130可以致能音訊周邊設備和音訊功能在多個VM之間共享。這使單一PAC 108連接在多個競爭PAC時間的VM中最小化或者消除。特別地,該VAC 130虛擬化該等音訊周邊設備,因此試圖利用任一該音訊周邊設備的每一VM(或在每一VM中執行的每一OS)將獲得該等周邊設備的一唯一虛擬複本。額外的VAC 130邏輯元件在OS之間仲裁,以給予每一OS某一用以利用每一該周邊設備的時間部分。一種在OS之間仲裁時間部分的方法是利用分時多工。
在許多實施例中,該VAC 130用硬體實施。在不同硬體實施中,該VAC 130可受整合到I/O主機控制器106、虛擬化引擎116中或該電腦系統的其他地方,作為另一晶片中的整合邏輯元件或作為其自己晶片中的離散邏輯元件。在其他實施例中,該VAC 130的全部或一些部分用軟體實施(圖未示)。例如,在一些VAC 130軟體實施中,VAC 130可在其自己的獨立VM中實施。在又一些其他實施例中,VAC 130的一些部分用硬體實施,而該VAC 130的其他部分用軟體實施。
在許多實施例中,該VAC 130由保持該PAC 108中的該組組態暫存器之複本的一組暫存器和致能與VM B互動的一決策引擎組成。該VAC 130可僅受VM B規劃。因此,VM A及系統上的任何其他VM對VAC 130不具有可見性。該VAC 130在下文中相關第2圖更加詳細地描述。
在許多實施例中,一主機音訊控制器132受整合到I/O主機控制器106中。在其他實施例中,該音訊控制器132與該主機控制器相分離以及/或者整合到該電腦系統中的另一晶片中。例如,該音訊控制器132可以是用於一高解 析度基於音訊子系統的一控制器。
在許多實施例中,在該系統中可能存在多於兩個VM和兩個OS(存在兩個以上的VM的實施例沒有顯示在第1圖中)。
第2圖描述一虛擬音訊編碼解碼器(VAC)實施例。該VAC 130被顯示為大虛線方塊。虛擬功能零200(VF0)和虛擬功能一202(VF1)也被顯示為虛線。在第2圖中,VF0 200被COM VM A(118)利用,以及VF1 202被SOS VM B(120)利用。每一虛擬功能(VF)包括該音訊控制器(第1圖中的132)之專門用於這兩個OS其中之每一OS的部分。例如,在許多實施例中,該音訊控制器總共具有八個DMA(直接記憶體存取)引擎,其中六個專門用於存在於VM A中的COS,以及其中兩個專門用於存在於VM B中的SOS。專門用於這兩個OS其中之每一OS的DMA引擎的數目之間的差異與每一OS之相關聯功能的記憶體存取需求相關聯。如上所述,該SOS專門用於一有限數目的功能,而該COS是全功能OS。因此,該COS可具有其他編碼解碼器,諸如除該需要受管理之音訊編碼解碼器外的一HDMI編碼解碼器和一調變解調器編碼解碼器及其他。這些額外的編碼解碼器也需要記憶體可取用的DMA引擎。在一些實施例中,DMA引擎將根據通常由COS對SOS傳送之資料的相對數量來拆分數目。
在許多實施例中,VAC 130中的邏輯元件包括捕集邏輯元件210、命令解譯器216、VAC暫存器218、VAC直接記憶體存取(DMA)引擎222以及交換器226和232。這些邏 輯裝置在下文中更加詳細地描述。
VF0 200和VF1 202各自具有該等音訊控制器暫存器的一複本以及PCI組態暫存器的一複本。在一些實施例中,該音訊控制器受設置在一PCI快速連接上。在一些實施例中,DMA引擎將根據通常由COS對SOS傳送之資料的相對數量來拆分數目。例如,在第2圖中所示的實施例中,COS在VF0 200中受分配六個音訊控制器DMA引擎,以及SOS在VF1 202中受分配兩個音訊控制器DMA引擎。
被稱為命令輸出環緩衝區204(CORB)和回應輸入環緩衝區206(RIRB)之額外的DMA引擎也被顯示在第2圖中。該等CORB和RIRB引擎在COS及SOS記憶體空間與存在於該系統中的該組實體編碼解碼器之間提供直接取用。因此,發送至PAC 108及其他編碼解碼器208的命令實際上由該CORB引擎204發送,以及從該PAC 108及其他編碼解碼器208接收的回應實際上由該RIRB引擎206接收。
在許多實施例中,VAC 130具有為COS呈現一組虛擬音訊編碼解碼器暫存器的能力。因此,當COS試圖取用該PAC 108時,該COS查看該等暫存器的一虛擬複本而不是獲得直接取用該PAC 108。在I/O主機控制器(第1圖中的106)上存在邏輯元件,該邏輯元件捕集至PAC 108的COS請求以及對COS提供一較簡單VAC 130觀點。COS對平台上的PAC 108硬體不具有可見性。
VAC 130具有捕集邏輯元件210,該捕集邏輯元件210窺探命令路徑214上自COS記憶體空間212發送的命 令。在正常系統操作過程中,COS將把許多命令發送至諸如音訊編碼解碼器、HDMI編碼解碼器、調變解調器編碼解碼器等的多個編碼解碼器。該VAC 130僅處理與PAC 108特別相關的命令和回應。與非音訊編碼解碼器有關的命令和回應透過該捕集邏輯元件210遭傳遞到CORB DMA引擎204。當COS特別地以一命令對準該PAC 108時,該捕集邏輯元件210捕集該命令以及將其發送至一命令解譯器216。該命令解譯器216將查看該命令是否試圖取用該PAC 108,以及該命令解譯器將根據該命令是什麼命令而相應地回應。
該命令解譯器216具有一組VAC暫存器218。該組暫存器包括用於正常情況下將與該PAC 108連接之該等OS其中之每一OS的所有相關PAC 108暫存器的複本。若來自該COS的命令遭寫入到一PAC 108暫存器,則該命令解譯器216將執行對與該PAC 108暫存器的COS版本相對應的各自的VAC暫存器的寫入。若所發生的暫存器寫入需要修改PAC 108中的組態,則該命令解譯器216透過經由一VAC DMA引擎222發送命令到SOS記憶體空間220通知該SOS。例如,一格式命令或一進/出致能命令將需要修改該PAC 108的組態。在許多實施例中,該VAC DMA引擎222利用指向在該SOS記憶體空間220中對其傳送COS命令之位置的一暫存器(圖未示),其中該等COS命令透過該命令解譯器216來傳遞且需要SOS干預。
在許多實施例中,若COS試圖修改該CORB寫入指標暫存器(根據英特爾(Intel®)高解析度音訊規格偏移 48h),其將指示一個或多個PAC 108 CORB進口需要被更新,該命令解譯器216將需要將該請求發送至該SOS,因此該SOS可相應地回應以及在需要之時修改該PAC 108的組態。在許多實施例中,對CORB控制暫存器(根據Intel®高解析度音訊規格偏移4Ch)的寫入取用也將由該命令解譯器216監控,以決定該CORB DMA執行位元何時遭設定。
當該PAC 108的組態需要修改時,一旦SOS覺察到來自該命令解譯器216的請求,則該SOS可橫跨命令路徑224發送對準該PAC 108的一特定命令。交換器226接收該命令以及決定何時將該命令發送至PAC 108。耦接到交換器226的仲裁器228決定發送至該PAC 108之命令的順序。如上所述,特別發送至該PAC 108的命令以及發送至其他編碼解碼器的命令透過該CORB引擎204來發送。在一些實施例中,仲裁器228是一簡單循環仲裁器。在其他實施例中,一種不同類型的仲裁器被利用。交換器226橫跨命令路徑224接收來自SOS記憶體空間220的對準該PAC 108的命令,以及自捕集邏輯元件210接收對準該系統中之任何其他編碼解碼器的命令(即捕集邏輯元件210僅允許非音訊編碼解碼器命令從該COS直接傳遞到交換器226)。
若從COS開始到PAC 108暫存器存在讀取用命令,則該捕集邏輯元件210再次窺探源於COS記憶體空間212的該讀命令。該捕集邏輯元件將PAC對準讀命令發送至該命令解譯器216。然後該命令解譯器216取用在該VAC暫存器218中的該PAC 108暫存器的COS版本以及將虛擬回應 (即所擷取的虛擬暫存器資料)橫跨回應路徑230發送至交換器232。交換器232也從該PAC 108接收回應。
交換器232使用仲裁器228中的額外仲裁邏輯元件在入站PAC 108響應與入站命令解譯器216虛擬回應之間切換。仲裁器228中的該仲裁邏輯元件決定操作哪些響應。此外,仲裁器228也基於從該等回應接收的定址資訊幫助交換器232對準正確的記憶體空間(COS或SOS)。仲裁器228也可以知曉來自該SOS和COS的透過交換器226發送的請求序列,以及可能使用請求資訊決定回應路徑。該等PAC 108回應透過該RIRB引擎206自PAC 108接收。交換器232將從該RIRB引擎206接收的回應定路線到回應路徑234上的COS記憶體空間212或回應路徑236上的SOS記憶體空間220。目的地記憶體空間取決於所接收的回應。所有非PAC 108回應都遭發送至COS記憶體空間212,而PAC 108回應根據該回應的類型遭定路線到COS或SOS記憶體空間。
特別地,對於PAC響應,若該響應是來自實體PAC 108,則該響應遭定路線到SOS記憶體空間220。若該回應是從命令解譯器216接收的虛擬回應,則虛擬PAC回應遭定路線到COS記憶體空間212。
根據某些始於COS且對準PAC 108的命令,該命令解譯器216將對SOS產生一中斷。在許多實施例中,由該命令解譯器216所產生的中斷可橫跨中斷路徑238遭發送至存在於SOS VM B中的一軟體編碼解碼器模擬器(SCE)128。然後該SCE 128將把一更新發送至VF1音訊控制 器暫存器244以反映該等暫存器中的中斷。在許多實施例中,該VF1音訊控制器暫存器244受設置到該音訊控制器(第1圖中的132)中。此外,在許多實施例中,一基本輸入/輸出系統(BIOS)可規劃一中斷高級可規劃中斷控制器(APIC),以對上述所產生的中斷設定合適的位址鏡像(圖未顯示APIC)。
VAC 130是動態可規劃的,其允許訂製能力根據VM暴露。例如,一第一VM僅可查看連接到編碼解碼器的揚聲器,而一第二VM僅可查看連接到該編碼解碼器的頭戴耳機。為了保持對VAC 130的嚴格控制,僅SOS VM B可規劃該VAC 130。對VAC 130的規劃可透過在該SOS中執行的一功能驅動程式246來完成。在許多實施例中,當該音訊控制器(第1圖中的138)位於PCI快速匯流排介面上時,一PCI匯流排驅動程式248可結合也在VM B上執行的SOS功能驅動程式246來使用,以將資訊發送至在該I/O主機控制器(第1圖中的106)中的VF1音訊控制器暫存器244、VF1 PCI快速組態暫存器250(以及自其接收資訊),以及到根據設置於SOS記憶體空間220中的VM可訂製組態的VAC 130。在其他實施例中,一獨立智慧驅動程式可遭實施以在用於該VAC 130之特定用途規劃的VMB上執行(該智慧驅動程式沒有顯示)。
使用相同的驅動程式功能,COS透過VM A對VF0音訊控制器以及主機控制器具有可見性。在許多實施例中,在VM A上執行的通用音訊架構(UAA)驅動程式252可結合PCI匯流排驅動程式254使用,以將資訊發送至VF0音訊 控制器暫存器256和/或VF0 PCI快速組態暫存器258(以及自其接收資訊)。然而,COS對VAC 130的組態不具有可見性。
在一些實施例中,一旦VM B受組配作為一主要VM,則VM B以及在其上執行的SOS對PAC 108的實體硬體具有直接取用,所有其他VM(以及各自的OS)查看一虛擬組音訊編碼解碼器暫存器的獨立複本。在其他實施例中,每一VM具有其自己的虛擬編碼解碼器實施以及基本硬體或軟體(諸如VMM 122)管理VM之間的仲裁。
第3圖更加詳細地描述一CORB/RIRB處理邏輯元件實施例。為了最佳地說明該CORB/RIRB處理邏輯元件,每一可能請求及回應的預排在下文中被討論。許多實施例中,CORB和RIRB DMA引擎兩者都具有用於操作的已分配的記憶體空間以及暫存器。該等記憶體空間和暫存器是虛擬化的,因此該COS和鈣SOS兩者都具有其自己的複本。
當一請求命令從SOS遭發送至PAC 108時,該命令在SOS CORB記憶體空間300中開始。在許多實施例中,一個或多個SOS CORB暫存器302被修改,以提供與該命令有關的資訊。該命令到達交換器226,該交換器226利用仲裁器228中的仲裁邏輯元件來決定哪一命令是下一個要發送至CORB引擎204的命令。交換器226的其他輸入是源於COS之非音訊編碼解碼器命令(這些命令在下文中將更加詳細地討論)的命令路徑。在一些實施例中,仲裁器228中的仲裁邏輯元件利用用於仲裁是SOS命令還是COS命令接下來要發送的一循環方案。一旦該命令被該仲裁邏輯元件授 權輪到其,則其遭發送至該CORB引擎204。該CORB引擎204接收該命令以及也從SOS CORB暫存器302接收諸如傳輸參數(例如寫入指標)的資訊。接下來,該CORB引擎204將該命令發送至訊框傳輸(Tx)邏輯元件304,以及然後該命令遭傳送至PAC 108。
選擇性地,當一請求命令從COS CORB記憶體空間306遭發送時,一不同程式被用來決定是否發送該命令到PAC 108。若始於COS的命令對準一非音訊編碼解碼器,則該命令被允許通過。否則,若始於COS的命令對準PAC 108,則該命令不遭發送至PAC 108,而是一獨立流程被利用。該COS CORB記憶體空間306是該較大COS記憶體空間(第2圖中的212)的某一部分。從該COS CORB記憶體空間306發送的命令到達一決策引擎308,該決策引擎決定該命令是否對準PAC 108。在許多實施例中,決策引擎308受設置在捕集邏輯元件(第2圖中的210)的內部。若該命令不對準PAC 108,則該命令遭傳遞到交換器226。交換器226利用仲裁器228中的仲裁邏輯元件決定哪一命令是接下來要發送至CORB引擎204。一旦該仲裁邏輯元件授權輪到該命令,則該命令遭發送至CORB引擎204。該CORB引擎204接收該命令以及也從COS CORB暫存器326接收諸如傳輸參數(例如寫入指標)的資訊。接下來,CORB引擎204將該命令發送至訊框傳輸(Tx)邏輯元件304,以及然後該命令遭傳送至PAC 108。
若該COS CORB記憶體空間306命令對準PAC 108,則決策引擎308將該命令發送至VAC命令解譯器216。該命令解譯器216(其功能以上已相關第2圖被描述)修改該命令從對準PAC 108的命令到對準VAC的命令,然後將該命令發送至VAC回應緩衝器310。該VAC回應緩衝器310允許緩衝命令同時等待在交換器312被授權循環。交換器312將最終把該命令從該回應緩衝器310發送至RIRB引擎206。該RIRB引擎206接收該命令以及也從COS RIRB暫存器314接收資訊並且利用該資訊以將該命令發送至COS RIRB記憶體空間316。COS RIRB記憶體空間316是該較大COS記憶體空間(第2圖中的212)的一部分。
當一響應命令透過訊框接收(Rx)邏輯元件318遭接收時,該命令到達解多工器312。在許多實施例中,該命令也到達決策引擎320,該決策引擎320決定該命令是否是來自該PAC 108的回應。若該命令不是來自該PAC 108的回應,則該命令不被允許通過該解多工器312,在這種情況下,來自VAC回應緩衝器310的命令被允許通過。若該命令是來自該PAC 108的回應,則決策引擎320允許該回應通過解多工器312到達RIRB引擎206。該RIRB引擎206利用COS RIRB暫存器314的資訊將該回應命令發送至COS RIRB記憶體空間316或利用來自SOS RIRB暫存器322的資訊將該回應命令發送至SOS RIRB記憶體324,以找出記憶體空間中的正確位置。決定該回應命令是發送至COS還是SOS的決定基於用於回應傳送的目的地編碼解碼器。
如上所述,對CORB控制暫存器的寫入取用將由 命令解譯器216監控,以決定CORB DMA執行位元何時遭設定。該執行位元致能該CORB引擎204。由於COS軟體中的限制,在COS軟體發送一命令到PAC 108(該命令由SOS解譯)的時間與SOS根據該命令規劃該PAC 108的時間之間可能存在延遲。在一些實施例中,等待的時間量可相應地由BIOS預定和規劃。在一些實施例中,等待時間可達到10毫秒。因此,在許多實施例中,除了該執行位元外,COS VF0和SOS VF1中的DMA引擎將在一特定暫存器中具有與其相關聯的一“等待”位元。該位元將預設為“0”(這意味著不等待)。根據COS VF0對暫存器的寫入(這將在COS發出請求時期發生),該位元將變為實施等待的“1”。當位元遭設定為“1”時,對該暫存器之任何額外的寫入都將遭丟棄。一旦SOS服務該寫入事件,則該位元將由該SOS重新設定為“0”。
第4圖是一處理程序之一實施例的流程圖,用以限制單個虛擬機器之對一實體音訊編碼解碼器的直接取用,同時並為一個或多個其他虛擬機器提供對此實體音訊編碼解碼器的一訂製虛擬介面。該流程透過可包含硬體、軟體或硬體與軟體兩者之一組合的處理邏輯元件來執行。轉到第4圖,該流程透過處理從存在於該系統中的COS補集一命令的邏輯元件開始(處理方塊400)。該命令遭發送至在該系統之音訊控制器中的CORB引擎,因此該命令對準存在於該系統中的一編碼解碼器。處理邏輯元件決定該命令是否特別地對準該PAC或另一編碼解碼器(處理方塊402)。若該命令對準該系統中的另一編碼解碼器,則處理邏輯元件 允許該命令透過CORB引擎直接傳遞到非PAC編碼解碼器(處理方塊404)。
遭發送至編碼解碼器之命令中的一些(但不是全部)打算禁止來自該編碼解碼器的響應。因此,處理邏輯元件將檢查來自非PAC編碼解碼器的響應(處理方塊406)。若沒有回應是必要的,則該流程將在該特定命令結束,否則若一回應確實從該非PAC編碼解碼器返回,則處理邏輯元件將該非PAC編碼解碼器回應發送至COS(處理方塊408)。
現返回到處理方塊402,若該命令特別對準PAC,則該處理邏輯元件解譯該命令以決定該回應需要什麼(處理方塊410)。然後處理邏輯元件將在需要的情況下修改任何VAC暫存器(處理方塊412)。處理邏輯元件也將在需要的情況下修改SOS記憶體空間中的PAC組態(處理方塊414)。處理邏輯元件也將在需要的情況下透過SOS取用PAC直接修改PAC暫存器(處理方塊416)。
之後對PAC和VAC暫存器及SOS記憶體空間做出任何必要修改(這些步驟以上已相關第2圖及第3圖詳細討論),處理邏輯元件將對COS構建一虛擬回應(處理方塊418)。最後,處理邏輯元件將把該虛擬回應發送至該COS(處理方塊420),然後該流程結束。因此,該流程將透過一單一虛擬機器(使用VAC中之處理邏輯元件的SOS以及SOS本身)限制直接取用PAC而同時為用於一個或多個其他虛擬機器的PAC提供一訂製虛擬介面(即COS),然而需要與PAC互動的一個或多個額外的COS也可以被提供其自己的訂製介 面,如以上所討論。
此外,在一些實施例中,VAC並行處理許多命令。在並行處理實施例中,一旦處理邏輯元件在處理方塊410解譯該命令,則處理方塊412到420中的兩個或多個處理方塊可對不同的命令平行作業。此外,在這些並行處理實施例中,處理方塊412到420不必要以如在第4圖中所顯示的特定順序執行。
因此,一種於虛擬化環境中共享音訊子系統的方法、裝置與系統的實施例被描述。這些實施例已參考其特定的示範性實施例描述。對於具有本揭露之利益的通常知識者顯而易見的是,在不脫離於此所述之實施例的廣泛精神與範圍的前提下,可對這些實施例實現各種修改與改變。因此,該說明書與圖式被視為是以說明性意義而非限制性意義。
100‧‧‧處理器
102‧‧‧系統記憶體
104‧‧‧I/O複合體
106‧‧‧I/O主機控制器
108‧‧‧實體音訊編碼解碼器
110、112、114‧‧‧周邊設備
116‧‧‧虛擬化引擎
118‧‧‧虛擬機器A
120‧‧‧虛擬機器B
122‧‧‧虛擬機器管理器
124、126‧‧‧作業系統
128‧‧‧軟體編碼解碼器模擬器
130‧‧‧虛擬音訊編碼解碼器
132‧‧‧音訊控制器
200‧‧‧虛擬功能零(VF0)
202‧‧‧虛擬功能一(VF1)
204‧‧‧命令輸出環緩衝區(CORB)引擎
206‧‧‧回應輸入環緩衝區(RIRB)引擎
208‧‧‧編碼解碼器
210‧‧‧捕集邏輯元件
212‧‧‧COS記憶體空間
214、224‧‧‧命令路徑
216‧‧‧命令解譯器
218‧‧‧虛擬音訊編碼解碼器(VAC)暫存器
220‧‧‧SOS記憶體空間
222‧‧‧虛擬音訊編碼解碼器(VAC)直接記憶體存取(DMA)引擎
226、232‧‧‧交換器
228‧‧‧仲裁器
230、234、236‧‧‧回應路徑
238‧‧‧中斷路徑
244‧‧‧VF1音訊控制器暫存器
246‧‧‧SOS功能驅動程式
248、254‧‧‧PCI匯流排驅動程式
250‧‧‧VF1 PCI快速組態暫存器
252‧‧‧通用音訊架構(UAA)驅動程式
256‧‧‧VF0音訊控制器暫存器
258‧‧‧VF0 PCI快速組態暫存器
300‧‧‧SOS命令輸出環緩衝區(CORB)記憶體空間
302‧‧‧SOS命令輸出環緩衝區(CORB)暫存器
304‧‧‧訊框傳輸(Tx)邏輯元件
306‧‧‧COS命令輸出環緩衝區(CORB)記憶體空間
308、320‧‧‧決策引擎
310‧‧‧虛擬音訊編碼解碼器(VAC)回應緩衝器
314‧‧‧COS回應輸入環緩衝區 (RIRB)暫存器
316‧‧‧COS回應輸入環緩衝區(RIRB)記憶體空間
318‧‧‧訊框接收(Rx)邏輯元件
322‧‧‧SOS回應輸入環緩衝區(RIRB)暫存器
324‧‧‧SOS回應輸入環緩衝區(RIRB)記憶體
326‧‧‧COS命令輸出環緩衝區(CORB)暫存器
400~420‧‧‧流程步驟
第1圖描述能夠針對在該系統上執行的多個虛擬機器,將一訂製介面提供給一實體音訊編碼解碼器的一電腦系統實施例;第2圖描述一虛擬音訊編碼解碼器實施例;第3圖更詳細地描述一命令輸出環緩衝區以及回應輸入環緩衝區處理邏輯元件實施例;第4圖是一處理程序之一實施例的流程圖,用以限制單個虛擬機器之對一實體音訊編碼解碼器的直接取用,同時並為一個或多個其他虛擬機器提供對此實體音訊編碼解碼 器的一訂製虛擬介面。
100‧‧‧處理器
102‧‧‧系統記憶體
104‧‧‧I/O複合體
106‧‧‧I/O主機控制器
108‧‧‧實體音訊編碼解碼器
110、112、114‧‧‧周邊設備
116‧‧‧虛擬化引擎
118‧‧‧虛擬機器A
120‧‧‧虛擬機器B
122‧‧‧虛擬機器管理器
124、126‧‧‧作業系統
128‧‧‧軟體編碼解碼器模擬器
130‧‧‧虛擬音訊編碼解碼器
132‧‧‧音訊控制器

Claims (24)

  1. 一種用於在虛擬化環境中共享音訊子系統的裝置,其包含:一第一虛擬機器,用以直接取用一實體音訊編碼解碼器;一虛擬機器管理器,其係組配來管理記憶體之對該第一虛擬機器和對一或多個額外虛擬機器的各別分配;以及一I/O主機控制器,其包括受該第一虛擬機器管理的一虛擬音訊編碼解碼器,用以為該一或多個額外虛擬機器提供對該實體音訊編碼解碼器的一訂製介面,其中該虛擬音訊編碼解碼器包含:一組虛擬音訊編碼解碼器暫存器,用以保持該實體音訊編碼解碼器的一組組態暫存器之一複本,及一決策引擎,用以促進與該第一虛擬機器之互動。
  2. 如申請專利範圍第1項所述之裝置,其中該虛擬音訊編碼解碼器進一步可操作來捕集從該一或多個額外虛擬機器中之至少一者發送至該實體音訊編碼解碼器的一或多個命令。
  3. 如申請專利範圍第2項所述之裝置,其進一步包含:用以監控一命令出站環緩衝區暫存器和一回應入站環緩衝區暫存器以檢測由該一或多個額外虛擬機器 中之至少一者對該實體音訊編碼解碼器所作之一或多項取用的邏輯元件。
  4. 如申請專利範圍第2項所述之裝置,其中該決策引擎進一步包含:一命令解譯器,其可操作來將所捕集的該一或多個命令轉譯成對該組虛擬音訊編碼解碼器暫存器的一或多項取用。
  5. 如申請專利範圍第4項所述之裝置,其進一步包含:直接記憶體存取邏輯元件,用以將該一或多項存取從該組虛擬音訊編碼解碼器暫存器發送至一系統記憶體中之為該第一虛擬機器所保留的一位置。
  6. 如申請專利範圍第5項所述之裝置,其中該決策引擎進一步包含:一編碼解碼器模擬器,用以進行以下動作:接收對該組虛擬音訊編碼解碼器暫存器的該一或多項取用;以及藉由回應所接收之該等取用來管理該實體音訊編碼解碼器之操作。
  7. 如申請專利範圍第1項所述之裝置,其中該決策引擎進一步包含:一仲裁器,用以:解決在來自該等額外虛擬機器中之一或多者的所請求取用之間的實體音訊編碼解碼器操作衝突; 管理影響該實體音訊編碼解碼器的任何中斷;以及管理來自該實體音訊編碼解碼器的非請求回應。
  8. 如申請專利範圍第1項所述之裝置,其中該第一虛擬機器進一步包含:一服務作業系統,其可操作來進行以下動作:管理該實體音訊編碼解碼器之組態;以及管理該虛擬音訊編碼解碼器之組態。
  9. 如申請專利範圍第2項所述之裝置,其中該一或多個額外虛擬機器中之至少一者包括:一能力作業系統,其可操作來進行以下動作:對執行於該能力作業系統上的一或多個軟體應用程式提供對該虛擬音訊編碼解碼器之存取,其中該存取係透過被發送至該實體音訊編碼解碼器並受該虛擬音訊編碼解碼器捕集的一或多個命令而提供。
  10. 如申請專利範圍第1項所述之裝置,其中該第一虛擬機器包括一第一作業系統,並且該一或多個額外虛擬機器各包括對應的一或多個額外作業系統,並且其中該虛擬音訊編碼解碼器係組配來在該第一作業系統與該一或多個額外作業系統之間作仲裁來對該第一作業系統和該一或多個額外作業系統中之各者提 供一時間部分,以使用受該實體音訊編碼解碼器控制的一或多個周邊設備中之各者。
  11. 如申請專利範圍第1項所述之裝置,其中該虛擬音訊編碼解碼器包括:對應於一或多個周邊設備的一第一組虛擬音訊編碼解碼器暫存器,該一或多個周邊設備與該實體音訊編碼解碼器耦接,以及對應於該一或多個周邊設備的一額外組虛擬音訊編碼解碼器暫存器,其中該第一組虛擬音訊編碼解碼器暫存器和該額外組虛擬音訊編碼解碼器暫存器將該一或多個周邊設備之對應的數個唯一虛擬複本提供給該第一虛擬機器和該一或多個額外虛擬機器中之各者。
  12. 一種用於在虛擬化環境中共享音訊子系統的方法,其包含以下步驟:藉由存在於系統記憶體中的一第一虛擬機器來管理一虛擬音訊編碼解碼器,來為一或多個額外虛擬機器提供對一實體音訊編碼解碼器的一訂製介面;將該實體音訊編碼解碼器的一組組態暫存器之一複本保持在一I/O主機控制器之該實體音訊編碼解碼器的一組虛擬組態暫存器中;藉由該虛擬音訊編碼解碼器的一決策引擎來促進與該第一虛擬機器的互動;藉由存在於該系統記憶體中的一虛擬機器管理器 來管理記憶體之對該第一虛擬機器和對該一或多個額外虛擬機器的各別分配;以及藉由該第一虛擬機器來直接取用該實體音訊編碼解碼器。
  13. 如申請專利範圍第12項所述之方法,其進一步包含以下步驟:在從該一或多個額外虛擬機器中之至少一者發送至該實體音訊編碼解碼器的一或多個命令到達該實體音訊編碼解碼器之前捕集該一或多個命令。
  14. 如申請專利範圍第13項所述之方法,其進一步包含以下步驟:監控一命令出站環緩衝區暫存器和一回應入站環緩衝區暫存器,以檢測由該一或多個額外虛擬機器中之至少一者對該實體音訊編碼解碼器所作的一或多項取用。
  15. 如申請專利範圍第14項所述之方法,其進一步包含以下步驟:將所捕集的該一或多個命令轉譯成對該組虛擬音訊編碼解碼器暫存器的一或多項存取;以及藉由回應經轉譯的該等命令而管理該實體音訊編碼解碼器之操作。
  16. 一種用於在虛擬化環境中共享音訊子系統的系統,其包含:一系統記憶體,其包括: 一第一虛擬機器,用以:直接取用一實體音訊編碼解碼器;和提供資源給執行於該第一虛擬機器上的一服務作業系統,其中該服務作業系統管理一虛擬音訊編碼解碼器;及一虛擬機器管理器,其係組配來管理記憶體之對該第一虛擬機器和對一或多個額外虛擬機器的各別分配;以及一I/O控制器,其包括有該虛擬音訊編碼解碼器,該虛擬音訊編碼解碼器係用於為一或多個額外虛擬機器提供對該實體音訊編碼解碼器的一訂製介面;其中該虛擬音訊編碼解碼器包含:一組虛擬音訊編碼解碼器暫存器,用以保持該實體音訊編碼解碼器的一組組態暫存器之一複本,及一決策引擎,用以促進與該第一虛擬機器的互動;其中該一或多個額外虛擬機器係用於對一或多個軟體應用程式提供對該虛擬音訊編碼解碼器之取用,該一或多個軟體應用程式受執行於該一或多個額外虛擬機器中之至少一者上的至少一個能力作業系統管理。
  17. 如申請專利範圍第16項所述之系統,其中該虛擬音訊編碼解碼器進一步可操作來進行以下動作:在從該一或多個額外虛擬機器中之至少一者發送 至該實體音訊編碼解碼器的一或多個命令到達該實體音訊編碼解碼器之前捕集該一或多個命令。
  18. 如申請專利範圍第17項所述之系統,其進一步包含:用於監控一命令出站環緩衝區暫存器和一回應入站環緩衝區暫存器以檢測由該一或多個額外虛擬機器中之至少一者所作之對該實體音訊編碼解碼器之一或多項存取的邏輯元件。
  19. 如申請專利範圍第17項所述之系統,其中該決策引擎進一步包含:一命令解譯器,其可操作來將所捕集的該一或多個命令轉譯成對該組虛擬音訊編碼解碼器暫存器的一或多項存取。
  20. 如申請專利範圍第19項所述之系統,其進一步包含:直接記憶體存取邏輯元件,用以將該一或多項取用從該組虛擬音訊編碼解碼器暫存器發送至一系統記憶體中之為該第一虛擬機器保留的一位置。
  21. 如申請專利範圍第20項所述之系統,其中該決策引擎進一步包含:一編碼解碼器模擬器,用以進行以下動作:在該系統記憶體中之為該第一虛擬機器保留的該位置中接收對該組虛擬音訊編碼解碼器暫存器的該一或多項取用;以及藉由回應所接收的該等取用來管理該實體音訊編碼解碼器之操作。
  22. 如申請專利範圍第16項所述之系統,其中該決策引擎進一步包含:一仲裁器,用以進行以下動作:解決在來自該等額外虛擬機器中之一或多者的所請求取用之間的實體音訊編碼解碼器操作衝突;管理影響該實體音訊編碼解碼器的任何中斷;以及管理來自該實體音訊編碼解碼器的非請求回應。
  23. 如申請專利範圍第16項所述之系統,其中該第一虛擬機器進一步包含:一服務作業系統,其可操作來進行以下動作:管理該實體音訊編碼解碼器之組態;以及管理該虛擬音訊編碼解碼器之組態。
  24. 如申請專利範圍第23項所述之系統,其中該服務作業系統進一步可操作來進行以下動作:管理一網路電話(VoIP)引擎,該VoIP引擎係用於透過該服務作業系統而使用該實體音訊編碼解碼器。
TW097147804A 2007-12-27 2008-12-09 用於在虛擬化環境中共享音訊子系統的裝置、方法與系統 TWI403955B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/965,595 US8250573B2 (en) 2007-12-27 2007-12-27 Audio subsystem sharing in a virtualized environment

Publications (2)

Publication Number Publication Date
TW200937292A TW200937292A (en) 2009-09-01
TWI403955B true TWI403955B (zh) 2013-08-01

Family

ID=40352312

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097147804A TWI403955B (zh) 2007-12-27 2008-12-09 用於在虛擬化環境中共享音訊子系統的裝置、方法與系統

Country Status (4)

Country Link
US (1) US8250573B2 (zh)
EP (1) EP2075688A1 (zh)
CN (1) CN101470596B (zh)
TW (1) TWI403955B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972984B2 (en) * 2011-05-20 2015-03-03 Citrix Systems, Inc. Methods and systems for virtualizing audio hardware for one or more virtual machines
WO2013086701A1 (zh) * 2011-12-14 2013-06-20 华为技术有限公司 虚拟化环境下的音频处理方法和设备
US9236064B2 (en) * 2012-02-15 2016-01-12 Microsoft Technology Licensing, Llc Sample rate converter with automatic anti-aliasing filter
WO2015003312A1 (en) 2013-07-09 2015-01-15 Hua Zhong University Of Science Technology Data communication on a virtual machine
US9396015B2 (en) * 2014-10-27 2016-07-19 Ayla Networks, Inc. Flexible device templates for connected consumer devices
US10168985B2 (en) * 2015-12-21 2019-01-01 Intel Corporation Dynamic audio codec enumeration
US10846123B2 (en) * 2018-09-25 2020-11-24 Microsoft Technology Licensing, Llc Audio rendering from virtual machine

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0597381A2 (en) * 1992-11-13 1994-05-18 International Business Machines Corporation Method and system for decoding binary data for audio application
US6823418B2 (en) * 2001-06-29 2004-11-23 Intel Corporation Virtual PCI device apparatus and method
US20070038997A1 (en) * 2005-08-09 2007-02-15 Steven Grobman Exclusive access for secure audio program
TW200721113A (en) * 2005-11-28 2007-06-01 Mediatek Inc Audio decoding system and method
US20070255432A1 (en) * 2006-04-27 2007-11-01 Creative Technology Ltd High definition audio architecture

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
UA55489C2 (uk) * 1997-10-07 2003-04-15 Каналь+ Сосьєте Анонім Пристрій для багатопотокової обробки даних (варіанти)
US7036122B2 (en) * 2002-04-01 2006-04-25 Intel Corporation Device virtualization and assignment of interconnect devices
US7735081B2 (en) 2004-12-17 2010-06-08 Intel Corporation Method, apparatus and system for transparent unification of virtual machines
US7814496B2 (en) * 2005-08-19 2010-10-12 Intel Corporation Method and system for replicating schedules with regard to a host controller for virtualization
DE102005041312A1 (de) * 2005-08-31 2007-03-15 Advanced Micro Devices, Inc., Sunnyvale Speicherzugriff auf virtuelles Targetgerät
US7613847B2 (en) * 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines
US7725305B2 (en) 2006-06-08 2010-05-25 Microsoft Corporation Partial virtualization on computing device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0597381A2 (en) * 1992-11-13 1994-05-18 International Business Machines Corporation Method and system for decoding binary data for audio application
US6823418B2 (en) * 2001-06-29 2004-11-23 Intel Corporation Virtual PCI device apparatus and method
US20070038997A1 (en) * 2005-08-09 2007-02-15 Steven Grobman Exclusive access for secure audio program
TW200721113A (en) * 2005-11-28 2007-06-01 Mediatek Inc Audio decoding system and method
US20070255432A1 (en) * 2006-04-27 2007-11-01 Creative Technology Ltd High definition audio architecture

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Darren Abramson et al.,"Intel Technology Journal",INTEL,Volume 10 Issue 03,2006。 *

Also Published As

Publication number Publication date
TW200937292A (en) 2009-09-01
US20090171677A1 (en) 2009-07-02
CN101470596A (zh) 2009-07-01
CN101470596B (zh) 2013-06-12
US8250573B2 (en) 2012-08-21
EP2075688A1 (en) 2009-07-01

Similar Documents

Publication Publication Date Title
TWI403955B (zh) 用於在虛擬化環境中共享音訊子系統的裝置、方法與系統
US11113089B2 (en) Sharing data via virtual machine to host device bridging
TWI303025B (en) Physical device , i/o device and computer system with virtual machine capable interfaces
TWI447650B (zh) 中斷分佈方案
JP4799118B2 (ja) 情報処理装置、情報処理システム、通信中継装置および通信制御方法
JP2013041409A (ja) 情報処理装置、割込み制御方法および割込み制御プログラム
JP2014063497A (ja) 論理装置の機能を有するpciエクスプレススイッチ
US9875131B2 (en) Virtual PCI device based hypervisor bypass using a bridge virtual machine
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
US8996734B2 (en) I/O virtualization and switching system
CN115203095A (zh) PCIe装置及其操作方法
US8972624B2 (en) USB virtualization
JP2008165556A (ja) 計算機システムおよびそのチップセット
TW201732633A (zh) 分散式輸入/輸出虛擬化
Sander et al. Hardware virtualization support for shared resources in mixed-criticality multicore systems
TWI811560B (zh) 資源整合系統及資源整合方法
Chang et al. Virtualization technology for TCP/IP offload engine
US7930445B2 (en) Computer system using remote I/O and I/O data transfer method
US11809349B1 (en) Direct injection of a virtual interrupt
US20140052879A1 (en) Processor, information processing apparatus, and interrupt control method
US11386031B2 (en) Disaggregated switch control path with direct-attached dispatch
WO2007039933A1 (ja) 演算処理装置
JP2011181080A (ja) データ処理システム
Tu Memory-Based Rack Area Networking
KR20230152394A (ko) PCIe 장치 및 이의 동작 방법

Legal Events

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