两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

虛擬化主機(jī)usb適配器的方法和裝置的制作方法

文檔序號(hào):6352983閱讀:449來(lái)源:國(guó)知局
專(zhuān)利名稱:虛擬化主機(jī)usb適配器的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明的領(lǐng)域涉及數(shù)據(jù)處理,更具體地說(shuō),涉及用于虛擬化主機(jī)通用串行總線 (USB)適配器的方法、裝置和產(chǎn)品。
背景技術(shù)
1948年EDVAC計(jì)算機(jī)系統(tǒng)的開(kāi)發(fā)通常被認(rèn)為是計(jì)算機(jī)時(shí)代的開(kāi)始。從此之后,計(jì) 算機(jī)系統(tǒng)逐漸演變?yōu)榉浅?fù)雜的設(shè)備。今天的計(jì)算機(jī)比諸如EDVAC之類(lèi)的早期系統(tǒng)要復(fù)雜 的多。計(jì)算機(jī)系統(tǒng)一般由硬件組件及軟件組件、應(yīng)用程序、操作系統(tǒng)、處理器、總線、存儲(chǔ)器、 輸入/輸出設(shè)備等組合而成。由于半導(dǎo)體工藝和計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展促使計(jì)算機(jī)的性能 不斷提高,因此開(kāi)發(fā)了更復(fù)雜的計(jì)算機(jī)軟件以充分利用更高的硬件系統(tǒng)性能,從而使得今 天的計(jì)算機(jī)系統(tǒng)比僅僅幾年前的系統(tǒng)功能強(qiáng)大得多。如今,為了實(shí)現(xiàn)數(shù)據(jù)通信,許多外圍計(jì)算機(jī)組件根據(jù)通用串行總線規(guī)范耦合到適 配器。USB適配器固有地是點(diǎn)到點(diǎn)通信并且不容易在虛擬化環(huán)境的分區(qū)之間共享。今天的 用戶針對(duì)每個(gè)分區(qū)需要至少一個(gè)物理USB適配器以連接到USB設(shè)備。對(duì)于包括許多分區(qū)的 大型系統(tǒng)或者在數(shù)據(jù)中心內(nèi),這種需求會(huì)導(dǎo)致需要大量物理適配器,從而需要更多的額外 成本、處理能力、計(jì)算機(jī)存儲(chǔ)器使用以及功耗。這些由增加的物理適配器數(shù)量導(dǎo)致的負(fù)面因 素部分是由適配器本身造成的,但是也是由提供關(guān)聯(lián)的PCI或PCIe適配器槽的機(jī)殼造成 的。對(duì)USB適配器進(jìn)行虛擬化可減少USB設(shè)備、集線器、適配器以及機(jī)殼的功耗。存在 對(duì)USB設(shè)備進(jìn)行虛擬化的軟件解決方案。這些解決方案使用單個(gè)共享隊(duì)列,其中必須對(duì)USB 幀進(jìn)行排序以便從單個(gè)共享隊(duì)列發(fā)送給許多分區(qū)。這是一種非常占用CPU和存儲(chǔ)器的實(shí)施 方式。單隊(duì)列解決方案的性能也非常差。今天的USB設(shè)備通常包括鍵盤(pán)、鼠標(biāo)、揚(yáng)聲器和閃存驅(qū)動(dòng)設(shè)備。隨著USB不斷成 熟以及速度不斷加快,USB越來(lái)越多地被用于磁帶驅(qū)動(dòng)器、可移動(dòng)硬盤(pán)驅(qū)動(dòng)器以及光盤(pán)驅(qū)動(dòng) 器。分區(qū)的計(jì)算機(jī)系統(tǒng)上缺乏高效、低成本、低功耗的USB虛擬化成為了重要的問(wèn)題。范圍 更廣的設(shè)備將使用速度比USB 2.0快十倍的USB 3.0。額外的帶寬允許同一時(shí)間在同一鏈 路上具有更多設(shè)備。業(yè)界正在使磁帶驅(qū)動(dòng)器和可移動(dòng)硬盤(pán)驅(qū)動(dòng)器轉(zhuǎn)向使用USB作為優(yōu)選連 接方式。目前,對(duì)改進(jìn)的USB虛擬化的需求在不斷增長(zhǎng)。

發(fā)明內(nèi)容
披露了用于虛擬化由系統(tǒng)管理程序維護(hù)的虛擬化環(huán)境中的主機(jī)通用串行總線 (USB)適配器的方法、裝置和產(chǎn)品。在本發(fā)明的各實(shí)施例中,所述系統(tǒng)管理程序管理一個(gè)或 多個(gè)邏輯分區(qū),并且虛擬化主機(jī)USB適配器包括由所述系統(tǒng)管理程序經(jīng)由邏輯USB適配器 從邏輯分區(qū)接收USB輸入/輸出(I/O)請(qǐng)求,所述邏輯USB適配器與耦合到所述主機(jī)USB適 配器的USB設(shè)備關(guān)聯(lián);由所述系統(tǒng)管理程序?qū)⒐ぷ麝?duì)列單元(WQE)放入與所述邏輯USB適 配器關(guān)聯(lián)的隊(duì)列對(duì)內(nèi)的一個(gè)隊(duì)列中;以及由接口設(shè)備根據(jù)所述WQE管理所述邏輯分區(qū)與所述USB設(shè)備之間的USB數(shù)據(jù)通信,所述通信包括使用直接存儲(chǔ)器存取(DMA)將源自所述USB 設(shè)備的USB數(shù)據(jù)從所述主機(jī)USB適配器取回到所述邏輯USB適配器的專(zhuān)用存儲(chǔ)區(qū)域中。如附圖所示,從下面對(duì)本發(fā)明示例性實(shí)施例的詳細(xì)說(shuō)明,本發(fā)明的上述和其他目 標(biāo)、特征和優(yōu)點(diǎn)將變得顯而易見(jiàn),在所述附圖中,相同的標(biāo)號(hào)一般表示本發(fā)明的示例性實(shí)施 例的相同部分。


