亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

為多層網(wǎng)絡(luò)接口控制器操作傳輸調(diào)度的方法和系統(tǒng)的制作方法

文檔序號(hào):7601575閱讀:126來源:國(guó)知局
專利名稱:為多層網(wǎng)絡(luò)接口控制器操作傳輸調(diào)度的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明的特定實(shí)施例涉及網(wǎng)絡(luò)接口處理。特別地,本發(fā)明的特定實(shí)施例涉及一種為多層網(wǎng)絡(luò)接口控制器(NIC)操作傳輸調(diào)度的方法和系統(tǒng)。
背景技術(shù)
國(guó)際標(biāo)準(zhǔn)化組織(ISO)已經(jīng)建立了開放系統(tǒng)互連(OSI)參考模型。該開放系統(tǒng)互連參考模型提供了一種允許來自不同供應(yīng)商的設(shè)備可進(jìn)行通訊的網(wǎng)絡(luò)設(shè)計(jì)框架。特別地,開放系統(tǒng)互連參考模型將通訊處理組織為七個(gè)相互隔離的、相關(guān)的層序分類。第一層(L1)為物理層,其處理傳送數(shù)據(jù)的物理設(shè)備。第二層(L2)為數(shù)據(jù)鏈路層,其與操作鏈路的過程和協(xié)議相關(guān),包括消息錯(cuò)誤的檢測(cè)和校正。第三層(L3)為網(wǎng)絡(luò)層,其確定數(shù)據(jù)如何在計(jì)算機(jī)間傳輸。第四層(L4)為傳輸層,其定義了網(wǎng)內(nèi)及網(wǎng)間的信息交換以及消息的端到端信息傳輸?shù)囊?guī)則,包括錯(cuò)誤恢復(fù)和流程控制。第五層(L5)為會(huì)話層,其處理對(duì)話管理和控制由第四層提供的基本通訊設(shè)備的使用。第六層(L6)為表示層,與數(shù)據(jù)格式、編碼轉(zhuǎn)換及壓縮和解壓縮相關(guān)。第七層(L7)為應(yīng)用層,用于特定應(yīng)用服務(wù),如文件傳輸、遠(yuǎn)端文件訪問和虛擬終端。
在某些通訊系統(tǒng)中,網(wǎng)絡(luò)接口控制器(NIC)需為可運(yùn)行卸載(offload)的多個(gè)不同級(jí)的主機(jī)系統(tǒng)提供多個(gè)接口。該主機(jī)系統(tǒng)接口可包括保留的L2服務(wù),傳輸級(jí)的L4服務(wù),或會(huì)話級(jí)的L5服務(wù)。對(duì)于保留的L2服務(wù),網(wǎng)絡(luò)接口控制器提供較低量的卸載,其中來自系統(tǒng)的預(yù)格式化數(shù)據(jù)包被從系統(tǒng)中簡(jiǎn)單地讀取及傳輸。對(duì)于傳輸級(jí)的L4服務(wù),網(wǎng)絡(luò)接口控制器通過連接基線在連接上提供可靠的數(shù)據(jù)傳輸服務(wù)。該類卸載的一個(gè)普通工具包括TCP/IP卸載。對(duì)于會(huì)話級(jí)的L5服務(wù),網(wǎng)絡(luò)接口控制器提供高級(jí)協(xié)議的L5服務(wù),在此網(wǎng)絡(luò)接口控制器提供協(xié)議特殊服務(wù),如摘要或報(bào)頭壓縮/解壓縮,以及使用可靠數(shù)據(jù)傳輸?shù)目缇W(wǎng)協(xié)議特殊或普通緩沖到緩沖復(fù)制服務(wù)。該類卸載的一個(gè)典型的工具為RDMAC協(xié)議或iSCSI協(xié)議。
圖1A為需為運(yùn)行卸載的多個(gè)不同級(jí)的主機(jī)系統(tǒng)提供多個(gè)接口的傳統(tǒng)系統(tǒng)的框圖。參考圖1A,系統(tǒng)100包括操作系統(tǒng)101、L2驅(qū)動(dòng)器103、L4驅(qū)動(dòng)器105、L5驅(qū)動(dòng)器107、L2網(wǎng)絡(luò)接口控制器109、L4網(wǎng)絡(luò)接口控制器111、網(wǎng)絡(luò)接口控制器113、以及外部交換器115。系統(tǒng)100使用操作系統(tǒng)101支持L2、L4和L5類的卸載。操作系統(tǒng)101可為每一類卸載使用單獨(dú)的驅(qū)動(dòng)器和單獨(dú)的NIC。例如,L2類卸載可通過使用L2驅(qū)動(dòng)器103的L2網(wǎng)絡(luò)接口控制器109管理,L4類卸載可通過使用L4驅(qū)動(dòng)器105的L4網(wǎng)絡(luò)接口控制器111管理,L5類卸載可通過使用L5驅(qū)動(dòng)器107的L5網(wǎng)絡(luò)接口控制器113管理。
傳統(tǒng)系統(tǒng)100是多支持環(huán)境,其中每一卸載層協(xié)議運(yùn)行于單獨(dú)的網(wǎng)絡(luò)接口控制器或主機(jī)總線適配器(HBA)。由于每一卸載層協(xié)議運(yùn)行于獨(dú)立的網(wǎng)絡(luò)接口控制器,因此幾乎無需管理不同服務(wù)級(jí)間的傳輸帶寬。每一網(wǎng)絡(luò)接口管理器具有其自己到網(wǎng)絡(luò)的獨(dú)立連接。例如,通常會(huì)出現(xiàn)L2網(wǎng)絡(luò)接口控制器109、L4網(wǎng)絡(luò)接口控制器111、L5網(wǎng)絡(luò)接口控制器113中的某些或所有協(xié)議被同時(shí)傳輸。在這點(diǎn)上,并且當(dāng)所有網(wǎng)絡(luò)接口控制器在同一網(wǎng)絡(luò)(如以太網(wǎng))傳輸且網(wǎng)絡(luò)將所有上述數(shù)據(jù)類型從多個(gè)網(wǎng)絡(luò)接口控制器傳輸?shù)侥康牡貢r(shí),該方案可使用一個(gè)單一的外部交換器以合并通訊到每一數(shù)據(jù)包基礎(chǔ)(直接到達(dá)或源和目的間的某處)。該方案中的每一網(wǎng)絡(luò)接口控制器可能不考慮連接網(wǎng)絡(luò)接口控制器設(shè)備的通訊需求。因此,如果所有三個(gè)網(wǎng)絡(luò)接口控制器設(shè)備在一個(gè)較設(shè)計(jì)出口端口大的結(jié)合率傳輸,則在交換器115上指向目的地,數(shù)據(jù)可能積聚在交換器內(nèi),并且來自兩個(gè)或更多網(wǎng)絡(luò)接口控制器設(shè)備的數(shù)據(jù)包可能被延遲甚至丟棄,而不管協(xié)議的類型、連接的優(yōu)先級(jí)特征或協(xié)議元素類型。此外,系統(tǒng)內(nèi)外的能量消耗、冷卻、和/或部件消耗可能相當(dāng)大。
由于所有L4及上述卸載必須調(diào)整多個(gè)不同連接間的傳輸帶寬,可能出現(xiàn)第二個(gè)問題。具有較小量傳輸數(shù)據(jù)的等待時(shí)間敏感的連接,可能必須等待,直到在小數(shù)據(jù)量的連接被允許傳輸前更忙的連接空閑。此外,忙連接可能操作較長(zhǎng)周期,而具有較少量通訊的小連接不允許被傳輸,直到忙連接空閑。這種情況可能出現(xiàn),因?yàn)橄到y(tǒng)性能通常對(duì)高帶寬連接吞吐量敏感,而等待時(shí)間對(duì)于具有小量通訊的連接較重要,或者因?yàn)橄到y(tǒng)可能具有傳送連接的所有數(shù)據(jù)或每一連接的很大塊數(shù)據(jù)的策略。
另外,現(xiàn)在的卸載網(wǎng)絡(luò)接口控制器可能較以前的傳輸數(shù)據(jù)更快。該加速的問題是,關(guān)于接收網(wǎng)絡(luò)控制器的緩沖器狀態(tài),保持加速的網(wǎng)絡(luò)接口控制器發(fā)送器的更新變得更加重要。對(duì)于TCP協(xié)議,例如,當(dāng)網(wǎng)絡(luò)速度加快時(shí),接收器窗口的大小往往通過配置或其他擴(kuò)大。因此,接收器必須提供接收數(shù)據(jù)的緩沖到TCP傳送窗口的大小。這可能需要卸載網(wǎng)絡(luò)接口控制器以及接收器的主機(jī)更多的存儲(chǔ)量,以獲得較高的吞吐率。
圖1B示出了圖1A系統(tǒng)的傳輸行為特征。參考圖1B,示出了A連接121、B連接123以及當(dāng)使用外部交換器時(shí)連接121和123的傳輸行為125。A連接121可具有偶爾傳輸?shù)纳倭繑?shù)據(jù),而B連接123具有大量的傳輸數(shù)據(jù)。在圖1A的傳統(tǒng)系統(tǒng)100中,當(dāng)使用外部交換器以在A連接121與B連接123間交換時(shí),傳輸行為125與傳輸模式(pattern)相對(duì)應(yīng)。由于B連接123的大量數(shù)據(jù)傳輸可被分為單個(gè)的數(shù)據(jù)包,可使用諸如圖1A中的傳統(tǒng)系統(tǒng)100中交換器的交換器,以限制由于A連接121產(chǎn)生的延遲。在這點(diǎn)上,封裝的數(shù)據(jù)流在被獨(dú)立的網(wǎng)絡(luò)接口控制器封裝后被合并。
圖1C示出了圖1A中的系統(tǒng)的數(shù)據(jù)傳輸和確認(rèn)接收行為特征。參考圖1C,傳輸數(shù)據(jù)業(yè)務(wù)(traffic)可由傳輸連接131、137、143表示。相關(guān)接收器確認(rèn)可由連接133、139和145表示。每一傳輸數(shù)據(jù)連接131、137及143的帶寬窗口大小可分別由帶寬窗口大小135、141和147表示。關(guān)于三個(gè)連接131、137和143中的每一個(gè),發(fā)送器必須具有“信用(credit)”以傳輸數(shù)據(jù)包。該信用可等于接收器的接收數(shù)據(jù)信息的專用連接的存儲(chǔ)器量??捎玫男庞昧渴侵窽CP中的“窗口大小”。發(fā)送器向上傳輸可用信用,但然后必須等待來自接收器的確認(rèn),所述接收器可在繼續(xù)前恢復(fù)一些信用等級(jí)。接收器可用于為那些被發(fā)送確認(rèn)133、139和145正確接收和/或處理的數(shù)據(jù)恢復(fù)信用。
第一組傳輸數(shù)據(jù)連接131和接收確認(rèn)133描述了傳統(tǒng)速度的行為。接收器迅速地生成關(guān)于每?jī)蓚€(gè)數(shù)據(jù)包的確認(rèn)133,并可在一大數(shù)據(jù)包時(shí)間內(nèi)傳達(dá)該確認(rèn)。結(jié)果,可被用于接收完整帶寬的最小可能帶寬窗口大小135可被較好地控制。第二組傳輸數(shù)據(jù)連接137和接收確認(rèn)139描述了當(dāng)網(wǎng)絡(luò)通訊較快時(shí)的數(shù)據(jù)包處理行為,其與第一組傳輸-接收對(duì)的范圍不同。該例中的接收器迅速地生成確認(rèn),然而生成確認(rèn)需花費(fèi)比以前的網(wǎng)絡(luò)更多的時(shí)間。在相同量的時(shí)間內(nèi),更多的數(shù)據(jù)可被傳輸,因此接收器需配置更大的窗口,該窗口要比最小可能帶寬窗口141大,以實(shí)現(xiàn)完整帶寬。為了實(shí)現(xiàn)完整帶寬,可配置窗口大小為增加的大小,其可等于或大于最小可能帶寬窗口141。增加的窗口大小消耗更多的接收器存儲(chǔ)空間。然而,增加的窗口大小可被用于補(bǔ)償網(wǎng)絡(luò)等待時(shí)間以及實(shí)現(xiàn)帶寬。
第三組傳輸數(shù)據(jù)連接143和接收確認(rèn)145描述了當(dāng)接收器的發(fā)送器為弱TX調(diào)度行為時(shí)的數(shù)據(jù)包處理行為。在該情況下,去而那145由于等待諸如其他連接的傳輸而被延遲,并隨后顯示為一個(gè)群組。因此,需要最小帶寬窗口大小147實(shí)現(xiàn)完整帶寬,其可被進(jìn)一步填充和明顯增大。如果窗口大小不被調(diào)整以匹配或超過新的最小帶寬窗口147,發(fā)送器可能“結(jié)巴(stutter)”或全部停止,等待來自接收器的更多ACK(確認(rèn))。由于對(duì)于任何一個(gè)連接的窗口大小通常是固定的,因此可預(yù)知的ACK傳輸行為以保持窗口大小需求為最小和維持完整可能帶寬是重要的。進(jìn)一步地,如果窗口大小限制在完整帶寬的最小需要大小以下,連接的可能帶寬可能減小。因此,任何產(chǎn)生ACK數(shù)據(jù)包的附加延遲可能進(jìn)一步減少連接帶寬。
通過對(duì)比即將結(jié)合附圖描述的本發(fā)明的系統(tǒng),本技術(shù)領(lǐng)域的人員將了解常規(guī)和傳統(tǒng)方法的進(jìn)一步的局限及缺點(diǎn)。

