一種基于矩陣分解的網(wǎng)絡(luò)交換調(diào)度方法
【專利摘要】本發(fā)明公開(kāi)了一種基于矩陣分解的網(wǎng)絡(luò)交換調(diào)度方法,在業(yè)務(wù)流量到達(dá)已知的情況下,將度為m=2r,r為大于1的正整數(shù)、階數(shù)為N的業(yè)務(wù)矩陣采用擴(kuò)展算法擴(kuò)展成為度為2、階數(shù)P=N×m/2的擴(kuò)展矩陣,對(duì)P階擴(kuò)展矩陣采用環(huán)形算法進(jìn)行分解得到度為1的P階分解矩陣,對(duì)P階分解矩陣壓縮成為度為2的P/2階壓縮矩陣,再次對(duì)P/2階壓縮采用環(huán)形算法分解得到度為1的P/2階分解矩陣,重復(fù)對(duì)分解矩陣進(jìn)行壓縮和再分解,直到P/2=N,即分解矩陣與業(yè)務(wù)矩陣階數(shù)相同,則矩陣分解完畢,此時(shí)得到的分解矩陣即為網(wǎng)絡(luò)交換調(diào)度所需的連接矩陣。本發(fā)明適用于無(wú)阻塞交換網(wǎng)絡(luò),針對(duì)度為m=2r,r為大于1的正整數(shù)的業(yè)務(wù)矩陣,能夠采用簡(jiǎn)單易行的環(huán)形算法進(jìn)行矩陣分解,從而實(shí)現(xiàn)低復(fù)雜度的網(wǎng)絡(luò)交換調(diào)度。
【專利說(shuō)明】—種基于矩陣分解的網(wǎng)絡(luò)交換調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)交換調(diào)度【技術(shù)領(lǐng)域】,更為具體地講,涉及一種基于矩陣分解的網(wǎng)絡(luò)交換調(diào)度方法。
【背景技術(shù)】
[0002]多級(jí)交換結(jié)構(gòu)能提供更多的交換接口滿足大量用戶接入,提供更高的帶寬滿足用戶服務(wù)質(zhì)量,已成為了大容量交換結(jié)構(gòu)的首選。多級(jí)多平面(Mult1-Plane andMult1-Stage,MPMS)結(jié)構(gòu),屬于多級(jí)交換結(jié)構(gòu)的特例,是對(duì)多級(jí)交換結(jié)構(gòu)的中間模塊擴(kuò)展為交換平面而來(lái)。圖1是MPMS交換結(jié)構(gòu)示意圖。平面內(nèi)部可以是單級(jí)空分交換結(jié)構(gòu),也可以是多級(jí)交換結(jié)構(gòu)。根據(jù)到達(dá)流量是否已知,交換調(diào)度算法分為兩種不同的處理方式。若到達(dá)流量未知,可以將調(diào)度抽象為二分圖匹配問(wèn)題并使用二分圖匹配算法來(lái)解決。若到達(dá)流量已知,可以使用矩陣分解算法。
[0003]為了更好的說(shuō)明矩陣分解算法,首先定義幾個(gè)名詞概念。
[0004]定義1:矩陣的度:矩陣中每行元素之和與每列元素之和的最大值m是矩陣的度。
假 連接到輸出模塊序號(hào)j的業(yè) 務(wù)數(shù),m表示業(yè)務(wù)矩陣的度,即中間級(jí)模塊個(gè)數(shù),代表多級(jí)交換結(jié)構(gòu)中最大可支持的業(yè)務(wù)數(shù)量;N表示輸入/輸出模塊的個(gè)數(shù)??梢?jiàn),業(yè)務(wù)矩陣中的元素Hm[i, j]的值僅能從0,1,2......m-l,m中選一個(gè)。對(duì)于MPMS而言,中間級(jí)模塊指的是交換平面。
[0006]定義3:連接矩陣五f,m,其中每個(gè)元素£('[/,/] , O ^ i, j ^ N_l,代表輸
入模塊i是否有業(yè)務(wù)經(jīng)過(guò)中間級(jí)模塊k連接到輸出模塊j,其元素值為I代表有連接,元素值為O代表無(wú)連接。其中下標(biāo)I表示連接矩陣的度,即每個(gè)中間級(jí)模塊k中每個(gè)輸入模塊到每個(gè)輸出模塊最多只存在一個(gè)業(yè)務(wù)。
[0007]矩陣分解算法的基本思想是在統(tǒng)籌全局業(yè)務(wù)到達(dá)情況下,對(duì)業(yè)務(wù)進(jìn)行的一次統(tǒng)一路由分配。首先根據(jù)到達(dá)的全局業(yè)務(wù)情況,統(tǒng)計(jì)得出一個(gè)業(yè)務(wù)矩陣Hm。矩陣分解算法的目標(biāo)是對(duì)全局業(yè)務(wù)一次統(tǒng)一路由分配,即把業(yè)務(wù)矩陣Hm分解成為m個(gè)子矩陣E1,
H =E11+Ef+...+ Ei由Hall定理可得知,在無(wú)阻塞交換結(jié)構(gòu)中,矩陣分解算法一定能
分解出所有的子矩陣。屬于無(wú)阻塞交換結(jié)構(gòu)有:單級(jí)CrossbaK交叉開(kāi)關(guān)矩陣),多級(jí)MPMS、Banyan (榕樹(shù)網(wǎng)絡(luò))、Bense、Clos等,均可采用矩陣分解算法進(jìn)行路由分配。以MPMS為例,如圖1所示,MPMS路由調(diào)度的第一步就是把輸入端到達(dá)的業(yè)務(wù)均勻下發(fā)到各個(gè)平面。矩陣分解算法對(duì)業(yè)務(wù)矩陣分解得到各個(gè)子矩陣,其中每個(gè)子矩陣就可以作為MPMS中每個(gè)平面的路由設(shè)置依據(jù)。[0008]現(xiàn)有矩陣分解算法中,以環(huán)形算法為代表,不需重排調(diào)整或回溯就能實(shí)現(xiàn)對(duì)業(yè)務(wù)矩陣分解出所有子矩陣,其時(shí)間復(fù)雜度隨著端口數(shù)的增加線性增加。在文獻(xiàn)[S.Andresen, “The looping algorithm extended to base2t rearrangeable switchingnetworks, ” IEEE Trans.Commun.vol.COM-25, pp.1057-1063,Oct.1977]中 Andresen 首次在可重排無(wú)阻塞結(jié)構(gòu)中采用環(huán)形算法,基本步驟是先在業(yè)務(wù)矩陣中尋找一個(gè)未標(biāo)記元素并標(biāo)記為O ;其次在同列尋找最后一個(gè)未標(biāo)記元素并標(biāo)記為I ;緊接著在同行尋找最后一個(gè)未標(biāo)記元素并標(biāo)記為0,若此時(shí)未找到最后一個(gè)未標(biāo)記元素則重新選擇其他行的未標(biāo)記元素。環(huán)形算法一次處理業(yè)務(wù)矩陣能得到兩個(gè)子矩陣,即環(huán)形算法適用于度為2的業(yè)務(wù)矩陣。其具體實(shí)現(xiàn)步驟包括:
[0009]步驟1、根據(jù)業(yè)務(wù)流量到達(dá)情況,初始化業(yè)務(wù)矩陣各個(gè)元素H2[i,j],O≤i,j≤N-1。初始化所有連接矩陣,I≤k≤2,標(biāo)記連接矩陣中每個(gè)元素值£f[U]為O。
[0010]步驟2、在業(yè)務(wù)矩陣H2中從元素H2[0,0]開(kāi)始逐行逐列遍歷各個(gè)元素。
[0011]2.1)若尋找所有行未找到非零元素,則環(huán)形算法結(jié)束。
[0012]2.2)若尋找到元素H2[i,j]為非零值2,則更新連接矩陣和業(yè)務(wù)矩陣相應(yīng)元素E\ [/,./] = I,E7;[i, j] = I, H2 [i, j] = O 后,重新執(zhí)行步驟 2。
[0013]2.3)若尋找到元素H2[i,j]為非零值1,則更新連接矩陣和業(yè)務(wù)矩陣相應(yīng)元素E; [/,./] = I,H2 [i, j] = O 后,繼續(xù)執(zhí)行步驟 3。
[0014]步驟3、在行i中尋找非零元素值1,若找到元素H2[i,I]為非零值1,則更新連接矩陣和業(yè)務(wù)矩陣相應(yīng)元素<[/,/]=丨,H2 [i,I] = 0,繼續(xù)執(zhí)行步驟4 ;反之則回到步驟2。
[0015]步驟4、在列I中尋找非零元素值1,若找到元素H2[r,I]為非零值1,則更新連接矩陣和業(yè)務(wù)矩陣相應(yīng)元素€[/%/] = 1,H2[r,I] =0,i=r,返回步驟3;反之則返回步驟2。
[0016]可見(jiàn),環(huán)形算法在步驟2中選取一個(gè)起點(diǎn),接著在步驟3和4之間循環(huán)跳轉(zhuǎn)執(zhí)行,
最終以回到起點(diǎn)結(jié)束。環(huán)形算法處理業(yè)務(wù)矩陣H2得到兩個(gè)子矩陣巧\ E21 , H2 =盡、盡2。
根據(jù)業(yè)務(wù)到達(dá)是否滿配,環(huán)形算法處理略有不同。在到達(dá)業(yè)務(wù)滿配情況下,業(yè)務(wù)矩陣H2每行和每列的元素之和都等于常數(shù)2,那么環(huán)形算法整個(gè)處理過(guò)程以環(huán)的起點(diǎn)開(kāi)始,并以環(huán)的起點(diǎn)結(jié)束,從步驟4回到步驟2開(kāi)始尋找下一個(gè)環(huán)開(kāi)始的起點(diǎn),直到步驟2中未找到非零元素才結(jié)束環(huán)形算法。在到達(dá)業(yè)務(wù)非滿配情況下,業(yè)務(wù)矩陣H2每行每列的元素之和小于或等于常數(shù)2,同樣可以采用環(huán)形算法處理。在環(huán)遍歷矩陣中,若出現(xiàn)從步驟3或4回到步驟2時(shí)的列(或行)并不是起始列(或行),那么一個(gè)環(huán)的處理還需從起始列(或行)的反方向開(kāi)始遍歷環(huán),直到再次回到步驟2才開(kāi)始尋找下一個(gè)環(huán)開(kāi)始的起點(diǎn),直到步驟2中未找到非零元素才結(jié)束環(huán)形算法。下面以滿配業(yè)務(wù)矩陣H2為例,對(duì)環(huán)形算法的實(shí)現(xiàn)步驟進(jìn)行說(shuō)明。
【權(quán)利要求】
1.一種基于矩陣分解的網(wǎng)絡(luò)交換調(diào)度方法,其特征在于,包括以下步驟: 51:網(wǎng)絡(luò)中輸入模塊和輸出模塊的個(gè)數(shù)均為N,根據(jù)業(yè)務(wù)流量到達(dá)情況,統(tǒng)計(jì)得到N階業(yè)務(wù)矩陣Hm,其中,m表示業(yè)務(wù)矩陣Hm的度并滿足2的冪指數(shù)即m= 2%業(yè)務(wù)矩陣Hm的每個(gè)元素Hm[i,j]表示輸入模塊i連接到輸出模塊j的業(yè)務(wù)數(shù),i,j的取值范圍為0≤ i≤N-1;0≤ J≤N-1 52:采用擴(kuò)展算法對(duì)業(yè)務(wù)矩陣Hm進(jìn)行擴(kuò)展,得到度為2的P階擴(kuò)展矩陣M2,其中,P =NXm/2 ;M2[x, y]表示擴(kuò)展矩陣M2中的元素,x,y的取值范圍為O≤x≤P-1,O≤y≤P-1 ; 53:采用環(huán)形算法對(duì)擴(kuò)展矩陣M2進(jìn)行矩陣分解,分解得到兩個(gè)P階分解矩陣Mf'1、Mf-2,此時(shí)分解矩陣個(gè)數(shù)K = 2 ; 54:采用壓縮算法分別對(duì)K個(gè)P階分解矩陣k = 1,2,…,K進(jìn)行壓縮,得到K個(gè)度為2的P/2階壓縮矩陣; 55:再次采用環(huán)形算法對(duì)K個(gè)壓縮矩陣似2^中的每個(gè)壓縮矩陣分別進(jìn)行矩陣分解,得到2K個(gè)壓縮矩陣; 56:判斷分解矩陣的階數(shù)P/2是否等于業(yè)務(wù)矩陣階數(shù)N,如果等于,矩陣分解結(jié)束,得到網(wǎng)絡(luò)交換調(diào)度的連接矩陣五?;如果不等于,令P = P/2,K = 2Κ,返回步驟S4。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)交換調(diào)度方法,其特征在于,所述步驟S2中擴(kuò)展算法包括: S2.1:業(yè)務(wù)矩陣Hm的每行、每列對(duì)應(yīng)一個(gè)標(biāo)志數(shù)民、Lj,初始化所有標(biāo)志數(shù)為O ;擴(kuò)展矩陣仏的每行、每列對(duì)應(yīng)一個(gè)計(jì)數(shù)器<^^ Cl初始化所有計(jì)數(shù)器為O ;初始化擴(kuò)展矩陣仏中每個(gè)元素仏匕又]; S2.2:逐行逐列遍歷業(yè)務(wù)矩陣Hm中的每個(gè)元素Hm [i, j],如果Hm[i, j]為零值,進(jìn)入步驟32.6,如果扎[1,」]為非零值,進(jìn)入步驟S2.3 ;.m.m 32.3:令- = 7><了+/?;沙=_/<7+/^,判斷計(jì)數(shù)器(:^是否等于2,如果不是,不作任何操作,如果是,標(biāo)志數(shù)Ri =民+1并更新X ;同時(shí)判斷計(jì)數(shù)器C1y是否等于2,如果不是,不作任何操作,如果是,標(biāo)志數(shù)h = Lj+Ι并更新j ;進(jìn)入步驟S2.4 ; S2.4:令 M2[x, y] = M2[x, y]+l,更新計(jì)數(shù)器 Cf = Cf + I , = + I , Hm[i, j]=Hm[i, j]-l ; S2.5:判斷Hm [i,j]是否為0,如果不為0,重復(fù)步驟S2.3 ;如果為0,進(jìn)入步驟S2.6 ;S2.6:判斷業(yè)務(wù)矩陣Hm的元素是否遍歷完畢,如果沒(méi)有遍歷完畢,則返回步驟S2.2遍歷下一元素,如果遍歷完畢,則業(yè)務(wù)矩陣擴(kuò)展結(jié)束。
3.根據(jù)權(quán)利要求1或2所述的網(wǎng)絡(luò)交換調(diào)度方法,其特征在于,所述步驟S4中的壓縮算法的具體方法為:將分解矩陣MfΛ按兩行兩列進(jìn)行分塊,得到Ρ/2階的分塊矩陣,將分塊矩陣中的每個(gè)子矩陣替.換為子矩陣中所有元素的和,得到P/2階壓縮矩陣Μ2Ρ/2'λ_。
【文檔編號(hào)】H04L12/721GK103475597SQ201310385601
【公開(kāi)日】2013年12月25日 申請(qǐng)日期:2013年8月30日 優(yōu)先權(quán)日:2013年8月30日
【發(fā)明者】許渤, 張念, 楊琦, 邱昆 申請(qǐng)人:電子科技大學(xué)