在網(wǎng)絡(luò)邊緣有效使用數(shù)據(jù)包緩沖和帶寬資源的設(shè)備的制作方法
【專利摘要】本發(fā)明涉及混合網(wǎng)絡(luò)設(shè)備,該設(shè)備包括:能夠訪問服務(wù)器系統(tǒng)存儲器的服務(wù)器接口;網(wǎng)絡(luò)交換機(jī),其包括數(shù)據(jù)包處理引擎和交換機(jī)數(shù)據(jù)包緩沖器,數(shù)據(jù)包處理引擎配置成處理通過交換機(jī)路由的數(shù)據(jù)包,交換機(jī)數(shù)據(jù)包緩沖器配置成在發(fā)送之前將數(shù)據(jù)包排隊;至少一個網(wǎng)絡(luò)接口;以及至少一個總線主控的直接存儲器存取控制器,其配置成經(jīng)由至少一個服務(wù)器接口訪問服務(wù)器系統(tǒng)存儲器并且傳輸來自和至混合網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)。根據(jù)本發(fā)明的一個方面,總線傳輸仲裁器配置成控制從服務(wù)器存儲器至混合網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)包處理引擎的數(shù)據(jù)傳輸。
【專利說明】在網(wǎng)絡(luò)邊緣有效使用數(shù)據(jù)包緩沖和帶寬資源的設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及服務(wù)器網(wǎng)絡(luò)接口控制器和邊緣網(wǎng)絡(luò)交換機(jī)的領(lǐng)域,尤其針對大量緊密定位的服務(wù)器節(jié)點通過機(jī)柜頂式交換機(jī)(top-of-rack switch)互連并且連接至網(wǎng)絡(luò)的數(shù)據(jù)中心。
【背景技術(shù)】
[0002]在數(shù)據(jù)中心中,服務(wù)器節(jié)點通常密集地填裝在機(jī)柜中并且通過機(jī)柜頂式交換機(jī)互連,該機(jī)柜頂式交換機(jī)還與數(shù)據(jù)中心網(wǎng)絡(luò)中的其他機(jī)柜頂式交換機(jī)互連。每個服務(wù)器節(jié)點具有其自己的通過服務(wù)器外圍總線可訪問的網(wǎng)絡(luò)接口。網(wǎng)絡(luò)接口可實現(xiàn)為服務(wù)器芯片組中的網(wǎng)絡(luò)接口控制器或?qū)崿F(xiàn)為單獨的網(wǎng)絡(luò)接口卡,兩種實現(xiàn)都簡稱為NIC(網(wǎng)絡(luò)接口卡或網(wǎng)絡(luò)接口控制器)。NIC通過服務(wù)器側(cè)物理接口、網(wǎng)絡(luò)纜線以及交換機(jī)側(cè)物理接口連接至機(jī)柜頂式交換機(jī)。
[0003]數(shù)據(jù)中心中高密度的服務(wù)器節(jié)點對功率效率和互連帶寬提出了高要求,而且限制了從服務(wù)器節(jié)點至邊緣網(wǎng)絡(luò)交換機(jī)的網(wǎng)絡(luò)纜線的長度。此外,通常在數(shù)據(jù)中心中托管的應(yīng)用的分布特征對低互連延遲提出了高要求。
[0004]NIC通常經(jīng)由PCI Express (高速外部設(shè)備互連)外圍總線接入服務(wù)器節(jié)點的系統(tǒng)存儲器,并且將借助于總線主控的直接存儲器存取(DMA, direct memory access)控制器來移動來自和至服務(wù)器系統(tǒng)存儲器的網(wǎng)絡(luò)數(shù)據(jù)包。NIC將具有用于暫時存儲傳入和傳出的數(shù)據(jù)包的數(shù)據(jù)包緩沖存儲器。因為通常不能保證對服務(wù)器外圍總線和服務(wù)器系統(tǒng)存儲器的即時訪問,而NIC必須能夠以線路速率連續(xù)地從網(wǎng)絡(luò)接收數(shù)據(jù)包并且將開始發(fā)送的任何數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò),所以需要緩沖存儲器。
[0005]典型的NIC不具有邊緣網(wǎng)絡(luò)交換機(jī)的擁塞狀態(tài)的直接知識。掉包能夠利用標(biāo)準(zhǔn)的流量控制策略諸如IEEE802.1Qbb來避免,盡管該策略是粗粒的并且其在浪費網(wǎng)絡(luò)帶寬和在邊緣網(wǎng)絡(luò)交換機(jī)中的數(shù)據(jù)包緩沖方面造成相當(dāng)大的成本。可能還必須在片外存儲器中擴(kuò)展機(jī)柜頂式交換機(jī)緩沖資源以實現(xiàn)可接受的網(wǎng)絡(luò)性能,并因此浪費在交換機(jī)設(shè)備中的寶貴I/O帶寬。這導(dǎo)致了機(jī)柜頂式交換機(jī)的增加的功率消耗并因此對可實現(xiàn)的網(wǎng)絡(luò)連接密度設(shè)置了限制。
[0006]總之,數(shù)據(jù)中心的競爭力高度取決于可實現(xiàn)的服務(wù)器節(jié)點密度和服務(wù)器節(jié)點互連的容量和速度。這些量度轉(zhuǎn)而取決于NIC和邊緣網(wǎng)絡(luò)交換機(jī)的密度和功率效率,取決于其帶寬和延遲,并且最終取決于帶寬和數(shù)據(jù)包緩沖資源被利用的效率。
【發(fā)明內(nèi)容】
[0007]基于上述描述,本發(fā)明的一個方面是提供用于向NIC提供在網(wǎng)絡(luò)交換機(jī)中的網(wǎng)絡(luò)數(shù)據(jù)包隊列的狀態(tài)和尺寸的信息的方式,從而向NIC提供用于減輕或消除現(xiàn)有技術(shù)中的上述缺陷和單獨的或任意組合的不足中的一個或者更多個的方法。
[0008]本發(fā)明利用了數(shù)據(jù)中心環(huán)境中從服務(wù)器節(jié)點至第一網(wǎng)絡(luò)交換機(jī)的短物理距離,以通過將NIC功能與網(wǎng)絡(luò)交換機(jī)結(jié)合成混合網(wǎng)絡(luò)設(shè)備來降低延遲和主機(jī)系統(tǒng)復(fù)雜性。因此,發(fā)明人已通過將總線主控的直接存儲器存取控制器添加至混合網(wǎng)絡(luò)設(shè)備,實現(xiàn)了可分布于網(wǎng)絡(luò)交換機(jī)的NIC功能。這總體上減少了服務(wù)器和網(wǎng)絡(luò)交換機(jī)系統(tǒng)中使用的部件的總需要數(shù)量。此外,從服務(wù)器存儲器至所述混合網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)包處理引擎的數(shù)據(jù)傳輸可從混合網(wǎng)絡(luò)設(shè)備來控制。
[0009]此外,可在完整的或推遲的數(shù)據(jù)包傳輸之間做出選擇。在推遲的數(shù)據(jù)包傳輸中,最初從服務(wù)器系統(tǒng)存儲器讀取數(shù)據(jù)包的僅僅一部分。這使基于本發(fā)明的設(shè)備比傳統(tǒng)邊緣網(wǎng)絡(luò)交換機(jī)能夠更早地自由使用可用的帶寬資源以檢查數(shù)據(jù)包,從而更好地獲知數(shù)據(jù)包仲裁決定。
[0010]此外,本發(fā)明通過推遲或者消除數(shù)據(jù)包數(shù)據(jù)傳輸更有效地利用可用的數(shù)據(jù)包緩沖和帶寬資源。因此,推遲的數(shù)據(jù)傳輸?shù)挠欣幵谟卺尫诺膸捲试S更早地檢查附加的數(shù)據(jù)包報頭,從而實現(xiàn)更好的數(shù)據(jù)包仲裁。
[0011]根據(jù)本發(fā)明的一個方面,其涉及混合網(wǎng)絡(luò)設(shè)備,包括:
[0012]-能夠訪問服務(wù)器系統(tǒng)存儲器的至少一個服務(wù)器接口;
[0013]-網(wǎng)絡(luò)交換機(jī),該網(wǎng)絡(luò)交換機(jī)包括數(shù)據(jù)包處理引擎和交換機(jī)數(shù)據(jù)包緩沖器,該數(shù)據(jù)包處理引擎配置成處理通過交換機(jī)路由的數(shù)據(jù)包,該交換機(jī)數(shù)據(jù)包緩沖器配置成在發(fā)送之前將數(shù)據(jù)包排隊;
[0014]-至少一個網(wǎng)絡(luò)接口;以及
[0015]-至少一個總線主控DMA控制器,該總線主控DMA控制器配置成經(jīng)由所述至少一個服務(wù)器接口訪問所述服務(wù)器系統(tǒng)存儲器的數(shù)據(jù)并且傳輸來自和至所述混合網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)。
[0016]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,還包括:
[0017]-總線傳輸仲裁器,該總線傳輸仲裁器配置成控制從服務(wù)器存儲器至所述混合網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)包處理引擎的數(shù)據(jù)傳輸。
[0018]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,所述控制基于網(wǎng)絡(luò)交換機(jī)中的可用的資源。
[0019]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,所述控制還基于在服務(wù)器節(jié)點中排隊的數(shù)據(jù)包。
[0020]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,該控制取決于受軟件控制的設(shè)置。
[0021]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,總線主控DMA控制器配置成傳輸比完整數(shù)據(jù)包少的且足夠用于數(shù)據(jù)包處理引擎開始數(shù)據(jù)包處理的數(shù)據(jù)。
[0022]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,總線主控DMA控制器配置成傳輸比完整數(shù)據(jù)包少的且至少為開始所述數(shù)據(jù)包處理所需的數(shù)據(jù)量的數(shù)據(jù)。
[0023]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,總線主控DMA控制器配置成推遲數(shù)據(jù)包的剩余部分的傳輸。
[0024]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,混合網(wǎng)絡(luò)設(shè)備配置成存儲數(shù)據(jù)包處理結(jié)果直到數(shù)據(jù)傳輸重新開始,使得當(dāng)推遲的數(shù)據(jù)包傳輸重新開始時不需要重復(fù)數(shù)據(jù)包處理。
[0025]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,混合網(wǎng)絡(luò)設(shè)備配置成存儲數(shù)據(jù)包數(shù)據(jù)直到數(shù)據(jù)傳輸重新開始,使得當(dāng)推遲的數(shù)據(jù)包傳輸重新開始時需從服務(wù)器系統(tǒng)存儲器讀取比完整數(shù)據(jù)包少的數(shù)據(jù)。
[0026]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,混合網(wǎng)絡(luò)設(shè)備還配置成當(dāng)丟掉(drop) —個數(shù)據(jù)包時,廢棄(discard)在所述服務(wù)器系統(tǒng)存儲器中剩余的數(shù)據(jù)包數(shù)據(jù),使得所述剩余數(shù)據(jù)不傳輸至混合網(wǎng)絡(luò)設(shè)備。
[0027]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,總線主控DMA控制器利用PCI Express連接至服務(wù)器節(jié)點。
[0028]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,網(wǎng)絡(luò)交換機(jī)處理以太網(wǎng)數(shù)據(jù)包。
[0029]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,推遲數(shù)據(jù)包傳輸取決于數(shù)據(jù)包尺寸、可用的帶寬資源、可用的數(shù)據(jù)包存儲資源、數(shù)據(jù)包目的地隊列長度或者數(shù)據(jù)包目的地隊列流量控制狀態(tài)。
[0030]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,重新開始推遲的數(shù)據(jù)包傳輸取決于可用的帶寬資源、可用的數(shù)據(jù)包存儲資源、數(shù)據(jù)包目的地隊列長度、數(shù)據(jù)包在數(shù)據(jù)包目的地隊列中的位置、數(shù)據(jù)包目的地隊列流量控制狀態(tài)或者數(shù)據(jù)包處理的完成。
[0031]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,包括:
[0032]-總線主控DMA控制器;以及
[0033]-網(wǎng)絡(luò)交換機(jī)
[0034]-其中,通過DMA控制器的至網(wǎng)絡(luò)交換機(jī)的數(shù)據(jù)傳輸基于網(wǎng)絡(luò)交換機(jī)中的可用的資源來安排。
[0035]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,總線主控DMA控制器利用PCI Express連接至服務(wù)器節(jié)點。
[0036]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,網(wǎng)絡(luò)交換機(jī)處理以太網(wǎng)數(shù)據(jù)包。
[0037]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,當(dāng)所述數(shù)據(jù)包數(shù)據(jù)不需要確定數(shù)據(jù)包目的地時,所述數(shù)據(jù)包數(shù)據(jù)從服務(wù)器節(jié)點至混合網(wǎng)絡(luò)設(shè)備的傳輸被推遲。
[0038]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,存儲所確定的數(shù)據(jù)包目的地直到數(shù)據(jù)傳輸重新開始。
[0039]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,在傳輸重新開始之前廢棄所確定的數(shù)據(jù)包目的地。
[0040]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,推遲完整的數(shù)據(jù)包傳輸?shù)臎Q定取決于軟件控制的設(shè)置。
[0041]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,推遲數(shù)據(jù)包數(shù)據(jù)傳輸取決于是數(shù)據(jù)包尺寸。
[0042]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,推遲數(shù)據(jù)包數(shù)據(jù)傳輸取決于可用的帶寬資源。
[0043]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,推遲數(shù)據(jù)包數(shù)據(jù)傳輸取決于可用的數(shù)據(jù)包存儲資源。
[0044]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,推遲數(shù)據(jù)包數(shù)據(jù)傳輸取決于數(shù)據(jù)包目的地隊列長度。
[0045]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,推遲數(shù)據(jù)包數(shù)據(jù)傳輸取決于數(shù)據(jù)包目的地隊列流量控制狀態(tài)。
[0046]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,重新開始推遲的數(shù)據(jù)包數(shù)據(jù)傳輸取決于可用的帶寬資源。
[0047]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,重新開始推遲的數(shù)據(jù)包數(shù)據(jù)傳輸取決于可用的數(shù)據(jù)包存儲資源。
[0048]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,重新開始推遲的數(shù)據(jù)包數(shù)據(jù)傳輸取決于目的地隊列長度。
[0049]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,重新開始推遲的數(shù)據(jù)包數(shù)據(jù)傳輸取決于數(shù)據(jù)包在目的地隊列中的位置。
[0050]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,重新開始推遲的數(shù)據(jù)包數(shù)據(jù)傳輸取決于數(shù)據(jù)包目的地隊列流量控制狀態(tài)。
[0051]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,重新開始推遲的數(shù)據(jù)包數(shù)據(jù)傳輸取決于數(shù)據(jù)包處理的完成。
[0052]根據(jù)本發(fā)明的一個方面,其涉及一種混合網(wǎng)絡(luò)設(shè)備,其中,當(dāng)在設(shè)備中主動丟掉數(shù)據(jù)包時,丟掉該數(shù)據(jù)包的決定所不需要的數(shù)據(jù)包數(shù)據(jù)沒有傳輸至設(shè)備。
[0053]本發(fā)明的第一方面涉及一種將網(wǎng)絡(luò)接口控制器和網(wǎng)絡(luò)交換機(jī)集成進(jìn)混合網(wǎng)絡(luò)邊緣設(shè)備的方法。
[0054]本發(fā)明的第二方面涉及一種使網(wǎng)絡(luò)接口控制器獲知網(wǎng)絡(luò)交換機(jī)的狀態(tài)并且使用該信息來安排從本地連接的服務(wù)器的系統(tǒng)存儲器至網(wǎng)絡(luò)交換機(jī)的傳輸?shù)姆椒ā?br>
[0055]本發(fā)明的第三方面涉及一種推遲從服務(wù)器系統(tǒng)存儲器至網(wǎng)絡(luò)交換機(jī)的數(shù)據(jù)包數(shù)據(jù)傳輸?shù)姆椒ā?br>
[0056]本發(fā)明的第四方面涉及一種推遲從服務(wù)器系統(tǒng)存儲器至網(wǎng)絡(luò)交換機(jī)的數(shù)據(jù)包數(shù)據(jù)傳輸?shù)姆椒?,其中,存儲?shù)據(jù)包處理結(jié)果,使得當(dāng)推遲的數(shù)據(jù)包傳輸重新開始時需從服務(wù)器系統(tǒng)存儲器讀取比完整數(shù)據(jù)包少的數(shù)據(jù)。
[0057]本發(fā)明的第五方面涉及一種選擇何時推遲從服務(wù)器系統(tǒng)存儲器的數(shù)據(jù)包數(shù)據(jù)發(fā)送從而在提供第三方面的優(yōu)點的同時保持低延遲的方法。
[0058]本發(fā)明的第六方面涉及一種需要重復(fù)的數(shù)據(jù)包處理的保持網(wǎng)絡(luò)交換機(jī)緩沖資源的方法,其中,選擇性地扔掉數(shù)據(jù)包處理結(jié)果。
[0059]本發(fā)明的第七方面涉及一種通過消除對丟掉的數(shù)據(jù)包的一部分進(jìn)行讀取的需要來保持服務(wù)器系統(tǒng)存儲器帶寬和總線帶寬的方法。
[0060]上面的本發(fā)明的各方面中的任意特征可以以可形成本發(fā)明的不同變體的任意方式結(jié)合。
【專利附圖】
【附圖說明】
[0061]根據(jù)本發(fā)明的某些實施例的下列詳細(xì)描述,本發(fā)明的其他目的、特征以及優(yōu)點將會很明顯,其中,本發(fā)明的某些實施例將參考附圖進(jìn)行更詳細(xì)的描述,其中:
[0062]圖1示出了幾個服務(wù)器節(jié)點連接至邊緣網(wǎng)絡(luò)交換機(jī)的系統(tǒng);
[0063]圖2示出了在典型現(xiàn)有技術(shù)系統(tǒng)中通過應(yīng)用軟件發(fā)送至網(wǎng)絡(luò)的數(shù)據(jù)包;
[0064]圖3示出了根據(jù)本發(fā)明的實施例的幾個節(jié)點連接至混合網(wǎng)絡(luò)設(shè)備的系統(tǒng);
[0065]圖4示出了根據(jù)本發(fā)明的實施例的通過應(yīng)用軟件發(fā)送至網(wǎng)絡(luò)的數(shù)據(jù)包;以及
[0066]圖5示出了根據(jù)本發(fā)明的實施例的框圖;以及
[0067]圖6示出了根據(jù)本發(fā)明的實施例的從以太網(wǎng)接口接收數(shù)據(jù)包的流程圖;以及
[0068]圖7示出了根據(jù)本發(fā)明的實施例的從軟件應(yīng)用發(fā)送數(shù)據(jù)包的流程圖;以及
[0069]圖8示出了根據(jù)本發(fā)明的實施例的總線傳輸仲裁的流程圖;以及
[0070]圖9示出了根據(jù)本發(fā)明的實施例的描述在外圍總線接口上接收的數(shù)據(jù)包在發(fā)送隊列中排隊的流程圖;以及
[0071]圖10示出了根據(jù)本發(fā)明的實施例的重新開始推遲的數(shù)據(jù)包傳輸?shù)臎Q定的流程圖;以及
[0072]圖11示出了從服務(wù)器存儲器傳輸重新開始的數(shù)據(jù)包的流程圖;以及
[0073]圖12示出了根據(jù)本發(fā)明的實施例的網(wǎng)絡(luò)傳輸仲裁器的流程圖;以及
[0074]圖13示出了根據(jù)本發(fā)明的實施例的數(shù)據(jù)包至服務(wù)器存儲器的傳輸?shù)牧鞒虉D;以及
[0075]圖14示出了根據(jù)本發(fā)明的實施例的數(shù)據(jù)包在以太網(wǎng)接口上的發(fā)送的流程圖。
【具體實施方式】
[0076]本發(fā)明將利用PCI Express服務(wù)器外圍總線和以太網(wǎng)網(wǎng)絡(luò)來例示,但是能夠利用任意網(wǎng)絡(luò)和外圍總線技術(shù)來實現(xiàn)。圖1中給出了根據(jù)現(xiàn)有技術(shù)的典型網(wǎng)絡(luò)系統(tǒng)100,其中,包括NIC109的服務(wù)器節(jié)點101與網(wǎng)絡(luò)交換機(jī)113經(jīng)由以太網(wǎng)鏈路110互連。通過連接至服務(wù)器PCI Express總線104的所述NIC109來提供服務(wù)器側(cè)以太網(wǎng)連接。NIC109包括PCIExpress端點105、數(shù)據(jù)包緩沖器107、以太網(wǎng)接口 108以及總線主控DMA控制器106,該總線主控DMA控制器106處理在服務(wù)器系統(tǒng)存儲器102與NIC數(shù)據(jù)包緩沖器107之間經(jīng)由PCI Express總線104的數(shù)據(jù)傳輸。在服務(wù)器系統(tǒng)存儲器102中創(chuàng)建的并且為了發(fā)送而排隊的每個數(shù)據(jù)包將由DMA控制器106經(jīng)由PCI Express總線104獲取,存儲進(jìn)數(shù)據(jù)包緩沖器107中并且在以太網(wǎng)接口 108上發(fā)送至網(wǎng)絡(luò)交換機(jī)113。在NIC以太網(wǎng)接口 108上接收的來自網(wǎng)絡(luò)交換機(jī)113的數(shù)據(jù)包存儲在數(shù)據(jù)包緩沖器107中,由DMA控制器106經(jīng)由PCIExpress總線104寫入服務(wù)器系統(tǒng)存儲器102,并且排隊以由在服務(wù)器CPU103上運行的服務(wù)器軟件來處理。網(wǎng)絡(luò)交換機(jī)113包括多個面向服務(wù)器的以太網(wǎng)接口 111,多個面向網(wǎng)絡(luò)的以太網(wǎng)接口 114,以及包括數(shù)據(jù)包處理引擎115和數(shù)據(jù)包緩沖器116的交換機(jī)核112。通常存在多個面向服務(wù)器的以太網(wǎng)接口 111 (如在圖中所指示),每個接口都連接至服務(wù)器節(jié)點101、117。對于每個傳入的數(shù)據(jù)包,數(shù)據(jù)包處理引擎115將檢查數(shù)據(jù)包報頭,并且網(wǎng)絡(luò)交換機(jī)113將基于該檢查和當(dāng)前資源狀態(tài)來丟掉該數(shù)據(jù)包或者將該數(shù)據(jù)包轉(zhuǎn)發(fā)至一個或幾個以太網(wǎng)接口 111、114。在數(shù)據(jù)包被轉(zhuǎn)發(fā)之前,還可以基于數(shù)據(jù)包報頭來修改該數(shù)據(jù)包。
[0077]根據(jù)現(xiàn)有技術(shù)的描述數(shù)據(jù)包如何通過服務(wù)器軟件應(yīng)用發(fā)送至網(wǎng)絡(luò)的數(shù)據(jù)包處理順序200示出在圖2中。在服務(wù)器節(jié)點上執(zhí)行的應(yīng)用軟件201通過將要發(fā)送的數(shù)據(jù)寫入至服務(wù)器系統(tǒng)存儲器209中的數(shù)據(jù)包緩沖器210來準(zhǔn)備該要發(fā)送的數(shù)據(jù)。然后,將數(shù)據(jù)的句柄(handle)轉(zhuǎn)到網(wǎng)絡(luò)協(xié)議棧202。網(wǎng)絡(luò)協(xié)議棧202會將數(shù)據(jù)劃分成數(shù)據(jù)包,通過在數(shù)據(jù)包數(shù)據(jù)之前添加網(wǎng)絡(luò)報頭來擴(kuò)展每個數(shù)據(jù)包。將服務(wù)器系統(tǒng)存儲器209中的數(shù)據(jù)包的句柄轉(zhuǎn)手至NIC驅(qū)動器203,該NIC驅(qū)動器203轉(zhuǎn)而將這些處理轉(zhuǎn)到NICDMA控制器204。每個數(shù)據(jù)包通過NIC DMA控制器204從系統(tǒng)存儲器209移動至NIC數(shù)據(jù)包緩沖器211,并且在以太網(wǎng)接口 205上以線路速率發(fā)送。當(dāng)數(shù)據(jù)包通過以太網(wǎng)接口 206到達(dá)網(wǎng)絡(luò)交換機(jī)時,數(shù)據(jù)包報頭被提取并發(fā)送至數(shù)據(jù)包處理207。數(shù)據(jù)包數(shù)據(jù)存儲進(jìn)交換機(jī)數(shù)據(jù)包緩沖器212?;跀?shù)據(jù)包處理207的結(jié)果和交換機(jī)中的資源狀態(tài),該數(shù)據(jù)包或者被丟掉,或者為了在一個或幾個以太網(wǎng)接口 208上進(jìn)行發(fā)送而排隊。
[0078]為了避免耗盡網(wǎng)絡(luò)交換機(jī)113中的緩沖資源116,可以構(gòu)建符合標(biāo)準(zhǔn)的暫停幀并且將這些符合標(biāo)準(zhǔn)的暫停幀從交換機(jī)發(fā)送至一個或幾個連接的以太網(wǎng)接口 108。當(dāng)支持流量控制的以太網(wǎng)接口 108接收暫停幀時,數(shù)據(jù)包發(fā)送在該幀中所指示的一段時間內(nèi)被暫停。流量控制的粒度受限于帶外信令的缺乏并且因此依賴于可用標(biāo)準(zhǔn),諸如IEEE802.1Qbb0必須確定在每一端的數(shù)據(jù)包緩沖107、116的大小以解釋以太網(wǎng)連接110的往返延遲和尺寸最大的以太網(wǎng)幀的發(fā)送時間。
[0079]在現(xiàn)有技術(shù)系統(tǒng)中,在NIC中的中間緩沖導(dǎo)致在延遲和功耗上的消耗。
[0080]現(xiàn)有技術(shù)中,一旦開始數(shù)據(jù)包傳輸,則數(shù)據(jù)包傳輸總是會全部完成。因此,數(shù)據(jù)包因在服務(wù)器節(jié)點或交換機(jī)中進(jìn)行發(fā)送從而在后來的數(shù)據(jù)包能夠被傳輸之前該數(shù)據(jù)包將總是被完全丟掉或者被完全傳輸。結(jié)果,低優(yōu)先級數(shù)據(jù)包會通過暫時阻止更高優(yōu)先級數(shù)據(jù)包的發(fā)送而在更高優(yōu)先級數(shù)據(jù)包流中引入延遲。
[0081]在現(xiàn)有技術(shù)中,即使輸出目的地隊列擁塞,數(shù)據(jù)包仍會從服務(wù)器節(jié)點傳輸至交換機(jī)數(shù)據(jù)包緩沖器,潛在地浪費輸入帶寬和交換機(jī)數(shù)據(jù)包緩沖器空間。這種無條件的數(shù)據(jù)包傳輸也會使服務(wù)器應(yīng)用看不到網(wǎng)絡(luò)擁塞問題。
[0082]在現(xiàn)有技術(shù)中,即使在系統(tǒng)中不存在全局性資源短缺,但服務(wù)器節(jié)點資源的暫時缺乏仍會導(dǎo)致數(shù)據(jù)包丟掉。
[0083]下文中將參考附圖更充分地描述本發(fā)明的實施例。然而,本發(fā)明可以以許多不同的形式來實施并且不應(yīng)理解為限于本文給出的實施例和變形。而是,提供該實施例和變形,使得本公開將全面和完整,并且將向本領(lǐng)域中的那些技術(shù)人員更充分地傳達(dá)本發(fā)明的范圍。全文中,相同的附圖標(biāo)記表示相同的元件。
[0084]圖3中描繪了基于本發(fā)明的利用混合網(wǎng)絡(luò)設(shè)備300的網(wǎng)絡(luò)系統(tǒng)的概況?;旌暇W(wǎng)絡(luò)系統(tǒng)300包括無NIC的服務(wù)器節(jié)點301和混合網(wǎng)絡(luò)設(shè)備310,其中,在所述服務(wù)器節(jié)點301中的PCI Express服務(wù)器外圍總線304延伸305以到達(dá)混合網(wǎng)絡(luò)設(shè)備310?;旌暇W(wǎng)絡(luò)設(shè)備310包括至少一個PCIExpress端點306、至少一個總線主控DMA控制器307、至少一個以太網(wǎng)接口 309以及交換機(jī)核308。至少一個DMA控制器307允許對獨立于混合節(jié)點301中的服務(wù)器CPU303的服務(wù)器節(jié)點301的服務(wù)器系統(tǒng)存儲器302進(jìn)行訪問?;旌暇W(wǎng)絡(luò)設(shè)備310中的交換機(jī)核308包括數(shù)據(jù)包緩沖器312和數(shù)據(jù)包處理引擎311。
[0085]描述數(shù)據(jù)包如何通過服務(wù)器軟件應(yīng)用發(fā)送至網(wǎng)絡(luò)的、根據(jù)本發(fā)明的混合網(wǎng)絡(luò)系統(tǒng)的數(shù)據(jù)包處理順序400在圖4中例示。在混合網(wǎng)絡(luò)系統(tǒng)中,許多這樣的序列可同時作用。在服務(wù)器節(jié)點301上執(zhí)行的應(yīng)用軟件401通過將要發(fā)送的數(shù)據(jù)寫入服務(wù)器系統(tǒng)存儲器407中的數(shù)據(jù)包緩沖器408來準(zhǔn)備該要發(fā)送的數(shù)據(jù),然后將對數(shù)據(jù)的句柄轉(zhuǎn)到網(wǎng)絡(luò)協(xié)議棧402。網(wǎng)絡(luò)協(xié)議棧402會將數(shù)據(jù)劃分成數(shù)據(jù)包,通過在數(shù)據(jù)包數(shù)據(jù)之前添加網(wǎng)絡(luò)報頭來擴(kuò)展每個數(shù)據(jù)包。將系統(tǒng)存儲器407中的數(shù)據(jù)包的句柄轉(zhuǎn)交至混合網(wǎng)絡(luò)設(shè)備驅(qū)動器403,該設(shè)備驅(qū)動器轉(zhuǎn)而將這些處理轉(zhuǎn)交到交換機(jī)DMA控制器404。數(shù)據(jù)包完整地或部分地從服務(wù)器系統(tǒng)存儲器407移動至混合網(wǎng)絡(luò)設(shè)備,在這里數(shù)據(jù)包報頭被提取并且發(fā)送至數(shù)據(jù)包處理405,同時數(shù)據(jù)包數(shù)據(jù)存儲在混合網(wǎng)絡(luò)設(shè)備中的交換機(jī)數(shù)據(jù)包緩沖器409中。在現(xiàn)有技術(shù)中,將從服務(wù)器系統(tǒng)存儲器傳輸完整的數(shù)據(jù)包,但是在本發(fā)明中,能夠在完整的或推遲的數(shù)據(jù)包傳輸之間做出選擇。在推遲的數(shù)據(jù)包傳輸中,最初從服務(wù)器系統(tǒng)存儲器讀取數(shù)據(jù)包的僅僅一部分??捎蒁MA控制器307基于每個數(shù)據(jù)包來采取推遲完成數(shù)據(jù)包傳輸?shù)臎Q定。
[0086]基于數(shù)據(jù)包處理405的結(jié)果和混合網(wǎng)絡(luò)設(shè)備中的資源狀態(tài),數(shù)據(jù)包或者被丟掉或者為了在一個或幾個以太網(wǎng)接口 406上進(jìn)行發(fā)送等而排隊。
[0087]圖5中示出了根據(jù)本發(fā)明的實施例的混合網(wǎng)絡(luò)設(shè)備500的更詳細(xì)的框圖?;旌暇W(wǎng)絡(luò)設(shè)備500包括至少一個PCI Express端點501、至少一個總線主控DMA控制器503、總線傳輸仲裁器504、數(shù)據(jù)包處理引擎506、數(shù)據(jù)包緩沖器507、網(wǎng)絡(luò)傳輸仲裁器505以及以太網(wǎng)接口 502。PCI Express端點501實現(xiàn)了從混合網(wǎng)絡(luò)設(shè)備310經(jīng)由服務(wù)器PCI Express總線304對服務(wù)器系統(tǒng)存儲器302的訪問。連接至PCI Express端點501的DMA控制器503傳輸來自和至服務(wù)器節(jié)點301中的服務(wù)器系統(tǒng)存儲器302的數(shù)據(jù)包數(shù)據(jù)和相關(guān)的元數(shù)據(jù)??偩€傳輸仲裁器504控制從混合網(wǎng)絡(luò)設(shè)備310對外圍總線304的訪問,并且選擇要將哪個數(shù)據(jù)包數(shù)據(jù)從服務(wù)器系統(tǒng)存儲器302傳輸至混合網(wǎng)絡(luò)設(shè)備310的數(shù)據(jù)包處理引擎506。該選擇可以基于在服務(wù)器節(jié)點301、313(如果存在多個服務(wù)器節(jié)點)和混合網(wǎng)絡(luò)設(shè)備數(shù)據(jù)包緩沖器507中排隊的數(shù)據(jù)包的信息。數(shù)據(jù)包處理引擎506確定數(shù)據(jù)包的目的地和輸出格式。還可以執(zhí)行各種操作,諸如,設(shè)置數(shù)據(jù)包優(yōu)先級。數(shù)據(jù)包緩沖器507對數(shù)據(jù)包進(jìn)行存儲,直到安排這些數(shù)據(jù)包在接口上進(jìn)行發(fā)送。目的地可以是以太網(wǎng)接口 502或PCI Express端點501。網(wǎng)絡(luò)傳輸仲裁器505選擇在數(shù)據(jù)包緩沖器507中排隊的數(shù)據(jù)包中的某一個來傳輸。該選擇是基于來自數(shù)據(jù)包處理的屬性并且基于可用的資源。以太網(wǎng)接口 502實現(xiàn)了網(wǎng)絡(luò)訪問。混合網(wǎng)絡(luò)設(shè)備310可包括這些接口中的一個或幾個或不包括這些接口。
[0088]圖6中示出了根據(jù)本發(fā)明的實施例的描述在混合網(wǎng)絡(luò)設(shè)備500中從網(wǎng)絡(luò)接收數(shù)據(jù)包的處理的流程600。數(shù)據(jù)包通過一個或多個以太網(wǎng)接口來接收601、502,并且以先來先服務(wù)的方式提供至數(shù)據(jù)包處理引擎602、506。數(shù)據(jù)包數(shù)據(jù)存儲在數(shù)據(jù)包緩沖器507中,等待數(shù)據(jù)包處理602、506的完成。一旦數(shù)據(jù)包處理結(jié)束,均在混合網(wǎng)絡(luò)設(shè)備500中,將數(shù)據(jù)包的句柄放置在發(fā)送隊列603中,等待網(wǎng)絡(luò)傳輸仲裁器505的仲裁。
[0089]根據(jù)本發(fā)明的實施例的描述從在連接至混合網(wǎng)絡(luò)設(shè)備310的服務(wù)器節(jié)點301上執(zhí)行的軟件應(yīng)用401發(fā)送數(shù)據(jù)包的處理的流程700在圖7中示出。軟件構(gòu)建了服務(wù)器節(jié)點301中的服務(wù)器系統(tǒng)存儲器302中的數(shù)據(jù)包701和數(shù)據(jù)包描述符702。數(shù)據(jù)包描述符包括數(shù)據(jù)包元數(shù)據(jù)和數(shù)據(jù)包數(shù)據(jù)的句柄。通過將數(shù)據(jù)包描述符的句柄經(jīng)由服務(wù)器節(jié)點301外圍總線接口寫入至混合網(wǎng)絡(luò)設(shè)備310內(nèi)的硬件寄存器來將該句柄提供703至混合網(wǎng)絡(luò)設(shè)備310,該服務(wù)器節(jié)點301外圍總線接口在這種情況下是PCI Express接口 304、305、306?;旌暇W(wǎng)絡(luò)設(shè)備310內(nèi)的DMA307使指針在先入先出接收區(qū)(RX FIFO, receive first-1n-first-out)中排隊704,等待總線傳輸仲裁504。RX FIFO中的每個句柄與服務(wù)器節(jié)點301中的服務(wù)器系統(tǒng)存儲器302中的數(shù)據(jù)包有一對一對應(yīng)關(guān)系。每個總線連接可能存在不止一個RX FIFO (如圖3中所示),每個RX FIFO由其自己的硬件寄存器提供。
[0090]圖8中示出了根據(jù)本發(fā)明的實施例的在混合網(wǎng)絡(luò)設(shè)備500中的總線傳輸仲裁800的流程圖。仲裁有兩方面,數(shù)據(jù)包仲裁(包括步驟805和806)和總線仲裁(包括步驟801、802,803和804)??偩€仲裁防止描述符和報頭的獲取堵塞完整的數(shù)據(jù)包的傳輸,并且平衡為接收傳輸和發(fā)送傳輸而分配的帶寬。這通過如下方式來實現(xiàn):首先對完成推遲的數(shù)據(jù)包傳輸給出超過開始新數(shù)據(jù)包傳輸?shù)膰?yán)格優(yōu)先級802,并且然后對開始接收數(shù)據(jù)包傳輸給出超過開始發(fā)送數(shù)據(jù)包傳輸?shù)膰?yán)格優(yōu)先級803。通過挑選非空RXFIFO中的一個來選擇接收數(shù)據(jù)包805。通過首先以循環(huán)方式挑選與非空RX FIFO的外圍總線連接并且然后以嚴(yán)格的優(yōu)先級在屬于相同總線的RX FIFO之間進(jìn)行挑選來選擇RX FIFO。通過挑選非空的先入先出發(fā)送區(qū)(TXFIFO)中的一個來選擇806發(fā)送數(shù)據(jù)包。通過首先以循環(huán)方式挑選與非空TXFIFO的外圍總線連接并且然后以嚴(yán)格的優(yōu)先級在屬于相同總線的TX FIFO之間進(jìn)行挑選來選擇TX FIFO。當(dāng)已經(jīng)選擇了 FIFO時,向DMA控制器通知該決定807、808、809。
[0091]現(xiàn)有技術(shù)中的NIC和集成的NIC和交換機(jī)在服務(wù)器節(jié)點存儲器與交換機(jī)緩沖存儲器之間傳輸完整的數(shù)據(jù)包。在現(xiàn)有技術(shù)中,可以在數(shù)據(jù)包傳輸完成之前開始數(shù)據(jù)包處理,而在本發(fā)明中,DMA控制器具有這樣的能力,即,獲取部分?jǐn)?shù)據(jù)包并且將該數(shù)據(jù)包報頭提供至數(shù)據(jù)包處理引擎,同時推遲或中止完整的數(shù)據(jù)包的傳輸,從而保留交換機(jī)數(shù)據(jù)包緩沖和帶寬資源。
[0092]圖9示出了根據(jù)本發(fā)明的實施例的從已決定從服務(wù)器節(jié)點301向混合網(wǎng)絡(luò)設(shè)備310傳輸數(shù)據(jù)包的點至數(shù)據(jù)包進(jìn)行排隊以從混合網(wǎng)絡(luò)設(shè)備310發(fā)送的點所采取的步驟。當(dāng)總線傳輸仲裁器通過指示RXFIF0901而開始接收傳輸時,DMA控制器307讀取來自RX FIFO的描述符句柄并且使用該句柄以通過服務(wù)器系統(tǒng)總線接口 903從服務(wù)器系統(tǒng)存儲器302讀取描述符。在現(xiàn)有技術(shù)中,完整的數(shù)據(jù)包會從服務(wù)器系統(tǒng)存儲器傳輸,但在本發(fā)明,可以在完整的數(shù)據(jù)包傳輸904或推遲的數(shù)據(jù)包傳輸910之間做出選擇。在推遲的數(shù)據(jù)包傳輸中,最初從服務(wù)器系統(tǒng)存儲器中讀取數(shù)據(jù)包的僅僅一部分。可由DMA控制器307基于每個數(shù)據(jù)包來采用推遲完成數(shù)據(jù)包傳輸?shù)臎Q定。這使基于本發(fā)明的設(shè)備比傳統(tǒng)邊緣網(wǎng)絡(luò)交換機(jī)能夠更早地自由使用可用的帶寬資源以檢查數(shù)據(jù)包,從而更好地獲知數(shù)據(jù)包仲裁決定。這導(dǎo)致更好地利用可用的帶寬和緩沖器資源。存在幾種用于做出推遲904完整的數(shù)據(jù)包傳輸?shù)臎Q定的方法。根據(jù)本發(fā)明,用于做出推遲904完整的數(shù)據(jù)包傳輸?shù)臎Q定的不同變形可以是:
[0093]I)使用軟件控制的設(shè)置;
[0094]II)決定基于數(shù)據(jù)包尺寸閾值,其中,高于閾值尺寸的數(shù)據(jù)包將總被推遲,
[0095]III)決定基于可用的帶寬資源的閾值,其中,當(dāng)可用的資源低于閾值時將推遲所有數(shù)據(jù)包,并且
[0096]IV)決定基于可用的數(shù)據(jù)包緩沖資源的閾值,其中,當(dāng)可用的資源低于閾值時,將推遲所有數(shù)據(jù)包,
[0097]V)決定基于數(shù)據(jù)包目的地隊列長度,其中,當(dāng)隊列長度高于閾值時,將推遲針對目的地隊列的所有數(shù)據(jù)包,以及
[0098]VI)決定基于數(shù)據(jù)包目的地隊列的流量控制狀態(tài),其中,當(dāng)隊列暫停時,將推遲針對目的地隊列的所有數(shù)據(jù)包。
[0099]同時,利用在數(shù)據(jù)包描述符中的數(shù)據(jù)包數(shù)據(jù)句柄從服務(wù)器節(jié)點存儲器獲取數(shù)據(jù)包的開始905、906。獲取的數(shù)據(jù)的量至少是開始數(shù)據(jù)包處理所需的量。所讀取的數(shù)據(jù)包的第一部分提供至數(shù)據(jù)包處理引擎907、908。數(shù)據(jù)包處理的結(jié)果是用于數(shù)據(jù)包修改的目的地、指令和服務(wù)屬性品質(zhì)。當(dāng)推遲的數(shù)據(jù)包的數(shù)據(jù)包處理結(jié)果可獲得時,在本發(fā)明中在無附加帶寬成本的情況下能夠丟掉數(shù)據(jù)包911。如果未丟掉該數(shù)據(jù)包,則數(shù)據(jù)包或者被整個讀取909或者被進(jìn)一步推遲。對于推遲的數(shù)據(jù)包,還可以廢棄處理結(jié)果913,但是需要將數(shù)據(jù)包句柄退回至RX FIR0914以便在稍后的時間重新進(jìn)行處理。對于既沒有廢棄又沒有丟掉的推遲的數(shù)據(jù)包,將描述符存儲在推遲池912,等待重新開始決定。對于推遲的數(shù)據(jù)包,獲取的數(shù)據(jù)的量寫入至描述符?;谀康牡睾头?wù)屬性品質(zhì),將沒有廢棄或丟掉的任何數(shù)據(jù)包放置在發(fā)送隊列915,等待網(wǎng)絡(luò)仲裁。對于排隊的數(shù)據(jù)包,將數(shù)據(jù)包數(shù)據(jù)和數(shù)據(jù)包處理的結(jié)果存儲在數(shù)據(jù)包緩沖器中。
[0100]圖10中示出了在本發(fā)明的實施例中重新開始推遲的數(shù)據(jù)包傳輸100的處理。存在幾種用于采用開始完成數(shù)據(jù)包傳輸?shù)臎Q定的方法。根據(jù)本發(fā)明,采用開始完成數(shù)據(jù)包傳輸1001的決定的不同變形可以是:
[0101]I)當(dāng)存在可用的帶寬時,開始完成數(shù)據(jù)包傳輸,
[0102]II)當(dāng)數(shù)據(jù)包緩沖資源變得可用時,開始完成數(shù)據(jù)包傳輸,
[0103]III)當(dāng)發(fā)送隊列中數(shù)據(jù)包的數(shù)量或者數(shù)據(jù)包之前的數(shù)據(jù)包數(shù)據(jù)量低于閾值時,開始完成數(shù)據(jù)包傳輸,
[0104]IV)當(dāng)已確定了數(shù)據(jù)包目的地隊列并且該隊列的尺寸低于閾值時,開始完成數(shù)據(jù)包傳輸,
[0105]V)當(dāng)數(shù)據(jù)包目的地隊列的流量控制狀態(tài)從暫停變成非暫停時,開始完成數(shù)據(jù)包傳輸,以及
[0106]VI)當(dāng)數(shù)據(jù)包處理結(jié)束時,開始完成數(shù)據(jù)包傳輸。
[0107]當(dāng)采用了重新開始推遲的數(shù)據(jù)包傳輸?shù)臎Q定時,將數(shù)據(jù)包描述符從推遲池移出并且放置在推遲FIFO中1003,等待總線仲裁。
[0108]圖11示出了根據(jù)本發(fā)明的實施例的當(dāng)總線傳輸仲裁器選擇了推遲FIF01101時所采取的步驟的流程圖1100。首先,從推遲FIFO讀取描述符1102,然后利用數(shù)據(jù)包句柄和如在描述符中存儲的所示出的之前讀取的量從服務(wù)器系統(tǒng)存儲器讀取該數(shù)據(jù)包的剩余部分1103。
[0109]圖12示出了根據(jù)本發(fā)明的實施例的網(wǎng)絡(luò)傳輸仲裁的流程圖1200。數(shù)據(jù)包發(fā)送決定在TX FIFO中排隊,并且每個以太網(wǎng)接口和每個總線接口映射至TX FIFO。當(dāng)在TX FIFO中存在空閑空間1201并且在發(fā)送隊列中存在至少一個為了網(wǎng)絡(luò)仲裁而排隊的數(shù)據(jù)包1202時,能夠選擇發(fā)送隊列1203、1204。通過首先以循環(huán)方式挑選與非空發(fā)送隊列的發(fā)送接口 1203并且然后以嚴(yán)格的優(yōu)先級在屬于相同接口的發(fā)送隊列之間進(jìn)行挑選1204來選擇發(fā)送隊列。當(dāng)已選擇了發(fā)送隊列1203、1204時,將在隊列的頭部的數(shù)據(jù)包句柄移動至TXFIF01205。經(jīng)由服務(wù)器外圍總線接口至直接連接到混合網(wǎng)絡(luò)設(shè)備的服務(wù)器節(jié)點的數(shù)據(jù)傳輸完全由混合網(wǎng)絡(luò)設(shè)備DMA控制器控制。DMA控制器將數(shù)據(jù)包直接寫入至服務(wù)器系統(tǒng)存儲器,只要數(shù)據(jù)包被完全傳輸,其就被提供至在服務(wù)器上執(zhí)行的軟件。該處理的流程圖1300在圖13中示出。
[0110]服務(wù)器軟件預(yù)分配緩沖器以保持所接收的數(shù)據(jù)包,并且創(chuàng)建包括用于所分配的緩沖器的句柄和用于數(shù)據(jù)包元數(shù)據(jù)的附加空間的緩沖器描述符。用于緩沖器描述符的句柄通過將它們經(jīng)由服務(wù)器外圍總線接口寫入至混合網(wǎng)絡(luò)設(shè)備內(nèi)的硬件寄存器來提供至該設(shè)備。DMA控制器將該句柄放置在TX FIFO緩沖器中,等待發(fā)送數(shù)據(jù)包傳輸。
[0111]當(dāng)總線傳輸仲裁器通過指示TX FIFO而開始了發(fā)送傳輸1301時,DMA控制器從TXFIFO緩沖器讀取空緩沖器描述符的句柄,然后使用該句柄通過服務(wù)器系統(tǒng)總線接口從服務(wù)器系統(tǒng)存儲器讀取描述符1303。
[0112]當(dāng)數(shù)據(jù)包數(shù)據(jù)可用1304時,利用在空緩沖器描述符中的數(shù)據(jù)句柄,經(jīng)由服務(wù)器外圍總線將數(shù)據(jù)包從數(shù)據(jù)包緩沖器讀取出來1305并且寫入服務(wù)器系統(tǒng)存儲器1306。然后描述符被填寫了數(shù)據(jù)包元數(shù)據(jù)1307并且寫回至服務(wù)器系統(tǒng)存儲器1308。一旦數(shù)據(jù)包數(shù)據(jù)和描述符被傳輸至服務(wù)器系統(tǒng)存儲器,則產(chǎn)生服務(wù)器中斷1309,向服務(wù)器軟件通知發(fā)送的數(shù)據(jù)包。
[0113]服務(wù)器軟件在空緩沖器描述符句柄被消耗時將用新的空緩沖器描述符句柄補(bǔ)充TX FIFO緩沖器。
[0114]圖14中例示了在本發(fā)明的實施例中用于以太網(wǎng)接口的數(shù)據(jù)包發(fā)送啟動。當(dāng)存在可用的網(wǎng)絡(luò)帶寬1401并且存在至少一個為了在TX FITO中發(fā)送而排隊的數(shù)據(jù)包1402時才能夠開始發(fā)送。當(dāng)足夠的數(shù)據(jù)包數(shù)據(jù)可用以允許在以太網(wǎng)接口線路速率下進(jìn)行數(shù)據(jù)包發(fā)送1403時,數(shù)據(jù)包從數(shù)據(jù)包緩沖器讀取出來1404并且在以太網(wǎng)接口上發(fā)送1405。發(fā)送通過網(wǎng)絡(luò)傳輸仲裁器開始,但之后由網(wǎng)絡(luò)接口的線路率來支配。
[0115]總而言之,在本發(fā)明中,在NIC中的數(shù)據(jù)包緩沖和處理被忽略,從而允許服務(wù)器節(jié)點存儲器與交換機(jī)數(shù)據(jù)包緩沖器之間的直接連接,因此,允許更好的流量控制,更好的帶寬利用,數(shù)據(jù)包緩沖器資源的更好利用,更低的延遲,更低的丟包率,更少的元件數(shù)量、更低的功耗和更聞的集成。
[0116]本文中所使用的術(shù)語目的僅是為了描述特定實施例并且并不意在限制本發(fā)明。如本文中所使用的,單數(shù)形式“一(a)”、“一(an)”和“該(the) ”意在還包括復(fù)數(shù)形式,除非上下文清楚地指示并非如此。還要理解的是,術(shù)語“包括”(“comprises”、“comprising”、“includes”和/或“including”)在本文中使用時指存在所述的特征、整數(shù)、步驟、操作、元件和/或部件,但是不排除存在或者增加一個或多個其他特征、整數(shù)、步驟、操作、元件、部件和/或它們的組。
[0117]除非另有規(guī)定,否則本文所使用的所有術(shù)語(包括技術(shù)和科學(xué)術(shù)語)具有與本發(fā)明所屬【技術(shù)領(lǐng)域】中的普通技術(shù)人員通常所理解的含義相同的含義。還要理解的是,本文中所使用的術(shù)語應(yīng)理解為具有與其在本說明書的上下文和相關(guān)領(lǐng)域中的含義一致的含義并且將不以理想的或過于正式的意義來解釋,除非在本文明確地這樣規(guī)定。
[0118]上面已描述了本發(fā)明的原理、優(yōu)選實施例和操作的模式。然而,本發(fā)明應(yīng)視為示例性的而不是限制性的,不應(yīng)視為限于上面討論的特定實施例。發(fā)明的各種實施例的不同特征能夠與除文中明確描述的那些組合以外的其他組合來結(jié)合。因此,應(yīng)理解的是,本領(lǐng)域的技術(shù)人員可以在不背離如通過所附的權(quán)利要求書所限定的本發(fā)明的范圍的情況下,對那些實施例進(jìn)行變化。
【權(quán)利要求】
1.一種混合網(wǎng)絡(luò)設(shè)備,包括: -能夠訪問服務(wù)器系統(tǒng)存儲器的至少一個服務(wù)器接口; -網(wǎng)絡(luò)交換機(jī),所述網(wǎng)絡(luò)交換機(jī)包括數(shù)據(jù)包處理引擎和交換機(jī)數(shù)據(jù)包緩沖器,所述數(shù)據(jù)包處理引擎配置成處理通過所述網(wǎng)絡(luò)交換機(jī)路由的數(shù)據(jù)包,所述交換機(jī)數(shù)據(jù)包緩沖器配置成在發(fā)送之前將所述數(shù)據(jù)包排隊; -至少一個網(wǎng)絡(luò)接口;以及 -至少一個總線主控的直接存儲器存取控制器,所述總線主控的直接存儲器存取控制器配置成經(jīng)由所述至少一個服務(wù)器接口訪問所述服務(wù)器系統(tǒng)存儲器的數(shù)據(jù)并且傳輸來自和至所述混合網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的混合網(wǎng)絡(luò)設(shè)備,還包括: -總線傳輸仲裁器,所述總線傳輸仲裁器配置成控制從所述服務(wù)器系統(tǒng)存儲器至所述混合網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)包處理引擎的數(shù)據(jù)傳輸。
3.根據(jù)權(quán)利要求2所述的混合網(wǎng)絡(luò)設(shè)備,其中,所述控制基于所述網(wǎng)絡(luò)交換機(jī)中的可用的資源。
4.根據(jù)權(quán)利要求2所述的混合網(wǎng)絡(luò)設(shè)備,其中,所述控制還基于在所述服務(wù)器節(jié)點中排隊的數(shù)據(jù)包。
5.根據(jù)權(quán)利要求2所述的 混合網(wǎng)絡(luò)設(shè)備,其中,所述控制取決于受軟件控制的設(shè)置。
6.根據(jù)前述權(quán)利要求中的任意一項所述的混合網(wǎng)絡(luò)設(shè)備,其中,所述總線主控的直接存儲器存取控制器配置成傳輸比完整數(shù)據(jù)包少的并且足夠用于所述數(shù)據(jù)包處理引擎開始數(shù)據(jù)包處理的數(shù)據(jù)。
7.根據(jù)前述權(quán)利要求中的任意一項所述的混合網(wǎng)絡(luò)設(shè)備,其中,所述總線主控的直接存儲器存取控制器配置成傳輸比完整數(shù)據(jù)包少的并且至少為開始所述數(shù)據(jù)包處理所需的數(shù)據(jù)量的數(shù)據(jù)。
8.根據(jù)權(quán)利要求6或7所述的混合網(wǎng)絡(luò)設(shè)備,其中,總線主控的直接存儲器存取控制器配置成推遲所述數(shù)據(jù)包的剩余部分的傳輸。
9.根據(jù)權(quán)利要求8所述的混合網(wǎng)絡(luò)設(shè)備,其中,所述混合網(wǎng)絡(luò)設(shè)備配置成存儲數(shù)據(jù)包處理結(jié)果直到數(shù)據(jù)傳輸重新開始,使得當(dāng)推遲的數(shù)據(jù)包傳輸重新開始時不需要重復(fù)所述數(shù)據(jù)包處理。
10.根據(jù)權(quán)利要求8或9的混合網(wǎng)絡(luò)設(shè)備,其中,所述混合網(wǎng)絡(luò)設(shè)備配置成存儲數(shù)據(jù)包數(shù)據(jù)直到數(shù)據(jù)傳輸重新開始,使得當(dāng)推遲的數(shù)據(jù)包傳輸重新開始時需從所述服務(wù)器系統(tǒng)存儲器讀取比完整數(shù)據(jù)包少的數(shù)據(jù)。
11.根據(jù)權(quán)利要求1所述的混合網(wǎng)絡(luò)設(shè)備,其中,所述混合網(wǎng)絡(luò)設(shè)備還配置成當(dāng)丟掉一個數(shù)據(jù)包時,廢棄在所述服務(wù)器系統(tǒng)存儲器中剩余的數(shù)據(jù)包數(shù)據(jù),使得所述剩余數(shù)據(jù)沒有傳輸至所述混合網(wǎng)絡(luò)設(shè)備。
12.根據(jù)前述權(quán)利要求中任意一項所述的混合網(wǎng)絡(luò)設(shè)備,其中,所述總線主控的直接存儲器存取控制器利用高速外部設(shè)備互連總線連接至服務(wù)器節(jié)點。
13.根據(jù)前述權(quán)利要求中任意一項所述的混合網(wǎng)絡(luò)設(shè)備,其中,所述網(wǎng)絡(luò)交換機(jī)處理以太網(wǎng)數(shù)據(jù)包。
14.根據(jù)前述權(quán)利要求中任意一項所述的混合網(wǎng)絡(luò)設(shè)備,其中,推遲數(shù)據(jù)包數(shù)據(jù)傳輸取決于數(shù)據(jù)包尺寸、可用的帶寬資源、可用的數(shù)據(jù)包存儲資源、數(shù)據(jù)包目的地隊列長度或者數(shù)據(jù)包目的地隊列流量控制狀態(tài)。
15.根據(jù)前述權(quán)利要求中任意一項所述的混合網(wǎng)絡(luò)設(shè)備,其中,重新開始所述推遲的數(shù)據(jù)包數(shù)據(jù)傳輸取決于可用的帶寬資源、可用的數(shù)據(jù)包存儲資源、數(shù)據(jù)包目的地隊列長度、數(shù)據(jù)包在所述數(shù)據(jù)包目的地隊列中的位置、數(shù)據(jù)包目的地隊列流量控制狀態(tài)或者數(shù)據(jù)包處理的 完成。
【文檔編號】H04L12/935GK104054309SQ201280053410
【公開日】2014年9月17日 申請日期:2012年11月1日 優(yōu)先權(quán)日:2011年11月4日
【發(fā)明者】帕特里克·森德斯特龍, 佩爾·卡爾松, 拉爾斯·維克隆德, 本尼·安德森, 肯尼·拉內(nèi)魯普, 羅伯特·維坎德, 丹尼爾·阿格倫 申請人:派克設(shè)計公司