TWI421766B - 經由韌體提供虛擬裝置存取功能之技術 - Google Patents

經由韌體提供虛擬裝置存取功能之技術 Download PDF

Info

Publication number
TWI421766B
TWI421766B TW095111182A TW95111182A TWI421766B TW I421766 B TWI421766 B TW I421766B TW 095111182 A TW095111182 A TW 095111182A TW 95111182 A TW95111182 A TW 95111182A TW I421766 B TWI421766 B TW I421766B
Authority
TW
Taiwan
Prior art keywords
interface
data
operating system
hardware
processor
Prior art date
Application number
TW095111182A
Other languages
English (en)
Other versions
TW200705264A (en
Inventor
Arad Rostampour
Original Assignee
Hewlett Packard Development Co
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 Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW200705264A publication Critical patent/TW200705264A/zh
Application granted granted Critical
Publication of TWI421766B publication Critical patent/TWI421766B/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

經由韌體提供虛擬裝置存取功能之技術 發明領域
本專利申請案是關於資料處理問題,特別針對經由韌體執行期間服務提供對虛擬裝置的存取。
發明背景
在過去的幾十年,現代個人電腦因為大量的技術革新而受益良多。不斷提高的處理器速度及輸入-輸出(input-output,I/O)匯流排的資料傳輸速度都帶來了性能增長。I/O資料傳輸速度的發展大部分已經透過新的介面標準的實施而實現,儘管其落後的相容性迫使大量的傳統介面仍需存在在個人電腦。
在“x86”系列處理器架構中,最初的標準I/O介面包括用於連接外部周邊設備的串列和平行埠、用於插入卡的工業標準架構(Industry Standard Architecture,ISA)匯流排和用於軟碟和硬碟驅動器的整合驅動電子(Integrated Drive Electronics,IDE)介面。現代的個人電腦可能仍然含有上述某些介面,但已平穩轉變到用於外部周邊設備的通用串列匯流排(Universal Serial Bus,USB)和高速串列匯流排IEEE1394、用於各類卡的周邊組件互連(Peripheral Component Interconnect,PCI)匯流排,和用於硬驅動器的增強型整合驅動電子(Enhanced IDE)和先進技術附件(AT Attachment,ATA)。其他為各類硬體和環境而開發的專用介面也不斷地發展,例如用於可攜式電腦的個人電腦記憶卡國際協會(Personal Computer Memory Card International Association,PCMCIA)設備和用於視訊卡的先進圖形處理器(Advanced Graphic Processor,AGP)匯流排介面。
儘管在電腦I/O標準方面有該等進步,作業系統可能仍然需要存取一個已知的、一般的介面。這些一般介面代表了一個可以在一系列環境下安全使用的最小公分母。例如,一些版本的WindowsT M 和UnixT M 核心允許透過終端設備對作業系統進行存取。過去這些終端設備都是連接到電腦的串聯埠的“啞”終端。一些類似於核心訊息記錄表的重要工作可以直接被導向該終端(此終端也被稱為“控制台”)。這些終端可能用作系統輸入,例如為使用者存取或者輸入到核心偵錯器提供一個登錄。
一個啞終端通常被連接到主機的一個通用異步接收器-發送器(Universal Asynchronous Receiver-Transmitter,UART)。該通用異步接收器-發送器在串列傳輸線上發送和接收資料。該通用異步接收器-發送器串列化輸出資料、將輸入串列資料組合成位元組並將這些位元組放到一個緩衝器中。儘管在傳輸線上常常使用通用異步接收器-發送器的異步通信,用於同步通信的相似設備也存在,例如,其中,這兩種通信設備都同步於一個時脈信號。
一個作業系統可能同樣需要其他最小公分母設備,例如鍵盤、滑鼠和顯示器。在一個資料中心環境,為每一台電腦都提供以上每一實體設備是不實際的,而這些設備可能還需要輔助連接器和供電裝置。隨著這些附加的硬體設備越來越多,電腦系統的花費也越多,需要更大的空間,也造成了能量消耗。在很多密集封裝的資料中心,以上所述的三項事實已經受到重視。因此,急切需要提供一種方案在不增加硬體尺寸、花費與能量消耗的情況下對電腦提供傳統設備存取。
發明概要
硬體存取被提供給一個作業系統,透過分配一個資料處理安排的韌體位址空間的一部分,作為一個模擬第一硬體設備的虛擬化資料介面。該虛擬化資料介面被呈現給該作業系統。該作業系統透過使用該作業系統的標準核心元件來存取該虛擬化的資料介面,此標準核心元件適用於與該第一硬體設備溝通。資料在該虛擬化介面與一個第二硬體設備間進行交換,基於該作業系統透過該標準核心元件對該虛擬化資料介面的存取。
圖式簡單說明
第1圖是說明本發明之實施例被配置為提供一個虛擬設備存取的軟體架構;第2圖是說明本發明之實施例的虛擬設備介面被實現在匯流排配置空間;第3圖是說明本發明之實施例的虛擬設備介面實施在PCI配置空間的細節;第4A圖是說明本發明之實施例使用虛擬設備介面在一個單一分割,來自多作業系統的多工輸出。
第4B圖是說明本發明之實施例使用虛擬設備介面來自多分割的多工輸出。
第5圖是說明本發明之實施例對提供一個虛擬設備存取程序的圖式。
較佳實施例之詳細說明
在接下來對各不同實施例的描述中,同時參考附圖,且附圖為實施例的一部份,且本發明可透過各種範例方法的說明而被實施。要明白的是其他實施例也可以被使用,可以做結構性和操作上的改變而沒有脫離本發明的範圍。
通常,此發明是關於使用韌體執行期間服務來模擬一個硬體介面。該硬體可被模擬,使用韌體提供的PCI配置空間存取。在某些架構中,該PCI配置空間可由韌體中的抽象化層而被存取。這樣,作業系統和其他軟體可以不需要直接硬體存取(例如,寫入I/O位址空間)而實現存取PCI設備配置。這同樣使實現虛擬PCI設備成為可能,因為該PCI配置空間可以在韌體中被處理。所以,例如,一個滿足最小系統需求的虛擬串列通信埠可以在韌體中實現。該虛擬串列埠可以被配置為透過使用一個不同類型的通信頻道來傳送該串列資料,或作為一佔位(例如,一個“位元桶”)來確保該系統滿足該作業系統的最小硬體需求。
需將瞭解的是很多電腦系統會因應用模擬設備介面而受益。特別是那些需要很多標準介面的系統可經由此方法受益。標準化介面可能包括一些符合所熟知的資料和協定配置的介面,例如串列埠、並行埠、鍵盤、顯示器、記憶體、網路連接等。這些標準化介面可能被標準化核心元件存取,包括標準化設備驅動器、直接核心存取和類似物。標準化裝置驅動器包括傳統的驅動器,該等傳統的驅動器可沒有修改而與一模擬介面一起被使用。該等標準化驅動器可能也包含了一些專門化驅動器。此特別專門化驅動器採取傳統驅動器的行為,但被撰寫以特別地利用被模擬或被虛擬的標準硬體介面。應當瞭解的是該模擬設備介面可能使用任何此領域內已知的標準核心元件的組合。
一種可能受惠於虛擬介面的系統包含可分系統。一個可分系統由節點(或者單元)組成,其中這些分割為被分配為獨立工作的子系統。一個可分系統可能包括一個擁有多個作業系統影像執行的單一系統,及/或可能包括在一個單一的複合/框架中執行的多個電腦。此系統中的每一個分割執行一個潛在不同作業系統的容錯實例。每個有效分割可能需要最小組的硬體,例如串列埠、視訊、鍵盤、滑鼠、網路介面等。
在一個分割系統中,為每一個分割都分配實際設備是困難的。一個分割系統的每個分割所包含的分離設備所需要的空間、能量和花費,可能造成一些不實際的實現。當該等分割被人為地或自動地再指定或再配置時,這種情形特別容易發生。但是,對分割系統和相似電腦配置提供傳統設備存取也有很多優點。這些優點包括相容性和可靠性。在一些情況下,作業系統可以利用一個現存的傳統驅動器來存取虛擬設備,藉此可以排除對專門設備驅動器、額外硬體和/或專門化硬體的需求。
現在來看第1圖,展示了根據此發明之實施例應用一個虛擬設備介面102的電腦架構100。此例中的電腦架構100包括一個與韌體106互動的作業系統104。該作業系統可是此領域內已知的任何作業系統,包括WindowsT M 、LinuxT M 、UnixT M 、Mac OST M 和其他類似的。該韌體106通常包括一個被設計用來與專門的特定平台硬體110互動的唯讀記憶體(Read-only Memory,ROM)或可抹除可程式化唯讀記憶體(Erasable Programmable Read-only Memory,EPROM)晶片。該韌體106也可以被重新放置並從系統隨機存取記憶體(Random Access Memory,RAM)執行,還同樣可以從磁碟載入、從RAM執行。該韌體106可能包括啟動驅動器108,該驅動器108可以在作業系統104的啟動時間幫助存取該特定平台硬體110的各個部分。
該韌體106可能也包含一個介面,例如被定義在可延伸韌體介面(Extensible Firmware Interface,EFI)規格中的介面。EFI定義了一個在作業系統104與硬體110間一般的、可延伸的介面連接標準。本例中的EFI層包括一個作業系統載入器112、啟動服務114和執行期間服務116。該作業系統載入器112是一個使用標準化啟動服務114和標準化執行期間服務116來載入作業系統104的軟體。該EFI啟動服務114在啟動時間內將設備抽象為“處置”和“協定”來使用。該抽象化允許一個傳統作業系統載入器(例如,傳統BIOS代碼)可以被再使用且該設備的終端用戶不需擔心其基本執行情況。該EFI執行期間服務116同樣提供基本硬體資源的抽象化,以在執行時被該作業系統104使用。
其他抽象化層可能同樣存在於韌體106中。例如,ItaniumT M 結構定義一個除EFI外的系統抽象化層(System Abstraction Layer,SAL)。該SAL將特定平台硬體110特有的特徵封裝並在一通用介面呈現這些特徵。特別的是,SAL抽象整個硬體110,除了處理器118。可被SAL存取的硬體110可能包括記憶體120、啟動設備(例如:硬碟)122,和輸入-輸出(input-output,I/O)子系統124。特別的是,SAL提供對電腦架構100中PCI配置空間128的存取。
如圖所示的韌體106包括一個SAL執行期間服務模組126。當該作業系統104執行時(例如,後啟動),該模組126提供執行期間服務慣例給該作業系統104,該執行期間服務慣例封裝了硬體功能。EFI啟動和執行期間服務114、116也可與SAL執行期間服務126相接觸。該作業系統104也呼叫SAL執行期間服務126的程序來存取特定平台硬體,特別是PCI配置空間128。該SAL執行期間服務模組126被設計成,透過SAL存取硬體的時間不會比直接透過作業系統104多。
並不是所該作業系統104的硬體存取都必須透過SAL 126或EFI。例如,先進組態與電力介面(Advanced Configuration and Power Interface,ACPI)127是一個在電腦安排時針對作業系統導向的配置的工業標準介面。ACPI提供一個定義完善的介面規格,此規格提供配置、定義和系統硬體的設備發現,包括PCI硬體。
SAL執行期間服務126、EFI執行期間服務116,和/或ACPI 127可被用來呈現給該作業系統104一個虛擬設備介面102,以及使用PCI配置空間128的相關軟體。該虛擬設備介面102通常模擬一個標準化設備的行為,雖然它可能也模擬一個非標準設備。被該虛擬設備介面102模擬的標準化設備典型地為一種作業系統104良好支援的簡單、傳統的設備,例如一個UART、視訊顯示器、鍵盤等等。
在虛擬設備介面102中被處理的資料轉移可被中繼到一個或更多實際資料轉移設備中。相似地,與多虛擬設備介面102進行交換的資料可被多路傳輸到一個單一資料轉移設備中。該資料傳輸設備可能是任何一個滿足系統需求的設備。例如,如果想與虛擬設備介面102進行遠端交換資料,那麼一個網路卡可被作為資料轉移設備,用來進行遠端資料轉移。如果想本地儲存該虛擬設備介面102輸出資料,一個硬碟或者其他本地儲存器可作為資料轉移設備一樣。
網路卡這類設備是透過一I/O匯流排連接到處理器118。一種常常被使用的I/O匯流排是PCI。PCI是一個被包含在大多數現代通用電腦的本地匯流排標準。PCI可能在任何目前已知或今後發展的處理器架構中被實現,包括Intelx86、x86-64、Itanium、EM64T、AMD64、Alpha、PowerPCT M 、ARM、MIPS等。該PCI匯流排促進處理器和本地連接周邊設備間的高速資料交換。
一個單一的PCI設備可能擴展達到8個獨立的功能。這些功能可在該設備的配置空間中被分別定址,其中一例是PCI配置空間128。配置空間128指的是每一設備所維持的一個記憶位置區塊,用作識別、初始化和控制。PCI相容設備(除主機/匯流排橋外)實施PCI配置空間128。該PCI規格定義一組暫存器,該等暫存器在配置空間128的一部分(已知為配置標頭)被實施。這些暫存器裏的內容包括設備ID、供應商ID、等級代碼等等。
在x86架構中,PCI配置空間128透過使用兩個定位在I/O位址空間的32位元埠而被存取。在利用SAL的架構中一個交替機制被用來存取PCI配置空間128。該SAL規格引入了使用SAL程序呼叫來存取PCI配置空間128,例如由SAL執行期間服務126提供。在這樣的系統中,PCI配置空間128不能使用I/O埠進行存取,因為異步事件發生的可能性會使存取不可靠。存取PCI配置空間128也可由韌體服務提供,例如EFI執行期間服務116和ACPI 127。
熟於此技術領域者理將瞭解PCI配置空間128僅僅是一可被使用之硬體介面的例子,用來實施虛擬設備介面102。一個虛擬設備介面102可被寫入以利用任何現在已知或將研發出的其他專門或通用目的硬體I/O介面,這些被其他介面130所表示。通常,任何支援在韌體中模擬一個設備的硬體介面可被用來提供虛擬介面102。
在韌體106提供虛擬設備介面102的一個優點就是系統開發者可以在沒有提供由介面102模擬的實際硬體的情況下,提供到該作業系統104的模擬設備存取。第2圖顯示了一個根據此發明之實施例在韌體106中設備模擬的實例。此例中,若干虛擬設備介面200是經由一個匯流排配置空間201提供。如圖所示該虛擬設備介面200包括一個虛擬UART介面202、一個虛擬顯示器介面204、一個虛擬鍵盤介面206和一個虛擬平行埠介面208。該等介面200的每一個可代表那些沒有實際包含在硬體中但對作業系統104是必要的傳統介面。例如,該虛擬UART、顯示器和鍵盤介面202、204和206可用於紀錄、除錯和控制的目的。該虛擬平行介面208可被用來模擬一個列印機或者其他列印/紀錄設備。
該韌體106可能也包括用於調整與該等介面200相關的資料和狀態的其他軟體。例如,該虛擬UART介面202可能利用一個轉譯器模組210來進行格式化、組合和同步資料,以在一個或更多資料轉移設備212上通信。相似的模組可能被用來轉譯經由介面200通信的資料。例如,該虛擬顯示器和鍵盤介面204、206可耦合到一個控制台模擬模組214,其為兩個結合的介面204、206處理適當的輸入輸出。
該等虛擬埠200可能被安排與任何類型的資料轉移設備212通信。該等設備212可能在本地被附加(例如,在板上或遠端被附加。此類設備212可能包括網路卡/晶片216、USB埠218,無線通信設備220或者其他任何已知的資料交換/通信/儲存設備,都由通用設備222代表。
根據本發明,虛擬設備介面的特殊實施細節顯示在第3圖中。此例顯示虛擬介面300被安排在一個PCI配置空間301中模擬一個軟碟機。這樣的一個介面300是需要的,例如,用來更新例如驅動器和BIOS影像的系統資料。該介面300包括一個在PCI配置空間301中的PCI配置標頭302。該標頭302包括一個使用在PCI配置標頭302中的分類碼暫存器303。該分類碼暫存器303被設定為,例如,010200h,其是一個PCI規格中所指定用來代表軟碟機的預先定義值。其他配置標頭302的暫存器也為此軟碟機設備而被適當地設定。
該虛擬介面300包括一個模擬模組304。該模擬模組304包括一個軟碟機介面306,其被配置為呈現該配置標頭302為一軟碟機,並且為此設備以合適的方式完成PCI資料轉移。一個硬體介面308被配置用作與資料轉移硬體212交換資料。該模擬模組304結合了軟碟機介面306與硬體介面308,因此作業系統104“以為”該資料轉移硬體212是一個軟碟機。
一個第二範例的虛擬介面310被安排模擬一個控制台(比如,一個UART)。例如,這樣一個介面310可被一在作業系統104上執行的控制台應用程式使用。該介面310在一個PCI配置空間313中利用一個第二標頭312。該分類碼暫存器313被設定成在PCI規格中所定義的適當值。一個模擬模組314處理在PCI邊的控制台介面316與一個硬體介面318之間的通信。該硬體介面318被配置以與該資料轉移硬體212通信。
第3圖中顯示的虛擬介面300和318僅僅是依據本發明之實施例所實施的範例介面。理當瞭解的是任何類型的硬體介面都可以透過使用這裏描述的概念被虛擬化。此類硬體介面可能包括鍵盤、滑鼠、軌跡球、操縱杆、輸入板、處理器、數據機、硬驅動機、光學驅動機、固態記憶體、網路介面、音訊、視訊、照相機、磁帶驅動機等等。
另外,該虛擬化介面300和318可透過使用一個不標準驅動器的PCI列舉來實施。例如,一個被韌體多重分割的系統內,一個單一的設備(例如,一個控制台)可在各個分割間被共用,透過在PCI配置空間呈現給每一作業系統一虛擬化UART。作業系統可以用一種標準方法改變(例如,用一個被修正過的驅動器),以用與使用I/O埠或者記憶體映射I/O時相同的方式使用該PCI配置空間。這可以使用非常少的代碼改變完成,並且不需要設備特定知識。此舉可以提供以下好處:作業系統不必瞭解新應用程式介面或不需多工該控制台的作業系統特定驅動器就可以存取虛擬裝置。
第3圖中的例子顯示了兩個不同虛擬介面300、310被呈現到一個單一的作業系統以及被用來存取一個單一硬體設備212。在其他安排下,可能想要使用很多相似或相同的虛擬介面來存取一個或多個設備。一種安排是如第4A圖所示,顯示本發明之實施例--使用在可分割電腦配置402上的多個虛擬設備介面400。
該電腦配置402可以執行多個作業系統,如作業系統404、406和408。該等作業系統404、406和408對提供一個匯流排配置空間412的韌體410進行存取。該匯流排配置空間412提供虛擬介面414、416和418,該等虛擬介面分別與作業系統404、406和408相關。該等虛擬介面414、416和418實質上是相似或一致的。例如,該等虛擬介面414、416和418可能代表虛擬UART,但可能有會可能沒有符合相同的UART規格(例如,16550,8250)。
一個模擬器/多工器模組420可以經由所有的虛擬介面414、416和418交換資料,並傳輸資料到資料轉移硬體422。該模擬器/多工器420可被配置用來模擬一個用虛擬介面414、416和418描述的設備的行為,還可以控制資料轉移硬體422與多介面414、416和418之間的資料配置(例如,多工/解多工)。例如,該配置可能透過虛擬化UART介面414、416和418轉移作業系統404、406和408的除錯資料,並多工該資料到一個或多個資料轉移設備422,例如網路卡。
第4A圖中顯示的虛擬化UART介面414、416和418可服務多個作業系統影像404、406和408(在一個單一分割中執行)。依據本發明之實施例,一個替換的配置424顯示在第4B圖中。該電腦配置424包括多個分割426、427和428。每個分割都包括作業系統影像432、虛擬分割434、韌體438和配置空間440。多作業系統影像432的每一個在各個分割426、427和428裡獨立執行。
每個虛擬分割434可包括自己的啟動磁碟、自己的CPU、自己的LAN鏈結和一個足夠的記憶體子集來執行作業系統432以及處理虛擬分割434上的應用程式。一個虛擬化UART介面436是被包括在該配置中的,其也可在每個分割426、427和428的韌體438和配置空間440中實施,如以上第4A圖所描述的。
該匯流排配置空間440提供虛擬介面442、444和446,該等虛擬介面分別是與分割426、427、428的作業系統影像432有關。該等虛擬介面442、444和446可能實質上相似或相同。該等虛擬介面442、444和446可能呈現一個標準或非標準設備的虛擬化PCI列舉。類似於第4A圖所顯示的配置,第4B圖的電腦配置424包括一個模擬器/多工器模組450,其可以與一些或所有虛擬介面442、444和446交換資料,還可以將資料傳到資料轉移硬體452。
現在看第5圖,依據本發明之實施例,一個程序500被顯示使用韌體執行期間服務以提供虛擬設備存取。一個資料處理安排的韌體的一部分被分配(502)用作一個虛擬化資料介面,其模擬一個第一硬體設備。該第一硬體設備可是任何設備,特別可是透過使用一個作業系統標準化核心元件而被存取的設備。該虛擬化資料介面被呈現(504)給該作業系統。例如,該虛擬化介面可在PCI配置空間中被建立。然後,該虛擬化資料介面被該作業系統的一個標準化核心元件(例如,一個設備驅動器)存取(506)。資料在該虛擬化介面與第二硬體設備間進行交換(508)。該交換(508)典型地是由該作業系統存取虛擬化資料介面所引起的。
理當瞭解的是,用於實現本發明之實施例的基於處理器指令可以電腦可讀取媒體形式的指令或其他多種形式分佈。此類基於處理器指令的描述相同地作用,不管實際用於實現此分佈的裝載信號媒體的特殊類型。電腦可讀取媒體的例子包括EPROM、ROM、磁帶、紙、軟碟機、硬碟、RAM和CD-ROM還有傳送型媒體,比如數位和類比通信連結。
前述的本發明之示範性實施例的描述僅以揭示和陳述為目的。無意保證其詳盡無疑,且無意限制本發明為此揭露的準確形式。根據本發明之教示,很多修改和變化都是可能的。欲說明的是本發明的範圍沒有限制在此實施方式,而是由附加之申請專利範圍所限制。
100...電腦架構
102...虛擬設備介面
104...作業系統
106...韌體
108...韌體啟動驅動器
110...特定平台硬體
112...EFI作業系統載入器
114...EFI啟動服務
116...EFI執行期間服務
118...處理器
120...記憶體
122...啟動設備
124...I/O子系統
126...SAL執行期間服務模組
127...ACPI
128...PCI配置空間
130...其他介面
200...虛擬設備介面
201...匯流排配置空間
202...虛擬UART介面
204...虛擬顯示器介面
206...虛擬鍵盤介面
208...虛擬平行介面
210...轉譯器模組
212...資料轉移硬體
214...控制台模擬模組
216...網路
218...USB埠
220...無線通信設備埠
222...通用設備埠
300...虛擬化介面
301...PCI配置空間
302...PCI配置標頭
304、314...模擬模組
306...軟碟機介面
308、318...硬體介面
310...虛擬化介面
312...標頭
313...分類碼暫存器
314...模擬模組
316...控制台介面
318...硬體介面
400...虛擬設備介面
402...電腦配置
404、406、408...作業系統
410、438...韌體
412、440...匯流排配置空間
414、416、418、442、444、446...虛擬介面
420、450...模擬器/多工器模組
422、452...資料轉移硬體
424...電腦配置
426、427、428...子作業系統
432...作業系統影像
434...虛擬分割
436...虛擬化UART介面
500~508...步驟
第1圖是說明本發明之實施例被配置為提供一個虛擬設備存取的軟體架構;第2圖是說明本發明之實施例的虛擬設備介面被實現在匯流排配置空間;第3圖是說明本發明之實施例的虛擬設備介面實施在PCI配置空間的細節;第4A圖是說明本發明之實施例使用虛擬設備介面在一個單一分割,來自多作業系統的多工輸出。
第4B圖是說明本發明之實施例使用虛擬設備介面來自多分割的多工輸出。
第5圖是說明本發明之實施例對提供一個虛擬設備存取程序的圖式。
500~508...步驟

Claims (30)

  1. 一種基於處理器為一作業系統提供硬體存取之方法,該方法包括以下步驟:分配一資料處理配置的韌體位址空間的一部分以作為模擬一第一硬體設備的一虛擬化資料介面;呈現該虛擬化資料介面給該作業系統;使用該作業系統(OS)的一個標準核心元件來存取該虛擬化資料介面,該標準核心元件適於與該第一硬體設備介接;以及基於由該作業系統透過該標準核心元件對該虛擬化資料介面的存取,在該虛擬化介面與一個第二硬體設備之間交換資料,其中該資料交換為該作業系統在沒有該第一硬體設備的存在即可對該第一硬體設備提供模擬接取,且該第二硬體設備係不同於該第一硬體設備之類型。
  2. 如申請專利範圍第1項所述之方法,其中,分配韌體位址空間的該部分包括分配周邊組件互連(PCI)配置空間的一部分。
  3. 如申請專利範圍第1項所述之方法,其中,存取該虛擬化資料介面包括透過一系統抽象層(SAL)存取該虛擬化資料介面。
  4. 如申請專利範圍第1項所述之方法,其中,存取該虛擬化資料介面包括透過一可延伸韌體介面(EFI)存取該虛擬化資料介面。
  5. 如申請專利範圍第1項所述之方法,其中,存取該虛擬化資料介面包括透過一先進組態與電力介面(ACPI)存取該虛擬化資料介面。
  6. 如申請專利範圍第1項所述之方法,其中,該第一硬體設備包含以下裝置中之至少一者:一通用異步接收器-發送器(UART)、一鍵盤、一持久儲存器、一網路介面、和一視訊顯示器。
  7. 如申請專利範圍第1項所述之方法,其中,在該虛擬化介面與該第二硬體設備之間交換資料的步驟包括在該虛擬化介面與一網路卡及一外部資料匯流排適配器中的至少一個之間交換資料。
  8. 如申請專利範圍第1項所述之方法,其中,呈現該虛擬化資料介面給該作業系統之步驟包括呈現一非標準設備的虛擬化周邊組件互連(PCI)列舉。
  9. 一處理器可讀媒體,包含組配有指令之一程式儲存裝置,用以使一資料處理配置之一處理器去執行以下操作:分配該資料處理配置的一部分韌體作為模擬一第一硬體設備的一虛擬化資料介面;呈現該虛擬化資料介面給該作業系統;使用該作業系統的一個標準核心元件來存取該虛擬化資料介面,該標準核心元件適於與該第一硬體設備介接;以及基於由該作業系統透過該標準核心元件對該虛擬化資 料介面的存取,在該虛擬化介面與一個第二硬體設備之間交換資料,其中該資料交換為該作業系統在沒有該第一硬體設備的存在即可對該第一硬體設備提供模擬接取,且該第二硬體設備係不同於該第一硬體設備之類型。
  10. 如申請專利範圍第9項之處理器可讀媒體,其中分配該部分韌體位址空間包含分配一部分的PCI配置空間。
  11. 如申請專利範圍第9項之處理器可讀媒體,其中接取該虛擬化資料介面之步驟包含透過一系統抽象化層(SAL)接取該虛擬化資料介面。
  12. 如申請專利範圍第9項之處理器可讀媒體,其中接取該虛擬化資料介面之步驟包含透過一可延伸韌體介面(EFI)接取該虛擬化資料介面。
  13. 如申請專利範圍第9項之處理器可讀媒體,其中接取該虛擬化資料介面之步驟包含透過一先進組態與電力介面(ACPI)接取該虛擬化資料介面。
  14. 如申請專利範圍第9項之處理器可讀媒體,其中該第一硬體設備包含以下裝置中之至少一者:一通用異步接收器-發送器(UART)、一鍵盤、一持久儲存器、一網路介面和一視訊顯示器。
  15. 如申請專利範圍第9項之處理器可讀媒體,其中該第二硬體設備包含一網路卡及一外部資料匯流排適配器中之至少一者。
  16. 如申請專利範圍第9項之處理器可讀媒體,其中呈現該 虛擬化資料介面給該作業系統之步驟包含呈現一非標準化設備的一虛擬化PCI模擬。
  17. 一種運算裝置,其包含:一資料處理配置之一部分韌體,其用作為模擬一第一硬體設備的一虛擬化資料介面;用以呈現該虛擬化資料介面給該作業系統之構件;用以使用該作業系統之一標準化核心元件來接取該虛擬化資料介面之構件;以及用以基於由該作業系統透過該標準核心元件對該虛擬化資料介面的存取,而在該虛擬化介面與一個第二硬體設備之間交換資料之構件,其中該資料交換為該作業系統在沒有該第一硬體設備的存在即可對該第一硬體設備提供模擬接取,且該第二硬體設備係不同於該第一硬體設備之類型。
  18. 一種運算裝置,其包含:一匯流排介面,其組配來提供接取該裝置之資料交換設備;一資料交換設備,其組配來與該匯流排介面交換資料;一處理器,其耦接於該匯流排介面和該資料交換設備;以及具有指令的韌體,使得該處理器可進行以下步驟:對該裝置之一作業系統(OS)呈現於該匯流排介面之組配空間中之一虛擬設備介面;且響應由該作業系統透過該作業系統之一標準核心元件 接取該虛擬設備介面,而在該虛擬設備介面與該資料交換設備之間交換資料,其中該標準化核心元件係組配來接取一硬體設備,該資料交換為該作業系統在沒有該硬體設備的存在即可對該作業系統提供模擬接取,且該資料交換設備係不同於該硬體設備之類型。
  19. 如申請專利範圍第18項之裝置,其中該匯流排介面包含一PCI介面。
  20. 如申請專利範圍第18項之裝置,其中該韌體順應於該系統抽象化層(SAL)規格。
  21. 如申請專利範圍第18項之裝置,其中該韌體係順應於該可延伸韌體介面(EFI)規格。
  22. 如申請專利範圍第18項之裝置,其中該指令使得該處理器透過一先進組態與電力介面(ACPI)去呈現該虛擬設備介面給該作業系統。
  23. 如申請專利範圍第18項之裝置,其中該虛擬化設備介面係組配來模擬以下設備中之至少一者:一通用異步接收器-發送器(UART)、一鍵盤、一持久儲存器、一網路介面和一視訊顯示器。
  24. 如申請專利範圍第18項之裝置,其中該資料交換設備包含一網路介面設備。
  25. 如申請專利範圍第18項之裝置,其中該處理器架構可利用韌體執行期間服務。
  26. 如申請專利範圍第25項之裝置,其中該處理器包含以下處理器之至少一者:一相容Itanium處理器、一相容x86 處理器和一相容x86-64處理器。
  27. 如申請專利範圍第18項之裝置,其中該標準核心元件包含一設備驅動器。
  28. 如申請專利範圍第27項之裝置,其中該設備驅動器包含一舊有設備驅動器。
  29. 如申請專利範圍第18項之裝置,其中該具有指令之韌體使得該處理器使用一非標準設備之一虛擬化PCI模擬可對該作業系統呈現該虛擬化資料介面。
  30. 一種運算裝置,包含:一匯流排介面,其組配來提供接取該裝置之資料交換設備;一資料交換設備,其組配來在該裝置與該裝置外部之實體間交換資料;一處理器,其耦接於該匯流排介面和該資料交換設備;以及具有指令的韌體,使得該處理器可進行以下步驟:透過該匯流排介面之一組配空間,對複數個該裝置之作業系統呈現複數個虛擬設備介面,該複數個虛擬設備介面中之每一者與該複數個作業系統之一作業系統相關;且在該虛擬設備介面與該資料交換設備之間多工傳輸資料,以作為該相關的作業系統透過該作業系統之標準化核心元件接取該虛擬設備介面的回應,其中每個標準化核心元件係組配來接取一硬體設備,該資料的多工傳輸 為每個對應該硬體設備之作業系統在沒有該硬體設備的存在即可提供模擬接取,且該資料交換設備係不同於該硬體設備之類型。
TW095111182A 2005-04-28 2006-03-30 經由韌體提供虛擬裝置存取功能之技術 TWI421766B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/116,564 US7392172B2 (en) 2005-04-28 2005-04-28 Providing virtual device access via firmware

Publications (2)

Publication Number Publication Date
TW200705264A TW200705264A (en) 2007-02-01
TWI421766B true TWI421766B (zh) 2014-01-01

Family

ID=37235934

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095111182A TWI421766B (zh) 2005-04-28 2006-03-30 經由韌體提供虛擬裝置存取功能之技術

Country Status (3)

Country Link
US (1) US7392172B2 (zh)
JP (1) JP4476238B2 (zh)
TW (1) TWI421766B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521365B2 (en) 2014-10-05 2019-12-31 Amazon Technologies, Inc. Emulated endpoint configuration

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458280B2 (en) 2005-04-08 2013-06-04 Intel-Ne, Inc. Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations
US7558724B2 (en) * 2005-04-19 2009-07-07 Hewlett-Packard Development Company, L.P. Operation region describing a virtual device
US7889762B2 (en) 2006-01-19 2011-02-15 Intel-Ne, Inc. Apparatus and method for in-line insertion and removal of markers
US8078743B2 (en) * 2006-02-17 2011-12-13 Intel-Ne, Inc. Pipelined processing of RDMA-type network transactions
US7849232B2 (en) 2006-02-17 2010-12-07 Intel-Ne, Inc. Method and apparatus for using a single multi-function adapter with different operating systems
US8316156B2 (en) 2006-02-17 2012-11-20 Intel-Ne, Inc. Method and apparatus for interfacing device drivers to single multi-function adapter
US7945721B1 (en) * 2006-08-11 2011-05-17 Oracle America, Inc. Flexible control and/or status register configuration
US7752376B1 (en) * 2006-08-11 2010-07-06 Oracle America, Inc. Flexible configuration space
JP5119686B2 (ja) * 2007-03-06 2013-01-16 日本電気株式会社 情報処理装置および設定方法
US20080229046A1 (en) * 2007-03-13 2008-09-18 Microsoft Corporation Unified support for solid state storage
US7881919B2 (en) * 2007-04-03 2011-02-01 Microsoft Corporation USB device simulator
US7917654B2 (en) * 2007-04-13 2011-03-29 Trimble Navigation Limited Exchanging data via a virtual field device
US7716379B2 (en) * 2007-04-26 2010-05-11 Microsoft Corporation Hardware control interface for IEEE standard 802.11 including transmission control interface component and a transmission status interface component
KR100917687B1 (ko) * 2007-06-26 2009-09-21 문창선 가상 인터페이스를 제공하기 위한 시스템 및 방법
US8346974B2 (en) * 2007-07-27 2013-01-01 Microsoft Corporation Hardware control interface for IEEE standard 802.11
JP4991447B2 (ja) * 2007-08-24 2012-08-01 キヤノン株式会社 管理装置、情報処理方法、及びコンピュータプログラム
JP4730386B2 (ja) * 2008-02-29 2011-07-20 日本電気株式会社 仮想計算機装置、計算資源活用方法、および、プログラム
WO2009157896A1 (en) 2008-06-25 2009-12-30 Thomson Licensing Distributed control of devices using discrete device interfaces over single shared input/output
KR101506683B1 (ko) 2008-08-06 2015-03-30 삼성전자 주식회사 다수개의 운영 시스템을 지원하는 장치 및 방법
JP5343489B2 (ja) * 2008-09-29 2013-11-13 日本電気株式会社 コンピュータシステム、およびレガシーアプリケーション実行方法、およびプログラム
US8051432B2 (en) 2008-11-14 2011-11-01 Novell, Inc. Techniques for establishing virtual devices
CN101777011B (zh) * 2010-02-11 2013-06-19 浪潮(北京)电子信息产业有限公司 一种固件地址空间应用的方法
JP4998861B2 (ja) 2010-03-02 2012-08-15 日本電気株式会社 コンピュータシステム及びそのhw抽象化方法
JP5577164B2 (ja) * 2010-06-17 2014-08-20 株式会社エヌ・ティ・ティ・データ リソース提供装置及びリソース提供方法
US8181176B2 (en) * 2010-06-21 2012-05-15 Intel Corporation Uniform storage device access using partial virtual machine executing within a secure enclave session
JP5779281B2 (ja) * 2011-09-30 2015-09-16 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. コンピュータシステムにおける仮想化装置の制御
US8984174B2 (en) * 2011-12-06 2015-03-17 Qualcomm Incorporated Method and a portable computing device (PCD) for exposing a peripheral component interface express (PCIE) coupled device to an operating system operable on the PCD
CN104137088A (zh) 2012-02-23 2014-11-05 三菱电机株式会社 计算机、访问管理方法以及访问管理程序
JP2014095997A (ja) * 2012-11-08 2014-05-22 Fujitsu Ltd 情報処理装置、制御装置及び情報処理装置の制御方法
US9250700B2 (en) 2013-02-28 2016-02-02 Apple Inc. System and method for virtual displays
CN103268297A (zh) * 2013-05-20 2013-08-28 浙江大学 基于异构多核平台的加速核虚拟便笺存储器的方法
TWI588751B (zh) 2013-05-31 2017-06-21 聯想企業解決方案(新加坡)有限公司 透過基板管理控制器管理虛擬機器的電腦主機與方法
US9417801B2 (en) * 2014-03-27 2016-08-16 Intel Corporation Virtual general-purpose I/O controller
US9842072B2 (en) 2015-03-27 2017-12-12 Toshiba Global Commerce Solutions Holdings Corporation Systems and methods for implementing a user mode virtual serial communications port emulator
US10877921B2 (en) * 2016-06-01 2020-12-29 Intel Corporation Methods and apparatus to extend USB-C software support to non-USB-C devices
KR101838431B1 (ko) 2017-02-02 2018-03-14 한국공항공사 지상감시레이더 자료 처리 장치 및 방법
US10776287B2 (en) * 2018-02-19 2020-09-15 Vmware, Inc. Headless support using serial-based virtual consoles in a computing system
US20210397526A1 (en) * 2020-06-18 2021-12-23 General Electric Company Systems and methods of providing an abstraction layer between an application layer and hardware components of a computing device
GB2601322A (en) * 2020-11-25 2022-06-01 Nordic Semiconductor Asa Method and system for enabling communication between multiple virtual platforms
US11841809B1 (en) * 2021-09-21 2023-12-12 Kioxia Corporation System and method for in situ debug

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW329000B (en) * 1996-07-23 1998-04-01 Compaq Computer Corp General purpose computer system and method of providing modem communication the invention relates to a general purpose computer system implementing a standard modem without the use of a microcontroller.
US20030126271A1 (en) * 2001-12-27 2003-07-03 Mowry Kevin Curtis Method and apparatus for enabling an external function from a WAP environment
TW200408939A (en) * 2002-06-29 2004-06-01 Intel Corp Handling faults associated with operation of guest software in the virtual-machine architecture
TWM260797U (en) * 2004-09-17 2005-04-01 Cheng-Ying Ying A computer files sharing device with a virtual file system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812820A (en) * 1995-09-29 1998-09-22 Pacific Commware, Inc. Virtual UART
US6357003B1 (en) * 1998-10-21 2002-03-12 Silicon Graphics, Inc. Advanced firmware boot sequence x86 computer system that maintains legacy hardware and software compatibility
US6401183B1 (en) * 1999-04-01 2002-06-04 Flash Vos, Inc. System and method for operating system independent storage management
US6668374B1 (en) * 1999-07-08 2003-12-23 Axis Ab Method and apparatus for upgrading firmware in an embedded system
DE19935429C2 (de) * 1999-07-28 2002-01-17 Daimler Chrysler Ag Verfahren zur Bestimmung der Winkelposition eines Drehbewegungen ausführenden rotatorischen Teils
US6760804B1 (en) 2001-09-11 2004-07-06 3Com Corporation Apparatus and method for providing an interface between legacy applications and a wireless communication network
US7467381B2 (en) * 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US8914606B2 (en) * 2004-07-08 2014-12-16 Hewlett-Packard Development Company, L.P. System and method for soft partitioning a computer system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW329000B (en) * 1996-07-23 1998-04-01 Compaq Computer Corp General purpose computer system and method of providing modem communication the invention relates to a general purpose computer system implementing a standard modem without the use of a microcontroller.
US20030126271A1 (en) * 2001-12-27 2003-07-03 Mowry Kevin Curtis Method and apparatus for enabling an external function from a WAP environment
TW200408939A (en) * 2002-06-29 2004-06-01 Intel Corp Handling faults associated with operation of guest software in the virtual-machine architecture
TWM260797U (en) * 2004-09-17 2005-04-01 Cheng-Ying Ying A computer files sharing device with a virtual file system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521365B2 (en) 2014-10-05 2019-12-31 Amazon Technologies, Inc. Emulated endpoint configuration
US11321247B2 (en) 2014-10-05 2022-05-03 Amazon Technologies, Inc. Emulated endpoint configuration
US11886355B2 (en) 2014-10-05 2024-01-30 Amazon Technologies, Inc. Emulated endpoint configuration

Also Published As

Publication number Publication date
JP2006309754A (ja) 2006-11-09
US20060248526A1 (en) 2006-11-02
TW200705264A (en) 2007-02-01
US7392172B2 (en) 2008-06-24
JP4476238B2 (ja) 2010-06-09

Similar Documents

Publication Publication Date Title
TWI421766B (zh) 經由韌體提供虛擬裝置存取功能之技術
US20060245533A1 (en) Virtualizing UART interfaces
US7926054B2 (en) System, method, and computer-readable medium for virtual machine instantiation from an external peripheral device
US8830228B2 (en) Techniques for enabling remote management of servers configured with graphics processors
CN107278299B (zh) 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统
KR101035832B1 (ko) 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템
JP5608243B2 (ja) 仮想化環境においてi/o処理を行う方法および装置
CN103034524B (zh) 半虚拟化的虚拟gpu
US20090265708A1 (en) Information Processing Apparatus and Method of Controlling Information Processing Apparatus
KR101324844B1 (ko) 기능 변환 시스템 및 방법과 변환 수행 시스템
CN111581128A (zh) 通过虚拟usb中心在usb设备中动态提供虚拟化功能的方法
US10684880B2 (en) Allocating and initializing I/O devices at virtual
US20100262722A1 (en) Dynamic Assignment of Graphics Processing Unit to a Virtual Machine
KR100764921B1 (ko) 장치 이뉴머레이션을 위한 가상 rom
JPH0773046A (ja) コンピュータシステムで回路をエミュレートする 方法及び装置
CN113312141B (zh) 用于卸载串行端口模拟的计算机系统、存储介质和方法
US20120124186A1 (en) Systems, devices, and methods for multiple host management
WO2022001808A1 (zh) 一种系统以及中断处理方法
US7212961B2 (en) Interface for rapid prototyping system
CN107403573B (zh) 一种基于stm32f7的usb实验系统及方法
CN117555832A (zh) 虚拟机直通PCIe设备的DMA中断配置方法、设备、产品和介质
US7447618B2 (en) Method and system for ASIC simulation
US20050182615A1 (en) Method and system for creating an automatically adjusting USB mass storage device
Wong PCI express multi-root switch reconfiguration during system operation
WO2022068753A1 (zh) 服务器系统、容器设置方法及装置