基於交換網絡的一種廣播調度方法
2023-05-14 10:52:56
專利名稱:基於交換網絡的一種廣播調度方法
技術領域:
本發明屬於計算機通信技術,涉及通信網絡中交換機的一種廣播的調度方法。
背景技術:
現代交換式通信網絡,都由節點機和交換機組成,所有節點機均通過鏈路與交換機相連,實現分布式通信。交換機作為整個交換網絡的核心部件,負責為網絡中所有節點提供單播、組播和廣播的數據交換支持。為了支持更多的網絡節點,通常將多個交換機進行級聯來實現。 在一些實時通信系統中,對廣播消息有特殊要求,要求廣播消息同時達到各目的端ロ,這樣就要求所有目的端ロ全部就緒後才能發送廣播消息。當有多個端ロ需要同時發送廣播消息時,可能會出現多個端ロ相互等待而造成廣播死鎖問題。另外,在兩個交換機組成的級聯網絡中,如何實現廣播消息同時到達各目的端ロ,暫無相關技術文獻。
發明內容
本發明的目的是提供基於交換網絡的ー種廣播調度方法,實現廣播的線速轉發,確保廣播消息可以同時到達所有目的端ロ ;在多端ロ發送廣播時,無死鎖,各發送端ロ發送負載保持均衡;並且支持兩交換機級聯網絡。本發明通過設計ー個全局的廣播仲裁器,對所有需要發送廣播消息的端ロ進行仲裁;然後得到許可的端ロ向所有目的端ロ發送請求,得到所有目的端ロ許可後,發送數據幀並撤銷廣播發送請求;然後轉入下ー輪仲裁。據此,本發明提出以下方案基於交換網絡的ー種廣播調度方法,包括以下環節I)當ー個或多個Ingress端ロ的廣播隊列非空時,即處於等待發送的巾貞為廣播中貞狀態,每個Ingress端ロ向廣播仲裁器發送各自的「廣播調度請求」,同時還發送級聯擴展端ロ標誌信號以及優先級標誌信號給廣播仲裁器;廣播仲裁器進行仲裁,根據仲裁結果向選定的Ingress端ロ發送「廣播調度許可」;2) Ingress端ロ如果未收到「廣播調度許可」,則持續發送「廣播調度請求」;如果收到「廣播調度許可」,則根據主機配置的廣播隔離寄存器,Ingress端ロ向除廣播隔離端ロ外的其他所有的Egress目的端ロ發送「廣播發送請求」;3) Egress目的端ロ接收到Ingress端ロ發送的「廣播發送請求」後,根據步驟I)所述的優先級標誌信號優先選擇對高優先級「廣播發送請求」採用Round Robin算法進行仲裁,根據該仲裁結果,Egress目的端ロ向相應的Ingress端ロ發送「廣播發送許可」;當Egress目的端ロ接收到Ingress端ロ發送的「接受廣播發送許可」後,轉入下ー輪仲裁;否則,Egress目的端ロ持續發送「廣播消息發送許可」;4) Ingress端ロ收齊所有Egress目的端ロ的「廣播發送許可」後,向所有Egress目的端ロ發送「接受廣播發送許可」;同吋,Ingress端ロ控制邏輯產生「廣播數據幀出隊請求」,其有效狀態維持到該幀結束;控制邏輯根據優先級標誌信號選擇相應優先級的廣播幀隊列,進入廣播發送狀態;5) Ingress埠進入廣播發送狀態後,撤銷向廣播仲裁器發送的「廣播調度請求」;同時,廣播仲裁器轉入下一輪仲裁,再次執行步驟I)至5);所述廣播仲裁器在收到「廣播調度請求」後的執行內容是a、檢測級聯擴展埠是否有「廣播調度請求」,如果有,向該級聯擴展埠發送「廣播調度許可」,然後轉步驟d);否則,轉步驟b);b、檢測是否有高優先級的「廣播調度請求」,如果有,利用Round Robin算法對接收到的高優先級「廣播調度請求」進行仲裁,並根據仲裁結果,向該埠發送「廣播調度許可」,然後轉步驟d);否則轉步驟c); C、採用Round Robin算法對接收到的低優先級「廣播調度請求」進行仲裁,並根據仲裁結果,向該埠發送「廣播調度許可」,然後轉步驟4);d、檢測被許可埠是否已撤銷「廣播調度請求」,如果是,轉步驟a),進行下一輪仲裁;否則,繼續檢測該埠是否已撤銷「廣播調度請求」。本發明的優點是可靠性高在單交換機及兩交換機級聯網絡中,出現多個埠同時發送廣播時,可以確保不會出現死鎖。傳輸效率高單埠發送廣播可以達到線速;多埠發送廣播時,各發送埠發送均衡。可擴展性強只需要對仲裁器Round Robin埠數目進行擴充,即可支持更多埠的交換機廣播的設計和實現。支持廣播隔離可以根據實際情況,通過主機配置,使部分埠不接收廣播幀。
圖1是廣播實現方案示意圖;圖2是廣播仲裁器工作流程示意圖;圖3是廣播發送流程示意圖。
具體實施例方式本發明的實現方式分為廣播整體方案、廣播仲裁器、廣播發送流程三個部分。下面以支持兩級優先級的32埠交換機為例,對三個部分進行具體介紹。1.廣播實現方案如圖1所示,當交換機的某個或某些Ingress埠(埠輸入端)接收到廣播數據幀時,需要向廣播仲裁器發送「廣播調度請求」,同時執行下述過程I)廣播仲裁器從所有的「廣播調度請求」埠中,通過「廣播仲裁器」仲裁出某一個埠,向它發送「廣播調度許可」;2)收到「廣播調度許可」的Ingress埠,向所有需要接收廣播的Egress目的埠(埠輸出端)發送「廣播發送請求」信號,在收齊所有Egress目的埠回復的「廣播發送許可」後,轉入發送狀態,並撤銷向廣播仲裁器發送的「廣播調度請求」信號;沒有收到「廣播調度許可」的Ingress埠,則持續向廣播仲裁器發送「廣播調度請求」;
3)廣播仲裁器在向某Ingress埠發送出「廣播調度許可」後,持續檢測該埠的「廣播調度請求」信號是否已被撤銷,當檢測到該信號撤銷後,轉步驟1),進行下一輪仲裁。2.廣播仲裁器為避免出現廣播風暴,廣播消息只能通過一個級聯擴展埠。廣播仲裁器採用基於優先級的Round Robin算法,優先接受高優先級的請求,其中,級聯擴展埠優先級最高,其它埠優先級為相應廣播幀的優先級。如圖2所示,廣播仲裁器工作流程如下I)檢測級聯擴展埠是否有「廣播調度請求」,如果有,向該級聯擴展埠發送「廣播調度許可」,然後轉步驟4);否則,轉步驟2);2)檢測是否有高優先級的「廣播調度請求」,如果有,利用Round Robin算法對接收 到的高優先級「廣播調度請求」進行仲裁,並根據仲裁結果,向該埠發送「廣播調度許可」,然後轉步驟4);否則轉步驟3);3)利用Round Robin算法對接收到的低優先級「廣播調度請求」進行仲裁,並根據仲裁結果,向該埠發送「廣播調度許可」,然後轉步驟4);4)檢測被許可埠是否已撤銷「廣播調度請求」,如果是,轉步驟I ),進行下一輪仲裁;否則,繼續檢測該埠是否已撤銷「廣播調度請求」。3.廣播發送流程每個數據埠的Ingress埠有一個輸入緩存,用來緩存接收到的各種數據幀。該緩存被分成大小相同的N個分區(典型值為4,8,12,14,16),每個緩存分區足夠存儲一個最大幀。每個緩存分區有一個對應的位置指針,取值分別為O N。尚未使用的緩存分區以及剛釋放的緩存分區的位置指針存放在一個指針池中,該指針池用FIFO來實現。每個數據埠的Ingress埠有若干個隊列32個單播低優先級隊列,32個單播高優先級隊列,I個多播低優先級隊列,I個多播高優先級隊列,I個廣播低優先級隊列,I個廣播高優先級隊列。當一個數據幀進入Ingress埠時,從指針池讀出未被使用的緩存分區位置指針,然後根據該指針將數據幀寫入到輸入緩存中對應的位置。同時,根據該數據幀的目的地址,將位置指針寫入對應的隊列隊尾。如圖3所示,廣播發送流程如下I)當一個或多個Ingress埠(輸入埠)的廣播隊列非空(即等待發送的幀為廣播幀)時,每個Ingress埠向廣播仲裁器發送各自的「廣播調度請求」,同時還發送級聯擴展埠標誌信號以及優先級標誌信號給廣播仲裁器;廣播仲裁器進行仲裁,根據仲裁結果向選定的Ingress埠發送「廣播調度許可」。2) Ingress埠如果未收到「廣播調度許可」,則持續發送「廣播調度請求」;如果收到「廣播調度許可」,則根據主機配置的廣播隔離寄存器,Ingress埠向除廣播隔離埠外的其他所有的Egress目的埠(輸出埠)發送「廣播發送請求」。3)Egress目的埠接收到Ingress埠發送的「廣播發送請求」後,根據步驟I)所述的優先級標誌信號優先選擇對高優先級「廣播發送請求」採用Round Robin算法進行仲裁(該仲裁與前述仲裁器無關,只不過前述仲裁器通常也採用該算法),根據仲裁結果Egress目的埠向相應的Ingress埠發送「廣播發送許可」。
當Egress目的埠接收到Ingress埠發送的「接受廣播發送許可」後,轉入下一輪仲裁;否則,Egress目的埠持續發送「廣播消息發送許可」。4) Ingress埠收齊所有Egress目的埠的「廣播發送許可」後,向所有Egress目的埠發送「接受廣播發送許可」。同時,Ingress埠控制邏輯產生「廣播數據幀出隊請求」,其有效狀態維持到該幀結束。控制邏輯根據優先級標誌信號選擇相應優先級的廣播幀隊列,進入廣播發送狀態(從相應優先級廣播隊列中讀出頭指針,然後根據該頭指針計算出該廣播幀存放在輸入緩存中的起始地址,進入廣播發送狀態)。5)IngreSS埠進入廣播發送狀態後,撤銷向廣播仲裁器發送的「廣播調度請求」。同時,廣播仲裁器轉入下一輪仲裁,再次執行步驟I)至5)。進入廣播發送狀態後,具體是執行以下過程=Ingress埠控制邏輯從輸入緩存中讀出數據巾貞,同時通過crossbar向所有Egress目的埠發送,直到該巾貞結束。然後將此 次使用的位置指針重新寫入到指針池中,以供後面數據幀使用。
權利要求
1.基於交換網絡的一種廣播調度方法,包括以下環節O當一個或多個Ingress埠的廣播隊列非空時,即處於等待發送的幀為廣播幀狀態,每個Ingress埠向廣播仲裁器發送各自的「廣播調度請求」,同時還發送級聯擴展埠標誌信號以及優先級標誌信號給廣播仲裁器;廣播仲裁器進行仲裁,根據仲裁結果向選定的Ingress埠發送「廣播調度許可」;2)Ingress埠如果未收到「廣播調度許可」,則持續發送「廣播調度請求」;如果收到 「廣播調度許可」,則根據主機配置的廣播隔離寄存器,Ingress埠向除廣播隔離埠外的其他所有的Egress目的埠發送「廣播發送請求」;3)Egress目的埠接收到Ingress埠發送的「廣播發送請求」後,根據步驟I)所述的優先級標誌信號優先選擇對高優先級「廣播發送請求」採用Round Robin算法進行仲裁, 根據該仲裁結果,Egress目的埠向相應的Ingress埠發送「廣播發送許可」;當Egress目的埠接收到Ingress埠發送的「接受廣播發送許可」後,轉入下一輪仲裁;否則,Egress目的埠持續發送「廣播消息發送許可」;4)Ingress埠收齊所有Egress目的埠的「廣播發送許可」後,向所有Egress目的埠發送「接受廣播發送許可」;同時,Ingress埠控制邏輯產生「廣播數據幀出隊請求」, 其有效狀態維持到該幀結束;控制邏輯根據優先級標誌信號選擇相應優先級的廣播幀隊列,進入廣播發送狀態;5)Ingress埠進入廣播發送狀態後,撤銷向廣播仲裁器發送的「廣播調度請求」;同時,廣播仲裁器轉入下一輪仲裁,再次執行步驟I)至5);所述廣播仲裁器在收到「廣播調度請求」後的執行內容是a、檢測級聯擴展埠是否有「廣播調度請求」,如果有,向該級聯擴展埠發送「廣播調度許可」,然後轉步驟d);否則,轉步驟b);b、檢測是否有高優先級的「廣播調度請求」,如果有,利用RoundRobin算法對接收到的高優先級「廣播調度請求」進行仲裁,並根據仲裁結果,向該埠發送「廣播調度許可」,然後轉步驟d);否則轉步驟c);C、採用Round Robin算法對接收到的低優先級「廣播調度請求」進行仲裁,並根據仲裁結果,向該埠發送「廣播調度許可」,然後轉步驟4);d、檢測被許可埠是否已撤銷「廣播調度請求」,如果是,轉步驟a),進行下一輪仲裁; 否則,繼續檢測該埠是否已撤銷「廣播調度請求」。
全文摘要
本發明是基於交換網絡的一種廣播調度方法,實現廣播的線速轉發,確保廣播消息可以同時到達所有目的埠;在多埠發送廣播時,無死鎖,各發送埠發送負載保持均衡;並且支持兩交換機級聯網絡。本發明通過設計一個全局的廣播仲裁器,對所有需要發送廣播消息的埠進行仲裁;然後得到許可的埠向所有目的埠發送請求,得到所有目的埠許可後,發送數據幀並撤銷廣播發送請求;然後轉入下一輪仲裁。
文檔編號H04L12/18GK103023669SQ20121059088
公開日2013年4月3日 申請日期2012年12月28日 優先權日2012年12月28日
發明者李玉發, 李大鵬, 黃韜, 王紅春, 王曉華, 田園, 蒲愷 申請人:中國航空工業集團公司第六三一研究所