本發(fā)明屬于高性能分組交換機控制
技術(shù)領(lǐng)域:
。
背景技術(shù):
:到目前為止,人們對高性能聯(lián)合輸入交叉節(jié)點排隊(CombinedInput-Crosspoint-Queued,CICQ)結(jié)構(gòu)的分組調(diào)度進行了大量研究,主流算法分為基于輪詢RR(Round-Robin)的算法和最大權(quán)重匹配法?;赗R的算法主要有RR-RR、DRR(DifferentialRound-Robin)、TFQA(TrackingFairQuotaAllocation)、RR-LQD(LongestQueueDetecting)等?;跈?quán)重的最大匹配法主要包括以隊長、交叉緩存占用率、阻塞時間為權(quán)重的最大權(quán)重匹配法,例如LQF-RR(LongestQueueFirstandRR)、MCBF(MostCriticalBufferFirst)、SCBF(ShortestCrosspointBufferFirst)、SBF-GWF(theShortestbufferFirstandtheGreatestWeightbufferFirst)、HOPS(HybridOptimizationPacketScheduling)、MCQF(MostCriticalQueueFirst)等。RR及其改進算法實現(xiàn)簡單,復雜度一般為O(1),且大多數(shù)算法對可接入均勻業(yè)務(wù)可獲得近100%的通過率,但平均分組時延較大。最大權(quán)重匹配法以復雜度增大為代價來獲取分組時延的下降。例如代表性的MCBF算法以特定輸出和輸入端口對應(yīng)的crossbar中緩存的分組數(shù)目為權(quán)重,充分利用crossbar資源,但沒有考慮VOQ的隊列長度。而近來提出的SBF-GWF算法,在MCBF的基礎(chǔ)上,進一步地,輸出調(diào)度采用VOQ隊長為權(quán)重,相比MCBF及其它算法,時延性能有顯著提高。在已有的CICQ調(diào)度算法中,即使是性能突出的SBF-GWF算法,相比采用最簡單的FIFO(FirstInFirstOut)算法的輸出排隊(OQ)結(jié)構(gòu),其時延性能依然有較大差距。根本原因在于OQ結(jié)構(gòu)交換機能夠工作于work-conserving狀態(tài),確保獲得100%的通過率,從而使得時延下降。但是OQ結(jié)構(gòu)的加速比使得其可擴展性受限,在大規(guī)模高速交換中不具有實用價值?;谶@個思路,不同于已有的算法,本發(fā)明以最大程度實現(xiàn)交換機工作于work-conserving狀態(tài)為核心,提出了一種業(yè)務(wù)均衡的方法,并基于業(yè)務(wù)均衡提出了CICQ結(jié)構(gòu)中的一種新的分組調(diào)度算法,即基于業(yè)務(wù)均衡的空交叉緩存隊列優(yōu)先(Empty-crossbuffer-queueFirstwithTrafficBalance,EFTB)算法。本發(fā)明提供的EFTB算法整體考慮業(yè)務(wù)均衡和輸入調(diào)度,利用業(yè)務(wù)均衡調(diào)整到達分組進入到相應(yīng)的輸入端口,為輸入調(diào)度實現(xiàn)交換機逼近work-conserving狀態(tài)提供便利,從而降低平均分組時延。技術(shù)實現(xiàn)要素:本發(fā)明的目的是針對crossbuffer緩存容量為一個分組的CICQ結(jié)構(gòu)交換機,通過將業(yè)務(wù)均衡與輸入調(diào)度相結(jié)合,提供使交換機最大程度工作于work-conserving狀態(tài)并具有良好的通過率和平均分組時延性能的分組調(diào)度算法。為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)路線為:第一步初始化在時隙開始時根據(jù)業(yè)務(wù)到達矩陣、VOQ狀態(tài)矩陣、交叉緩存狀態(tài)矩陣,計算得到下面調(diào)度過程中需要使用到的輸入和輸出端口集合。第二步work-conserving匹配對于無業(yè)務(wù)到達、有傳輸需求、且交叉緩存隊列為空的輸出端口集合進行work-conserving匹配。對于一個VOQ隊列,若其非空且其對應(yīng)的交叉緩存為空,則稱其為可調(diào)度VOQ隊列。在work-conserving匹配中,優(yōu)先選擇對應(yīng)可調(diào)度VOQ隊列數(shù)最少的輸出端口進行匹配。匹配原則是優(yōu)先選擇無業(yè)務(wù)到達且可調(diào)度的非空隊列數(shù)最少的輸入端口與該輸出端口進行匹配。后續(xù)的端口匹配中可調(diào)度隊列的計算將不包括已匹配的輸出端口和輸入端口對應(yīng)的所有VOQ隊列。第三步加入業(yè)務(wù)均衡的work-conserving匹配對于有業(yè)務(wù)到達、有傳輸需求、且交叉緩存隊列為空的輸出端口集合進行加入業(yè)務(wù)均衡的work-conserving匹配。與第一步work-conserving匹配相似,優(yōu)先選擇可調(diào)度VOQ隊列數(shù)最少的輸出端口,選擇有業(yè)務(wù)到達、可調(diào)度、非空VOQ隊列數(shù)最少的輸入端口與其匹配。不同的是,如果找不到這樣的輸入端口與所選輸出端口進分組行匹配,則選擇去往該輸出端口有業(yè)務(wù)到達的隊長最長的VOQ,將新到達的原本進入該VOQ隊列的分組調(diào)整至其它輸入端口去往該輸出端口隊長最短的VOQ隊列,并將該輸出端口與存入新分組的輸入端口匹配。一次輸入調(diào)度中,每個輸入端口最多只有一次調(diào)離分組以及接受分組的機會。第四步冗余匹配在第一和第二兩步work-conserving匹配結(jié)束后,對于每個尚未匹配的輸入端口,選擇去往該輸出端口的非空VOQ隊列數(shù)最小的輸出端口與其匹配。第五步業(yè)務(wù)均衡的補全對于同時包含在業(yè)務(wù)均衡中被調(diào)整過和未被調(diào)整過的新到達分組的輸入端口集合,從中任選一個輸入端口并將其從該集合中剔除,將選出的輸入端口未被調(diào)整過的新到達分組調(diào)整至任意不包含新到達分組的輸入端口。重復上述操作直至該輸入端口集合為空。本發(fā)明的有益效果:本發(fā)明針對crossbuffer容量為單個分組的CICQ結(jié)構(gòu)交換機,提供了一種使交換機最大程度工作于work-conserving狀態(tài)的輸入調(diào)度算法,在輸出端采用經(jīng)典的LQF算法,兩者組合得到EFTB-LQF算法。仿真結(jié)果顯示其能夠有效提高交換機通過率,同時對于常見的均勻/非均勻,Bernoulli/ON-OFF業(yè)務(wù),其具有與OQ結(jié)構(gòu)幾乎相同的平均分組時延。相比已有的代表性的主流算法,本發(fā)明提供的算法在交換機通過率及平均分組時延性能方面具有明顯的優(yōu)勢。因此本發(fā)明提供的算法在大規(guī)模高性能CICQ交換機中具有良好實用價值。附圖說明圖1是聯(lián)合輸入交叉節(jié)點排隊(CICQ)結(jié)構(gòu)交換機框圖;圖2是加入業(yè)務(wù)均衡模塊的聯(lián)合輸入交叉節(jié)點排隊(CICQ)結(jié)構(gòu)交換機框圖;圖3是work-conserving匹配流程圖;圖4是加入業(yè)務(wù)均衡的work-conserving匹配流程圖;圖5是冗余匹配流程圖;圖6是EFTB算法總流程圖。具體實施方式圖1給出了CICQ結(jié)構(gòu)分組交換機框圖,圖2給出了本發(fā)明提出的帶有業(yè)務(wù)均衡模塊的CICQ結(jié)構(gòu)框圖。本發(fā)明根據(jù)輸入調(diào)度的work-conserving需求,通過業(yè)務(wù)均衡來調(diào)整新到達分組進入的輸入端口,在輸入調(diào)度中采用空交叉緩存隊列優(yōu)先的策略,以盡可能實現(xiàn)交換機工作于work-conserving狀態(tài),在保證通過率的同時降低平均分組時延。第一步初始化首先,時隙開始時根據(jù)交換機的業(yè)務(wù)到達矩陣A、VOQ隊列狀態(tài)矩陣Q、交叉緩存狀態(tài)矩陣X,按照下述方法計算出相應(yīng)的輸出和輸入端口集合以及可調(diào)度狀態(tài)矩陣。假設(shè)某8×8交換機(即N=8),時隙開始時矩陣AN×N={aij}N×N,QN×N={qij}N×N,XN×N={xij}N×N如下:A8×8=1000000001000000001000000001000000001000100000000000000010000000,Q8×8=1100010001100010011101110011110000011000100000000000000010000001,]]>X8×8=0000000000000000000000010000000000000000000000000000000010000000]]>其中aij=1表示輸入端口i本時隙有去往輸出端口j的新分組到達,否則aij=0;qij=1表示其對應(yīng)的VOQ非空,否則qij=0;xij=1表示其對應(yīng)的交叉緩存非空,否則xij=0。然后,根據(jù)以上三個矩陣初始化相應(yīng)的輸入輸出端口集合如下:OA={1,2,3,4,5},ON={6,7,8},Y={2,3,4,5,6,7},YA={2,3,4,5},YN={6,7},I={1,2,3,4,5,6,7,8}其中OA為輸出端口j的集合,OA={1≤j≤N|本時隙有去往輸出端口j的分組進入交換機,即ON為OA在所有輸出端口集合中的補集;Y為輸出端口j的集合,Y={1≤j≤N|Bj=0且YA為輸出端口j的集合,YA=Y(jié)∩OA;YN為輸出端口j的集合,YN=Y(jié)∩ON;I為未被匹配的輸入端口i的集合。根據(jù)上述輸出端口的集合,初始化與其相對應(yīng)的可調(diào)度狀態(tài)矩陣如下:E8×8=1100010001100010011101100011110000011000100000000000000000000001,E8×6Y=100010110001111011011110001100000000000000000000,]]>E8×2N=1001111000000000,E8×4A=10001100111001110011000000000000]]>其中矩陣EN×N={eij}N×N,為輸入調(diào)度的可調(diào)度狀態(tài)矩陣,若xij=0且qij=1則eij=1;否則eij=0。矩陣EY、EN、EA分別為集合Y、YN、YA中的輸出端口在矩陣E中對應(yīng)的列組成的子矩陣。最后,初始化業(yè)務(wù)均衡矩陣D和輸入調(diào)度矩陣S為零陣。第二步集合YN的work-conserving匹配YN={6,7},cE6=3>cE7=2,則選擇輸出端口7先進行匹配。rN2=1<rN3=2,故選擇輸入端口2與其匹配,置s27=1,在I中剔除輸入端口2。同樣地,選擇輸入端口1與輸出端口6進行匹配,置s16=1,在I中剔除輸入端口1。至此集合YN的work-conserving匹配結(jié)束。其中為輸出端口j的剩余可調(diào)度隊列數(shù),即為輸入端口i的無業(yè)務(wù)輸出端口可調(diào)度隊列數(shù),即第三步集合YA加入業(yè)務(wù)均衡的work-conserving匹配YA={2,3,4,5},其中cE5=2最小,故選擇輸出端口5先進行匹配。rA5=2<rA4=3,故選擇輸入端口5與其匹配,置s55=1,在I中剔除輸入端口5。同樣地,置s44=1,s33=1,在I中剔除輸入端口3和4。此時YA中還剩輸出端口2尚未匹配,但輸入端口1、2、3均已被匹配,無法在I中找到未被匹配的輸入端口與輸出端口2匹配。而a22=1,則將輸入端口2的屬于V22的新到達分組調(diào)整至輸入端口6的V62中,置d62=1,s62=1,在I中剔除輸入端口6。至此集合YA加入業(yè)務(wù)均衡的work-conserving匹配結(jié)束。其中riA為輸入端口i的有業(yè)務(wù)輸出端口可調(diào)度隊列數(shù),即Vij為輸入端口i和輸出端口j對應(yīng)的虛擬輸出隊列(VOQ)。第四步冗余匹配此時I={7,8},即還剩輸入端口7、8尚未匹配。輸入端口7無業(yè)務(wù)不予匹配,對于輸入端口8,由于cQ1=3>cQ8=2,則選擇輸出端口8與輸入端口8匹配,置s88=1。其中為輸出端口j的非空VOQ隊列數(shù),即第五步業(yè)務(wù)均衡的補全之前已確定d62=1,由于輸入端口6同時包含了未被調(diào)整的去往輸出端口1的新到達分組以及由輸入端口2調(diào)整而來的去往輸出端口2的新到達分組,需要將其未被調(diào)整的新到達分組調(diào)整至不包含新到達分組的輸入端口2或7,這里任意選擇輸入端口2,置d26=1。輸入端口1,3,4,5,8的新到達分組均未被調(diào)整,則置d11,d33,d44,d55,d88分別為1。輸入端口7無新到達分組且未接收其他端口的新到達分組,為補全矩陣D為置換矩陣,置d77為1。最終業(yè)務(wù)均衡矩陣為:D8×8=1000000000000100001000000001000000001000010000000000001000000001,]]>均衡后的業(yè)務(wù)到達矩陣和VOQ隊列狀態(tài)矩陣分別為:A′8×8=DA=1000000010000000001000000001000000001000010000000000000010000000,Q′8×8=1100010011100010011101110011110000011000110000000000000010000001]]>輸入調(diào)度矩陣和輸入調(diào)度后的交叉緩存狀態(tài)矩陣分別為:S8×8=0000010000000010001000000001000000001000010000000000000000000001,X′8×8=0000010000000010001000010001000000001000010000000000000010000001]]>當前第1頁1 2 3