專利名稱:用于路由數(shù)據(jù)的交換裝置、使用此裝置的計算機互連網(wǎng)絡(luò)與路由方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于在一計算機互連網(wǎng)絡(luò)中路由數(shù)據(jù)的方法與系統(tǒng)的領(lǐng)域。具體地,本發(fā)明涉及一種具有用于將數(shù)據(jù)包從輸入端口路由至輸出端口的優(yōu)化電路的交換裝置(switching device)。
背景技術(shù):
人們知道諸如單級包交換節(jié)點(single-stage packet switching node)的交換裝置。這種節(jié)點具有給定的、固有的實現(xiàn)復(fù)雜度。即,在N端口包交換中,存在導(dǎo)致二次復(fù)雜度(quadratic complexity)的N對N連接問題。雖然存在許多不同交換架構(gòu)(例如,輸入排隊的、輸出排隊的、組合的輸入與輸出排隊的、共享的存儲器等),但此復(fù)雜度以某種方式在所有這些架構(gòu)中顯露其自身。 此復(fù)雜度本質(zhì)上起源于無阻塞需求,此需求要求任何一對一通訊模式(排列(permutation))可被路由而沒有沖突。只有通過放寬此需求,即通過允許甚至在來自/去往不同端口的通信間發(fā)生沖突,才可降低該復(fù)雜度。這導(dǎo)致阻塞交換架構(gòu),所述架構(gòu)通?;诠蚕砻襟w(諸如總線)或基于多級安排。這種方法的缺點為,由于例如基于總線的實現(xiàn)的物理限制可達到的總呑吐量是受限的。大部分現(xiàn)有的單級交換節(jié)點實現(xiàn)可滿足非阻塞要求,S卩,它們提供了以全容量從任何輸入端口發(fā)送至任何輸出端口的能力。在基于交叉開關(guān)(crossbar)的架構(gòu)(其可以是緩沖的或無緩沖的)的特定情況中,這意味著交換節(jié)點包括N2個交叉點(crosspoint)。此外,在緩沖的交叉開關(guān)架構(gòu)的情況中,每一交叉點包括一緩沖器,該緩沖器的大小允許在全來回(full round-trip)上的全鏈路利用。在許多情況,可明白,大量此緩沖容量將在大多數(shù)時候未使用,這代表了寶貴資源的浪費。
發(fā)明內(nèi)容
根據(jù)第一方面,本發(fā)明實現(xiàn)為一交換裝置,該交換裝置適于連接一計算機互連網(wǎng)絡(luò)的部分,其具有N個輸入端口與M個輸出端口,其中M優(yōu)選地等于N,該裝置適于經(jīng)由直接交叉點路由數(shù)據(jù)包,所述直接交叉點被配置為根據(jù)計算機互連網(wǎng)絡(luò)的連接需要,允許N個輸入端口的每一個只與輸出端口的子集m < M之間的直接連接。在實施例中,該裝置可能包括一個或多個下列特征-該交換裝置包括若干直接交叉點,其少于或等于NM-N1,N1 SMin [N,M],由此裝置避免了在至少N1個輸入端口的子集與對應(yīng)于這些相同端口的N1個輸出端口之間的直接連接。-該交換裝置包括N1個輸入端口,Κ〈Ν,適于從一個或多個第一網(wǎng)絡(luò)實體接收數(shù)據(jù);及N2個輸出端口,N2〈M,適于發(fā)送數(shù)據(jù)給一個或多個第二網(wǎng)絡(luò)實體;其中直接交叉點的數(shù)量少于或等于NM-N1Ny-M=N且直接交叉點的數(shù)量等于N2-N1N2-(N-Min(N1, N2)),其中優(yōu)選地N1=N2=N/^-該交換裝置還包括一額外電路與額外交叉點,所述額外交叉點被配置為使得該交換裝置的至少一些輸入端口可通過該額外電路間接連接至該交換裝置的至少一些輸出端口。-所述額外交叉點包括至少一個第一組交叉點,每一交叉點連接裝置的一輸入端口至該電路,該輸入端口已連接至一個或多個直接交叉點;及至少一個第二組交叉點,每一交叉點連接電路至裝置的一輸出端口,該輸出端口已連接至一個或多個直接交叉點?!?br>
根據(jù)第二方面,本發(fā)明還體現(xiàn)為一種計算機互連網(wǎng)絡(luò),該計算機互連網(wǎng)絡(luò)包括根據(jù)本發(fā)明的實施例的至少一個交換裝置。在實施例中,所述網(wǎng)絡(luò)可包括一個或多個下列特征-該計算機互連網(wǎng)絡(luò)包括根據(jù)本發(fā)明的實施例的至少一個交換裝置,且還包括一個或多個第一網(wǎng)絡(luò)實體與一個或多個第二網(wǎng)絡(luò)實體;-該計算機互連網(wǎng)絡(luò)包括根據(jù)本發(fā)明的實施例的至少一個交換裝置,其中·所述一個或多個第一網(wǎng)絡(luò)實體中的每一個在該計算機互連網(wǎng)絡(luò)中為下層交換裝置;·所述一個或多個第二網(wǎng)絡(luò)實體中的每一個在該計算機互連網(wǎng)絡(luò)中為上層交換裝置;而且其中,M=N且N1=N2=N/^,使得該至少一個交換裝置包括3N2/4_N/2個直接交叉點,從而避免下列各項之間的直接連接—輸入端口與一對應(yīng)于所述裝置的一相同端口的一輸出端口 ;及適于從上層交換裝置接收數(shù)據(jù)的N/2個輸入端口與適于發(fā)送數(shù)據(jù)至上層交換裝置的N/2個輸出端口 ;-該計算機互連網(wǎng)絡(luò)還包括用于計算機互連網(wǎng)絡(luò)的計算機化路由方法,其優(yōu)選地基于up*/doWn*路由算法,且該計算機互連網(wǎng)絡(luò)進一步被配置為使得該至少一個交換裝置的直接交叉點可根據(jù)計算機化路由方法確定的連接需要,僅直接連接輸入端口至輸出端口的子集。在又另一方面中,本發(fā)明體現(xiàn)為用于路由數(shù)據(jù)的計算機實現(xiàn)的方法,包括提供根據(jù)本發(fā)明實施例的計算機互連網(wǎng)絡(luò);及經(jīng)由該計算機互連網(wǎng)絡(luò)的至少一個交換裝置的交叉點路由數(shù)據(jù)。在實施例中,該方法可包括一個或多個下列特征-提供的計算機互連網(wǎng)絡(luò)包括根據(jù)本發(fā)明的實施例的至少一個交換裝置,且該路由數(shù)據(jù)的步驟包括在接收到用于未由直接交叉點連接的一對輸入端口與輸出端口的數(shù)據(jù)包時,經(jīng)由該裝置的一些額外交叉點與電路路由該數(shù)據(jù)包;-提供的計算機互連網(wǎng)絡(luò)包括根據(jù)本發(fā)明的實施例的至少一個交換裝置,且該路由數(shù)據(jù)的步驟包括在接收到用于未由一直接交叉點連接的一對輸入端口與輸出端口的數(shù)據(jù)包時,通過下列方式路由該數(shù)據(jù)包將所述包導(dǎo)向所述至少一個第一組中的交叉點,該交叉點連接至從其接收該數(shù)據(jù)包的輸入端口 ;經(jīng)由所述電路,使該包回環(huán)(looping)至所述第二組中的一交叉點,該交叉點連接至作為該數(shù)據(jù)包的目的地的輸出端口 ;-該方法還包括,在該提供步驟之前,通過數(shù)據(jù)包到達所述輸入與輸出端口的已知或預(yù)期的密度來確定所述連接需要,且該提供步驟包括提供該計算機互連網(wǎng)絡(luò),該計算機互連網(wǎng)絡(luò)包括至少一個交換裝置,該至少一個交換裝置的直接交叉點被配置為根據(jù)計算機互連網(wǎng)絡(luò)的確定的連接需要,允許在所述N個輸入端口的每一個僅與所述輸出端口的子集m < M之間的直接連接。根據(jù)一最后方面,本發(fā)明還體現(xiàn)為一種用于路由數(shù)據(jù)的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括計算機可讀取存儲介質(zhì);及程序指令,所述程序指令經(jīng)由根據(jù)本發(fā)明實施例的計算機互連網(wǎng)絡(luò)的至少一個交換裝置的交叉點路由數(shù)據(jù),其中所述程序指令存儲在該計算機可讀取儲存介質(zhì)上?,F(xiàn)將參照附圖僅作為非限制示例描述體現(xiàn)本發(fā)明的一種交換裝置、一種計算機互連網(wǎng)絡(luò)和一種路由方法。
圖I示意性地示出一計算機互連網(wǎng)絡(luò);圖2示意性地例示具有基于交叉開關(guān)的架構(gòu)的交換裝置,如由先前技術(shù)所知,其具有N2個交叉點;及圖3-7示出根據(jù)本發(fā)明實施例的以稀疏填充的交叉開關(guān)結(jié)構(gòu)表示的交換裝置。一個或多個這種裝置可例如被安排在如圖I所示的計算機互連網(wǎng)絡(luò)中。
具體實施例方式本發(fā)明提出基于稀疏填充的交叉開關(guān)結(jié)構(gòu)來減少冗余的交換裝置。換句話說,交叉點被配置為允許在該交換器(switch)的N個輸入端口只與輸出端口的子集m < M之間的直接連接。所述交叉點的每一個由此可視為一直接交叉點,因為它允許直接的端口對端口連接。為了簡化,使用M=N(假設(shè)正方形交換器)。不過,下面討論的許多概念可直接擴展到非正方形交換器。如稍后詳細討論的,實施例提供除了直接交叉點以外的額外交叉點,其被安排為避免犧牲可達性(reachability)。不過,仍可達成減少交叉點數(shù)量。在此利用以下事實,即一交換器通常不意欲單獨地被使用,而是作為包括許多這種交換器的較大系統(tǒng)的一部份而被使用,這些交換器相連接以形成特定拓撲,且一特定路由方法被用來根據(jù)該拓撲來路由數(shù)據(jù)包。此外,在給定系統(tǒng)中發(fā)生的流量模式(空間分布)可引起某些連接與其他連接相比負載更輕??紤]到這些因素,可根據(jù)從路由方案及/或流量特性(無論其是否預(yù)先固定)產(chǎn)生的使用模式(usage pattern)優(yōu)化內(nèi)部資源,從而減少交換器復(fù)雜度。換句話說,直接交叉點的存在或不存在取決于計算機互連網(wǎng)絡(luò)的連接需要。本發(fā)明的一主要優(yōu)點是減少實施給定維度N的交換節(jié)點所需的交叉點數(shù)量。稀疏填充的結(jié)構(gòu)基本上可減少裝置的復(fù)雜度。注意,交換器可有緩沖或沒有緩沖。在前者情況下,可優(yōu)化緩沖能力的使用。
在本上下文中,一交叉點被認為是(直接)連接一輸入端口與一輸出端口的一般手段。從個別看來,如本發(fā)明的實施例中使用的交叉點例如基本上相當(dāng)于已知的基于交叉開關(guān)的交換器架構(gòu)中提供的N2個交叉點之一。因為交叉點總數(shù)為整體交換節(jié)點成本與復(fù)雜度的良好指示,減少交叉點數(shù)量通常會導(dǎo)致相當(dāng)?shù)某杀緶p少。作為一特定示例,在有緩沖的交叉開關(guān)交換器中,交叉點及其相關(guān)緩沖器與控制邏輯構(gòu)成了(以門數(shù)表示的)整體復(fù)雜度的大部份。現(xiàn)更詳細而言,計算機互連網(wǎng)絡(luò)(諸如數(shù)據(jù)中心或高性能計算系統(tǒng)中的互連網(wǎng)絡(luò))是由以某種拓撲互連的個別包交換節(jié)點所組成。常見拓撲包括間接網(wǎng)絡(luò),諸如Clos網(wǎng)絡(luò)、Benes網(wǎng)絡(luò)、粗樹(k_ary n-trees)、k_ary n-flies,與直接網(wǎng)絡(luò),諸如trous網(wǎng)絡(luò)(k-ary n-cubes)、網(wǎng)狀(mesh)、超立方體(hypercube)。為了確定在給定拓撲上從任何源至任何目的地節(jié)點的路徑,需要路由算法。路徑可唯一地由從源到達目的地所采取的交換器之間的鏈路序列確定。通常,路由算法具有特 定結(jié)構(gòu)或受制于特定限制。這種限制的示例可以為只可采用最短路徑路線(最小跳數(shù)),且路線必須沒有死鎖(在通道相關(guān)圖(channel dependency graph)中沒有循環(huán))。圖I例示一粗樹多級互連網(wǎng)絡(luò)100。圖中顯示的粗樹為3-ary3_tree(k=3(基數(shù)),n=3 (層數(shù)))。這特別意味著,每一交換器具有三個端口向下和三個端口向上,從而三個節(jié)點可連接至最低層的交換器,且每一交換器連接至下一層的三個交換器。換句話說,粗樹可支持27個端節(jié)點(end node),這些端節(jié)點在此示例中以NI至N27表示。網(wǎng)絡(luò)中的所有連接是全雙向的。端節(jié)點(例如,計算節(jié)點)連接至位于網(wǎng)絡(luò)底部的端口 I^1至I1,9,3(也在圖底部),而朝上的端口(Ou1至01 9,3)連接至另一層交換器,以伸縮系統(tǒng)來支持額外的節(jié)點。更一般地,輸入端口 Ι^χ(χ=1,2,...)表示節(jié)點Si,」的第X輸入端口,其中Si,」表示第i層的第j節(jié)點。類似地,輸出端口 Oqx表示節(jié)點Sm的第X輸出端口。此外,對于一給定節(jié)點Suj而言,節(jié)點Si^.稱為下層交換裝置,而節(jié)點Si+1,j為上層交換裝置(相對于該計算節(jié)點)。注意,為了清楚的緣故,一些計算節(jié)點(N2-N5、N7-N10、與N12-N26)未示出。然而,可考慮其他拓撲,其包括其他交換器與計算節(jié)點的安排/數(shù)量。在此粗樹拓撲中,所謂的up*/down*路由似乎為適當(dāng)算法。此路由算法以如下方式工作針對一給定源s與目的地d:I.找到一交換節(jié)點(在此以nca(s, d)函數(shù)表示),該交換節(jié)點為s與d的最近共同祖先;在有多個候選節(jié)點的情況中,可根據(jù)給定規(guī)則選擇一個;2.在從s至nca(s,d)的唯一向上路徑上向上路由3.在從nca(s, d)至d的唯一向下路徑上向下路由;此算法具有是最短路徑以及沒有死鎖的屬性。例如,圖I例示從節(jié)點NI至節(jié)點N27、及從節(jié)點Nll至節(jié)點N27的九條可能路徑之一、以及從節(jié)點NI至節(jié)點N6的三條可能路徑之一。對應(yīng)于節(jié)點S2,2的交換節(jié)點nca(l,6)例如為節(jié)點NI與N6的可能最近共同祖先中的一個。同樣地,節(jié)點nca (1,27)與nca (11,27)在圖I被識別,且分別對應(yīng)于節(jié)點S3;1與S3,2。經(jīng)過更仔細的檢查,可明白,上述路由算法會造成對允許在給定交換節(jié)點上采取的回轉(zhuǎn)(turn)的限制。具體地,每當(dāng)包向下進入交換器時,它便不可能再路由向上返回。然而,現(xiàn)有技術(shù)交換節(jié)點是以允許任何輸入與輸出的任意組合之間的連接的方式實施的,即,它們提供了全連接性。這樣的交換節(jié)點例如可視為交叉點的矩陣,所述交叉點直接連接輸入線至輸出線。圖2示出了交叉點矩陣的示例直接交叉點CPx,y連接輸入端口Ix至輸出端口 Oy (為了簡潔,以下省略下標i,j,S卩,輸入端口 ^表示所表示的節(jié)點的第X輸入端口)。因此,提供全連接性的交換節(jié)點具有N2個交叉點(或?qū)τ诜钦叫喂?jié)點,N. M個交叉點)。此外,如已知的,與每一交叉點相關(guān)的實際實施復(fù)雜度取決于特定交換節(jié)點架構(gòu)(無緩沖交叉開關(guān)、有緩沖交叉開關(guān)、共享存儲器等)。鑒于給定計算機互連網(wǎng)絡(luò)(諸如,圖I的網(wǎng)絡(luò)100)可能具有“禁止的”回轉(zhuǎn)(例如由路由算法與拓撲定義的),其次可考慮移除一些交叉點。不過,除了如圖I所示的網(wǎng)絡(luò)與up*/d0wn*路由算法之外,所屬領(lǐng)域技術(shù)人員可理解,其他網(wǎng)絡(luò)/路由算法也可能造成禁止的數(shù)據(jù)路線。例如,一些特定節(jié)點可能被阻止從給定第一網(wǎng)絡(luò)實體至給定第二網(wǎng)絡(luò)實體路由數(shù)據(jù)。在這種情況下,如上面概述的,稀疏交叉點結(jié)構(gòu)可有利地在交換器上實施。這例如在圖3-5的交叉點結(jié)構(gòu)中例示。再次地,基礎(chǔ)交換裝置具有N個輸入端口 Ix與M個輸出端口 0y。它被設(shè)計為經(jīng)由(直接)交叉點CPx,y,從輸入端口(“輸入”)的每一個向輸出端口(“輸出”)中的一些路由數(shù)據(jù)包。在圖2-5的示例中,x=l,... 8,且y=l,...8。 此外,圖3-7的實施例可應(yīng)用到諸如圖I所示的互連網(wǎng)絡(luò)的任何節(jié)點Sm。如圖3-5的實施例中表示的,保留的交叉點CPx,y允許在輸入端口僅與輸出端口的子集m< M之間的直接連接。從現(xiàn)在開始且為了簡單起見,假設(shè)正方形交換器(M=N)。在圖3的特定示例中,直接交叉點數(shù)量正好等于N2-N,即,直接交叉點CPx,y=x已被移除(或者,交換器被構(gòu)建而沒有交叉點CPx,y=x)。因此,裝置可避免在對應(yīng)于相同端口 X (即在此情況下的相同雙向端)的輸入端口與輸出端口之間的直接連接。的確,如果N2對應(yīng)于全連接所需的直接交叉點數(shù)量,則N對應(yīng)于與一相同端口對應(yīng)的所有輸入/輸出端口對之間的直接連接所需的直接交叉點數(shù)量。因此,在圖3例示的交叉點結(jié)構(gòu)具有減少的復(fù)雜度。更一般地,輸出端口的剩余子集m< N可根據(jù)網(wǎng)絡(luò)的連接需要設(shè)計,從而導(dǎo)致不同級別的節(jié)點復(fù)雜度。例如,直接交叉點的實際數(shù)量可小于N2-NJN1 ( N),從而避免在輸入端口的至少一子集(即,N1個輸入端口 )與對應(yīng)數(shù)量的輸出端口(即,對應(yīng)于相同雙向端口 )之間的直接連接。在其他情況中,可能想要避免在從網(wǎng)絡(luò)實體的第一子集接收數(shù)據(jù)的N1個輸入端口與向網(wǎng)絡(luò)實體的第二子集發(fā)送數(shù)據(jù)的N2個輸出端口之間的直接連接。因此,在此情況下這里將提供N2-N1N2個交叉點。適當(dāng)?shù)臑樵u論為網(wǎng)絡(luò)實體的每一子集可能僅由一個節(jié)點組成。此外,兩個子集可重迭且可能對應(yīng)于相同實體。在圖4中,特別丟棄了 N1XN2A交叉點,從而避免在網(wǎng)絡(luò)實體的第一子集與第二子集之間的直接連接。更精確而言,在此示例中,由于在此考慮的網(wǎng)絡(luò)拓撲而具有N1=N2=N/^即,對應(yīng)于交換器“向上”側(cè)的N1個輸入端口未連接至該交換器“向上”側(cè)的N2個輸出端口。此外,如果網(wǎng)絡(luò)的連接需要使得沒有任何端口應(yīng)該路由回到本身(如前面提到的),那么在對角線上的所有交叉點可進一步被省略。這種情況在圖4中例示,由此獲得交叉點模式。圖4的情況可被一般化為其中提供N2-N1N2-(N-Min(N1, N2))個交叉點的實施例,其相當(dāng)于避免在N1個輸入端口與N2個輸出端口之間的直接連接,同時沒有端口可路由回到其本身。在N1=N2=N/^的特別情況下,以上公式縮減為3N2/4-N/2。因此,這種實施例允許大體省略直接交叉點(針對大小為N的)的四分之一。其次,因為移除在端口 Ix與Oy之間的交叉上的交叉點意味著^不再到達Oy,我們可能想要例如間接地恢復(fù)連接。為此目的,本發(fā)明的交換裝置在實施例中可進一步包括額外交叉點,其被配置為使得輸入端口可通過裝置的額外電路L間接連接至交換器的輸出端口。因此,當(dāng)接收到針對未由直接交叉點連接的一對輸入和輸出端口的數(shù)據(jù)包時,該數(shù)據(jù)包仍可經(jīng)由裝置的額外交叉點和電路L而被路由,如圖5所述。在概念上,可理解,這種問題相當(dāng)于連接交叉點矩陣結(jié)構(gòu)的額外行與列,從而可考慮一些實際實施例。仍有利地,如圖5所示,一簡單實施例使用通過額外電路L連接的兩組額外交叉點APx, L與APu y。每一額外交叉點ΑΡχΛ連接一輸入端口 Ix至電路L,該輸入端口Ix已連接至直接交叉點CPx,y。類似地,第二組額外交叉點APuy連接該電路至裝置的輸出端
Π 0yO更一般地說,可將一個或多個完全填充(populate)的列、與一個或多個完全填充的行加入交換矩陣。然而,這些列與行不對應(yīng)于外部端口 ;它們只供內(nèi)部使用。將這些額外行與列稱為“旁路”(bypass)。每一旁路列(bypass)經(jīng)由電路L連接至旁路行之一(反之亦然),所以該電路建立了內(nèi)部回環(huán)路徑。旁路可被安排為使得恢復(fù)完全可達性,不管有多少或哪些交叉點已被移除。圖5顯示具有一個旁路(即,旁路列ΑΡχΛ經(jīng)由電路L連接至旁路行APu y)的8 X 8交換節(jié)點的示例?,F(xiàn)在關(guān)于節(jié)點上的數(shù)據(jù)操作每當(dāng)包到達未連接的一對端口(例如,I8與O8)時,該包會被路由至對應(yīng)于其源端口的額外列ΑΡ8Λ上的交叉點;從那里,它經(jīng)由電路L被回環(huán)到所述旁路所連接的額外行APu,且被傳遞至對應(yīng)于目的地端口的交叉點。注意,該旁路是由所有未由直接交叉點直接連接的端口對所共享。來自(直接)連接的端口對的包照常經(jīng)由直接交叉點而被路由。在圖5的示例中,稀疏交叉開關(guān)(包括旁路)實際具有3N2/4-N/2+2N個交叉點(其中有2N個額外交叉點),這相對于用于全連接交叉開關(guān)的N2。可顯示稀疏交叉開關(guān)對于任何N > 6有較低的復(fù)雜度。例如,對于N=32而言,只需保留約80%的交叉點。增加N允許相對于全連接而言漸近接近 75%交叉點。其次,在實施例中,旁路可以如下方式發(fā)揮功能當(dāng)包到達交換器輸入時,輸入接口檢查包的目的地是否是填充的交叉點。如果是,該包便會立即被路由至該目的地交叉點。否則,包不能夠直接路由至其目的地列,且因此必須通過旁路被路由。該輸入接口從可用旁路中選擇一個,并將包路由至對應(yīng)交叉點αρχΛ。優(yōu)選地,每一旁路列有自己的調(diào)度器(scheduler)。旁路調(diào)度器從其本身的列選擇一包,且經(jīng)由其回環(huán)將包路由至對應(yīng)的旁路行APuy并路由至對應(yīng)于包的目的地端口的特定交叉點。每一輸出調(diào)度器調(diào)度來自旁路交叉點以及在其列中的一般交叉點的包??煽紤]許多調(diào)度方法。此外,應(yīng)注意,如果沒有可用的旁路,包可能不得不被丟棄(例如,在有緩沖交叉開關(guān)的情況下)。如所述的,主要實施旁路以允許全連接性,S卩,每一端口可到達每一其他端口。應(yīng)明白,旁路可能不適合具有嚴格的性能需求的連接。諸如上述的旁路典型地具有兩個性能缺點首先,存在延時不利,因為采用旁路的每一包在離開交換器前會被存儲和讀取兩次(在有緩沖交叉開關(guān)中);其次,采用旁路的流全部共享有限的一組交叉點,且訪問有限的內(nèi)部帶寬,該帶寬在設(shè)計上比連接的端口的可能最大總呑吐量小(得多)。例如,在圖5中,從“向上”側(cè)輸入流向“向上”側(cè)輸出流動的所有流量的最大總呑吐量限制于單一回環(huán)路徑的帶寬,因此在最壞情況下,受影響流的呑吐量僅為25%(即,當(dāng)每一輸入以100%負載發(fā)送至一未填充的交叉點時)。仍可通過增加更多旁路改善此限制。如進一步描述的,交叉點移除模式不需要如圖5所示般規(guī)則;稀疏性可根據(jù)計算機互連網(wǎng)絡(luò)的連接需要,采取任何形狀、對稱(參見例如圖6的示例性實施例)或不對稱(圖7)。此外,旁路行與列可顯著地從所示出的模式改變。尤其應(yīng)注意,嚴格地說,對于分別連接至所有列/行的行X或列y,不需要添加旁路交叉點ΑΡχΛ/ΑΡ&。同樣地,在只有一個直接交叉點(由于特定的連接需要)要被移除的時候,可能實際上最好保持此交叉點,而不是添加對應(yīng)旁路所需的兩個交叉點。因此,可考慮對圖5-7的相應(yīng)變體。此方法可以直接方式而一般化至任何拓撲與任何路由方案;鑒于這些,可直接地確定對于任何交換器哪些回轉(zhuǎn)從未被采用,且相應(yīng)地除去交叉點。此外,通過添加多個額外行與列(未在圖顯示)可提高旁路容量。注意,嚴格地說,如果某些回轉(zhuǎn)從未被采用,甚至不需要用于這些回轉(zhuǎn)的旁路。然而,實現(xiàn)它對于測試/診斷目的仍可能有用。 而且,該方法也可一般化為考慮預(yù)期空間流量分布的特征。在一些包交換的應(yīng)用中,在交換節(jié)點上觀察到的流量模式可為高度非均勻的,意味著流過一給定輸入端口的流量在一組輸出端口上是不平均地分布,及/或通過不同輸入端口流入的流量呈現(xiàn)不同分布模式。對于一給定交換器而言,預(yù)期只有非常小流量的所有連接可映射到一共享的旁路。例如,HPC應(yīng)用經(jīng)常呈現(xiàn)非常特定的通信模式,其中,例如,多數(shù)通信在直接鄰居之間發(fā)生。在這方面,根據(jù)本發(fā)明的方法可在實施例中包括確定網(wǎng)絡(luò)的連接需要的初始步驟,例如,所述連接需要取決于數(shù)據(jù)包到達交換器端口的預(yù)期密度。其次,這轉(zhuǎn)而允許根據(jù)確定的連接需要,優(yōu)化交換器配置(即,用于要在網(wǎng)絡(luò)中使用的一個或多個交換器的優(yōu)化交叉點結(jié)構(gòu),以及可能地,這些交換器如何可被安排在網(wǎng)絡(luò)中)。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼??梢圆捎靡粋€或多個計算機可讀的介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于一電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合。可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言一諸如”C”語言或類似的程序設(shè)計語言。該程序代碼可有利地整個在一個或多個端節(jié)點或最低層交換器Slij (例如,特別是用于以太網(wǎng)網(wǎng)絡(luò))上執(zhí)行。它還可部分在一端節(jié)點或一最低層交換器且部分在一遠程節(jié)點或交換器(例如,較高層交換器)、或整個在一個或多個較高層交換器上執(zhí)行,如果架構(gòu)允許的話??煽紤]不同類型的網(wǎng)絡(luò)。如已知的,除了網(wǎng)絡(luò)功能性之外,這種交換器可僅視為計算機。在這方面,每一交換器能以硬件實現(xiàn)。但是,它能以能用計算機的一個或多個處理器執(zhí)行的程序?qū)崿F(xiàn)。能用計算機與處理器就本身而言是已知的。
應(yīng)了解,用于本發(fā)明的方面的任何操作可通過計算機程序指令(例如,經(jīng)由互連網(wǎng)絡(luò)的交換裝置的交叉點路由數(shù)據(jù)的程序指令)實現(xiàn)。這種指令可例如被提供給通用計算機、節(jié)點或交換器、專用交換器、或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生一機器,使得經(jīng)由交換器或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令可創(chuàng)建用于實施上述功能/動作的裝置。這些計算機程序指令也可存儲在計算機可讀取介質(zhì)中,其可使交換器、計算機、其他可編程數(shù)據(jù)處理裝置、或其他裝置以特定方式運作,從而在計算機可讀取介質(zhì)中存儲的指令可產(chǎn)生一產(chǎn)品,其包括實施在流程圖及/或方塊圖的方塊中所指定功能/動作的指令。計算機程序指令也可能加載到計算機、其他可編程數(shù)據(jù)處理設(shè)備、或其他裝置,以使一系列操作步驟在計算機、其他可編程設(shè)備或其他裝置上執(zhí)行,以產(chǎn)生一計算機實現(xiàn)的過程,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令可提供用于實現(xiàn)所指定功能/動作的程序。雖然本發(fā)明已參照某些實施例描述,但所屬領(lǐng)域的技術(shù)人士應(yīng)明白,可在不脫離本發(fā)明的范圍的情況進行各種不同變更,且可由等價物所取代。此外,可進行許多修改以使特定情況或材料適于本發(fā)明的教示而不脫離其范圍。因此,本發(fā)明旨在并非限制在公開的特定實施例,而是本發(fā)明包括落在后附權(quán)利要求的范圍內(nèi)的所有實施例。例如,如果多數(shù)通信發(fā)生在直接鄰居間,那么直接交叉點可被配置為僅允許對應(yīng)于第一鄰居的通信端口之間的直接連接。此外,雖然本發(fā)明本質(zhì)上假設(shè)雙向端口(且因此,正方形交換器)以用于例示,但仍然可考慮應(yīng)用到具有不平衡輸入對輸出端口的非正方形交換器。例如,至少一些交換器可包括N個輸入端口與M個輸出端口,其中N古M。這樣的裝置可適應(yīng)于通過直接交叉點來路由數(shù)據(jù)包,所述直接交叉點被配置為根據(jù)計算機互連網(wǎng)絡(luò)的連接需要,允許在N個輸入端口的每一個僅與輸出端口的子集m < M之間的直接連接。類似地,該裝置可包括若干直接交叉點,其小于或等于NM-N1, N1^MintN, M];而非如先前在一實施例等中所描述的N2-N1, N1 ^ No
權(quán)利要求
1.一種適于連接計算機互連網(wǎng)絡(luò)(100)的部分的交換裝置(Si,p,具有N個輸入端口(Ia-Ih)與M個輸出端口(Oa-Oh),其中M優(yōu)選地等于N,該裝置適于經(jīng)由直接交叉點(CPX,y)路由數(shù)據(jù)包,根據(jù)該計算機互連網(wǎng)絡(luò)的連接需要,所述直接交叉點被配置為允許在所述N個輸入端口中的每一個僅與輸出端口的子集m < M之間的直接連接。
2.如權(quán)利要求I的交換裝置,包括若干直接交叉點,其少于或等于NM-N1,其中N1 ( Min [N, M],由此該裝置避免在N1個輸入端口的至少一子集與對應(yīng)于這些相同端口的N1個輸出端口之間的直接連接。
3.如權(quán)利要求I的交換裝置,包括 N1個輸入端口,其中Ν,Ν,其適于從一個或多個第一網(wǎng)絡(luò)實體接收數(shù)據(jù);以及N2個輸出端口,其中N2〈M,其適于發(fā)送數(shù)據(jù)給一個或多個第二網(wǎng)絡(luò)實體;其中所述直接交叉點的數(shù)量小于或等于NM-N1N215
4.如權(quán)利要求3的交換裝置,其中M=N且所述直接交叉點的數(shù)量等于N2-N1N2- (N-Min (N1, N2)),其中優(yōu)選地 N1=N2=N/^
5.如權(quán)利要求I至4中的任何一個的交換裝置,還包括額外電路(L)與額外交叉點(APX, L, APl, y),其被配置為使得該交換裝置的至少一些所述輸入端口可通過該額外電路間接連接至該交換裝置的至少一些所述輸出端口。
6.如權(quán)利要求5的交換裝置,其中所述額外交叉點包括 至少一個第一組交叉點(APX, L),每一交叉點連接該裝置的一輸入端口( Ix)至該電路(L),該輸入端口已連接至一個或多個直接交叉點(CPX,y);及 至少一個第二組交叉點(APu y),每一交叉點連接該電路至該裝置的一輸出端口(0y),該輸出端口已連接至一個或多個直接交叉點(CPX,y)。
7.一種計算機互連網(wǎng)絡(luò)(100),包括如權(quán)利要求I至6中的任何一個的至少一個交換裝置(Sm)。
8.如權(quán)利要求7的計算機互連網(wǎng)絡(luò),包括如權(quán)利要求3或4的至少一個交換裝置(Si,P,且還包括所述一個或多個第一網(wǎng)絡(luò)實體(Sg, P與所述一個或多個第二網(wǎng)絡(luò)實體(Si+1,j)。
9.如權(quán)利要求8的計算機互連網(wǎng)絡(luò),包括如權(quán)利要求第4項的至少一交換裝置(Si,ρ,其中 所述一個或多個第一網(wǎng)絡(luò)實體(Sg, P的每一個在該計算機互連網(wǎng)絡(luò)中為下層交換裝置; 所述一個或多個第二網(wǎng)絡(luò)實體(si+1, P的每一個在該計算機互連網(wǎng)絡(luò)中為上層交換裝置; 而且其中,M=N且N1=N2=N/^,使得該至少一個交換裝置包括3N2/4-N/2個直接交叉點,從而避免下列各項之間的直接連接 一輸入端口與對應(yīng)于所述裝置的一相同端口的一輸出端口 ;及適于從上層交換裝置接收數(shù)據(jù)的N/2個輸入端口與適于發(fā)送數(shù)據(jù)至上層交換裝置的N/2個輸出端口。
10.如權(quán)利要求7、8或9的計算機互連網(wǎng)絡(luò),還包括用于該計算機互連網(wǎng)絡(luò)的計算機化路由方法,其優(yōu)選地基于up*/down*路由算法,且其中,該計算機互連網(wǎng)絡(luò)進一步被配置為使得該至少一個交換裝置(Sm)的直接交叉點(CPx,y)可根據(jù)該計算機化路由方法所確定的連接需要,僅直接連接輸入端口(Ix)至輸出端口(Oy)的子集。
11.一種用于路由數(shù)據(jù)的計算機實現(xiàn)的方法,包括 提供如權(quán)利要求第7至10中的任何一個的計算機互連網(wǎng)絡(luò) '及 經(jīng)由該計算機互連網(wǎng)絡(luò)的該至少一個交換裝置的交叉點(CPX,y)路由數(shù)據(jù)。
12.如權(quán)利要求11的方法,其中該提供的計算機互連網(wǎng)絡(luò)包括如權(quán)利要求5的至少一個交換裝置(Si,」),而且其中,該路由數(shù)據(jù)的步驟包括 在接收到用于未由直接交叉點連接的一對輸入端口(I8)與輸出端口(O8)的數(shù)據(jù)包時,經(jīng)由該裝置的一些額外交叉點(AP8^ APu)與電路(L)路由該數(shù)據(jù)包。
13.如權(quán)利要求11的方法,其中該提供的計算機互連網(wǎng)絡(luò)包括如權(quán)利要求6的至少一個交換裝置,而且其中,該路由數(shù)據(jù)的步驟包括 在接收到用于未由直接交叉點連接的一對輸入端口(I8)與輸出端口(O8)的數(shù)據(jù)包時,通過下列方式路由所述數(shù)據(jù)包 將所述包導(dǎo)向所述至少一個第一組中的一交叉點(APu),該交叉點連接至從其接收該數(shù)據(jù)包的輸入端口(I8); 經(jīng)由所述電路(L),使所述包回環(huán)至所述第二組中的一交叉點(APu),該交叉點連接至作為該數(shù)據(jù)包的目的地的輸出端口(O8)。
14.如權(quán)利要求11的方法,還包括,在該提供步驟前,通過數(shù)據(jù)包到達所述輸入與輸出端口的已知或預(yù)期的密度來確定所述連接需要,而且其中,該提供步驟包括提供該計算機互連網(wǎng)絡(luò)(100),該計算機互連網(wǎng)絡(luò)包括至少一個交換裝置(Si, P,該至少一交換裝置的直接交叉點被配置為根據(jù)該計算機互連網(wǎng)絡(luò)的確定的連接需要,允許在所述N個輸入端口的每一個僅與所述輸出端口的子集m〈M之間的直接連接。
15.一種用于路由數(shù)據(jù)的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括 計算機可讀取存儲介質(zhì);及 程序指令,所述程序指令經(jīng)由如權(quán)利要求第7至10中的任何一個的計算機互連網(wǎng)絡(luò)的至少一個交換裝置的交叉點(CPx y)路由數(shù)據(jù),其中所述程序指令存儲在該計算機可讀取存儲介質(zhì)上。
全文摘要
本發(fā)明涉及適于連接一計算機互連網(wǎng)絡(luò)的部分的交換裝置(Si,j),該交換裝置具有N個輸入端口(Ia-Ih)與N個輸出端口(Oa-Oh),該裝置適于經(jīng)由直接交叉點(CPx,y)路由數(shù)據(jù)包,所述直接交叉點被配置為根據(jù)該計算機互連網(wǎng)絡(luò)的連接需要,允許在N個輸入端口中的每一個僅與輸出端口的子集m<N之間的直接連接。優(yōu)選地,該交換裝置還包括額外電路(L)與額外交叉點(APx,L,APL,y),其被配置為使得該交換裝置的至少一些輸入端口可通過該額外電路間接連接至該交換裝置的至少一些輸出端口。本發(fā)明還涉及互連網(wǎng)絡(luò)和用于路由數(shù)據(jù)的方法。
文檔編號G06F15/173GK102906729SQ201180025655
公開日2013年1月30日 申請日期2011年5月25日 優(yōu)先權(quán)日2010年5月28日
發(fā)明者F·亞伯, M·古賽特, C·J·A·民肯伯格 申請人:國際商業(yè)機器公司