發(fā)明內(nèi)容
本發(fā)明設(shè)計(jì)一種為網(wǎng)絡(luò)接口控制器(NIC)應(yīng)用傳輸數(shù)據(jù)的方法和系統(tǒng)。該方法包括收集多個(gè)傳輸(TX)緩沖器指示器,每一TX緩沖器指示器識(shí)別與至少一個(gè)特定連接優(yōu)先特性及特定連接類型相關(guān)的傳輸就緒數(shù)據(jù)。可選擇一個(gè)TX緩沖器指示器,且與該選擇的TX緩沖器指示器相關(guān)的傳輸就緒數(shù)據(jù)的一部分可被傳輸。特定連接類型可包括第二級(jí)(L2)類型、第四級(jí)(L4)類型、和/或第五級(jí)(L5)類型。如果特定連接類型包括L2類型、L4類型、和/或L5類型,則可使用至少一個(gè)特定連接的優(yōu)先權(quán)特性將多個(gè)TX緩沖器指示器按優(yōu)先次序列入連接優(yōu)先權(quán)列表。該連接優(yōu)先權(quán)列表可根據(jù)至少一個(gè)連接優(yōu)先權(quán)特性區(qū)分優(yōu)先次序。
所述連接優(yōu)先權(quán)列表用于增加TCP或其他傳送或會(huì)話層、確認(rèn)(ACK)消息和/或協(xié)議要素的傳輸優(yōu)先權(quán)。所述連接優(yōu)先權(quán)列表用于限制特定業(yè)務(wù)類和/或協(xié)議要素的傳輸帶寬??赏ㄟ^加權(quán)輪轉(zhuǎn)調(diào)度(Weighted Round-RobinScheme)選擇一個(gè)或多個(gè)TX緩沖器指示器。一個(gè)或多個(gè)TX緩沖器指示器可與環(huán)境信息相關(guān)聯(lián)。所述連接優(yōu)先權(quán)列表可用于保證到一類業(yè)務(wù)、連接、和/或協(xié)議要素的低等待時(shí)間傳輸。所述環(huán)境信息包括TX ACK擴(kuò)充要求和/或最大傳輸就緒數(shù)據(jù)長(zhǎng)度。如果傳輸就緒數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度較最大傳輸就緒數(shù)據(jù)的長(zhǎng)度大,則傳輸就緒數(shù)據(jù)被分割為多個(gè)傳輸就緒數(shù)據(jù)片段,其中每一傳輸就緒數(shù)據(jù)片段比最大傳輸就緒數(shù)據(jù)的長(zhǎng)度小。特定連接類型的傳輸就緒數(shù)據(jù)片段可被傳輸。一個(gè)或多個(gè)傳輸就緒數(shù)據(jù)片段可被來自與至少一個(gè)特定連接優(yōu)先權(quán)特性及特定連接類型相關(guān)的連接的傳輸就緒數(shù)據(jù)分隔。
此外,本發(fā)明的另一實(shí)例中,一個(gè)或多個(gè)類型的一個(gè)或多個(gè)活動(dòng)數(shù)據(jù)連接在網(wǎng)絡(luò)接口控制器上被跟蹤??蛇x擇其中一個(gè)活動(dòng)連接進(jìn)行處理??稍谥辽僖粋€(gè)傳輸處理塊中處理所述選擇的活動(dòng)數(shù)據(jù),其中所述傳輸處理塊可處理所述多個(gè)活動(dòng)數(shù)據(jù)連接以生成來自網(wǎng)絡(luò)接口控制器的傳輸數(shù)據(jù)流??蔀橹辽賰蓚€(gè)傳輸處理塊選擇數(shù)據(jù)流,以生成來自網(wǎng)絡(luò)接口控制器的至少一個(gè)傳輸數(shù)據(jù)流。傳輸判斷系統(tǒng)可與傳輸處理塊的至少一部分結(jié)合,其中可在傳輸處理塊中至少部分地確定連接傳輸處理指令。
本發(fā)明還提供一種機(jī)器可讀存儲(chǔ)器,其上存儲(chǔ)具有至少一段可由機(jī)器執(zhí)行的代碼段的計(jì)算機(jī)程序,從而使機(jī)器可執(zhí)行上述預(yù)定的步驟以從網(wǎng)絡(luò)接口控制器應(yīng)用傳輸數(shù)據(jù)。
本發(fā)明的為網(wǎng)絡(luò)接口控制器(NIC)應(yīng)用傳輸數(shù)據(jù)的系統(tǒng)包括至少一個(gè)收集傳輸(TX)緩沖器指示器的處理器,每一TX緩沖器指示器識(shí)別與至少一個(gè)特定連接優(yōu)先特性和/或特定連接類型相關(guān)的傳輸就緒數(shù)據(jù)??赏ㄟ^所述處理器選擇TX緩沖器指示器。與選擇的TX緩沖器指示器相關(guān)的傳輸就緒數(shù)據(jù)的一部分可通過處理器傳輸。所述特定連接類型包括第二級(jí)(L2)類型、第四級(jí)(L4)類型、和/或第五級(jí)(L5)類型。如果特定連接類型包括L2類型、L4類型、和/或L5類型,則可通過處理器使用至少一個(gè)特定連接的優(yōu)先權(quán)特性將多個(gè)TX緩沖器指示器按優(yōu)先次序列入連接優(yōu)先權(quán)列表。
可根據(jù)至少一個(gè)連接優(yōu)先權(quán)特性使用所述處理器將所述連接優(yōu)先權(quán)列表區(qū)分優(yōu)先次序。所述連接優(yōu)先權(quán)列表用于增加確認(rèn)(ACK)消息、協(xié)議要素的傳輸優(yōu)先權(quán),和/或保證特定連接上的低等待時(shí)間業(yè)務(wù)。所述連接優(yōu)先權(quán)列表可用于限制特定業(yè)務(wù)類和/或協(xié)議要素的傳輸帶寬??赏ㄟ^加權(quán)輪轉(zhuǎn)調(diào)度選擇TX緩沖器指示器。所述連接優(yōu)先權(quán)列表可用于保證到一類業(yè)務(wù)、連接、和/或協(xié)議要素的低等待時(shí)間傳輸。所述環(huán)境信息包括TX ACK擴(kuò)充要求和/或最大傳輸就緒數(shù)據(jù)長(zhǎng)度。
如果傳輸就緒數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度較最大傳輸就緒數(shù)據(jù)的長(zhǎng)度大,則傳輸就緒數(shù)據(jù)被處理器分割為多個(gè)傳輸就緒數(shù)據(jù)片段,其中每一傳輸就緒數(shù)據(jù)片段比最大傳輸就緒數(shù)據(jù)的長(zhǎng)度小。特定連接類型的傳輸就緒數(shù)據(jù)片段可通過處理器被傳輸。一個(gè)或多個(gè)傳輸就緒數(shù)據(jù)片段可被來自連接的傳輸就緒數(shù)據(jù)分隔為不同優(yōu)先權(quán)級(jí)的組。
本發(fā)明提供一種為網(wǎng)絡(luò)接口控制器應(yīng)用傳輸數(shù)據(jù)的方法,包括收集多個(gè)傳輸(TX)緩沖器指示器,每一TX緩沖器指示器識(shí)別與至少一個(gè)特定連接優(yōu)先特性及特定連接類型相關(guān)的傳輸就緒數(shù)據(jù);選擇所述多個(gè)TX緩沖器指示器中的至少一個(gè);以及傳輸所述與選擇的多個(gè)TX緩沖器控制器中的至少一個(gè)相關(guān)的傳輸就緒數(shù)據(jù)的一部分。
優(yōu)選地,所述特定連接類型包括第二級(jí)(L2)類型、第四級(jí)(L4)類型、和第五級(jí)(L5)類型中的至少一個(gè)。
優(yōu)選地,所述方法還包括,如果特定連接類型包括L2類型、L4類型、或L5類型,則可使用至少一個(gè)特定連接的優(yōu)先權(quán)特性將多個(gè)TX緩沖器指示器按優(yōu)先次序列入連接優(yōu)先權(quán)列表。
優(yōu)選地,所述方法還包括根據(jù)至少一個(gè)連接優(yōu)先權(quán)特性列出連接優(yōu)先權(quán)列表。
優(yōu)選地,所述連接優(yōu)先權(quán)列表用于增加TCP確認(rèn)(ACK)消息、會(huì)話層確認(rèn)消息和/或協(xié)議要素中的至少一個(gè)的傳輸優(yōu)先權(quán)。
優(yōu)選地,所述連接優(yōu)先權(quán)列表用于限制特定業(yè)務(wù)類或協(xié)議要素中的至少一個(gè)的傳輸帶寬。
優(yōu)選地,至少一個(gè)TX緩沖器指示器通過加權(quán)輪轉(zhuǎn)調(diào)度被選擇。
優(yōu)選地,所述方法還包括將所述多個(gè)TX緩沖器指示器中的至少一個(gè)與至少一個(gè)環(huán)境信息相關(guān)聯(lián)。
優(yōu)選地,所述連接優(yōu)先權(quán)列表用于保證到一類業(yè)務(wù)、連接、和協(xié)議要素中的至少一個(gè)的低等待時(shí)間傳輸。
優(yōu)選地,所述至少一個(gè)環(huán)境信息包括TX ACK擴(kuò)充要求和最大傳輸就緒數(shù)據(jù)長(zhǎng)度中的一個(gè)。
優(yōu)選地,所述方法還包括,如果傳輸就緒數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度較最大傳輸就緒數(shù)據(jù)的長(zhǎng)度大,則將傳輸就緒數(shù)據(jù)分割為多個(gè)傳輸就緒數(shù)據(jù)片段,每一傳輸就緒數(shù)據(jù)片段比最大傳輸就緒數(shù)據(jù)的長(zhǎng)度小。
優(yōu)選地,所述方法還包括傳輸特定連接類型的所述多個(gè)傳輸就緒數(shù)據(jù)片段。
優(yōu)選地,多個(gè)傳輸就緒數(shù)據(jù)片段的至少一部分被來自與至少一個(gè)特定連接優(yōu)先權(quán)特性及特定連接類型相關(guān)的連接的傳輸就緒數(shù)據(jù)分隔。
本發(fā)明還提供了一種從網(wǎng)絡(luò)接口控制器傳輸數(shù)據(jù)的方法,所述方法包括跟蹤網(wǎng)絡(luò)接口控制器上的多個(gè)類型的連接的多個(gè)活動(dòng)數(shù)據(jù)連接;選擇所述多個(gè)活動(dòng)連接中的至少一個(gè)進(jìn)行處理;在至少一個(gè)傳輸處理塊中處理所述選擇的活動(dòng)數(shù)據(jù);其中所述至少一個(gè)傳輸處理塊可處理所述多個(gè)活動(dòng)數(shù)據(jù)連接以生成來自網(wǎng)絡(luò)接口控制器的傳輸數(shù)據(jù)流。
優(yōu)選地,為至少兩個(gè)傳輸處理塊選擇至少一個(gè)數(shù)據(jù)流,以生成來自網(wǎng)絡(luò)接口控制器的至少一個(gè)傳輸數(shù)據(jù)流。
優(yōu)選地,所述方法還包括將傳輸判斷系統(tǒng)與至少一個(gè)傳輸處理塊的至少一部分結(jié)合,其中在所述至少一個(gè)傳輸處理塊中至少部分地確定至少一個(gè)連接傳輸處理指令。
本發(fā)明還提供一種機(jī)器可讀存儲(chǔ)器,其上存儲(chǔ)具有至少一段可由機(jī)器執(zhí)行以為網(wǎng)絡(luò)接口控制器應(yīng)用傳輸數(shù)據(jù)的代碼段的計(jì)算機(jī)程序,所述至少一段代碼段可被機(jī)器執(zhí)行以使機(jī)器執(zhí)行步驟,包括收集多個(gè)傳輸(TX)緩沖器指示器,每一TX緩沖器指示器識(shí)別與至少一個(gè)特定連接優(yōu)先特性及特定連接類型相關(guān)的傳輸就緒數(shù)據(jù);選擇所述多個(gè)TX緩沖器指示器中的至少一個(gè);以及傳輸所述與選擇的多個(gè)TX緩沖器控制器中的至少一個(gè)相關(guān)的傳輸就緒數(shù)據(jù)的一部分。
優(yōu)選地,所述特定連接類型包括第二級(jí)(L2)類型、第四級(jí)(L4)類型、和第五級(jí)(L5)類型中的至少一個(gè)。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器還包括如果特定連接類型包括L2類型、L4類型、或L5類型,使用至少一個(gè)特定連接的優(yōu)先權(quán)特性將多個(gè)TX緩沖器指示器按優(yōu)先次序列入連接優(yōu)先權(quán)列表的代碼。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器還包括根據(jù)至少一個(gè)連接優(yōu)先權(quán)特性列出連接優(yōu)先權(quán)列表的代碼。
優(yōu)選地,所述連接優(yōu)先權(quán)列表用于增加TCP確認(rèn)(ACK)消息、會(huì)話層確認(rèn)消息和/或協(xié)議要素中的至少一個(gè)的傳輸優(yōu)先權(quán)。
優(yōu)選地,所述連接優(yōu)先權(quán)列表用于限制特定業(yè)務(wù)類或協(xié)議要素中的至少一個(gè)的傳輸帶寬。
優(yōu)選地,多個(gè)TX緩沖器指示器中的至少一個(gè)通過加權(quán)輪轉(zhuǎn)調(diào)度被選擇。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器還包括將所述多個(gè)TX緩沖器指示器中的至少一個(gè)與至少一個(gè)環(huán)境信息相關(guān)聯(lián)地代碼。
優(yōu)選地,所述連接優(yōu)先權(quán)列表用于保證到一類業(yè)務(wù)、連接、和協(xié)議要素中的至少一個(gè)的低等待時(shí)間傳輸。
優(yōu)選地,所述至少一個(gè)環(huán)境信息包括TX ACK擴(kuò)充要求和最大傳輸就緒數(shù)據(jù)長(zhǎng)度中的一個(gè)。
優(yōu)選地,所述機(jī)器可讀存儲(chǔ)器還包括,如果傳輸就緒數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度較最大傳輸就緒數(shù)據(jù)的長(zhǎng)度大,則將傳輸就緒數(shù)據(jù)分割為多個(gè)傳輸就緒數(shù)據(jù)片段的代碼,其中每一傳輸就緒數(shù)據(jù)片段比最大傳輸就緒數(shù)據(jù)的長(zhǎng)度小。
優(yōu)選地,所述機(jī)器可讀代碼段還包括傳輸特定連接類型的所述多個(gè)傳輸就緒數(shù)據(jù)片段的步驟。
優(yōu)選地,多個(gè)傳輸就緒數(shù)據(jù)片段的至少一部分被來自與至少一個(gè)特定連接優(yōu)先權(quán)特性及特定連接類型相關(guān)的連接的傳輸就緒數(shù)據(jù)分隔。
本發(fā)明還提供一種為網(wǎng)絡(luò)接口控制器應(yīng)用傳輸數(shù)據(jù)的系統(tǒng),包括至少一個(gè)收集傳輸(TX)緩沖器指示器的處理器,每一TX緩沖器指示器識(shí)別與至少一個(gè)特定連接優(yōu)先特性和/或特定連接類型相關(guān)的傳輸就緒數(shù)據(jù);所述至少一個(gè)處理器選擇多個(gè)TX緩沖器指示器中的至少一個(gè);以及所述至少一個(gè)處理器傳輸與選擇的多個(gè)TX緩沖器指示器中的至少一個(gè)相關(guān)聯(lián)的傳輸就緒數(shù)據(jù)的至少一部分。
優(yōu)選地,所述特定連接類型包括第二級(jí)(L2)類型、第四級(jí)(L4)類型、和第五級(jí)(L5)類型中的至少一個(gè)。
優(yōu)選地,如果特定連接類型包括L2類型、L4類型、和/或L5類型,則可通過處理器,所述至少一個(gè)處理器使用至少一個(gè)特定連接的優(yōu)先權(quán)特性將多個(gè)TX緩沖器指示器按優(yōu)先次序列入連接優(yōu)先權(quán)列表。
優(yōu)選地,所述至少一個(gè)處理器根據(jù)至少一個(gè)連接優(yōu)先權(quán)特性實(shí)現(xiàn)所述連接優(yōu)先權(quán)列表。
優(yōu)選地,所述連接優(yōu)先權(quán)列表用于增加傳輸確認(rèn)(ACK)消息和協(xié)議要素中的至少一個(gè)的傳輸優(yōu)先權(quán)。
優(yōu)選地,所述連接優(yōu)先權(quán)列表用于限制特定業(yè)務(wù)類或協(xié)議要素中的至少一個(gè)的傳輸帶寬。
優(yōu)選地,至少一個(gè)TX緩沖器指示器通過加權(quán)輪轉(zhuǎn)調(diào)度被選擇。
優(yōu)選地,所述至少一個(gè)處理器將所述多個(gè)TX緩沖器指示器中的至少一個(gè)與至少一個(gè)環(huán)境信息相關(guān)聯(lián)。
優(yōu)選地,所述連接優(yōu)先權(quán)列表用于保證到一類業(yè)務(wù)、連接、和協(xié)議要素中的至少一個(gè)的低等待時(shí)間傳輸。
優(yōu)選地,所述至少一個(gè)環(huán)境信息包括TX ACK擴(kuò)充要求和最大傳輸就緒數(shù)據(jù)長(zhǎng)度中的一個(gè)。
優(yōu)選地,如果傳輸就緒數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度較最大傳輸就緒數(shù)據(jù)的長(zhǎng)度大,所述至少一個(gè)處理器將傳輸就緒數(shù)據(jù)分割為多個(gè)傳輸就緒數(shù)據(jù)片段,每一傳輸就緒數(shù)據(jù)片段比最大傳輸就緒數(shù)據(jù)的長(zhǎng)度小。
優(yōu)選地,所述至少一個(gè)處理器傳輸特定連接類型的所述多個(gè)傳輸就緒數(shù)據(jù)片段。
優(yōu)選地,所處多個(gè)傳輸就緒數(shù)據(jù)片段被來自連接的傳輸就緒數(shù)據(jù)分隔為不同優(yōu)先權(quán)級(jí)的組。
本發(fā)明的這些以及其他優(yōu)點(diǎn)、方面和新特征,以及相應(yīng)的例示實(shí)施例的細(xì)節(jié),將在以下的描述和附圖中更全面的理解。