圖1示出了根據(jù)本發(fā)明的實(shí)施例的虛擬化主機(jī)USB適配器的示例性系統(tǒng)的網(wǎng)絡(luò) 圖;圖2示出了根據(jù)本發(fā)明的實(shí)施例的虛擬化主機(jī)USB適配器的示例性方法的流程 圖;圖3示出了根據(jù)本發(fā)明的實(shí)施例的虛擬化主機(jī)USB適配器的進(jìn)一步示例性方法的 流程圖;圖4示出了根據(jù)本發(fā)明的實(shí)施例的虛擬化主機(jī)USB適配器的進(jìn)一步示例性方法的 流程圖;圖5示出了根據(jù)本發(fā)明的實(shí)施例的虛擬化主機(jī)USB適配器的進(jìn)一步示例性方法的 流程圖。
具體實(shí)施例方式參考以圖1開(kāi)始的附圖描述了根據(jù)本發(fā)明的虛擬化主機(jī)USB適配器的示例性方 法、裝置和產(chǎn)品。圖1示出了根據(jù)本發(fā)明的實(shí)施例的虛擬化主機(jī)USB適配器的示例性系統(tǒng) 的網(wǎng)絡(luò)圖。圖1中的系統(tǒng)包括自動(dòng)化的計(jì)算機(jī)器,其中包括根據(jù)本發(fā)明的實(shí)施例的可在虛 擬化主機(jī)USB適配器中使用的示例性計(jì)算機(jī)(152)。圖1的計(jì)算機(jī)(15 包括至少一個(gè)計(jì) 算機(jī)處理器(156)或“CPU”以及通過(guò)高速存儲(chǔ)器總線(166)和總線適配器(158)與處理器 (158)以及計(jì)算機(jī)(152)的其他組件相連的隨機(jī)存取存儲(chǔ)器(168) (RAM)。RAM(168)中存儲(chǔ)有系統(tǒng)管理程序(130),它是可以包括計(jì)算機(jī)程序指令、計(jì)算機(jī) 硬件等的任意組合的自動(dòng)化計(jì)算機(jī)器的模塊。圖1的實(shí)例中的系統(tǒng)管理程序(130)維護(hù)虛 擬化環(huán)境。系統(tǒng)管理程序(也稱為虛擬機(jī)監(jiān)視器(VMM))執(zhí)行軟件和硬件平臺(tái)虛擬化以使 能多個(gè)操作系統(tǒng)同時(shí)在一個(gè)主計(jì)算機(jī)上運(yùn)行。系統(tǒng)管理程序直接在主機(jī)的硬件上運(yùn)行以控 制硬件訪問(wèn)和監(jiān)視客戶操作系統(tǒng)。客戶操作系統(tǒng)在系統(tǒng)管理程序的上層運(yùn)行。系統(tǒng)管理程 序提供的平臺(tái)虛擬化在本說(shuō)明書(shū)中稱為虛擬化環(huán)境。虛擬化環(huán)境是這樣的環(huán)境其中從操 作系統(tǒng)和其他軟件應(yīng)用的角度,計(jì)算平臺(tái)的物理特性(計(jì)算機(jī)處理器、計(jì)算機(jī)存儲(chǔ)器、I/O 適配器等)是抽象的。在圖1的實(shí)例中,系統(tǒng)管理程序(130)維護(hù)包括兩個(gè)邏輯分區(qū)(106、118)的虛擬 化環(huán)境。本文中使用的術(shù)語(yǔ)“邏輯分區(qū)”是由系統(tǒng)管理程序提供的其中可以執(zhí)行操作系統(tǒng) 和其他應(yīng)用的唯一虛擬機(jī)。每個(gè)邏輯分區(qū)(106、118)包括一個(gè)應(yīng)用(108、120)和一個(gè)操作 系統(tǒng)(110、122)。應(yīng)用(108、120)是能夠執(zhí)行用戶級(jí)數(shù)據(jù)處理任務(wù)的計(jì)算機(jī)程序指令的模 塊。此類(lèi)應(yīng)用的實(shí)例包括本領(lǐng)域的技術(shù)人員將想到的字處理應(yīng)用、電子表格應(yīng)用、Web服務(wù) 器應(yīng)用、數(shù)據(jù)庫(kù)管理應(yīng)用、媒體庫(kù)應(yīng)用、媒體播放應(yīng)用、媒體轉(zhuǎn)碼應(yīng)用等??稍诟鶕?jù)本發(fā)明的實(shí)施例的虛擬化主機(jī)USB適配器的系統(tǒng)中使用的操作系統(tǒng)包括UNIX 、Linux , Microsoft XP 、AIX 、IBM的i5/0S 和本領(lǐng)域的技術(shù)人員將想到的其他操作系統(tǒng)。圖1的實(shí)例中的系統(tǒng)管理程序(130)通常用于根據(jù)本發(fā)明的實(shí)施例虛擬化主機(jī) USB適配器002)。USB是用于建立設(shè)備與主機(jī)控制器之間的通信的規(guī)范。USB可以連接 諸如鼠標(biāo)、鍵盤(pán)、數(shù)碼相機(jī)、打印機(jī)、個(gè)人媒體播放器、閃盤(pán)和外接硬盤(pán)之類(lèi)的計(jì)算機(jī)外圍設(shè) 備。對(duì)于這些設(shè)備中的許多設(shè)備,USB已成為標(biāo)準(zhǔn)的連接方式。USB針對(duì)個(gè)人計(jì)算機(jī)而設(shè)計(jì), 但也成為諸如智能手機(jī)、個(gè)人數(shù)字助理(PDA)和視頻游戲控制臺(tái)之類(lèi)的其他設(shè)備上的常用 接口,并且作為設(shè)備與插入墻壁插座的AC適配器之間的電源線以進(jìn)行充電。USB設(shè)計(jì)論壇 (USB-IF)規(guī)定了 USB設(shè)計(jì)的標(biāo)準(zhǔn),該論壇是一個(gè)由計(jì)算機(jī)和電子行業(yè)中的領(lǐng)先公司組成的 工業(yè)標(biāo)準(zhǔn)機(jī)構(gòu)。USB設(shè)備通過(guò)主機(jī)USB適配器耦合到主計(jì)算機(jī)系統(tǒng)。在圖1的實(shí)例中,主機(jī)USB適 配器(20 通過(guò)USB集線器(204)與兩個(gè)USB設(shè)備(206、208)相連。USB集線器是可使多 個(gè)USB設(shè)備連接到主計(jì)算機(jī)上的單個(gè)USB端口或連接到另一集線器的設(shè)備。系統(tǒng)管理程序(130)可以通過(guò)啟動(dòng)與主機(jī)USB適配器(202)耦合的USB設(shè)備(206、 208)的USB設(shè)備發(fā)現(xiàn)來(lái)虛擬化主機(jī)USB適配器002)。啟動(dòng)USB設(shè)備Q06、208)的USB設(shè) 備發(fā)現(xiàn)可以包括為每個(gè)發(fā)現(xiàn)的USB設(shè)備分配物理設(shè)備地址(10 并且從每個(gè)發(fā)現(xiàn)的USB設(shè) 備取回包括描述USB設(shè)備的信息的設(shè)備描述符(117)。設(shè)備描述符(117)可以例如包括USB 設(shè)備的設(shè)備分類(lèi)、USB設(shè)備的供應(yīng)商標(biāo)識(shí)符、USB設(shè)備的產(chǎn)品標(biāo)識(shí)符以及USB設(shè)備的序列號(hào)。分配物理設(shè)備地址(10 可以通過(guò)USB規(guī)范定義的典型方式執(zhí)行,包括使用默認(rèn) 的目標(biāo)地址探測(cè)USB結(jié)構(gòu),使用控制傳輸編程在探測(cè)期間識(shí)別的每個(gè)設(shè)備以便為USB設(shè)備 分配物理設(shè)備地址。系統(tǒng)管理程序(130)可以在探測(cè)設(shè)備期間生成諸如表、列表或邏輯樹(shù) 之類(lèi)的數(shù)據(jù)結(jié)構(gòu)以指示當(dāng)前發(fā)現(xiàn)的USB設(shè)備。系統(tǒng)管理程序(130)可以例如生成包括物理 設(shè)備地址(10 和設(shè)備描述符(117)之間的關(guān)聯(lián)的表(未示出)。系統(tǒng)管理程序(130)還可以從配置管理器(200)接收每個(gè)發(fā)現(xiàn)的USB設(shè)備到一個(gè) 或多個(gè)邏輯分區(qū)的分配(119)。配置管理器是向用戶提供圖1的計(jì)算機(jī)(15 的配置機(jī)制 的自動(dòng)化計(jì)算機(jī)器的模塊。配置管理器(200)可以例如呈現(xiàn)可從中捕獲用戶輸入的圖形用 戶接口(⑶I)。此⑶I允許用戶配置圖1中的計(jì)算機(jī)(152)的各種組件,包括例如將USB設(shè) 備(206、208)分配給邏輯分區(qū)(106、118)。圖1的實(shí)例中的配置管理器(200)可以響應(yīng)于 GUI接收的用戶收入而指定每個(gè)發(fā)現(xiàn)的USB設(shè)備到一個(gè)或多個(gè)邏輯分區(qū)的分配(119)。系 統(tǒng)管理程序(130),響應(yīng)于接收到此類(lèi)分配(119),可以生成表示所述分配的數(shù)據(jù)結(jié)構(gòu),例 如圖1的實(shí)例設(shè)備地址表(150),所述表(150)包括物理設(shè)備地址(10 與邏輯設(shè)備地址 (103)、分區(qū)標(biāo)識(shí)符(107)和設(shè)備描述符(117)的關(guān)聯(lián)。配置管理器(200)還可以向系統(tǒng)管 理程序通知先前在USB設(shè)備發(fā)現(xiàn)期間未發(fā)現(xiàn)的USB設(shè)備。此類(lèi)設(shè)備目前可能被斷開(kāi)電源以 節(jié)約電力、進(jìn)行修復(fù)等。系統(tǒng)管理程序(130)可以為分配給邏輯區(qū)域(106、118)的每個(gè)USB設(shè)備(206、 208)建立隊(duì)列對(duì)(134和136、146和148)。另外,系統(tǒng)管理程序?yàn)榉峙浣o分區(qū)的每個(gè)USB 設(shè)備提供單獨(dú)的邏輯USB適配器(116、1觀)。例如,對(duì)于分配有三個(gè)設(shè)備的邏輯分區(qū),系統(tǒng) 管理程序可以建立三個(gè)隊(duì)列對(duì)并且可以向邏輯分區(qū)提供三個(gè)單獨(dú)的邏輯USB適配器。邏輯 USB適配器是提供給邏輯分區(qū)(106)的用于執(zhí)行USB數(shù)據(jù)通信的自動(dòng)化計(jì)算機(jī)器的模塊,
7其中所述邏輯USB適配器與耦合到主機(jī)USB適配器(20 的特定USB設(shè)備關(guān)聯(lián)。從分區(qū)的 角度,邏輯USB適配器是主機(jī)USB適配器(20 的抽象。在圖1的系統(tǒng)中,從邏輯分區(qū)中的 操作系統(tǒng)的角度,分配給邏輯分區(qū)的每個(gè)USB設(shè)備都直接與不同的主機(jī)USB適配器(邏輯 USB適配器)耦合,此時(shí)實(shí)際上只存在一個(gè)硬件USB適配器002)??梢詫⒁粋€(gè)USB設(shè)備分 配給多個(gè)邏輯分區(qū)。對(duì)于每個(gè)向其分配了 USB設(shè)備的邏輯分區(qū),系統(tǒng)管理程序建立單獨(dú)的 隊(duì)列對(duì)并為分區(qū)提供邏輯USB適配器。此外,在為每個(gè)分配給邏輯分區(qū)的USB設(shè)備建立隊(duì)列對(duì)之后,系統(tǒng)管理程序可以 為每個(gè)分配給邏輯分區(qū)的USB設(shè)備提供USB設(shè)備存在的指示。接收到此類(lèi)指示時(shí),分區(qū) (106,118)的操作系統(tǒng)(110,122)可立即加載每個(gè)USB設(shè)備的設(shè)備驅(qū)動(dòng)器(112,124).系統(tǒng)管理程序還可通過(guò)經(jīng)由邏輯USB適配器(116、12 從邏輯分區(qū)(106、118)接 收USB輸入/輸出(I/O)請(qǐng)求(114、126)來(lái)虛擬化圖1中的主機(jī)USB適配器Q02)。每個(gè) 邏輯USB適配器(116、128)與耦合到主機(jī)USB適配器^)4)的USB設(shè)備(206、208)關(guān)聯(lián)。 系統(tǒng)管理程序(130)可以通過(guò)接收對(duì)系統(tǒng)管理程序?yàn)槊總€(gè)分區(qū)提供的函數(shù)進(jìn)行的庫(kù)函數(shù) 調(diào)用來(lái)接收USB I/O請(qǐng)求(114、1沈),具體地說(shuō),設(shè)備驅(qū)動(dòng)器(112、124)可以執(zhí)行一個(gè)或多 個(gè)系統(tǒng)管理程序函數(shù)調(diào)用,將USB I/O請(qǐng)求的有效負(fù)載數(shù)據(jù)作為參數(shù)傳送到函數(shù)調(diào)用,所述 參數(shù)例如定義用于存儲(chǔ)從USB設(shè)備接收的USB數(shù)據(jù)的存儲(chǔ)區(qū)域的虛擬地址范圍、標(biāo)識(shí)USB 設(shè)備的邏輯設(shè)備地址以及要執(zhí)行的I/O的類(lèi)型。系統(tǒng)管理程序可以根據(jù)USB I/O請(qǐng)求(114、126)中指定的虛擬地址范圍注冊(cè)專(zhuān) 用存儲(chǔ)區(qū)域(190、192)。系統(tǒng)管理程序可以通過(guò)釘扎(pinning)物理存儲(chǔ)器段而不使其進(jìn) 行存儲(chǔ)器分頁(yè)并將虛擬地址范圍映射到物理存儲(chǔ)器段來(lái)注冊(cè)專(zhuān)用存儲(chǔ)區(qū)域(190、192)。此 類(lèi)虛擬地址范圍(109、113)到物理地址范圍(111、115)的映射可以存儲(chǔ)在用于每個(gè)分區(qū) (106,118)的單獨(dú)數(shù)據(jù)結(jié)構(gòu)中,例如,存儲(chǔ)在地址表(194、196)中。系統(tǒng)管理程序(130)還可以將工作隊(duì)列單元(WQE)放入與邏輯USB適配器(116、 128)關(guān)聯(lián)的隊(duì)列對(duì)內(nèi)的一個(gè)隊(duì)列(134、136、146、148)中。隊(duì)列對(duì)是為虛擬化的主機(jī)USB適 配器提供發(fā)射/接收或發(fā)送/接收工具的具有兩個(gè)隊(duì)列的隊(duì)列組。隊(duì)列對(duì)可以按照與使用 主機(jī)以太網(wǎng)適配器實(shí)現(xiàn)或在Infiniband 技術(shù)中實(shí)現(xiàn)的隊(duì)列對(duì)類(lèi)似的方式實(shí)現(xiàn)。在將WQE 放入隊(duì)列對(duì)內(nèi)的隊(duì)列中時(shí),系統(tǒng)管理程序可以將USB I/O請(qǐng)求(114、126)中包括的USB設(shè) 備O06、208)的邏輯設(shè)備地址(10 轉(zhuǎn)換為USB設(shè)備Q06、208)的物理設(shè)備地址(105)。 WQE是定義諸如要經(jīng)由USB數(shù)據(jù)通信執(zhí)行的發(fā)送或接收命令之類(lèi)的特定操作的單元。發(fā)送 WQE可以被放入隊(duì)列對(duì)內(nèi)的發(fā)送隊(duì)列,而接收WQE可以被放入隊(duì)列對(duì)內(nèi)的接收隊(duì)列。WQE可 以指定傳輸類(lèi)型、USB設(shè)備的物理設(shè)備地址、端點(diǎn)標(biāo)識(shí)符以及包括專(zhuān)用存儲(chǔ)區(qū)域的虛擬地址 范圍指定的描述符列表。傳輸類(lèi)型描述了要執(zhí)行的數(shù)據(jù)通信傳輸?shù)念?lèi)型,例如大批傳輸、中 斷類(lèi)型傳輸、同步傳輸或控制傳輸。端點(diǎn)標(biāo)識(shí)符是通信方USB設(shè)備暴露的接口的標(biāo)識(shí)符。除了每個(gè)隊(duì)列對(duì)內(nèi)的發(fā)送隊(duì)列和接收隊(duì)列之外,每個(gè)邏輯USB適配器(116、128) 還與完成隊(duì)列(132、144)關(guān)聯(lián)。完成隊(duì)列(132、144)被配置為存儲(chǔ)單元,例如指示W(wǎng)QE完 成的完成隊(duì)列單元。完成隊(duì)列(132、144)中存儲(chǔ)有完成隊(duì)列單元(CQE) (138、184)。圖1的計(jì)算機(jī)還包括接口設(shè)備(102)。圖1的接口設(shè)備(102)包括被配置為根據(jù) WQE管理邏輯分區(qū)與USB設(shè)備之間的USB數(shù)據(jù)通信的自動(dòng)化計(jì)算機(jī)器。圖1的實(shí)例中的接 口設(shè)備(10 還包括直接存儲(chǔ)器存取(DMA)引擎(104)。在管理USB數(shù)據(jù)通信時(shí),接口設(shè)備(102)可以通過(guò)DMA將源自USB設(shè)備Q06、208)的USB數(shù)據(jù)從主機(jī)USB適配器(20 取回 到邏輯USB適配器(116、1觀)的專(zhuān)用存儲(chǔ)區(qū)域(190、19幻中。DMA是現(xiàn)代計(jì)算機(jī)和微處理 器中的一項(xiàng)特性,其允許計(jì)算機(jī)內(nèi)的硬件子系統(tǒng)不經(jīng)過(guò)中央處理單元而直接存取系統(tǒng)存儲(chǔ) 器以便執(zhí)行讀取和寫(xiě)入。許多硬件系統(tǒng)使用DMA,其中包括盤(pán)驅(qū)動(dòng)控制器、圖形卡、網(wǎng)卡以及 聲卡。DMA還用于多核處理器中的芯片內(nèi)部數(shù)據(jù)傳輸,尤其是在多處理器片上系統(tǒng)中,其中 處理元件具備本地存儲(chǔ)器(通常稱為便箋式存儲(chǔ)器)并且使用DMA在本地存儲(chǔ)器與主存儲(chǔ) 器之間傳輸數(shù)據(jù)。與沒(méi)有DMA通道的計(jì)算機(jī)相比,具有DMA通道的計(jì)算機(jī)在設(shè)備之間傳輸 數(shù)據(jù)時(shí)所用的CPU開(kāi)銷(xiāo)低得多。類(lèi)似地,多核處理器內(nèi)部的處理元件可以在不占用處理器 時(shí)間的情況下將數(shù)據(jù)傳輸?shù)狡浔镜卮鎯?chǔ)器和或從本地存儲(chǔ)器接收數(shù)據(jù)并允許同時(shí)進(jìn)行計(jì) 算和數(shù)據(jù)傳輸。接口設(shè)備根據(jù)物理設(shè)備地址和分組標(biāo)識(shí)符(PID)執(zhí)行對(duì)主機(jī)USB適配器接收的 入站數(shù)據(jù)的USB幀路由。USB幀中的PID識(shí)別USB幀的類(lèi)型。實(shí)例PID包括SPLIT、PING、 PRE、ERR、ACK,NACK NYET, STALL、OUT、IN、SOF, SETUP、DATAO、DATAl、DATA2、MDATA 等。PID 和設(shè)備地址可被接口設(shè)備用于識(shí)別關(guān)聯(lián)的WQE以及WQE中的專(zhuān)用存儲(chǔ)器的虛擬地址范圍。 接口設(shè)備可以使用WQE中包括的虛擬地址范圍以及地址表(194、196)將虛擬地址轉(zhuǎn)換為物 理地址并且對(duì)該物理地址范圍直接進(jìn)行DMA操作。圖1的實(shí)例中的邏輯分區(qū)(106、118)、應(yīng)用(108、120)、操作系統(tǒng)(110、122)、設(shè) 備驅(qū)動(dòng)器(112、1M)、USB I/O請(qǐng)求(114、1 )、邏輯USB適配器(116、1 )、系統(tǒng)管理程序 (130)、隊(duì)列對(duì)(134和136、146和148)以及其他數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)和計(jì)算機(jī)程序指令模塊示 為在RAM(168)中,但是此類(lèi)軟件的許多組件通常還存儲(chǔ)在非易失性存儲(chǔ)器中,例如,存儲(chǔ) 在盤(pán)驅(qū)動(dòng)器(170)上。圖1中的計(jì)算機(jī)(152)包括通過(guò)擴(kuò)展總線(160)和總線適配器(158)與處理器 (156)及計(jì)算機(jī)(152)的其他組件耦合的盤(pán)驅(qū)動(dòng)器適配器(172)。盤(pán)驅(qū)動(dòng)器適配器(172) 以盤(pán)驅(qū)動(dòng)器(170)的形式將非易失性數(shù)據(jù)存儲(chǔ)裝置連接到計(jì)算機(jī)(152)。可在計(jì)算機(jī)中用 于根據(jù)本發(fā)明的實(shí)施例虛擬化主機(jī)USB適配器的盤(pán)驅(qū)動(dòng)器適配器包括集成驅(qū)動(dòng)電子設(shè)備 (IDE)適配器、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)適配器以及本領(lǐng)域的技術(shù)人員將想到的其他適 配器。非易失性計(jì)算機(jī)存儲(chǔ)器還可以實(shí)現(xiàn)為本領(lǐng)域的技術(shù)人員將想到的光盤(pán)驅(qū)動(dòng)器、電可 擦寫(xiě)可編程只讀存儲(chǔ)器(稱為EEPROM或閃存)、RAM驅(qū)動(dòng)器等。圖1中的實(shí)例計(jì)算機(jī)(152)包括一個(gè)或多個(gè)輸入/輸出(I/O)適配器(178)。I/ 0適配器通過(guò)例如用于控制到諸如計(jì)算機(jī)顯示屏之類(lèi)的顯示設(shè)備的輸出以及來(lái)自諸如鍵盤(pán) 和鼠標(biāo)之類(lèi)的用戶輸入設(shè)備(181)的用戶輸入的軟件驅(qū)動(dòng)器和計(jì)算機(jī)硬件來(lái)實(shí)現(xiàn)面向用 戶的輸入/輸出。圖1的實(shí)例計(jì)算機(jī)(15 包括視頻適配器009),視頻適配器(209)是專(zhuān) 門(mén)針對(duì)到諸如顯示屏或計(jì)算機(jī)顯示器之類(lèi)的顯示設(shè)備(180)的圖形輸出設(shè)計(jì)的I/O適配器 的實(shí)例。視頻適配器(209)通過(guò)高速視頻總線(164)、總線適配器(158)以及同樣為高速總 線的前端總線(162)與處理器(156)相連。圖1的示意性計(jì)算機(jī)(152)包括用于與其他計(jì)算機(jī)(182)進(jìn)行數(shù)據(jù)通信以及用于 與數(shù)據(jù)通信網(wǎng)絡(luò)(100)進(jìn)行數(shù)據(jù)通信的通信適配器(167)??梢源械赝ㄟ^(guò)RS-232連接, 通過(guò)諸如通用串行總線(USB)之類(lèi)的外部總線,通過(guò)諸如IP數(shù)據(jù)通信網(wǎng)絡(luò)之類(lèi)的數(shù)據(jù)通信 網(wǎng)絡(luò)以及通過(guò)本領(lǐng)域的技術(shù)人員將想到的其他方式進(jìn)行此類(lèi)數(shù)據(jù)通信。通信適配器實(shí)現(xiàn)硬件級(jí)數(shù)據(jù)通信,借此一臺(tái)計(jì)算機(jī)將數(shù)據(jù)通信直接地或通過(guò)數(shù)據(jù)通信網(wǎng)絡(luò)發(fā)送到另一臺(tái)計(jì)算 機(jī)??捎糜诟鶕?jù)本發(fā)明的實(shí)施例虛擬化主機(jī)USB適配器的通信適配器實(shí)例包括用于有線撥 號(hào)通信的調(diào)制解調(diào)器、用于有線數(shù)據(jù)通信網(wǎng)絡(luò)通信的以太網(wǎng)(IEEE 802. 3)適配器以及用 于無(wú)線數(shù)據(jù)通信網(wǎng)絡(luò)通信的802. 11適配器。構(gòu)成圖1中所示的示意性系統(tǒng)的服務(wù)器及其他設(shè)備的安排是為了說(shuō)明而非限制。 根據(jù)本發(fā)明的各種實(shí)施例的可用數(shù)據(jù)處理系統(tǒng)可以包括本領(lǐng)域的技術(shù)人員將想到的未在 圖1中示出的其他服務(wù)器、路由器、其他設(shè)備以及點(diǎn)對(duì)點(diǎn)架構(gòu)。此類(lèi)數(shù)據(jù)處理系統(tǒng)中的網(wǎng)絡(luò) 可以支持許多數(shù)據(jù)通信協(xié)議,包括例如TCP (傳輸控制協(xié)議)、IP (網(wǎng)際協(xié)議),HTTP (超文本 傳輸協(xié)議)、WAP (無(wú)線訪問(wèn)協(xié)議)、HDTP (手持式設(shè)備傳輸協(xié)議)以及本領(lǐng)域的技術(shù)人員將 想到的其他協(xié)議。本發(fā)明的各種實(shí)施例可以在圖1中示出的平臺(tái)以外的各種硬件平臺(tái)上實(shí) 現(xiàn)。為了進(jìn)一步說(shuō)明,圖2是示出根據(jù)本發(fā)明的實(shí)施例的用于虛擬化主機(jī)USB適配器 的示例性方法的流程圖。圖2中的方法在管理一個(gè)或多個(gè)邏輯分區(qū)(圖1的106、118)的 系統(tǒng)管理程序(130)所維護(hù)的虛擬化環(huán)境中執(zhí)行。圖2中的方法包括由系統(tǒng)管理程序(130)經(jīng)由邏輯USB適配器從邏輯分區(qū)接收 USB I/O請(qǐng)求012)。在圖2的方法中,所述邏輯USB適配器與耦合到主機(jī)USB適配器的 USB設(shè)備關(guān)聯(lián)。同樣在圖2的方法中,USBI/0請(qǐng)求(21 包括指定要注冊(cè)的存儲(chǔ)區(qū)域的虛 擬地址范圍(214)和識(shí)別USB設(shè)備的邏輯設(shè)備地址。圖2的方法還包括根據(jù)USB I/O請(qǐng)求Q12)中指定的虛擬地址范圍(214)注冊(cè) (218)專(zhuān)用存儲(chǔ)區(qū)域(190)。如上所述,系統(tǒng)管理程序可以通過(guò)釘扎存儲(chǔ)區(qū)域而不使其進(jìn) 行分頁(yè)并存儲(chǔ)虛擬地址到物理地址映射以供接口設(shè)備以后在執(zhí)行DMA傳輸時(shí)使用來(lái)注冊(cè) (218)專(zhuān)用存儲(chǔ)區(qū)域(190)。圖2的方法還包括由系統(tǒng)管理程序(130)將WQE(HO)放入Q20)與邏輯USB適 配器關(guān)聯(lián)的隊(duì)列對(duì)(134、136)內(nèi)的一個(gè)隊(duì)列(136)中。在圖2的方法中,將WQE(140)放入 (220)隊(duì)列(136)中包括將USBI/0請(qǐng)求Q12)中包括的USB設(shè)備的邏輯設(shè)備地址(216) 轉(zhuǎn)換012)為USB設(shè)備的物理設(shè)備地址(23 。在圖2的方法中,WQE(HO)包括傳輸類(lèi)型 (230)、USB設(shè)備的物理設(shè)備地址032)、端點(diǎn)標(biāo)識(shí)符(234)和包括專(zhuān)用存儲(chǔ)區(qū)域(190)的虛 擬地址范圍014)的指定的描述符列表036)。圖2的方法還包括由接口設(shè)備(102)根據(jù)WQE(HO)管理(226)邏輯分區(qū)與USB設(shè) 備之間的USB數(shù)據(jù)通信。在圖2的方法中,通過(guò)使用DMA將源自USB設(shè)備的USB數(shù)據(jù)(224) 從主機(jī)USB適配器取回(228)到邏輯USB適配器的專(zhuān)用存儲(chǔ)區(qū)域(190)中來(lái)執(zhí)行管理(226) USB數(shù)據(jù)通信。為了進(jìn)一步說(shuō)明,圖3是示出根據(jù)本發(fā)明的實(shí)施例的用于虛擬化主機(jī)USB適配器 的進(jìn)一步示例性方法的流程圖。圖3的方法與圖2的方法的類(lèi)似之處在于,圖3的方法在 管理一個(gè)或多個(gè)邏輯分區(qū)(圖1上的106、118)的系統(tǒng)管理程序(130)所維護(hù)的虛擬化環(huán) 境中執(zhí)行。圖3的方法與圖2的方法的類(lèi)似之處還在于,圖3的方法包括接收O10)USB I/ 0請(qǐng)求012),將WQE(HO)放入Q20)與邏輯USB適配器關(guān)聯(lián)的隊(duì)列對(duì)(134、136)內(nèi)的一 個(gè)隊(duì)列(136)中,以及通過(guò)使用DMA將USB數(shù)據(jù)(224)從主機(jī)USB適配器取回(228)到邏 輯USB適配器的專(zhuān)用存儲(chǔ)區(qū)域(190)中來(lái)管理(226)邏輯分區(qū)與USB設(shè)備之間的USB數(shù)據(jù)通信。但是圖3的方法與圖2的方法的不同之處在于,圖3的方法還包括由系統(tǒng)管理程 序(130)啟動(dòng)(302)與主機(jī)USB適配器耦合的USB設(shè)備的USB設(shè)備發(fā)現(xiàn)。在圖2的方法中, 啟動(dòng)(30 與主機(jī)USB適配器耦合的USB設(shè)備的USB設(shè)備發(fā)現(xiàn)通過(guò)以下操作實(shí)現(xiàn)為每個(gè) 發(fā)現(xiàn)的USB設(shè)備分配(304)物理設(shè)備地址(310)并且從每個(gè)發(fā)現(xiàn)的USB設(shè)備取回(306)包 括描述所述USB設(shè)備的信息的設(shè)備描述符(312)。所述系統(tǒng)管理程序可以生成包括每個(gè)發(fā) 現(xiàn)的設(shè)備的物理設(shè)備地址(310)和設(shè)備描述符(312)的目前發(fā)現(xiàn)的USB設(shè)備的表(308)。圖3的方法還包括由系統(tǒng)管理程序(130)從配置管理器接收(314)每個(gè)發(fā)現(xiàn)的 USB設(shè)備到一個(gè)或多個(gè)邏輯分區(qū)(318)的分配(316)。圖3的方法還包括由系統(tǒng)管理程序 (130)為分配給邏輯分區(qū)的每個(gè)USB設(shè)備建立(320)隊(duì)列對(duì)(134、136)。為了進(jìn)一步說(shuō)明,圖4是示出根據(jù)本發(fā)明的實(shí)施例的用于虛擬化主機(jī)USB適配器 的進(jìn)一步示例性方法的流程圖。圖4的方法與圖2的方法的類(lèi)似之處在于,圖4的方法在 管理一個(gè)或多個(gè)邏輯分區(qū)(圖1上的106、118)的系統(tǒng)管理程序(130)所維護(hù)的虛擬化環(huán) 境中執(zhí)行。圖4的方法與圖2的方法的類(lèi)似之處還在于,圖4的方法包括接收O10)USB I/ 0請(qǐng)求012),將WQE(HO)放入Q20)與邏輯USB適配器關(guān)聯(lián)的隊(duì)列對(duì)(134、136)內(nèi)的一 個(gè)隊(duì)列(136)中,以及通過(guò)使用DMA將USB數(shù)據(jù)(224)從主機(jī)USB適配器取回(228)到邏 輯USB適配器的專(zhuān)用存儲(chǔ)區(qū)域(190)來(lái)管理(226)邏輯分區(qū)與USB設(shè)備之間的USB數(shù)據(jù)通通信。但是圖4的方法與圖2的方法不同之處在于,圖4的方法還包括由系統(tǒng)管理程序 接收(40 附加USB設(shè)備已被耦合到主機(jī)USB適配器的指示。所述系統(tǒng)管理程序接收(402) 附加USB設(shè)備已被耦合到主機(jī)USB適配器的指示可以通過(guò)各種方式實(shí)現(xiàn),包括例如接收在 將附加USB設(shè)備連接到下游USB集線器或主機(jī)USB適配器時(shí)出現(xiàn)的硬件中斷。圖4的方法還包括由系統(tǒng)管理程序(130)為所述附加USB設(shè)備分配(404)物理設(shè) 備地址;由系統(tǒng)管理程序(130)從所述附加USB設(shè)備取回(406)包括描述所述附加USB設(shè)備 的信息的設(shè)備描述符;以及由系統(tǒng)管理程序(130)通過(guò)配置管理器提供的信息判定(408) 所述附加USB設(shè)備目前是否被分配給邏輯分區(qū)。判定(408)所述附加USB設(shè)備目前是否被 分配給邏輯分區(qū)可以通過(guò)檢查設(shè)備分配表(316)中是否存在所述附加USB設(shè)備的諸如序列 號(hào)之類(lèi)的設(shè)備描述符或部分設(shè)備描述符(312)以及任何關(guān)聯(lián)的分區(qū)標(biāo)識(shí)符(318)來(lái)實(shí)現(xiàn)。如果所述附加USB設(shè)備目前未被分配給一個(gè)或多個(gè)邏輯分區(qū),圖4的方法繼續(xù)執(zhí) 行且系統(tǒng)管理程序(130)不為USB設(shè)備建立(414)隊(duì)列對(duì)。如果所述附加USB設(shè)備目前被 分配給一個(gè)或多個(gè)邏輯分區(qū),圖4的方法繼續(xù)執(zhí)行且系統(tǒng)管理程序(130)將為分配了所述 附加USB設(shè)備的每個(gè)邏輯分區(qū)建立010)隊(duì)列對(duì)(134、136)。圖4的方法還包括由系統(tǒng)管理程序(130)向分配了所述附加USB設(shè)備的每個(gè)邏輯 分區(qū)提供(41 所述附加USB設(shè)備的指示。所述系統(tǒng)管理程序可以通過(guò)觸發(fā)為此目的設(shè)計(jì) 的分區(qū)操作系統(tǒng)中的軟件中斷或以本領(lǐng)域的技術(shù)人員將想到的其他方式向分配了所述附 加USB設(shè)備的每個(gè)邏輯分區(qū)提供(41 所述附加USB設(shè)備的指示。為了進(jìn)一步說(shuō)明,圖5是示出根據(jù)本發(fā)明的實(shí)施例的用于虛擬化主機(jī)USB適配器 的進(jìn)一步示例性方法的流程圖。圖5的方法與圖2的方法的類(lèi)似之處在于,圖5的方法在 管理一個(gè)或多個(gè)邏輯分區(qū)(圖1上的106、118)的系統(tǒng)管理程序(130)所維護(hù)的虛擬化環(huán)境中執(zhí)行。圖5的方法與圖2的方法的類(lèi)似之處還在于,圖5的方法包括接收O10)USB I/ 0請(qǐng)求012),將WQE(HO)放入Q20)與邏輯USB適配器關(guān)聯(lián)的隊(duì)列對(duì)(134、136)內(nèi)的一 個(gè)隊(duì)列(136)中,以及通過(guò)使用DMA將USB數(shù)據(jù)Q24)從主機(jī)USB適配器取回Q28)到邏 輯USB適配器的專(zhuān)用存儲(chǔ)區(qū)域(190)來(lái)管理(226)邏輯分區(qū)與USB設(shè)備之間的USB數(shù)據(jù)通但是圖5的方法與圖2的方法的不同之處在于,圖5的方法還包括由系統(tǒng)管理程 序(130)接收(50 特定USB設(shè)備已被從主機(jī)USB適配器去耦的指示;由系統(tǒng)管理程序 (130)禁用(504)與所述特定USB設(shè)備關(guān)聯(lián)的所有隊(duì)列對(duì);以及由系統(tǒng)管理程序(130)向 分配了所述特定USB設(shè)備的每個(gè)邏輯分區(qū)提供(506)移除了所述特定USB設(shè)備的指示。鑒于上述說(shuō)明,讀者將認(rèn)識(shí)到根據(jù)本發(fā)明的實(shí)施例的虛擬化主機(jī)USB適配器的益 處包括 一個(gè)物理硬件由許多分區(qū)共享??蛻舨槐蒯槍?duì)每個(gè)邏輯分區(qū)購(gòu)買(mǎi)單獨(dú)的適配器 來(lái)實(shí)現(xiàn)USB連通性。這同時(shí)節(jié)省了適配器和機(jī)殼、線路連接以及適配器的其他物理屬性的 成本。 不需要設(shè)備驅(qū)動(dòng)器或分區(qū)之間進(jìn)行協(xié)作。 提供了完全的硬件隔離和保護(hù)。即使分區(qū)的操作錯(cuò)誤,也沒(méi)有任何一個(gè)分區(qū)能 夠通過(guò)虛擬化USB硬件破壞另一分區(qū)。 不需要對(duì)現(xiàn)有USB基礎(chǔ)結(jié)構(gòu)進(jìn)行任何更改便可根據(jù)本發(fā)明的實(shí)施例執(zhí)行虛擬 化。各實(shí)施例可與標(biāo)準(zhǔn)的現(xiàn)成組件和管理軟件具有完全的互操作性?!?USB適配器對(duì)于網(wǎng)絡(luò)而言似乎是正常的主機(jī)USB適配器。 邏輯USB適配器就像正常工作的USB適配器那樣提供零拷貝寫(xiě)/讀功能,因此 使用邏輯USB適配器時(shí)不會(huì)付出任何性能代價(jià)。 通過(guò)減少適配器、用于適配器的機(jī)殼以及USB設(shè)備的數(shù)目,顯著節(jié)約了電力。 通過(guò)虛擬化USB適配器顯著節(jié)省了 CPU處理功率和存儲(chǔ)器。 可以在不更改當(dāng)前操作系統(tǒng)的USB設(shè)備驅(qū)動(dòng)器的情況下與根據(jù)本發(fā)明的實(shí)施 例虛擬化的USB主機(jī)適配器一起工作。如本領(lǐng)域的技術(shù)人員將理解的,本發(fā)明的各個(gè)方面可以體現(xiàn)為系統(tǒng)、方法或計(jì)算 機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以采取完全硬件實(shí)施例、完全軟件實(shí)施例(包括固 件、駐留軟件、微代碼等)或組合了在此通常被稱為“電路”、“模塊”或“系統(tǒng)”的軟件和硬 件方面的實(shí)施例的形式。此外,本發(fā)明的各方面可以采取體現(xiàn)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介 質(zhì)(其上包含計(jì)算機(jī)可讀程序代碼)中的計(jì)算機(jī)程序產(chǎn)品的形式??梢允褂靡粋€(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。所述計(jì)算機(jī)可讀介質(zhì)可以是計(jì) 算機(jī)可讀信號(hào)介質(zhì)或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是(但不限于) 電、磁、光、電磁、紅外線或半導(dǎo)體系統(tǒng)、裝置或設(shè)備,或上述介質(zhì)的任意適當(dāng)?shù)慕M合。計(jì)算機(jī) 可讀存儲(chǔ)介質(zhì)的更具體的實(shí)例(非窮舉列表)將包括以下項(xiàng)具有一條或多條線的電連接、 便攜式計(jì)算機(jī)軟盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦寫(xiě)可編程只讀存 儲(chǔ)器(EPR0M或閃存)、光纖、便攜式光盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)設(shè)備、磁存儲(chǔ)設(shè)備或 上述任意介質(zhì)的適當(dāng)組合。在本文檔的上下文中,計(jì)算機(jī)可讀介質(zhì)可以是任何能夠包含或 存儲(chǔ)由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與指令執(zhí)行系統(tǒng)、裝置或設(shè)備結(jié)合的程序的有形介質(zhì)。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以包括其中包含計(jì)算機(jī)可讀程序代碼(在基帶中或作為 載波的一部分)的傳播數(shù)據(jù)信號(hào)。此類(lèi)傳播信號(hào)可以采取多種形式中的任意一種形式,其 中包括但不限于電磁、光或它們的任意適當(dāng)組合。計(jì)算機(jī)可讀信號(hào)介質(zhì)可以是計(jì)算機(jī)可讀 存儲(chǔ)介質(zhì)以外的任何能夠傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與指令執(zhí) 行系統(tǒng)、裝置或設(shè)備結(jié)合的程序的計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可使用任何適當(dāng)?shù)慕橘|(zhì)來(lái)傳送,所述介質(zhì)包括 但不限于無(wú)線、線纜、光纜、RF等或上述介質(zhì)的任意適當(dāng)組合。用于執(zhí)行本發(fā)明的各方面的操作的計(jì)算機(jī)程序代碼可以使用一種或多種編程語(yǔ) 言的任意組合來(lái)編寫(xiě),所述編程語(yǔ)言包括諸如Java、Smalltalk, C++之類(lèi)的面向?qū)ο蟮木?程語(yǔ)言或者諸如“C”編程語(yǔ)言或類(lèi)似的編程語(yǔ)言之類(lèi)的常規(guī)過(guò)程編程語(yǔ)言。所述程序代碼 可以完全地在用戶的計(jì)算上執(zhí)行、部分地在用戶的計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包 執(zhí)行、部分在用戶的計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器 上執(zhí)行。在后一種情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任何種類(lèi)的網(wǎng)絡(luò)(包括局域網(wǎng)(LAN)或廣 域網(wǎng)(WAN))連接到用戶的計(jì)算機(jī),或者,可以(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)) 連接到外部計(jì)算機(jī)。上面參考根據(jù)本發(fā)明的實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖 和/或方塊圖對(duì)本發(fā)明的各個(gè)方面進(jìn)行了描述。將理解,所述流程圖和/或方塊圖的每個(gè) 方塊以及所述流程圖和/或方塊圖中的方塊的組合可以由計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)。這些計(jì) 算機(jī)程序指令可以被提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器 以產(chǎn)生機(jī)器,以便通過(guò)所述計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的所述指令產(chǎn) 生用于實(shí)現(xiàn)一個(gè)或多個(gè)流程圖和/或方塊圖方塊中指定的功能/操作的裝置。這些計(jì)算機(jī)程序指令也可以被存儲(chǔ)在可引導(dǎo)計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或 其他設(shè)備以特定方式執(zhí)行功能的計(jì)算機(jī)可讀介質(zhì)中,以便存儲(chǔ)在所述計(jì)算機(jī)可讀介質(zhì)中的 所述指令產(chǎn)生一件包括實(shí)現(xiàn)在所述一個(gè)或多個(gè)流程圖和/或方塊圖方塊中指定的功能/操 作的指令的制品。所述計(jì)算機(jī)程序指令還可被加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他設(shè) 備,以導(dǎo)致在所述計(jì)算機(jī)或其他可編程裝置或其他設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算 機(jī)實(shí)現(xiàn)的過(guò)程,從而在所述計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在一個(gè)或 多個(gè)流程圖和/或方塊圖方塊中指定的功能/操作的過(guò)程。附圖中的流程圖和方塊圖示出了根據(jù)本發(fā)明的各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī) 程序產(chǎn)品的可能實(shí)施方式的架構(gòu)、功能和操作。在此方面,所述流程圖或方塊圖中的每個(gè)方 塊都可以表示代碼的模塊、段或部分,所述代碼包括用于實(shí)現(xiàn)指定的邏輯功能(多個(gè))的一 個(gè)或多個(gè)可執(zhí)行指令。還應(yīng)指出,在某些備選實(shí)施方式中,在方塊中說(shuō)明的功能可以不按圖 中說(shuō)明的順序發(fā)生。例如,示為連續(xù)的兩個(gè)方塊可以實(shí)際上被基本同時(shí)地執(zhí)行,或者某些時(shí) 候,取決于所涉及的功能,可以以相反的順序執(zhí)行所述方塊。還將指出,所述方塊圖和/或 流程圖的每個(gè)方塊以及所述方塊圖和/或流程圖中的方塊的組合可以由執(zhí)行指定功能或 操作的基于專(zhuān)用硬件的系統(tǒng)或?qū)S糜布陀?jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。通過(guò)上述說(shuō)明將理解,可以在不偏離本發(fā)明的實(shí)際精神的情況下對(duì)本發(fā)明的各種實(shí)施例做出修改和更改。本說(shuō)明書(shū)中的描述僅為了進(jìn)行說(shuō)明,并非旨在做出任何限制。本 發(fā)明的范圍僅由以下權(quán)利要求的語(yǔ)言限定。
權(quán)利要求
1.一種虛擬化由系統(tǒng)管理程序維護(hù)的虛擬化環(huán)境中的主機(jī)通用串行總線USB適配器 的方法,所述系統(tǒng)管理程序管理一個(gè)或多個(gè)邏輯分區(qū),所述方法包括由所述系統(tǒng)管理程序經(jīng)由邏輯USB適配器從邏輯分區(qū)接收USB輸入/輸出I/O請(qǐng)求, 所述邏輯USB適配器與耦合到所述主機(jī)USB適配器的USB設(shè)備關(guān)聯(lián);由所述系統(tǒng)管理程序?qū)⒐ぷ麝?duì)列單元WQE放入與所述邏輯USB適配器關(guān)聯(lián)的隊(duì)列對(duì)內(nèi) 的一個(gè)隊(duì)列中;以及由接口設(shè)備根據(jù)所述WQE管理所述邏輯分區(qū)與所述USB設(shè)備之間的USB數(shù)據(jù)通信,所 述通信包括使用直接存儲(chǔ)器存取DMA將源自所述USB設(shè)備的USB數(shù)據(jù)從所述主機(jī)USB適配 器取回到所述邏輯USB適配器的專(zhuān)用存儲(chǔ)區(qū)域中。
2.如權(quán)利要求1中所述的方法,還包括根據(jù)所述USB I/O請(qǐng)求中指定的虛擬地址范圍注冊(cè)所述專(zhuān)用存儲(chǔ)區(qū)域,其中 將WQE放入與所述邏輯USB適配器關(guān)聯(lián)的隊(duì)列對(duì)內(nèi)的一個(gè)隊(duì)列中進(jìn)一步包括將所述 USB I/O請(qǐng)求中包括的所述USB設(shè)備的邏輯設(shè)備地址轉(zhuǎn)換為所述USB設(shè)備的物理設(shè)備地 址;所述WQE進(jìn)一步包括傳輸類(lèi)型、所述USB設(shè)備的物理設(shè)備地址、端點(diǎn)標(biāo)識(shí)符以及包括所 述專(zhuān)用存儲(chǔ)區(qū)域的所述虛擬地址范圍的指定的描述符列表。
3.如權(quán)利要求1中所述的方法,還包括由所述系統(tǒng)管理程序啟動(dòng)與所述主機(jī)USB適配 器耦合的USB設(shè)備的USB設(shè)備發(fā)現(xiàn),其中包括為每個(gè)發(fā)現(xiàn)的USB設(shè)備分配物理設(shè)備地址, 以及從每個(gè)發(fā)現(xiàn)的USB設(shè)備取回包括描述所述USB設(shè)備的信息的設(shè)備描述符。
4.如權(quán)利要求2中所述的方法,還包括由所述系統(tǒng)管理程序從配置管理器接收每個(gè)發(fā)現(xiàn)的USB設(shè)備到一個(gè)或多個(gè)邏輯分區(qū) 的分配;以及由所述系統(tǒng)管理程序?yàn)榉峙浣o邏輯分區(qū)的每個(gè)USB設(shè)備建立隊(duì)列對(duì)。
5.如權(quán)利要求1中所述的方法,還包括由所述系統(tǒng)管理程序接收附加USB設(shè)備已被耦合到所述主機(jī)USB適配器的指示; 由所述系統(tǒng)管理程序?yàn)樗龈郊覷SB設(shè)備分配物理設(shè)備地址; 由所述系統(tǒng)管理程序從所述附加USB設(shè)備取回包括描述所述附加USB設(shè)備的信息的設(shè) 備描述符;由所述系統(tǒng)管理程序根據(jù)配置管理器提供的信息判定所述附加USB設(shè)備當(dāng)前是否被 分配給邏輯分區(qū);如果所述附加USB設(shè)備當(dāng)前被分配給一個(gè)或多個(gè)邏輯分區(qū),則由所述系統(tǒng)管理程序?yàn)?分配了所述附加USB設(shè)備的每個(gè)所述邏輯分區(qū)建立一個(gè)隊(duì)列對(duì);以及由所述系統(tǒng)管理程序向分配了所述附加USB設(shè)備的每個(gè)邏輯分區(qū)提供所述附加USB設(shè) 備的指示。
6.如權(quán)利要求1中所述的方法,還包括由所述系統(tǒng)管理程序接收特定USB設(shè)備已被從所述主機(jī)USB適配器去耦的指示; 由所述系統(tǒng)管理程序禁用與所述特定USB設(shè)備關(guān)聯(lián)的所有隊(duì)列對(duì);以及 由所述系統(tǒng)管理程序向分配了所述特定USB設(shè)備的每個(gè)邏輯分區(qū)提供移除了所述特 定USB設(shè)備的指示。
7.一種虛擬化由系統(tǒng)管理程序維護(hù)的虛擬化環(huán)境中的主機(jī)通用串行總線USB適配器 的裝置,所述系統(tǒng)管理程序管理一個(gè)或多個(gè)邏輯分區(qū),所述裝置包括計(jì)算機(jī)處理器、在操作 上耦合到所述計(jì)算機(jī)處理器的計(jì)算機(jī)存儲(chǔ)器,所述計(jì)算機(jī)存儲(chǔ)器中包含能夠執(zhí)行以下操作 的計(jì)算機(jī)程序指令由所述系統(tǒng)管理程序經(jīng)由邏輯USB適配器從邏輯分區(qū)接收USB輸入/輸出I/O請(qǐng)求, 所述邏輯USB適配器與耦合到所述主機(jī)USB適配器的USB設(shè)備關(guān)聯(lián);由所述系統(tǒng)管理程序?qū)⒐ぷ麝?duì)列單元WQE放入與所述邏輯USB適配器關(guān)聯(lián)的隊(duì)列對(duì)內(nèi) 的一個(gè)隊(duì)列中;以及由接口設(shè)備根據(jù)所述WQE管理所述邏輯分區(qū)與所述USB設(shè)備之間的USB數(shù)據(jù)通信,所 述通信包括使用直接存儲(chǔ)器存取DMA將源自所述USB設(shè)備的USB數(shù)據(jù)從所述主機(jī)USB適配 器取回到所述邏輯USB適配器的專(zhuān)用存儲(chǔ)區(qū)域中。
8.如權(quán)利要求7中所述的裝置,還包括能夠執(zhí)行以下操作的計(jì)算機(jī)程序指令 根據(jù)所述USB I/O請(qǐng)求中指定的虛擬地址范圍注冊(cè)所述專(zhuān)用存儲(chǔ)區(qū)域,其中將WQE放入與所述邏輯USB適配器關(guān)聯(lián)的隊(duì)列對(duì)內(nèi)的一個(gè)隊(duì)列中進(jìn)一步包括將所述 USB I/O請(qǐng)求中包括的所述USB設(shè)備的邏輯設(shè)備地址轉(zhuǎn)換為所述USB設(shè)備的物理設(shè)備地 址;所述WQE進(jìn)一步包括傳輸類(lèi)型、所述USB設(shè)備的物理設(shè)備地址、端點(diǎn)標(biāo)識(shí)符以及包括所 述專(zhuān)用存儲(chǔ)區(qū)域的所述虛擬地址范圍的指定的描述符列表。
9.如權(quán)利要求7中所述的裝置,還包括由所述系統(tǒng)管理程序啟動(dòng)與所述主機(jī)USB適配 器耦合的USB設(shè)備的USB設(shè)備發(fā)現(xiàn),其中包括為每個(gè)發(fā)現(xiàn)的USB設(shè)備分配物理設(shè)備地址, 以及從每個(gè)發(fā)現(xiàn)的USB設(shè)備取回包括描述所述USB設(shè)備的信息的設(shè)備描述符。
10.如權(quán)利要求8中所述的裝置,還包括能夠執(zhí)行以下操作的計(jì)算機(jī)程序指令由所述系統(tǒng)管理程序從配置管理器接收每個(gè)發(fā)現(xiàn)的USB設(shè)備到一個(gè)或多個(gè)邏輯分區(qū) 的分配;以及由所述系統(tǒng)管理程序?yàn)榉峙浣o邏輯分區(qū)的每個(gè)USB設(shè)備建立隊(duì)列對(duì)。
11.如權(quán)利要求7中所述的裝置,還包括能夠執(zhí)行以下操作的計(jì)算機(jī)程序指令 由所述系統(tǒng)管理程序接收附加USB設(shè)備已被耦合到所述主機(jī)USB適配器的指示; 由所述系統(tǒng)管理程序?yàn)樗龈郊覷SB設(shè)備分配物理設(shè)備地址;由所述系統(tǒng)管理程序從所述附加USB設(shè)備取回包括描述所述附加USB設(shè)備的信息的設(shè) 備描述符;由所述系統(tǒng)管理程序根據(jù)配置管理器提供的信息判定所述附加USB設(shè)備當(dāng)前是否被 分配給邏輯分區(qū);如果所述附加USB設(shè)備當(dāng)前被分配給一個(gè)或多個(gè)邏輯分區(qū),則由所述系統(tǒng)管理程序?yàn)?分配了所述附加USB設(shè)備的每個(gè)所述邏輯分區(qū)建立一個(gè)隊(duì)列對(duì);以及由所述系統(tǒng)管理程序向分配了所述附加USB設(shè)備的每個(gè)邏輯分區(qū)提供所述附加USB設(shè) 備的指示。
12.如權(quán)利要求7中所述的裝置,還包括能夠執(zhí)行以下操作的計(jì)算機(jī)程序指令 由所述系統(tǒng)管理程序接收特定USB設(shè)備已被從所述主機(jī)USB適配器去耦的指示; 由所述系統(tǒng)管理程序禁用與所述特定USB設(shè)備關(guān)聯(lián)的所有隊(duì)列對(duì);以及由所述系統(tǒng)管理程序向分配了所述特定USB設(shè)備的每個(gè)邏輯分區(qū)提供移除了所述特 定USB設(shè)備的指示。
全文摘要
本發(fā)明涉及一種虛擬化主機(jī)USB適配器的方法和裝置。在由系統(tǒng)管理程序維護(hù)的虛擬化環(huán)境中虛擬化主機(jī)USB適配器,系統(tǒng)管理程序管理一個(gè)或多個(gè)邏輯分區(qū),其中虛擬化包括所述系統(tǒng)管理程序經(jīng)由邏輯USB適配器從邏輯分區(qū)接收USB I/O請(qǐng)求,所述邏輯USB適配器與耦合到所述主機(jī)USB適配器的USB設(shè)備關(guān)聯(lián);所述系統(tǒng)管理程序?qū)⒐ぷ麝?duì)列單元WQE放入與所述邏輯USB適配器關(guān)聯(lián)的隊(duì)列對(duì)內(nèi)的一個(gè)隊(duì)列中;以及接口設(shè)備根據(jù)所述WQE管理所述邏輯分區(qū)與所述USB設(shè)備之間的USB數(shù)據(jù)通信,所述通信包括使用直接存儲(chǔ)器存取DMA將源自所述USB設(shè)備的USB數(shù)據(jù)從所述主機(jī)USB適配器取回到所述邏輯USB適配器的專(zhuān)用存儲(chǔ)區(qū)域中。
文檔編號(hào)G06F9/455GK102129384SQ20111000456
公開(kāi)日2011年7月20日 申請(qǐng)日期2011年1月11日 優(yōu)先權(quán)日2010年1月12日
發(fā)明者E·M·鮑曼, H·G·基爾, L·A·森德?tīng)柊涂? T·J·席姆克 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
榆树市| 泗水县| 仙居县| 绥中县| 南投市| 岳普湖县| 阳西县| 鸡东县| 台东市| 天峨县| 分宜县| 朝阳县| 河北省| 钦州市| 安平县| 绵竹市| 安乡县| 云南省| 兴城市| SHOW| 赤水市| 怀安县| 桂东县| 和静县| 太谷县| 波密县| 赤峰市| 上杭县| 许昌市| 扎囊县| 灵山县| 长治市| 蕲春县| 崇州市| 许昌县| 太湖县| 万安县| 化隆| 峨边| 康乐县| 梓潼县|