專利名稱:一種交換網(wǎng)中的數(shù)據(jù)調(diào)度方法、設(shè)備和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高速數(shù)據(jù)網(wǎng)絡(luò)中的數(shù)據(jù)調(diào)度技術(shù),尤其涉及一種交換網(wǎng)中的數(shù)據(jù)調(diào)度
方法、設(shè)備和系統(tǒng)。
背景技術(shù):
高速大容量的數(shù)據(jù)交換系統(tǒng)已成為當(dāng)前研究熱點。而交叉交換(Crossbar,簡寫為 XB)機(jī)制以其無阻塞的特性且實現(xiàn)簡單成為研究交換結(jié)構(gòu)、設(shè)計調(diào)度算法、分析交換單元性 能的首選模型。 基于輸入輸出緩沖交叉開關(guān)(Combined Input Output Queued, CI0Q) Crossbar的 交換網(wǎng)能夠從多個輸入端口接收輸入數(shù)據(jù),然后調(diào)度這些數(shù)據(jù)到不同的輸出端口。交換網(wǎng) 利用流量管理(TM)將從線卡(LineCard)輸入的可變長度的報文切分為固定長度的信元 (Cell);同時把時間劃分為固定長度的時間槽(Time Slot);每個時間槽, 一個輸入端口最 多只能調(diào)度出去一個信元,相應(yīng)的,一個輸出端口最多只能調(diào)度進(jìn)來一個信元。調(diào)度算法保 證從不同輸入端口輸入的數(shù)據(jù)不會同時被調(diào)度到相同的輸出端口。 交換網(wǎng)可以對包括單播(unicast)信元和多播(multicast)信元進(jìn)行混合調(diào)度。 例如,現(xiàn)有技術(shù)中提出了一種空間多播的調(diào)度方法,能夠把多播信元調(diào)度到交換網(wǎng)之后進(jìn) 行復(fù)制,同時將復(fù)制后的信元從多個輸出端口輸出,以實現(xiàn)對單播信元和多播信元的混合 調(diào)度。 在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題現(xiàn)有技術(shù)提 供的單播信元和多播信元的混合調(diào)度方法,復(fù)雜度過高,可行性較小。單播信元和多播信元 的混合調(diào)度仍然是一個開放性的問題,沒有很好的解決方案。
發(fā)明內(nèi)容
為解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明的實施例提供一種交換網(wǎng)中的數(shù)據(jù)調(diào)度方 法、設(shè)備和系統(tǒng)。 為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案 本發(fā)明實施例提供了一種交換網(wǎng)中的數(shù)據(jù)調(diào)度方法,所述方法包括 根據(jù)調(diào)度策略計算輸入端口中每個信元隊列的隊首信元的權(quán)重,所述信元包括單
播信元和多播信元;根據(jù)所述權(quán)重,獲取調(diào)度所述隊首信元時輸入端口和輸出端口之間的
端口匹配;利用所述端口匹配將所述隊首信元從輸入端口傳送至輸出端口 。 本發(fā)明實施例還提供了一種數(shù)據(jù)調(diào)度設(shè)備,所述設(shè)備包括 權(quán)重計算單元,用于根據(jù)調(diào)度策略計算輸入端口中每個信元隊列隊首信元的權(quán) 重,所述信元包括單播信元和多播信元; 端口匹配單元,用于根據(jù)所述權(quán)重計算單元計算得到的權(quán)重,獲取調(diào)度所述隊首 信元時輸入端口和輸出端口之間的端口匹配; 傳送單元,用于利用所述端口匹配單元獲取到的端口匹配,將所述隊首信元從輸
5入端口傳送至輸出端口。 本發(fā)明實施例還提供了一種交換網(wǎng)系統(tǒng),該系統(tǒng)包括上述的數(shù)據(jù)調(diào)度設(shè)備。
本發(fā)明實施例提供的技術(shù)方案,對單播信元和多播信元都采用了基于權(quán)重的調(diào)度 機(jī)制,能夠同時進(jìn)行對單播信元和多播信元的混合調(diào)度,實現(xiàn)較高的數(shù)據(jù)吞吐率,且顯著降 低了調(diào)度算法的復(fù)雜度,具有較大的可行性和較高的應(yīng)用價值。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一提供的交換網(wǎng)中的數(shù)據(jù)調(diào)度方法流程圖;
圖2為本發(fā)明實施例二提供的一種交換網(wǎng)中的數(shù)據(jù)調(diào)度方法流程圖;
圖3為本發(fā)明實施例二提供的另一種交換網(wǎng)中的數(shù)據(jù)調(diào)度方法流程圖;
圖4為本發(fā)明實施例三提供的一種數(shù)據(jù)調(diào)度設(shè)備結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例三提供的另一種數(shù)據(jù)調(diào)度設(shè)備結(jié)構(gòu)示意圖;
圖6為本發(fā)明實施例三提供的又一種數(shù)據(jù)調(diào)度設(shè)備結(jié)構(gòu)示意圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于 本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護(hù)的范圍。 本發(fā)明實施例一提供的交換網(wǎng)中的數(shù)據(jù)調(diào)度方法,如圖1所示,所述方法包括
步驟11 :根據(jù)調(diào)度策略計算輸入端口中每個信元隊列的隊首信元的權(quán)重,所述信 元包括單播信元和多播信元; 步驟12 :根據(jù)所述權(quán)重,獲取調(diào)度所述隊首信元時輸入端口和輸出端口之間的端 口匹配; 步驟13 :利用所述端口匹配將所述隊首信元從輸入端口傳送至輸出端口。 本發(fā)明實施例提供的技術(shù)方案,對單播信元和多播信元都采用了基于權(quán)重的調(diào)度
機(jī)制,能夠同時進(jìn)行對單播信元和多播信元的混合調(diào)度,實現(xiàn)較高的數(shù)據(jù)吞吐率,且顯著降
低了調(diào)度算法的復(fù)雜度,具有較大的可行性和較高的應(yīng)用價值。 下面通過本發(fā)明實施例二進(jìn)一步詳細(xì)說明本發(fā)明的技術(shù)方案。 本發(fā)明實施例二中以基于CI0Q的無緩存(Buffer-less)Crossbar交換網(wǎng)為例進(jìn)
行說明。該交換網(wǎng)包括N個輸入端口 (Input Port)和N個輸出端口 (OutputPort) ,N為正
整數(shù),N的取值可根據(jù)具體的需要的進(jìn)行確定,例如,當(dāng)網(wǎng)絡(luò)中的數(shù)據(jù)吞吐量較大時,N的取
值也較大。每個輸入端口中維護(hù)對應(yīng)于N個輸出端口的N個單播信元隊列和k個多播信元
隊列,k的取值可以為1《k《2 其中,N為上述的輸入端口數(shù)量或者輸出端口數(shù)量。由
于通常情況下,多播數(shù)據(jù)流的數(shù)量(2N)遠(yuǎn)遠(yuǎn)大于多播信元隊列的數(shù)量k,因此一個多播信元隊列中的信元可以屬于多個多播數(shù)據(jù)流,各多播信元按照數(shù)據(jù)流入隊,即屬于同一數(shù)據(jù)流 的多播信元入隊同一個多播信元隊列。 在每個時間槽內(nèi),完成一次數(shù)據(jù)調(diào)度的流程。輸入端口計算每個信元隊列隊首 (Head of Line,H0L)信元的權(quán)重,并根據(jù)權(quán)重通過多次迭代完成輸入端口和輸出端口之間 的最大端口匹配。然后,根據(jù)端口匹配的結(jié)果配置Crossbar各個交叉點的狀態(tài),并將隊首 信元從輸入端口傳送到與該輸入端口具有匹配關(guān)系的輸出端口 。參見圖2,具體包括如下處 理 步驟21 :輸入端口接收需要進(jìn)行調(diào)度的數(shù)據(jù)流,并將該可變長度的數(shù)據(jù)流切分為 固定長度的信元,維護(hù)信元隊列并進(jìn)行緩存,該信元包括單播信元和多播信元。
步驟22 :根據(jù)調(diào)度策略計算輸入端口中每個信元隊列的隊首信元的權(quán)重。
在本發(fā)明實施例中,所采用的調(diào)度策略至少包括如下三種策略中的一種或其組 合. 策略一當(dāng)?shù)谝魂犑仔旁牡却龝r間大于第二隊首信元的等待時間時,為第一隊 首信元分配的權(quán)重大于為第二隊首信元分配的權(quán)重,即信元等待時間越長,信元的權(quán)重越 大; 策略二當(dāng)?shù)谝恍旁犃械拈L度大于第二信元隊列的長度時,為第一信元隊列中 的隊首信元分配的權(quán)重大于為第二信元隊列中的隊首信元分配的權(quán)重,即信元隊列長度越 大,隊首信元的權(quán)重越大; 策略三當(dāng)?shù)谝魂犑仔旁獙?yīng)的扇出數(shù)值大于第二隊首信元對應(yīng)的扇出數(shù)值時, 為第一隊首信元分配的權(quán)重小于為第二隊首信元分配的權(quán)重,即信元扇出數(shù)越大,信元權(quán) 重越小。 為了便于清楚描述本發(fā)明實施例的技術(shù)方案,在本發(fā)明的實施例中,采用了"第 一"、"第二"等字樣對功能和作用基本相同的相同項或相似項進(jìn)行區(qū)分,本領(lǐng)域技術(shù)人員可 以理解"第一"、"第二"等字樣并不對數(shù)量和執(zhí)行次序進(jìn)行限定。例如,用"第一隊首信元"
表示任一信元隊列的隊首信元,用"第二隊首信元"表示與"第一隊首信元"所屬信元隊列 不同的任一個信元隊列中的隊首信元。 其中,對于上述隊首信元的等待時間可以從該信元入隊時就開始計算,單位是時 間槽數(shù)量。這時,需要為信元隊列中的每個信元維護(hù)一個時間計數(shù)器,或者為每個信元添加 一個入隊時間戳。 或者,上述隊首信元的等待時間也可以從該信元作為隊首信元時開始計算。這時
只需要為每個信元隊列維護(hù)一個時間計數(shù)器即可,無需對信元隊列中的每一信元都維護(hù)一
個時間計數(shù)器或是為每個信元添加時間戳,這種方案可以進(jìn)一步簡化設(shè)計。 本發(fā)明實施例,對于單播信元和多播信元采用相同的方法計算信元權(quán)重。計算權(quán)
重時,同時考慮信元等待時間,信元隊列長度,信元扇出數(shù)等參數(shù)。這樣既可以保證調(diào)度公
平性,又可以避免數(shù)據(jù)流餓死,同時還可以自動適應(yīng)不同比例的單多播混合數(shù)據(jù)。 步驟23 :未建立端口匹配的輸入端口向其中所有隊首信元的輸出端口發(fā)送請求消息。 對每一個信元,包括單播信元或多播信元,在執(zhí)行交換之前都具有自身相應(yīng)的作 為目的地的輸出端口 ,單播信元具有一個相應(yīng)的輸出端口 ,多播信元具有多個相應(yīng)的輸出
7端口 。未建立端口匹配的輸入端口對該輸入端口中的每個隊首信元相應(yīng)的輸出端口發(fā)送請 求(Request)消息,該請求消息中攜帶所述隊首信元的權(quán)重或是指示該隊首信元權(quán)重的信 息。 本發(fā)明實施例采用多次迭代完成輸入端口和輸出端口之間的端口匹配。已經(jīng)建立 端口匹配的輸入端口和輸出端口不再參與后續(xù)迭代過程中的匹配操作。對于一個新的時間 槽,首次迭代時,未建立端口匹配的輸入端口包括交換網(wǎng)中所有的輸入端口 。執(zhí)行一次匹配 操作之后,交換網(wǎng)中的所有輸入端口(或輸出端口)便被分為未建立端口匹配的輸入端口 (或輸出端口)和已建立端口匹配的輸入端口(或輸出端口),隨著后續(xù)迭代過程中的多次 匹配操作,已建立端口匹配的輸入端口 (或輸出端口)的數(shù)量會不斷增多,未建立端口匹配 的輸入端口(或輸出端口)的數(shù)量會不斷減少。 可以在交換網(wǎng)中對所有已建立端口匹配的輸入端口和輸出端口進(jìn)行記錄,控制已 記錄的輸入端口和輸出端口不再參與后續(xù)迭代過程中的匹配操作;或者,對每一個輸入端 口或輸出端口,當(dāng)其已成功建立端口匹配后便自行退出后續(xù)迭代過程中的匹配操作;或者, 在每一次執(zhí)行端口匹配操作前,先對輸入端口或輸出端口是否已建立端口匹配進(jìn)行判斷, 當(dāng)該輸入端口或輸出端口還未建立端口匹配時,允許該輸入端口或輸出端口參與本次的端 口匹配操作。上述相同描述適用于下文的相關(guān)內(nèi)容。 步驟24 :未建立端口匹配的輸出端口根據(jù)請求消息發(fā)送授權(quán)消息。 只有未建立端口匹配的輸出端口能夠根據(jù)上述Request消息進(jìn)行后續(xù)的調(diào)度操
作,而對于已經(jīng)建立過端口匹配的輸出端口,可以拒絕接收來自輸入端口的Request消息,
或者,輸入端口不再向已經(jīng)建立過端口匹配的輸出端口發(fā)送Request消息。 未建立端口匹配的每個輸出端口根據(jù)接收到的所述Request消息向相應(yīng)的隊首
信元所對應(yīng)的輸入端口發(fā)送授權(quán)(Grant)消息,其中,所述相應(yīng)的隊首信元為在向所述輸
出端口發(fā)送Request消息的隊首信元中權(quán)重最大的隊首信元。 當(dāng)上述輸入端口在Grant階段內(nèi)未收到相應(yīng)輸出端口發(fā)送的Grant消息,則不再 選取該隊首信元作為權(quán)重最大的隊首信元,輸入端口將權(quán)重最大的隊首信元置為最小值, 如將該權(quán)重置為O,進(jìn)行下一次迭代時,從其它的隊首信元中選擇權(quán)重最大的隊首信元。
本發(fā)明實施例采用一種"塔形"的比較器,分層在N個隊首信元中選取權(quán)重值最大 的隊首信元。第一層,N/2個比較器分別兩兩比較權(quán)重數(shù)據(jù),選出N/2個權(quán)重較大的隊首信 元;第二層,N/4個比較器分別兩兩比較第一層處理后的比較結(jié)果,選擇N/4個權(quán)重較大的 隊首信元;以此類推,這樣最多經(jīng)過1o&N層的比較,就能選出權(quán)重值最大的隊首信元。所 采用的比較器的總數(shù)量為N個。 在分層比較的過程中,如果出現(xiàn)平局現(xiàn)象,即存在至少兩個具有相同權(quán)重的隊首 信元,而這些隊首信元的權(quán)重相同又大于其余待選的隊首信元,這些隊首信元為造成平局 的隊首信元。則輸出端口按照平局處理方案選擇最大權(quán)重的隊首信元,并發(fā)送Grant消息 至該最大權(quán)重的隊首信元對應(yīng)的輸入端口。 本發(fā)明實施例提供的平局處理方案至少包括如下方式
方式一隨機(jī)方式 在造成平局的隊首信元中,隨機(jī)選取一個隊首信元作為權(quán)重最大的隊首信元。
方式二 輪詢(Round Robin)方式
這種方式下,每個輸入/輸出端口維護(hù)一個輪詢指針Pr,記錄解除平局的輪詢端 口號。發(fā)生平局時,在所述造成平局的隊首信元中,當(dāng)所述隊首信元所對應(yīng)的端口號與輪詢 端口號的差值最小時,即所述隊首信元的端口號與Pr最接近時,將該隊首信元作為所選取 的權(quán)重最大的隊首信元。選出權(quán)重最大的隊首信元之后,利用下述公式更新Pr的數(shù)值
Pr = (Pr+1) % N ; 其中,等式左側(cè)的pr為更新后的輪詢指針,等式右側(cè)的Pr為更新前的輪詢指針, N為交換網(wǎng)的輸出端口/輸入端口的數(shù)目。 方式三在造成平局的隊首信元中,總是選擇端口號最小或者最大的端口所對應(yīng) 的隊首信元作為權(quán)重最大的隊首信元。 步驟25 :輸入端口選取接收到Grant消息的隊首信元中權(quán)重最大的隊首信元所對 應(yīng)的輸出端口發(fā)送接受(Acc印t)消息,建立端口匹配。 輸入端口接收到多個Grant消息之后,選擇權(quán)重最大的隊首信元接受Grant消息, 并向該隊首信元的相應(yīng)的輸出端口發(fā)送Acc印t消息,在輸入端口和輸出端口之間就建立 匹配關(guān)系。其中,選擇權(quán)重最大的隊首信元和發(fā)生平局時的處理方法參見上述的相關(guān)內(nèi)容。
下一次迭代時,已建立匹配關(guān)系的輸入端口不再向任何輸出端口發(fā)送Request消 息,已建立匹配關(guān)系的輸出端口也不再接受任何輸入端口的Request消息。
步驟26 :判斷本次迭代是否成功匹配端口,當(dāng)本次迭代成功建立了部分輸入端口 和輸出端口的匹配關(guān)系時,說明端口匹配正在進(jìn)行中,重復(fù)上述的步驟23至步驟25 ;
步驟27 :當(dāng)本次迭代沒有成功建立任何輸入端口和輸出端口的匹配關(guān)系時,說明 經(jīng)過前述的迭代已經(jīng)建立了最大的端口匹配,迭代結(jié)束,得到最終的匹配結(jié)果。或者,預(yù)先 設(shè)置迭代次數(shù)的閾值,當(dāng)?shù)拇螖?shù)達(dá)到該閾值時,得到最終的匹配結(jié)果,迭代結(jié)束(圖中 未示出)。 對于每個時間槽,通過最大權(quán)重建立輸入端口輸出端口之間的匹配關(guān)系之后,利 用該端口匹配將所述隊首信元從輸入端口傳送至輸出端口 。 其中,對于單播信元,輸入端口調(diào)度隊首信元之后,就可以把它從緩沖隊列中刪 除。對于多播信元,由于它有多個目的端口 ,在一個時間槽的調(diào)度中,很有可能只和部分目 的端口建立了匹配關(guān)系。這時,需要采用扇出分割的調(diào)度方式。輸入端口把多播隊列的隊 首信元復(fù)制后發(fā)送給交換網(wǎng)以進(jìn)行該隊首信元在相應(yīng)輸出端口的轉(zhuǎn)發(fā),該輸出端口為本次 調(diào)度中已經(jīng)為該隊首信元建立端口匹配關(guān)系的目的端口 。然后修改多播隊列中隊首信元的 目的端口位圖,把已經(jīng)建立過端口匹配執(zhí)行了數(shù)據(jù)發(fā)送的目的端口位圖從整個多播隊列隊 首信元的目的端口位圖中刪除。只有多播隊列的隊首信元所對應(yīng)的所有目的端口均已發(fā)送 過數(shù)據(jù),才能從信元隊列中刪除此多播信元。 本發(fā)明實施例的調(diào)度方法不局限于基于CIOQ的Buffer-less Crossbar交換網(wǎng), 適用于對均勻流量數(shù)據(jù)和非均勻流量數(shù)據(jù)進(jìn)行調(diào)度的場合。根據(jù)需要可對本發(fā)明實施例中 各個步驟的執(zhí)行時序進(jìn)行調(diào)整。 本發(fā)明實施例二還提供了另一種交換網(wǎng)中的數(shù)據(jù)調(diào)度方法,該方法采用了另一種 多次迭代的方式,完成了輸入端口和輸出端口之間的端口匹配。參見圖3,具體包括
步驟31 :輸入端口接收需要進(jìn)行調(diào)度的數(shù)據(jù)流,并將該可變長度的數(shù)據(jù)流切分為 固定長度的信元,維護(hù)信元隊列并進(jìn)行緩存,該信元包括單播信元和多播信元。
步驟32 :根據(jù)調(diào)度策略計算輸入端口中每個信元隊列的隊首信元的權(quán)重。 該調(diào)度策略包括信元等待時間越長,信元的權(quán)重越大,信元隊列長度越大,隊首信
元的權(quán)重越大,信元扇出數(shù)越大,信元權(quán)重越小。 本發(fā)明實施例,對于單播信元和多播信元采用相同的方法計算信元權(quán)重。計算權(quán)
重時,同時考慮信元等待時間,信元隊列長度,信元扇出數(shù)等參數(shù)。這樣既可以保證調(diào)度公
平性,又可以避免數(shù)據(jù)流餓死,同時還可以自動適應(yīng)不同比例的單多播混合數(shù)據(jù)。
步驟33 :未建立端口匹配的輸入端口向該輸入端口中權(quán)重最大的隊首信元所對
應(yīng)的輸出端口發(fā)送Request消息,所述Request消息中攜帶該隊首信元的權(quán)重。 步驟34:未建立端口匹配的輸出端口根據(jù)接收到的所述請求消息向相應(yīng)的隊首
信元所對應(yīng)的輸入端口發(fā)送Grant消息,建立端口匹配,其中,所述隊首信元為在向所述輸
出端口發(fā)送請求消息的隊首信元中權(quán)重最大的隊首信元。 其中,如果輸入端口發(fā)送Request消息后,在Grant階段內(nèi)未收到輸出端口發(fā)送的 Grant消息,則不再選取該隊首信元作為權(quán)重最大的隊首信元,輸入端口將權(quán)重最大的隊首 信元置為最小值,如將該權(quán)重置為O,進(jìn)行下一次迭代時,從其它的隊首信元中選擇權(quán)重最 大的隊首信元。 步驟35 :判斷本次迭代是否成功匹配端口,當(dāng)本次迭代成功建立了部分輸入端口 和輸出端口的匹配關(guān)系時,說明端口匹配正在進(jìn)行中,重復(fù)上述的步驟33和步驟34 ;
步驟36 :當(dāng)本次迭代沒有成功建立任何輸入端口和輸出端口的匹配關(guān)系時,說明 經(jīng)過前述的迭代已經(jīng)建立了最大的端口匹配,迭代結(jié)束,得到最終的匹配結(jié)果?;蛘撸A(yù)先 設(shè)置迭代次數(shù)的閾值,當(dāng)?shù)拇螖?shù)達(dá)到該閾值時,得到最終的匹配結(jié)果,迭代結(jié)束。
步驟31至步驟36中的具體操作方法可參見步驟21至步驟27的相關(guān)內(nèi)容。
本發(fā)明實施例提供的技術(shù)方案,對單播信元和多播信元都采用了基于權(quán)重的調(diào)度 機(jī)制,能夠同時進(jìn)行對單播信元和多播信元的混合調(diào)度,實現(xiàn)較高的數(shù)據(jù)吞吐率,且顯著降 低了調(diào)度算法的復(fù)雜度,具有較大的可行性和較高的應(yīng)用價值。 本發(fā)明實施例三還提供了一種數(shù)據(jù)調(diào)度設(shè)備,如圖4所示,所述設(shè)備包括 權(quán)重計算單元41,用于根據(jù)調(diào)度策略計算輸入端口中每個信元隊列隊首信元的權(quán)
重,所述信元包括單播信元和多播信元; 端口匹配單元42,用于根據(jù)所述權(quán)重計算單元41計算得到的權(quán)重,獲取調(diào)度所述 隊首信元時輸入端口和輸出端口之間的端口匹配; 傳送單元43,用于利用所述端口匹配單元42獲取到的端口匹配,將所述隊首信元 從輸入端口傳送至輸出端口。 其中,所述權(quán)重計算單元42基于如下調(diào)度策略計算所述隊首信元的權(quán)重 當(dāng)?shù)谝魂犑仔旁牡却龝r間大于第二隊首信元的等待時間時,為第一隊首信元分
配的權(quán)重大于為第二隊首信元分配的權(quán)重;和/或, 當(dāng)?shù)谝恍旁犃械拈L度大于第二信元隊列的長度時,為第一信元隊列中的隊首信 元分配的權(quán)重大于為第二信元隊列中的隊首信元分配的權(quán)重;和/或, 當(dāng)?shù)谝魂犑仔旁獙?yīng)的扇出數(shù)值大于第二隊首信元對應(yīng)的扇出數(shù)值時,為第一隊 首信元分配的權(quán)重小于為第二隊首信元分配的權(quán)重。 為了便于清楚描述本發(fā)明實施例的技術(shù)方案,在本發(fā)明的實施例中,上述描述采
10用了"第一"、"第二"等字樣對功能和作用基本相同的相同項或相似項進(jìn)行區(qū)分,本領(lǐng)域技 術(shù)人員可以理解"第一"、"第二"等字樣并對不對數(shù)量和執(zhí)行次序進(jìn)行限定。例如,用"第一 隊首信元"表示任一信元隊列的隊首信元,用"第二隊首信元"表示與"第一隊首信元"所屬 信元隊列不同的任一個信元隊列中的隊首信元。 本發(fā)明實施例中,對于單播信元和多播信元采用相同的方法計算信元權(quán)重。計算 權(quán)重時,同時考慮信元等待時間,信元隊列長度,信元扇出數(shù)等參數(shù)。這樣既可以保證調(diào)度 公平性,又可以避免數(shù)據(jù)流餓死,同時還可以自動適應(yīng)不同比例的單多播混合數(shù)據(jù)。
進(jìn)一步的,參見圖5,根據(jù)本發(fā)明實施例提供的一種調(diào)度方式,所述端口匹配單元 42可以包括第一匹配模塊421, 所述第一匹配模塊421 ,用于對未建立端口匹配的輸入端口中的每個隊首信元,向 該隊首信元對應(yīng)的輸出端口發(fā)送請求消息,該請求消息中攜帶所述隊首信元的權(quán)重;對向 未建立端口匹配的輸出端口發(fā)送請求消息的隊首信元,根據(jù)該輸出端口接收到的所述請求 消息選取權(quán)重最大的隊首信元所對應(yīng)的輸入端口發(fā)送授權(quán)消息;對輸入端口中接收到所述 授權(quán)消息的隊首信元,選取權(quán)重最大的隊首信元所對應(yīng)的所述輸出端口發(fā)送接受消息,建 立端口匹配; 進(jìn)一步的,參見圖6,根據(jù)本發(fā)明實施例提供的另一種調(diào)度方式,所述端口匹配單 元42可以包括第二匹配模塊422, 所述第二匹配模塊422,用于對未建立端口匹配的輸入端口中權(quán)重最大的隊首信 元,向該隊首信元對應(yīng)的輸出端口發(fā)送請求消息,所述請求消息中攜帶該隊首信元的權(quán)重; 對向未建立端口匹配的輸出端口發(fā)送請求消息的隊首信元中,根據(jù)該輸出端口接收到的所 述請求消息選取權(quán)重最大的隊首信元所對應(yīng)的輸入端口發(fā)送授權(quán)消息,建立端口匹配。
進(jìn)一步的,所述第一匹配模塊421或第二匹配模塊422還包括平局解決模塊423,
所述平局解決模塊423,用于當(dāng)存在至少兩個權(quán)重相同的隊首信元且該權(quán)重相同 的隊首信元的權(quán)重大于剩余待選隊首信元的權(quán)重時,至少通過下述的一種方式選取權(quán)重最 大的隊首信元 在所述權(quán)重相同的隊首信元中,隨機(jī)確定一個信元作為所選取的權(quán)重最大的隊首 信元;或者, 設(shè)置輪詢指針,所述輪詢指針指示輪詢端口號;在所述權(quán)重相同的隊首信元中,當(dāng) 所述隊首信元所對應(yīng)的端口號與輪詢端口號的差值最小時,將該隊首信元作為所選取的權(quán) 重最大的隊首信元;或者, 在所述權(quán)重相同的隊首信元中,將具有最小端口號或者具有最大端口號的隊首信 元作為所選取的權(quán)重最大的隊首信元。 可以理解本發(fā)明實施例中的各功能模塊和單元,可以分別單獨實現(xiàn),也可以集成
在一個或幾個單元中實現(xiàn),其具體的工作方法參見本發(fā)明的方法實施例。 本發(fā)明實施例提供的技術(shù)方案,對單播信元和多播信元都采用了基于權(quán)重的調(diào)度
機(jī)制,能夠同時進(jìn)行對單播信元和多播信元的混合調(diào)度,實現(xiàn)較高的數(shù)據(jù)吞吐率,且顯著降
低了調(diào)度算法的復(fù)雜度,具有較大的可行性和較高的應(yīng)用價值。 本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺 的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/ RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器, 或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何 熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
一種交換網(wǎng)中的數(shù)據(jù)調(diào)度方法,其特征在于,所述方法包括根據(jù)調(diào)度策略計算輸入端口中每個信元隊列隊首信元的權(quán)重,所述信元包括單播信元和多播信元;根據(jù)所述權(quán)重,獲取調(diào)度所述隊首信元時輸入端口和輸出端口之間的端口匹配;利用所述端口匹配將所述隊首信元從輸入端口傳送至輸出端口。
2. 根據(jù)權(quán)利要求1所述的交換網(wǎng)中的數(shù)據(jù)調(diào)度方法,其特征在于,所述調(diào)度策略包括 當(dāng)?shù)谝魂犑仔旁牡却龝r間大于第二隊首信元的等待時間時,為第一隊首信元分配的權(quán)重大于為第二隊首信元分配的權(quán)重;和/或,當(dāng)?shù)谝恍旁犃械拈L度大于第二信元隊列的長度時,為第一信元隊列中的隊首信元分 配的權(quán)重大于為第二信元隊列中的隊首信元分配的權(quán)重;和/或,當(dāng)?shù)谝魂犑仔旁獙?yīng)的扇出數(shù)值大于第二隊首信元對應(yīng)的扇出數(shù)值時,為第一隊首信 元分配的權(quán)重小于為第二隊首信元分配的權(quán)重。
3. 根據(jù)權(quán)利要求2所述的交換網(wǎng)中的數(shù)據(jù)調(diào)度方法,其特征在于,所述隊首信元的等 待時間從該信元進(jìn)入所屬信元隊列起計算,或者,所述隊首信元的等待時間從該信元作為 所屬信元隊列的隊首信元起計算。
4. 根據(jù)權(quán)利要求1所述的交換網(wǎng)中的數(shù)據(jù)調(diào)度方法,其特征在于,所述根據(jù)所述權(quán)重, 獲取調(diào)度所述隊首信元時輸入端口和輸出端口之間的端口匹配結(jié)果包括對未建立端口匹配的輸入端口中的每個隊首信元,向該隊首信元對應(yīng)的輸出端口發(fā)送 請求消息,該請求消息中攜帶所述隊首信元的權(quán)重;對向未建立端口匹配的輸出端口發(fā)送請求消息的隊首信元,根據(jù)該輸出端口接收到的 所述請求消息選取權(quán)重最大的隊首信元所對應(yīng)的輸入端口發(fā)送授權(quán)消息;對輸入端口中接收到所述授權(quán)消息的隊首信元,選取權(quán)重最大的隊首信元所對應(yīng)的所 述輸出端口發(fā)送接受消息,建立端口匹配;或者,對未建立端口匹配的輸入端口中權(quán)重最大的隊首信元,向該隊首信元對應(yīng)的輸出端口 發(fā)送請求消息,所述請求消息中攜帶該隊首信元的權(quán)重;對向未建立端口匹配的輸出端口發(fā)送請求消息的隊首信元,根據(jù)該輸出端口接收到的 所述請求消息選取權(quán)重最大的隊首信元所對應(yīng)的輸入端口發(fā)送授權(quán)消息,建立端口匹配。
5. 根據(jù)權(quán)利要求4所述的交換網(wǎng)中的數(shù)據(jù)調(diào)度方法,其特征在于,所述方法還包括 當(dāng)存在至少兩個權(quán)重相同的隊首信元且該權(quán)重相同的隊首信元的權(quán)重大于剩余待選隊首信元的權(quán)重時,至少通過下述的一種方式選取權(quán)重最大的隊首信元在所述權(quán)重相同的隊首信元中,隨機(jī)確定一個信元作為所選取的權(quán)重最大的隊首信 元;或者,設(shè)置輪詢指針,所述輪詢指針指示輪詢端口號;在所述權(quán)重相同的隊首信元中,當(dāng)所述 隊首信元所對應(yīng)的端口號與輪詢端口號的差值最小時,將該隊首信元作為所選取的權(quán)重最 大的隊首信元;或者,在所述權(quán)重相同的隊首信元中,將具有最小端口號或者具有最大端口號的隊首信元作 為所選取的權(quán)重最大的隊首信元。
6. —種數(shù)據(jù)調(diào)度設(shè)備,其特征在于,所述設(shè)備包括權(quán)重計算單元,用于根據(jù)調(diào)度策略計算輸入端口中每個信元隊列隊首信元的權(quán)重,所 述信元包括單播信元和多播信元;端口匹配單元,用于根據(jù)所述權(quán)重計算單元計算得到的權(quán)重,獲取調(diào)度所述隊首信元 時輸入端口和輸出端口之間的端口匹配;傳送單元,用于利用所述端口匹配單元獲取到的端口匹配,將所述隊首信元從輸入端 口傳送至輸出端口。
7. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)調(diào)度設(shè)備,其特征在于,所述權(quán)重計算單元基于如下調(diào) 度策略計算所述隊首信元的權(quán)重當(dāng)?shù)谝魂犑仔旁牡却龝r間大于第二隊首信元的等待時間時,為第一隊首信元分配的 權(quán)重大于為第二隊首信元分配的權(quán)重;和/或,當(dāng)?shù)谝恍旁犃械拈L度大于第二信元隊列的長度時,為第一信元隊列中的隊首信元分 配的權(quán)重大于為第二信元隊列中的隊首信元分配的權(quán)重;和/或,當(dāng)?shù)谝魂犑仔旁獙?yīng)的扇出數(shù)值大于第二隊首信元對應(yīng)的扇出數(shù)值時,為第一隊首信 元分配的權(quán)重小于為第二隊首信元分配的權(quán)重。
8. 根據(jù)權(quán)利要求6所述的數(shù)據(jù)調(diào)度設(shè)備,其特征在于,所述端口匹配單元包括第一匹 配模塊或者第二匹配模塊,所述第一匹配模塊,用于對未建立端口匹配的輸入端口中的每個隊首信元,向該隊首 信元對應(yīng)的輸出端口發(fā)送請求消息,該請求消息中攜帶所述隊首信元的權(quán)重;對向未建立 端口匹配的輸出端口發(fā)送請求消息的隊首信元,根據(jù)該輸出端口接收到的所述請求消息選 取權(quán)重最大的隊首信元所對應(yīng)的輸入端口發(fā)送授權(quán)消息;對輸入端口中接收到所述授權(quán)消 息的隊首信元,選取權(quán)重最大的隊首信元所對應(yīng)的所述輸出端口發(fā)送接受消息,建立端口 匹配;所述第二匹配模塊,用于對未建立端口匹配的輸入端口中權(quán)重最大的隊首信元,向該 隊首信元對應(yīng)的輸出端口發(fā)送請求消息,所述請求消息中攜帶該隊首信元的權(quán)重;對向未 建立端口匹配的輸出端口發(fā)送請求消息的隊首信元中,根據(jù)該輸出端口接收到的所述請求 消息選取權(quán)重最大的隊首信元所對應(yīng)的輸入端口發(fā)送授權(quán)消息,建立端口匹配。
9. 根據(jù)權(quán)利要求8所述的數(shù)據(jù)調(diào)度設(shè)備,其特征在于,所述第一匹配模塊或者第二匹 配模塊還包括平局解決模塊,所述平局解決模塊,用于當(dāng)存在至少兩個權(quán)重相同的隊首信元且該權(quán)重相同的隊首信 元的權(quán)重大于剩余待選隊首信元的權(quán)重時,至少通過下述的一種方式選取權(quán)重最大的隊首 信元在所述權(quán)重相同的隊首信元中,隨機(jī)確定一個信元作為所選取的權(quán)重最大的隊首信 元;或者,設(shè)置輪詢指針,所述輪詢指針指示輪詢端口號;在所述權(quán)重相同的隊首信元中,當(dāng)所述 隊首信元所對應(yīng)的端口號與輪詢端口號的差值最小時,將該隊首信元作為所選取的權(quán)重最 大的隊首信元;或者,在所述權(quán)重相同的隊首信元中,將具有最小端口號或者具有最大端口號的隊首信元作 為所選取的權(quán)重最大的隊首信元。
10. —種交換網(wǎng)系統(tǒng),其特征在于,所述系統(tǒng)包括如上述權(quán)利要求6至9任一項所述的數(shù)據(jù)調(diào)度設(shè)備'
全文摘要
本發(fā)明公開了一種交換網(wǎng)中的數(shù)據(jù)調(diào)度方法、設(shè)備和系統(tǒng),涉及高速數(shù)據(jù)網(wǎng)絡(luò)中的數(shù)據(jù)調(diào)度技術(shù),提供了一種進(jìn)行單播信元和多播信元的混合調(diào)度的解決方案,顯著降低了調(diào)度算法的復(fù)雜度,具有較大的可行性和較高的應(yīng)用價值。本發(fā)明實施例提供的交換網(wǎng)中的數(shù)據(jù)調(diào)度方法包括根據(jù)調(diào)度策略計算輸入端口中每個信元隊列隊首信元的權(quán)重,所述信元包括單播信元和多播信元;根據(jù)所述權(quán)重,獲取調(diào)度所述隊首信元時輸入端口和輸出端口之間的端口匹配;利用所述端口匹配將所述隊首信元從輸入端口傳送至輸出端口。本發(fā)明適用于對均勻流量數(shù)據(jù)和非均勻流量數(shù)據(jù)的調(diào)度。
文檔編號H04L12/56GK101707556SQ20091022397
公開日2010年5月12日 申請日期2009年11月20日 優(yōu)先權(quán)日2009年11月20日
發(fā)明者孫團(tuán)會, 宋健, 曹愛娟, 李德豐, 蘇皓 申請人:華為技術(shù)有限公司