專利名稱::基于單多播區(qū)分處理的低時延抖動交換方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,涉及數(shù)字交換,尤其涉及一種分組交換方法及設(shè)備,用于數(shù)字交換網(wǎng)絡(luò)。
背景技術(shù):
:在分組數(shù)據(jù)交換機中,交換時延和時延抖動通常都需要被控制到一定的數(shù)值之下,以滿足用戶業(yè)務(wù)的較高要求。在一些特殊應(yīng)用中,分組經(jīng)由交換機轉(zhuǎn)發(fā)所引入的時延抖動不但要求盡可能小,而且還必須具有確定性。例如,隨著航空航天技術(shù)的發(fā)展,飛機、航天器等飛行器中會使用數(shù)據(jù)交換機來逐步取代目前使用的專線連接,其典型代表為航空全雙工以太網(wǎng)交換機AFDX。由于所處的環(huán)境和應(yīng)用領(lǐng)域的特殊,AFDX對數(shù)據(jù)通過交換機后引入的時延抖動有嚴格限制?!愕?,分組交換機通過輪詢調(diào)度的方式來保證對各個端口服務(wù)的公平性。但是,這種方法在數(shù)據(jù)幀或數(shù)據(jù)分組長度變化范圍較大時,會在端口輪詢過程中存在這樣的問題,例如AFDX中的變長以太網(wǎng)幀長度從64字節(jié)到1548字節(jié)均有,某等待輪詢的端口中的數(shù)據(jù)幀為短數(shù)據(jù)幀,而其他端口的數(shù)據(jù)幀為長數(shù)據(jù)幀,則調(diào)度器按照公平原則輪詢各個端口,短數(shù)據(jù)幀要等其它端口的長數(shù)據(jù)幀傳輸完才能傳輸。在這種情況下,短數(shù)據(jù)幀就會因長數(shù)據(jù)幀占用總線時間較長而被遲滯發(fā)送,帶來較大的交換時延抖動。對此,大容量骨干分組交換常采用分組切片的方式實現(xiàn)快速交換。由于切片后交換調(diào)度和存儲管理等變得復雜,在中小容量的交換機中較少使用。同時,在AFDX這種機載交換機中多播業(yè)務(wù)占的比例較大。因此,在盡量避免時延抖動增大的同時,應(yīng)該采用高效的多播傳輸機制。通常,存儲轉(zhuǎn)發(fā)的交換結(jié)構(gòu)中多播方法分為多重拷貝和多重讀出兩種多重拷貝是指將數(shù)據(jù)幀復制成多個,然后存放在相應(yīng)的輸出隊列,按照單播的方式處理。這種方法的特點是控制簡單但增加了存儲器的開銷;多重讀出是指多播幀只占用一個存儲空間,在控制下讀出多次發(fā)往各個輸出端口。這種方法的特點是占用存儲器資源少,但隊列管理復雜度高。在共享總線交換結(jié)構(gòu)中,采用這兩種方法都會導致同一數(shù)據(jù)幀在總線上多次傳輸,使總線有效利用率和整體交換效率下降。
發(fā)明內(nèi)容本發(fā)明目的是針對上述存在的問題,提出一種單多播區(qū)分處理的低時延抖動分組交換方法及設(shè)備,以在變長分組情況下減小數(shù)據(jù)幀傳輸時延抖動,保證多播數(shù)據(jù)幀在總線上一次性發(fā)往各個輸出端口,提高總線有效利用率和整體交換效率。本發(fā)明的目的是這樣實現(xiàn)的—、術(shù)語說明切片數(shù)據(jù)幀被分成若干份,每一份稱為切片。片長一個切片的數(shù)據(jù)長度。輸出端口隊列發(fā)往同一個輸出端口的數(shù)據(jù)幀信息組成的隊列。4入隊將具有相同輸出端口號的數(shù)據(jù)幀信息存入對應(yīng)輸出端口隊列的過程。出隊數(shù)據(jù)幀入隊信息從輸出端口隊列中刪除的過程。二、本發(fā)明的技術(shù)方案1.本發(fā)明的單多播區(qū)分處理的低時延抖動交換過程如下(1)接收數(shù)據(jù)幀并將其緩存在輸入緩存中,該輸入緩存的大小和數(shù)目根據(jù)網(wǎng)絡(luò)中實際交換的分組大小和實際需求設(shè)定;(2)根據(jù)輸入緩存中的數(shù)據(jù)幀提取并緩存數(shù)據(jù)幀的輸入調(diào)度信息;(3)根據(jù)數(shù)據(jù)幀的輸入調(diào)度信息對數(shù)據(jù)幀進行輸入端切片調(diào)度,將數(shù)據(jù)幀調(diào)度至共享緩存中;(4)依次從輸出端口隊列提取數(shù)據(jù)幀的輸出調(diào)度信息;(5)根據(jù)輸出調(diào)度信息對多播數(shù)據(jù)幀在輸出端采用整幀調(diào)度方式將多播數(shù)據(jù)幀在總線上一次性傳輸?shù)剿心康妮敵龆丝?,對單播?shù)據(jù)幀采用和輸入端類同的切片調(diào)度方式將單播數(shù)據(jù)幀傳輸?shù)侥康妮敵龆丝凇?.本發(fā)明的單多播區(qū)分處理的低時延抖動分組交換設(shè)備,包括輸入緩存模塊,用于緩存輸入端的數(shù)據(jù)幀,同時生成數(shù)據(jù)幀信息和數(shù)據(jù)幀切片控制信息,該數(shù)據(jù)幀信息和數(shù)據(jù)幀切片控制信息傳輸?shù)角衅{(diào)度模塊中;切片調(diào)度模塊,用于向隊列管理申請存儲空間并生成輸入切片調(diào)度信息,該輸入切片調(diào)度信息傳輸?shù)捷斎肟偩€控制模塊中;輸入總線控制模塊,用于接收輸入切片調(diào)度信息并根據(jù)輸入切片調(diào)度信息將切片存儲到共享緩存中;共享緩存模塊,用于緩存數(shù)據(jù)幀;隊列管理模塊,用于在數(shù)據(jù)幀輸入時分配存儲空間并將數(shù)據(jù)幀信息入隊,在數(shù)據(jù)幀輸出時回收存儲空間,并將數(shù)據(jù)幀信息出隊,該生成的數(shù)據(jù)幀信息傳輸?shù)絾味嗖^(qū)分調(diào)度模塊中;單多播區(qū)分調(diào)度模塊,用于根據(jù)單播數(shù)據(jù)幀信息生成輸出切片調(diào)度信息或根據(jù)多播數(shù)據(jù)幀信息生成數(shù)據(jù)幀調(diào)度信息,該切片調(diào)度信息或數(shù)據(jù)幀調(diào)度信息傳輸?shù)捷敵隹偩€控制模塊;輸出總線控制模塊,用于根據(jù)輸出切片調(diào)度信息,該切片發(fā)送到輸出緩存模塊,或者根據(jù)數(shù)據(jù)幀調(diào)度信息將數(shù)據(jù)幀發(fā)送到輸出緩存模塊;輸出緩存模塊,用于緩存輸出的數(shù)據(jù)幀,生成輸出端口狀態(tài)信息,該輸出端口狀態(tài)信息傳輸?shù)絾味嗖^(qū)分調(diào)度模塊中。本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(1)本發(fā)明由于采用切片調(diào)度的方法,使得短數(shù)據(jù)幀能夠在較短的等待時間內(nèi)得到服務(wù),解決了短數(shù)據(jù)幀就會因長數(shù)據(jù)幀占用總線時間較長而被遲滯發(fā)送的問題,降低了數(shù)據(jù)幀交換時延抖動。(2)本發(fā)明由于采用單多播區(qū)分調(diào)度方法,對多播數(shù)據(jù)幀采用在總線上一次性發(fā)往各目的輸出端口的方法,不但克服了多重拷貝占用存儲資源多和多重讀出隊列管理復雜的缺點,而且解決了多播數(shù)據(jù)幀在總線上多次傳輸造成的總線利用率低的問題,節(jié)約了存儲資源,提高了總線利用率。圖1為本發(fā)明的方法流程圖;圖2為本發(fā)明方法流程圖中切片調(diào)度過程子流程圖;圖3為本發(fā)明方法流程圖中單多播區(qū)分調(diào)度過程子流程圖;圖4為本發(fā)明設(shè)備的結(jié)構(gòu)框圖;圖5為本發(fā)明設(shè)備中切片調(diào)度模塊內(nèi)部結(jié)構(gòu)框圖;圖6為本發(fā)明設(shè)備中單多播區(qū)分調(diào)度模塊內(nèi)部結(jié)構(gòu)框圖;圖7為本發(fā)明設(shè)備中寫預調(diào)度器子模塊內(nèi)部結(jié)構(gòu)框圖;圖8為本發(fā)明設(shè)備中讀預調(diào)度器子模塊內(nèi)部結(jié)構(gòu)框圖。具體實施例方式為使本發(fā)明目的、技術(shù)方案以及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明進行近一步的詳細說明。本發(fā)明所涉及的實施例為16端口全雙工分組交換機,為描述方便,圖中輸入端口與輸出端口分開描述。參照圖l,本發(fā)明的單多播區(qū)分處理的低時延抖動交換過程如下過程1:接收數(shù)據(jù)幀并將其緩存在輸入緩存中。數(shù)據(jù)幀進入交換機輸入端口,如果輸入緩存空閑,則將數(shù)據(jù)幀存放在輸入緩存中,輸入緩存的大小具體可根據(jù)交換的數(shù)據(jù)幀大小來設(shè)置,但不限于此,也可給輸入端口設(shè)置多個緩存應(yīng)用于有多個服務(wù)等級的交換網(wǎng)絡(luò)。過程2:根據(jù)輸入緩存中的數(shù)據(jù)幀提取并緩存數(shù)據(jù)幀輸入調(diào)度信息。數(shù)據(jù)幀輸入調(diào)度信息主要包括數(shù)據(jù)幀幀長、單多播指示和輸出目的端口。從數(shù)據(jù)幀中提取輸入調(diào)度信息就是根據(jù)輸入緩存中的數(shù)據(jù)幀所攜帶的信息確定出該數(shù)據(jù)幀的幀長、發(fā)往的目的端口及該數(shù)據(jù)幀是單播數(shù)據(jù)幀還是多播數(shù)據(jù)幀。為了便于切片調(diào)度,給數(shù)據(jù)幀輸入調(diào)度信息加上切片計數(shù)信息和新數(shù)據(jù)幀標識符信息。例如切片長度為m字節(jié),則數(shù)據(jù)幀幀長L表示為L=n*m+x(x<=m),其中n和x為整數(shù),則該數(shù)據(jù)幀的切片計數(shù)為n+l;新數(shù)據(jù)幀標識指該數(shù)據(jù)幀還未進行一次切片調(diào)度;將上述信息作為輸入調(diào)度信息緩存起來,進入過程3。過程3:根據(jù)數(shù)據(jù)幀輸入調(diào)度信息對數(shù)據(jù)幀進行輸入端切片調(diào)度,將數(shù)據(jù)幀調(diào)度至共享緩存中。參照圖2,本過程的具體實現(xiàn)如下(3.1)讀取數(shù)據(jù)幀輸入調(diào)度信息;(3.2)根據(jù)數(shù)據(jù)幀輸入調(diào)度信息中的新幀標識符判斷該數(shù)據(jù)幀輸入調(diào)度信息是否為新數(shù)據(jù)幀的,如果是進入(3.3),否則進入(3.4);(3.3)向共享緩存為該數(shù)據(jù)幀申請存儲空間,此處申請的空間能夠存放完整的該數(shù)據(jù)幀,申請成功后將申請到的地址和輸入調(diào)度信息進行存儲,并根據(jù)輸入調(diào)度信息和地址生成第一個切片調(diào)度信息同時根據(jù)切片調(diào)度信息將第一個切片搬移到共享緩存中,將地址更新為下一個切片地址,同時將新幀標識置零并完成對切片計數(shù)減一和幀長減去片長的操作;(3.4)根據(jù)更新后的輸入調(diào)度信息和地址生成切片調(diào)度信息,并根據(jù)切片調(diào)度信息將切片存儲到共享緩存中,執(zhí)行(3.5);(3.5)判斷切片計數(shù)是否為1,如果是執(zhí)行(3.7),否則執(zhí)行(3.6);(3.6)將地址更新為下一個切片地址并完成對幀長減去片長和切片計數(shù)減一的操作,同時等待下一次輪詢,如果輪詢到該數(shù)據(jù)幀執(zhí)行(3.4),否則等待輪詢;(3.7)通知隊列管理將該數(shù)據(jù)幀的信息入隊,完成一個數(shù)據(jù)幀輸入切片調(diào)度。過程4:依次從輸出端口隊列提取數(shù)據(jù)幀輸出調(diào)度信息.每個輸出端口隊列存有要發(fā)往該端口的數(shù)據(jù)幀信息,從輸出端口隊列中提取數(shù)據(jù)幀輸出調(diào)度信息,輸出調(diào)度信息可以包括數(shù)據(jù)幀在共享緩存中的地址,數(shù)據(jù)幀的幀長,單多播指示,數(shù)據(jù)幀的輸出的目的端口等信息。過程5:根據(jù)數(shù)據(jù)幀輸出調(diào)度信息對數(shù)據(jù)幀進行單多播區(qū)分的輸出端調(diào)度。參照圖3,本過程的具體實現(xiàn)如下(5.1)讀取所述的數(shù)據(jù)幀輸出調(diào)度信息;(5.2)根據(jù)該輸出調(diào)度信息判斷此輸出調(diào)度信息是多播數(shù)據(jù)幀的還是單播數(shù)據(jù)幀的,如果是多播數(shù)據(jù)幀的則執(zhí)行(5.3),否則執(zhí)行(5.4);(5.3)該輸出調(diào)度信息是多播數(shù)據(jù)幀的,則采用整幀調(diào)度的方法,即根據(jù)所述輸出調(diào)度信息中提供的該數(shù)據(jù)幀的存儲地址以及該數(shù)據(jù)幀要發(fā)往的輸出目的端口一次性將多播數(shù)據(jù)幀發(fā)往各個目的端口,調(diào)度完成后,通知隊列管理將該數(shù)據(jù)幀信息出隊;(5.4)該輸出調(diào)度信息是單播數(shù)據(jù)幀的,對單播數(shù)據(jù)幀在輸出端仍采用類同輸入端的切片調(diào)度方式進行調(diào)度,根據(jù)輸出調(diào)度信息中該數(shù)據(jù)幀的存儲地址和輸出目的端口,通過輸出總線對該數(shù)據(jù)幀進行切片調(diào)度,將數(shù)據(jù)從共享緩存調(diào)度至輸出端目的端口,調(diào)度完成后生成切片調(diào)度信息,方法類同輸入端的切片調(diào)度方式。參照圖4,本發(fā)明分組交換設(shè)備包括共享緩存模塊10、輸入緩存模塊20、切片調(diào)度模塊30、隊列管理模塊40、單多播區(qū)分調(diào)度模塊50、輸出緩存模塊60、輸入總線控制模塊70和輸出總線控制模塊80。其中切片調(diào)度模塊30分別與輸入緩存模塊20及隊列管理模塊40雙向連接;輸入總線模塊70分別與共享緩存模塊10、輸入緩存模塊20和切片調(diào)度模塊30單向連接;單多播區(qū)分調(diào)度模塊50分別與隊列管理模塊40和輸出緩存模塊60雙向連接;輸出總線模塊80分別與共享緩存模塊10、單多播區(qū)分調(diào)度模塊50和輸出緩存模塊60單向連接。所述共享緩存模塊IO,用于為輸入數(shù)據(jù)幀提供足夠的存儲空間。所述輸入緩存模塊20,用于緩存輸入端的數(shù)據(jù)幀,并生成數(shù)據(jù)幀信息和數(shù)據(jù)幀切片控制信息。數(shù)據(jù)幀進入輸入緩存模塊20,輸入緩存模塊20將數(shù)據(jù)幀緩存在輸入緩存中,同時計算出數(shù)據(jù)幀切片調(diào)度的次數(shù),并存儲在切片計數(shù)器中。所謂調(diào)度次數(shù)是指通過幾次切片調(diào)度能將數(shù)據(jù)幀完全傳輸?shù)焦蚕砭彺嬷?。切片調(diào)度模塊30輪詢輸入緩存模塊20,若切片調(diào)度模塊30輪詢到該輸入緩存模塊20的數(shù)據(jù)幀時新幀標志位為l,輸入緩存模塊20產(chǎn)生如表1所示結(jié)構(gòu)的數(shù)據(jù)幀信息,同時將切片計數(shù)器減1,并將新幀標志位置0;若切片調(diào)度模塊30輪詢到輸入緩存模塊20的數(shù)據(jù)幀時,新幀標志位為0,輸入緩存模塊20產(chǎn)生如表2所示結(jié)構(gòu)的數(shù)據(jù)幀切片控制信息,并將切片計數(shù)器減1。當切片計數(shù)器值為0時,輸入緩存模塊20通知切片調(diào)度模塊30該數(shù)據(jù)幀已經(jīng)調(diào)度完成。7表1數(shù)據(jù)幀信息<table>tableseeoriginaldocumentpage8</column></row><table>所述切片調(diào)度模塊30,其具體作用有(l)用于根據(jù)數(shù)據(jù)幀信息向隊列管理模塊40申請存儲空間,并根據(jù)數(shù)據(jù)幀信息和數(shù)據(jù)幀地址信息生成首個輸入切片調(diào)度信息和輸入端切片生成信息,其中輸入切片調(diào)度信息包括切片起始地址、片長、數(shù)據(jù)幀調(diào)度結(jié)束標志和輸入端口號。(2)根據(jù)數(shù)據(jù)幀切片控制信息和輸入端切片生成信息生成其余的輸入切片調(diào)度信息。(3)向隊列管理模塊提供數(shù)據(jù)幀入隊控制信息。該切片調(diào)度模塊30的結(jié)構(gòu)如圖5所示,它包括輸入調(diào)度器301、數(shù)據(jù)幀信息緩存302、寫預調(diào)度器303、切片調(diào)度結(jié)果緩存304和寫調(diào)度控制305。其中,輸入調(diào)度器301輪詢各個輸入緩存模塊20,讀取數(shù)據(jù)幀信息或數(shù)據(jù)幀切片控制信息并將其緩存在數(shù)據(jù)幀信息緩存302中;寫預調(diào)度器303讀取數(shù)據(jù)幀信息緩存302中的信息;切片調(diào)度結(jié)果緩存304存放切片調(diào)度信息;寫調(diào)度控制305從切片調(diào)度結(jié)果緩存304中讀取切片調(diào)度信息,并將切片調(diào)度信息發(fā)往輸入總線控制模塊70,同時寫調(diào)度控制305判斷切片調(diào)度信息中的數(shù)據(jù)幀調(diào)度結(jié)束標志,若數(shù)據(jù)幀調(diào)度結(jié)束,則發(fā)送入隊控制信息,通知隊列管40將數(shù)據(jù)幀入隊。所述寫預調(diào)度器303結(jié)構(gòu)如圖7所示,它包括信息類型裁決單元303a、寫隊列管理控制單元303b、切片調(diào)度信息生成單元303c和輸入端口切片生成信息緩存303d。其中,信息類型裁決單元303a對數(shù)據(jù)幀信息或數(shù)據(jù)幀切片控制信息區(qū)分處理,若接收的為數(shù)據(jù)幀信息,則將該信息傳輸給寫隊列管理模塊303b,若接收的為數(shù)據(jù)幀切片控制信息,則將該信息傳輸給切片信息生成器303c;寫隊列管理模塊303b接收到數(shù)據(jù)幀信息,根據(jù)數(shù)據(jù)幀信息向隊列管理模塊40申請數(shù)據(jù)幀存儲空間,等待隊列管理模塊40返回的數(shù)據(jù)幀地址信息,若申請地址成功,寫隊列管理模塊303b將數(shù)據(jù)幀信息和數(shù)據(jù)幀地址信息傳輸給切片調(diào)度信息生成單元303c,若申請地址失敗,則通知輸入緩存模塊20丟棄數(shù)據(jù)幀;切片信息生成器303c接收到數(shù)據(jù)幀信息和數(shù)據(jù)幀地址信息,生成數(shù)據(jù)幀首個輸入切片調(diào)度信息,并根據(jù)數(shù)據(jù)幀信息和數(shù)據(jù)幀地址信息生成輸入端切片生成信息,所述輸入端切片生成信息結(jié)構(gòu)如表3所示,其中端口號表示數(shù)據(jù)幀是存儲在哪個輸出端口隊列中;本發(fā)明實施例是16端口交換機,故采用4比特表示端口號;單多播指示標記區(qū)分單多播數(shù)據(jù)幀;輸出碼表表示數(shù)據(jù)幀要發(fā)往的目的端口,例如有多播數(shù)據(jù)幀要發(fā)往0、3、5和15端口,則該輸出碼表為(1001010000000001),對于單播數(shù)據(jù)幀只有一位置1;地址表示被調(diào)度的整幀或者經(jīng)過切片后剩下的部分在共享緩存中的起始地址;幀長表示數(shù)據(jù)幀長度或被切片調(diào)度的數(shù)據(jù)幀剩余長度;緩存號表示數(shù)據(jù)幀要發(fā)往的輸出端口緩存號;結(jié)束標記表示數(shù)據(jù)幀是否調(diào)度結(jié)束。表3輸入端切片生成信息4bit13bitlibitlbit16bit16bitlbit2bit<table>tableseeoriginaldocumentpage9</column></row><table>同時,切片信息生成器303c根據(jù)數(shù)據(jù)幀信息攜帶的輸入端口號將輸入端切片生成信息發(fā)送到輸入端切片生成信息緩存303d。若切片信息生成器303c接收到數(shù)據(jù)幀切片控制信息,根據(jù)數(shù)據(jù)幀切片控制信息攜帶的輸入端口號讀出輸入端切片生成信息緩存303d的輸入端切片生成信息,并根據(jù)輸入端切片生成信息生成輸入切片調(diào)度信息,同時更新輸入端切片生成信息,所謂更新是指(l)假設(shè)輸入端切片生成信息中對應(yīng)的幀長為L,每次調(diào)度的片長為m,則將幀長更新為L-m。(2)假設(shè)輸入端切片生成信息中對應(yīng)的地址為A,每個切片在共享緩存中所占空間地址偏移量為a,則將地址更新為A+a。(3)判斷該端口更新后的幀長S-L是否小于等于切片長度L,如果是則將結(jié)束標記置l,否則結(jié)束標記仍保持為0。所述隊列管理模塊40,其具體作用有(l)用于接收切片調(diào)度模塊30的數(shù)據(jù)幀信息,并根據(jù)數(shù)據(jù)幀信息為數(shù)據(jù)幀分配存儲空間,生成數(shù)據(jù)幀入隊信息和數(shù)據(jù)幀地址信息。(2)接收切片調(diào)度模塊30的入隊控制信息將數(shù)據(jù)幀入隊信息入隊。(3)輪詢各輸出端口隊列將數(shù)據(jù)幀輸出調(diào)度信息傳輸給單多播區(qū)分調(diào)度模塊50以及接收單多播區(qū)分調(diào)度模塊50的出隊控制信息將數(shù)據(jù)幀出隊。在具體實施例中,輸出端口隊列以鏈表的形式組成,其格式如表4所示,其中隊頭(尾)指針表示該隊頭(尾)數(shù)據(jù)幀在共享緩存IO中的起始地址;隊長表示該輸出端口隊列中數(shù)據(jù)幀的數(shù)目;單多播指示表示該隊頭數(shù)據(jù)幀是單播還是多播;輸出碼表表示隊頭數(shù)據(jù)幀的輸出端口集合;幀長表示該隊頭數(shù)據(jù)幀的長度。隊列管理模塊40根據(jù)輸出端口隊列信息生成數(shù)據(jù)幀輸出調(diào)度信息,數(shù)據(jù)幀輸出調(diào)度信息格式如表5所示,其中其中端口號、單多播指示、輸出碼表含義與表3中相同,隊頭指針表示數(shù)據(jù)幀在共享緩存10中的起始地址;幀長表示數(shù)據(jù)幀的長度。表4輸出端口隊列信息13bit13bit9bitlbit16bitlibit9bit隊頭指針隊尾指針隊長單多播指示輸出碼表幀長預留表5數(shù)據(jù)幀輸出調(diào)度信息4bit13bitlibitlbti16bit19bit,端口號隊頭指針幀長單多播指示輸出碼表預留所述單多播區(qū)分調(diào)度模塊50,用于根據(jù)隊列管理模塊40的數(shù)據(jù)幀輸出調(diào)度信息執(zhí)行單多播區(qū)分調(diào)度,對于單播幀,采用切片調(diào)度的方式生成輸出切片調(diào)度信息,對于多播幀,采用整幀調(diào)度的方式生成數(shù)據(jù)幀調(diào)度信息。該單多播區(qū)分調(diào)度模塊50結(jié)構(gòu)如圖6所示,它包括數(shù)據(jù)幀輸出調(diào)度信息緩存501、讀預調(diào)度器502、調(diào)度結(jié)果緩存503和讀調(diào)度控制504。其中數(shù)據(jù)幀輸出調(diào)度信息緩存501緩存隊列管理模塊40中的數(shù)據(jù)幀輸出調(diào)度信息;讀預調(diào)度器502根據(jù)輸出調(diào)度信息緩存501中的信息進行單多播區(qū)分調(diào)度。該讀預調(diào)9度器502的結(jié)構(gòu)如圖8所示,它包括輸出緩存匹配502a、數(shù)據(jù)幀輸出調(diào)度信息寫入控制器502b、輸出端口切片信息生成緩存502c和調(diào)度信息生成器502d,其中輸出緩存匹配502a根據(jù)數(shù)據(jù)幀輸出調(diào)度信息的輸出碼表進行輸出端口緩存匹配。所謂匹配是指根據(jù)輸出碼表對應(yīng)的輸出緩存模塊60傳輸?shù)妮斎攵丝跔顟B(tài)信息判斷是否有空閑的數(shù)據(jù)緩存。單播數(shù)據(jù)幀的匹配只需要判斷目的輸出緩存單元60的單播數(shù)據(jù)緩存是否空閑,空閑則說明輸出端口匹配成功,如果匹配成功,數(shù)據(jù)幀輸出調(diào)度信息寫入控制器502b產(chǎn)生調(diào)度信息生成信息并將其緩存在輸出端口調(diào)度信息生成信息緩存502c中對應(yīng)單元內(nèi),如果匹配不成功,讀預調(diào)度器502讀取下一個數(shù)據(jù)幀輸出調(diào)度信息。其中調(diào)度信息生成信息格式類似表3結(jié)構(gòu)。多播數(shù)據(jù)幀的匹配則要判斷目的輸出緩存單元60多播緩存是否都空閑,例如多播數(shù)據(jù)幀發(fā)往0、3、5和15端口,輸出緩存匹配502a則需要判斷0,3,5,15端口的緩存是否都空閑,如果都空閑說明多播輸出端口匹配成功,則讀調(diào)度器502執(zhí)行與單播相同的處理,若匹配不成功,讀調(diào)度器502—直等待對應(yīng)緩存都空閑,若匹配成功則產(chǎn)生調(diào)度信息生成信息并將其存放在輸出端口調(diào)度信息生成信息緩存502c中對應(yīng)單元內(nèi)。單多播區(qū)分調(diào)度信息生成器502d輪詢輸出端口調(diào)度信息生成信息緩存502c各個單元并讀取調(diào)度信息生成信息,具體操作為單多播區(qū)分調(diào)度信息生成器502d讀取調(diào)度信息生成信息,判斷數(shù)據(jù)幀是單播幀還是多播幀,若為單播幀則進行切片調(diào)度,則判斷結(jié)束標記是否為l,如果為l,不生成切片調(diào)度信息,單多播區(qū)分調(diào)度信息生成器502d將該端口信息清空使其能接收下一個調(diào)度信息生成信息,如果不為l,單多播區(qū)分調(diào)度信息生成器502d生成切片調(diào)度信息并對調(diào)度信息生成信息更新。所謂的更新與輸入端切片調(diào)度信息更新方法一致。若為多播幀,單多播區(qū)分調(diào)度信息生成器502d采用整幀調(diào)度的方法,根據(jù)調(diào)度信息生成信息生成數(shù)據(jù)幀調(diào)度信息并將該端口信息清空使其能接收下一個調(diào)度信息生成信息。所述輸出緩存模塊60,用于接收輸出總線控制模塊80的數(shù)據(jù),并將輸出端口狀態(tài)信息傳輸給單多播區(qū)分調(diào)度模塊50,同時控制數(shù)據(jù)幀從輸出端口讀出。具體實施例中每個輸出緩存模塊分別設(shè)置有單播數(shù)據(jù)幀緩存和多播數(shù)據(jù)幀緩存,其中每個數(shù)據(jù)緩存用來存儲一個完整的數(shù)據(jù)幀,并將緩存狀態(tài)信息傳輸給單多播區(qū)分調(diào)度模塊50。所述輸入總線控制模塊70,用于接收切片調(diào)度模塊30切片調(diào)度信息,將切片從輸入緩存模塊20傳輸?shù)焦蚕砭彺鎲卧?0中。所述輸出總線控制模塊80,用于接收單多播區(qū)分調(diào)度模塊50單播數(shù)據(jù)幀的輸出切片調(diào)度信息或者多播數(shù)據(jù)幀的的數(shù)據(jù)幀調(diào)度信息,并將切片或者數(shù)據(jù)幀從共享緩存單元10傳輸?shù)捷敵鼍彺婺K60中。由上所述,本發(fā)明實施例提供的技術(shù)方案,采用一種單多播區(qū)分處理的低時延抖動分組交換方法,在交換機輸入端對接收數(shù)據(jù)幀進行切片處理,避免短數(shù)據(jù)幀因長數(shù)據(jù)幀占用總線時間較長而被遲滯發(fā)送,有效降低系統(tǒng)交換時延抖動;在交換機輸出端對單多播數(shù)據(jù)幀區(qū)分調(diào)度,單播數(shù)據(jù)幀切片調(diào)度,多播數(shù)據(jù)幀整幀調(diào)度在總線上一次發(fā)往各輸出端口,提高了交換過程中總線利用率和整體交換效率。本發(fā)明實施例實現(xiàn)方法簡單,節(jié)省系統(tǒng)資源,能有效降低交換時延抖動,提高數(shù)據(jù)幀交換效率。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不限于此,任何熟悉該
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的改變或替換,都涵蓋在本發(fā)明的保護范圍內(nèi)。權(quán)利要求一種單多播區(qū)分處理的低時延抖動交換方法,包括如下過程(1)接收數(shù)據(jù)幀并將其緩存在輸入緩存中,該輸入緩存的大小和數(shù)目根據(jù)網(wǎng)絡(luò)中實際交換的分組大小和實際需求設(shè)定;(2)根據(jù)輸入緩存中的數(shù)據(jù)幀提取并緩存數(shù)據(jù)幀的輸入調(diào)度信息;(3)根據(jù)數(shù)據(jù)幀的輸入調(diào)度信息對數(shù)據(jù)幀進行輸入端切片調(diào)度,將數(shù)據(jù)幀調(diào)度至共享緩存中;(4)依次從輸出端口隊列提取數(shù)據(jù)幀的輸出調(diào)度信息;(5)根據(jù)輸出調(diào)度信息對多播數(shù)據(jù)幀在輸出端采用整幀調(diào)度方式將多播數(shù)據(jù)幀在總線上一次性傳輸?shù)剿心康妮敵龆丝冢瑢尾?shù)據(jù)幀采用和輸入端類同的切片調(diào)度方式將單播數(shù)據(jù)幀傳輸?shù)侥康妮敵龆丝凇?.根據(jù)權(quán)利要求1所述的低時延抖動交換方法,其中數(shù)據(jù)幀輸入調(diào)度信息包括數(shù)據(jù)幀幀長、單多播指示、輸出目的端口、切片計數(shù)信息和新幀標識。3.根據(jù)權(quán)利要求1所述的低時延抖動交換方法,其中輸出調(diào)度信息包括數(shù)據(jù)幀在共享緩存中的地址、數(shù)據(jù)幀的幀長、單多播指示和數(shù)據(jù)幀的輸出的目的端口信息。4.根據(jù)權(quán)利要求2所述的低時延抖動交換方法,其中新幀標識、數(shù)據(jù)幀幀長、單多播指示和輸出目的端口從數(shù)據(jù)幀中直接獲得,切片計數(shù)信息根據(jù)數(shù)據(jù)幀長度和片長間接得到。5.根據(jù)權(quán)利要求l所述的低時延抖動交換方法,其中過程(3)所述的根據(jù)數(shù)據(jù)幀的輸入調(diào)度信息對數(shù)據(jù)幀進行輸入端切片調(diào)度,其過程為(5a)通過數(shù)據(jù)幀輸入調(diào)度信息中的新幀標識判斷該數(shù)據(jù)幀輸入調(diào)度信息是否為新數(shù)據(jù)幀的,如果是新數(shù)據(jù)幀進入過程(5b),否則進入過程(5c);(5b)在共享緩存中為數(shù)據(jù)幀申請存儲空間,根據(jù)申請到的地址和輸入調(diào)度信息生成第一個切片調(diào)度信息并將該切片存儲到共享緩存中,將地址更新為下一個切片地址,同時將新幀標識置零并完成對切片計數(shù)減一和幀長減去片長的操作;(5c)根據(jù)更新后的輸入調(diào)度信息和地址生成切片調(diào)度信息,并根據(jù)切片調(diào)度信息將切片存儲到共享緩存中,判斷切片計數(shù)是否為l,如果是執(zhí)行過程(5d),否則執(zhí)行過程(5e);(5d)通知隊列管理將該數(shù)據(jù)幀的信息入隊,完成一個數(shù)據(jù)幀輸入切片調(diào)度;(5e)將地址更新為下一個切片地址并完成對幀長減去片長和切片計數(shù)減一的操作,同時等待下一次輪詢,如果輪詢到該數(shù)據(jù)幀執(zhí)行過程(5c),否則等待輪詢。6.—種單多播區(qū)分處理的低時延抖動分組交換設(shè)備,包括輸入緩存模塊,用于緩存輸入端的數(shù)據(jù)幀,同時生成數(shù)據(jù)幀信息和數(shù)據(jù)幀切片控制信息,該數(shù)據(jù)幀信息和數(shù)據(jù)幀切片控制信息傳輸?shù)角衅{(diào)度模塊中;切片調(diào)度模塊,用于向隊列管理申請存儲空間并生成輸入切片調(diào)度信息,該輸入切片調(diào)度信息傳輸?shù)捷斎肟偩€控制模塊中;輸入總線控制模塊,用于接收輸入切片調(diào)度信息并根據(jù)輸入切片調(diào)度信息將切片存儲到共享緩存中;共享緩存模塊,用于緩存數(shù)據(jù)幀;隊列管理模塊,用于在數(shù)據(jù)幀輸入時分配存儲空間并將數(shù)據(jù)幀信息入隊,在數(shù)據(jù)幀輸出時回收存儲空間,并將數(shù)據(jù)幀信息出隊,該生成的數(shù)據(jù)幀信息傳輸?shù)絾味嗖^(qū)分調(diào)度模塊中;單多播區(qū)分調(diào)度模塊,用于根據(jù)單播數(shù)據(jù)幀信息生成輸出切片調(diào)度信息或根據(jù)多播數(shù)據(jù)幀信息生成數(shù)據(jù)幀調(diào)度信息,該切片調(diào)度信息或數(shù)據(jù)幀調(diào)度信息傳輸?shù)捷敵隹偩€控制模塊;輸出總線控制模塊,用于根據(jù)輸出切片調(diào)度信息,該切片發(fā)送到輸出緩存模塊,或者根據(jù)數(shù)據(jù)幀調(diào)度信息將數(shù)據(jù)幀發(fā)送到輸出緩存模塊;輸出緩存模塊,用于緩存輸出的數(shù)據(jù)幀,生成輸出端口狀態(tài)信息,該輸出端口狀態(tài)信息傳輸?shù)絾味嗖^(qū)分調(diào)度模塊中。7.根據(jù)權(quán)利要求6所述的分組交換設(shè)備,其中數(shù)據(jù)幀信息包括幀信息類別號、多播分組入隊隊列號、輸入端口號、輸出端口號、數(shù)據(jù)幀長度和單多播指示。8.根據(jù)權(quán)利要求6所述的分組交換設(shè)備,其中數(shù)據(jù)幀切片控制信息包括幀信息類別號和輸入端口號。9.根據(jù)權(quán)利要求6所述的分組交換設(shè)備,其中切片調(diào)度模塊包括輸入調(diào)度子模塊,用于輪詢各個輸入緩存模塊,讀取數(shù)據(jù)幀信息或數(shù)據(jù)幀切片控制信息,該數(shù)據(jù)幀信息或數(shù)據(jù)幀切片控制信息傳輸?shù)綌?shù)據(jù)幀信息緩存中;數(shù)據(jù)幀信息緩存子模塊,用于緩存數(shù)據(jù)幀信息或數(shù)據(jù)幀切片控制信息;寫預調(diào)度器子模塊,用于根據(jù)數(shù)據(jù)幀信息向隊列管理申請存儲空間,同時根據(jù)數(shù)據(jù)幀信息和數(shù)據(jù)幀切片控制信息生成輸入切片調(diào)度信息,其中輸入切片調(diào)度信息包括切片起始地址、片長、數(shù)據(jù)幀調(diào)度結(jié)束標志和輸入端口號,該輸入切片調(diào)度信息傳輸?shù)角衅{(diào)度結(jié)果緩存中;切片調(diào)度結(jié)果緩存子模塊,用于緩存輸入切片調(diào)度信息,該輸入切片調(diào)度信息傳輸?shù)綄懻{(diào)度控制中;寫調(diào)度控制子模塊,用于將輸入切片調(diào)度信息傳輸?shù)捷敵隹刂颇K,并根據(jù)數(shù)據(jù)幀切片調(diào)度結(jié)束標志通知隊列管理模塊將數(shù)據(jù)幀入隊。10.根據(jù)權(quán)利要求6所述的分組交換設(shè)備,其中單多播區(qū)分調(diào)度模塊包括數(shù)據(jù)幀輸出調(diào)度信息緩存子模塊,用于緩存隊列管理模塊傳輸?shù)臄?shù)據(jù)幀輸出調(diào)度信息,該數(shù)據(jù)幀輸出調(diào)度信息傳輸?shù)阶x預調(diào)度器中;讀預調(diào)度器子模塊,用于根據(jù)數(shù)據(jù)幀輸出調(diào)度信息對數(shù)據(jù)幀執(zhí)行單多播區(qū)分調(diào)度,對單播數(shù)據(jù)幀采用切片調(diào)度的方法產(chǎn)生輸出切片調(diào)度信息或?qū)Χ嗖?shù)據(jù)幀采用整幀調(diào)度的方法產(chǎn)生數(shù)據(jù)幀調(diào)度信息,該切片調(diào)度信息或數(shù)據(jù)幀調(diào)度信息傳輸?shù)秸{(diào)度結(jié)果緩存中;調(diào)度結(jié)果緩存子模塊,用于緩存輸出切片調(diào)度信息或數(shù)據(jù)幀調(diào)度信息;讀調(diào)度控制子模塊,用于將切片調(diào)度信息或數(shù)據(jù)幀調(diào)度信息傳輸?shù)捷敵隹偩€控制模塊,并根據(jù)數(shù)據(jù)幀調(diào)度結(jié)束標志通知隊列管理模塊,使數(shù)據(jù)幀出隊。全文摘要本發(fā)明公開了一種單多播區(qū)分處理的低時延抖動分組交換方法及設(shè)備,主要解決在變長分組情況下數(shù)據(jù)幀交換時延抖動大和多播數(shù)據(jù)幀的轉(zhuǎn)發(fā)效率低的問題。該設(shè)備包括多個功能模塊,其工作原理是切片調(diào)度模塊將輸入緩存模塊中的數(shù)據(jù)幀入隊,并通過切片調(diào)度的方法產(chǎn)生切片調(diào)度信息;輸入總線控制模塊根據(jù)切片調(diào)度信息將數(shù)據(jù)幀緩存在共享緩存模塊;單多播區(qū)分調(diào)度模塊根據(jù)隊列管理模塊中的數(shù)據(jù)幀存儲信息對于單播幀生成切片調(diào)度信息,對于多播幀生成整幀調(diào)度信息;輸出總線控制模塊根據(jù)切片調(diào)度信息或者整幀調(diào)度信息將數(shù)據(jù)幀傳輸?shù)捷敵鼍彺婺K將數(shù)據(jù)幀轉(zhuǎn)發(fā)出去。本發(fā)明能有效降低數(shù)據(jù)幀交換時延抖動,提高多播數(shù)據(jù)幀的轉(zhuǎn)發(fā)效率,可用于數(shù)據(jù)交換網(wǎng)絡(luò)。文檔編號H04L12/18GK101729407SQ200910219338公開日2010年6月9日申請日期2009年12月4日優(yōu)先權(quán)日2009年12月4日發(fā)明者劉偉,劉煥峰,盧衛(wèi)娜,史琰,姚明旿,張磊,時立鋒,邱智亮,陶淑婷,鮑民權(quán)申請人:西安電子科技大學