專利名稱:交換網(wǎng)絡(luò)的包路由方法與系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種高速交換,特別指一種在巨大寬頻交換網(wǎng)絡(luò)上的次微秒交換及控制設(shè)計。
總體來講,交換控制可分為集中式控制(centralized control)和分布式控制(distributed control)兩種。集中式控制往往因為要從一個全局的角度來同時協(xié)調(diào)或調(diào)度(scheduling)所有的資料交換請求并設(shè)置交換核心來完成其資料交換,所以其復(fù)雜度與交換系統(tǒng)的規(guī)模有著直接的關(guān)是。隨著輸入/輸出端口數(shù)目的增加,集中式控制的運算速度不可避免地成為系統(tǒng)規(guī)模增長的一個瓶頸。因此,集中式控制只適合小規(guī)模的交換系統(tǒng)。相反的,分布式控制則與交換系統(tǒng)規(guī)模無關(guān)。
分布式交換控制出現(xiàn)在以交換單元多階互連網(wǎng)絡(luò)(multistageinterconnection network)構(gòu)成的交換引擎中,其交換任務(wù)分配給每一個獨立的交換單元。交換單元的間藉由恰當(dāng)?shù)幕ミB,使得每個交換單元只須根據(jù)抵達(dá)自己的包(packet)所包含的控制信號做出自己的交換決策(switchingdecision),而無須理會其它包的情形。每一個交換單元獨自做出自己的交換決策,而所形成的區(qū)域信道(local connection path)一起構(gòu)成了交換核心的整體路徑(global connection path),從而完成整個交換。這種控制方式遍布于整個由交換單元所構(gòu)成的交換網(wǎng)絡(luò)中,其表現(xiàn)形式就像每個獨立的包自我引導(dǎo)穿越整個交換網(wǎng)絡(luò)。每一個的交換單元內(nèi)的交換決策是為區(qū)域性的,且相互獨立。如此一來,不管交換系統(tǒng)規(guī)模有多大,理論上講,整個交換決策都可以非??臁2捎梅植际娇刂频慕粨Q系統(tǒng)可享有較短延遲時間(latency)和較高擴展性(scalability)等好處,因此,與集中式控制相比的下,大規(guī)模交換系統(tǒng)的控制設(shè)計傾向于選擇分布式交換控制。
在采用分布式控制時,每個包嵌入一定數(shù)量的控制信號位(control signalbit)作為其前置碼(prefix)。所以,分布式控制也稱為“帶內(nèi)控制(in-bandcontrol)”,其嵌入的控制信號通常稱作“帶內(nèi)控制信號(in-band controlsignal)”。
由于帶內(nèi)控制交換引擎所需的交換單元數(shù)以千計,甚至萬計,如果每個交換單元的成本能因某種最優(yōu)化設(shè)計而節(jié)省很小的一部份,整個交換引擎的成本即可大幅度降低,所以,交換單元的設(shè)計最優(yōu)化是非常重要的。這里,影響交換單元成本的主要包括以下兩個因素(1)交換單元內(nèi)部控制邏輯所需的緩存器數(shù)目,和(2)包穿越交換單元所要經(jīng)歷的延遲時間長短。這些因素的變化與帶內(nèi)控制信號的編碼方式有著十分緊密的關(guān)是,而編碼方式是交換單元設(shè)計中的關(guān)鍵部分,不同的帶內(nèi)控制信號編碼方式導(dǎo)致控制邏輯有不同的延遲時間和不同的復(fù)雜程度。所以,如何將編碼方式精巧地與交換單元最優(yōu)化聯(lián)是在一起是至關(guān)重要的。
本發(fā)明的廣義形式是關(guān)于一種交換網(wǎng)絡(luò)的包路由方法,其中該交換網(wǎng)絡(luò)包括多階的交換單元,每一交換單元于其輸入端口接收包作為其區(qū)域輸入包,并于其輸出端口產(chǎn)生包作為其區(qū)域輸出包,每一包均具有至少一個帶內(nèi)控制信號,每一個帶內(nèi)控制信號是有一相對應(yīng)的交換單元將該帶內(nèi)控制信號視為該交換單元的區(qū)域帶內(nèi)控制信號,及為該交換單元做交換決策的用,而該方法包括(a)根據(jù)一預(yù)定的編碼法則將每一包內(nèi)的每一個帶內(nèi)控制信號編成至少一個位;以及(b)參考該編碼方式,每一交換單元根據(jù)該交換單元的每個區(qū)域輸入包中與該交換單元相對應(yīng)的區(qū)域帶內(nèi)控制信號中的部份或全部位做出交換決策,并根據(jù)該交換決策,相應(yīng)地于其輸出端口產(chǎn)生其區(qū)域輸出包的輸出位,以完成對該交換單元的區(qū)域輸入包的路由。
在前述方法的一較佳實施例中,(i)每一交換單元是一雙點傳送交換單元(bicast cell),(ii)輸入至每一交換單元的區(qū)域輸入包均包括閑置(idle)、0-向(0-bound)、1-向(1-bound)、以及雙點傳送(bicast)等包型式,其中每一種包型式均對應(yīng)至不同的帶內(nèi)控制信號,(iii)該編碼包括以至少兩個位來對每一帶內(nèi)控制信號進行編碼,以及(iv)該編碼法則包括一種位編碼方式,是使得對應(yīng)于0-向包型式的帶內(nèi)控制信號碼的第一位有別于對應(yīng)于1-向包型式的帶內(nèi)控制信號碼的第一位。
在另一較佳實施例中,(i)每一交換單元是一單點傳送交換單元(unicastcell),(ii)輸入至每一交換單元的區(qū)域輸入包均包括閑置(idle)、0-向(0-bound)、以及1-向(1-bound)等包型式,其中每一種包型式均對應(yīng)至不同的帶內(nèi)控制信號,(iii)該編碼包括以至少兩個位來對每一帶內(nèi)控制信號進行編碼,以及(iv)該編碼法則包括一種位編碼方式,是使得對應(yīng)于0-向包型式的帶內(nèi)控制信號碼的第一位有別于對應(yīng)于1-向包型式的帶內(nèi)控制信號碼的第一位。
本發(fā)明的系統(tǒng)形式與方法形式相對應(yīng)。
為了方便理解,圖中所有相同組件或模塊的參考編號是一樣的。
1.概觀交換過程中,收到的包其相鄰兩個位的時間間隔稱為“位時間(bittime)”,用Δt表示。從包第一個輸入位進入交換單元開始,到其輸出第一個輸出位為止,所經(jīng)歷的位時間就是交換單元的延遲時間。當(dāng)我們說交換單元的延遲時間為nΔt時,即代表包第一個輸入位進入交換單元開始,至其輸出第一個輸出位為止,共經(jīng)歷了n個位時間Δt。
每個包都攜帶有若干個包含著對應(yīng)于該包的路由信息(routinginformation)的路由位(routing bit),對某一個交換單元來說,如果它需要當(dāng)中R個特定的路由位來做出其交換決策,那么這R個路由位對該交換單元而言就稱為“區(qū)域路由字節(jié)(local routing bits)”,有時也稱為“區(qū)域路由控制信號(local routing control signal)”。交換單元依據(jù)這R個位的區(qū)域路由控制信號做出交換決策。明顯地,區(qū)域路由控制信號應(yīng)該置于包的最前面,否則交換單元必須緩存(buffer)更多的資料才能產(chǎn)生其第一個輸出。
現(xiàn)有的交換單元設(shè)計方法通常是在它產(chǎn)生第一個輸出位前先將所有R個區(qū)域路由位緩存起來。R個位的緩存會導(dǎo)致交換單元的“區(qū)域緩存時間延遲(local buffering delay)”。交換單元內(nèi)需要緩存的位越多,那么,控制邏輯所需的緩存器也越多,其復(fù)雜程度也更高。依據(jù)本發(fā)明,提出一種整合方式,可于帶內(nèi)控制信號編碼方式和交換單元設(shè)計的應(yīng)用上,使得交換單元無須等到所有R個位到齊就能產(chǎn)生連續(xù)輸出位。換句話說,在交換單元確定輸入端口和輸出端口的間的最終路由連接的前,交換單元僅僅收到R個路由位中的前面幾個位時,就已經(jīng)可以確定它的第一個輸出位,且隨著后續(xù)到達(dá)的區(qū)域路由位,交換單元可以不斷地確定相應(yīng)的后續(xù)輸出位。
假設(shè)交換單元需要知道最近Rj個位的路由控制信號才能產(chǎn)生其第j個輸出位,那么包至少需要經(jīng)歷B個位的緩沖,這里B=maxj{Rj-j}。如果交換引擎總共有K階(stage)交換單元,那么包需經(jīng)歷總共KB位的延遲時間。另一方面,由于交換單元需要對每個輸入包進行B=maxj{Rj-j}位的緩存,其硬件實現(xiàn)時所需的緩沖緩存器數(shù)量與B成比例,所以,交換單元的最優(yōu)化事實上就是要使B=maxj{Rj-j}的數(shù)值盡可能地小,即min{B}。
如果一個交換單元有m個輸入口和n個輸出口,其規(guī)??梢詍×n表示。理論上,帶內(nèi)控制的交換單元的規(guī)??梢允侨我獾?。但是在實際應(yīng)用中通常傾向于小的交換單元。否則,由于要應(yīng)對較長的區(qū)域路由控制信號和要用較復(fù)雜的硬件邏輯,交換決策會很難即刻做出,因此會變成交換引擎的瓶頸,顯然這樣就失去了采用分布式控制的意義。在大多數(shù)情況下,交換單元采用最小規(guī)模,即最典型的2×2交換單元。在以下的敘述中,除非特別說明,文中所述的交換單元統(tǒng)指2×2交換單元。本發(fā)明引入一種嶄新的帶內(nèi)控制信號的智能編碼方式,說明相對最優(yōu)化的并可實際應(yīng)用的2×2交換單元。
如
圖1(A)所示,交換單元(100)有“input-0”(110)和“input-1”(111)兩個包輸入端口以及“output-0”(120)和“output-1”(121)兩個包輸出端口。在大多數(shù)文獻中提到的交換單元是點對點(point-to-point)的,這種交換單元在本發(fā)明中稱的為“單點傳送(unicast)交換單元”或簡稱的為“單點傳送單元”。如圖1(B)和圖2(C)所示,單點傳送單元只有“直線(bar)”和“交叉(cross)”兩種連接狀態(tài)。當(dāng)處于“bar”狀態(tài)(151)時,input-0和input-1分別連接到output-0和output-1;而當(dāng)處于“cross”狀態(tài)(152)時,input-0和input-1則分別連接到output-1和output-0。本發(fā)明提出了另一種有4種連接狀態(tài)的交換單元用于支持具有多播(multicast)功能的交換引擎。對照于單點傳送,這種交換單元在本文中稱的為“雙點傳送交換單元”或簡稱的為“雙點傳送單元”。雙點傳送單元除了有單點傳送單元具有的“cross”和“bar”連接狀態(tài)外,它另外還有如圖1(D)和圖2(E)所示的“bicast-0”和“bicast-1”兩種連接狀態(tài)。當(dāng)處于bicast-0狀態(tài)(161)時,input-0同時被連接到兩個輸出;而當(dāng)處于bicast-1狀態(tài)(162)時,輸入input-1則同時連接到兩個輸出。這也就是為什么稱其為雙點傳送單元的原因。
根據(jù)本發(fā)明,包的帶內(nèi)控制信號被精巧地編碼,使得對于所有的j,其B=maxj{Rj-j}可降至0,從而達(dá)到最優(yōu)化交換單元的目的。換句話說,交換單元每收到分別來自兩個輸入包的各一個位,即可確定其兩個輸出端口的各自一個輸出位。所以,本發(fā)明所描述的最優(yōu)化的交換單元在實際應(yīng)用中都可獲得最小的延遲時間(delay)和最小的緩存(buffering)單位。
圖2為用于簡要說明帶內(nèi)控制交換單元的原理的方塊圖(200)。兩個包比特流(bit stream)分別從輸入端口(201,202)進入到兩個移位緩存器(shift register)(203,204)。兩個包的區(qū)域路由控制信號分別被取出一起給狀態(tài)自動機(automata)(210)去確定交換單元每個位周期的連接狀態(tài)。連接狀態(tài)的實現(xiàn)完全依靠兩個2×1的多任務(wù)器(multiplexer)(205,206),每個多任務(wù)器的兩個輸入都分別連接到兩個移位緩存器的輸出;而它們的輸出則分別直接連接至交換單元的兩個輸出(207,208)。另外,自動機的輸出或者控制兩個多任務(wù)器,以選擇適當(dāng)?shù)囊莆痪彺嫫鬏敵鲎鳛榻粨Q單元的輸出,或者強制輸出適當(dāng)?shù)奈灰詽M足多播特征,細(xì)節(jié)留待下文再述。簡單來說,要實現(xiàn)“bar狀態(tài)”,上面的多任務(wù)器205和下面的多任務(wù)器206將被分別控制,使其分別選擇上面的移位緩存器輸出和下面的移位緩存器輸出。對應(yīng)地,要實現(xiàn)“cross狀態(tài)”,自動機將分別控制上下兩個多任務(wù)器選擇下面的移位緩存器輸出和上面的移位緩存器輸出。要實現(xiàn)“bicast-0”狀態(tài),自動機將控制兩個多任務(wù)器都選擇上面的移位緩存器輸出,同樣地,要實現(xiàn)“bicast-1”狀態(tài),自動機則將控制兩個多任務(wù)器都選擇下面的移位緩存器輸出。須要注意的是,雙點傳送的情況會略復(fù)雜,下文會有詳述。
當(dāng)交換單元的某個輸入端口沒有包輸入時,該端口則稱為“閑置端口(idle port)”。在實際應(yīng)用中,閑置端口會收到一個表示空閑的“閑置包(idlepacket)”,這種閑置包通常用“0”比特流表示。因此,輸入包不是真正的包,就是閑置包。對于單點傳送交換單元來講,真正的包可能欲交換到output-0輸出端口或output-1輸出端口,相應(yīng)的包分別稱為“0-向(0-bound)包”和“1-向(1-bound)包”,因此,對于任一單點傳送交換單元來說,來自輸入包的區(qū)域路由控制信號要表示出0-bound、1-bound和idle(閑置)三種類型。同樣,對于雙點傳送交換單元來講,真正的包除了0-bound包和1-bound包外,另外還有一種稱為“雙點傳送(bicast)包”,即欲同時交換到output-0輸出端口和output-1輸出端口,因此,對于任一雙點傳送交換單元來說,來自輸入包的區(qū)域路由控制信號要表示出0-bound、1-bound、bicast和idle四種類型。
當(dāng)兩個輸入包欲交換到同一個輸出口時,輸出沖突(output contention)便會出現(xiàn)。解決輸出沖突有多種不同的方法,在下文的例子中會提到其中一種方法。一個理想的單點傳送單元是在任何時候只要沒有輸出沖突,它總是把0-bound包交換到output-0輸出端口以及把1-bound包交換到輸出端口output-1。因此,單點傳送單元收到的兩個輸入包的所有可能組合以及相應(yīng)的連接狀態(tài)列表如下表1
雙點傳送交換單元的情形要比單點傳送交換單元復(fù)雜得多。當(dāng)兩個輸入包中沒有雙點傳送包時,雙點傳送交換單元的所有行為完全同單點傳送交換單元一樣。然而,當(dāng)其中有一個雙點傳送包時,其情形將是下列幾個情形的一(a)另外一個輸入包是“閑置包”雙點傳送包依據(jù)其所在的輸入端口為input-0或input-1成功地通過相對應(yīng)的bicast-0或bicast-1連接狀態(tài)同時被復(fù)制(bicasted)到output-0輸出端口和output-1輸出端口。在此要特別注明的是,這里所說的“復(fù)制”還包含了以下兩個特別處理過程(1)將輸送到ouput-0輸出端口的包中的控制信號由“bicast”修改成“0-bound”和(2)將輸送到ouput-1輸出端口的包中的控制信號由“bicast”修改成“1-bound”。不然的話,這兩個被復(fù)制的雙點傳送包有可能會被較后階的雙點傳送交換單元再次被復(fù)制。所以,除非另外說明,否則本文所提到的和雙點傳送交換單元相關(guān)的“復(fù)制(bicasted)”都是指如上所述的過程。
(b)另外一個包是單點傳送包(0-bound包或1-bound包)合理的方法是將單點傳送包交換到它欲去的輸出口,而將雙點傳送包交換到另外一個端口。
(c)另外一個輸入包也是“bicast包”將它們分別交換到兩個輸出顯然比復(fù)制其中一個到兩個輸出,另一個被刪除掉要公平得多。因此,這種情況的連接狀態(tài)可以是“bar”或“cross”,而不應(yīng)是“bicast-1”或“bicast-1”。
總之,雙點傳送交換單元只有當(dāng)輸入包中一個是雙點傳送包而另一個是閑置包時才會激活復(fù)制功能。否則,雙點傳送包將只被交換到其中一個適當(dāng)?shù)妮敵龆丝凇?br>
雙點傳送單元收到的包的所有組合以及相應(yīng)的連接狀態(tài)如表2所示。
表2
在本文中或相應(yīng)的圖中有時會用符號“0”、“1”、“I”和“B”來分別表示“0-bound”、“1-bound”、“idle”和“bicast”包或?qū)?yīng)的0-bound、1-bound、idle和bicast的路由控制信號。
圖3(A)表示出雙點傳送交換單元(300)兩個輸入端口input-0(310)和input-1(311)的輸入包分別為雙點傳送(330)包和閑置包(331)時的情形。這種情況下,其連接狀態(tài)被設(shè)置為bicast-0(360),雙點傳送包通過bicast-0連接狀態(tài)被復(fù)制到兩個輸出端口,其中output-0輸出端口(320)的輸出包的bicast路由控制信號被設(shè)定為0-bound(332),而outpt-1輸出端口(321)的輸出包的雙點傳送路由控制信號被設(shè)定為1-bound(333)。稍微具體一點來說,當(dāng)兩個輸入包的比特流順序進入該雙點傳送單元時,前置碼代表區(qū)域路由控制信號的路由字節(jié)首先到達(dá),當(dāng)兩個路由字節(jié)分別被認(rèn)定為代表雙點傳送和閑置時,雙點傳送單元就立即可以采取相應(yīng)的行動鎖定連接狀態(tài)為bicast-0,而雙點傳送包的那個雙點傳送路由字節(jié)在被送往output-0和output-1兩個輸出端口時,分別被強制設(shè)定為代表0-bound和1-bound控制信號的路由字節(jié)(此舉等同于該雙點傳送路由字節(jié)分別被取代為代表0-bound控制信號的路由字節(jié)而在output-0輸出端口輸出和代表1-bound控制信號的路由字節(jié)而在output-1輸出端口輸出)最后該雙點傳送包的其余資料位將直接穿過由被鎖定的bicast-0連接狀態(tài)提供的數(shù)據(jù)信道被同時分送到兩個輸出端口,從而正確地完成預(yù)期的交換。須要注意的是,此處對整個機制的描述為了便于理解而略有簡化,實際的運作情況在下文中會有更詳細(xì)的描述。
同樣地,圖3(B)表示出雙點傳送交換單元兩個輸入端口input-0和input-1的輸入包分別為閑置包(370)和雙點傳送包(371)的情形。這種情況下,其連接狀態(tài)被設(shè)置為bicast-1(361),雙點傳送包通過bicast-1連接狀態(tài)被復(fù)制到兩個輸出端口,其中output-0輸出端口的輸出包的雙點傳送路由控制信號被設(shè)定為0-bound(372),而outpt-1輸出端口的輸出包的雙點傳送路由控制信號被設(shè)定為1-bound(373)。
本發(fā)明所描述的最優(yōu)化交換單元涉及到如何用簡潔的交換控制方法完成自身的局部交換。事實上這種雙點傳送交換單元可用有限狀態(tài)自動機(finite-state automata)來描述。這里共有五種狀態(tài),其中四種直接對應(yīng)交換單元的bar、cross、bicast-0和bicast-1四種連接狀態(tài),而另外一種是與復(fù)制有關(guān)的“置0/1(set 0/1)”狀態(tài)。針對每一次的包輸入,交換決策過程事實上就是初始連接狀態(tài)到最終連接狀態(tài)的轉(zhuǎn)移過程,過程是從包抵達(dá)開始至獲得最終的交換狀態(tài)止。當(dāng)獲得最終的交換狀態(tài)時,自動機被鎖定(latched)直至新的包抵達(dá)。這種自動機事實上已包括單點傳送交換單元功能,因為單點傳送交換單元只是雙點傳送交換單元的一種簡化版本。有限狀態(tài)自動機狀態(tài)遷移的驅(qū)動事件主要是兩個輸入包的路由控制信號的位序列。每一次新的交換決策都針對兩個輸入包的路由控制信號,而這里每個包的路由控制信號有兩個位,這樣共有兩個輸入序列,每個序列有四種組合,合計共有十六種序列組合,即共有十六個可能的狀態(tài)遷移驅(qū)動事件。具體情況要取決于采用何種編碼,下文的實例中會有詳述。表3則枚舉出兩個輸入包的所有組合以及分別和每個組合相對應(yīng)的正確結(jié)果,即每個相對應(yīng)的自動機的最終狀態(tài)和兩個輸出端口的輸出包。所有交換決策過程最后都會相應(yīng)地鎖定在bar、cross、bicast-0和bicast-1四種連接狀態(tài)之一,所以后續(xù)的資料位將直接貫穿由鎖定的連接狀態(tài)構(gòu)成的數(shù)據(jù)信道抵達(dá)它們各自的目的端口。當(dāng)兩個輸入都是“0-bound”包或都是“1-bound”包時便會出現(xiàn)輸出沖突,其結(jié)果是可用不同的方法來處理,例如將其中一個包故意地交換到一個非其想去的輸出端口或直接將其刪除掉。對輸出沖突的處理方法和本發(fā)明并沒有直接關(guān)是,只是當(dāng)考慮到為了盡可能減少交換的錯誤損失,我們會傾向于用前者,因為那個在此暫時走錯路的包也許可以借著較后階的交換單元最終還是有機會到達(dá)其最后的目的地。當(dāng)兩個輸入都是“閑置包”時,自動機狀態(tài)可以任意改變或保持其連接狀態(tài)。當(dāng)兩個輸入都是bicast包時,自動機狀態(tài)可任意設(shè)置并鎖定為cross或bar連接狀態(tài)。
表3
2.新發(fā)明的編碼方式2.1一個隨意編碼方式的例子通常用2個位就足以雙點傳送交換單元的四種可能的帶內(nèi)控制信號或單點傳送交換單元的三種可能帶內(nèi)信號進行編碼。表4表示一種隨意的編碼方式。
表4
這種編碼方式的不足的處是交換單元,無論是單點傳送交換單元還是單點傳送交換單元,都必須將所有兩個位讀入后才能確定兩個輸出包的第一個輸出位。例如,一個輸入包的第一位在交換單元的輸入端為“0”,而另一個輸入包的第一個位在交換單元的另一輸入端為“1”,由于以“1”開頭的包既可能是“0-bound”包又可能是“1-bound”包。對于“0-bound”的情況,根據(jù)此編碼方式,在output-0輸出端口的第一個輸出位應(yīng)為“1”而在output-1輸出端口的第一個輸出位應(yīng)為“0”。相對應(yīng)地,對于“0-bound”的情況,根據(jù)此編碼方式在output-0輸出端口的第一個輸出位應(yīng)為“0”,而在output-1輸出端口的第一個輸出位應(yīng)為“1”。也就是說要正確確定交換狀態(tài),交換單元必須等到每個包的第二個路由位到達(dá)后才能確定兩個輸出端口的第一個輸出位。所以,R1=2。因此,此編碼方式的區(qū)域緩沖延遲時間B=maxj{Rj-j}≥R1-1=1。
2.2依據(jù)本發(fā)明的新編碼方式依據(jù)本發(fā)明設(shè)計的新編碼方式去除了類似上例中的不足,使得區(qū)域緩沖延遲時間為零。具體地講,一旦收到輸入包的第一個位,交換單元便可立即確定第一個輸出位,依此類推。
依據(jù)本發(fā)明最廣義層面上講,在新的編碼方式中,不管是相對于雙點傳送交換單元的bar、cross、bicast和idle等四種可能帶內(nèi)控制信號或相對于單點傳送交換單元的bar、cross和idle等三種可能帶內(nèi)控制信號,對“0-bound”和“1-bound”的編碼,其第一個位必須是不同的。
實施例對應(yīng)于雙點傳送交換單元可考慮如下新的編碼方式表5
為了更深入了解本發(fā)明,本發(fā)明的詳細(xì)描述將采用實例(如表5所示的新編碼方法)的方式來說明。然而,本發(fā)明所涉及的方法并不局限于所示的例證。歸納起來,采用本發(fā)明的各種編碼方式中,其表示“0-bound”和“1-bound”包的相應(yīng)路由位的第一個位必須是不同的。
圖4至圖7表示出所有雙點傳送交換單元可能遇到的各種情形。在這些圖中,所有的雙點傳送交換單元以左邊兩個輸入端口(上面是input-0輸入端口,下面是input-1輸入端口)和右邊兩個輸出端口(上面是output-0輸出端口,下面是output-1輸出端口)的方式描述。各種情形的描述采用了序列符號It和Ot,它們表達(dá)的意義如下序列表達(dá)式It=AB表示交換單元的input-0輸入端口和input-1輸入端口的第t個序列輸入位分別為A和B。
序列表達(dá)式Ot=AB表示交換單元的output-0輸出端口和output-1輸出端口的第t個序列輸出位分別為A和B。
例如序列表達(dá)式I1=01表示交換單元的第一個輸入序列在input-0輸入端口的輸入位為0,而在input-1輸入端口的輸入位為1。
最優(yōu)化的雙點傳送交換單元獲得B=maxj{Rj-j}為0的方法描述如下情形1I1=01第四圖說明情形I1=01。第一個輸入序列I1=01意味著在input-0輸入端口的包第一個位(4011)為“0”,而在input-1輸入端口的包第一個位(4012)為“1”。那么連接狀態(tài)暫時設(shè)置為“bar”連接狀態(tài)(4001)。這樣,在output-0輸出端口的第一個輸出位(4021)為“0”,同樣地,在output-1輸出端口的第一個輸出位(4022)為“1”,即O1=01。當(dāng)輸入第一個輸入序列I1=01后,第二個輸入序列I2的可能組合有四種。接下來的分析將表明不管I2是這四種組合中的哪一種,O1=01都是正確的。換句話說R1=1。
情形1.1I2=00第二個輸入序列I2=00(4100)的情形,即在input-0輸入端口和在input-1輸入端口上的輸入包分別是閑置包和雙點傳送包。這種情況下,其中的雙點傳送包可復(fù)制到兩個輸出端口,即將其中output-0輸出端口的第二個輸出位(4121)將強制“置1”并設(shè)置和鎖定(圖中用字母“L”表示)連接狀態(tài)為bicast-1(4101)。這樣的話,在output-1輸出端口的第二個輸出位(4122)為1,即O2=11。結(jié)果output-0輸出端口的輸出包的帶內(nèi)控制信號為“01”(0-bound)而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“11”(1-bound)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形1.2I2=01第二個輸入序列I2=01的情形(4200),即在input-0輸入端口和在input-1輸入端口上的輸入包分別是閑置包和1-bound包。這種情況下,其中的1-bound包可以交換到它的目的輸出端口output-1輸出端口。所以,連接狀態(tài)被設(shè)置成bar(4201)并鎖定。這樣的話,在output-0輸出端口的第二個輸出位(4221)為“0”,而在output-1輸出端口的第二個輸出位(4222)為1,即O2=01。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“00”(閑置)而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“11”(1-bound)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形1.3I2=11第二個輸入序列I2=11的情形(4300)類似于情形I2=01。即在input-0輸入端口和在input-1輸入端口上的輸入包分別是0-bound據(jù)包和1-bound包。這種情況下,兩個輸入包都可以交換到它的目的輸出端口。所以,連接狀態(tài)被設(shè)置成bar(4301)并鎖定。這樣的話,在output-0輸出端口的第二個輸出位為“1”,而在output-1輸出端口的第二個輸出位為1,即O2=11。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“01”(0-bound)而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“11”(1-bound)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形1.4I2=10第二個輸入序列I2=10的情形(4400)類似于情形I2=01。即在input-0輸入端口和在input-1輸入端口上的輸入包分別是0-bound包和bicast包。這種情況下,0-bound包交換到它的目的端口output-0輸出端口,而bicast包則交換到另外一個輸出端口output-1輸出端口。所以,連接狀態(tài)被設(shè)置成bar(4401)并鎖定。這樣的話,在output-0輸出端口的第二個輸出位為“1”,而在output-1輸出端口的第二個輸出位為0,即O2=10。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“01”(0-bound)而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“10”(bicast)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形2I1=10第五圖說明第一個輸入序列I1=10的各種情形。與情形1相對稱,這種情形下的O1同樣為“01”。當(dāng)輸入第一個輸入序列I1=10后,第二個輸入序列I2的可能組合有四種。接下來的分析將表明不管I2是這四種組合中的哪一種,O1=01都是正確的。換句話說R1=1。
情形2.1I2=00第二個輸入序列I2=00(5100)的情形,即在input-0輸入端口和在input-1輸入端口上的輸入包分別是雙點傳送包和閑置包。這種情況下,其中的雙點傳送包可復(fù)制到兩個輸出端口,即將其中output-0輸出端口的第二個輸出位將強制“置1”并設(shè)置和鎖定連接狀態(tài)為bicast-0(5101)。這樣的話,在output-1輸出端口的第二個輸出位為1,即O2=11。結(jié)果output-0輸出端口的輸出包的帶內(nèi)控制信號為“01”(0-bound)而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“11”(1-bound)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形2.2I2=01第二個輸入序列I2=01(5200)的情形,即在input-0輸入端口和在input-1輸入端口上的輸入包分別是bicast包和0-bound包。這種情況下,0-bound包交換到它的目的端口output-0輸出端口,而bicast包則交換到另外一個輸出端口output-1輸出端口。所以,連接狀態(tài)被設(shè)置成cross(5201)并鎖定。這樣的話,在output-0輸出端口的第二個輸出位為“1”,而在output-1輸出端口的第二個輸出位為0,即O2=10。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“01”(0-bound)而輸出端口outpt-1的輸出包的帶內(nèi)控制信號為“10”(bicast)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形2.3I2=11第二個輸入序列I2=11的情形(5300),即在input-0輸入端口和在input-1輸入端口上的輸入包分別是1-bound據(jù)包和0-bound包。這種情況下,兩個輸入包都可以交換到各自的目的輸出端口。所以,連接狀態(tài)被設(shè)置成cross(5301)并鎖定。這樣的話,在output-0輸出端口的第二個輸出位為“1”,而在output-1輸出端口的第二個輸出位為1,即O2=11。結(jié)果,輸出端口output-0的輸出包的帶內(nèi)控制信號為“01”(0-bound)而輸出端口outpt-1的輸出包的帶內(nèi)控制信號為“11”(1-bound)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形2.4I2=10第二個輸入序列I2=01的情形(5400),即在input-0輸入端口和在input-1輸入端口上的輸入包分別是1-bound包和閑置包。這種情況下,其中的1-bound包可以交換到它的目的輸出端口output-1輸出端口。所以,連接狀態(tài)被設(shè)置成cross(5401)并鎖定。這樣的話,在output-0輸出端口的第二個輸出位為“0”,而在output-1輸出端口的第二個輸出位為1,即O2=01。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“00”(閑置)而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“11”(1-bound)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形3I1=00第六圖說明第一個輸入序列I1=00的情形,這種情形下任何一種連接狀態(tài)都可以達(dá)到O1=“00”。當(dāng)輸入第一個輸入序列I1=00后,第二個輸入序列I2的可能組合有四種。接下來的分析將表明不管I2是這四種組合中的哪一種,O1=00都是正確的。換句話說R1=1。
情形3.1I2=00第二個輸入序列I2=00(6100)的情形,即在input-0輸入端口和在input-1輸入端口上的輸入包都是閑置包。這種情況下,連接狀態(tài)可以設(shè)置成是任何一個狀態(tài)并且與是否鎖定無關(guān),這樣的話,在output-0輸出端口和output-0輸出端口的第二個輸出位都是為0,即O2=00。結(jié)果,輸出包都是閑置包。另一方面,從工程實現(xiàn)方面考慮,設(shè)定并鎖定一個確定的連接狀態(tài)如“bar”(6101)是合理的,如第六圖所示。這種情況下,R2=2。
情形3.2I2=11第二個輸入序列I2=11(6200)的情形意味著在input-0輸入端口和在input-1輸入端口上的輸入包都是0-bound包。這種情況下,連接狀態(tài)可以設(shè)定成bar或cross并且與是否鎖定無關(guān)。顯然,其中一個包會錯誤地交換到某一輸出端口。這樣的話,在output-0輸出端口的第二個輸出位為“1”,而在output-1輸出端口的第二個輸出位也為1,即O2=11。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“01”(0-bound)而輸出端口outpt-1的輸出包的帶內(nèi)控制信號也為“01”(0-bound)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
另一方面,從實際應(yīng)用方面考慮,暫時不鎖定狀態(tài)是合理的。例如,如果包又分成一定數(shù)量的優(yōu)先級(priority)分類,并且用相應(yīng)的位資料大小表示優(yōu)先級的大小,這些優(yōu)先級位資料緊跟在帶內(nèi)控制信號后面。在其后的處理中,即使比較輸入的優(yōu)先級位,當(dāng)發(fā)現(xiàn)兩個輸入包的優(yōu)先級位位不同時,立即以優(yōu)先級較高的包為目標(biāo)設(shè)定連接狀態(tài)并鎖定。在所的這種情形中,由于兩個輸入包都是0-bound包,有較高優(yōu)先級的包將有特權(quán)交換到輸出端口output-0。所以當(dāng)I3=10(6500),意味著在輸入端口input-0上的包比在輸入端口input-0上的包有較高優(yōu)先級,因此連接狀態(tài)設(shè)置成“bar”并鎖定(6501);當(dāng)I3=01(6600),情形恰恰相反,連接狀態(tài)設(shè)置成“cross”并鎖定(6601)。一旦兩個輸入包的優(yōu)先級完全一樣,連接狀態(tài)設(shè)定成bar或cross已無任何區(qū)別。在一些工程實現(xiàn)時,所有余下的資料位仍可被用作區(qū)別位。需要注意的是在這種情況下,B=maxj{Rj-j}仍然為0。
情形3.3I2=10第二個輸入序列I2=10的情形(6300),即在input-0輸入端口和input-1輸入端口上的輸入包分別是0-bound包和閑置包。這種情況下,0-bound輸入包可以交換到它的目的輸出端口output-0。所以,連接狀態(tài)被設(shè)置成bar(6301)并鎖定。這樣的話,在output-0輸出端口的第二個輸出位為“1”,而在output-1輸出端口的第二個輸出位為0,即O2=10。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“01”(0-bound)而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“00”(idle)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形3.4I2=01第二個輸入序列I2=01的情形(6400),即在input-0輸入端口和input-1輸入端口上的輸入包分別是閑置包和0-bound包。這種情況下,0-bound輸入包可以交換到它的目的輸出端口output-0。所以,連接狀態(tài)被設(shè)置成cross(6401)并鎖定。這樣的話,在output-0輸出端口的第二個輸出位為“1”,而在output-1輸出端口的第二個輸出位為0,即O2=10。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“01”(0-bound)而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“00”(閑置)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形4I1=11第七圖說明第一個輸入序列I1=11的情形。這種情形下任何一種連接狀態(tài)都可以達(dá)到O1=“11”。當(dāng)輸入第一個輸入序列I1=11后,第二個輸入序列I2的可能組合有四種。接下來的分析將表明不管I2是這四種組合中的哪一種,O1=11都是正確的。換句話說R1=1。
情形4.1I2=00第二個輸入序列I2=00的情形(7100)意味著兩個輸入包都是bicast包,這種情況下連接狀態(tài)可以設(shè)定成bar或cross并且與是否鎖定無關(guān),其輸出都是O2=00。無論它們的優(yōu)先級是否相同,其連接狀態(tài)為“bar”或“cross”都一樣好。這種情況下,R2=2。
情形4.2I2=11第二個輸入序列I2=11的情形(7200)意味著兩個輸入包都是1-bound包,這種情況下連接狀態(tài)可以設(shè)定成bar或cross,其輸出都是O2=11。隨后的處理可以采用類似情形情形3.2所述的優(yōu)先級處理方式處理。這種情況下,R2=2。
情形4.3I2=10第二個輸入序列I2=10的情形(7300),即在input-0輸入端口和input-1輸入端口上的輸入包分別是1-bound包和bicast包。這種情況下,1-bound包交換到它的目的端口output-1輸出端口,而bicast包則交換到另外一個輸出端口output-0輸出端口。所以,連接狀態(tài)被設(shè)置成cross(7301)并鎖定。這樣的話,在output-0輸出端口的第二個輸出位為“0”,而在output-1輸出端口的第二個輸出位為1,即O2=01。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“10”(bicast),而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“11”(1-bound)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
情形4.4I2=01第二個輸入序列I2=01(7400)的情形,即在input-0輸入端口和在input-1輸入端口上的輸入包分別是bicast包和1-bound包,這種情況下,1-bound包交換到它的目的端口output-1輸出端口,而bicast包則交換到另外一個輸出端口output-0輸出端口。所以,連接狀態(tài)被設(shè)置成bar(7401)并鎖定。這樣的話,輸出端口output-0的第二個輸出位為“0”,而output-1輸出端口的第二個輸出位為1,即O2=01。結(jié)果,output-0輸出端口的輸出包的帶內(nèi)控制信號為“10”(bicast),而outpt-1輸出端口的輸出包的帶內(nèi)控制信號為“11”(1-bound)。余下的包的資料位將直接貫穿由被鎖定的連接狀態(tài)提供的數(shù)據(jù)信道,從而正確地完成所期望的交換。這種情況下,R2=2。
綜上結(jié)果,依本發(fā)明而提出的編碼方式,maxj{Rj-j}總是為0,這樣,相應(yīng)的雙點傳送交換單元被最優(yōu)化。
以上敘述的方法是以表5所代表舉例的編碼方式進行的。表5左邊列中的4項,即“00”,“01”,“11”和“10”可以映像成其它可能的編碼方式,只要這些方式能滿足以下要求0-bound包編碼的第一個位與1-bound包編碼的第一個位必須不同。
此外,當(dāng)單點傳送交換單元采用同上述雙點傳送交換單元編碼方法中對“idle”、“0-bound”和“1-bound”相同編碼時,總延遲時間完全主要取決于多階互連網(wǎng)絡(luò)的階數(shù)與每一階交換單元區(qū)域延遲時間的乘積。因此,當(dāng)交換單元中所有區(qū)域延遲時間減少時,總延遲時間也會按比例減少?;蛘哒f交換單元中所有的區(qū)域延遲時間減小到某種比率,那么總延遲時間也會相應(yīng)地縮減大致相同的比率。同樣地,當(dāng)交換單元最優(yōu)化后,總的緩存要求也會降低很多。比較前面所闡明的兩個例子,一個是隨機編碼方式,另一個是依據(jù)本發(fā)明提出的新編碼方式,它們的不同的處是分別以區(qū)域緩存數(shù)maxj{Rj-j}為1和0的交換單元堆積成整個多階互連網(wǎng)絡(luò)形式的交換引擎。
本發(fā)明雖已于此詳細(xì)表示與說明,然先前的說明僅是例示發(fā)明的原理與精神,本領(lǐng)域的專業(yè)人士可依據(jù)本發(fā)明而輕易衍生出其它變化例,但這些變化例亦應(yīng)包含于本案的范圍內(nèi)。此外,此處所述的實例與條件用語是為有助于讀者了解本發(fā)明的原理與概念,而非用于將本發(fā)明限制于此范圍。另外,此處所有關(guān)于本案精神、形式與實施例的陳述以及其特定實例均包含與其構(gòu)造與功能上均等者。同時,此均等涵蓋過去已知與未來將發(fā)展的所有此等構(gòu)造與功能。
此外,本領(lǐng)域的專業(yè)人士應(yīng)了解,此處所用的方塊圖是一種舉例說明實施本發(fā)明原理電路設(shè)計的示意圖。
權(quán)利要求
1.一種交換網(wǎng)絡(luò)的包路由方法,其中該交換網(wǎng)絡(luò)包括多階的交換單元,每一交換單元于其輸入端口接收包作為其區(qū)域輸入包,并于其輸出端口產(chǎn)生包作為其區(qū)域輸出包,每一包均具有至少一個帶內(nèi)控制信號,每一個帶內(nèi)控制信號是有一相對應(yīng)的交換單元將該帶內(nèi)控制信號視為該交換單元的區(qū)域帶內(nèi)控制信號,及為該交換單元做交換決策之用,該方法包括根據(jù)一預(yù)定的編碼法則將每一包的每一個帶內(nèi)控制信號編成至少一個位;以及參考該編碼方式,每一交換單元根據(jù)該交換單元的每個區(qū)域輸入包中與該交換單元相對應(yīng)的區(qū)域帶內(nèi)控制信號中的部份或全部位做出交換決策,并根據(jù)該交換決策,相應(yīng)地于其輸出端口產(chǎn)生其區(qū)域輸出包的輸出位,以完成對該交換單元的區(qū)域輸入包的路由。
2.如權(quán)利要求1的方法,其特征在于每一交換單元是一雙點傳送交換單元,而輸入至每一交換單元的區(qū)域輸入包均包括閑置、0-向、1-向、以及雙點傳送等包型式,其中每一種包型式均對應(yīng)至不同的帶內(nèi)控制信號,該編碼包括以至少兩個位來對每一帶內(nèi)控制信號進行編碼,且該編碼法則包括一種位編碼方式,是使得對應(yīng)于0-向包型式的帶內(nèi)控制信號碼的第一位有別于對應(yīng)于1-向包型式的帶內(nèi)控制信號碼的第一位。
3.如權(quán)利要求1的方法,其特征在于每一交換單元是一單點傳送交換單元,而輸入至每一交換單元的區(qū)域輸入包均包括閑置、0-向、以及1-向等包型式,其中每一種包型式均對應(yīng)至不同的帶內(nèi)控制信號,該編碼包括以至少兩個位來對每一帶內(nèi)控制信號進行編碼,且該編碼法則包括一種位編碼方式,是使得對應(yīng)于0-向包型式的帶內(nèi)控制信號碼的第一位有別于對應(yīng)于1-向包型式的帶內(nèi)控制信號碼的第一位。
4.一種包路由系統(tǒng),包括多階的交換單元,每一交換單元于其輸入端口接收包作為其區(qū)域輸入包,并于其輸出端口產(chǎn)生包作為其區(qū)域輸出包,每一包均具有至少一個帶內(nèi)控制信號,每一個帶內(nèi)控制信號是有一相對應(yīng)的交換單元將該帶內(nèi)控制信號視為該交換單元的區(qū)域帶內(nèi)控制信號,及為該交換單元做交換決策的用;一編碼器,用于根據(jù)一預(yù)定的編碼法則將每一包的每一個帶內(nèi)控制信號編成至少一個位;以及一產(chǎn)生器,參考該編碼方式,于每一交換單元產(chǎn)生其區(qū)域輸出包的輸出位,以完成對該交換單元的區(qū)域輸入包的路由,此處輸出位的產(chǎn)生是相應(yīng)于該交換單元根據(jù)其每個區(qū)域輸入包中與該交換單元相對應(yīng)的區(qū)域帶內(nèi)控制信號中的部份或全部位所做出的交換決策。
5.如權(quán)利要求4的系統(tǒng),其特征在于每一交換單元是一雙點傳送交換單元,而輸入至每一交換單元的區(qū)域輸入包均包括閑置、0-向、1-向、以及雙點傳送等包型式,其中每一種包型式均對應(yīng)至不同的帶內(nèi)控制信號,該編碼器包括以至少兩個位來對每一帶內(nèi)控制信號進行編碼的裝置,且該編碼法則包括一種位編碼方式,使得對應(yīng)于0-向包型式的帶內(nèi)控制信號碼的第一位有別于對應(yīng)于1-向包型式的帶內(nèi)控制信號碼的第一位。
6.如權(quán)利要求4的系統(tǒng),其特征在于每一交換單元是一單點傳送交換單元,而輸入至每一交換單元的區(qū)域輸入包均包括閑置、0-向、以及1-向等包型式,其中每一種包型式均對應(yīng)至不同的帶內(nèi)控制信號,該編碼器包括以至少兩個位來對每一帶內(nèi)控制信號進行編碼的裝置,且該編碼法則包括一種位編碼方式,使得對應(yīng)于0-向包型式的帶內(nèi)控制信號碼的第一位有別于對應(yīng)于1-向包型式的帶內(nèi)控制信號碼的第一位。
全文摘要
本發(fā)明是新編碼方式,用于使交換單元的總區(qū)域延遲時間盡可能縮短,所需的緩存單位盡可能減少。在此新編碼方式中,該交換單元可最優(yōu)化,而使得無須等到所有區(qū)域路由位到齊就能開始產(chǎn)生輸出包的第一個輸出位,并因此縮短區(qū)域緩存時間延遲,及減少和緩存相關(guān)的硬件實體。在實際交換應(yīng)用中,支持多播的多階交換網(wǎng)絡(luò)中的每一個交換單元均為一雙點傳送交換單元而伴隨的新編碼方式甚至可在每一個雙點傳送交換單元中達(dá)成最小緩存的目的。因此,整個交換系統(tǒng)的總延遲時間可被縮短,及總共所需的硬件實體可被減少。
文檔編號H04J3/24GK1445966SQ0310608
公開日2003年10月1日 申請日期2003年2月21日 優(yōu)先權(quán)日2002年2月23日
發(fā)明者李碩彥, 朱鍵 申請人:泰拉鮑爾股份有限公司