專利名稱:一種基于Clos網絡交換結構的貫序匹配調度算法的制作方法
技術領域:
本發明涉及網絡交換調度算法領域,具體的說是一種基于Clos網絡交換結構的貫序匹配調度算法。
背景技術:
隨著計算機網絡規模的日益擴大,主要體現在兩個方面,一個是交換端口的密度增大,另一個是交換結構(Switch Fabric)輸入輸出端口的線速(Line Speed)不斷提高。為此,核心網絡的分組交換系統需要的交換容量越來越大,研究者為此設計了多階段互聯的交換系統以滿足交換容量的需求,Clos網絡交換結構就是其中一種典型的多階段互聯的交換系統,Clos網絡交換結構因為其直觀,冗余度大,而且可以進行“迭代式”的擴展,因此被廣泛的應用于商用產品。圖1給出了現有的Clos網絡拓撲結構示意圖,Clos網絡交換結構一般分三級,圖1中用方框表示的交換單元(Switch Element,SE)也可稱為模塊,通常將整個三級Clos網絡交換結構描述為具有k個輸入模塊IM(Input module),m個中間模塊CM(Center module)和k個輸出模塊OM(Output module)。每個輸入模塊為(n×m)的規模,其中n為輸入端口數量,m為輸出端口數量(和中間模塊CM的數量相同),每個輸出模塊為(m×n)規模,其中n為輸出端口數量,m為輸入端口數量(和中間模塊CM的數量相同),因此整個交換結構的規模為N=n×k。Clos網絡交換結構分為非阻塞和可重排非阻塞兩種類型(取決于m的n關系),當滿足m≥2n-1時,Clos網絡交換結構網絡是非阻塞的,若m≥n,則Clos網絡交換結構網絡是可重排非阻塞的。
Clos拓撲結構獲得了廣泛的應用,如華盛頓大學的ATLANTA交換機,紐約理工大學的PetaStar都是成功應用的例子。在產業界,DUNE Networks公司推出了一系列支持Clos網絡交換結構的交換芯片,并推廣了大量基于Clos網絡交換結構的大規模交換系統的解決方案,如網絡設備的可擴展體系結構(Scalable Architecture of NetworkDevices,SAND),這些方案有的已經被知名的設備廠商采納。因此,Clos網絡交換結構的調度算法一直成為交換結構領域中的研究熱點。
現有的Clos網絡交換結構網絡調度算法存在著以下的局限性 一般而言,Clos網絡交換結構的調度可以分為兩個主要的問題,即信元分派(Cell Dispatching)和路由分配(Route Assignment)問題。按照Clos網絡交換結構各級中使用的交換單元的實現方式,Clos網絡交換結構網絡可以分為S3型和MSM型,S3型表示三級交換單元都使用空分(Space Division)結構,MSM型表示第一和第三級使用共享存儲結構(用“M”表示),僅第二級使用空分結構(用“S”表示)。在這兩種類型中,空分結構基本上都采用Crossbar技術。
對于S3型Clos網絡交換結構,路由分配的核心問題在于對于一個給定的輸入/輸出端口匹配矩陣,如何快速選擇從輸入端口到輸出端口的連接。理論上說,路由分配問題可以通過矩陣分解來解決,但是這種方法缺乏實用性,這表現在兩個方面首先,矩陣分解需要事先知道流量需求,這在實際應用中比較困難;其次,即使獲得了流量需求矩陣,矩陣分解的方法計算復雜性太高,在交換規模較大時,現有的硬件計算能力無法做到實時計算。在實際應用中,通常使用啟發式的算法來解決路由分配問題,如現有文章(H.Jonathan Chao,Zhigang Jing,and Soung Y.Liew,“Matching Algorithms for Three-StageBufferless Clos Network Switches”,IEEE Communications Magazine,pp.46-54,Oct 2003)介紹的并行匹配算法。此外,Chao等研究者提出了一系列匹配算法,如f-MAC,c-MAC和d-MAC等,這些算法對S3型Clos網絡交換結構交換結構的調度均有不同程度的改善。
S3型Clos網絡交換結構在路由分配上的復雜性主要是由于沒有緩存造成的,因為沒有緩存,必須有一種算法能迅速調度進入交換結構的信元,否則就會丟棄未被及時調度的信元,但由于Clos網絡交換結構自身的復雜性和硬件計算能力的局限性,研究者轉而研發MSM型Clos網絡交換結構。
MSM型Clos網絡交換結構能夠將進入的信元緩存于公共存儲區,這無疑一定程度上減輕了調度的壓力,也使得人們可以變更調度算法的設計思路。在傳統的單階段交換結構中,已經成熟的調度算法如iSlip(N.McKeown,“The iSLIP Scheduling Algorithm forInput-Queues Switches”,IEEE/ACM Trans On Networking,pp.188-200,Apr 1999)采用的是“請求-允許-接受”方式(Request-Grant-Accept,即RGA方式),嚴格的說,RGA方式也是一種啟發式的算法,但是iSlip在Cisco 12000 GSR交換路由器上的成功證明了RGA方式是一種高效可行的算法。借助于這種思想,Chao等人提出了MSM型Clos網絡交換結構的調度算法CRRD調度算法及其變種CMSD(concurrent master-slave round-robin dispatching)。
CRRD調度算法將進入輸入模塊IM的信元按照不同的目的端口分為若干虛擬輸出隊列VOQ,進而采用了兩階段的調度算法。第一階段在輸入模塊IM中進行,各個虛擬輸出隊列VOQ以RGA方式向所在的輸入模塊IM的輸出端口建立匹配關系,第二階段主要是由第一階段中匹配成功了的輸入模塊IM的輸出端口和中間模塊CM的輸出端口以RGA方式進行匹配。當兩個階段都匹配成功后,則相應的虛擬輸出隊列VOQ可以通過已匹配的線路在下個時隙中發送一個信元。
CRRD調度算法和CMSD調度算法的主要缺陷在以下兩個方面。首先,兩次匹配是以一種接力的方式進行的。CRRD調度算法在輸入模塊IM和中間模塊CM中先后進行了兩次RGA方式的匹配,僅當這兩次匹配都成功,相應的虛擬輸出隊列VOQ才能在下一個時隙中發送信元。顯然,這樣的串行方式的匹配的成功率僅是兩次匹配成功率的乘積,使得整體性能有所降低。如圖2所示,輸入模塊IM1中的VOQ1在首次匹配中收到了來自LI(1,1)和LI(1,3)的允許消息,而VOQ1選擇向LI(1,1)發送接受消息,因此LI(1,1)將在第二階段的匹配中向LC(1,1)發送請求消息。相似地,輸入模塊IM2中的VOQ2收到來自LI(2,1)和LI(2,2)的允許消息,VOQ2選擇向LI(2,1)發送接受消息,故LI(2,1)將在第二階段的匹配中也向LC(1,1)發送請求消息。這意味著在第二階段LI(2,1)將和LI(1,1)競爭LC(1,1)的獲準權。如果在第二階段,LC(1,1)選擇了LI(1,1),這時第一階段中輸入模塊IM2內VOQ2和LI(2,1)已經形成的匹配將失效。這也同時意味著在第一階段中,輸入模塊IM2內LI(2,2)發送給VOQ2的允許消息被浪費了,而如果輸入模塊IM2中的VOQ2選擇了LI(2,2),完全可以建立通過LC(2,1)的無沖突路徑。這樣的情形在運行期間隨時可能發生,因此,兩階段的匹配會潛在降低全局的匹配成功率。
其次,CRRD調度算法遵循“多對一”的RGA匹配方式,也就是說在第一階段的匹配中,任意VOQ雖然可能收到多個允許消息,但只能接受其中的一個。雖然CRRD調度算法提出可以在第一階段使用多次迭代來提高匹配的命中率,但多次迭代會給系統帶來較大的時間開銷,因此在實際應用中,通常不使用多次迭代,因此多對一匹配方式產生的匹配效率降低問題難以有效解決。
發明內容
針對現有技術中存在的缺陷,本發明的目的是提供一種基于Clos網絡交換結構的貫序匹配調度算法,采用直通式匹配,整個匹配過程一次完成,同時采取多對多的“請求-允許-接受”方式,最大程度利用了調度機會。
為達到以上目的,本發明采取的技術方案是 一種基于Clos網絡交換結構的貫序匹配調度算法,所說的Clos網絡交換結構至少包括一個交換機機架及設置在機架上的線卡和背板,每個線卡上的前端芯片包括階輸入模塊IM和k個輸出模塊OM,背板上的后端芯片包括m個中間模塊CM,每個輸入模塊IM均具有m個輸出端口,每個中間模塊CM均具有k個輸入端口和k個輸出端口,其特征在于所說的貫序匹配調度算法步驟為 步驟1請求階段,每個包含非空虛擬輸出隊列VOQ的虛擬輸出組VOG,根據信元最終要送達的輸出模塊OM,通過其所在的輸入模塊IM的m個輸出端口向每個中間模塊CM的相應的輸出端口發出請求消息, 步驟2允許階段,每個中間模塊CM的輸出端口根據輸出端口指針LoCPointer的位置選定一個發出請求消息的虛擬輸出組VOG并向其發出允許消息, 步驟3過濾階段,判斷是否發生通行競爭,如沒有則直接放行相應輸出端口發出的允許消息,如發生通行競爭,則每個中間模塊CM的輸入端口根據輸入端口指針LiCPointer的位置選定一個該中間模塊CM的輸出端口并放行該輸出端口發出的允許消息, 步驟4接受階段,每個收到允許消息的虛擬輸出組VOG,通過VOG內部指針VOGInnerPointer選定一個非空虛擬輸出隊列VOQ,再根據VOG外部指針VOGExternPointer的位置選定一個發出允許消息的中間模塊CM的輸出端口,虛擬輸出組VOG向該輸出端口發送接受消息以完成從虛擬輸出隊列VOQ到該輸出端口的通道建立過程, 步驟5指針更新階段,非空虛擬輸出隊列VOQ通過虛擬輸出組VOG發送一個信元,依次更新VOG內部指針VOGInnerPointer、VOG外部指針VOGExternPointer、中間模塊CM的輸入端口指針LiCPointer和中間模塊CM的輸出端口指針LoCPointer,重復步驟4、步驟5直至所有非空虛擬輸出隊列VOQ的信元都被發送或者所有的允許消息都已被接受。
在上述技術方案的基礎上,輸入模塊IM中虛擬輸出隊列VOQ的組織方式為VOQ(i,p,o),i為輸入模塊的編號,p為輸入模塊的輸入端口編號,o為輸出模塊的編號;輸入模塊IM中虛擬輸出組VOG的組織方式為VOG(i,o),i為輸入模塊的編號,o為輸出模塊的編號,虛擬輸出組VOG由n個成員VOQ(i,p,o)組成,其中1≤p≤n,n為每個輸入模塊的輸入端口的個數。
在上述技術方案的基礎上,VOG內部指針VOGInnerPointer、VOG外部指針VOGExternPointer、中間模塊CM的輸入端口指針LiCPointer和中間模塊CM的輸出端口指針LoCPointer更新后,指針指向當前匹配目標的下一個位置。
本發明具有以下優點 1.采用直通式匹配,整個匹配過程一次完成, 2.同時采取多對多的“請求-允許-接受”方式,最大程度利用了調度機會。
本發明有如下附圖 圖1現有的Clos網絡拓撲結構示意圖 圖2CRRD調度算法兩次RGA方式匹配示意圖 圖3本發明所述的Clos網絡交換結構示意圖 圖4邏輯上分為k個并行的匹配的平面的示意圖 圖5VOG獲得調度機會的堆球模型示意圖 圖6基于擴展Clos結構的大型交換系統模型示意圖 圖7Clos交換結構中N+1的冗余實現方式示意圖 圖8突發模式下SMACN與CRRD吞吐率的對比示意圖 圖9突發模式下SMACN與CRRD時延的對比示意圖 圖10VOGInnerPointer(1,1)狀態 圖11VOGExternPointer(1,1)狀態 圖12VOGInnerPointer(1,2)狀態 圖13VOGExternPointer(1,2)狀態 圖14VOGInnerPointer(3,1)狀態 圖15VOGExternPointer(3,1)狀態 圖16LiC(1,3)的指針LiCPointer(1,3),LiC(2,1)的指針LiCPointer(2,1),LiC(3,1)的指針LiCPointer(3,1),LiC(4,3)的指針LiCPointer(4,3)的狀態 圖17中間模塊的輸出端口指針LoCPointer(1,1),LoCPointer(2,1),LoCPointer(3,1),LoCPointer(4,1)狀態 圖18四個中間模塊的輸出端口指針LoCPointer(1,2),LoCPointer(2,2),LoCPointer(3,2),LoCPointer(4,2)狀態 圖19VOGInnerPointer(1,1),VOGExternPointer(1,1),LiCPointer(2,1),LoCPointer(2,1)指針更新后的狀態 圖20VOGInnerPointer(1,1),VOGExternPointer(1,1),LiCPointer(3,1),LoCPointer(3,1)指針更新后的狀態 圖21VOGInnerPointer(3,1),VOGExternPointer(3,1),LiCPointer(4,3),LoCPointer(4,1)指針更新后的狀態 圖22VOGInnerPointer(1,2),VOGExternPointer(1,2),LiCPointer(4,1),LoCPointer(4,2)指針更新后的狀態 圖23VOGInnerPointer(1,2),VOGExternPointer(1,2),LiCPointer(1,1),LoCPointer(1,2)指針更新后的狀態
具體實施例方式 以下結合附圖對本發明作進一步詳細說明。
本發明所述的一種基于Clos網絡交換結構的貫序匹配調度算法,所說的Clos網絡交換結構至少包括一個交換機機架及設置在機架上的線卡和背板,每個線卡上的前端芯片包括k個輸入模塊IM和k個輸出模塊OM,背板上的后端芯片包括m個中間模塊CM,每個輸入模塊IM均具有m個輸出端口,每個中間模塊CM均具有k個輸入端口和k個輸出端口,所說的貫序匹配調度算法步驟為 步驟1請求階段,每個包含非空虛擬輸出隊列VOQ的虛擬輸出組VOG,根據信元最終要送達的輸出模塊OM,通過其所在的輸入模塊IM的m個輸出端口向每個中間模塊CM的相應的輸出端口發出請求消息, 步驟2允許階段,每個中間模塊CM的輸出端口根據輸出端口指針LoC Pointer的位置選定一個發出請求消息的虛擬輸出組VOG并向其發出允許消息, 步驟3過濾階段,判斷是否發生通行競爭,如沒有則直接放行相應輸出端口發出的允許消息,如發生通行競爭,則每個中間模塊CM的輸入端口根據輸入端口指針LiCPointer的位置選定一個該中間模塊CM的輸出端口并放行該輸出端口發出的允許消息, 步驟4接受階段,每個收到允許消息的虛擬輸出組VOG,通過VOG內部指針VOGInnerPointer選定一個非空虛擬輸出隊列VOQ,再根據VOG外部指針VOGExternPointer的位置選定一個發出允許消息的中間模塊CM的輸出端口,虛擬輸出組VOG向該輸出端口發送接受消息以完成從虛擬輸出隊列VOQ到該輸出端口的通道建立過程, 步驟5指針更新階段,非空虛擬輸出隊列VOQ通過虛擬輸出組VOG發送一個信元,依次更新VOG內部指針VOGInnerPointer、VOG外部指針VOGExternPointer、中間模塊CM的輸入端口指針LiCPointer和中間模塊CM的輸出端口指針LoCpointer,重復步驟4、步驟5直至所有非空虛擬輸出隊列VOQ的信元都被發送或者所有的允許消息都已被接受。
在上述技術方案的基礎上,輸入模塊IM中虛擬輸出隊列VOQ的組織方式為VOQ(i,p,o),i為輸入模塊的編號,p為輸入模塊的輸入端口編號,o為輸出模塊的編號;輸入模塊IM中虛擬輸出組VOG的組織方式為VOG(i,o),i為輸入模塊的編號,o為輸出模塊的編號,虛擬輸出組VOG由n個成員VOQ(i,p,o)組成,其中1≤p≤n,n為每個輸入模塊的輸入端口的個數。
在上述技術方案的基礎上,VOG內部指針VOGInnerPointer、VOG外部指針VOGExternPointer、中間模塊CM的輸入端口指針LiCPointer和中間模塊CM的輸出端口指針LoCPointer更新后,指針指向當前匹配目標的下一個位置。采用這種指針更新方式可以提高算法的執行效率。
圖3給出了一個本發明所述的具有3個輸入模塊,4個中間模塊和3個輸出模塊的Clos網絡交換結構示意圖作為示例,圖3中的附圖標記含義如下 虛擬輸出隊列VOQ(i,p,o)進入輸入模塊IM(i)的第p個輸入端口,目的為輸出模塊OM(o)的信元形成的虛擬輸出隊列(1≤i,o≤k,1≤p≤n)。其中,k為輸入模塊IM的個數,n為輸入模塊IM的輸入端口數量。例如VOQ(1,1,1)代表進入輸入模塊IM(1)的第1個輸入端口,目的為輸出模塊OM(1)的信元形成的虛擬輸出隊列。
虛擬輸出組VOG(i,o)輸入模塊IM(i)中目的為輸出模塊OM(o)的VOQ形成的虛擬輸出組。虛擬輸出組VOG(i,o)由n個虛擬輸出隊列VOQ(i,p,o)組成(1≤p≤n)。其中,n為輸入模塊IM的輸入端口數量。例如VOG(1,3)代表輸入模塊IM(1)中目的為輸出模塊OM(3)的VOQ形成的虛擬輸出組。
輸入模塊的輸出端口LoI(i,r)輸入模塊IM(i)中與中間模塊CM(r)相聯的輸出端口,1≤r≤m。其中,m為中間模塊CM的個數。例如LoI(1,2)代表輸入模塊IM(1)中與中間模塊CM(2)相聯的輸出端口。
中間模塊的輸出端口LoC(r,j)中間模塊CM(r)中與輸出模塊OM(j)相聯的輸出端口,1≤j≤k。其中,k為輸入模塊IM的個數。例如LoC(2,2)代表中間模塊CM(2)中與輸出模塊OM(2)相聯的輸出端口。
中間模塊的輸入端口LiC(r,i)中間模塊CM(r)中與輸入模塊IM(i)相聯的輸入端口,1≤i≤k。其中,k為輸入模塊IM的個數。例如LiC(3,3)代表中間模塊CM(3)中與輸入模塊IM(3)相聯的輸入端口。
本發明所述的調度算法還涉及以下指針 VOG內部指針VOGInnerPointer(i,o)虛擬輸出組VOG(i,o)的內部輪轉指針,指向當前可以發送信元的成員VOQ,因此這個指針的輪轉目標一共有n個。
VOG外部指針VOGExternPointer(i,o)每個VOG(i,o)的外部輪轉指針,指向當前中間模塊CM(r)的LoC(r,o),而該VOG將優先向這個LoC(r,o)發送接受消息。注意LoC(r,o)是每個中間模塊CM(r)的第o個輸出端口,因此該指針的輪轉目標共有m個。
中間模塊CM的輸出端口指針LoCPointer(r,j)每個LoC(r,j)所屬的輪轉指針,指向當前的VOG,這個LoC(r,j)將最優先向指向的這個VOG發送允許消息。因此這個指針共有k個輪轉目標,分別代表k個分別位于各個輸入模塊IM,目的為輸出模塊OM(j)的VOG。(參見圖4) 中間模塊CM的輸入端口指針LiCPointer(r,i)每個LiC(r,i)所屬的輪轉指針,指向當前中間模塊CM的LoC(r,j),這個LoC(r,j)將優先獲準將自己發送的允許消息通過LiC(r,i)。這個指針指向的目標為相同中間模塊CM中的各個LoC(r,j),因此一共有k個輪轉目標。如LiCPointer(1,1)的輪轉目標為LoC(1,1),LoC(1,2),LoC(1,3)共3個。
本發明所述的基于Clos網絡交換結構的貫序匹配調度算法SMACN(Sequential Matching Algorithm on Clos Network)采用了“貫穿”式的RGA方式,這種方式避免了兩階段匹配的串行式效率遞減。更進一步,借助這種貫序匹配,SMACN調度算法可以將全局的匹配在邏輯上分為k個并行的匹配的平面(參見圖4),這些平面上的匹配過程可以同時進行。
SMACN調度算法使用多對多的RGA匹配方式,更充分地利用每個時隙中產生的允許消息。
Clos網絡上的交換匹配與Crossbar上的交換匹配的顯著不同在于,Crossbar中的輸入端口在匹配的開始階段僅向已堆積報文的目的端口發送請求消息;而SMACN中,每個VOQ通過IM的每個輸出端口向每個CM發送請求消息,因此,這是一種“過度”請求的方式。對于針對Crossbar的iSlip,文章(N.McKeown,“The iSLIP SchedulingAlgorithm for Input-Queues Switches”,IEEE/ACM Trans On Networking,pp.188-200.Apr.1999)的研究說明,在均勻的通信量模式下,其吞吐率可以逼近100%。但是這個結論的前提是在Crossbar上,且輸入端口和輸出端口的數目相同。為了研究SMACN的吞吐率,有必要更深入地研究RGA方式匹配的效率。繼McKeown之后,Li和Chao等研究者在研究大規模交系統中取得了一系列進展,他們的研究主要集中于Clos型多階段互聯的交換系統,但是也對Crossbar的匹配做了較深入研究并做了相關改進。例如他們提出了一個iSlip的改進算法DRRM(Yihan Li,Shivendra Panwar,H.Jonathan Chao,On thePerformance of a Dual Round-Robin Switch,IEEE INFOCom 2001),Li在分析DRRM和iSlip的性能對比時RGA方式給出了很有新意的模型,我們在接下來的分析中將采納這個模型。為此,記參與RGA方式的n個請求發起方為I1,…,In,m個允許方為Q1,…,Qm,請求方與允許方的工作方式是基于輪轉指針RGA的(即iSlip),首先給出如下定義 定義1(命中)若經過一次RGA操作,某個請求發起方Ik(1≤k≤n)能成功收到至少一個允許消息,則稱該Ik的此次RGA操作命中。
定義2(S-餓死)給定一個較大的自然數S,若請求發起方Ik(1≤k≤n)在連續經過S輪RGA次操作后仍然收不到允許消息,則稱Ik上發生了S-餓死。
我們可以得到比一個比Li的工作更一般的結論,即如下性質 性質1基于RGA的iSlip算法每次進行1輪迭代,當m≥n時若請求發起方的任務是飽和的,即每次都發送請求到每個允許方,則經過有限次的匹配操作后,請求發起方都能實現100%的請求命中。
證明記時隙i中每個請求發起方Ik收到的允許消息個數,即那些發送允許消息給Ik的允許方的數目為vk,i,則根據iSlip算法,則成立同時,諸vk,i滿足 由以上時隙間的遞推關系式,不難得出,存在一個有限的T,使得當i≥T時,成立vk,i≥1。也就是說,經過有限次匹配,每個輸入方以后的匹配均可以命中。
性質2Clos網絡上實施SMACN算法時在均勻飽和流量下,位于每個CM中的匹配能在有限次匹配后實現100%的命中率。
證明SMACN算法中,CM中的每個輸入端口將相關VOG的請求消息中繼到每個CM的輸出端口,輸出端口的仲裁器PC(r,j)根據輪轉指針返回允許消息。給定的CM中,每個輸入端口構成了k個請求方,而每個輸出端口構成了k個允許方。在均勻飽和流量下,CM中的RGA過程和均勻飽和流量下iSlip的RGA過程是一致的,因此根據性質1,CM中的匹配在經過有限次步驟后能實現100%的命中率。
性質3Clos網絡上實施SMACN算法時在均勻飽和流量下,每個時隙中記每個VOG可以至少B(1≤B≤n)個VOQ非空的概率為PB,則滿足 證明考慮任意的VOG(i,v),這個VOG由IMi的n個VOQ構成。由假設,Clos網絡輸入的流量是均勻的,因此每個時隙中每個VOQ進入一個信元的概率為1/k,從而每個時隙中恰好有B個VOQ各自收到一個信元的概率為
因此(1)成立。
性質4SMACN算法中各個VOQ發送信元不會出現爭用線路或端口。
證明在SMACN算法的步驟3(過濾階段)中,由于每個LiC只允許本CM中的一個LoC發出的允許消息通過,因此在接受階段,LoI最多只會有一個接受消息需要通過。由于SMACN算法中每個接受消息意味著將有一個信元沿著個接受消息通往OM,故每個發送的信元在其通過的線路和端口上不會發生爭用現象。
性質4說明,SMACN算法在各個CM上的并行程度非常高,即各個VOQ發送的信元可以互不影響地通過m個CM。
性質5設在圖1所示的Clos網絡中滿足m≥k。實施SMACN算法時在均勻的飽和流量下,每個VOG發生S-調度餓死的概率隨著S的增加趨于0。即使得對
Pr{VOG發生S-餓死}<ε。
證明考慮如圖4所示的SMACN算法,由于每個IM根據進入信元的目的OM,形成了k個VOG,每個VOG的請求目標是分別位于m個CM中連接至相應OM的輸出端口。
在每個匹配平面上有k個請求發起方和m個請求允許方,在整個Clos網絡上的流量為均勻飽和時,每個匹配平面的輸入流量也是均勻飽和的。根據性質2,由于每個CM都能在有限步RGA操作后實現100%匹配,這意味著每個RRP(j,v)的允許消息都會順利到達某個VOG。
記時隙tVOG(i,v)收到的允許消息個數為gi,vt,則在每個匹配平面v(0≤v≤k-1)上,由上述分析,在t足夠大時,成立 意味著VOG(i,v)接收到至少一個允許消息,若在S次操作內則VOG(i,v)不會S-餓死。為此,我們考慮圖5所示的VOG獲得調度機會的堆球模型示意圖,將m個球放入k個槽位中,每個槽位上球的數目表示gi,vt的值,如圖5所示。我們要證明,對于任意小的ε,若存在某個時刻t0,則存在M∈N,使得 根據SMACN算法以及式(1),若則必存在某個i-1,0≤i-1≤k-1,滿足而對任意的i-1<r≤i0,即i-1是比i0小而距i0最近的非空槽位。由性質3, VOG(i-1,v)將以不小于PB的概率包含B個非空隊列。因此 由SMACN的輪轉機制,VOG(i-1,v)已經獲得匹配的機會數目將會轉移至VOG(i-1+1,v),因此對于有 特別地,取B=1,反復應用(5-4)式,有 式(5)說明,經過i0-i-1個時隙,VOG(i0,v)獲得一個調度機會的概率不低于
。也就是說,經過i0-i-1個時隙,VOG(i-1,v)的調度機會有一個轉移到VOG(i0,v)上的概率不低于
,即的概率不超過
。因此反復應用(5)式還可以得到 對于前面給定的ε,存在一個自然數K0,使得 因此VOG(i0,v)在經過K0(i0-i-1)輪RGA操作后,仍然得不到調度機會的概率將小于ε。原命題的結論成立。
以下簡述實現方案與冗余保護 如前所述,Clos拓撲可以靈活地構建可擴展的大型交換系統。如圖6所示的基于擴展Clos結構的大型交換系統模型示意圖顯示了使用Clos構建大型交換系統的一個模型,圖中的交換系統由一個機架(Chassis)及其一系列線卡(Line Card)和背板構成,每個線卡上的前端芯片(即IM和OM)和背板上的后端芯片(CM)形成Clos網絡。使用Clos結構的迭代(Iteration),還可以進一步搭建超大型交換系統(Super Scale Switching System)。例如,將若干個機架按照Clos的拓撲連接起來,可以構建10T級的交換系統。
由于基于Clos結構的大型交換系統通常工作在網絡的核心層,因此如何最大限度地提高系統的穩定性和可靠性成為另一個受到關注的問題。最常用的手段就是使用保護的方式,而由于的Clos網絡的冗余度高,在其上實現冗余保護具有天然的優勢。
就交換系統而言,保護通常都在容易發生“單點失效”的地方進行,例如交換背板。傳統的交換系統設計模式中,交換背板的確是單點失效的關鍵點。但是在Clos拓撲中,由于CM有多個,因此嚴格的說,m>1的Clos拓撲中CM并非單點失效的關鍵點。然而為了運行的穩定,建立N+1的保護仍然是一種重要的可選方案。在CM中進行4+1冗余保護的方案可以參見圖7所示的Clos交換結構中N+1的冗余實現方式示意圖,由于進行了4+1的冗余保護,當系統的負載很高時,任意一個被保護的CM如果出現故障,第五個CM會替代該失效CM而立刻投入工作,這樣系統的流量發生抖動的程度幾乎是微不足道的。反之,如果不進行保護,讓五個CM全部投入工作,那么在高負載條件下,若某個CM產生故障,系統的吞吐率將顯著降低。總之,在Clos交換結構的數據平面是否采取N+1的保護,取決于用戶對網絡的規劃和預期,但是對于管理平面和控制平面而言,對主控卡(通常是交換背板)的保護一般是必不可少的。
以下簡述仿真分析和討論 模擬一個k=3,n=m=4的Clos交換結構,其中每個交換單元具有相等的鏈路速率。同時,實驗采用了歸一化的流量負荷,即用流量負荷ρ∈
來表示流量的大小,當ρ=1時表示流量是按照線速輸入的。在圖3所示的交換結構中,共有12個輸入端口和12個輸出端口,用λi,j表示從輸入端口i到輸出端口j的流量強度,于是可以形成一個12*12的流量矩陣。根據評判交換結構吞吐率的幾種通用流量場景,實驗采用兩種輸入流量模式 均勻流量模式是一種比較友好的流量模式,在這種流量模式下,SMACN和CRRD的性能幾乎是重合的,都逼近100%。在這種流量場景下,SMACN和CRRD的漸近表現沒有實質上的差別,但是實驗中發現,SMACN同CRRD相比的一個顯著優點在于,SMACN能夠在很少的轉發周期中,迅速降低匹配過程中發生的沖突,即快速實現100%的命中率。為此,實驗故意選取一個極端的初始條件,即讓所有的VOGExternPointer指針和LiCPointer指針指向相同的目標,從而在第一個時隙造成完全沖突,觀察若干個時隙后兩種算法的匹配命中率,如表1所示 表1 SMACN與CRRD在均勻流量下命中率的對比 從上表的結果可以看出,SMACN對流量模式的適應能力要強于CRRD,這主要是因為SMACN的匹配在發送接受消息的過程中是以“一對多”的方式匹配的,這種方式能夠快速消除匹配沖突,因此對于流量場景的切換,SMACN的性能要好于CRRD,典型值為32%,23%,20%以上。
突發流量的場景下,測試的流量場景按照目的端口的分布仍然是均勻的,但與前面的完全均勻流量模式不同,由于流量的突發性,吞吐率會隨著流量輸入負載的增加而略有下降。在ON-OFF過程中選取(進入ON的概率),ON的平均時間為3個時隙,OFF的平均時間為7個時隙這樣的流量場景下,計每次進入ON狀態的概率為p,則讓p從0向1變化可以生成不同的輸入流量負載。圖8所示的突發模式下SMACN與CRRD吞吐率的對比示意圖顯示了CRRD和SMACN在不同流量負載下的吞吐率,而圖9所示的突發模式下SMACN與CRRD時延的對比示意圖顯示了兩種算法在不同負載下的平均隊列長度,實際上刻畫了兩種調度算法下不同負載的轉發時延。從中我們不難看出,當輸入負載超過了0.7時,吞吐率和隊列長度都會產生分化。但是吞吐率的分化比較輕微,而SMACN算法的隊列長度要比CRRD小,典型值小50%,40%,33%和37%。從總體上看,SMACN要比CRRD要有所提高。
綜上所述,使用多階段互聯來構建大規模交換結構是滿足交換系統健壯性,可擴展性的有效方式,Clos網絡的交換結構是一種極具應用前景的多階段互聯交換結構,在產業界已經得到廣泛應用。基于共享存儲的Clos結構是主要的搭建方案之一,Clos結構上傳統的調度方法為CRRD,這是一種類似于iSlip的調度方法,但是由于工作在Clos拓撲上,CRRD采取兩階段接力的RGA方法。CRRD的主要缺陷在于匹配精度在非均勻流量場景下不高,本文提出了一種CRRD的改進方案,稱為貫序式匹配算法(SMACN)。SMACN相對CRRD的改進主要有兩點,首先是采用“貫穿”式的RGA方式,避免了兩次使用RGA產生的低效;其次是采用了一對多的“請求-允許-接受”方式,這種方式符合Clos網絡特定拓撲下的并行匹配,由此可以形成幾個并行的匹配平面,提高了匹配的成功率。理論上證明了SMACN的死鎖概率為無限小,仿真實驗說明SMACN雖然在均勻流量場景下與CRRD區別很小,但是在突發性的流量場景下,SMACN在吞吐率和轉發時延上比CRRD有相當程度改善。
以下結合圖3,通過一個具體的匹配例子來進一步說明本發明所述的基于Clos網絡交換結構的貫序匹配調度算法 假設輸入模塊IM1中VOQ(1,1,1),VOQ(1,3,1)非空(即有信元在隊列中等候調度),這兩個VOQ為VOG(1,1)的成員VOQ;輸入模塊IM1中VOQ(1,2,2),VOQ(1,3,2)非空(即有信元在隊列中等候調度),這兩個VOQ為VOG(1,2)的成員VOQ;輸入模塊IM3中VOQ(3,1,1)非空,這個VOQ為VOG(3,1)的成員VOQ。
假設此時VOG(1,1)的內部指針VOGInnerPointer(1,1)狀態如圖10所示,當前指針指向VOQ(1,4,1)。VOG(1,1)外部指針VOGExternPointer(1,1)狀態如圖11所示,當前指針指向LoC(4,1)。
假設此時VOG(1,2)的內部指針VOGInnerPointer(1,2)狀態如圖12所示,當前指針指向VOQ(1,4,2)。VOG(1,2)外部指針VOGExternPointer(1,2)狀態如圖13所示,當前指針指向LoC(4,2)。
假設此時VOG(3,1)的內部指針VOGInnerPointer(3,1)狀態如圖14所示,當前指針指向VOQ(3,3,1)。VOG(3,1)的外部指針VOGExternPointer(3,1)狀態如圖15所示,當前指針指向LoC(2,1)。
假設此時LiC(1,3)的指針LiCPointer(1,3),LiC(2,1)的指針LiCPointer(2,1),LiC(3,1)的指針LiCPointer(3,1),LiC(4,3)的指針LiCPointer(4,3)的狀態如圖16所示,LiC(1,3)的指針LiCPointer(1,3)指向LoC(1,1),LiC(2,1)的指針LiCPointer(2,1)指向LoC(2,1),LiC(3,1)的指針LiCPointer(3,1)指向LoC(3,3),LiC(4,3)的指針LiCPointer(4,3)指向LoC(4,2)。
假設此時四個中間模塊的輸出端口LoC(1,1),LoC(2,1),LoC(3,1),LoC(4,1)的指針LoCPointer(1,1),LoCPointer(2,1),LoCPointer(3,1),LoCPointer(4,1)狀態如圖17所示,LoCPointer(1,1)指向VOG(3,1),LoCPointer(2,1)指向VOG(4,1),LoCPointer(3,1)指向VOG(1,1),LoCPointer(4,1)指向VOG(2,1)。
假設此時四個中間模塊的輸出端口LoC(1,2),LoC(2,2),LoC(3,2),LoC(4,2)的指針LoCPointer(1,2),LoCPointer(2,2),LoCPointer(3,2),LoCPointer(4,2)狀態如圖18所示,LoCPointer(1,2)指向VOG(3,2),LoCPointer(2,2)指向VOG(4,2),LoCPointer(3,2)指向VOG(1,2),LoCPointer(4,2)指向VOG(2,2)。
假設上述指針均按順時針輪轉更新,則所說的貫序匹配調度算法步驟為 步驟1VOG(1,1)和VOG(3,1)分別通過各自所在的IM的每個輸出端口向每個CM發送請求消息,LoC(1,1),LoC(2,1),LoC(3,1),LoC(4,1)將收到且處理這兩個消息。VOG(1,2)通過IM(1)的每個輸出端口向每個CM發送請求消息,LoC(1,2),LoC(2,2),LoC(3,2),LoC(4,2)將收到且處理這個消息。
如前所述,虛擬輸出隊列VOQ(i,p,o)進入輸入模塊IM(i)的第p個輸入端口,目的為輸出模塊OM(o)的信元形成的虛擬輸出隊列。由VOQ(1,1,1),VOQ(1,3,1)非空可知其信元要發送到OM1,由VOQ(1,2,2),VOQ(1,3,2)非空可知其信元要發送到OM2,由VOQ(3,1,1)非空可知其信元要發送到OM1。所以當由VOQ(1,1,1)所在的VOG(1,1)和VOQ(3,1,1)所在的VOG(3,1)向每個CM發送請求消息后,從圖3我們可知,只有LoC(1,1),LoC(2,1),LoC(3,1),LoC(4,1)與OM1相連,因此只有LoC(1,1),LoC(2,1),LoC(3,1),LoC(4,1)將收到且處理這兩個消息。同理,當由VOQ(1,2,2)所在的VOG(1,2)向每個CM發送請求消息后,從圖3我們可知,只有LoC(1,2),LoC(2,2),LoC(3,2),LoC(4,2)與OM2相連,因此只有LoC(1,2),LoC(2,2),LoC(3,2),LoC(4,2)將收到且處理這個消息。
步驟2考慮LoC(1,1)的輪轉指針LoCPointer(1,1),由于此時該指針指向VOG(3,1),因此LoC(1,1)將向VOG(3,1)發送允許消息。LoC(2,1)的輪轉指針LoCPointer(2,1)當前指向VOG(4,1),按照順時針輪轉的方式,VOG(1,1)距離當前指針最近,因此LoC(2,1)將向VOG(1,1)發送允許消息。同樣的道理,LoC(3,1)將向VOG(1,1)發送允許消息;LoC(4,1)將向VOG(3,1)發送允許消息;LoC(1,2)將向VOG(1,2)發送允許消息;LoC(2,2)將向VOG(1,2)發送允許消息;LoC(3,2)將向VOG(1,2)發送允許消息;LoC(4,2)將向VOG(1,2)發送允許消息。
步驟3LoC(1,1)發送的允許消息的目的為VOG(3,1),這個消息必須經過LiC(1,3),因為圖3已經示出CM1只有LiC(1,3)和VOG(3,1)所在的IM3相連;同理,LoC(1,2)發送的允許消息的目的為VOG(1,2),這個消息必須經過LiC(1,1),因此,在過濾階段,CM1沒有發生競爭,這兩個允許消息都被放行。
LoC(2,1)發送的允許消息的目的為VOG(1,1),這個消息必須經過LiC(2,1),LoC(2,2)發送的允許消息的目的為VOG(1,2),這個消息必須經過LiC(2,1),在本例子中,LiC(2,1)這里發生了通行競爭,考慮LiCPointer(2,1),由于LiCPointer(2,1)指向LoC(2,1),因此放行LoC(2,1)發送的允許消息,而LoC(2,2)發送的允許消息被丟棄。
LoC(3,1)發送的允許消息的目的為VOG(1,1),這個消息必須經過LiC(3,1),LoC(3,2)發送的允許消息的目的為VOG(1,2),這個消息必須經過LiC(3,1),在本例子中,LiC(3,1)這里也發生了通行競爭,根據上面所述的解決方式,考慮LiCPointer(3,1),當前這個指針指向LoC(3,3),LoC(3,1)距其最近,于是放行LoC(3,1)發送的允許消息,而LoC(3,2)發送的允許消息被丟棄。
LoC(4,1)發送的允許消息的目的為VOG(3,1),這個消息必須經過LiC(4,3),LoC(4,2)發送的允許消息的目的為VOG(1,2),這個消息必須經過LiC(4,1),在本例子中,LiC(4,3)這里沒有發生通行競爭,這兩個允許消息都被放行。
步驟4VOG(1,1)收到來自LoC(2,1)和LoC(3,1)發送過來的允許消息,由于VOG(1,1)的內部指針VOGInnerPointer(1,1)當前指向VOQ(1,4,1),按照順時針輪轉的方式,VOQ(1,1,1)距當前指針最近,因此VOG(1,1)選擇VOQ(1,1,1)發送信元。此時,VOG(1,1)的外部指針VOGExternPointer(1,1)當前指向LoC(4,1),按照順時針輪轉的方式,LoC(2,1)是距離當前指針最近的允許消息發送者,因此VOG(1,1)將首先向LoC(2,1)發送接受消息。這個接受消息沿LoC(2,1)發送允許消息完全相反的路徑到達LoC(2,1),因此將經過LiC(2,1)。如此以來,VOQ(1,1,1)到LoC(2,1)之間通路已經完全建立, 步驟5VOQ(1,1,1)發送一個信元,經過LiC(2,1)到達LoC(2,1)。在這條路經上,VOGInnerPointer(1,1),VOGExternPointer(1,1),LiCPointer(2,1),LoCPointer(2,1)的指針順時針前移到當前得到服務的目標的下一個位置。圖19顯示了這四個指針更新后的狀態。
由于還有信元需要發送,以下繼續重復步驟4、步驟5 步驟4VOG(1,1)的內部指針VOGInnerPointer(1,1)當前指向VOQ(1,2,1),按照順時針輪轉的方式,VOQ(1,3,1)距當前指針最近,因此VOG(1,1)準備選擇VOQ(1,3,1)發送信元。VOG(1,1)的外部指針VOGExternPointer(1,1)當前指向LoC(3,1),按照順時針輪轉的方式,LoC(3,1)即是距離當前指針最近的允許消息發送者,因此VOG(1,1)將再向LoC(3,1)發送接受消息。這個接受消息沿LoC(3,1)發送允許消息完全相反的路徑到達LoC(3,1),因此將經過LiC(3,1)。如此一來,VOQ(1,3,1)到LoC(3,1)之間通路已經完全建立, 步驟5VOQ(1,3,1)發送一個信元,經過LiC(3,1)到達LoC(3,1)。在這條路經上,VOGInnerPointer(1,1),VOGExternPointer(1,1),LiCPointer(3,1),LoCPointer(3,1)的指針順時針前移到當前得到服務的目標的下一個位置。圖20顯示了這四個指針更新后的狀態。
由于VOG(1,1)只有兩個非空VOQ,至此VOG(1,1)已經處理完畢本輪匹配。由于還有VOQ(3,1,1)的信元需要發送到OM1,以下繼續重復步驟4、步驟5 步驟4VOG(3,1)收到來自LoC(1,1)和LoC(4,1)的允許消息,VOG(3,1)的內部指針VOGInnerPointer(3,1)當前指向VOQ(3,3,1),按照順時針輪轉的方式VOQ(3,1,1)距當前指針最近,因此VOG(3,1)選擇VOQ(3,1,1)發送信元。事實上,由于VOG(3,1)僅有一個非空VOQ(3,1,1),因此VOG(3,1)也必然選擇VOQ(3,1,1)發送信元。VOG(3,1)的外部指針VOGExternPointer(3,1)當前指向LoC(2,1),按照順時針輪轉的方式,LoC(4,1)是距離當前指針最近的允許消息發送者,因此VOG(1,1)將首先向LoC(4,1)發送接受消息。這個接受消息沿LoC(4,1)發送允許消息完全相反的路徑到達LoC(4,1),因此將經過LiC(4,3)。如此一來,VOQ(3,1,1)到LoC(4,1)之間通路已經完全建立, 步驟5VOQ(3,1,1)發送一個信元,經過LiC(4,3)到達LoC(4,1)。在這條路經上,VOGInnerPointer(3,1),VOGExternPointer(3,1),LiCPointer(4,3),LoCPointer(4,1)的指針順時針前移到當前得到服務的目標的下一個位置。圖21顯示了這四個指針更新后的狀態。
由于VOG(3,1)只有一個非空VOQ,至此VOG(3,1)已經處理完畢本輪匹配。以上就完成了需要發送到OM1的信元的匹配調度過程。下面的過程是對需要發送到OM2的信元的匹配調度。
步驟4VOG(1,2)收到來自LoC(1,2)和LoC(4,2)的允許消息,VOG(1,2)的內部指針VOGInnerPointer(1,2)當前指向VOQ(1,4,2),按照順時針輪轉的方式VOQ(1,2,2)距當前指針最近,因此VOG(1,2)準備選擇VOQ(1,2,2)發送信元。VOG(1,2)的外部指針VOGExternPointer(1,2)當前指向LoC(4,2),按照順時針輪轉的方式,LoC(4,2)是距離當前指針最近的允許消息發送者,因此VOG(1,2)將首先向LoC(4,2)發送接受消息。這個接受消息沿LoC(4,2)發送允許消息完全相反的路徑到達LoC(4,2),因此將經過LiC(4,1)。如此以來,VOQ(1,2,2)到LoC(4,2)之間通路已經完全建立, 步驟5VOQ(1,2,2)發送一個信元,經過LiC(4,1)到達LoC(4,2)。在這條路經上,VOGInnerPointer(1,2),VOGExternPointer(1,2),LiCPointer(4,1),LoCPointer(4,2)的指針順時針前移到當前得到服務的目標的下一個位置。圖22顯示了這四個指針更新后的狀態。
由于還有信元需要發送,以下繼續重復步驟4、步驟5 步驟4VOG(1,2)的內部指針VOGInnerPointer(1,2)當前指向VOQ(1,3,2),按照順時針輪轉的方式,VOQ(1,3,2)距當前指針最近,因此VOG(1,2)準備選擇VOQ(1,3,2)發送信元。VOG(1,2)的外部指針VOGExternPointer(1,1)當前指向LoC(1,2),按照順時針輪轉的方式,LoC(1,2)即是距離當前指針最近的允許消息發送者,因此VOG(1,1)將再向LoC(1,2)發送接受消息。這個接受消息沿LoC(1,2)發送允許消息完全相反的路徑到達LoC(1,2),因此將經過LiC(1,1)。如此一來,VOQ(1,3,2)到LoC(1,2)之間通路已經完全建立, 步驟5VOQ(1,3,2)發送一個信元,經過LiC(1,1)到達LoC(1,2)。在這條路經上,VOGInnerPointer(1,2),VOGExternPointer(1,2),LiCPointer(1,1),LoCPointer(1,2)的指針順時針前移到當前得到服務的目標的下一個位置。圖23顯示了這四個指針更新后的狀態。
至此,就完成了所有需要發送的信元的匹配調度過程。
權利要求
1.一種基于Clos網絡交換結構的貫序匹配調度算法,所說的Clos網絡交換結構至少包括一個交換機機架及設置在機架上的線卡和背板,每個線卡上的前端芯片包括k個輸入模塊IM和k個輸出模塊OM,背板上的后端芯片包括m個中間模塊CM,每個輸入模塊IM均具有m個輸出端口,每個中間模塊CM均具有k個輸入端口和k個輸出端口,其特征在于所說的貫序匹配調度算法步驟為
步驟1請求階段,每個包含非空虛擬輸出隊列VOQ的虛擬輸出組VOG,根據信元最終要送達的輸出模塊OM,通過其所在的輸入模塊IM的m個輸出端口向每個中間模塊CM的相應的輸出端口發出請求消息,
步驟2允許階段,每個中間模塊CM的輸出端口根據輸出端口指針LoC Pointer的位置選定一個發出請求消息的虛擬輸出組VOG并向其發出允許消息,
步驟3過濾階段,判斷是否發生通行競爭,如沒有則直接放行相應輸出端口發出的允許消息,如發生通行競爭,則每個中間模塊CM的輸入端口根據輸入端口指針LiC Pointer的位置選定一個該中間模塊CM的輸出端口并放行該輸出端口發出的允許消息,
步驟4接受階段,每個收到允許消息的虛擬輸出組VOG,通過VOG內部指針VOGInnerPointer選定一個非空虛擬輸出隊列VOQ,再根據VOG外部指針VOGExternPointer的位置選定一個發出允許消息的中間模塊CM的輸出端口,虛擬輸出組VOG向該輸出端口發送接受消息以完成從虛擬輸出隊列VOQ到該輸出端口的通道建立過程,
步驟5指針更新階段,非空虛擬輸出隊列VOQ通過虛擬輸出組VOG發送一個信元,依次更新VOG內部指針VOGInnerPointer、VOG外部指針VOGExternPointer、中間模塊CM的輸入端口指針LiCPointer和中間模塊CM的輸出端口指針LoCPointer,重復步驟4、步驟5直至所有非空虛擬輸出隊列VOQ的信元都被發送或者所有的允許消息都已被接受。
2.如權利要求1所述的基于Clos網絡交換結構的貫序匹配調度算法,其特征在于輸入模塊IM中虛擬輸出隊列VOQ的組織方式為VOQ(i,p,o),i為輸入模塊的編號,p為輸入模塊的輸入端口編號,o為輸出模塊的編號;輸入模塊IM中虛擬輸出組VOG的組織方式為VOG(i,o),i為輸入模塊的編號,o為輸出模塊的編號,虛擬輸出組VOG由n個成員VOQ(i,p,o)組成,其中1≤p≤n,n為每個輸入模塊的輸入端口的個數。
3.如權利要求1或2所述的基于Clos網絡交換結構的貫序匹配調度算法,其特征在于VOG內部指針VOGInnerPointer、VOG外部指針VOGExternPointer、中間模塊CM的輸入端口指針LiCPointer和中間模塊CM的輸出端口指針LoCPointer更新后,指針指向當前匹配目標的下一個位置。
全文摘要
一種基于Clos網絡交換結構的貫序匹配調度算法,涉及網絡交換調度算法領域。其步驟為步驟1輸入模塊的m個輸出端口向每個中間模塊的相應的輸出端口發出請求消息,步驟2每個中間模塊的輸出端口選定一個發出請求消息的虛擬輸出組并向其發出允許消息,步驟3每個中間模塊的輸入端口選定一個該中間模塊的輸出端口并放行該輸出端口發出的允許消息,步驟4完成從虛擬輸出隊列到輸出端口的通道建立過程,步驟5發送信元并更新指針,重復執行步驟4、步驟5直至所有信元都被發送或者所有的允許消息都已被接受。本發明所述的調度算法采用直通式匹配,整個匹配過程一次完成,同時采取多對多的“請求-允許-接受”方式,最大程度利用了調度機會。
文檔編號H04L12/56GK101304374SQ20081008426
公開日2008年11月12日 申請日期2008年3月28日 優先權日2008年3月28日
發明者洋 汪, 余少華 申請人:武漢烽火網絡有限責任公司