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