圖1A為需支持到主機(jī)系統(tǒng)的多接口的常規(guī)系統(tǒng)的框圖,所述主機(jī)系統(tǒng)上運(yùn)行有卸載的多個(gè)不同級(jí);圖1B為描述圖1A中系統(tǒng)的傳輸行為特性的圖;圖1C為描述圖1A中系統(tǒng)的數(shù)據(jù)傳輸和確認(rèn)接收行為特性的圖;圖2為本發(fā)明的具有優(yōu)化的多層網(wǎng)絡(luò)接口控制器設(shè)備的圖,所述設(shè)備用于傳送多層卸載支持到單一網(wǎng)絡(luò)連接;圖3A為本發(fā)明的一個(gè)示例性的具有3路加權(quán)輪轉(zhuǎn)的優(yōu)先權(quán)分配調(diào)度的框圖,所述加權(quán)輪轉(zhuǎn)用于諸如圖2中系統(tǒng)的傳輸調(diào)度程序元素;圖3B為本發(fā)明的一個(gè)示例性的具有N路加權(quán)輪轉(zhuǎn)的優(yōu)先權(quán)分配調(diào)度的框圖,所述加權(quán)輪轉(zhuǎn)用于諸如圖2中系統(tǒng)的傳輸調(diào)度程序元素;圖4為本發(fā)明的描述圖2中系統(tǒng)的傳輸行為特性的框圖;圖5為本發(fā)明的描述為多層網(wǎng)絡(luò)接口控制器操作傳輸調(diào)度的方法的流程圖;圖6為本發(fā)明的一個(gè)示例性系統(tǒng)的框圖,該系統(tǒng)用于為多層網(wǎng)絡(luò)接口控制器操作傳輸調(diào)度。
具體實(shí)施例方式
本發(fā)明提供一種為多層網(wǎng)絡(luò)接口控制器(NIC)操作傳輸調(diào)度的方法和系統(tǒng)。在本發(fā)明的一個(gè)實(shí)施例中,可生成傳輸(TX)緩沖器指示器,其中每一個(gè)可識(shí)別第二級(jí)(L2)類型、第四級(jí)(L4)類型、和/或第五級(jí)(L5)類型的傳輸就緒數(shù)據(jù)。傳輸緩沖器指示器可從驅(qū)動(dòng)器被傳送到網(wǎng)絡(luò)接口控制器,以指示傳輸就緒數(shù)據(jù)。每一傳輸緩沖器指示器包括傳輸?shù)臄?shù)據(jù)范圍以及包括傳輸操作的直接或關(guān)聯(lián)的優(yōu)先權(quán)特性??蓪鬏斁彌_器指示器分類并存儲(chǔ)到多個(gè)基于優(yōu)先權(quán)特性的優(yōu)先權(quán)組中??筛鶕?jù)TCP或其他傳輸或會(huì)話層確認(rèn)(ACK)消息、和/或協(xié)議元素配置優(yōu)先權(quán)特性??苫谥T如低等待時(shí)間或高優(yōu)先權(quán)(如IEEE802.1P或IP TOS位)的連接請(qǐng)求配置優(yōu)先權(quán)特性,或者根據(jù)來自操作系統(tǒng)或驅(qū)動(dòng)器的指示或使用的配置程序配置優(yōu)先權(quán)特性。可根據(jù)優(yōu)先權(quán)特性選擇傳輸緩沖器指示器,并且與傳輸緩沖器指示器相關(guān)的部分或所有傳輸就緒數(shù)據(jù)可被傳輸。在每一優(yōu)先權(quán)級(jí)內(nèi),可使用加權(quán)輪轉(zhuǎn)調(diào)度選擇傳輸緩沖器指示器。
傳輸就緒指示器可與環(huán)境信息相關(guān)聯(lián),比如傳輸ACK消息類型和/或最大傳輸就緒數(shù)據(jù)長(zhǎng)度和/或接收器接收數(shù)據(jù)的能力。如果傳輸就緒數(shù)據(jù)的長(zhǎng)度大于最大傳輸就緒數(shù)據(jù)的長(zhǎng)度,則將傳輸就緒數(shù)據(jù)分割位傳輸就緒數(shù)據(jù)片段,從而每一傳輸就緒數(shù)據(jù)片段小于最大傳輸就緒數(shù)據(jù)的長(zhǎng)度。將特定連接的傳輸就緒數(shù)據(jù)片段依次傳輸,或者在傳輸過程中通過傳輸就緒數(shù)據(jù)或片段分為不同傳輸類型。該分割為本發(fā)明的一部分,而與TCP或其他協(xié)議需要的數(shù)據(jù)包分割請(qǐng)求無關(guān)。
圖2為本發(fā)明的具有優(yōu)化的多層網(wǎng)絡(luò)接口控制器設(shè)備的系統(tǒng)200的示意圖,該系統(tǒng)用于傳輸多層卸載支持到單一連接。參考圖2,系統(tǒng)200包括操作系統(tǒng)201、多個(gè)L2驅(qū)動(dòng)器203、多個(gè)L4驅(qū)動(dòng)器205、多個(gè)L5驅(qū)動(dòng)器207、多個(gè)遠(yuǎn)程驅(qū)動(dòng)器206以及一個(gè)L2/L4/L5網(wǎng)絡(luò)接口控制器209。網(wǎng)絡(luò)接口控制器209包括傳輸調(diào)度程序201和傳輸處理部分211。在本發(fā)明的一個(gè)示例性方面,傳輸出落里部分211包括多個(gè)傳輸處理部分。系統(tǒng)200可使用操作系統(tǒng)201以支持L2、L4及L5類的卸載。操作系統(tǒng)201可為每一類卸載分別使用L2驅(qū)動(dòng)器203、L4驅(qū)動(dòng)器205及L5驅(qū)動(dòng)器207。單一的網(wǎng)絡(luò)接口控制器209可使用通用傳輸處理部分211管理所有類的卸載,包括L2、L4、和/或L5類的卸載。
可以較圖1A中描述的現(xiàn)有技術(shù)更為劃算的方式執(zhí)行傳輸處理部分211,其中可為每一卸載類型提供所有數(shù)據(jù)和控制處理帶寬,以處理所有可能的操作系統(tǒng)需要的寄存器。系統(tǒng)200的數(shù)據(jù)和控制處理帶寬可與網(wǎng)絡(luò)連接帶寬匹配,以為多個(gè)傳輸卸載提供完整的網(wǎng)絡(luò)帶寬,或者配置為任意比完整帶寬低的數(shù)據(jù)率,以方便避免網(wǎng)絡(luò)的不同點(diǎn)的擁塞??蔀槿魏芜B接或卸載類型,或整個(gè)網(wǎng)絡(luò)接口控制器實(shí)現(xiàn)該調(diào)整。通過使用傳輸調(diào)度程序210和傳輸處理部分211,系統(tǒng)200中的所有數(shù)據(jù)路徑函數(shù)通常介于不同卸載處理函數(shù)之間,這是應(yīng)為它們不需在同一時(shí)間操作以維持網(wǎng)絡(luò)連接212上的完整帶寬。不被某類卸載使用的傳輸處理部分211中的任一卸載處理能量可被不同卸載使用。操作系統(tǒng)201可為通過非調(diào)制路徑穿過驅(qū)動(dòng)器203、205、和/或207中的每一個(gè)的網(wǎng)絡(luò)接口控制器209上的一個(gè)或多個(gè)卸載加速傳輸任務(wù)。除操作系統(tǒng)傳輸任務(wù)之外,在線網(wǎng)絡(luò)接口控制器驅(qū)動(dòng)器208包括一個(gè)或多個(gè)卸載的加速傳輸任務(wù)。在線網(wǎng)絡(luò)接口控制器驅(qū)動(dòng)器包括用于在線網(wǎng)絡(luò)接口控制器堆棧(例如管理堆棧)的連接,或系統(tǒng)中到其他元素的數(shù)據(jù)連接,例如不被203、205及207覆蓋但由網(wǎng)絡(luò)接口控制器209的不同部分提供的系統(tǒng)管理或卸載級(jí)。在線網(wǎng)絡(luò)接口控制器驅(qū)動(dòng)器可使用適于應(yīng)用的任一級(jí)卸載(L2/L4/L5)。
在本發(fā)明的一個(gè)示例性方面,另一傳輸任務(wù)源包括位于遠(yuǎn)端或來自系統(tǒng)200的不同系統(tǒng)的驅(qū)動(dòng)器。這些遠(yuǎn)程驅(qū)動(dòng)器206使用來自那些由在線系統(tǒng)驅(qū)動(dòng)器203、205、和/或207使用的相似或不同通訊通道,以與傳輸調(diào)度程序210通訊。這些遠(yuǎn)程驅(qū)動(dòng)器可使用任一級(jí)適于應(yīng)用的卸載。通過在線系統(tǒng)驅(qū)動(dòng)器,可使用多個(gè)在線網(wǎng)絡(luò)接口控制器或遠(yuǎn)程驅(qū)動(dòng)器。在本發(fā)明的一個(gè)實(shí)施例中,網(wǎng)絡(luò)接口控制器209包括多層網(wǎng)絡(luò)接口控制器,且可使用一個(gè)或多個(gè)功能以處理接收的多層網(wǎng)絡(luò)接口控制器操作,從而可通過單一傳輸處理部分211在一次一個(gè)(one-at-a-time)或管線基線(pipe-lined basis)上處理傳輸造作??墒褂脗鬏斦{(diào)度程序210定制或調(diào)制來自驅(qū)動(dòng)器203、205、206、207和208的傳輸請(qǐng)求任務(wù)。
在本發(fā)明的一個(gè)示例性方面,不同卸載驅(qū)動(dòng)器203、205、206、207和208請(qǐng)求的傳輸數(shù)據(jù)流可被合并,從而較長(zhǎng)的多數(shù)據(jù)包傳輸請(qǐng)求不再使周期短或單數(shù)據(jù)包傳輸請(qǐng)求缺乏或延遲。在這點(diǎn)上,諸如系統(tǒng)200的多級(jí)工作回存(work-conserving)調(diào)度系統(tǒng)可用于為L(zhǎng)2/L4/L5傳輸處理分配工作。因此,調(diào)度控制器包括以活動(dòng)傳輸需求跟蹤多個(gè)L2/L4/L5卸載連接。第一級(jí)判斷塊包括通過優(yōu)先級(jí)分組的請(qǐng)求的多個(gè)列表,每一列表作為一個(gè)輪轉(zhuǎn)調(diào)度,所述輪轉(zhuǎn)調(diào)度可用于獨(dú)立為每一列表選擇下一傳輸需求。第二級(jí)判斷塊包括工作回存可編程加權(quán)輪轉(zhuǎn)優(yōu)先權(quán)調(diào)度,該調(diào)度可用于在由第一級(jí)優(yōu)先權(quán)調(diào)度選出的傳輸任務(wù)中選擇。第三級(jí)判斷塊用于限制單一傳輸任務(wù)長(zhǎng)度為預(yù)定義量的數(shù)據(jù),從而實(shí)現(xiàn)具有較佳等待時(shí)間的傳輸行為。此外,第三級(jí)判斷塊更新相關(guān)的連接環(huán)境,以反應(yīng)傳輸需求的新狀態(tài)。
實(shí)現(xiàn)本發(fā)明的目的的連接定義了傳輸緩沖器指示的流,其由單一或多個(gè)驅(qū)動(dòng)器實(shí)例(instance)生成。任一驅(qū)動(dòng)器實(shí)例為超過一個(gè)連接生成傳輸緩沖器指示。連接包括諸如由通常操作系統(tǒng)協(xié)議棧(如由L2驅(qū)動(dòng)器提供給網(wǎng)絡(luò)接口控制器的)生成的L2業(yè)務(wù)流。L2連接的傳輸緩沖器指示可參考多個(gè)類型或協(xié)議的數(shù)據(jù)包。多個(gè)L2連接可由驅(qū)動(dòng)器生成,以區(qū)分業(yè)務(wù)傳輸優(yōu)先級(jí)。多個(gè)L2連接可由驅(qū)動(dòng)器生成以區(qū)分主機(jī)CPU,類似多處理操作系統(tǒng)。多個(gè)L2連接還可用于其他原因。另一通用的L2連接業(yè)務(wù)源為網(wǎng)絡(luò)接口控制器、系統(tǒng)或者甚至來自系統(tǒng)的遠(yuǎn)端的管理實(shí)體。
多個(gè)L4連接可由L4驅(qū)動(dòng)器生成,其中每一L4連接包括為諸如TCP卸載的連接的一個(gè)特定卸載的L4連接傳輸緩沖器指示。L4連接通常的源可以是操作系統(tǒng)協(xié)議?;蚱渌T如那些用于存儲(chǔ)的系統(tǒng)協(xié)議棧。L4連接還可由網(wǎng)絡(luò)接口控制器、系統(tǒng)內(nèi)或來自系統(tǒng)遠(yuǎn)端的管理實(shí)體生成。多個(gè)L5連接可由L5驅(qū)動(dòng)器生成,其中每一L5連接包括為特定卸載的L5連接傳輸緩沖器指示,所述特定卸載的L5連接例如RDMA、iSCSI、或其他L5卸載連接。單一驅(qū)動(dòng)器也可生成不同卸載類型的連接。例如,單一驅(qū)動(dòng)器可生成L2、L4、和/或L5卸載類連接,而不需根據(jù)本發(fā)明的系統(tǒng)的壓縮操作。
優(yōu)先權(quán)特性可來源于與特定卸載類型的連接密切關(guān)聯(lián)的傳輸緩沖器指示。例如,與iSCSI L5連接傳輸相比,RDMA L5連接傳輸可期望不同的處理。優(yōu)先權(quán)特性可來源于與特定類型的相似卸載密切關(guān)聯(lián)的傳輸緩沖器指示。例如與FTP(File Transfer Protocol)卸載傳輸相比,遠(yuǎn)程登陸TCP L4卸載傳輸可期望不同的處理。優(yōu)先權(quán)特性還可來源于配置或用戶輸入或來自操作系統(tǒng)或來自IP TOS或來自IEEE 802.1Q設(shè)置或來自與會(huì)話管理業(yè)務(wù)密切關(guān)聯(lián)的諸如操作系統(tǒng)顯示或呈現(xiàn)條件中的ASF、IPMI、和/或UMP。
圖3A是具有3路加權(quán)輪轉(zhuǎn)的示例性的優(yōu)先權(quán)分配調(diào)度的框圖,所述加權(quán)輪轉(zhuǎn)用在諸如圖2系統(tǒng)中的傳輸調(diào)度程序元素內(nèi)。參考圖3A,示例性的優(yōu)先權(quán)分配調(diào)度300包括第一級(jí)判斷塊301、第二級(jí)判斷塊303、第三級(jí)判斷塊305以及每一連接的環(huán)境存儲(chǔ)器307。第一級(jí)判斷塊301包括帶有傳輸緩沖器指示的連接的多個(gè)列表。例如,第一級(jí)判斷塊301包括L2傳輸需求列表323、高優(yōu)先級(jí)傳輸需求列表325以及普通優(yōu)先級(jí)傳輸需求列表327。列表323、325及327中的每一個(gè)可指定連接,所述連接需要相似優(yōu)先權(quán)特性和/或特定連接類型的傳輸操作。
第二級(jí)判斷塊303包括一個(gè)3路加權(quán)輪轉(zhuǎn)判斷控制塊335,且可用于選擇第一級(jí)任務(wù)選出的三個(gè)連接中哪一個(gè)被通過連接337發(fā)送到第三級(jí)判斷器。第三級(jí)判斷塊305包括傳輸任務(wù)生成塊343以及連接環(huán)境更新塊345。第三級(jí)判斷塊305可用于處理由第二級(jí)選出的連接,并可限制傳輸量以及更新連接的當(dāng)前傳輸狀態(tài)。第三級(jí)判斷寬305還可通過路徑355根據(jù)累計(jì)的一個(gè)或多個(gè)優(yōu)先權(quán)類的業(yè)務(wù)歷史修改第二級(jí)判斷器的規(guī)劃,從而特定優(yōu)先權(quán)類可被限制到傳輸帶寬的可編程百分比。
在操作中,在使用網(wǎng)絡(luò)接口控制器以及例示的優(yōu)先權(quán)分配調(diào)度300的系統(tǒng)中選擇一個(gè)準(zhǔn)備傳送的連接的處理(作為傳輸就緒連接被引用)可由來自多個(gè)驅(qū)動(dòng)器(例如L2驅(qū)動(dòng)器、L4驅(qū)動(dòng)器、或L5驅(qū)動(dòng)器、在線網(wǎng)絡(luò)接口控制器驅(qū)動(dòng)器、和/或遠(yuǎn)程驅(qū)動(dòng)器)的請(qǐng)求啟動(dòng)。這些驅(qū)動(dòng)器可請(qǐng)求附加的傳輸緩沖器以被網(wǎng)絡(luò)接口控制器傳輸。傳輸緩沖器指示器可通過通訊路徑315被初始的接收到。特別地,根據(jù)連接類型和/或傳輸緩沖器指示的優(yōu)先權(quán)特性,傳輸緩沖器指示器可被路由到相應(yīng)的連接列表,如通過通訊路徑317到L2傳輸需求列表。類似地,關(guān)于L4或L5(L4/L5)卸載連接的傳輸緩沖器指示器通過通訊路徑319被普通優(yōu)先級(jí)傳輸需求列表327接收到。除了指示到第一級(jí)調(diào)度程序301的新的傳輸就緒連接的存在,每一新的傳輸請(qǐng)求的大小還可通過連接321被傳送到與每一連接的環(huán)境307中的每一連接相關(guān)聯(lián)的連接環(huán)境。
傳輸緩沖器指示器的第二源可來自諸如接收器(RX)路徑(由于連接上的數(shù)據(jù)接收)的在線網(wǎng)絡(luò)接口控制器。當(dāng)數(shù)據(jù)被接收,為了以最小等待時(shí)間保持有效傳輸和接收帶寬,確認(rèn)數(shù)據(jù)包被預(yù)定傳輸,然后為連接傳輸確認(rèn)數(shù)據(jù)包。傳輸確認(rèn)消息生成的請(qǐng)求傳輸緩沖器指示器可通過通訊路徑309被接收。特別地,傳輸確認(rèn)消息的傳輸緩沖器指示器可基于連接類型或傳輸緩沖器指示的優(yōu)先權(quán)特性被路由到的連接的正確列表。例如,關(guān)于L4/L5卸載的傳輸緩沖器指示器可通過通訊路徑311被高優(yōu)先級(jí)傳輸需求列表接收到。傳輸確認(rèn)消息生成的每一傳輸緩沖器指示的大小可通過連接313被發(fā)送到連接環(huán)境,所述連接環(huán)境與每一連接的環(huán)境307中的每一連接關(guān)聯(lián)。每一連接(存儲(chǔ)于每一連接的存儲(chǔ)器307中)的每一連接的環(huán)境信息包括傳輸確認(rèn)消息類型,和/或接收確認(rèn)數(shù)據(jù)的量,和/或傳輸就緒數(shù)據(jù)長(zhǎng)度的外延。環(huán)境還可包括傳輸就緒數(shù)據(jù)的傳輸?shù)漠?dāng)前程序,和/或連接接收器可接收的數(shù)據(jù)量的狀態(tài),和/或與連接相關(guān)的擁塞控制限制,和/或由先于允許另一傳輸連接的連接生成的傳輸就緒數(shù)據(jù)的最大量。
在本發(fā)明的一個(gè)方面,第一級(jí)判斷塊301用于搜索和找尋每一連接列表的下一傳輸就緒連接,例如L2傳輸需求列表323、高優(yōu)先級(jí)傳輸需求列表325、和/或普通優(yōu)先級(jí)需求列表327。第一級(jí)判斷塊301用于選擇可操作的連接(如傳輸就緒連接)。傳輸請(qǐng)求可用于第二級(jí)判斷塊303。在第一級(jí)判斷塊301中,L2傳輸需求列表323用于跟蹤是否需要L2緩數(shù)據(jù)包傳輸。為了以與L2傳輸就緒數(shù)據(jù)包具有相似優(yōu)先權(quán)跟蹤L2連接,輪轉(zhuǎn)方式中需要一個(gè)單一的位,或多個(gè)位。L2流中的任一數(shù)字可僅使用單一位的傳輸跟蹤需求由每一流支持,可使用諸如觸發(fā)器實(shí)現(xiàn)L2傳輸需求列表323。此外,具有不相似優(yōu)先權(quán)特性的多個(gè)L2連接可作為分離的L2傳輸需求列表被執(zhí)行。
在本發(fā)明的一個(gè)示例性實(shí)施例中,主機(jī)上的L2應(yīng)用驅(qū)動(dòng)器可包括一個(gè)使用優(yōu)先權(quán)分配調(diào)度以傳輸二十或以上L2數(shù)據(jù)包的網(wǎng)絡(luò)接口控制器。然后L2傳輸需求列表位可被設(shè)置到L2傳輸需求列表323中以表明存在一些傳輸活動(dòng)需求。表明值“20”的傳輸需求的大小通過通訊路徑321被發(fā)送到與307中的L2流相關(guān)的環(huán)境。該位被設(shè)置以表明L2數(shù)據(jù)包準(zhǔn)備傳送的事實(shí)以及環(huán)境輸入的內(nèi)容(即20)可表明多少L2數(shù)據(jù)包準(zhǔn)備傳輸(即20個(gè)L2數(shù)據(jù)包傳輸就緒)??墒褂枚鄠€(gè)L2連接,每一連接具有與其L2傳輸需求列表323中和307中的入口環(huán)境相關(guān)的位。此外,L2連接可在第三級(jí)判斷塊304確定連接的傳輸活動(dòng)完成時(shí),被從每一列表中移除。
在本發(fā)明的另一實(shí)施例中,高優(yōu)先級(jí)傳輸需求列表325及普通優(yōu)先級(jí)傳輸需求列表327可能彼此相似,因?yàn)閮蓚€(gè)列表都用于為L(zhǎng)4和/或L5卸載連接業(yè)務(wù)服務(wù)??蛇x擇這些塊的編號(hào)以匹配不同優(yōu)先權(quán)特性的編號(hào),所述優(yōu)先權(quán)特性要求包括所有的L4/L5連接。這些列表可表明什么樣的連接是傳輸就緒的L4和/或L4卸載類型的下一傳輸就緒連接。可將連接作為傳輸緩沖器指示或確認(rèn)指示到達(dá)加入到每一列表。此外,連接可在第三級(jí)判斷塊304確定連接的傳輸活動(dòng)完成時(shí),被從每一列表中移除。
與L2傳輸需求列表相比,普通優(yōu)先權(quán)傳輸需求列表327被要求管理許多連接。普通優(yōu)先權(quán)傳輸需求列表327中的每一位與特定L4和/或L5連接相關(guān)。如果設(shè)置了特定位,可為L(zhǎng)4和L5業(yè)務(wù)使用一個(gè)位-位置調(diào)度,然后在普通優(yōu)先權(quán)傳輸需求列表327設(shè)置的位的位置可表明具有相同編號(hào)的主機(jī)中的L4或L5連接準(zhǔn)備發(fā)送。例如,若設(shè)置了位編號(hào)5,則表明主機(jī)中的L4/L5編號(hào)5的連接在普通優(yōu)先權(quán)傳輸需求列表327中,且準(zhǔn)備傳輸。
高優(yōu)先級(jí)傳輸需求列表325用于提高傳輸就緒連接的至少部分優(yōu)先級(jí)。網(wǎng)絡(luò)接口控制器上的連接與傳輸和/或接收數(shù)據(jù)相關(guān)聯(lián)。對(duì)于一個(gè)與接收數(shù)據(jù)關(guān)聯(lián)的特定連接,TCP確認(rèn)消息以高優(yōu)先級(jí)和在進(jìn)一步發(fā)送其他數(shù)據(jù)前被傳輸回發(fā)送網(wǎng)絡(luò)接口控制器。在本發(fā)明的一個(gè)不同的實(shí)施例中,發(fā)送網(wǎng)絡(luò)接口控制器使用“移動(dòng)窗口”調(diào)度或信用調(diào)度,與傳輸調(diào)度程序300一起,允許較好的使用所有可行傳輸移動(dòng)窗口。由接收網(wǎng)絡(luò)接口控制器預(yù)先發(fā)送的傳輸確認(rèn)消息可保持“傳輸窗口”開啟并且連接有效。此外,提供窗口狀態(tài)的更快更新允許帶寬增加,而不需擴(kuò)大“傳輸窗口”的大小。在另一本發(fā)明的不同實(shí)施例中,高優(yōu)先級(jí)傳輸需求列表325在與接收網(wǎng)絡(luò)接口控制器通訊過程中使用不同類的應(yīng)用級(jí)控制消息,以維持有效帶寬和最小信號(hào)等待時(shí)間,例如iSCSI、R2T及狀態(tài)消息,和/或RDMA讀請(qǐng)求消息。
在本發(fā)明的另一實(shí)施例中,第一級(jí)判斷塊301可使用一個(gè)隨機(jī)訪問存儲(chǔ)器(RAM)實(shí)現(xiàn),其中RAM中的至少一部分位可表明連接傳輸?shù)囊?。RAM中位的位置可用于識(shí)別連接??商峁┎⑹褂盟阉鬟\(yùn)算通過搜索RAM的位(例如值“1”或其他可用于表明連接何時(shí)準(zhǔn)備傳輸?shù)闹?選擇下一傳輸連接。當(dāng)連接已被請(qǐng)求處理時(shí),可繼續(xù)掃描,而運(yùn)算也可繼續(xù)搜索下一RAM位(具有值“1”或其他可用于表明連接何時(shí)準(zhǔn)備傳輸?shù)闹?。此外,可在使用多個(gè)位以顯示單個(gè)連接的傳輸需求中執(zhí)行多個(gè)不同優(yōu)先級(jí),從而特定位編碼可表明單個(gè)連接可為多個(gè)特定傳輸需求列表,而不是多個(gè)其他傳輸需求列表。在該執(zhí)行中,判斷塊301的存儲(chǔ)器和掃描源可在單個(gè)設(shè)計(jì)中執(zhí)行。
第一級(jí)判斷塊301還被作為鏈接列表被執(zhí)行。任一傳輸就緒連接的傳輸順序可通過單個(gè)步行(walking)或遍歷(traversing)該指針鏈接列表及在每一連接基礎(chǔ)上傳輸來確定。指針可用于遍歷鏈接列表。當(dāng)然其他輪轉(zhuǎn)、加權(quán)輪轉(zhuǎn)、甚至FIFO判斷調(diào)度可在第一級(jí)判斷塊301中使用,而不小由本發(fā)明的多層網(wǎng)絡(luò)接口控制器操作提供的不同益處。
L2傳輸需求列表323、高優(yōu)先級(jí)傳輸需求列表325、和普通優(yōu)先級(jí)需求列表327可通過通訊路徑329、311和333分別連接到第二級(jí)判斷塊303中的3路加權(quán)輪轉(zhuǎn)判斷控制塊335。多個(gè)傳輸需求列表323、325及327中的每一個(gè)可顯示其被選出的到第二判斷塊303的連接。每一傳輸需求列表的每一個(gè)輸出可視為確定的業(yè)務(wù)級(jí)和/或類型的需要傳輸活動(dòng)的連接。業(yè)務(wù)級(jí)或類型的精確度可由傳輸緩沖器指示如何被分入不同傳輸需求列表所確定。
3路加權(quán)輪轉(zhuǎn)判定控制塊335包括適當(dāng)?shù)碾娐?、邏輯?和代碼,且可被編程,從而其可選擇任一通過通訊路徑329、331、和/或333接收的傳輸緩沖器指示器。3路加權(quán)輪轉(zhuǎn)判定控制塊335中的選擇標(biāo)準(zhǔn)可被預(yù)編程或動(dòng)態(tài)更改。例如,傳輸帶寬的最大百分率可被L2連接使用。例如,可預(yù)編程為十分之二的被選傳輸就緒連接為L(zhǎng)2類型,這樣假定其他業(yè)務(wù)使用帶寬時(shí),為L(zhǎng)2類型業(yè)務(wù)提供不超過20%的傳輸帶寬。第二級(jí)的加權(quán)輪轉(zhuǎn)可用于“網(wǎng)絡(luò)保存”,并且在這點(diǎn)上,如果沒有其他第一級(jí)判斷是活動(dòng)的,則任一第一級(jí)判斷源可使用所有傳輸帶寬或附加的部分。
第二級(jí)判斷塊303可視為能將傳輸帶寬分為多個(gè)“桶或箱。每一桶或箱可被分配一個(gè)業(yè)務(wù)級(jí)或類,例如其可包括L2普通優(yōu)先級(jí)和高優(yōu)先級(jí),對(duì)應(yīng)于301中提供的傳輸需求列表。第二級(jí)優(yōu)先權(quán)調(diào)度可在每一桶或箱上以輪轉(zhuǎn)的方式操作,以維護(hù)由分配給特定桶的傳輸需求列表代表的連接。如果遇到空的桶(其中分配的傳輸需求列表沒有與傳輸需求的連接),則可跳過桶或箱,并以工作回存的方式操作下一桶或箱,從而如果其他傳輸需求列表都不活動(dòng),所有傳輸帶寬可被來自單個(gè)傳輸需求列表的連接取得。
第二級(jí)判斷包括可編程的寄存器,可方便L2、高優(yōu)先級(jí)或低優(yōu)先級(jí)業(yè)務(wù)混合以在傳輸前在第三級(jí)判斷塊305中達(dá)到平衡。桶或箱調(diào)度可允許該混合基于L2對(duì)L4/L5卸載期望的性能而不同,而仍然在分配較其他業(yè)務(wù)高的優(yōu)先級(jí)確認(rèn)傳輸。桶或箱調(diào)度還可限制由L2或L4/L5業(yè)務(wù)受到的等待時(shí)間,因?yàn)樗苊饬藘深愓紦?jù)全部傳輸帶寬以及使其他業(yè)務(wù)缺乏。只要在第一級(jí)判斷塊301中的L4/L5連接的優(yōu)先權(quán)的兩級(jí)允許特定連接被暫時(shí)提高優(yōu)先權(quán),則實(shí)質(zhì)上跳至普通級(jí)輪轉(zhuǎn)線的前端。這可適合提前為TCP或其他傳輸協(xié)議生成確認(rèn)消息,以快速?gòu)V告網(wǎng)絡(luò)接口控制器的為特定連接接收更多數(shù)據(jù)的能力。通過設(shè)計(jì)額外的傳輸需求列表,桶調(diào)度可用于提供L2、L4、和/或L5業(yè)務(wù)的不同分類,從而每一分類在可控制的量上使用其他L2、L4、和/或L5業(yè)務(wù)被混合。如圖所示,不同連接類型可分享同一業(yè)務(wù)分類以限制設(shè)計(jì)復(fù)雜性。
第二級(jí)判斷規(guī)劃還可通過路徑355被第三級(jí)判斷305修改,從而第二級(jí)判斷303可在平衡業(yè)務(wù)類間的傳輸業(yè)務(wù)時(shí)考慮業(yè)務(wù)類使用的真實(shí)傳輸帶寬。例如,多個(gè)用于選擇特定傳輸需求列表的桶可在某一業(yè)務(wù)類的傳輸業(yè)務(wù)超過一特定閾值時(shí)被調(diào)制。
第三級(jí)判斷塊305可用于確定在給定的時(shí)間內(nèi)傳輸就緒連接數(shù)據(jù)中的多少被傳輸。第三級(jí)判斷塊305包括傳輸任務(wù)生成塊343和連接環(huán)境更新塊345。在操作中,由3路加權(quán)輪轉(zhuǎn)判斷塊335選擇的連接可通過通訊路徑337與第三級(jí)判斷塊305通訊。對(duì)于由第三級(jí)判斷塊305接收的每一連接,來自每一連接的環(huán)境存儲(chǔ)器307的環(huán)境信息可被傳輸任務(wù)生成塊343通過通訊路徑339讀取。
每一連接的環(huán)境存儲(chǔ)器307包括在線芯片或離線芯片存儲(chǔ)器,所述存儲(chǔ)器可用于存儲(chǔ)識(shí)別信息,該信息可識(shí)別一類連接、相關(guān)的確認(rèn)消息需求、可傳輸數(shù)據(jù)的外延及數(shù)據(jù)最大限制(多少可被或可被允許傳輸)。環(huán)境信息表明選擇的傳輸就緒連接類型,以及傳輸就緒連接的當(dāng)前傳輸需求。傳輸任務(wù)生成塊343則用于選擇一組規(guī)則,例如確定傳輸對(duì)于選擇的連接是否可行。如果傳輸可行,傳輸任務(wù)生成塊343可確定多少來自選擇連接的數(shù)據(jù)可在一個(gè)被傳輸(即所有數(shù)據(jù)或部分?jǐn)?shù)據(jù))。傳輸任務(wù)生成塊343可確定選擇的連接是否從第一級(jí)判斷傳輸需求列表323、325、和/或327中“出列”。如果選擇的傳輸就緒連接被完整地傳輸,各連接被從第一級(jí)判斷塊301中被移除。
如果連接數(shù)據(jù)較最大預(yù)確定的長(zhǎng)度長(zhǎng),正如在環(huán)境數(shù)據(jù)中指出地,則該連接數(shù)據(jù)被分割,而僅該連接數(shù)據(jù)的部分被傳輸。特定量數(shù)據(jù)的傳輸請(qǐng)求被通過路徑347發(fā)送到傳輸處理。在每一連接的存儲(chǔ)塊307中的連接環(huán)境可通過通訊路徑341更新,從而第三級(jí)判斷塊305可在連接通過連接337再次到達(dá)時(shí)識(shí)別余下的數(shù)據(jù)以傳輸。在本發(fā)明的一個(gè)實(shí)施例中,第三級(jí)判斷塊的決策可基于多少數(shù)據(jù)被傳輸以及多少數(shù)據(jù)被在連接的其他端的接收器接收和/或當(dāng)前接收,以及避開限制的連接擁塞,以及任一其他標(biāo)準(zhǔn)如每一傳輸?shù)娜蝿?wù)限制,或最大連接長(zhǎng)度限制,或傳輸上的任一協(xié)議限制。
如果協(xié)議需求已到達(dá),或所有連接業(yè)務(wù)被傳輸,則第三級(jí)判斷塊305通過路徑356向第一級(jí)判斷塊301指示以通過移除到不同傳輸需求列表來標(biāo)記該連接為理想。盡管,第三級(jí)判斷塊305通過連接347由數(shù)量請(qǐng)求消耗了其突出的傳輸數(shù)據(jù),并獲得了需要通過連接337傳輸?shù)南乱贿B接。該大傳輸請(qǐng)求的分解或分割可使顯著的忙連接避免占用全部的傳輸帶寬。在這點(diǎn)上,其他活動(dòng)連接的至少一些可在返回具有大傳輸數(shù)據(jù)量的連接前被給予傳輸?shù)臋C(jī)會(huì)。在由連接347生成的每一操作上的傳輸大小的限制,可為第二級(jí)判斷塊303中的3路加權(quán)輪轉(zhuǎn)判斷控制中的箱值提供更多的控制。如若特定連接在一個(gè)請(qǐng)求上傳輸大量數(shù)據(jù),則傳輸大小限制可限制該傳輸,從而特定業(yè)務(wù)類的箱值比例將關(guān)于實(shí)際傳輸業(yè)務(wù)更加精確。
在示例性優(yōu)先權(quán)分配調(diào)度300的操作中,可避免任一連接占用所有帶寬,并限制連接以使用適當(dāng)?shù)墓蚕韼?。這可由預(yù)編程傳輸長(zhǎng)度限制(其可作為環(huán)境信息保存于每一連接的環(huán)境存儲(chǔ)器307中)及第一級(jí)判斷塊301的輪轉(zhuǎn)特性保證。該特性具有優(yōu)點(diǎn),因?yàn)榈屯ㄓ嵙康倪B接需要短的傳輸?shù)却龝r(shí)間,不管是否存在其他大的持續(xù)傳輸業(yè)務(wù)的連接。在實(shí)例中,在使用優(yōu)先權(quán)分配調(diào)度300的系統(tǒng)中沒有其他連接具有傳輸業(yè)務(wù)的情況下,活動(dòng)連接可被限制且具有在介質(zhì)允許的數(shù)據(jù)下傳輸?shù)哪芰?。這可由第二級(jí)判斷塊303的網(wǎng)絡(luò)保存特性提供。該優(yōu)點(diǎn)對(duì)于為小量連接(如單一連接)維持高性能是較重要的。
圖3B為具有N路加權(quán)輪轉(zhuǎn)的示例性優(yōu)先權(quán)分配調(diào)度的框圖,所述輪轉(zhuǎn)可在諸如圖2系統(tǒng)的傳輸調(diào)度程序元素中使用。參考圖3B,示例性的優(yōu)先權(quán)分配調(diào)度300b包括第一級(jí)判斷塊301b、第二級(jí)判斷塊303b、第三級(jí)判斷塊305b以及每一連接的環(huán)境存儲(chǔ)307b。第一級(jí)判斷塊301b包括帶有傳輸緩沖器指示的連接的N個(gè)優(yōu)先權(quán)列表,從365b到369b。列表365b到369b中的每一個(gè)可指定連接,所述連接需要相似優(yōu)先權(quán)特性和/或特定連接類型的傳輸操作。
第二級(jí)判斷塊303b包括一個(gè)N路加權(quán)輪轉(zhuǎn)判斷控制塊335b,且可用于選擇第一級(jí)任務(wù)選出的N個(gè)連接中哪一個(gè)被通過連接337b發(fā)送到第三級(jí)判斷器335b。第三級(jí)判斷塊305b包括傳輸任務(wù)生成塊343b以及連接環(huán)境更新塊345b。第三級(jí)判斷塊305b可用于處理由第二級(jí)選出的連接,并可限制傳輸量以及更新連接的當(dāng)前傳輸狀態(tài)。第三級(jí)判斷寬305b還可通過路徑355b根據(jù)累計(jì)的一個(gè)或多個(gè)優(yōu)先權(quán)類的業(yè)務(wù)歷史修改第二級(jí)判斷器的規(guī)劃,從而特定優(yōu)先權(quán)類可被限制到傳輸帶寬的可編程百分比。
在操作中,在使用網(wǎng)絡(luò)接口控制器以及例示的優(yōu)先權(quán)分配調(diào)度300b的系統(tǒng)中選擇一個(gè)準(zhǔn)備傳送的連接的處理(作為傳輸就緒連接被引用)可由來自多個(gè)驅(qū)動(dòng)器(例如L2驅(qū)動(dòng)器、L4驅(qū)動(dòng)器、L5驅(qū)動(dòng)器、在線網(wǎng)絡(luò)接口控制器驅(qū)動(dòng)器、或遠(yuǎn)程驅(qū)動(dòng)器)的請(qǐng)求啟動(dòng)。每一驅(qū)動(dòng)器用于代表不同操作系統(tǒng)的任務(wù)棧、應(yīng)用、和/或管理實(shí)體生成不同卸載級(jí)的連接業(yè)務(wù)。這些驅(qū)動(dòng)器可請(qǐng)求附加的傳輸緩沖器以被網(wǎng)絡(luò)接口控制器傳輸。多個(gè)優(yōu)先權(quán)列表365b到369b的傳輸緩沖器指示器可通過通訊路徑315b被初始的接收到。特別地,根據(jù)連接類型和/或傳輸緩沖器指示的優(yōu)先權(quán)特性,傳輸緩沖器指示器可被路由到相應(yīng)的連接列表,如通過通訊路徑317b到優(yōu)先權(quán)列表365b到369b。除了指示到第一級(jí)調(diào)度程序301b的新的傳輸就緒連接的存在,每一新的傳輸請(qǐng)求的大小還可通過連接321b被傳送到與每一連接的環(huán)境307b中的每一連接相關(guān)聯(lián)的連接環(huán)境。
傳輸緩沖器指示器的第二源可來自諸如接收器(RX)路徑(由于連接上的數(shù)據(jù)接收)的在線網(wǎng)絡(luò)接口控制器。當(dāng)數(shù)據(jù)被接收,為了以最小等待時(shí)間保持有效傳輸和接收帶寬,確認(rèn)數(shù)據(jù)包或其他傳輸任務(wù)被預(yù)定傳輸,然后為連接傳輸確認(rèn)數(shù)據(jù)包。傳輸確認(rèn)消息生成的請(qǐng)求傳輸緩沖器指示器可通過通訊路徑309b被接收。特別地,傳輸確認(rèn)消息的傳輸緩沖器指示器可基于連接類型或傳輸緩沖器指示的優(yōu)先權(quán)特性被路由到連接的一個(gè)或多個(gè)優(yōu)先權(quán)列表,例如優(yōu)先權(quán)列表365b到369b。傳輸確認(rèn)消息生成的每一傳輸緩沖器指示的大小可通過連接313b被發(fā)送到連接環(huán)境,所述連接環(huán)境與每一連接的環(huán)境307b中的每一連接關(guān)聯(lián)。每一連接(存儲(chǔ)于每一連接的存儲(chǔ)器307b中)的每一連接環(huán)境信息包括傳輸確認(rèn)消息類型,和/或接收確認(rèn)數(shù)據(jù)的量,和/或傳輸就緒數(shù)據(jù)長(zhǎng)度的外延。環(huán)境還可包括傳輸就緒數(shù)據(jù)的傳輸?shù)漠?dāng)前程序,和/或連接接收器可接收的數(shù)據(jù)量的狀態(tài),和/或與連接相關(guān)的擁塞控制限制,和/或由先于允許另一傳輸連接的連接生成的傳輸就緒數(shù)據(jù)的最大量。傳輸緩沖器指示器的到特定優(yōu)先權(quán)列表的路由靜態(tài)或動(dòng)態(tài)地配置,可基于諸如由傳輸緩沖器指示器指定的連接類型、連接優(yōu)先權(quán)特性、和/或傳輸協(xié)議任務(wù)類型。
優(yōu)先權(quán)列表365b到369b的N編號(hào)可通過通訊路徑370b到374b分別連接到第二級(jí)判斷塊303b中的N路加權(quán)輪轉(zhuǎn)判斷控制塊335b。多個(gè)優(yōu)先權(quán)列表365b到369b中的每一個(gè)可顯示其被選出的到第二判斷塊303b的連接。每一優(yōu)先權(quán)列表的輸出可視為確定的業(yè)務(wù)級(jí)和/或類型的需要傳輸活動(dòng)的連接。業(yè)務(wù)級(jí)或類型的精確度可由傳輸緩沖器指示如何被分入不同傳輸需求列表所確定。
N路加權(quán)輪轉(zhuǎn)判定控制塊335b包括適當(dāng)?shù)碾娐?、邏輯?和代碼,且可被編程,從而其可選擇任一通過通訊路徑370b到374b接收的傳輸緩沖器指示器。N路加權(quán)輪轉(zhuǎn)判定控制塊335b中的選擇標(biāo)準(zhǔn)可被預(yù)編程或動(dòng)態(tài)更改。例如,可預(yù)編程為十分之二的被選傳輸就緒連接為優(yōu)先權(quán)為0的連接列表365b中的類型,這樣假定其他業(yè)務(wù)使用余下帶寬時(shí),為連接列表365b中的連接提供不超過20%的傳輸帶寬。用于第二級(jí)判斷塊303b的N路加權(quán)輪轉(zhuǎn)判定塊控制335b的加權(quán)輪轉(zhuǎn)可用于“網(wǎng)絡(luò)保存”,并且在這點(diǎn)上,如果沒有其他第一級(jí)判定源消耗所有允許的帶寬,則任一第一級(jí)判斷源可使用所有傳輸帶寬或附加的部分。
第二級(jí)判斷塊303b可視為能將傳輸帶寬分為多個(gè)“桶”或箱。每一桶或箱可被分配一個(gè)業(yè)務(wù)級(jí)或類,其可對(duì)應(yīng)于301b中提供的優(yōu)先權(quán)列表365b到369b的N編號(hào)的定義。第二級(jí)優(yōu)先權(quán)調(diào)度可在每一桶或箱上以輪轉(zhuǎn)的方式操作,以維護(hù)由分配給特定桶的分配或選擇的優(yōu)先權(quán)列表代表的連接。如果遇到空的桶(其中分配或選擇的優(yōu)先權(quán)列表沒有與傳輸需求的連接),則可跳過桶或箱,并以工作回存的方式操作下一桶或箱,從而如果其他優(yōu)先權(quán)列表都不活動(dòng),所有傳輸帶寬可被來自單個(gè)優(yōu)先權(quán)列表的連接取得。
第二級(jí)判斷規(guī)劃還可通過路徑355b被第三級(jí)判斷305b修改,從而第二級(jí)判斷303b可在平衡業(yè)務(wù)類間的傳輸業(yè)務(wù)時(shí)考慮業(yè)務(wù)類使用的真實(shí)傳輸帶寬。例如,多個(gè)用于選擇特定傳輸需求列表的桶可在某一業(yè)務(wù)類的傳輸業(yè)務(wù)超過一特定閾值時(shí)被調(diào)制。
第三級(jí)判斷塊305b可用于確定在給定的時(shí)間內(nèi)傳輸就緒連接數(shù)據(jù)中的多少被傳輸。第三級(jí)判斷塊305b包括傳輸任務(wù)生成塊343b和連接環(huán)境更新塊345b。在操作中,由N路加權(quán)輪轉(zhuǎn)判斷塊335b選擇的連接可通過通訊路徑337b與第三級(jí)判斷塊305b通訊。對(duì)于由第三級(jí)判斷塊305b接收的每一連接,來自每一連接的環(huán)境存儲(chǔ)器307b的環(huán)境信息可被傳輸任務(wù)生成塊343b通過通訊路徑339b讀取。
每一連接的環(huán)境存儲(chǔ)器307b包括在線芯片或離線芯片存儲(chǔ)器,所述存儲(chǔ)器可用于存儲(chǔ)識(shí)別信息,該信息可識(shí)別一類連接、相關(guān)的確認(rèn)消息需求、可傳輸數(shù)據(jù)的外延及數(shù)據(jù)最大限制(多少可被或可被允許傳輸)。環(huán)境信息表明選擇的傳輸就緒連接類型,以及傳輸就緒連接的當(dāng)前傳輸需求。傳輸任務(wù)生成塊343b則用于使用一組規(guī)則,例如確定傳輸對(duì)于選擇的連接是否可行。如果傳輸可行,傳輸任務(wù)生成塊343b可確定多少來自選擇連接的數(shù)據(jù)可在一個(gè)被傳輸(即所有數(shù)據(jù)或部分?jǐn)?shù)據(jù))。傳輸任務(wù)生成塊343b可確定選擇的連接是否通過連接356b從第一級(jí)判斷優(yōu)先權(quán)列表365b到369b中“出列”。如果選擇的傳輸就緒連接被完整地傳輸,各連接被從第一級(jí)判斷塊301b中被移除。
如果連接數(shù)據(jù)較最大預(yù)確定地長(zhǎng)度長(zhǎng),正如在環(huán)境數(shù)據(jù)中指出地,則該連接數(shù)據(jù)被分割,而僅該連接數(shù)據(jù)的部分被傳輸。特定量數(shù)據(jù)的傳輸請(qǐng)求被通過路徑347b發(fā)送到傳輸處理。在每一連接的存儲(chǔ)塊307b中的連接環(huán)境可通過通訊路徑341b更新,從而第三級(jí)判斷塊305b可在連接通過連接337b再次到達(dá)時(shí)識(shí)別余下的數(shù)據(jù)以傳輸。在本發(fā)明的一個(gè)實(shí)施例中,第三級(jí)判斷塊的決策可基于多少數(shù)據(jù)被傳輸以及多少數(shù)據(jù)被在連接的其他端的接收器接收和/或當(dāng)前接收,以及避開限制的連接擁塞,以及任一其他標(biāo)準(zhǔn)如每一傳輸?shù)娜蝿?wù)限制,或最大連接長(zhǎng)度限制,或傳輸上的任一協(xié)議限制。
如果協(xié)議需求已到達(dá),或所有連接業(yè)務(wù)被傳輸,則第三級(jí)判斷塊305b通過路徑356b向第一級(jí)判斷塊301b指示以通過移除到不同傳輸需求列表來標(biāo)記該連接為理想。盡管,第三級(jí)判斷塊305b通過連接347b由數(shù)量請(qǐng)求消耗了其突出的傳輸數(shù)據(jù),并獲得了需要通過連接337b傳輸?shù)南乱贿B接。該大傳輸請(qǐng)求的分解或分割可使顯著的忙連接避免占用全部的傳輸帶寬。在這點(diǎn)上,其他活動(dòng)連接的至少一些可在返回具有大傳輸數(shù)據(jù)量的連接前被給予傳輸?shù)臋C(jī)會(huì)。在由連接347b生成的每一操作上的傳輸大小的限制,可為第二級(jí)判斷塊303b中的N路加權(quán)輪轉(zhuǎn)判斷控制335b中的箱值提供更多的控制。如若特定連接在一個(gè)請(qǐng)求上傳輸大量數(shù)據(jù),則傳輸大小限制可限制該傳輸,從而特定業(yè)務(wù)類的箱值比例將關(guān)于實(shí)際傳輸業(yè)務(wù)更加精確。
在示例性優(yōu)先權(quán)分配調(diào)度300b的操作中,可避免任一連接占用所有帶寬,并限制連接以使用適當(dāng)?shù)墓蚕韼?。這可由預(yù)編程傳輸長(zhǎng)度限制(其可作為環(huán)境信息保存于每一連接的環(huán)境存儲(chǔ)器307b中)及第一級(jí)判斷塊301b的輪轉(zhuǎn)特性保證。該特性具有優(yōu)點(diǎn),因?yàn)榈屯ㄓ嵙康倪B接需要短的傳輸?shù)却龝r(shí)間,不管是否存在其他大的持續(xù)傳輸業(yè)務(wù)的連接。在實(shí)例中,在使用優(yōu)先權(quán)分配調(diào)度300b的系統(tǒng)中沒有其他連接具有傳輸業(yè)務(wù)的情況下,活動(dòng)連接可被限制且具有在介質(zhì)允許的數(shù)據(jù)下傳輸?shù)哪芰?。這可由第二級(jí)判斷塊303b的網(wǎng)絡(luò)保存特性提供。該優(yōu)點(diǎn)對(duì)于為小量連接(如單一連接)維持高性能是較重要的。
在本發(fā)明的一個(gè)發(fā)面,諸如圖2中的傳輸調(diào)度程序210的L2/L4/L5網(wǎng)絡(luò)接口控制器中的傳輸調(diào)度程序可使用圖3A或3B中的示例性的優(yōu)先權(quán)分配調(diào)度300或300b實(shí)現(xiàn)。
圖4是例示本發(fā)明的圖2中系統(tǒng)的傳輸行為特性的圖。參考圖4,其示出了A連接401、B連接403、連接401和連接403的傳輸行為405、以及連接401和連接403的傳輸行為407。A連接401在周期間隙上具有小量數(shù)據(jù)傳輸,而B連接403具有大量數(shù)據(jù)傳輸。在一個(gè)未使用本發(fā)明的系統(tǒng)(如圖3中例示的示例性優(yōu)先權(quán)分配調(diào)度300)中,傳輸行為405描述了連接401的高的等待時(shí)間,這是由于具有小量數(shù)據(jù)傳輸?shù)倪B接401必須等待,直到較忙連接403在連接401被允許傳輸前空閑。在使用根據(jù)本發(fā)明的優(yōu)先權(quán)分配調(diào)度的系統(tǒng)中,可實(shí)現(xiàn)具有低等待時(shí)間的傳輸行為,如圖表407所示。可通過僅傳輸來自連接403的片段使用優(yōu)先權(quán)分配調(diào)度實(shí)現(xiàn)連接401的低等待時(shí)間,及使用的有效帶寬。
在本發(fā)明的一個(gè)示例性方面,連接或連接協(xié)議的單個(gè)元素的任一類可根據(jù)來自其他連接類型的傳輸載入信息區(qū)分優(yōu)先權(quán)??蔀門CP確認(rèn)傳輸定位一特定量的用于L4 TCP卸載及L5 iSCSI卸載的最小帶寬,而不管L2卸載傳輸大UDP數(shù)據(jù)包的傳輸需求。通過這種方式,多接口傳統(tǒng)系統(tǒng)(其中每一網(wǎng)絡(luò)接口控制器具有關(guān)于其他卸載的傳輸需求,例如圖1A中的傳統(tǒng)系統(tǒng))的缺點(diǎn)可被避免。通過將傳輸調(diào)度程序放在傳輸處理引擎的前端,單個(gè)傳輸處理引擎可在被介質(zhì)允許的比例上生成L2、L4、和/或L5卸載業(yè)務(wù),還可在被介質(zhì)允許的比例上生成L2、L4、和/或L5卸載業(yè)務(wù)的混合。
圖5為本發(fā)明的描述為多層網(wǎng)絡(luò)接口控制器操作傳輸調(diào)度的方法500的流程圖。該方法500可在諸如圖3A的第三級(jí)判斷塊305或圖3B中的第三級(jí)判斷塊305b的判斷塊中被執(zhí)行。現(xiàn)在參考圖5,在步驟501,從諸如圖3A中的第三級(jí)判斷塊303或圖3B中的第三級(jí)判斷塊303b的第二級(jí)判斷塊中獲取用于傳輸就緒連接的指示器。在步驟503,與選出的傳輸就緒連接相關(guān)聯(lián)的環(huán)境信息被從每一連接的環(huán)境存儲(chǔ)塊中讀出。然后用于特定傳輸就緒連接的傳輸時(shí)間的外延可在步驟505中被賦值。賦值包括被驅(qū)動(dòng)器請(qǐng)求的傳輸限制,由于用于適當(dāng)傳輸?shù)拈L(zhǎng)度限制的傳輸限制,和/或由于在接收器的可用緩沖器的傳輸限制,和/或由于避免擁塞的傳輸限制,和/或由于其他協(xié)議傳輸要求的傳輸限制。
在步驟507,生成步驟505中選出的確定量的連接的傳輸命令,完成傳輸。在步驟509,更新與傳輸?shù)倪B接相關(guān)的連接環(huán)境。例如更新環(huán)境以反映整個(gè)連接已完成,或者連接的一個(gè)片段已完成。在本發(fā)明的一個(gè)示例性方面,如果連接由于協(xié)議原因被阻止傳輸,則可能所需的環(huán)境沒有變化。在步驟511,可確定是否選出的連接中的所有傳輸數(shù)據(jù)已被傳輸,或當(dāng)協(xié)議需要時(shí)用于該連接的傳輸被掛起(suspend)。如果不是,則在步驟501,從第二級(jí)判斷塊獲取下一連接。如果選出的連接中的所有傳輸數(shù)據(jù)已被發(fā)送或者在協(xié)議需要時(shí)傳輸被掛起,則在步驟513,第三級(jí)判斷塊要求第一級(jí)判斷塊從不同優(yōu)先權(quán)列表中移除連接。
圖6為本發(fā)明的一個(gè)示例性系統(tǒng)的框圖,該系統(tǒng)用于為多層網(wǎng)絡(luò)接口控制器操作傳輸調(diào)度。參考圖6,系統(tǒng)600包括主機(jī)601和網(wǎng)絡(luò)接口控制器603。主機(jī)的內(nèi)存603可通過接口總線605通訊連接到網(wǎng)絡(luò)接口控制器603。網(wǎng)絡(luò)接口控制器603包括多個(gè)網(wǎng)絡(luò)接口控制器處理器609。此外,網(wǎng)絡(luò)接口控制器603使用本發(fā)明的優(yōu)先權(quán)分配調(diào)度塊611。網(wǎng)絡(luò)接口控制器603通過傳輸路徑617傳輸數(shù)據(jù),并通過接收路徑615接收數(shù)據(jù)。在本發(fā)明的一個(gè)實(shí)施例中,接收路徑615通過通訊路徑613與優(yōu)先權(quán)分配調(diào)度塊611連接。通訊路徑613可用于傳遞諸如傳輸確認(rèn)消息請(qǐng)求。在本發(fā)明的一個(gè)不同的實(shí)施例中,網(wǎng)絡(luò)接口控制器603可以是主機(jī)601的部件。
從而,本發(fā)明可通過硬件、軟件或硬件和軟件的結(jié)合實(shí)現(xiàn)。本發(fā)明可在至少一計(jì)算機(jī)系統(tǒng)中以中央管理方式(centralized fashion)實(shí)現(xiàn),或者在不同元素分散在幾個(gè)相互連接的計(jì)算機(jī)系統(tǒng)的情況下以分布方式實(shí)現(xiàn)。任一種計(jì)算機(jī)系統(tǒng)或其他用于實(shí)現(xiàn)在此描述的方法的設(shè)備是合適的。軟件和硬件的通常結(jié)合可以是一個(gè)帶有計(jì)算機(jī)程序的通用目標(biāo)計(jì)算機(jī)系統(tǒng),該程序在被載入和執(zhí)行時(shí),控制計(jì)算機(jī)系統(tǒng)從而實(shí)現(xiàn)在此描述的方法。
本發(fā)明還可嵌入計(jì)算機(jī)程序產(chǎn)品中,該程序產(chǎn)品包括可實(shí)現(xiàn)在此描述的方法的所有特征,其被載入計(jì)算機(jī)系統(tǒng)時(shí)可實(shí)現(xiàn)這些方法。此處的計(jì)算機(jī)程序可以是任何表達(dá)、任何語言、編碼或符號(hào)的一組指令,該組指令使具有信息處理能力的系統(tǒng)直接或在以下操作之一或全部后實(shí)現(xiàn)特定功能a)轉(zhuǎn)換為另一語言、代碼或符號(hào);b)復(fù)制為另一形式。
盡管本發(fā)明已通過參考某些實(shí)施例進(jìn)行了描述,可以理解,熟知本技術(shù)領(lǐng)域人員可在不脫離本發(fā)明的范圍內(nèi)做不同修改及使用等價(jià)替換。此外,可在不脫離本發(fā)明的范圍內(nèi)可做許多修改以適應(yīng)特定情況或教授本發(fā)明的材料。因此,本發(fā)明并不局限于所揭示的具體實(shí)施例或方案,而是想涵蓋落入附加的權(quán)利要求的所有實(shí)施例。
權(quán)利要求
1.一種用于網(wǎng)絡(luò)接口控制器應(yīng)用的傳輸數(shù)據(jù)的方法,其特征在于,包括收集多個(gè)傳輸緩沖器指示器,所述緩沖器指示器中的每一個(gè)識(shí)別與至少一個(gè)特定連接優(yōu)先權(quán)特性及特定連接類型相關(guān)聯(lián)的傳輸就緒數(shù)據(jù);選擇所述多個(gè)傳輸緩沖器指示器中的至少一個(gè);以及傳輸與選出的所述多個(gè)傳輸緩沖器指示器中的至少一個(gè)相關(guān)聯(lián)的傳輸就緒數(shù)據(jù)的至少一部分。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述特定連接類型包括第二級(jí)類型、第四級(jí)類型和第五級(jí)類型中的至少一個(gè)。
3根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括當(dāng)特定連接類型包括第二級(jí)類型、第四級(jí)類型或第五級(jí)類型時(shí),區(qū)分所述多個(gè)傳輸緩沖器指示器的優(yōu)先權(quán)到具有至少一個(gè)特定連接優(yōu)先權(quán)特性的連接優(yōu)先權(quán)列表中。
4.一種從網(wǎng)絡(luò)接口控制器傳輸數(shù)據(jù)的方法,其特征在于,所述方法包括跟蹤網(wǎng)絡(luò)接口控制器上的多個(gè)類型的多個(gè)活動(dòng)數(shù)據(jù)連接;選擇所述多個(gè)活動(dòng)數(shù)據(jù)連接中的至少一個(gè)用于處理;以及在至少一個(gè)傳輸處理塊中處理選出的活動(dòng)數(shù)據(jù);其中所述至少一個(gè)傳輸處理塊可處理所述多個(gè)活動(dòng)數(shù)據(jù)連接,以生成來自網(wǎng)絡(luò)接口控制塊的至少一個(gè)傳輸數(shù)據(jù)流。
5.一種其上存儲(chǔ)有計(jì)算機(jī)程序的機(jī)器可讀存儲(chǔ)器,所述計(jì)算機(jī)程序具有至少一段用于為網(wǎng)絡(luò)接口控制器應(yīng)用傳輸數(shù)據(jù)的代碼段,所述至少一段代碼段被機(jī)器執(zhí)行以使機(jī)器完成以下步驟收集多個(gè)傳輸緩沖器指示器,所述緩沖器指示器中的每一個(gè)識(shí)別與至少一個(gè)特定連接優(yōu)先權(quán)特性及特定連接類型相關(guān)聯(lián)的傳輸就緒數(shù)據(jù);選擇所述多個(gè)傳輸緩沖器指示器中的至少一個(gè);以及傳輸與選出的所述多個(gè)傳輸緩沖器指示器中的至少一個(gè)相關(guān)聯(lián)的傳輸就緒數(shù)據(jù)的至少一部分。
6.根據(jù)權(quán)利要求5所述的機(jī)器可讀存儲(chǔ)器,其特征在于,所述特定連接類型包括第二級(jí)類型、第四級(jí)類型和第五級(jí)類型中的至少一個(gè)。
7.一種為網(wǎng)絡(luò)接口控制器傳輸數(shù)據(jù)的系統(tǒng),其特征在于,包括至少一個(gè)處理器,所述處理器收集多個(gè)傳輸緩沖器指示器,所述緩沖器指示器中的每一個(gè)識(shí)別與至少一個(gè)特定連接優(yōu)先權(quán)特性及特定連接類型相關(guān)聯(lián)的傳輸就緒數(shù)據(jù);所述至少一個(gè)處理器選擇所述多個(gè)傳輸緩沖器指示器中的至少一個(gè);以及所述至少一個(gè)處理器傳輸與選出的所述多個(gè)傳輸緩沖器指示器中的至少一個(gè)相關(guān)聯(lián)的傳輸就緒數(shù)據(jù)的至少一部分。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述特定連接類型包括第二級(jí)類型、第四級(jí)類型和第五級(jí)類型中的至少一個(gè)。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,當(dāng)特定連接類型包括第二級(jí)類型、第四級(jí)類型或第五級(jí)類型時(shí),所述至少一個(gè)處理器區(qū)分所述多個(gè)傳輸緩沖器指示器的優(yōu)先權(quán)到具有至少一個(gè)特定連接優(yōu)先權(quán)特性的連接優(yōu)先權(quán)列表中。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述至少一個(gè)處理器根據(jù)所述至少一個(gè)連接優(yōu)先權(quán)特性區(qū)分連接優(yōu)先權(quán)列表的優(yōu)先權(quán)。
全文摘要
本發(fā)明的某些實(shí)施例揭露了一種用于網(wǎng)絡(luò)接口控制器操作的方法和系統(tǒng)。本發(fā)明可使用用于網(wǎng)絡(luò)接口控制器操作的兩級(jí)工作回存調(diào)度系統(tǒng),其包括跟蹤所有帶有活動(dòng)傳輸需求及第二層的級(jí)的傳輸需求的L4/L5卸載連接。第一級(jí)包括用于分別選擇下一高優(yōu)先級(jí)、普通優(yōu)先級(jí)及第二層傳輸需求的輪轉(zhuǎn)調(diào)度。發(fā)送級(jí)判斷包括工作回存的可編程加權(quán)輪轉(zhuǎn)優(yōu)先權(quán)調(diào)度,該調(diào)度用于從由第一級(jí)優(yōu)先權(quán)調(diào)度選出的傳輸任務(wù)中選擇。
文檔編號(hào)H04L29/06GK1642172SQ20041010444
公開日2005年7月20日 申請(qǐng)日期2004年12月20日 優(yōu)先權(quán)日2003年12月19日
發(fā)明者斯科特·丹尼爾, 康·弗蘭克·凡, 尤里·埃爾·朱 申請(qǐng)人:美國(guó)博通公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1