專利名稱:用于與支持多個設(shè)備的網(wǎng)絡(luò)適配器接口的方法、系統(tǒng)和程序的制作方法
背景技術(shù):
1.發(fā)明領(lǐng)域本發(fā)明涉及用于與支持多個設(shè)備的網(wǎng)絡(luò)適配器接口的方法、系統(tǒng)和程序。
2.相關(guān)領(lǐng)域描述在網(wǎng)絡(luò)環(huán)境中,主計(jì)算機(jī)上的網(wǎng)絡(luò)適配器(諸如以太網(wǎng)卡、光纖信道卡等)接收輸入/輸出(I/O)請求或?qū)τ芍鳈C(jī)發(fā)起的I/O請求的響應(yīng)。通常,主計(jì)算機(jī)操作系統(tǒng)包括與網(wǎng)絡(luò)適配器硬件通信的設(shè)備驅(qū)動器(device driver),以管理在網(wǎng)絡(luò)上進(jìn)行傳輸?shù)腎/O請求。設(shè)備驅(qū)動器要求大量的主處理器資源來處理對網(wǎng)絡(luò)適配器的網(wǎng)絡(luò)傳輸請求。一種降低主處理器的負(fù)荷的技術(shù)是使用傳輸控制協(xié)議(TCP)/因特網(wǎng)協(xié)議(IP)卸載引擎(TOE),其中TCP/IP協(xié)議相關(guān)的操作由與設(shè)備驅(qū)動器形成對比的網(wǎng)絡(luò)適配器硬件來支持,由此使得主處理器不必執(zhí)行TCP/IP協(xié)議相關(guān)的操作。傳送協(xié)議操作包括用校驗(yàn)和以及其他信息將數(shù)據(jù)封裝為TCP/IP分組(packet),并且解封裝從網(wǎng)絡(luò)上接收的TCP/IP分組,以訪問有效載荷(payload)或數(shù)據(jù)。
網(wǎng)絡(luò)適配器可以具有針對不同轉(zhuǎn)移協(xié)議來處理流量的能力。對于網(wǎng)絡(luò)適配器所支持的每個協(xié)議,主操作系統(tǒng)可以加載不同的軟件設(shè)備驅(qū)動器來使操作系統(tǒng)能夠相對于該協(xié)議來與網(wǎng)絡(luò)適配器接口。然后每個設(shè)備驅(qū)動器會將分組轉(zhuǎn)移到網(wǎng)絡(luò)適配器,以進(jìn)行進(jìn)一步的處理和傳輸。
附圖簡要說明現(xiàn)在參考附圖,在所有附圖中類似的參考數(shù)字代表對應(yīng)的部分
圖1示出在其中實(shí)現(xiàn)本發(fā)明的方面的計(jì)算環(huán)境;圖2根據(jù)本發(fā)明的實(shí)施方案示出由操作系統(tǒng)執(zhí)行以與網(wǎng)絡(luò)適配器通信的操作;圖3、4、5和6根據(jù)本發(fā)明的實(shí)施方案示出被執(zhí)行以在操作系統(tǒng)和網(wǎng)絡(luò)適配器之間進(jìn)行接口的操作;圖7示出可以與所描述的實(shí)施方案一起使用的體系結(jié)構(gòu)。
詳細(xì)描述在以下描述中將參考附圖,這些附圖構(gòu)成了描述的一部分,并且圖示了本發(fā)明的幾種實(shí)施方案??梢岳斫猓部梢允褂闷渌麑?shí)施方案并且可以作出結(jié)構(gòu)和操作上的改變,而不偏離本發(fā)明的范圍。
圖1示出在其中可以實(shí)現(xiàn)本發(fā)明的方面的計(jì)算環(huán)境。計(jì)算機(jī)2包括一個或更多個中央處理單元(CPU)4(僅示出一個)、易失性存儲器6、非易失性儲存設(shè)備8、操作系統(tǒng)10,以及與網(wǎng)絡(luò)上的遠(yuǎn)程節(jié)點(diǎn)通信并從所述遠(yuǎn)程節(jié)點(diǎn)接收數(shù)據(jù)的網(wǎng)絡(luò)適配器12。再有,應(yīng)用程序14在存儲器6中執(zhí)行,并且能夠從遠(yuǎn)程計(jì)算機(jī)傳輸和接收分組。計(jì)算機(jī)2可以包括任何領(lǐng)域內(nèi)已知的計(jì)算設(shè)備,例如大型機(jī)、服務(wù)器、個人計(jì)算機(jī)、工作站、膝上型計(jì)算機(jī)、手持式計(jì)算機(jī)、電話設(shè)備、網(wǎng)絡(luò)裝置、虛擬化設(shè)備、儲存控制器等??梢允褂酶鞣N領(lǐng)域內(nèi)已知的CPU 4和操作系統(tǒng)10。存儲器6中的程序和數(shù)據(jù)可以被交換到儲存設(shè)備8中,作為存儲器管理操作的一部分。適配器12所連接到的網(wǎng)絡(luò)可以包括領(lǐng)域內(nèi)已知的網(wǎng)絡(luò),例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、儲存區(qū)域網(wǎng)(SAN)、因特網(wǎng)和內(nèi)部網(wǎng)等等。此外,適配器12可以提供網(wǎng)絡(luò)連接或點(diǎn)對點(diǎn)連接。
一旦檢測到網(wǎng)絡(luò)適配器12的存在,操作系統(tǒng)10可以加載適配器虛擬總線驅(qū)動器20,這可以在初始化期間發(fā)生,或者在例如即插即用(plug-and-play)設(shè)備初始化的情況下動態(tài)地發(fā)生。虛擬總線驅(qū)動器20包括針對操作系統(tǒng)表示網(wǎng)絡(luò)適配器12的設(shè)備接口驅(qū)動器。在某些實(shí)施方案中,適配器虛擬總線驅(qū)動器20將網(wǎng)絡(luò)適配器12表示為針對操作系統(tǒng)的虛擬總線,例如PCI總線,并且報告在所述虛擬總線上存在著多個虛擬適配器,所有這些適配器都被所述網(wǎng)絡(luò)適配器支持。虛擬總線上被報告的虛擬設(shè)備中的每一個與網(wǎng)絡(luò)適配器12所支持的不同設(shè)備協(xié)議相對應(yīng),所述設(shè)備協(xié)議例如iSCSI、卸載的LAN(offloaded LAN)驅(qū)動器、非卸載的LAN(non-offloaded LAN)驅(qū)動器、光纖信道等等。針對被報告為附接到由適配器虛擬總線驅(qū)動器20所表示的虛擬總線的每個設(shè)備,操作系統(tǒng)10會加載協(xié)議設(shè)備驅(qū)動器22a、22b、22c。此外,適配器虛擬總線驅(qū)動器20會加載設(shè)備對象(device object)24a、24b、24c來表示網(wǎng)絡(luò)適配器12所支持的每個設(shè)備。在圖1的實(shí)施方案中,操作系統(tǒng)10加載三個協(xié)議設(shè)備驅(qū)動器22a、22b、22c。然而,針對網(wǎng)絡(luò)適配器12所支持的不同轉(zhuǎn)移協(xié)議,適配器虛擬總線驅(qū)動器20可以進(jìn)行報告,并且操作系統(tǒng)10響應(yīng)于此,可以加載任意數(shù)量的設(shè)備驅(qū)動器。
在某些實(shí)施方案中,適配器虛擬總線驅(qū)動器20會將網(wǎng)絡(luò)適配器12作為單個總線函數(shù)(例如PCI函數(shù))報告給操作系統(tǒng)10,所述網(wǎng)絡(luò)適配器支持多個協(xié)議設(shè)備,并且向操作系統(tǒng)12呈現(xiàn)為具有多個附接的協(xié)議設(shè)備的虛擬總線。設(shè)備驅(qū)動器22a、22b、22c使用該總線函數(shù)(即適配器虛擬總線驅(qū)動器20)來訪問例如寄存器的網(wǎng)絡(luò)適配器12硬件的資源,從而控制用于設(shè)備的總線函數(shù)的設(shè)備驅(qū)動器承擔(dān)對全部設(shè)備硬件的控制。針對整個網(wǎng)絡(luò)適配器12提供單個總線函數(shù)的實(shí)施方案會防止多個設(shè)備驅(qū)動器執(zhí)行關(guān)于網(wǎng)絡(luò)適配器12硬件的沖突操作,例如對相同寄存器的寫操作等。以這種方式,適配器虛擬總線驅(qū)動器協(xié)調(diào)設(shè)備驅(qū)動器22a、22b、22c對網(wǎng)絡(luò)適配器12所支持的所有設(shè)備30a、30b、30c的訪問。
適配器虛擬總線驅(qū)動器20還會實(shí)現(xiàn)中斷服務(wù)例程(routine),當(dāng)工作完成或失敗時,例如當(dāng)分組被成功地接收或傳輸時,所述中斷服務(wù)例程由網(wǎng)絡(luò)適配器12來通知。適配器虛擬總線驅(qū)動器20在總線接口26上與網(wǎng)絡(luò)適配器12通信,所述總線接口26可以實(shí)現(xiàn)領(lǐng)域內(nèi)已知的總線協(xié)議,例如外設(shè)部件互連(PCI)總線技術(shù)或它的變體,例如PCI Express、PCI-x等等。以這種方式,適配器虛擬總線驅(qū)動器20通過生成設(shè)備對象24a、24b、24c來仿真針對設(shè)備驅(qū)動器22a、22b、22c的總線,其中所述設(shè)備對象24a、24b、24c仿真附接到由適配器總線驅(qū)動器20所仿真的總線的設(shè)備。以這種方式,對于操作系統(tǒng)來說,設(shè)備驅(qū)動器22a、22b、22c與適配器虛擬總線驅(qū)動器20進(jìn)行交互,如同所述適配器虛擬總線驅(qū)動器20是總線接口驅(qū)動器,所述總線接口驅(qū)動器表示具有針對設(shè)備對象24a、24b、24c的支持不同通信協(xié)議的附接設(shè)備的總線,所述設(shè)備對象24a、24b、24c表示設(shè)備30a、30b、30c。
圖1示出支持多個設(shè)備30a、30b、30c的網(wǎng)絡(luò)適配器12,其中每個設(shè)備支持一種通信協(xié)議,例如因特網(wǎng)小型計(jì)算機(jī)系統(tǒng)接口(“iSCSI”)、非卸載的LAN驅(qū)動器、卸載的LAN驅(qū)動器等等。iSCSI協(xié)議包括在TCP/IP棧(stack)之上用于在TCP/IP上運(yùn)載SCSI命令的應(yīng)用層,并且典型地用于儲存網(wǎng)絡(luò)。使用在這里,術(shù)語“iSCSI”是指由IETF(因特網(wǎng)工程任務(wù)組)標(biāo)準(zhǔn)主體所定義的iSCSI協(xié)議以及該協(xié)議的任何變體的句法(syntax)和語義(semantic)。在當(dāng)前的其中使用iSCSI的儲存網(wǎng)絡(luò)中,分組配置包括以太網(wǎng)封裝,所述以太網(wǎng)封裝囊括(encapsulate)因特網(wǎng)協(xié)議(IP)和傳輸控制協(xié)議(TCP)封裝層,并且還囊括包括一條或更多條SCSI命令的iSCSI封裝。當(dāng)分組在任何網(wǎng)絡(luò)段(鏈路)上從點(diǎn)流到點(diǎn)時,以太網(wǎng)協(xié)議提供鏈路層的錯誤校驗(yàn),以確定數(shù)據(jù)在鏈路上傳遞時是否已經(jīng)被破壞。iSCSI引擎34a支持iSISC相關(guān)處理,例如解封裝iSCSI頭部以訪問其中諸如SCSI數(shù)據(jù)的數(shù)據(jù),并且TCP引擎35a支持被卸載到適配器12上的TCP/IP協(xié)議處理。
例如在設(shè)備30b中實(shí)現(xiàn)的非卸載的LAN,是指其中TCP協(xié)議層處理主要在主存儲器6中的設(shè)備驅(qū)動器22b中被支持的實(shí)施方案,在提供適配器12上的TCP支持的非卸載的LAN引擎34b中具有較少的TCP/IP支持。例如實(shí)現(xiàn)在設(shè)備30c中的卸載的LAN,是指其中TCP層處理主要在網(wǎng)絡(luò)適配器12上的卸載的LAN引擎34c中被支持的實(shí)施方案??梢园ㄌ峁┯糜谥С植煌ㄐ艆f(xié)議處理的引擎的額外的或不同的設(shè)備,所述不同通信協(xié)議例如基于IP的光纖信道、遠(yuǎn)程直接存儲器訪問(RDMA)、光纖信道等等,其中這些額外的協(xié)議可以位于TCP之上,或者可以替代TCP使用。此外,對于每一個被支持的通信協(xié)議,網(wǎng)絡(luò)適配器中的一個設(shè)備可以支持所述通信協(xié)議的卸載的版本,即其中所述協(xié)議主要在網(wǎng)絡(luò)適配器中被支持,并且網(wǎng)絡(luò)適配器中的另一個設(shè)備可以支持所述通信協(xié)議的非卸載的版本,即其中所述協(xié)議主要在主設(shè)備驅(qū)動器中被支持。
對于每一個被支持的設(shè)備30a、30b、30c,網(wǎng)絡(luò)適配器12可以具有用于排隊(duì)從適配器虛擬總線驅(qū)動器20接收的分組的協(xié)議隊(duì)列32a、32b、32c,協(xié)議傳送卸載引擎34a、34b、34c,以及網(wǎng)絡(luò)協(xié)議層36a、36b、36c。網(wǎng)絡(luò)協(xié)議層36a、36b、36c支持通信協(xié)議的網(wǎng)絡(luò)層,例如IP。網(wǎng)絡(luò)層36a、36b、36c處理網(wǎng)絡(luò)通信,并且將接收的分組提供給傳送協(xié)議引擎32a、32b、32c。網(wǎng)絡(luò)協(xié)議層36a、36b、36c可以執(zhí)行諸如交換和路由、創(chuàng)建用于將數(shù)據(jù)從節(jié)點(diǎn)傳輸?shù)焦?jié)點(diǎn)的被稱為虛擬電路(virtual circuit)的邏輯路徑、路由和轉(zhuǎn)發(fā)、尋址、互相連網(wǎng)、錯誤處理、擁塞控制和分組排序的操作,以及其他領(lǐng)域內(nèi)已知的網(wǎng)絡(luò)層操作。物理接口38a、38b提供數(shù)據(jù)轉(zhuǎn)移通過的電氣硬件和組件(component),包括電氣組件、線纜等。物理接口可以在銅線、電纜(例如5類電纜)、無線發(fā)射機(jī)和接收機(jī)等上傳送數(shù)據(jù)。設(shè)備30a、30b、30c可以共享物理接口38a、38b,或者可替換地,某些設(shè)備30a、30b、30c可以被指派為使用具體的物理接口38a、38b。還可以支持額外的通信層,例如處理到分組的目的地的物理和邏輯連接(例如以太網(wǎng)協(xié)議處理)的定義網(wǎng)絡(luò)上數(shù)據(jù)格式的數(shù)據(jù)鏈路層、會話層、表示層和應(yīng)用層。
此外,圖1針對每個設(shè)備協(xié)議示出一個協(xié)議隊(duì)列30a、30b、30c,用于緩沖針對該設(shè)備接收的分組。然而,在替換的實(shí)施方案中,可以使用一個隊(duì)列來緩沖針對不同設(shè)備和傳送卸載引擎32a、32b、32c的分組。此外,網(wǎng)絡(luò)協(xié)議層36a、36b、36c可以包括用于所有不同設(shè)備30a、30b、30c的單個網(wǎng)絡(luò)協(xié)議層組件,而不是如圖1中所示的分開的多個網(wǎng)絡(luò)協(xié)議層。
圖2示出一旦檢測到(在框100)網(wǎng)絡(luò)適配器12在總線26上的存在,操作系統(tǒng)12執(zhí)行的操作。操作系統(tǒng)12可以在初始化期間巡查(walk)總線26以檢測所有設(shè)備時檢測網(wǎng)絡(luò)適配器12,或者可以在初始化之后動態(tài)地檢測網(wǎng)絡(luò)適配器12。一旦檢測到網(wǎng)絡(luò)適配器12,操作系統(tǒng)12加載(在框102)并調(diào)用適配器虛擬總線驅(qū)動器20。
然后,控制前進(jìn)到圖3,圖3表示當(dāng)適配器虛擬總線驅(qū)動器20被操作系統(tǒng)10調(diào)用(框150)時所述適配器虛擬總線驅(qū)動器20執(zhí)行的操作。一旦被初始調(diào)用(在框150),適配器虛擬總線驅(qū)動器20通過設(shè)置寄存器等操作初始化(在框152)網(wǎng)絡(luò)適配器12硬件。如果(在框154)初始化未成功,則向操作系統(tǒng)10報告(在框156)初始化失敗。否則,如果初始化成功,則適配器虛擬總線驅(qū)動器20讀取(在框158)網(wǎng)絡(luò)適配器12硬件配置設(shè)置,以確定網(wǎng)絡(luò)適配器12所支持的設(shè)備30a、30b、30c。協(xié)議可以被對應(yīng)驅(qū)動器22a、22b、22c以及硬件30a、30b、30c支持。一旦確定被支持的設(shè)備,虛擬總線驅(qū)動器20針對在網(wǎng)絡(luò)適配器12中被支持的每個確定的設(shè)備30a、30b、30c創(chuàng)建(在框160)設(shè)備對象24a、24b、24c。設(shè)備對象24a、24b、24c會針對操作系統(tǒng)12將確定的設(shè)備30a、30b、30c表示為附接到由適配器虛擬總線驅(qū)動器20表示的虛擬總線上的虛擬設(shè)備。虛擬總線驅(qū)動器20還會將由設(shè)備對象24a、24b、24c表示的子虛擬設(shè)備(child virtual device)(包括它們的即插即用和功率管理相關(guān)性(dependency))向操作系統(tǒng)10報告(在框162)為附接到所述虛擬總線。
在某些即插即用實(shí)施方案中,適配器虛擬總線驅(qū)動器20可以將被支持的設(shè)備報告為依賴于虛擬總線,即該設(shè)備由所述虛擬總線驅(qū)動器支持。這種被報告的相關(guān)性會防止操作系統(tǒng)10在移除針對網(wǎng)絡(luò)適配器12所支持的所有虛擬設(shè)備而被加載的所有相關(guān)子設(shè)備驅(qū)動器22a、22b、22c之前動態(tài)地移除適配器虛擬總線驅(qū)動器20,所述所有虛擬設(shè)備被報告為依賴于虛擬總線驅(qū)動器22。此外,虛擬總線驅(qū)動器20可以向操作系統(tǒng)10功率管理裝置報告,只要相關(guān)的設(shè)備驅(qū)動器22a、22b、22c棧中的任何設(shè)備處于完全功率狀態(tài)下,操作系統(tǒng)12功率管理器就不能將由適配器虛擬總線驅(qū)動器20表示的虛擬總線(即網(wǎng)絡(luò)適配器10)置為較低功率狀態(tài)。這會要求操作系統(tǒng)12功率管理器在試圖將由適配器虛擬總線驅(qū)動器20表示的設(shè)備(即虛擬總線)置為較低功率狀態(tài)之前,將所有相關(guān)的設(shè)備驅(qū)動器22a、22b、22c棧置為較低功率狀態(tài)。因此,操作系統(tǒng)10必須對所有被網(wǎng)絡(luò)適配器12支持的設(shè)備30a、30b、30c執(zhí)行可以影響整個適配器12的狀態(tài)改變操作,例如動態(tài)地移除設(shè)備驅(qū)動器或功率改變,其中所述設(shè)備30a、30b、30c對于操作系統(tǒng)來說呈現(xiàn)為在虛擬總線之后的單獨(dú)的虛擬設(shè)備。此外,一旦設(shè)備可獲得,虛擬適配器總線驅(qū)動器12可以針對該新檢測到的設(shè)備動態(tài)地加載設(shè)備驅(qū)動器和設(shè)備對象。
關(guān)于圖2,在調(diào)用適配器虛擬總線驅(qū)動器20進(jìn)行初始化后,一旦操作系統(tǒng)12從驅(qū)動器20接收到(在框104)響應(yīng),如果(在框106)虛擬總線驅(qū)動器20的加載和初始化未成功,則適配器虛擬總線驅(qū)動器20被解加載(unload)(在框108);否則,操作系統(tǒng)10針對每個被報告的在網(wǎng)絡(luò)適配器12中被支持的設(shè)備加載(在框110)設(shè)備驅(qū)動器22a、22b、22c,操作系統(tǒng)12將所述設(shè)備驅(qū)動器22a、22b、22c視為由虛擬總線上的設(shè)備對象24a、24b...24cn所表示的虛擬設(shè)備,所述虛擬總線由適配器虛擬總線驅(qū)動器20表示。
圖4示出一旦從設(shè)備驅(qū)動器22a、22b、22c中的一個接收到(在框200)要發(fā)送給網(wǎng)絡(luò)適配器12所支持的一個設(shè)備30a、30b、30c的分組,適配器虛擬總線驅(qū)動器20執(zhí)行的操作。該分組可以尋址到表示該分組被引導(dǎo)到的虛擬設(shè)備的設(shè)備對象24a、24b、24c。適配器虛擬總線驅(qū)動器20會確定(在框202)網(wǎng)絡(luò)適配器12中的設(shè)備隊(duì)列32a、32b、32c,所述設(shè)備隊(duì)列32a、32b、32c針對由設(shè)備對象24a、24b、24c表示的設(shè)備排隊(duì)分組。然后適配器虛擬總線驅(qū)動器20將接收的分組寫(在框204)到確定的隊(duì)列32a、32b、32c,并且向網(wǎng)絡(luò)適配器12發(fā)信號通知(在框206)要處理的分組。這會導(dǎo)致所述分組被引導(dǎo)到的設(shè)備30a、30b、30c中的傳送卸載引擎34a、34b、34c來處理隊(duì)列32a、32b、32c中的分組,并且將所述分組轉(zhuǎn)發(fā)到對應(yīng)的網(wǎng)絡(luò)協(xié)議層36a、36b、36c,以在網(wǎng)絡(luò)18上傳輸。
圖5示出一旦從網(wǎng)絡(luò)適配器12接收到(在框250)關(guān)于分組傳輸(例如成功、失敗等)的通知,適配器虛擬總線驅(qū)動器20執(zhí)行的操作。適配器虛擬總線驅(qū)動器20會確定(在框252)網(wǎng)絡(luò)適配器12中生成所述分組的設(shè)備30a、30b、30c,并且確定(在框254)針對該所確定的傳輸所述分組的設(shè)備的設(shè)備驅(qū)動器22a、22b、22c。然后調(diào)用(在框256)所確定的設(shè)備驅(qū)動器22a、22b、22c的完成回叫處理程序(completion callback handler),以向所確定的設(shè)備驅(qū)動器通知該分組傳輸?shù)臓顟B(tài)。
圖6示出一旦從網(wǎng)絡(luò)適配器12接收到(在框280)要傳輸?shù)讲僮飨到y(tǒng)12的分組,適配器虛擬總線驅(qū)動器20執(zhí)行的操作。響應(yīng)于此,適配器虛擬總線驅(qū)動器20確定(在框282)網(wǎng)絡(luò)適配器中作為接收的分組的目標(biāo)的設(shè)備30a、30b、30c,在計(jì)算機(jī)2中所述設(shè)備30a、30b、30c由設(shè)備對象24a、24b、24c表示,并且確定(在框284)針對發(fā)送所述分組的設(shè)備的設(shè)備驅(qū)動器22a、22b、22c。然后,適配器虛擬總線驅(qū)動器20調(diào)用(在框286)所確定的設(shè)備驅(qū)動器22a、22b、22c來處理所述分組。例如,實(shí)現(xiàn)在適配器虛擬總線驅(qū)動器20代碼中的中斷服務(wù)例程可以直接地或者通過操作系統(tǒng)12(例如通過終端服務(wù)例程處理程序)發(fā)信號通知所確定的設(shè)備驅(qū)動器22a、22b、22c在存儲器中有可供處理的分組,其中網(wǎng)絡(luò)適配器12可以直接將分組寫到存儲器6中指定的緩沖區(qū)。
在額外的實(shí)施方案中,網(wǎng)絡(luò)適配器12可以被配置,從而使每個物理接口專用于不同的設(shè)備,例如一個iSCSI端口、一個LAN端口等。在這樣的情況下,適配器虛擬總線驅(qū)動器20會向操作系統(tǒng)報告,表示網(wǎng)絡(luò)適配器12的虛擬總線包括該網(wǎng)絡(luò)適配器被配置所針對的每個設(shè)備,即兩個iSCSI適配器,或一個iSCSI適配器一個LAN適配器等等。終端用戶可以編程網(wǎng)絡(luò)適配器,以將不同的設(shè)備(即協(xié)議)與不同的端口相關(guān)聯(lián)。在這樣的配置之后,適配器虛擬總線驅(qū)動器20會向操作系統(tǒng)12報告虛擬總線之后的新設(shè)備配置,以導(dǎo)致操作系統(tǒng)12隨后移除或加載額外的設(shè)備驅(qū)動器來支持虛擬總線之后的所述虛擬設(shè)備。此外,在某些實(shí)施方案中,該重新配置可以動態(tài)地執(zhí)行而無需系統(tǒng)重引導(dǎo)。
額外的實(shí)施方案細(xì)節(jié)通過使用標(biāo)準(zhǔn)的編程和/或工程技術(shù)來產(chǎn)生軟件、固件、硬件或它們的組合,可以將這里所描述的用來接口操作系統(tǒng)和設(shè)備的實(shí)施方案實(shí)現(xiàn)為一種方法、裝置或制品。使用在這里,術(shù)語“制品”是指在硬件邏輯(例如,集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等)或者計(jì)算機(jī)可讀介質(zhì)(例如磁存儲介質(zhì)(例如硬盤、軟盤、磁帶等)、光存儲設(shè)備(CD-ROM、光盤等)、易失性和非易失性存儲器件(例如EEPROM、ROM、PROM、RAM、DRAM、SDRAM、固件、可編程邏輯等)上實(shí)現(xiàn)的代碼或邏輯。在計(jì)算機(jī)可讀介質(zhì)中的代碼可由處理器來訪問并執(zhí)行。還可以通過傳輸介質(zhì),或者通過網(wǎng)絡(luò)從文件服務(wù)器訪問其中實(shí)現(xiàn)了優(yōu)選實(shí)施方案的代碼。在這些情形中,其中實(shí)現(xiàn)了代碼的制品可以包括傳輸介質(zhì),例如網(wǎng)絡(luò)傳輸線,無線傳輸介質(zhì),通過空間、無線電波、紅外信號等傳播的信號等。因此,“制品”可以包括代碼在其中實(shí)施的介質(zhì)。此外,“制品”可以包括代碼在其中實(shí)施、處理和執(zhí)行的硬件和軟件組件的組合。當(dāng)然,本領(lǐng)域的技術(shù)人員將會認(rèn)識到,可以對這種配置做出很多修改而不偏離本發(fā)明的范圍,并且所述制品可以包括在本領(lǐng)域中公知的任何承載信息的介質(zhì)。
在所描述的實(shí)施方案中,某些操作被描述為由設(shè)備驅(qū)動器22a、22b、22c和協(xié)議引擎34a、35a、35b、35c執(zhí)行。在替換的實(shí)施方案中,被描述為由設(shè)備驅(qū)動器執(zhí)行的操作可以由設(shè)備傳送卸載引擎執(zhí)行,反之亦然。
在所描述的實(shí)施方案中,在網(wǎng)絡(luò)適配器卡處通過網(wǎng)絡(luò)從遠(yuǎn)程計(jì)算機(jī)接收分組。在替換的實(shí)施方案中,由傳送協(xié)議層或設(shè)備驅(qū)動器處理的所述接收和傳輸?shù)姆纸M可以從在設(shè)備驅(qū)動器和傳送協(xié)議驅(qū)動器的執(zhí)行所在的相同計(jì)算機(jī)中執(zhí)行的單獨(dú)過程來接收。
在某些實(shí)現(xiàn)中,設(shè)備驅(qū)動器和網(wǎng)絡(luò)適配器實(shí)施方案可以被包括在包括例如SCSI、集成驅(qū)動電子設(shè)備(IDE)、冗余獨(dú)立磁盤陣列(RAID)等控制器的儲存控制器的計(jì)算機(jī)系統(tǒng)中,所述儲存控制器管理對諸如磁盤驅(qū)動器、磁帶介質(zhì)、光盤等非易失性儲存設(shè)備的訪問。在替換的實(shí)現(xiàn)中,網(wǎng)絡(luò)適配器實(shí)施方案可以被包括在不包括儲存控制器的系統(tǒng)中,例如在某些網(wǎng)絡(luò)中心(hub)或交換機(jī)中。
在某些實(shí)現(xiàn)中,網(wǎng)絡(luò)適配器可以被配置為通過連接到網(wǎng)絡(luò)適配器上的端口的線纜傳輸數(shù)據(jù)。可替換地,網(wǎng)絡(luò)適配器實(shí)施方案可以被配置為通過諸如無線LAN、藍(lán)牙等的無線網(wǎng)絡(luò)或連接傳輸數(shù)據(jù)。
所描述的虛擬總線驅(qū)動器用于使操作系統(tǒng)與支持多個設(shè)備或協(xié)議的網(wǎng)絡(luò)適配器接口。在替換的實(shí)施方案中,虛擬總線驅(qū)動器可以用于與設(shè)備而非本身支持不同設(shè)備的網(wǎng)絡(luò)適配器接口。例如,所描述的虛擬總線驅(qū)動器可以用于與支持單獨(dú)的儲存設(shè)備協(xié)議的儲存控制器接口。
在所描述的實(shí)施方案中,每個協(xié)議引擎,例如34a、35a、34b、34c,能夠使用通信協(xié)議和分組傳輸協(xié)議來處理分組,所述通信協(xié)議諸如iSCSI、卸載的LAN、非卸載的LAN,所述分組傳輸協(xié)議例如TCP/IP。在替換的實(shí)施方案中,可以使用不同于TCP/IP的分組傳輸協(xié)議來傳輸實(shí)現(xiàn)其他協(xié)議的分組。
在所描述的實(shí)施方案中,在TCP/IP分組傳輸協(xié)議上運(yùn)行的通信協(xié)議包括iSCSI、卸載的LAN、非卸載的LAN。在替換的實(shí)施方案中,可以包括其他通信協(xié)議,例如光纖信道、SCSI等。
所示出的圖2、3、4、5和6的邏輯示出以某順序發(fā)生的某些事件。在替換的實(shí)施方案中,可以以不同的順序執(zhí)行某些操作,可以修改或移除某些操作。此外,可以向上述邏輯增加步驟,并且仍然符合所描述的實(shí)施方案。此外,這里描述的操作可以順序地發(fā)生,或者某些操作可以并行地處理。此外,操作可以由單個處理單元或分布式處理單元執(zhí)行。
圖7示出圖1中的計(jì)算機(jī)的計(jì)算機(jī)體系結(jié)構(gòu)300的一種實(shí)現(xiàn)。體系結(jié)構(gòu)300可以包括處理器302(例如微處理器)、存儲器304(例如易失性存儲器設(shè)備)和儲存設(shè)備306(例如非易失性儲存設(shè)備,例如磁盤驅(qū)動器、光盤驅(qū)動器、磁帶驅(qū)動器等)。儲存設(shè)備306可以包括內(nèi)部儲存設(shè)備,或附接的或網(wǎng)絡(luò)可訪問的儲存設(shè)備。儲存設(shè)備306中的程序以本領(lǐng)域內(nèi)已知的方式被加載到存儲器304中并被處理器302執(zhí)行。體系結(jié)構(gòu)還包括網(wǎng)絡(luò)卡308,以使能(enable)與諸如以太網(wǎng)、光纖信道仲裁環(huán)路(Fibre Channel Arbitrate Loop)等的網(wǎng)絡(luò)進(jìn)行通信。此外,在某些實(shí)施方案中,體系結(jié)構(gòu)可以包括視頻控制器309,以在顯示監(jiān)視器上呈遞信息,其中視頻控制器309可以被實(shí)現(xiàn)在視頻卡上,或者集成到安裝在主板上的集成電路組件上。如所討論的,網(wǎng)絡(luò)設(shè)備中的一些可以具有多個網(wǎng)絡(luò)卡。輸入設(shè)備310用于向處理器302提供用戶輸入,并且可以包括鍵盤、鼠標(biāo)、手寫筆(pen-stylus)、麥克風(fēng)、觸敏顯示屏或任何其他本領(lǐng)域內(nèi)已知的激活或輸入機(jī)制。輸出設(shè)備312能夠呈遞傳輸自處理器302或諸如顯示監(jiān)視器、打印機(jī)、儲存設(shè)備等的其他組件的信息。
網(wǎng)絡(luò)適配器12可以被實(shí)現(xiàn)在諸如外設(shè)部件互連(PCI)卡或一些其他I/O卡的網(wǎng)絡(luò)卡上,或者可以被實(shí)現(xiàn)到安裝在主板上的集成電路組件上。
出于圖示和描述的目的已給出了對本發(fā)明各種實(shí)施方案的以上描述。這些描述不是要成為窮盡性的,或者將本發(fā)明限制為所公開的精確形式。按照以上教導(dǎo),很多修改和變化都是可能的。本發(fā)明的范圍是要由這一詳細(xì)描述來限定,而是想用所附的權(quán)利要求書來限定。以上說明書、實(shí)施例和數(shù)據(jù)提供了生產(chǎn)和使用本發(fā)明的構(gòu)成的完整描述。由于在不偏離本發(fā)明的精神和范圍的情況下可以實(shí)現(xiàn)本發(fā)明的很多實(shí)施方案,所以本發(fā)明由所附的權(quán)利要求書來限制。
權(quán)利要求
1.一種用于與支持多個設(shè)備的設(shè)備硬件接口的方法,所述方法包括初始化設(shè)備接口驅(qū)動器,以針對操作系統(tǒng)將所述設(shè)備硬件表示為虛擬總線,并且針對所述操作系統(tǒng)將在所述設(shè)備硬件中被支持的每個設(shè)備表示為附接到所述虛擬總線的設(shè)備;初始化所述設(shè)備硬件;訪問所述設(shè)備硬件,以確定被所述設(shè)備硬件支持的設(shè)備;針對被所述設(shè)備硬件支持的每個確定的設(shè)備生成一個設(shè)備對象,其中每個生成的設(shè)備對象針對所述操作系統(tǒng)表示所述確定的設(shè)備;以及向所述操作系統(tǒng)報告所述確定的設(shè)備,其中所述操作系統(tǒng)針對被所述設(shè)備硬件支持的所述被報告的設(shè)備中的每一個加載設(shè)備驅(qū)動器。
2.如權(quán)利要求1所述的方法,還包括向所述操作系統(tǒng)報告所述確定的設(shè)備依賴于所述虛擬總線,其中響應(yīng)于被通知所述確定的設(shè)備和虛擬總線相關(guān),所述操作系統(tǒng)將不移除表示所述虛擬總線的所述設(shè)備接口驅(qū)動器,直到與所述確定的設(shè)備相關(guān)聯(lián)的所述設(shè)備驅(qū)動器被移除。
3.如權(quán)利要求1所述的方法,還包括向所述操作系統(tǒng)報告由所述設(shè)備接口驅(qū)動器表示的所述虛擬總線的功率狀態(tài)不可以被更改,直到表示附接到所述虛擬總線的設(shè)備的所有所述設(shè)備驅(qū)動器使它們的功率狀態(tài)被類似地更改。
4.如權(quán)利要求1所述的方法,其中所述硬件設(shè)備包括網(wǎng)絡(luò)適配器,并且其中在所述網(wǎng)絡(luò)適配器中可獲得的每個設(shè)備支持針對不同通信協(xié)議的協(xié)議引擎。
5.如權(quán)利要求4所述的方法,其中每個協(xié)議引擎根據(jù)通信協(xié)議和網(wǎng)絡(luò)協(xié)議處理分組,其中每個傳送引擎支持不同的通信協(xié)議,但使用相同的網(wǎng)絡(luò)協(xié)議。
6.如權(quán)利要求1所述的方法,還包括從一個設(shè)備驅(qū)動器接收分組;在所述設(shè)備硬件中確定設(shè)備隊(duì)列,所述設(shè)備隊(duì)列針對被與所述設(shè)備驅(qū)動器對應(yīng)的所述設(shè)備硬件支持的所述設(shè)備來排隊(duì)分組;以及將所述接收的分組寫到所述確定的隊(duì)列。
7.如權(quán)利要求1所述的方法,還包括從所述設(shè)備硬件接收關(guān)于一個分組的傳輸?shù)耐ㄖ?;針對所述網(wǎng)絡(luò)適配器中處理過所述分組的所述設(shè)備,確定所述設(shè)備驅(qū)動器;以及將指示從所述設(shè)備硬件接收到所述通知的通知傳輸?shù)剿龃_定的設(shè)備驅(qū)動器。
8.如權(quán)利要求1所述的方法,還包括接收由所述設(shè)備硬件提供的分組的指示;針對被所述網(wǎng)絡(luò)適配器支持的處理過所述提供的分組的所述設(shè)備,確定所述設(shè)備驅(qū)動器;調(diào)用呼叫程序,以使所述確定的設(shè)備驅(qū)動器處理所述提供的分組。
9.如權(quán)利要求1所述的方法,其中所有所述設(shè)備驅(qū)動器通過所述設(shè)備接口驅(qū)動器訪問被所述設(shè)備硬件支持的設(shè)備。
10.如權(quán)利要求1所述的方法,其中被確定為在所述設(shè)備硬件中可獲得的所述設(shè)備包括比被所述設(shè)備硬件支持的所有所述設(shè)備少的設(shè)備。
11.如權(quán)利要求1所述的方法,還包括響應(yīng)于檢測到被所述設(shè)備硬件支持的設(shè)備的配置中的變化,向所述操作系統(tǒng)發(fā)信號通知在所述設(shè)備硬件中可獲得的設(shè)備的所述變化的配置,其中所述操作系統(tǒng)能夠加載或解加載設(shè)備驅(qū)動器,以支持在所述設(shè)備硬件中可獲得的設(shè)備的所述變化的配置。
12.如權(quán)利要求1所述的方法,其中初始化所述設(shè)備硬件、訪問所述設(shè)備硬件以確定被所述設(shè)備硬件支持的設(shè)備、生成所述設(shè)備對象以及向所述操作系統(tǒng)報告所述確定的設(shè)備的所述操作由所述設(shè)備接口驅(qū)動器執(zhí)行。
13.如權(quán)利要求1所述的方法,其中一個設(shè)備包括支持iSCSI協(xié)議和TCP協(xié)議的協(xié)議引擎,其中一個設(shè)備包括支持卸載的LAN協(xié)議的協(xié)議引擎,并且其中一個設(shè)備包括支持非卸載的LAN協(xié)議的協(xié)議引擎。
14.一種系統(tǒng),包括處理器;由所述處理器執(zhí)行的操作系統(tǒng);支持多個設(shè)備的網(wǎng)絡(luò)適配器;設(shè)備接口驅(qū)動器,所述設(shè)備接口驅(qū)動器針對所述操作系統(tǒng)將所述網(wǎng)絡(luò)適配器表示為虛擬總線,并且針對所述操作系統(tǒng)將在所述設(shè)備硬件中被支持的每個設(shè)備表示為附接到所述虛擬總線的設(shè)備,其中,當(dāng)所述處理器執(zhí)行所述設(shè)備接口驅(qū)動器時,被使能為(i)訪問所述網(wǎng)絡(luò)適配器,以確定被所述網(wǎng)絡(luò)適配器支持的設(shè)備;(ii)針對每個確定的被所述網(wǎng)絡(luò)適配器支持的設(shè)備生成一個設(shè)備對象,其中每個生成的設(shè)備對象針對所述操作系統(tǒng)表示所述確定的設(shè)備;以及(iii)向所述操作系統(tǒng)報告所述確定的設(shè)備,其中所述操作系統(tǒng)針對被所述網(wǎng)絡(luò)適配器支持的所述被報告的設(shè)備中的每一個加載設(shè)備驅(qū)動器,并且其中對所述操作系統(tǒng)來說每個確定的設(shè)備被視為附接到所述虛擬總線。
15.如權(quán)利要求14所述的系統(tǒng),其中,當(dāng)所述處理器執(zhí)行所述設(shè)備接口驅(qū)動器時,還被使能為向所述操作系統(tǒng)報告所述確定的設(shè)備依賴于所述虛擬總線,其中響應(yīng)于被通知所述確定的設(shè)備和虛擬總線相關(guān),所述操作系統(tǒng)將不移除表示所述虛擬總線的所述設(shè)備接口驅(qū)動器,直到與所述確定的設(shè)備相關(guān)聯(lián)的所述設(shè)備驅(qū)動器被移除。
16.如權(quán)利要求14所述的系統(tǒng),其中,當(dāng)所述處理器執(zhí)行所述設(shè)備接口驅(qū)動器時,還被使能為向所述操作系統(tǒng)報告由所述設(shè)備接口驅(qū)動器表示的所述虛擬總線的功率狀態(tài)不可以被更改,直到表示附接到所述虛擬總線的設(shè)備的所有所述設(shè)備驅(qū)動器使它們的功率狀態(tài)被類似地更改。
17.如權(quán)利要求14所述的系統(tǒng),其中在所述網(wǎng)絡(luò)適配器中可獲得的每個設(shè)備支持針對不同通信協(xié)議的協(xié)議引擎。
18.如權(quán)利要求17所述的系統(tǒng),其中每個協(xié)議引擎根據(jù)通信協(xié)議處理分組,其中每個協(xié)議引擎支持不同的通信協(xié)議,但使用相同的網(wǎng)絡(luò)協(xié)議。
19.如權(quán)利要求14所述的系統(tǒng),其中,當(dāng)所述處理器執(zhí)行所述設(shè)備接口驅(qū)動器時,還被使能為從一個設(shè)備驅(qū)動器接收分組;在所述網(wǎng)絡(luò)適配器中確定設(shè)備隊(duì)列,所述設(shè)備隊(duì)列針對被與所述設(shè)備驅(qū)動器對應(yīng)的所述設(shè)備硬件支持的所述設(shè)備來排隊(duì)分組;以及將所述接收的分組寫到所述確定的隊(duì)列。
20.如權(quán)利要求14所述的系統(tǒng),其中,當(dāng)所述處理器執(zhí)行所述設(shè)備接口驅(qū)動器時,還被使能為從所述網(wǎng)絡(luò)適配器接收關(guān)于一個分組的傳輸?shù)耐ㄖ?;針對所述網(wǎng)絡(luò)適配器中處理過所述分組的所述設(shè)備,確定所述設(shè)備驅(qū)動器;以及將指示從所述設(shè)備硬件接收到所述通知的通知傳輸?shù)剿龃_定的設(shè)備驅(qū)動器。
21.如權(quán)利要求14所述的系統(tǒng),其中,當(dāng)所述處理器執(zhí)行所述設(shè)備接口驅(qū)動器時,還被使能為接收由所述網(wǎng)絡(luò)適配器提供的分組的指示;針對被所述網(wǎng)絡(luò)適配器支持的處理過所述提供的分組的所述設(shè)備,確定所述設(shè)備驅(qū)動器;調(diào)用呼叫程序,以使所述確定的設(shè)備驅(qū)動器處理所述提供的分組。
22.如權(quán)利要求14所述的系統(tǒng),其中所有所述設(shè)備驅(qū)動器通過所述設(shè)備接口驅(qū)動器訪問被所述網(wǎng)絡(luò)適配器支持的設(shè)備。
23.如權(quán)利要求14所述的系統(tǒng),其中被確定為在所述網(wǎng)絡(luò)適配器中可獲得的所述設(shè)備包括比被所述網(wǎng)絡(luò)適配器支持的所有所述設(shè)備少的設(shè)備。
24.如權(quán)利要求14所述的系統(tǒng),其中,當(dāng)所述處理器執(zhí)行所述設(shè)備接口驅(qū)動器時,還被使能為響應(yīng)于檢測到被所述設(shè)備硬件支持的設(shè)備的配置中的變化,向所述操作系統(tǒng)發(fā)信號通知在所述設(shè)備硬件中可獲得的設(shè)備的所述變化的配置,其中所述操作系統(tǒng)能夠加載或解加載設(shè)備驅(qū)動器,以支持在所述設(shè)備硬件中可獲得的設(shè)備的所述變化的配置。
25.如權(quán)利要求14所述的系統(tǒng),其中一個設(shè)備包括支持iSCSI協(xié)議和TCP協(xié)議的協(xié)議引擎,其中一個設(shè)備包括支持卸載的LAN協(xié)議的協(xié)議引擎,并且其中一個設(shè)備包括支持非卸載的LAN協(xié)議的協(xié)議引擎。
26.一種與網(wǎng)絡(luò)通信的系統(tǒng),包括處理器;由所述處理器執(zhí)行的操作系統(tǒng);支持多個設(shè)備的網(wǎng)絡(luò)適配器;被包括在所述網(wǎng)絡(luò)適配器中的至少一個物理接口,所述至少一個物理接口使能所述設(shè)備和所述網(wǎng)絡(luò)之間的分組通信,其中所述至少一個物理接口能夠與銅線接口;設(shè)備接口驅(qū)動器,所述設(shè)備接口驅(qū)動器針對所述操作系統(tǒng)將所述網(wǎng)絡(luò)適配器表示為虛擬總線,并且針對所述操作系統(tǒng)將在所述設(shè)備硬件中被支持的每個設(shè)備表示為附接到所述虛擬總線的設(shè)備,其中,當(dāng)所述處理器執(zhí)行所述設(shè)備接口驅(qū)動器時,被使能為(i)訪問所述網(wǎng)絡(luò)適配器,以確定被所述網(wǎng)絡(luò)適配器支持的設(shè)備;(ii)針對每個確定的被所述網(wǎng)絡(luò)適配器支持的設(shè)備生成一個設(shè)備對象,其中每個生成的設(shè)備對象針對所述操作系統(tǒng)表示所述確定的設(shè)備;以及(iii)向所述操作系統(tǒng)報告所述確定的設(shè)備,其中所述操作系統(tǒng)針對被所述網(wǎng)絡(luò)適配器支持的所述被報告的設(shè)備中的每一個加載設(shè)備驅(qū)動器,并且其中對所述操作系統(tǒng)來說每個確定的設(shè)備被視為附接到所述虛擬總線。
27.如權(quán)利要求26所述的系統(tǒng),其中,當(dāng)所述處理器執(zhí)行所述設(shè)備接口驅(qū)動器時,還被使能為向所述操作系統(tǒng)報告所述確定的設(shè)備依賴于所述虛擬總線,其中響應(yīng)于被通知所述確定的設(shè)備和虛擬總線相關(guān),所述操作系統(tǒng)將不移除表示所述虛擬總線的所述設(shè)備接口驅(qū)動器,直到與所述確定的設(shè)備相關(guān)聯(lián)的所述設(shè)備驅(qū)動器被移除。
28.一種用于與支持多個設(shè)備的設(shè)備硬件接口的制品,其中所述制品導(dǎo)致操作被執(zhí)行,所述操作包括初始化設(shè)備接口驅(qū)動器,以針對操作系統(tǒng)將所述設(shè)備硬件表示為虛擬總線,并且針對所述操作系統(tǒng)將在所述設(shè)備硬件中被支持的每個設(shè)備表示為附接到所述虛擬總線的設(shè)備;初始化所述設(shè)備硬件;訪問所述設(shè)備硬件,以確定被所述設(shè)備硬件支持的設(shè)備;針對被所述設(shè)備硬件支持的每個確定的設(shè)備生成一個設(shè)備對象,其中每個生成的設(shè)備對象針對所述操作系統(tǒng)表示所述確定的設(shè)備;以及向所述操作系統(tǒng)報告所述確定的設(shè)備,其中所述操作系統(tǒng)針對被所述設(shè)備硬件支持的所述被報告的設(shè)備中的每一個加載設(shè)備驅(qū)動器。
29.如權(quán)利要求28所述的制品,其中所述操作還包括向所述操作系統(tǒng)報告所述確定的設(shè)備依賴于所述虛擬總線,其中響應(yīng)于被通知所述確定的設(shè)備和虛擬總線相關(guān),所述操作系統(tǒng)將不移除表示所述虛擬總線的所述設(shè)備接口驅(qū)動器,直到與所述確定的設(shè)備相關(guān)聯(lián)的所述設(shè)備驅(qū)動器被移除。
30.如權(quán)利要求28所述的制品,其中所述操作還包括向所述操作系統(tǒng)報告由所述設(shè)備接口驅(qū)動器表示的所述虛擬總線的功率狀態(tài)不可以被更改,直到表示附接到所述虛擬總線的設(shè)備的所有所述設(shè)備驅(qū)動器使它們的功率狀態(tài)被類似地更改。
31.如權(quán)利要求28所述的制品,其中所述硬件設(shè)備包括網(wǎng)絡(luò)適配器,并且其中在所述網(wǎng)絡(luò)適配器中可獲得的每個設(shè)備支持針對不同通信協(xié)議的協(xié)議引擎。
32.如權(quán)利要求31所述的制品,其中每個協(xié)議引擎根據(jù)通信協(xié)議和網(wǎng)絡(luò)協(xié)議處理分組,其中每個傳送引擎支持不同的通信協(xié)議,但使用相同的網(wǎng)絡(luò)協(xié)議。
33.如權(quán)利要求28所述的制品,其中所述操作還包括從一個設(shè)備驅(qū)動器接收分組;在所述設(shè)備硬件中確定設(shè)備隊(duì)列,所述設(shè)備隊(duì)列針對被與所述設(shè)備驅(qū)動器對應(yīng)的所述設(shè)備硬件支持的所述設(shè)備來排隊(duì)分組;以及將所述接收的分組寫到所述確定的隊(duì)列。
34.如權(quán)利要求28所述的制品,其中所述操作還包括從所述設(shè)備硬件接收關(guān)于一個分組的傳輸?shù)耐ㄖ?;針對所述網(wǎng)絡(luò)適配器中處理過所述分組的所述設(shè)備,確定所述設(shè)備驅(qū)動器;以及將指示從所述設(shè)備硬件接收到所述通知的通知傳輸?shù)剿龃_定的設(shè)備驅(qū)動器。
35.如權(quán)利要求28所述的制品,其中所述操作還包括接收由所述設(shè)備硬件提供的分組的指示;針對被所述網(wǎng)絡(luò)適配器支持的處理過所述提供的分組的所述設(shè)備,確定所述設(shè)備驅(qū)動器;調(diào)用呼叫程序,以使所述確定的設(shè)備驅(qū)動器處理所述提供的分組。
36.如權(quán)利要求28所述的制品,其中所有所述設(shè)備驅(qū)動器通過所述設(shè)備接口驅(qū)動器訪問被所述設(shè)備硬件支持的設(shè)備。
37.如權(quán)利要求28所述的制品,其中被確定為在所述設(shè)備硬件中可獲得的所述設(shè)備包括比被所述設(shè)備硬件支持的所有所述設(shè)備少的設(shè)備。
38.如權(quán)利要求28所述的制品,其中所述操作還包括響應(yīng)于檢測到被所述設(shè)備硬件支持的設(shè)備的配置中的變化,向所述操作系統(tǒng)發(fā)信號通知在所述設(shè)備硬件中可獲得的設(shè)備的所述變化的配置,其中所述操作系統(tǒng)能夠加載或解加載設(shè)備驅(qū)動器,以支持在所述設(shè)備硬件中可獲得的設(shè)備的所述變化的配置。
39.如權(quán)利要求28所述的制品,其中初始化所述設(shè)備硬件、訪問所述設(shè)備硬件以確定被所述設(shè)備硬件支持的設(shè)備、生成所述設(shè)備對象以及向所述操作系統(tǒng)報告所述確定的設(shè)備的所述操作由所述設(shè)備接口驅(qū)動器執(zhí)行。
40.如權(quán)利要求281所述的方法,其中一個設(shè)備包括支持iSCSI協(xié)議和TCP協(xié)議的協(xié)議引擎,其中一個設(shè)備包括支持卸載的LAN協(xié)議的協(xié)議引擎,并且其中一個設(shè)備包括支持非卸載的LAN協(xié)議的協(xié)議引擎。
全文摘要
所提供的為用于與支持多個設(shè)備的設(shè)備硬件進(jìn)行接口的方法、系統(tǒng)和程序。設(shè)備接口驅(qū)動器被初始化,以針對操作系統(tǒng)將設(shè)備硬件表示為虛擬總線,并且針對操作系統(tǒng)將在設(shè)備硬件中被支持的每個設(shè)備表示為附接到虛擬總線的設(shè)備。初始化設(shè)備硬件,并且訪問設(shè)備硬件,以確定被設(shè)備硬件支持的設(shè)備。針對被設(shè)備硬件支持的每個確定的設(shè)備生成一個設(shè)備對象,其中每個生成的設(shè)備對象針對操作系統(tǒng)表示確定的設(shè)備。向操作系統(tǒng)報告確定的設(shè)備,其中操作系統(tǒng)針對被設(shè)備硬件支持的被報告的設(shè)備中的每一個加載設(shè)備驅(qū)動器。
文檔編號G06F13/10GK1902585SQ200480040311
公開日2007年1月24日 申請日期2004年11月3日 優(yōu)先權(quán)日2003年11月12日
發(fā)明者拉杰什·薩赫, 阿尼爾·凱沙瓦默西 申請人:英特爾公司