??? 摘? 要:? 結(jié)合實(shí)用化綜合業(yè)務(wù)接入系統(tǒng)內(nèi)部標(biāo)簽分組(ILP)在系統(tǒng)中的傳輸與處理結(jié)構(gòu),針對(duì)ILP在系統(tǒng)中基于多總線背板傳輸?shù)?a class="innerlink" href="http://m.viuna.cn/tags/時(shí)延" title="時(shí)延" target="_blank">時(shí)延與同步問題,提出了一種實(shí)用的“一對(duì)多”背板總線傳輸?shù)淖赃m應(yīng)bit位同步和ILP包同步解決方案和實(shí)現(xiàn)方法,并討論了空閑字節(jié)(Idle Bytes)對(duì)業(yè)務(wù)承載效率的影響。?
??? 關(guān)鍵詞: 系統(tǒng)內(nèi)部標(biāo)簽分組(ILP) 多級(jí)復(fù)接? 自適應(yīng)? 同步
?
??? 系統(tǒng)內(nèi)部標(biāo)簽分組(ILP:Inner-system Labeled Packet)傳輸與交換技術(shù)是國家“863”通信技術(shù)主題重大課題——“實(shí)用化綜合接入系統(tǒng)研究與開發(fā)”課題的關(guān)鍵技術(shù)之一[5],目的在于實(shí)現(xiàn)基于“分組化環(huán)境和業(yè)務(wù)分類”條件下的接入段全帶寬動(dòng)態(tài)分配和利用,并充分保證實(shí)時(shí)業(yè)務(wù)的QoS(Quality Of Service)。實(shí)用化綜合接入系統(tǒng)的ILP傳輸與分組化處理結(jié)構(gòu)如圖1所示。?
?
?
??? 圖1中遠(yuǎn)端模塊的話音用戶接口完成對(duì)電路型載荷數(shù)據(jù)的分組化處理,封裝相應(yīng)的系統(tǒng)內(nèi)部標(biāo)簽,形成標(biāo)準(zhǔn)話音數(shù)據(jù)輸出緩沖區(qū);數(shù)據(jù)用戶接口完成對(duì)IP數(shù)據(jù)的解析處理、內(nèi)部標(biāo)簽封裝,并形成IP數(shù)據(jù)輸出緩沖區(qū)。?
??? 局端模塊的電話網(wǎng)接口完成對(duì)電路型載荷ILP的標(biāo)簽卸載處理,恢復(fù)相應(yīng)的電路業(yè)務(wù)模式;數(shù)據(jù)網(wǎng)接口完成對(duì)數(shù)據(jù)型ILP的標(biāo)簽卸載,恢復(fù)IP凈載荷數(shù)據(jù),進(jìn)入IP網(wǎng)。?
??? 系統(tǒng)的ILP分組流處理單元是系統(tǒng)基于內(nèi)部標(biāo)簽分組(ILP)的輸入輸出核心處理單元,主要功能是完成系統(tǒng)內(nèi)部傳輸帶寬的動(dòng)態(tài)分配、ILP分組的I/O調(diào)度和系統(tǒng)網(wǎng)管(NMS)的通道管理等。?
1 問題的提出?
??? 系統(tǒng)的ILP分組流處理單元與其它接口板數(shù)據(jù)交互的實(shí)現(xiàn),在硬件上采用“通用”背板總線技術(shù)(這里的“通用”是指系統(tǒng)的遠(yuǎn)端或局端除了ILP分組流處理單元以外的接口板的位置并不固定,是可以互換的)。并且,為滿足系統(tǒng)大吞吐量(2.5Gbps以上)的要求,系統(tǒng)采用并行總線方式降低數(shù)據(jù)處理速率(考慮總線過寬導(dǎo)致系統(tǒng)成本上升,本系統(tǒng)背板采用32位同步總線,雙向設(shè)計(jì))。因此總線速率在40M可實(shí)現(xiàn)2.5Gbps吞吐能力,實(shí)際按60M總線速率設(shè)計(jì)。ILP分組流處理單元與其它模塊間的接口及數(shù)據(jù)流向如圖2所示,其中:?
??? · S接口(無論在遠(yuǎn)端還是局端)都是ILP分組流處理單元與高速光傳輸接口板的ILP數(shù)據(jù)傳輸接口,包括數(shù)據(jù)總線、控制總線、地址選擇總線、時(shí)鐘及緩沖區(qū)充盈狀態(tài)指示總線等。?
??? · G接口在遠(yuǎn)端是ILP分組流處理單元面向各用戶接入板的數(shù)據(jù)輸入輸出和總線控制接口,在局端是面向網(wǎng)絡(luò)側(cè)的數(shù)據(jù)輸入輸出和總線控制接口。G接口通過背板總線與各用戶接入板、電路業(yè)務(wù)處理板或千兆以太網(wǎng)接口板相聯(lián)。?
??? · H接口是標(biāo)準(zhǔn)HDLC鏈路傳輸口,在遠(yuǎn)端用于實(shí)現(xiàn)模塊網(wǎng)管主機(jī)與用戶接入板、電路業(yè)務(wù)處理板之間的信令及網(wǎng)管業(yè)務(wù)連接。在局端用于實(shí)現(xiàn)模塊網(wǎng)管主機(jī)與數(shù)據(jù)I/O調(diào)度和帶寬動(dòng)態(tài)分配單元之間的信令及網(wǎng)管業(yè)務(wù)連接。?
?
?
??? 由于ILP分組流處理單元對(duì)各業(yè)務(wù)接口板或傳輸板的訪問都是通過“通用”背板總線進(jìn)行的,而且這種訪問是“一點(diǎn)對(duì)多點(diǎn)”、“多級(jí)驅(qū)動(dòng)隔離”、“高速電氣”交互式訪問,因而板間數(shù)據(jù)和控制總線時(shí)延τ的不一致性必定存在(如圖3所示),不可避免地會(huì)產(chǎn)生以下總線同步問題:?
??? (1)由于板間總線的布局和路徑不同,總線信號(hào)時(shí)延值τ存在離散性,因而“主從”結(jié)構(gòu)背板總線數(shù)據(jù)傳輸?shù)耐芥i存時(shí)鐘相位難以確定;?
??? (2)控制和使能信號(hào)與數(shù)據(jù)總線信號(hào)在背板上傳輸時(shí)延的不確定性,造成數(shù)據(jù)讀寫和邏輯控制等同步操作可靠性差;?
??? (3)板間進(jìn)行連續(xù)的ILP包傳輸時(shí),由于數(shù)據(jù)和控制總線時(shí)序邏輯的失步或偏差,當(dāng)主板收到包結(jié)束標(biāo)志時(shí),下一操作指令或許已經(jīng)有效(讀寫操作是連續(xù)進(jìn)行的),對(duì)端下一包的頭數(shù)據(jù)也可能已進(jìn)入總線,因而造成包同步傳輸?shù)氖?包首尾交迭或丟失);?
??? (4)這種不同的訪問時(shí)延在系統(tǒng)熱備份切換或熱插拔時(shí)表現(xiàn)出的不確定性更加嚴(yán)重。?
?
?
2 多級(jí)復(fù)接時(shí)延的自適應(yīng)匹配方法?
??? 為了解決背板總線多級(jí)復(fù)接自適應(yīng)同步問題,筆者在ILP分組流處理單元設(shè)計(jì)中采用了基于ILP分組的時(shí)延自適應(yīng)匹配技術(shù)(Self-adaptive Matching Technique),即ILP分組流處理單元在系統(tǒng)啟動(dòng)時(shí)對(duì)各個(gè)業(yè)務(wù)接口板或傳輸板的總線數(shù)據(jù)到達(dá)時(shí)延進(jìn)行感知測試。通過一個(gè)所謂“學(xué)習(xí)——統(tǒng)計(jì)——設(shè)定”的單板總線時(shí)延訓(xùn)練過程,確定“主從”結(jié)構(gòu)的總線傳輸時(shí)延參數(shù)。該時(shí)延參數(shù)在系統(tǒng)運(yùn)行過程中可通過底層驅(qū)動(dòng)軟件或上層網(wǎng)管軟件進(jìn)行修正,以保證系統(tǒng)總線同步的可靠性。?
??? ILP分組流處理單元的總線同步時(shí)延τ的訓(xùn)練測試包括系統(tǒng)自檢(所有板外FIFO正常工作與否的測試)、各個(gè)功能處理模塊的工作測試、時(shí)鐘校正、發(fā)送與接收測試包等,主要過程如下:?
??? (1)自學(xué)習(xí)過程(Self-learning Process)?
??? 系統(tǒng)啟動(dòng)時(shí),ILP分組流處理單元接管全部對(duì)外數(shù)據(jù)和控制總線,調(diào)用按照系統(tǒng)內(nèi)部標(biāo)簽包格式定義的系統(tǒng)自測ILP數(shù)據(jù)包,分別向各個(gè)業(yè)務(wù)接口、網(wǎng)絡(luò)接口或傳輸接口子板發(fā)送,隨時(shí)監(jiān)視各子板的確認(rèn)狀態(tài)指示。若測試訓(xùn)練達(dá)106數(shù)據(jù)包仍未得到子板正確確認(rèn),則認(rèn)為與該子板的“主從”發(fā)送訓(xùn)練工作失敗,產(chǎn)生告警指示,工作流程如圖4所示。
?
?
??? 若ILP分組流處理單元得到子板確認(rèn)信息,則進(jìn)入從子板讀取數(shù)據(jù)的測試訓(xùn)練流程,如圖5所示。?
?
?
??? 圖5中ILP分組流處理單元連續(xù)從子板中讀取10個(gè)正確的ILP數(shù)據(jù)包,說明當(dāng)前工作時(shí)鐘相位準(zhǔn)確,記錄該時(shí)鐘相位Φ和總線時(shí)延τ,進(jìn)入系統(tǒng)工作主程序。若讀到的ILP包不正確,則調(diào)整當(dāng)前工作時(shí)鐘相位(可取ΔΦ=π/4或π/2);若連續(xù)106不正確,認(rèn)為與該子板的“主從”讀取訓(xùn)練失敗,產(chǎn)生告警指示。?
??? 各子板的測試訓(xùn)練工作流程如圖6所示。首先各子板設(shè)定工作時(shí)鐘初相位,檢測主板向本板的“寫”使能信號(hào)(WR),若收到的測試包不正確,則調(diào)整本板當(dāng)前工作時(shí)鐘相位(可取ΔΦ=π/4或π/2),繼續(xù)監(jiān)收測試包。若連續(xù)收到超過106個(gè)正常測試包,說明本板當(dāng)前工作時(shí)鐘相位準(zhǔn)確,記錄該時(shí)鐘相位Φ和總線時(shí)延τ,發(fā)出確認(rèn)狀態(tài)。然后根據(jù)主板向本板的“讀”使能信號(hào)(RD)向總線寫入逆向測試包數(shù)據(jù)。?
?
?
??? 當(dāng)子板收到退出測試訓(xùn)練指令時(shí),進(jìn)入本板工作主程序。?
??? (2) 統(tǒng)計(jì)分析過程(Statistic & Analytic Process)?
??? 對(duì)自學(xué)習(xí)過程的測試結(jié)果Φ(x)和時(shí)延τ(x)進(jìn)行統(tǒng)計(jì)分析(自學(xué)習(xí)過程采用error and re-try的方法),總結(jié)出不同的業(yè)務(wù)接口板、網(wǎng)絡(luò)接口板以及傳輸接口板的時(shí)延參數(shù),確定各接口板相應(yīng)的工作時(shí)鐘相位,形成統(tǒng)一的相位時(shí)延參數(shù)表項(xiàng)。?
??? (3) 時(shí)延參數(shù)的設(shè)定?
??? 按照統(tǒng)計(jì)分析出的時(shí)延參數(shù)表項(xiàng)內(nèi)容,通過底層驅(qū)動(dòng)軟件注冊(cè)給ILP分組流處理單元的各處理模塊、各子板處理模塊。各模塊的PFGA按此時(shí)延參數(shù)產(chǎn)生“讀/寫”或其它使能控制信號(hào)以及數(shù)據(jù)總線的同步鎖存時(shí)鐘相位,以保證ILP分組流處理單元與其它子板之間數(shù)據(jù)交互的同步和可靠。?
??? 此外,上層網(wǎng)管軟件提供了專用的時(shí)延參數(shù)在線(in-process)修正接口,作為上層軟件對(duì)系統(tǒng)運(yùn)行可靠性的實(shí)時(shí)管理與控制措施之一。?
3 ILP標(biāo)簽包的同步處理?
??? 對(duì)于ILP標(biāo)簽包的總線傳輸同步,常規(guī)做法是利用巴克碼(Bark Code)同步序列,即在每個(gè)ILP之間插入一定數(shù)量的Bark碼,但顯然降低了數(shù)據(jù)承載效率。筆者在系統(tǒng)設(shè)計(jì)中充分利用了緩沖隊(duì)列寄存器(FIFO)的34位數(shù)據(jù)總線的特點(diǎn),簡化了ILP包的首尾同步問題。具體的方式如下:?
??? (1)系統(tǒng)背板或單板內(nèi)傳輸?shù)臄?shù)據(jù)總線寬度為34位,其中32位作為有效ILP包數(shù)據(jù)總線,其余高兩位可作為ILP包首尾標(biāo)識(shí),如圖7所示。當(dāng)最高兩位為“10”時(shí),指示該字為ILP包的頭;當(dāng)最高兩位為“01”時(shí),指示該字為ILP包結(jié)束;當(dāng)最高兩位為“00“時(shí),指示該字為ILP包間字;當(dāng)最高兩位為“11”時(shí),指示總線傳輸故障。?
?
?
??? (2)由前面的討論可知,由于數(shù)據(jù)和使能信號(hào)的背板總線傳輸時(shí)延存在不一致性,如果按常規(guī)的方法將一個(gè)ILP包的尾標(biāo)志加注在數(shù)據(jù)流的末尾,有可能使板間包傳輸失步(ILP包首尾交迭或首尾丟失),即當(dāng)ILP分組流處理單元讀到當(dāng)前ILP包的尾標(biāo)志時(shí),下一包的包頭數(shù)據(jù)可能已由子板打入總線,而此時(shí)ILP分組流處理單元有可能已轉(zhuǎn)去訪問(輪循)其它子板。結(jié)果使原訪問單元包頭丟失,現(xiàn)訪問單元包頭錯(cuò)誤,人為地造成包傳輸錯(cuò)誤的發(fā)生。為此,本系統(tǒng)的ILP分組流處理單元采用了一種特殊的包尾指示方法,即包尾標(biāo)識(shí)不直接放在ILP包的最后一個(gè)長字(32bit總線)上,而是把ILP包尾指示放在內(nèi)部分組包的倒數(shù)第n個(gè)長字上:?
??? n=[r·τ/ι]+1?
??? 其中τ為時(shí)延參數(shù),r為總線速率,ι為長字bit數(shù),[·]表示取最大整數(shù)。當(dāng)子板發(fā)送出包尾指示后再發(fā)n個(gè)長字到數(shù)據(jù)總線,而主板收到包尾指示時(shí)再讀n個(gè)長字結(jié)束該包,實(shí)現(xiàn)完整的包傳輸同步。?
??? (3)為使“主從”結(jié)構(gòu)總線傳輸雙方都有更充分的時(shí)間來檢測和處理內(nèi)部標(biāo)簽包的首尾標(biāo)志位,保證ILP包總線傳輸不產(chǎn)生首尾混迭,本系統(tǒng)除了采用以上闡述的特殊包尾標(biāo)識(shí)技術(shù)外,還在包與包之間添加一定數(shù)目的空閑字節(jié)(Idle Bytes)。空閑字節(jié)的添加數(shù)m是在系統(tǒng)啟動(dòng)時(shí)進(jìn)行自適應(yīng)時(shí)延匹配訓(xùn)練過程中確定的,并且在系統(tǒng)的運(yùn)行中可通過網(wǎng)管接口指令實(shí)現(xiàn)對(duì)m值的修改。?
??? 在高速背板總線連接系統(tǒng)中,由于模塊間的連接關(guān)系是“一點(diǎn)對(duì)多點(diǎn)”、“多級(jí)驅(qū)動(dòng)隔離”、“高速電氣”交互式的總線接口關(guān)系,板間總線時(shí)延存在離散性,因此bit位同步和包同步是I/O操作的關(guān)鍵問題。對(duì)于bit位同步,本文討論了系統(tǒng)中采用的“多級(jí)復(fù)接時(shí)延自適應(yīng)匹配技術(shù)”,即系統(tǒng)起始時(shí)按半時(shí)鐘周期為調(diào)節(jié)步長進(jìn)行固定碼字的bit同步訓(xùn)練,得到固定的時(shí)鐘相位延遲,設(shè)置FPGA硬件實(shí)現(xiàn)bit同步;對(duì)于包傳輸同步,筆者在系統(tǒng)設(shè)計(jì)中充分利用了緩沖隊(duì)列寄存器(FIFO)的34位數(shù)據(jù)總線的特點(diǎn),簡化了ILP包的頭尾同步問題,即在背板或單板內(nèi)傳輸?shù)臄?shù)據(jù)總線為34位,32位作為有效ILP包數(shù)據(jù)總線,其余高兩位作為頭尾標(biāo)志。同時(shí)為了避免“主從”總線交換時(shí)發(fā)生ILP包首尾交迭現(xiàn)象,本文提出了一種特殊的尾標(biāo)志添加技術(shù)和Idle字節(jié)隔離技術(shù)。?
??? 通過1999~2000年度國家“863”計(jì)劃通信技術(shù)主題的重大課題“實(shí)用化綜合接入系統(tǒng)研究與開發(fā)”(863-317-01-01-01-99)的研發(fā)實(shí)踐,本文提到的多級(jí)復(fù)接自適應(yīng)bit同步技術(shù)、“一對(duì)多”總線交換包同步技術(shù)是十分有效、可靠的。?
??? 但是,在ILP包之間引入空閑字節(jié)后,顯然對(duì)系統(tǒng)的傳輸效率是有影響的,例如:?
??? (1)對(duì)于話音業(yè)務(wù)。由于話音業(yè)務(wù)采用的是11個(gè)長字為一個(gè)內(nèi)部標(biāo)簽包長度的,當(dāng)ILP分組處理單元包加入太多的空閑字節(jié)(Idle Bytes)時(shí),可能會(huì)抵銷系統(tǒng)對(duì)接入的話音業(yè)務(wù)的壓縮功效;?
??? (2)對(duì)于極短IP包,也會(huì)出現(xiàn)同樣的問題;?
??? (3)對(duì)于較長內(nèi)部標(biāo)簽包,這種技術(shù)顯然是非常有效的一種方法。?
參考文獻(xiàn)?
1 T.V. Lakshman, D. Stiliadis. High Speed Policy-based?Packet Forwarding Using Efficient Multi-dimensional Range?Matching in Proc. ACM SIGCOMM'98,1998;(9)?
2 N. McKeown, M. Izzard, A. Mekkittikul. The Tiny Tera:A Packet Switch Core IEEE Micro.1998;(1-2): 26~33?
3 Pankaj Gupta, Steven Lin. Nick MacKeown Routing?Lookups in Hardware at Memory Access Speeds in Proc.Infocom'98, 1998?
4 S. Nilsson, G. Karlsson.? Fast Address Look-Up for Internet Routers in Proc.IEEE Broadband Communication'98,1998;(4)?
5 韓國棟,鄔江興.寬帶綜合接入中的關(guān)鍵技術(shù)——IP技術(shù).電信科學(xué),2001;(2)